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





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.
—

## 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.
—

## 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).
—

## 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.
—

## 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.
—

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

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

## License
MIT License (see LICENSE)
—

## More Yiv Mods
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/#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 `
#### Maven
“`xml
“`
#### 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
for (RegisteredServiceProvider
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
[](https://redirect.daqem.com?to=https%3A%2F%2Fbisecthosting.com%2FDAQEM%3Fr%3DYAMLConfigModrinth)
[](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
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
public static IConfigEntry
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

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”
}
]
“`

