From 07a4d217c4292342c0c139336e6616fe4f351125 Mon Sep 17 00:00:00 2001 From: kahzerx Date: Sun, 24 Sep 2023 16:38:23 +0200 Subject: [PATCH 1/2] 1.20.2 release --- gradle.properties | 6 ++--- .../extensions/fbiExtension/FBICommand.java | 6 ++--- .../ScoreboardExtension.java | 21 +++++++-------- .../kahzerxmod/klone/KlonePlayerEntity.java | 14 ++++++---- .../kloneExtension/NetworkHandlerMixin.java | 26 ++++++++++++++----- .../kloneExtension/PlayerManagerMixin.java | 3 ++- ...a => ServerCommonNetworkHandlerMixin.java} | 18 ++++++++----- .../mixin/seedExtension/seedCommandMixin.java | 1 + .../mixin/server/PlayerEventsMixins.java | 13 ++++++---- .../VillagerEntityMixin.java | 2 ++ src/main/resources/kahzerx.mixins.json | 2 +- 11 files changed, 70 insertions(+), 42 deletions(-) rename src/main/java/com/kahzerx/kahzerxmod/mixin/noReports/{ServerPlayNetworkHandlerMixin.java => ServerCommonNetworkHandlerMixin.java} (70%) diff --git a/gradle.properties b/gradle.properties index 631d398..ccaa24c 100755 --- a/gradle.properties +++ b/gradle.properties @@ -3,9 +3,9 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://fabricmc.net/versions.html -minecraft_version=1.20.1 -yarn_mappings=1.20.1+build.2 -loader_version=0.14.21 +minecraft_version=1.20.2 +yarn_mappings=1.20.2+build.1 +loader_version=0.14.22 # Mod Properties mod_version = 4.6 diff --git a/src/main/java/com/kahzerx/kahzerxmod/extensions/fbiExtension/FBICommand.java b/src/main/java/com/kahzerx/kahzerxmod/extensions/fbiExtension/FBICommand.java index b6734f3..bdc3464 100644 --- a/src/main/java/com/kahzerx/kahzerxmod/extensions/fbiExtension/FBICommand.java +++ b/src/main/java/com/kahzerx/kahzerxmod/extensions/fbiExtension/FBICommand.java @@ -4,7 +4,7 @@ import net.minecraft.network.packet.s2c.play.EntitiesDestroyS2CPacket; import net.minecraft.network.packet.s2c.play.PlayerListS2CPacket; import net.minecraft.network.packet.s2c.play.PlayerRemoveS2CPacket; -import net.minecraft.network.packet.s2c.play.PlayerSpawnS2CPacket; +import net.minecraft.network.packet.s2c.play.PlayerSpawnPositionS2CPacket; import net.minecraft.server.MinecraftServer; import net.minecraft.server.command.ServerCommandSource; import net.minecraft.server.network.ServerPlayerEntity; @@ -37,7 +37,7 @@ public void register(CommandDispatcher dispatcher, FBIExten continue; } p.networkHandler.sendPacket(new PlayerListS2CPacket(PlayerListS2CPacket.Action.ADD_PLAYER, player)); - p.networkHandler.sendPacket(new PlayerSpawnS2CPacket(player)); + p.networkHandler.sendPacket(new PlayerSpawnPositionS2CPacket(player.getBlockPos(), player.getSpawnAngle())); } server.getPlayerManager().broadcast(Text.translatable("multiplayer.player.joined", new Object[]{player.getDisplayName()}).formatted(Formatting.YELLOW), false); } else { @@ -51,7 +51,7 @@ public void register(CommandDispatcher dispatcher, FBIExten } player.changeGameMode(GameMode.SPECTATOR); // server.getPlayerManager().broadcast(Text.translatable("multiplayer.player.joined", new Object[]{player.getDisplayName()}).formatted(Formatting.YELLOW), MessageType.SYSTEM); - server.getPlayerManager().broadcast(Text.translatable("multiplayer.player.left", new Object[]{player.getDisplayName()}).formatted(Formatting.YELLOW), false); + server.getPlayerManager().broadcast(Text.translatable("multiplayer.player.left", player.getDisplayName()).formatted(Formatting.YELLOW), false); } return 1; })); diff --git a/src/main/java/com/kahzerx/kahzerxmod/extensions/scoreboardExtension/ScoreboardExtension.java b/src/main/java/com/kahzerx/kahzerxmod/extensions/scoreboardExtension/ScoreboardExtension.java index bea3716..2f96f0d 100755 --- a/src/main/java/com/kahzerx/kahzerxmod/extensions/scoreboardExtension/ScoreboardExtension.java +++ b/src/main/java/com/kahzerx/kahzerxmod/extensions/scoreboardExtension/ScoreboardExtension.java @@ -13,10 +13,7 @@ import net.minecraft.entity.EntityType; import net.minecraft.item.Item; import net.minecraft.registry.entry.RegistryEntry; -import net.minecraft.scoreboard.Scoreboard; -import net.minecraft.scoreboard.ScoreboardCriterion; -import net.minecraft.scoreboard.ScoreboardObjective; -import net.minecraft.scoreboard.ScoreboardPlayerScore; +import net.minecraft.scoreboard.*; import net.minecraft.server.MinecraftServer; import net.minecraft.server.command.ServerCommandSource; import net.minecraft.server.network.ServerPlayerEntity; @@ -89,19 +86,19 @@ public ExtensionSettings extensionSettings() { private void hideSidebar(MinecraftServer server) { Scoreboard scoreboard = server.getScoreboard(); - if (scoreboard.getObjectiveForSlot(1) != null) { - scoreboard.setObjectiveSlot(1, null); + if (scoreboard.getObjectiveForSlot(ScoreboardDisplaySlot.SIDEBAR) != null) { + scoreboard.setObjectiveSlot(ScoreboardDisplaySlot.SIDEBAR, null); } } public int hideSidebar(ServerCommandSource source) { Scoreboard scoreboard = source.getServer().getScoreboard(); Entity entity = source.getEntity(); - if (scoreboard.getObjectiveForSlot(1) == null) { + if (scoreboard.getObjectiveForSlot(ScoreboardDisplaySlot.SIDEBAR) == null) { source.sendFeedback(MarkEnum.CROSS.appendMessage("There is no scoreboard"), false); return 1; } else { - scoreboard.setObjectiveSlot(1, null); + scoreboard.setObjectiveSlot(ScoreboardDisplaySlot.SIDEBAR, null); assert entity != null; source.getServer().getPlayerManager().broadcast(MarkEnum.TICK.appendMsg(entity.getEntityName() + " removed the scoreboard."), false); } @@ -137,11 +134,11 @@ public void startCustomSB(String name, String sbName, String command, ServerComm public Text display(Scoreboard scoreboard, ScoreboardObjective scoreboardObjective, int tick, Entity entity, boolean persistent) { Text text; - if (scoreboard.getObjectiveForSlot(1) == scoreboardObjective) { + if (scoreboard.getObjectiveForSlot(ScoreboardDisplaySlot.SIDEBAR) == scoreboardObjective) { text = MarkEnum.CROSS.appendMsg("Already showing"); } else { assert entity != null; - scoreboard.setObjectiveSlot(1, scoreboardObjective); + scoreboard.setObjectiveSlot(ScoreboardDisplaySlot.SIDEBAR, scoreboardObjective); if (persistent) { tickSet = -100; } else { @@ -189,7 +186,7 @@ public void showSideBar(ServerCommandSource source, Identifier id, String type, return; } - scoreboard.setObjectiveSlot(1, newScoreboardObjective); + scoreboard.setObjectiveSlot(ScoreboardDisplaySlot.SIDEBAR, newScoreboardObjective); if (persistent) { tickSet = -100; } else { @@ -236,7 +233,7 @@ public void showSideBar(ServerCommandSource source, ItemStackArgument item, Stri return; } - scoreboard.setObjectiveSlot(1, newScoreboardObjective); + scoreboard.setObjectiveSlot(ScoreboardDisplaySlot.SIDEBAR, newScoreboardObjective); if (persistent) { tickSet = -100; } else { diff --git a/src/main/java/com/kahzerx/kahzerxmod/klone/KlonePlayerEntity.java b/src/main/java/com/kahzerx/kahzerxmod/klone/KlonePlayerEntity.java index 49e1c74..aac1b15 100755 --- a/src/main/java/com/kahzerx/kahzerxmod/klone/KlonePlayerEntity.java +++ b/src/main/java/com/kahzerx/kahzerxmod/klone/KlonePlayerEntity.java @@ -7,12 +7,14 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.network.NetworkSide; import net.minecraft.network.PacketCallbacks; +import net.minecraft.network.packet.c2s.common.SyncedClientOptions; import net.minecraft.network.packet.s2c.play.DeathMessageS2CPacket; import net.minecraft.network.packet.s2c.play.EntityPositionS2CPacket; import net.minecraft.network.packet.s2c.play.EntitySetHeadYawS2CPacket; import net.minecraft.network.packet.s2c.play.PlayerListS2CPacket; import net.minecraft.server.MinecraftServer; import net.minecraft.server.ServerTask; +import net.minecraft.server.network.ConnectedClientData; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.server.world.ServerWorld; import net.minecraft.text.HoverEvent; @@ -26,8 +28,10 @@ public class KlonePlayerEntity extends ServerPlayerEntity { private final LocalDateTime timeout; private final KloneExtension kloneExtension; - public KlonePlayerEntity(MinecraftServer server, ServerWorld world, GameProfile profile, KloneExtension kloneExtension) { - super(server, world, profile); + + // TODO doesn't seem to work anymore? + public KlonePlayerEntity(MinecraftServer server, ServerWorld world, GameProfile profile, SyncedClientOptions clientOptions, KloneExtension kloneExtension) { + super(server, world, profile, clientOptions); this.timeout = LocalDateTime.now().plusDays(1); // TODO this has to be customizable this.kloneExtension = kloneExtension; } @@ -45,11 +49,11 @@ public static KlonePlayerEntity createKlone(MinecraftServer server, ServerPlayer // server.getPlayerManager().sendToAll(new PlayerListS2CPacket(PlayerListS2CPacket.Action.REMOVE_PLAYER, player)); player.networkHandler.disconnect(Text.literal("A clone has been created.\nThe clone will leave once you rejoin.\nHappy AFK!")); - KlonePlayerEntity klonedPlayer = new KlonePlayerEntity(server, world, profile, kloneExtension); + KlonePlayerEntity klonedPlayer = new KlonePlayerEntity(server, world, profile, player.getClientOptions(), kloneExtension); // KlonePlayerEntity klonedPlayer = new KlonePlayerEntity(server, world, profile); klonedPlayer.refreshPositionAndAngles(player.getX(), player.getY(), player.getZ(), player.getYaw(), player.getPitch()); - server.getPlayerManager().onPlayerConnect(new KloneNetworkManager(NetworkSide.SERVERBOUND), klonedPlayer); + server.getPlayerManager().onPlayerConnect(new KloneNetworkManager(NetworkSide.SERVERBOUND), klonedPlayer, new ConnectedClientData(profile, 0, klonedPlayer.getClientOptions())); klonedPlayer.teleport(world, player.getX(), player.getY(), player.getZ(), player.getYaw(), player.getPitch()); klonedPlayer.setHealth(player.getHealth()); klonedPlayer.unsetRemoved(); @@ -109,7 +113,7 @@ public void onDeath(DamageSource source) { this.hungerManager = new HungerManager(); Text text = this.getDamageTracker().getDeathMessage(); if (this.getWorld().getGameRules().getBoolean(GameRules.SHOW_DEATH_MESSAGES)) { - this.networkHandler.sendPacket(new DeathMessageS2CPacket(this.getId(), text), PacketCallbacks.of(() -> { + this.networkHandler.send(new DeathMessageS2CPacket(this.getId(), text), PacketCallbacks.of(() -> { String string = text.asTruncatedString(256); Text text2 = Text.translatable("death.attack.message_too_long", Text.literal(string).formatted(Formatting.YELLOW)); Text text3 = Text.translatable("death.attack.even_more_magic", this.getDisplayName()).styled((style) -> style.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, text2))); diff --git a/src/main/java/com/kahzerx/kahzerxmod/mixin/kloneExtension/NetworkHandlerMixin.java b/src/main/java/com/kahzerx/kahzerxmod/mixin/kloneExtension/NetworkHandlerMixin.java index c002b39..5e3e1e1 100755 --- a/src/main/java/com/kahzerx/kahzerxmod/mixin/kloneExtension/NetworkHandlerMixin.java +++ b/src/main/java/com/kahzerx/kahzerxmod/mixin/kloneExtension/NetworkHandlerMixin.java @@ -1,32 +1,46 @@ package com.kahzerx.kahzerxmod.mixin.kloneExtension; import com.kahzerx.kahzerxmod.klone.KlonePlayerEntity; +import com.mojang.authlib.GameProfile; +import net.minecraft.network.ClientConnection; import net.minecraft.network.packet.Packet; +import net.minecraft.server.MinecraftServer; +import net.minecraft.server.network.ConnectedClientData; +import net.minecraft.server.network.ServerCommonNetworkHandler; import net.minecraft.server.network.ServerPlayNetworkHandler; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.text.Text; +import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -@Mixin(value = ServerPlayNetworkHandler.class, priority = 69420) -public class NetworkHandlerMixin { - @Shadow public ServerPlayerEntity player; +@Mixin(value = ServerCommonNetworkHandler.class, priority = 69420) +public abstract class NetworkHandlerMixin { + @Shadow protected abstract GameProfile getProfile(); + + @Shadow @Final protected MinecraftServer server; @Inject(method = "sendPacket(Lnet/minecraft/network/packet/Packet;)V", at = @At("HEAD"), cancellable = true) private void onSendPacket(Packet packet, CallbackInfo ci) { - if (player instanceof KlonePlayerEntity) { + if (this.getPlayer() instanceof KlonePlayerEntity) { ci.cancel(); } } @Inject(method = "disconnect", at = @At("HEAD"), cancellable = true) private void onDisconnect(Text reason, CallbackInfo ci) { - if (player instanceof KlonePlayerEntity) { - ((KlonePlayerEntity) player).kill(reason); + if (this.getPlayer() instanceof KlonePlayerEntity) { + ((KlonePlayerEntity) this.getPlayer()).kill(reason); ci.cancel(); } } + + @Unique + private ServerPlayerEntity getPlayer() { + return this.server.getPlayerManager().getPlayer(this.getProfile().getId()); + } } diff --git a/src/main/java/com/kahzerx/kahzerxmod/mixin/kloneExtension/PlayerManagerMixin.java b/src/main/java/com/kahzerx/kahzerxmod/mixin/kloneExtension/PlayerManagerMixin.java index b61f300..1d43cc5 100755 --- a/src/main/java/com/kahzerx/kahzerxmod/mixin/kloneExtension/PlayerManagerMixin.java +++ b/src/main/java/com/kahzerx/kahzerxmod/mixin/kloneExtension/PlayerManagerMixin.java @@ -2,6 +2,7 @@ import com.kahzerx.kahzerxmod.klone.KlonePlayerEntity; import com.mojang.authlib.GameProfile; +import net.minecraft.network.packet.c2s.common.SyncedClientOptions; import net.minecraft.server.PlayerManager; import net.minecraft.server.network.ServerPlayerEntity; import org.spongepowered.asm.mixin.Mixin; @@ -17,7 +18,7 @@ public abstract class PlayerManagerMixin { @Shadow public abstract List getPlayerList(); @Inject(method = "createPlayer", at = @At("HEAD")) - private void onCreatePlayer(GameProfile profile, CallbackInfoReturnable cir) { + private void onCreatePlayer(GameProfile profile, SyncedClientOptions syncedOptions, CallbackInfoReturnable cir) { for (ServerPlayerEntity player : getPlayerList()) { if (player.getGameProfile().getId().equals(profile.getId()) && player.getClass() == KlonePlayerEntity.class) { ((KlonePlayerEntity) player).kill(); diff --git a/src/main/java/com/kahzerx/kahzerxmod/mixin/noReports/ServerPlayNetworkHandlerMixin.java b/src/main/java/com/kahzerx/kahzerxmod/mixin/noReports/ServerCommonNetworkHandlerMixin.java similarity index 70% rename from src/main/java/com/kahzerx/kahzerxmod/mixin/noReports/ServerPlayNetworkHandlerMixin.java rename to src/main/java/com/kahzerx/kahzerxmod/mixin/noReports/ServerCommonNetworkHandlerMixin.java index 6b031c7..244d99f 100644 --- a/src/main/java/com/kahzerx/kahzerxmod/mixin/noReports/ServerPlayNetworkHandlerMixin.java +++ b/src/main/java/com/kahzerx/kahzerxmod/mixin/noReports/ServerCommonNetworkHandlerMixin.java @@ -1,26 +1,31 @@ package com.kahzerx.kahzerxmod.mixin.noReports; +import net.minecraft.network.listener.ServerCommonPacketListener; import net.minecraft.network.packet.Packet; import net.minecraft.network.PacketCallbacks; import net.minecraft.network.listener.ServerPlayPacketListener; import net.minecraft.network.packet.s2c.play.ChatMessageS2CPacket; import net.minecraft.network.packet.s2c.play.GameMessageS2CPacket; +import net.minecraft.server.MinecraftServer; +import net.minecraft.server.network.ServerCommonNetworkHandler; import net.minecraft.server.network.ServerPlayNetworkHandler; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.text.Text; +import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -@Mixin(ServerPlayNetworkHandler.class) -public abstract class ServerPlayNetworkHandlerMixin implements ServerPlayPacketListener { +@Mixin(ServerCommonNetworkHandler.class) +public abstract class ServerCommonNetworkHandlerMixin implements ServerCommonPacketListener { @Shadow public abstract void sendPacket(Packet packet); - @Shadow public ServerPlayerEntity player; + @Shadow @Final protected MinecraftServer server; - @Inject(method = "sendPacket(Lnet/minecraft/network/packet/Packet;)V", at = @At(value = "HEAD"), cancellable = true) + @Inject(method = "sendPacket", at = @At(value = "HEAD"), cancellable = true) private void onSend(Packet packet, CallbackInfo ci) { if (packet instanceof ChatMessageS2CPacket chatPacket) { ci.cancel(); @@ -28,7 +33,7 @@ private void onSend(Packet packet, CallbackInfo ci) { } } - @Inject(method = "sendPacket(Lnet/minecraft/network/packet/Packet;Lnet/minecraft/network/PacketCallbacks;)V", at = @At(value = "HEAD"), cancellable = true) + @Inject(method = "send", at = @At(value = "HEAD"), cancellable = true) private void onSend(Packet packet, PacketCallbacks callbacks, CallbackInfo ci) { if (packet instanceof ChatMessageS2CPacket chatPacket) { ci.cancel(); @@ -36,9 +41,10 @@ private void onSend(Packet packet, PacketCallbacks callbacks, CallbackInfo ci } } + @Unique private void replaceChatMessage(ChatMessageS2CPacket chatPacket) { GameMessageS2CPacket gamePacket = new GameMessageS2CPacket( - chatPacket.serializedParameters().toParameters(this.player.getServerWorld().getRegistryManager()).get().applyChatDecoration( + chatPacket.serializedParameters().toParameters(this.server.getOverworld().getRegistryManager()).get().applyChatDecoration( chatPacket.unsignedContent() != null ? chatPacket.unsignedContent() : Text.literal(chatPacket.body().content()) ), false ); diff --git a/src/main/java/com/kahzerx/kahzerxmod/mixin/seedExtension/seedCommandMixin.java b/src/main/java/com/kahzerx/kahzerxmod/mixin/seedExtension/seedCommandMixin.java index 55106d9..b7e29c3 100755 --- a/src/main/java/com/kahzerx/kahzerxmod/mixin/seedExtension/seedCommandMixin.java +++ b/src/main/java/com/kahzerx/kahzerxmod/mixin/seedExtension/seedCommandMixin.java @@ -10,6 +10,7 @@ @Mixin(SeedCommand.class) public class seedCommandMixin { + // TODO inject in the hasPermission method @Inject(method = "register", at = @At(value = "HEAD"), cancellable = true) private static void onRegisterCommand(CommandDispatcher dispatcher, boolean dedicated, CallbackInfo ci) { ci.cancel(); diff --git a/src/main/java/com/kahzerx/kahzerxmod/mixin/server/PlayerEventsMixins.java b/src/main/java/com/kahzerx/kahzerxmod/mixin/server/PlayerEventsMixins.java index 39bf190..38c0ad5 100755 --- a/src/main/java/com/kahzerx/kahzerxmod/mixin/server/PlayerEventsMixins.java +++ b/src/main/java/com/kahzerx/kahzerxmod/mixin/server/PlayerEventsMixins.java @@ -2,6 +2,8 @@ import com.kahzerx.kahzerxmod.KahzerxServer; import net.minecraft.advancement.Advancement; +import net.minecraft.advancement.AdvancementDisplay; +import net.minecraft.advancement.AdvancementEntry; import net.minecraft.advancement.PlayerAdvancementTracker; import net.minecraft.block.Block; import net.minecraft.block.BlockState; @@ -11,6 +13,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.network.ClientConnection; import net.minecraft.server.PlayerManager; +import net.minecraft.server.network.ConnectedClientData; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.server.network.ServerPlayerInteractionManager; import net.minecraft.server.world.ServerWorld; @@ -38,12 +41,12 @@ private void onPlayerLeft(ServerPlayerEntity player, CallbackInfo ci) { } @Inject(method = "onPlayerConnect", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/PlayerManager;loadPlayerData(Lnet/minecraft/server/network/ServerPlayerEntity;)Lnet/minecraft/nbt/NbtCompound;", shift = At.Shift.AFTER)) - private void onPlayerJoined(ClientConnection connection, ServerPlayerEntity player, CallbackInfo ci) { + private void onPlayerJoined(ClientConnection connection, ServerPlayerEntity player, ConnectedClientData clientData, CallbackInfo ci) { KahzerxServer.onPlayerJoined(player); } @Inject(method = "onPlayerConnect", at = @At("TAIL")) - private void onPlayerConnected(ClientConnection connection, ServerPlayerEntity player, CallbackInfo ci) { + private void onPlayerConnected(ClientConnection connection, ServerPlayerEntity player, ConnectedClientData clientData, CallbackInfo ci) { KahzerxServer.onPlayerConnected(player); } } @@ -88,9 +91,9 @@ private void onPlayerClicker(Hand hand, CallbackInfo ci) { public static class PlayerAdvancement { @Shadow private ServerPlayerEntity owner; - @Inject(method = "grantCriterion", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/PlayerManager;broadcast(Lnet/minecraft/text/Text;Z)V")) - private void onAdvancement(Advancement advancement, String criterionName, CallbackInfoReturnable cir) { - Text text = Text.translatable("chat.type.advancement." + Objects.requireNonNull(advancement.getDisplay()).getFrame().getId(), owner.getDisplayName(), advancement.toHoverableText()); + @Inject(method = "method_53637", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/PlayerManager;broadcast(Lnet/minecraft/text/Text;Z)V")) + private void onAdvancement(AdvancementEntry advancementEntry, AdvancementDisplay display, CallbackInfo ci) { + Text text = Text.translatable("chat.type.advancement." + display.getFrame().getId(), owner.getDisplayName(), Advancement.getNameFromIdentity(advancementEntry)); KahzerxServer.onAdvancement(text.getString().replace("_", "\\_")); } } diff --git a/src/main/java/com/kahzerx/kahzerxmod/mixin/villagersFollowEmeraldExtension/VillagerEntityMixin.java b/src/main/java/com/kahzerx/kahzerxmod/mixin/villagersFollowEmeraldExtension/VillagerEntityMixin.java index be2c3a9..65e9f86 100755 --- a/src/main/java/com/kahzerx/kahzerxmod/mixin/villagersFollowEmeraldExtension/VillagerEntityMixin.java +++ b/src/main/java/com/kahzerx/kahzerxmod/mixin/villagersFollowEmeraldExtension/VillagerEntityMixin.java @@ -8,12 +8,14 @@ import net.minecraft.item.Items; import net.minecraft.world.World; 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.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(VillagerEntity.class) public abstract class VillagerEntityMixin extends MerchantEntity { + @Unique private PlayerEntity player = null; public VillagerEntityMixin(EntityType entityType, World world) { diff --git a/src/main/resources/kahzerx.mixins.json b/src/main/resources/kahzerx.mixins.json index 895fd01..31d1bf5 100755 --- a/src/main/resources/kahzerx.mixins.json +++ b/src/main/resources/kahzerx.mixins.json @@ -25,8 +25,8 @@ "noReports.DedicatedServerMixin", "noReports.PlayerManagerMixin", "noReports.PlayerSessionC2SPacketMixin", + "noReports.ServerCommonNetworkHandlerMixin", "noReports.ServerMetadataMixin", - "noReports.ServerPlayNetworkHandlerMixin", "opOnWhitelistExtension.ServerConfigMixin", "playerDropsSkullExtension.PlayerEntityMixin", "pranksExtension.PlayerMixin", From f1b5f808253dad332f83671a4454c36efc462774 Mon Sep 17 00:00:00 2001 From: kahzerx Date: Sun, 24 Sep 2023 16:38:57 +0200 Subject: [PATCH 2/2] workflow update --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ae1eb95..c445419 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -29,6 +29,6 @@ jobs: with: repo_token: "${{ secrets.GITHUB_TOKEN }}" prerelease: false - automatic_release_tag: 1.20.1 + automatic_release_tag: 1.20.2 files: | build/libs/*.jar