YUNG’s API

Yood’s Collection [Modpack Edition]

This is a modified version of Yood’s Collection for the @DaneMakesMusic modpack on YouTube

DISCLAIMER – Do Not Use on worlds created with **”Yood’s Collection”**. This will corrupt your world due to missing mod elements.

Yood’s collection of valluables & knick knacks! This mod adds a new ore, weapon, tools, armor, mobs, paintings, music discs, & more.

This mod adds:
– 44 Music Discs
– 23 Paintings
– Ore, Tools, Weapons, & Armor
– 6 Passive Mobs
– 2 Boss Mobs

Subscribe to me on YouTube –
https://youtube.com/@DaneMakesMusic
https://youtube.com/@ForbiddenLandPodcast

JustEnoughItems is highly recommended as there are many crafting recipes. Notably the music discs all have recipes.

This mod is in early development and has been tested with a wide range of other mods running alongside it.

Yood’s Collection

# Yood’s collection of valluables & knick knacks! This mod adds a new ore, weapon, tools, armor, mobs, paintings, music discs, & more.

This mod adds:
– 44 Music Discs
– 23 Paintings
– Ore, Tools, Weapons, & Armor
– New Wood Type
– 7 Passive Mobs
– 3 Enemy Mobs

Subscribe to me on YouTube –
https://youtube.com/@DaneMakesMusic
https://youtube.com/@ForbiddenLandPodcast

JustEnoughItems is highly recommended as there are many crafting recipes. Notably the music discs all have recipes.

