From b0b4b5eb65e3dfa9f4c62df633a5078173f49005 Mon Sep 17 00:00:00 2001 From: bigfoot547 Date: Mon, 29 Apr 2024 19:05:11 +0100 Subject: 1.20.6 --- src/main/java/com/example/ExampleMod.java | 22 --------- src/main/java/com/example/mixin/ExampleMixin.java | 15 ------- src/main/java/dev/figboot/SmeltingTouchMod.java | 49 +++++++++++++++++++++ .../figboot/enchant/SmeltingTouchEnchantment.java | 15 +++++++ src/main/resources/assets/modid/icon.png | Bin 453 -> 0 bytes src/main/resources/assets/smeltingtouch/icon.png | Bin 0 -> 17938 bytes .../resources/assets/smeltingtouch/lang/en_us.json | 3 ++ src/main/resources/fabric.mod.json | 28 ++++-------- src/main/resources/modid.mixins.json | 11 ----- 9 files changed, 76 insertions(+), 67 deletions(-) delete mode 100644 src/main/java/com/example/ExampleMod.java delete mode 100644 src/main/java/com/example/mixin/ExampleMixin.java create mode 100644 src/main/java/dev/figboot/SmeltingTouchMod.java create mode 100644 src/main/java/dev/figboot/enchant/SmeltingTouchEnchantment.java delete mode 100644 src/main/resources/assets/modid/icon.png create mode 100644 src/main/resources/assets/smeltingtouch/icon.png create mode 100644 src/main/resources/assets/smeltingtouch/lang/en_us.json delete mode 100644 src/main/resources/modid.mixins.json (limited to 'src/main') diff --git a/src/main/java/com/example/ExampleMod.java b/src/main/java/com/example/ExampleMod.java deleted file mode 100644 index f97cce9..0000000 --- a/src/main/java/com/example/ExampleMod.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.example; - -import net.fabricmc.api.ModInitializer; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class ExampleMod implements ModInitializer { - // This logger is used to write text to the console and the log file. - // It is considered best practice to use your mod id as the logger's name. - // That way, it's clear which mod wrote info, warnings, and errors. - public static final Logger LOGGER = LoggerFactory.getLogger("modid"); - - @Override - public void onInitialize() { - // This code runs as soon as Minecraft is in a mod-load-ready state. - // However, some things (like resources) may still be uninitialized. - // Proceed with mild caution. - - LOGGER.info("Hello Fabric world!"); - } -} \ No newline at end of file diff --git a/src/main/java/com/example/mixin/ExampleMixin.java b/src/main/java/com/example/mixin/ExampleMixin.java deleted file mode 100644 index 3c4212c..0000000 --- a/src/main/java/com/example/mixin/ExampleMixin.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.example.mixin; - -import net.minecraft.server.MinecraftServer; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Mixin(MinecraftServer.class) -public class ExampleMixin { - @Inject(at = @At("HEAD"), method = "loadWorld") - private void init(CallbackInfo info) { - // This code is injected into the start of MinecraftServer.loadWorld()V - } -} \ No newline at end of file diff --git a/src/main/java/dev/figboot/SmeltingTouchMod.java b/src/main/java/dev/figboot/SmeltingTouchMod.java new file mode 100644 index 0000000..fd2cdd3 --- /dev/null +++ b/src/main/java/dev/figboot/SmeltingTouchMod.java @@ -0,0 +1,49 @@ +package dev.figboot; + +import dev.figboot.enchant.SmeltingTouchEnchantment; +import net.fabricmc.api.ModInitializer; +import net.fabricmc.fabric.api.loot.v2.LootTableEvents; +import net.minecraft.block.Blocks; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.item.Items; +import net.minecraft.loot.LootPool; +import net.minecraft.loot.condition.MatchToolLootCondition; +import net.minecraft.loot.entry.ItemEntry; +import net.minecraft.loot.function.FurnaceSmeltLootFunction; +import net.minecraft.predicate.NumberRange; +import net.minecraft.predicate.item.EnchantmentPredicate; +import net.minecraft.predicate.item.EnchantmentsPredicate; +import net.minecraft.predicate.item.ItemPredicate; +import net.minecraft.predicate.item.ItemSubPredicateTypes; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; +import net.minecraft.registry.tag.ItemTags; +import net.minecraft.util.Identifier; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Collections; + +public class SmeltingTouchMod implements ModInitializer { + public static final Logger LOGGER = LoggerFactory.getLogger("smeltingtouch"); + + public static final SmeltingTouchEnchantment SMELTING_TOUCH = new SmeltingTouchEnchantment( + Enchantment.properties(ItemTags.MINING_LOOT_ENCHANTABLE, 1, 1, + Enchantment.constantCost(15), Enchantment.constantCost(65), 8, + EquipmentSlot.MAINHAND)); + + @Override + public void onInitialize() { + LOGGER.info("initializing mod>....."); + Registry.register(Registries.ENCHANTMENT, new Identifier("smeltingtouch:smeltingtouch"), SMELTING_TOUCH); + + LootTableEvents.MODIFY.register((key, tableBuilder, source) -> { + if (source.isBuiltin() && key.getValue().getPath().startsWith("blocks/")) { + tableBuilder.apply(FurnaceSmeltLootFunction.builder() + .conditionally(MatchToolLootCondition.builder(ItemPredicate.Builder.create().subPredicate(ItemSubPredicateTypes.ENCHANTMENTS, + EnchantmentsPredicate.enchantments(Collections.singletonList(new EnchantmentPredicate(SMELTING_TOUCH, NumberRange.IntRange.atLeast(1)))))))); + } + }); + } +} diff --git a/src/main/java/dev/figboot/enchant/SmeltingTouchEnchantment.java b/src/main/java/dev/figboot/enchant/SmeltingTouchEnchantment.java new file mode 100644 index 0000000..8f950ec --- /dev/null +++ b/src/main/java/dev/figboot/enchant/SmeltingTouchEnchantment.java @@ -0,0 +1,15 @@ +package dev.figboot.enchant; + +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.Enchantments; + +public class SmeltingTouchEnchantment extends Enchantment { + public SmeltingTouchEnchantment(Enchantment.Properties props) { + super(props); + } + + @Override + protected boolean canAccept(Enchantment other) { + return super.canAccept(other) && other != Enchantments.SILK_TOUCH; + } +} diff --git a/src/main/resources/assets/modid/icon.png b/src/main/resources/assets/modid/icon.png deleted file mode 100644 index 047b91f..0000000 Binary files a/src/main/resources/assets/modid/icon.png and /dev/null differ diff --git a/src/main/resources/assets/smeltingtouch/icon.png b/src/main/resources/assets/smeltingtouch/icon.png new file mode 100644 index 0000000..01f95b1 Binary files /dev/null and b/src/main/resources/assets/smeltingtouch/icon.png differ diff --git a/src/main/resources/assets/smeltingtouch/lang/en_us.json b/src/main/resources/assets/smeltingtouch/lang/en_us.json new file mode 100644 index 0000000..b84043f --- /dev/null +++ b/src/main/resources/assets/smeltingtouch/lang/en_us.json @@ -0,0 +1,3 @@ +{ + "enchantment.smeltingtouch.smeltingtouch": "Smelting Touch" +} diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 802b85d..80a3fe0 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -1,41 +1,31 @@ { "schemaVersion": 1, - "id": "modid", + "id": "smeltingtouch", "version": "${version}", - "name": "Example mod", - "description": "This is an example description! Tell everyone what your mod is about!", + "name": "Smelting Touch", + "description": "This mod adds the Smelting Touch enchantment.", "authors": [ - "Me!" + "Astrx", + "figboot" ], "contact": { - "homepage": "https://fabricmc.net/", - "sources": "https://github.com/FabricMC/fabric-example-mod" }, "license": "CC0-1.0", - "icon": "assets/modid/icon.png", + "icon": "assets/smeltingtouch/icon.png", "environment": "*", "entrypoints": { "main": [ - "com.example.ExampleMod" - ], - "client": [ - "com.example.ExampleModClient" + "dev.figboot.SmeltingTouchMod" ] }, "mixins": [ - "modid.mixins.json", - { - "config": "modid.client.mixins.json", - "environment": "client" - } ], "depends": { "fabricloader": ">=0.15.10", - "minecraft": "~1.20.5", + "minecraft": "~1.20.6", "java": ">=21", "fabric-api": "*" }, "suggests": { - "another-mod": "*" } -} \ No newline at end of file +} diff --git a/src/main/resources/modid.mixins.json b/src/main/resources/modid.mixins.json deleted file mode 100644 index f7fc0a3..0000000 --- a/src/main/resources/modid.mixins.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "required": true, - "package": "com.example.mixin", - "compatibilityLevel": "JAVA_21", - "mixins": [ - "ExampleMixin" - ], - "injectors": { - "defaultRequire": 1 - } -} \ No newline at end of file -- cgit v1.2.3-70-g09d2