aboutsummaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
authorLibravatar bigfoot547 <[email protected]>2024-04-29 19:05:11 +0100
committerLibravatar bigfoot547 <[email protected]>2024-05-05 15:00:08 -0500
commitb0b4b5eb65e3dfa9f4c62df633a5078173f49005 (patch)
tree37aed041d30414333ab911f05b0dc21d47396bb3 /src/main
parent1.20.5 (diff)
1.20.61.20
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/example/ExampleMod.java22
-rw-r--r--src/main/java/com/example/mixin/ExampleMixin.java15
-rw-r--r--src/main/java/dev/figboot/SmeltingTouchMod.java49
-rw-r--r--src/main/java/dev/figboot/enchant/SmeltingTouchEnchantment.java15
-rw-r--r--src/main/resources/assets/modid/icon.pngbin453 -> 0 bytes
-rw-r--r--src/main/resources/assets/smeltingtouch/icon.pngbin0 -> 17938 bytes
-rw-r--r--src/main/resources/assets/smeltingtouch/lang/en_us.json3
-rw-r--r--src/main/resources/fabric.mod.json28
-rw-r--r--src/main/resources/modid.mixins.json11
9 files changed, 76 insertions, 67 deletions
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
--- a/src/main/resources/assets/modid/icon.png
+++ /dev/null
Binary files 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
--- /dev/null
+++ b/src/main/resources/assets/smeltingtouch/icon.png
Binary files 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