From 259926b6af0f4285e52173362009b000a9b1132d Mon Sep 17 00:00:00 2001 From: KaseToatz Date: Tue, 6 Jan 2026 02:02:25 +0100 Subject: [PATCH] Add Trial Spawner support and improve config handling Introduces mixins and accessors for Trial Spawner logic, enabling Silk Touch mining and correct data transfer for Trial Spawners. Refactors config file handling to use FabricLoader and Path APIs for better compatibility. Updates mod metadata, adds a logo, and improves dropped item naming for both spawner types. --- .../accessors/ITrialSpawnerLogic.java | 6 ++ .../kasetoatz/silkspawners/config/Config.java | 47 ++++++----- .../silkspawners/mixin/BlockItemMixin.java | 59 +++++++++++++ .../silkspawners/mixin/BlockMixin.java | 78 ++++++++++++------ .../mixin/TrialSpawnerLogicMixin.java | 51 +++++++++++- src/main/resources/fabric.mod.json | 13 ++- src/main/resources/logo.png | Bin 0 -> 47247 bytes src/main/resources/silkspawners.mixins.json | 1 + 8 files changed, 200 insertions(+), 55 deletions(-) create mode 100644 src/main/java/com/kasetoatz/silkspawners/mixin/BlockItemMixin.java create mode 100644 src/main/resources/logo.png diff --git a/src/main/java/com/kasetoatz/silkspawners/accessors/ITrialSpawnerLogic.java b/src/main/java/com/kasetoatz/silkspawners/accessors/ITrialSpawnerLogic.java index 0cac1ea..76f0b4f 100644 --- a/src/main/java/com/kasetoatz/silkspawners/accessors/ITrialSpawnerLogic.java +++ b/src/main/java/com/kasetoatz/silkspawners/accessors/ITrialSpawnerLogic.java @@ -1,8 +1,14 @@ package com.kasetoatz.silkspawners.accessors; +import net.minecraft.block.spawner.TrialSpawnerData; import net.minecraft.block.spawner.TrialSpawnerLogic; +import net.minecraft.text.Text; +import net.minecraft.world.World; public interface ITrialSpawnerLogic { TrialSpawnerLogic.FullConfig silkspawners$getFullConfig(); + void silkspawners$setFullConfig(World world, TrialSpawnerLogic.FullConfig fullConfig); + void silkspawners$setData(TrialSpawnerData data); + Text silkspawners$getEntityName(World world); } diff --git a/src/main/java/com/kasetoatz/silkspawners/config/Config.java b/src/main/java/com/kasetoatz/silkspawners/config/Config.java index 7328dca..566c746 100644 --- a/src/main/java/com/kasetoatz/silkspawners/config/Config.java +++ b/src/main/java/com/kasetoatz/silkspawners/config/Config.java @@ -3,14 +3,13 @@ package com.kasetoatz.silkspawners.config; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonObject; -import net.minecraft.client.MinecraftClient; +import net.fabricmc.loader.api.FabricLoader; import net.minecraft.util.crash.CrashException; import net.minecraft.util.crash.CrashReport; -import java.io.File; -import java.io.FileReader; -import java.io.FileWriter; import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; public class Config { @@ -19,34 +18,34 @@ public class Config public static boolean REQUIRE_PICKAXE = true; public static boolean REQUIRE_SILK_TOUCH = true; - private static final File config = new File(MinecraftClient.getInstance().runDirectory, "config/silkspawners.json"); - private static final Gson gson = new GsonBuilder().setPrettyPrinting().create(); + private static final Path FILE = FabricLoader.getInstance().getConfigDir().resolve("silkspawners.json"); + private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create(); public static void load() { - if (!config.exists()) + if (!Files.exists(FILE)) { save(); return; } - try (FileReader reader = new FileReader(config)) + try { - JsonObject json = gson.fromJson(reader, JsonObject.class); - if (json.has("enable-spawner")) + JsonObject data = GSON.fromJson(Files.readString(FILE), JsonObject.class); + if (data.has("enable-spawner")) { - ENABLE_SPAWNER = json.get("enable-spawner").getAsBoolean(); + ENABLE_SPAWNER = data.get("enable-spawner").getAsBoolean(); } - if (json.has("enable-trial-spawner")) + if (data.has("enable-trial-spawner")) { - ENABLE_TRIAL_SPAWNER = json.get("enable-trial-spawner").getAsBoolean(); + ENABLE_TRIAL_SPAWNER = data.get("enable-trial-spawner").getAsBoolean(); } - if (json.has("require-pickaxe")) + if (data.has("require-pickaxe")) { - REQUIRE_PICKAXE = json.get("require-pickaxe").getAsBoolean(); + REQUIRE_PICKAXE = data.get("require-pickaxe").getAsBoolean(); } - if (json.has("require-silk-touch")) + if (data.has("require-silk-touch")) { - REQUIRE_SILK_TOUCH = json.get("require-silk-touch").getAsBoolean(); + REQUIRE_SILK_TOUCH = data.get("require-silk-touch").getAsBoolean(); } save(); } @@ -58,14 +57,14 @@ public class Config public static void save() { - JsonObject json = new JsonObject(); - json.addProperty("enable-spawner", ENABLE_SPAWNER); - json.addProperty("enable-trial-spawner", ENABLE_TRIAL_SPAWNER); - json.addProperty("require-pickaxe", REQUIRE_PICKAXE); - json.addProperty("require-silk-touch", REQUIRE_SILK_TOUCH); - try (FileWriter writer = new FileWriter(config)) + try { - gson.toJson(json, writer); + JsonObject data = new JsonObject(); + data.addProperty("enable-spawner", ENABLE_SPAWNER); + data.addProperty("enable-trial-spawner", ENABLE_TRIAL_SPAWNER); + data.addProperty("require-pickaxe", REQUIRE_PICKAXE); + data.addProperty("require-silk-touch", REQUIRE_SILK_TOUCH); + Files.writeString(FILE, GSON.toJson(data)); } catch (IOException exc) { diff --git a/src/main/java/com/kasetoatz/silkspawners/mixin/BlockItemMixin.java b/src/main/java/com/kasetoatz/silkspawners/mixin/BlockItemMixin.java new file mode 100644 index 0000000..f2ce7ad --- /dev/null +++ b/src/main/java/com/kasetoatz/silkspawners/mixin/BlockItemMixin.java @@ -0,0 +1,59 @@ +package com.kasetoatz.silkspawners.mixin; + +import com.kasetoatz.silkspawners.accessors.ITrialSpawnerLogic; +import com.llamalad7.mixinextras.sugar.Local; +import net.minecraft.block.entity.BlockEntity; +import net.minecraft.block.entity.MobSpawnerBlockEntity; +import net.minecraft.block.entity.TrialSpawnerBlockEntity; +import net.minecraft.block.enums.TrialSpawnerState; +import net.minecraft.block.spawner.TrialSpawnerData; +import net.minecraft.block.spawner.TrialSpawnerLogic; +import net.minecraft.component.DataComponentTypes; +import net.minecraft.component.type.NbtComponent; +import net.minecraft.entity.EntityType; +import net.minecraft.item.*; +import net.minecraft.nbt.NbtCompound; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +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; + +import java.util.Objects; +import java.util.Optional; + +@Mixin(BlockItem.class) +public abstract class BlockItemMixin +{ + @Inject(method="copyComponentsToBlockEntity", at=@At(value="INVOKE", target="Lnet/minecraft/block/entity/BlockEntity;markDirty()V")) + private static void copyComponentsToBlockEntity(World world, BlockPos pos, ItemStack stack, CallbackInfo ci, @Local BlockEntity entity) + { + if (entity instanceof MobSpawnerBlockEntity spawner) + { + Optional> entityType = Objects.requireNonNullElse(stack.get(DataComponentTypes.CUSTOM_DATA), NbtComponent.DEFAULT).copyNbt().get("entityType", EntityType.CODEC); + if (entityType.isEmpty()) + { + return; + } + spawner.setEntityType(entityType.get(), world.getRandom()); + } + else if (entity instanceof TrialSpawnerBlockEntity trialSpawner) + { + NbtCompound nbt = Objects.requireNonNullElse(stack.get(DataComponentTypes.CUSTOM_DATA), NbtComponent.DEFAULT).copyNbt(); + Optional fullConfig = nbt.get("fullConfig", TrialSpawnerLogic.FullConfig.CODEC.codec()); + Optional data = nbt.get("data", TrialSpawnerData.Packed.CODEC.codec()); + Optional state = nbt.getString("state"); + ITrialSpawnerLogic logic = ((ITrialSpawnerLogic)(Object)trialSpawner.getSpawner()); + if (fullConfig.isEmpty() || data.isEmpty() || state.isEmpty() || logic == null) + { + return; + } + logic.silkspawners$setFullConfig(world, fullConfig.get()); + TrialSpawnerData newData = new TrialSpawnerData(); + newData.unpack(data.get()); + logic.silkspawners$setData(newData); + trialSpawner.setSpawnerState(world, TrialSpawnerState.valueOf(state.get())); + } + } +} diff --git a/src/main/java/com/kasetoatz/silkspawners/mixin/BlockMixin.java b/src/main/java/com/kasetoatz/silkspawners/mixin/BlockMixin.java index efdcfc7..66a5334 100644 --- a/src/main/java/com/kasetoatz/silkspawners/mixin/BlockMixin.java +++ b/src/main/java/com/kasetoatz/silkspawners/mixin/BlockMixin.java @@ -2,27 +2,37 @@ package com.kasetoatz.silkspawners.mixin; import com.kasetoatz.silkspawners.accessors.IMobSpawnerLogic; import com.kasetoatz.silkspawners.accessors.ITrialSpawnerLogic; +import com.llamalad7.mixinextras.sugar.Local; import net.minecraft.block.*; import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.MobSpawnerBlockEntity; import net.minecraft.block.entity.Spawner; import net.minecraft.block.entity.TrialSpawnerBlockEntity; +import net.minecraft.block.spawner.TrialSpawnerData; import net.minecraft.block.spawner.TrialSpawnerLogic; import net.minecraft.component.DataComponentTypes; import net.minecraft.component.type.NbtComponent; +import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.enchantment.Enchantments; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityType; import net.minecraft.item.ItemStack; +import net.minecraft.registry.Registry; import net.minecraft.registry.RegistryKeys; import net.minecraft.registry.tag.ItemTags; import net.minecraft.server.world.ServerWorld; +import net.minecraft.text.Text; +import net.minecraft.util.Rarity; import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; import org.jspecify.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.ModifyArg; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import java.util.List; import java.util.Objects; @@ -32,46 +42,62 @@ import static com.kasetoatz.silkspawners.config.Config.*; @Mixin(Block.class) public class BlockMixin { - @Redirect(method="dropStacks(Lnet/minecraft/block/BlockState;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/entity/BlockEntity;Lnet/minecraft/entity/Entity;Lnet/minecraft/item/ItemStack;)V", at=@At(value="INVOKE", target="Lnet/minecraft/block/Block;getDroppedStacks(Lnet/minecraft/block/BlockState;Lnet/minecraft/server/world/ServerWorld;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/entity/BlockEntity;Lnet/minecraft/entity/Entity;Lnet/minecraft/item/ItemStack;)Ljava/util/List;")) - private static List getDroppedStacks(BlockState state, ServerWorld world, BlockPos pos, @Nullable BlockEntity blockEntity, @Nullable Entity entity, ItemStack stack) + @Unique + private static boolean shouldNotDrop(BlockEntity entity, Block block, ItemStack tool, Registry enchantments) { + return !(entity instanceof Spawner) || + (!ENABLE_SPAWNER && block instanceof SpawnerBlock) || + (!ENABLE_TRIAL_SPAWNER && block instanceof TrialSpawnerBlock) || + (REQUIRE_PICKAXE && !tool.isIn(ItemTags.PICKAXES)) || + (REQUIRE_SILK_TOUCH && EnchantmentHelper.getLevel(enchantments.getOrThrow(Enchantments.SILK_TOUCH), tool) < 1); + } + + @Inject(method="getDroppedStacks(Lnet/minecraft/block/BlockState;Lnet/minecraft/server/world/ServerWorld;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/entity/BlockEntity;Lnet/minecraft/entity/Entity;Lnet/minecraft/item/ItemStack;)Ljava/util/List;", at=@At("HEAD"), cancellable=true) + private static void getDroppedStacks(BlockState state, ServerWorld world, BlockPos pos, @Nullable BlockEntity blockEntity, @Nullable Entity entity, ItemStack tool, CallbackInfoReturnable> cir) { - System.out.println(stack); - if (!(blockEntity instanceof Spawner)) + if (shouldNotDrop(blockEntity, state.getBlock(), tool, world.getRegistryManager().getOrThrow(RegistryKeys.ENCHANTMENT))) { - return getDroppedStacks(state, world, pos, blockEntity, entity, stack); - } - if (!ENABLE_SPAWNER && state.getBlock() instanceof SpawnerBlock) - { - return List.of(); - } - if (!ENABLE_TRIAL_SPAWNER && state.getBlock() instanceof TrialSpawnerBlock) - { - return List.of(); - } - if (REQUIRE_PICKAXE && !stack.isIn(ItemTags.PICKAXES)) - { - return List.of(); - } - if (REQUIRE_SILK_TOUCH && EnchantmentHelper.getLevel(world.getRegistryManager().getOrThrow(RegistryKeys.ENCHANTMENT).getOrThrow(Enchantments.SILK_TOUCH), stack) < 1) - { - return List.of(); + return; } ItemStack item = state.getBlock().asItem().getDefaultStack(); NbtComponent component = Objects.requireNonNullElse(item.get(DataComponentTypes.CUSTOM_DATA), NbtComponent.DEFAULT); if (blockEntity instanceof MobSpawnerBlockEntity spawner) { EntityType type = ((IMobSpawnerLogic)spawner.getLogic()).silkspawners$getEntityType(world, world.getRandom(), pos); + Text name = Text.translatable("block.minecraft.spawner").formatted(Rarity.RARE.getFormatting()); if (type != null) { - component.apply(nbtCompound -> nbtCompound.put("entityType", EntityType.CODEC, type)); + component = component.apply(nbtCompound -> nbtCompound.put("entityType", EntityType.CODEC, type)); + name = Text.empty().append(type.getName()).append(" ").append(Text.translatable("block.minecraft.spawner")).formatted(Rarity.RARE.getFormatting()); } - + item.set(DataComponentTypes.ITEM_NAME, name); } else if (blockEntity instanceof TrialSpawnerBlockEntity trialSpawner) { - component.apply(nbtCompound -> nbtCompound.put("fullConfig", TrialSpawnerLogic.FullConfig.CODEC.codec(), ((ITrialSpawnerLogic)(Object)trialSpawner.getSpawner()).silkspawners$getFullConfig())); + ITrialSpawnerLogic logic = (ITrialSpawnerLogic)(Object)trialSpawner.getSpawner(); + if (logic == null) + { + return; + } + component = component.apply(nbtCompound -> { + nbtCompound.put("fullConfig", TrialSpawnerLogic.FullConfig.CODEC.codec(), logic.silkspawners$getFullConfig()); + nbtCompound.put("data", TrialSpawnerData.Packed.CODEC.codec(), trialSpawner.getSpawner().getData().pack()); + nbtCompound.putString("state", trialSpawner.getSpawnerState().name()); + }); + Text entityName = logic.silkspawners$getEntityName(world); + Text name = Text.translatable("block.minecraft.trial_spawner").formatted(Rarity.RARE.getFormatting()); + if (entityName != null) + { + name = Text.empty().append(logic.silkspawners$getEntityName(world)).append(" ").append(Text.translatable("block.minecraft.trial_spawner")).formatted(Rarity.RARE.getFormatting()); + } + item.set(DataComponentTypes.ITEM_NAME, name); } item.set(DataComponentTypes.CUSTOM_DATA, component); - return List.of(item); + cir.setReturnValue(List.of(item)); + } + + @ModifyArg(method="dropStacks(Lnet/minecraft/block/BlockState;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/entity/BlockEntity;Lnet/minecraft/entity/Entity;Lnet/minecraft/item/ItemStack;)V", at=@At(value="INVOKE", target="Lnet/minecraft/block/BlockState;onStacksDropped(Lnet/minecraft/server/world/ServerWorld;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/item/ItemStack;Z)V"), index=3) + private static boolean dropStacks(boolean original, @Local(argsOnly=true) BlockState state, @Local(argsOnly=true) World world, @Local(argsOnly=true) BlockEntity blockEntity, @Local(argsOnly=true) ItemStack tool) + { + return shouldNotDrop(blockEntity, state.getBlock(), tool, world.getRegistryManager().getOrThrow(RegistryKeys.ENCHANTMENT)); } } diff --git a/src/main/java/com/kasetoatz/silkspawners/mixin/TrialSpawnerLogicMixin.java b/src/main/java/com/kasetoatz/silkspawners/mixin/TrialSpawnerLogicMixin.java index f22b679..532de7f 100644 --- a/src/main/java/com/kasetoatz/silkspawners/mixin/TrialSpawnerLogicMixin.java +++ b/src/main/java/com/kasetoatz/silkspawners/mixin/TrialSpawnerLogicMixin.java @@ -1,18 +1,67 @@ package com.kasetoatz.silkspawners.mixin; import com.kasetoatz.silkspawners.accessors.ITrialSpawnerLogic; +import net.minecraft.block.spawner.MobSpawnerEntry; +import net.minecraft.block.spawner.TrialSpawnerConfig; +import net.minecraft.block.spawner.TrialSpawnerData; import net.minecraft.block.spawner.TrialSpawnerLogic; +import net.minecraft.entity.EntityType; +import net.minecraft.storage.NbtReadView; +import net.minecraft.storage.ReadView; +import net.minecraft.text.Text; +import net.minecraft.util.ErrorReporter; +import net.minecraft.world.World; +import org.slf4j.Logger; +import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Mutable; import org.spongepowered.asm.mixin.Shadow; +import java.util.Optional; + @Mixin(TrialSpawnerLogic.class) -public class TrialSpawnerLogicMixin implements ITrialSpawnerLogic +public abstract class TrialSpawnerLogicMixin implements ITrialSpawnerLogic { @Shadow private TrialSpawnerLogic.FullConfig fullConfig; + @Mutable @Shadow @Final private TrialSpawnerData data; + @Shadow @Final private static Logger LOGGER; + @Shadow public abstract TrialSpawnerConfig getConfig(); @Override public TrialSpawnerLogic.FullConfig silkspawners$getFullConfig() { return fullConfig; } + + @Override + public void silkspawners$setFullConfig(World world, TrialSpawnerLogic.FullConfig fullConfig) + { + this.fullConfig = fullConfig; + } + + @Override + public void silkspawners$setData(TrialSpawnerData data) + { + this.data = data; + } + + @Override + public Text silkspawners$getEntityName(World world) + { + try (ErrorReporter.Logging logging = new ErrorReporter.Logging(LOGGER)) + { + Optional entry = getConfig().spawnPotentials().getOrEmpty(world.getRandom()); + if (entry.isEmpty()) + { + return null; + } + ReadView readView = NbtReadView.create(logging, world.getRegistryManager(), entry.get().entity()); + Optional> entity = EntityType.fromData(readView); + return entity.map(EntityType::getName).orElse(null); + } + catch (Exception ignored) + { + return null; + } + } } diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 18ac7be..def71d2 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -3,11 +3,16 @@ "id": "silkspawners", "version": "${version}", "name": "SilkSpawners", - "description": "", - "authors": [], - "contact": {}, + "description": "Mod that allows mining Spawners & Trial Spawners with Silk Touch.", + "authors": ["KaseToatz"], + "contact": { + "email": "kasetoatz@kasetoatz.com", + "homepage": "https://modrinth.com/mod/silkspawners", + "issues": "https://git.kasetoatz.com/KaseToatz/SilkSpawners/issues", + "sources": "https://git.kasetoatz.com/KaseToatz/SilkSpawners" + }, "license": "MIT", - "icon": "assets/silkspawners/icon.png", + "icon": "logo.png", "environment": "*", "entrypoints": { "main": [ diff --git a/src/main/resources/logo.png b/src/main/resources/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2d44a0bb248de74d64624138d9c1cdc18ddd79c0 GIT binary patch literal 47247 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