List of Recipes at [Dane’s Music Collection](https://danesmusiccollection.weebly.com/yoods-collection.html)

This mod is in early development and has been tested with a wide range of other mods running alongside it.

YMetalLib (Fabric)

**WARNING 2022/05/18:** Abandoned, future ports to 1.19+ will be only port with no feature addition, or no ports

Get YMetalLib faster on this site: https://www.yewonmvn.kro.kr

**Ingots, Plates, Ores! Adds all about metals**

Adds Aluminum, Bronze, Copper, Electrum, Gold, Invar, Lead, Nickel, Platinum, Silver, Steel, Tin Ingots, Plates, Ores, Nuggets, Dusts, Mixtures to alloy, Carbon Dust for steelmaking, etc.

There are more metals and dusts updated!

Yiv’s API

# Yiv’s API

![Available for Minecraft](https://img.shields.io/badge/Available%20for-1.21.x-a69374?style=for-the-badge)
![Fabric Loader](https://img.shields.io/badge/Loader-Fabric-a69374?style=for-the-badge)
![Fabric API](https://img.shields.io/badge/Requires-Fabric%20API-a69374?style=for-the-badge)
![Java](https://img.shields.io/badge/Java-21%2B-a69374?style=for-the-badge)
![License: MIT](https://img.shields.io/badge/License-MIT-a69374?style=for-the-badge)

Yiv’s API is a lightweight shared library used by Yiv’s Fabric mods.
It centralizes common hooks and compatibility logic so Yiv’s mods work smoothly together and with other mods.
On its own, this mod doesn’t add gameplay content.

![API bar](https://i.imgur.com/jUCSBMh.png)

## What it Does
– Provides stable, shared hooks that Yiv’s mods use for client-side features like overlays and per-tick updates.
– Adds smart compatibility logic to reduce conflicts between mixins from different mods.
– Stays invisible to players: no menus, no keybinds, no gameplay changes.

![API bar](https://i.imgur.com/jUCSBMh.png)

## Who Should Install This
– Players using any Yiv’s mods that list **Yiv’s API** as a required dependency.
– Modpack creators who include Yiv’s mods and want a clean, conflict-free experience.
– Developers working with Yiv’s mods (the API makes shared behavior consistent across projects).

![API bar](https://i.imgur.com/jUCSBMh.png)

## Compatibility
– **Minecraft:** 1.21.x (Fabric)
– **Requires:** Fabric Loader ≥ 0.17.x and Fabric API ≥ 0.102.0+1.21.1
– **Java:** 21 or newer

> This is primarily a client-side library. It doesn’t add content and has negligible performance impact.

![API bar](https://i.imgur.com/jUCSBMh.png)

## Installation
Install it like any other Fabric mod.
If a Yiv mod requires this API, place **Yiv’s API** in your `mods` folder alongside that mod.
Make sure you’re using the correct versions for your Minecraft and Fabric setup.

![API bar](https://i.imgur.com/jUCSBMh.png)

## Notes for Developers
This page is for players and modpack users.
Full developer documentation, examples, and source code will be available in the future.

![API bar](https://i.imgur.com/jUCSBMh.png)

## Links
– 💬 Support & issues: [Discord](https://discord.gg/r4nAbgaZs7)

![API bar](https://i.imgur.com/jUCSBMh.png)

## License
MIT License (see LICENSE)

![API bar](https://i.imgur.com/jUCSBMh.png)

## More Yiv Mods


Yiv’s Preset

   

Disable Double-Tap to Sprint

YardWatch

# YardWatch (for server owners)
Implementation of [YardWatchAPI](https://github.com/YouHaveTrouble/YardWatchAPI) for common protection plugins. If any of supported plugins implements the API itself, then this plugin will stop providing its implementation to allow the
plugin to take over.

If you’re a developer looking for information how to implement YardWatchAPI in your plugin, see
[YardWatchAPI](https://github.com/YouHaveTrouble/YardWatchAPI)

## Requirements
– Java 17
– Minecraft 1.16+

## Implementations for:
– GriefPrevention (v16+)
– WorldGuard (7.0.0+)
– LWCX
– FactionsUUID
– SuperiorSkyBlock
– Towny
– PlotSquared (6.0.0+)

## Plugin you’re using is not implementing YardWatchAPI?
Contact the plugin developer and send them [here](https://github.com/YouHaveTrouble/YardWatchAPI/blob/master/readme.md)!

You can also request a temporary implementation within this plugin [here](https://github.com/YouHaveTrouble/YardWatch/issues/new?assignees=&labels=enhancement&projects=&template=implementation-request.yml&title=%5BNEW+IMPLEMENTATION%5D%3A+).

# YardWatchAPI (for developers)

API to unify protection plugins for minecraft bukkit servers to allow easy protection queries without having to import
10 different plugin apis with separate implementations.

Current version: [![](https://jitpack.io/v/YouHaveTrouble/YardWatchAPI.svg)](https://jitpack.io/#YouHaveTrouble/YardWatchAPI)

If you’re looking for a plugin implementing YardWatchAPI for common protection plugins, see [YardWatch plugin](https://github.com/YouHaveTrouble/YardWatch).

# Usage

### Import the api using dependency manager

In any case of usage you will need to import the API. Replace `VERSION` with current version tag. You should also adjust your `` to `provided` if you’re not implementing the api and just querying it.

#### Maven
“`xml

jitpack.io
https://jitpack.io


com.github.YouHaveTrouble
YardWatchAPI
VERSION
compile

“`
#### Gradle
“`gradle
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url ‘https://jitpack.io’ }
}
}
dependencies {
compileOnly ‘com.github.YouHaveTrouble:YardWatchAPI:VERSION’
}
“`

## For plugins wanting to see if something is protected

### Check if player can break a block

Example handling of block breaking check. There’s no need to depend on any plugins for this.

“`java
public boolean canBreakBlock(Player player, Block block) {
ServicesManager servicesManager = getServer().getServicesManager();
Collection> protections = servicesManager.getRegistrations(Protection.class);
for (RegisteredServiceProvider protection : protections) {
if (protection.getProvider().canBreakBlock(player, block.getState(true))) continue;
return false; // if any protection plugin disallowed breaking the block, return false
}
// If all protection plugins allowed breaking the block, return true
return true;
}
“`

## For protection plugins

### Depend on YardWatch plugin

You can optionally softdepend and check if YardWatch is present to add an optional integration.

“`yml
depend:
– “YardWatch”
“`

### Implement Protection interface

Implement all the methods required by the interface

“`java
public class YourPluginProtection implements Protection {}
“`

### Register your implementation as a service

“`java
@Override
public void onEnable() {
getServer().getServicesManager().register(
Protection.class,
new YourPluginProtection(),
this,
ServicePriority.Normal
);
}
“`

YAML Resources

Addon for [Simple Resources](https://github.com/Yorick-06/SimpleResources) based on
[jackson-dataformats-text](https://github.com/FasterXML/jackson-dataformats-text) which adds support for “`.yml“`/“`.yaml“` files
for both minecraft and custom-registered resources.

Simply place this mod in your mods folder (SimpleResources version 2.1.0 or higher required) and all resources can now
be specified in the YAML format.

YAML Config

[![Bisect Hosting Promotion Banner](https://www.bisecthosting.com/partners/custom-banners/ee9630c7-c981-45f9-9862-3a1d71a628bf.webp)](https://redirect.daqem.com?to=https%3A%2F%2Fbisecthosting.com%2FDAQEM%3Fr%3DYAMLConfigModrinth)

[![Ko-fi Promotion Banner](https://i.imgur.com/SU7HhbO.png)](https://ko-fi.com/daqem)

## YAML Config: A Minecraft Configuration Mod

### Overview

YAML Config is a powerful Minecraft configuration mod that enables mod developers to create and manage configuration settings using the YAML file format. It offers a user-friendly GUI, extensive support for data types, and robust networking for client-server synchronization.

### Features

* **YAML File Format:** YAML Config utilizes the YAML file format, known for its readability and ease of use.
* **GUI Interface:** A well-designed GUI allows players to easily navigate and edit their configuration settings.
* **Extensive Data Type Support:** The mod supports a wide range of data types, including:
* **Primitive Types:** `boolean`, `int`, `float`, `double`, `String`, `ResourceLocation`, `Registry`
* **Collections:** `List`, `Map`
* **Date and Time:** `LocalDateTime`

* **Server-Client Synchronization:** Changes made to configurations on the server are automatically synchronized to clients, ensuring consistency across the gameplay experience.
* **Modpack Support:** The mod is designed to work seamlessly with existing modpacks, offering a flexible and expandable configuration system.
* **Validation and Error Handling:** The mod includes robust validation and error handling, ensuring that configurations meet the expected requirements.

### Installation and Usage

#### Installation

1. **Download the mod:** Download the latest version of YAML Config from the mod’s official website, CurseForge, or Modrinth.
2. **Place the mod file:** Move the downloaded JAR file into the “mods” folder within your Minecraft directory.
3. **Launch Minecraft:** Start Minecraft and join a world.

#### Usage

1. **Open the Configs Screen:** Press “F12” on your keyboard to open the Configs screen.

2. **Navigate to the Config:** The Configs Screen displays a list of available configurations. Select the mod whose configuration you want to modify.

3. **Edit Config Entries:** The Config Screen displays the available settings. Each entry includes:
* **Title:** The name of the setting.
* **Input Field:** A field for editing the value.
* **Reset Button:** A button for resetting the value back to its default.

4. **Save Changes:** Click the “Save Changes” button to save your modifications. The mod will automatically save the changes to the configuration file and synchronize them with other players on the server (if applicable).

### Development

#### Creating Configurations

**1. Define a Config Class:**

* Create a new Java class within your mod’s codebase that represents your mod’s configuration.

“`java
public class MyModConfig {

public static IConfig config;

public static IConfigEntry debug;

public static void init() {
ConfigBuilder builder = new ConfigBuilder(MyMod.MOD_ID, “mymod-config”, ConfigExtension.YAML, ConfigType.CLIENT);
}
}
“`

**2. Define Config Entries:**

* Use the `ConfigBuilder` class to define the settings for your configuration.
* Choose the appropriate data type for each entry using the `define*` methods.

“`java
// Example of defining a boolean entry:
debug = builder.defineBoolean(“debug”, false);

// Example of defining an integer entry with range:
intEntry = builder.defineInteger(“intEntry”, 10, 0, 100); // Min 0, Max 100

// Example of defining a string entry with pattern:
stringEntry = builder.defineString(“stringEntry”, “test”, “test\d+”);

// Example of defining a registry entry:
registryEntry = builder.defineRegistry(“registryEntry”, Blocks.GRASS_BLOCK, BuiltInRegistries.BLOCK);

// Example of defining a list:
stringListEntry = builder.defineStringList(“stringListEntry”, List.of(“test1”, “test2”, “test3”), 3, 10); // Min 3, Max 10

// Example of defining a map:
integerMapEntry = builder.defineIntegerMap(“integerMapEntry”, Map.of(“test1”, 1, “test2”, 2, “test3”, 3), 3, 10); // Min 3, Max 10
“`

**3. Build the Configuration:**

* Call the `build()` method on the `ConfigBuilder` to create your configuration.
* Store the configuration in a static field for easy access within your mod’s code.

“`java
public MyModConfig() {
ConfigBuilder builder = new ConfigBuilder(“mymod”, “mymod-config”, ConfigExtension.YAML, ConfigType.CLIENT);
// … define config entries
config = builder.build();
}
“`

**4. Access Config Values in Your Code:**

* Use the `get()` method to retrieve the current value of a config entry.
* Use the `set()` method to modify the value of a config entry.

“`java
// Example:
boolean debugEnabled = MyModConfig.debug.get(); // Retrieve the current value of the “debug” setting

if (debugEnabled) {
// Perform debug-related actions
}

MyModConfig.intEntry.set(25); // Set the value of the “intEntry” to 25
“`

#### Config Type

* **`ConfigType.CLIENT`:** Client-side configurations are specific to the client who has installed the mod. They are not shared with other players on the server.
* **`ConfigType.SERVER`:** Server-side configurations are specific to dedicated servers. They will not be used on single player worlds and are not synced to the players on the server.
* **`ConfigType.COMMON`:** Common configurations are shared between both clients and the server. They can be edited on the server by editing the config file directly and restarting the server or by editing the values using the in-game GUI and saving the changes.

#### Using Custom Data Types

* Use the `IConfigEntryType` interface to register custom data types with the YAML Config mod.
* Implement a custom serializer for handling the serialization and deserialization of your custom data type.

#### Modpack Configuration

* If you are creating a modpack, you can use YAML Config to define the configuration settings for your modpack.
* Place the configuration file for your modpack in the “config” folder within your modpack’s directory.

#### Examples

“`java
// Example: Basic client-side configuration

public class MyModConfig {

public static IConfig config;

public static IConfigEntry debug;
public static IConfigEntry testInt;

public static void init() {
ConfigBuilder builder = new ConfigBuilder(“mymod”, “mymod-config”, ConfigExtension.YAML, ConfigType.CLIENT);

debug = builder.defineBoolean(“debug”, false) // default false.
.withComments(“Whether debug mode is enabled for the mod.”);

testInt = builder.defineInteger(“testInt”, 10, 0, 100); // default 10, min 0 and max 100.

config = builder.build();
}
}
“`

YAML

Yet Another Math Library is a math library (wow so unexpected) specifically designed for speed.

Documentation can be found [HERE](https://github.com/averagebagelenjoyer/YAML/wiki/Documentation).

Current Features

– Functions
– Trigonometry
– Cosine
– Sine
– Tangent
– Factorial
– Absolute Value (coming soon)
– Constants
– Pi
– Euler’s Number
– Tau
– Sqrt 2
– Phi
– Sequences
– Fibonacci sequence

Yadokari Hooks

![the banner of Yadokari Hooks](https://cdn.modrinth.com/data/cached_images/80c4469016f153693603c8b206bb13f525b4cf11.png)

Yadokari Hooks is a Sponge plugin that allows you to send Minecraft in-game events as webhooks to a specified URL.

## Use for Discord

1. **Obtain a Discord Webhook URL:**
– In your Discord server, go to the channel settings.
– Navigate to **Integrations** > **Webhooks** and create a new webhook.
– Copy the webhook URL.

2. **Configure yadokari-hooks:**
– Open your configuration file (e.g., `config.conf`).
– Add or update a webhook entry with the copied URL and set the format to `discord`.

“`hocon
hooks = [
{
url = “YOUR_DISCORD_WEBHOOK_URL”
format = “discord”
}
]
“`