From dccac5bad9e25ee283d9fc463a797f2d0a70131e Mon Sep 17 00:00:00 2001 From: Tschipp <11649893+Tschipp@users.noreply.github.com> Date: Thu, 31 Aug 2023 00:00:49 +0200 Subject: [PATCH 1/3] Update to 1.20 --- gradle.properties | 8 ++-- .../client/gui/GuiStatViewer.java | 37 +++++++++-------- .../callablehorses/common/HorseManager.java | 40 +++++++++---------- .../capabilities/horseowner/HorseOwner.java | 4 +- .../common/events/EntityEvents.java | 18 ++++----- .../common/helper/HorseHelper.java | 4 +- .../network/PlayWhistlePacket.java | 2 +- src/main/resources/META-INF/mods.toml | 6 +-- 8 files changed, 60 insertions(+), 59 deletions(-) diff --git a/gradle.properties b/gradle.properties index e069ee9..9a5e80f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ # This is required to provide enough memory for the Minecraft decompilation process. org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false -version=1.2.2 -minecraft_version=1.19.3 -mcp_mappings=1.19.3 -forge_version=44.0.30 +version=1.3.0 +minecraft_version=1.20.1 +mcp_mappings=1.20.1 +forge_version=47.1.3 diff --git a/src/main/java/tschipp/callablehorses/client/gui/GuiStatViewer.java b/src/main/java/tschipp/callablehorses/client/gui/GuiStatViewer.java index a39d073..b831ee1 100644 --- a/src/main/java/tschipp/callablehorses/client/gui/GuiStatViewer.java +++ b/src/main/java/tschipp/callablehorses/client/gui/GuiStatViewer.java @@ -4,7 +4,7 @@ import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiComponent; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.inventory.InventoryScreen; import net.minecraft.network.chat.Component; @@ -57,7 +57,7 @@ public GuiStatViewer(Player player) { super(Component.literal("Horse Stat Viewer")); this.owner = HorseHelper.getOwnerCap(player); - this.horse = owner.createHorseEntity(player.level); + this.horse = owner.createHorseEntity(player.level()); horse.getAttributes().load(owner.getHorseNBT().getList("Attributes", 10)); // Read // attributes @@ -109,36 +109,35 @@ public GuiStatViewer(Player player) } @Override - public void render(PoseStack stack, int mouseX, int mouseY, float partialTicks) + public void render(GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) { - this.renderBackground(stack); + this.renderBackground(graphics); // GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - RenderSystem.setShaderTexture(0, TEXTURE); int i = (this.width - this.xSize) / 2; int j = (this.height - this.ySize) / 2; - GuiComponent.blit(stack, i, j, 0, 0, this.xSize, this.ySize, 256, 256); + graphics.blit(TEXTURE, i, j, 0, 0, this.xSize, this.ySize, 256, 256); - super.render(stack, mouseX, mouseY, partialTicks); + super.render(graphics, mouseX, mouseY, partialTicks); - InventoryScreen.renderEntityInInventory(i + 43, j + 68, 25, (float) (i + 51) - mouseX, (float) (j + 75 - 50) - mouseY, this.horse); + InventoryScreen.renderEntityInInventoryFollowsMouse(graphics,i + 43, j + 68, 25, (float) (i + 51) - mouseX, (float) (j + 75 - 50) - mouseY, this.horse); - GuiComponent.drawString(stack, mc.font, this.horse.getName(), i + 84, j + 10, DyeColor.WHITE.getTextColor()); + graphics.drawString(mc.font, this.horse.getName(), i + 84, j + 10, DyeColor.WHITE.getTextColor()); - GuiComponent.drawString(stack, mc.font, "Health:", i + 84, j + 30, DyeColor.LIGHT_GRAY.getTextColor()); - GuiComponent.drawString(stack, mc.font, health + "/" + maxHealth, i + 120, j + 30, DyeColor.WHITE.getTextColor()); + graphics.drawString(mc.font, "Health:", i + 84, j + 30, DyeColor.LIGHT_GRAY.getTextColor()); + graphics.drawString(mc.font, health + "/" + maxHealth, i + 120, j + 30, DyeColor.WHITE.getTextColor()); - GuiComponent.drawString(stack, mc.font, "Speed:", i + 84, j + 45, DyeColor.LIGHT_GRAY.getTextColor()); - GuiComponent.drawString(stack, mc.font, speed + "", i + 120, j + 45, DyeColor.WHITE.getTextColor()); + graphics.drawString(mc.font, "Speed:", i + 84, j + 45, DyeColor.LIGHT_GRAY.getTextColor()); + graphics.drawString(mc.font, speed + "", i + 120, j + 45, DyeColor.WHITE.getTextColor()); - GuiComponent.drawString(stack, mc.font, "Jump Height:", i + 84, j + 60, DyeColor.LIGHT_GRAY.getTextColor()); - GuiComponent.drawString(stack, mc.font, jumpHeight + "", i + 148, j + 60, DyeColor.WHITE.getTextColor()); + graphics.drawString(mc.font, "Jump Height:", i + 84, j + 60, DyeColor.LIGHT_GRAY.getTextColor()); + graphics.drawString(mc.font, jumpHeight + "", i + 148, j + 60, DyeColor.WHITE.getTextColor()); - GuiComponent.drawString(stack, mc.font, "Last known position:" + "", i + 8, j + 84, DyeColor.LIGHT_GRAY.getTextColor()); - GuiComponent.drawString(stack, mc.font, lastPos.equals(Vec3.ZERO) ? "Unknown" : "xyz = " + lastPos.x() + " " + lastPos.y() + " " + lastPos.z(), i + 8, j + 94, DyeColor.WHITE.getTextColor()); + graphics.drawString(mc.font, "Last known position:" + "", i + 8, j + 84, DyeColor.LIGHT_GRAY.getTextColor()); + graphics.drawString(mc.font, lastPos.equals(Vec3.ZERO) ? "Unknown" : "xyz = " + lastPos.x() + " " + lastPos.y() + " " + lastPos.z(), i + 8, j + 94, DyeColor.WHITE.getTextColor()); - GuiComponent.drawString(stack, mc.font, "Last known dimension:" + "", i + 8, j + 110, DyeColor.LIGHT_GRAY.getTextColor()); - GuiComponent.drawString(stack, mc.font, this.lastDim.location().toString(), i + 8, j + 120, DyeColor.WHITE.getTextColor()); + graphics.drawString(mc.font, "Last known dimension:" + "", i + 8, j + 110, DyeColor.LIGHT_GRAY.getTextColor()); + graphics.drawString(mc.font, this.lastDim.location().toString(), i + 8, j + 120, DyeColor.WHITE.getTextColor()); } @Override diff --git a/src/main/java/tschipp/callablehorses/common/HorseManager.java b/src/main/java/tschipp/callablehorses/common/HorseManager.java index dfbdf75..cd3df40 100644 --- a/src/main/java/tschipp/callablehorses/common/HorseManager.java +++ b/src/main/java/tschipp/callablehorses/common/HorseManager.java @@ -63,16 +63,16 @@ public static boolean callHorse(Player player) if (!canCallHorse(player)) return false; Random rand = new Random(); - player.level.playSound(player, player.blockPosition(), WhistleSounds.WHISTLE.get(), SoundSource.PLAYERS, 1f, (float) (1.4 + rand.nextGaussian() / 3)); + player.level().playSound(player, player.blockPosition(), WhistleSounds.WHISTLE.get(), SoundSource.PLAYERS, 1f, (float) (1.4 + rand.nextGaussian() / 3)); CallableHorses.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayer)player), new PlayWhistlePacket()); - AbstractHorse e = findHorseWithStorageID(horseOwner.getStorageUUID(), player.level); + AbstractHorse e = findHorseWithStorageID(horseOwner.getStorageUUID(), player.level()); if (e != null) { IStoredHorse horse = HorseHelper.getHorseCap(e); if (horse.getStorageUUID().equals(horseOwner.getStorageUUID())) { - if (e.level.dimensionType() == player.level.dimensionType()) + if (e.level().dimensionType() == player.level().dimensionType()) { e.ejectPassengers(); @@ -105,11 +105,11 @@ public static boolean callHorse(Player player) } // Spawning a new horse with a new num - AbstractHorse newHorse = horseOwner.createHorseEntity(player.level); + AbstractHorse newHorse = horseOwner.createHorseEntity(player.level()); newHorse.setPos(player.getX(), player.getY(), player.getZ()); - player.level.addFreshEntity(newHorse); + player.level().addFreshEntity(newHorse); IStoredHorse h = HorseHelper.getHorseCap(newHorse); - HorseHelper.setHorseNum((ServerLevel) newHorse.level, h.getStorageUUID(), h.getHorseNum()); + HorseHelper.setHorseNum((ServerLevel) newHorse.level(), h.getStorageUUID(), h.getHorseNum()); HorseHelper.sendHorseUpdateInRange(newHorse); HorseHelper.setHorseLastSeen(player); return true; @@ -161,14 +161,14 @@ public static void setHorse(Player player) // Marking any old horses as disbanded if (!ownedID.isEmpty()) { - Entity ent = findHorseWithStorageID(horseOwner.getStorageUUID(), player.level); + Entity ent = findHorseWithStorageID(horseOwner.getStorageUUID(), player.level()); if (ent != null) { clearHorse(HorseHelper.getHorseCap(ent)); } else { - player.level.getServer().getAllLevels().forEach(serverworld -> { + player.level().getServer().getAllLevels().forEach(serverworld -> { StoredHorsesWorldData data = HorseHelper.getWorldData(serverworld); data.disbandHorse(ownedID); }); @@ -180,7 +180,7 @@ public static void setHorse(Player player) // Setting the new horse horseOwner.setHorse((AbstractHorse) e, player); HorseHelper.setHorseLastSeen(player); - HorseHelper.setHorseNum((ServerLevel) e.level, storedHorse.getStorageUUID(), storedHorse.getHorseNum()); + HorseHelper.setHorseNum((ServerLevel) e.level(), storedHorse.getStorageUUID(), storedHorse.getHorseNum()); player.displayClientMessage(Component.translatable("callablehorses.success"), true); HorseHelper.sendHorseUpdateInRange(e); @@ -198,7 +198,7 @@ public static void showHorseStats(ServerPlayer player) return; } - Entity e = findHorseWithStorageID(owner.getStorageUUID(), player.level); + Entity e = findHorseWithStorageID(owner.getStorageUUID(), player.level()); if (e != null) { HorseManager.saveHorse(e); @@ -287,7 +287,7 @@ public static boolean canCallHorse(Player player) endY = player.getY() + 2; endZ = player.getZ() + 1; - Level world = player.level; + Level world = player.level(); for (double x = startX; x <= endX; x++) { @@ -295,7 +295,7 @@ public static boolean canCallHorse(Player player) { for (double z = startZ; z <= endZ; z++) { - BlockPos pos = new BlockPos(x, y, z); + BlockPos pos = new BlockPos((int) x, (int) y, (int) z); BlockState state = world.getBlockState(pos); if (state.getBlock().getCollisionShape(state, world, pos, null) != Shapes.empty()) { @@ -310,7 +310,7 @@ public static boolean canCallHorse(Player player) if (!SERVER.callableInEveryDimension.get()) { List allowedDims = SERVER.callableDimsWhitelist.get(); - ResourceKey playerDim = player.level.dimension(); + ResourceKey playerDim = player.level().dimension(); for (int i = 0; i < allowedDims.size(); i++) { @@ -331,20 +331,20 @@ public static boolean canCallHorse(Player player) if (lastSeenPos.equals(Vec3.ZERO)) return true; - MinecraftServer server = player.level.getServer(); + MinecraftServer server = player.level().getServer(); - Entity livingHorse = findHorseWithStorageID(owner.getStorageUUID(), player.level); + Entity livingHorse = findHorseWithStorageID(owner.getStorageUUID(), player.level()); if (livingHorse != null) { lastSeenPos = livingHorse.position(); - lastSeenDim = livingHorse.level.dimension(); // Dimension + lastSeenDim = livingHorse.level().dimension(); // Dimension // registry // key } double movementFactorHorse = server.getLevel(lastSeenDim).dimensionType().coordinateScale(); // getDimensionType, // getMovementFactor - double movementFactorOwner = player.level.dimensionType().coordinateScale(); + double movementFactorOwner = player.level().dimensionType().coordinateScale(); double movementFactorTotal = movementFactorHorse > movementFactorOwner ? movementFactorHorse / movementFactorOwner : movementFactorOwner / movementFactorHorse; @@ -377,7 +377,7 @@ public static void saveHorse(Entity e) if (abstractHorse.isDeadOrDying()) return; - Level world = e.level; + Level world = e.level(); IStoredHorse horse = HorseHelper.getHorseCap(e); if (horse != null && horse.isOwned()) { @@ -392,7 +392,7 @@ public static void saveHorse(Entity e) { CompoundTag nbt = e.serializeNBT(); horseOwner.setHorseNBT(nbt); - horseOwner.setLastSeenDim(e.level.dimension()); + horseOwner.setLastSeenDim(e.level().dimension()); horseOwner.setLastSeenPosition(e.position()); } else @@ -416,7 +416,7 @@ private static boolean isAreaProtected(Player player, @Nullable Entity fakeHorse { IHorseOwner owner = HorseHelper.getOwnerCap(player); if (fakeHorse == null) - fakeHorse = owner.createHorseEntity(player.level); + fakeHorse = owner.createHorseEntity(player.level()); fakeHorse.setPos(player.getX(), player.getY(), player.getZ()); PlayerInteractEvent.EntityInteract interactEvent = new EntityInteract(player, InteractionHand.MAIN_HAND, fakeHorse); AttackEntityEvent attackEvent = new AttackEntityEvent(player, fakeHorse); diff --git a/src/main/java/tschipp/callablehorses/common/capabilities/horseowner/HorseOwner.java b/src/main/java/tschipp/callablehorses/common/capabilities/horseowner/HorseOwner.java index 7e75b59..5381eeb 100644 --- a/src/main/java/tschipp/callablehorses/common/capabilities/horseowner/HorseOwner.java +++ b/src/main/java/tschipp/callablehorses/common/capabilities/horseowner/HorseOwner.java @@ -178,10 +178,12 @@ public static CompoundTag writeNBT(IHorseOwner instance) { } CompoundTag tag = new CompoundTag(); + Vec3 lastSeen = instance.getLastSeenPosition(); + tag.put("horse", instance.getHorseNBT()); tag.putInt("horseNum", instance.getHorseNum()); tag.putString("uuid", instance.getStorageUUID()); - tag.put("lastSeenPos", NbtUtils.writeBlockPos(new BlockPos(instance.getLastSeenPosition()))); + tag.put("lastSeenPos", NbtUtils.writeBlockPos(new BlockPos((int) lastSeen.x, (int)lastSeen.y, (int)lastSeen.z))); tag.putString("lastSeenDim", instance.getLastSeenDim().location().toString()); return tag; diff --git a/src/main/java/tschipp/callablehorses/common/events/EntityEvents.java b/src/main/java/tschipp/callablehorses/common/events/EntityEvents.java index c3b775d..ea9cab2 100644 --- a/src/main/java/tschipp/callablehorses/common/events/EntityEvents.java +++ b/src/main/java/tschipp/callablehorses/common/events/EntityEvents.java @@ -95,7 +95,7 @@ else if (joiningEntity instanceof AbstractHorse) if (horse.isOwned()) { StoredHorsesWorldData data = HorseHelper.getWorldData((ServerLevel) world); - int globalNum = HorseHelper.getHorseNum((ServerLevel) joiningEntity.level, horse.getStorageUUID()); + int globalNum = HorseHelper.getHorseNum((ServerLevel) joiningEntity.level(), horse.getStorageUUID()); if (globalNum > horse.getHorseNum()) { event.setCanceled(true); @@ -221,7 +221,7 @@ public static void onEntityLeaveWorld(EntityLeaveLevelEvent event) public static void onStopTracking(PlayerEvent.StopTracking event) { Player player = event.getEntity(); - Level world = player.level; + Level world = player.level(); Entity e = event.getTarget(); if (!world.isClientSide && e.isAlive()) @@ -236,7 +236,7 @@ public static void onStopTracking(PlayerEvent.StopTracking event) public static void onStartTracking(PlayerEvent.StartTracking event) { Player player = event.getEntity(); - if (!player.level.isClientSide) + if (!player.level().isClientSide) { Entity target = event.getTarget(); if (target instanceof AbstractHorse) @@ -252,7 +252,7 @@ public static void onLivingUpdate(LivingTickEvent event) { Entity e = event.getEntity(); - if (e instanceof AbstractHorse && !e.level.isClientSide) + if (e instanceof AbstractHorse && !e.level().isClientSide) { if (Configs.SERVER.enableDebug.get() || Configs.SERVER.continuousAntiDupeChecking.get()) { @@ -263,7 +263,7 @@ public static void onLivingUpdate(LivingTickEvent event) if (Configs.SERVER.continuousAntiDupeChecking.get()) { int thisNum = horse.getHorseNum(); - int globalNum = HorseHelper.getHorseNum((ServerLevel) e.level, horse.getStorageUUID()); + int globalNum = HorseHelper.getHorseNum((ServerLevel) e.level(), horse.getStorageUUID()); if (globalNum > thisNum) { // e.setPosition(e.getPosX(), -200, e.getPosZ()); @@ -281,12 +281,12 @@ public static void onLivingDeath(LivingDeathEvent event) { Entity e = event.getEntity(); - if (!e.level.isClientSide && e instanceof AbstractHorse) + if (!e.level().isClientSide && e instanceof AbstractHorse) { IStoredHorse horse = HorseHelper.getHorseCap(e); if (horse.isOwned()) { - Player owner = HorseHelper.getPlayerFromUUID(horse.getOwnerUUID(), e.level); + Player owner = HorseHelper.getPlayerFromUUID(horse.getOwnerUUID(), e.level()); if (owner != null) { IHorseOwner horseOwner = HorseHelper.getOwnerCap(owner); @@ -298,7 +298,7 @@ public static void onLivingDeath(LivingDeathEvent event) else { HorseManager.saveHorse(e); - AbstractHorse deadHorse = horseOwner.createHorseEntity(owner.level); + AbstractHorse deadHorse = horseOwner.createHorseEntity(owner.level()); HorseManager.prepDeadHorseForRespawning(deadHorse); horseOwner.setHorseNBT(deadHorse.serializeNBT()); horseOwner.setLastSeenPosition(Vec3.ZERO); @@ -308,7 +308,7 @@ public static void onLivingDeath(LivingDeathEvent event) else { CallableHorses.LOGGER.debug(e + " was marked as killed."); - e.level.getServer().getAllLevels().forEach(serverworld -> { + e.level().getServer().getAllLevels().forEach(serverworld -> { HorseHelper.getWorldData(serverworld).markKilled(horse.getStorageUUID()); }); } diff --git a/src/main/java/tschipp/callablehorses/common/helper/HorseHelper.java b/src/main/java/tschipp/callablehorses/common/helper/HorseHelper.java index d02521e..89297f2 100644 --- a/src/main/java/tschipp/callablehorses/common/helper/HorseHelper.java +++ b/src/main/java/tschipp/callablehorses/common/helper/HorseHelper.java @@ -55,7 +55,7 @@ public static IStoredHorse getHorseCap(Entity horse) public static void sendHorseUpdateInRange(Entity horse) { IStoredHorse storedHorse = getHorseCap(horse); - CallableHorses.network.send(PacketDistributor.NEAR.with(() -> new TargetPoint(horse.getX(), horse.getZ(), horse.getZ(), 32, horse.level.dimension())), new HorseCapSyncPacket(horse.getId(), storedHorse)); + CallableHorses.network.send(PacketDistributor.NEAR.with(() -> new TargetPoint(horse.getX(), horse.getZ(), horse.getZ(), 32, horse.level().dimension())), new HorseCapSyncPacket(horse.getId(), storedHorse)); } public static void sendHorseUpdateToClient(Entity horse, Player player) @@ -91,7 +91,7 @@ public static void setHorseLastSeen(Player player) { IHorseOwner owner = getOwnerCap(player); owner.setLastSeenPosition(player.position()); - owner.setLastSeenDim(player.level.dimension()); + owner.setLastSeenDim(player.level().dimension()); } public static StoredHorsesWorldData getWorldData(ServerLevel world) diff --git a/src/main/java/tschipp/callablehorses/network/PlayWhistlePacket.java b/src/main/java/tschipp/callablehorses/network/PlayWhistlePacket.java index bd6a62e..fc35c4d 100644 --- a/src/main/java/tschipp/callablehorses/network/PlayWhistlePacket.java +++ b/src/main/java/tschipp/callablehorses/network/PlayWhistlePacket.java @@ -35,7 +35,7 @@ public void handle(Supplier context) if (player != null) { Random rand = new Random(); - player.level.playSound(player, player.blockPosition(), WhistleSounds.WHISTLE.get(), SoundSource.PLAYERS, 1f, (float) (1.4 + rand.nextGaussian() / 3)); + player.level().playSound(player, player.blockPosition(), WhistleSounds.WHISTLE.get(), SoundSource.PLAYERS, 1f, (float) (1.4 + rand.nextGaussian() / 3)); } } }); diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index 60da128..a8208b2 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -1,5 +1,5 @@ modLoader="javafml" #mandatory -loaderVersion="[44,)" #mandatory This is typically bumped every Minecraft version by Forge. See our download page for lists of versions. +loaderVersion="[46,)" #mandatory This is typically bumped every Minecraft version by Forge. See our download page for lists of versions. license="GNU LGPLv3" logoFile="logo.png" #optional @@ -17,7 +17,7 @@ logoFile="logo.png" #optional # Does this dependency have to exist - if not, ordering below must be specified mandatory=true #mandatory # The version range of the dependency - versionRange="[44.0.30,)" #mandatory + versionRange="[46,)" #mandatory # An ordering relationship for the dependency - BEFORE or AFTER required if the relationship is not mandatory ordering="NONE" # Side this dependency is applied on - BOTH, CLIENT or SERVER @@ -26,6 +26,6 @@ logoFile="logo.png" #optional [[dependencies.callablehorses]] modId="minecraft" mandatory=true - versionRange="[1.19.3,1.20)" + versionRange="[1.20,1.21)" ordering="NONE" side="BOTH" From f97df042d229256a9a8555e4aaa4655d481d76fa Mon Sep 17 00:00:00 2001 From: Brian Date: Mon, 18 Dec 2023 18:13:17 -0300 Subject: [PATCH 2/3] Actually fixed horse_drop.json horse_drop.json requires a type referencing the mod's defined loot modifier, and "this" should be lowercase to avoid issues --- .../data/callablehorses/loot_modifiers/horse_drop.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/resources/data/callablehorses/loot_modifiers/horse_drop.json b/src/main/resources/data/callablehorses/loot_modifiers/horse_drop.json index c96bf20..ea0ba6b 100644 --- a/src/main/resources/data/callablehorses/loot_modifiers/horse_drop.json +++ b/src/main/resources/data/callablehorses/loot_modifiers/horse_drop.json @@ -1,11 +1,12 @@ { + "type": "callablehorses:horse_drop", "conditions": [ { "condition": "minecraft:entity_properties", "predicate": { "type": "#callablehorses:callablehorses" }, - "entity": "THIS" + "entity": "this" } ] -} \ No newline at end of file +} From 7ec42471b660a8ab591708da300d5ef5e09acc46 Mon Sep 17 00:00:00 2001 From: Brian Date: Mon, 18 Dec 2023 18:32:29 -0300 Subject: [PATCH 3/3] Update HorseDropModifier.java Added an actual check if the disableHorseDrops setting is on --- .../callablehorses/common/loot/HorseDropModifier.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/tschipp/callablehorses/common/loot/HorseDropModifier.java b/src/main/java/tschipp/callablehorses/common/loot/HorseDropModifier.java index 2fd5e0d..0f2cb47 100644 --- a/src/main/java/tschipp/callablehorses/common/loot/HorseDropModifier.java +++ b/src/main/java/tschipp/callablehorses/common/loot/HorseDropModifier.java @@ -19,6 +19,7 @@ import org.jetbrains.annotations.NotNull; import tschipp.callablehorses.CallableHorses; import tschipp.callablehorses.common.capabilities.storedhorse.IStoredHorse; +import tschipp.callablehorses.common.config.Configs; import tschipp.callablehorses.common.helper.HorseHelper; public class HorseDropModifier extends LootModifier @@ -51,7 +52,10 @@ protected HorseDropModifier(LootItemCondition[] conditionsIn) IStoredHorse horse = HorseHelper.getHorseCap(entity); if (horse != null && horse.isOwned()) { - generatedLoot.clear(); + if (Configs.SERVER.disableHorseDrops.get()) + { + generatedLoot.clear(); + } } } }