-
Notifications
You must be signed in to change notification settings - Fork 0
Developer Setup and Building
| Property | Details |
|---|---|
| Java Version | JDK 25 (release = 25) |
| Build System | Gradle 9.x with Fabric Loom 1.15+ |
| Target Minecraft | 26.2 |
| Fabric Loader | ≥0.19.1 |
| Test Framework | JUnit 5 |
| Source Repository | GitHub |
- JDK 25 (or later) — download from Oracle or Adoptium
-
Gradle 9.x — bundled via Gradle Wrapper (
gradlew) - Git — for cloning the repository
git clone https://github.com/Rifaditya/Instant-Gratification-Ore-Amplifier.git
cd Instant-Gratification-Ore-Amplifier/ore-amplifier-v2
./gradlew build --no-daemonThe compiled JAR will be output to build/libs/ore-amplifier-<version>.jar.
./gradlew runClient --no-daemonLaunches a Minecraft client with the mod and all dependencies loaded. Useful for testing GameRules, YACL GUI, and in-game commands.
./gradlew runServer --no-daemonLaunches a dedicated server instance for testing server-side worldgen amplification, GameRule syncing, and command permissions.
./gradlew test --no-daemonThe test suite (src/test/java/) uses JUnit 5 and verifies core mod logic without a full Minecraft runtime:
| Test Method | What It Verifies |
|---|---|
testVanillaOreIdentification() |
OreLogic.shouldAmplify() correctly identifies vanilla ores: iron_ore, deepslate_coal_ore, nether_quartz_ore, ancient_debris → true
|
testBlacklistFiltering() |
Blacklisted features are correctly rejected: amethyst_geode, monster_room, dirt → false
|
testMultiplierMath() |
Multiplier math: 200% vanilla doubles count (5 → 10), 120% modded scales (10 → 12) |
The test bootstraps SharedConstants.tryDetectVersion() and Bootstrap.bootStrap() before executing test methods.
ore-amplifier-v2/
├── src/
│ ├── main/
│ │ ├── java/net/instantgratification/oreamplifier/
│ │ │ ├── OreAmplifierFabric.java # Main entrypoint
│ │ │ ├── OreAmplifierClient.java # Client entrypoint
│ │ │ ├── OreLogic.java # Core ore detection & math
│ │ │ ├── OreAmplifierConfig.java # JSON config model
│ │ │ ├── OreCommand.java # /oreamp commands
│ │ │ ├── ModMenuIntegration.java # ModMenu screen factory
│ │ │ ├── YaclScreenHelper.java # YACL GUI builder
│ │ │ ├── mixin/ # 6 Mixin classes
│ │ │ └── util/ModVersionGuard.java # ClassLoader guard
│ │ └── resources/
│ │ ├── fabric.mod.json # Mod manifest
│ │ ├── ore-amplifier.mixins.json # Mixin registry
│ │ ├── assets/ore-amplifier/
│ │ │ ├── icon.png # Mod icon
│ │ │ └── lang/en_us.json # Translations
│ │ └── data/
│ │ ├── c/tags/worldgen/placed_feature/
│ │ │ └── ore_amplifier_blacklist.json
│ │ └── ore-amplifier/tags/worldgen/placed_feature/
│ │ └── blacklist.json
│ └── test/
│ └── java/.../test/OreAmplifierTest.java
├── build.gradle
├── gradle.properties
├── CHANGELOG.md
├── RELEASE_QUEUE.md
└── LICENSE
Modpack creators and addon developers can exclude specific worldgen features from amplification by adding entries to the convention blacklist tag.
my_datapack/
└── data/
└── c/
└── tags/
└── worldgen/
└── placed_feature/
└── ore_amplifier_blacklist.json
{
"replace": false,
"values": [
"mymod:custom_crystal_vein",
"mymod:rare_gem_placement"
]
}Setting "replace": false ensures your entries are appended to the existing blacklist without removing the default entries (amethyst_geode, monster_room, monster_room_deep).
Place the datapack in your world's datapacks/ folder. The blacklist will take effect on the next world load — newly generated chunks will skip amplification for the listed features.
You can also use the mod-specific tag namespace:
data/ore-amplifier/tags/worldgen/placed_feature/blacklist.json
Both #c:ore_amplifier_blacklist and #ore-amplifier:blacklist are checked during ore detection.
Addon mods can interact with Ore Amplifier's systems:
-
Blacklist Tags: Register entries in
#c:ore_amplifier_blacklistto exclude custom features -
Dynamic GameRules: Ore Amplifier auto-detects modded ores and registers
ig:ore_<namespace>_<path>GameRules for each detected ore block -
JSON Config Overrides: Set per-ore multipliers in
config/ore-amplifier.jsonunderperOreMultipliers
For more details on the internal architecture, see Architecture and Mixins.
© 2025–2026 Dasik (Rifaditya). Licensed under the GNU General Public License v3.0 (GPLv3).
Modrinth · CurseForge · GitHub · Issues
📌 Repository Source Disclaimer: The documentation in this Wiki reflects the current source code state in the repository, which may include recent unreleased commits or developmental features ahead of public release builds on CurseForge and Modrinth.
🏠 Home
📖 Guide
🔧 Technical
🌐 Global Languages
🇷🇺 Русский (Russian)
🇪🇸 Español (Spanish)
🇩🇪 Deutsch (German)
🇫🇷 Français (French)
🇧🇷 Português do Brasil (Portuguese)
🇯🇵 日本語 (Japanese)
🇮🇩 Bahasa Indonesia (Indonesian)
🇰🇷 한국어 (Korean)
🔗 Links