From dba4bb2056349d4188bf494036f439cad655f413 Mon Sep 17 00:00:00 2001 From: amyavi <144570677+amyavi@users.noreply.github.com> Date: Tue, 31 Dec 2024 01:22:17 -0300 Subject: [PATCH 1/3] refactor: turn Listener into an interface --- .../chipmunk/chipmunkmod/listeners/Listener.java | 12 ++++++------ .../chipmunk/chipmunkmod/modules/ChomeNSAuth.java | 2 +- .../modules/ChomeNSBotCommandSuggestions.java | 2 +- .../chipmunk/chipmunkmod/modules/KaboomCheck.java | 2 +- .../land/chipmunk/chipmunkmod/modules/SelfCare.java | 2 +- .../chipmunk/chipmunkmod/modules/TabComplete.java | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main/java/land/chipmunk/chipmunkmod/listeners/Listener.java b/src/main/java/land/chipmunk/chipmunkmod/listeners/Listener.java index 26864e8..959fb94 100644 --- a/src/main/java/land/chipmunk/chipmunkmod/listeners/Listener.java +++ b/src/main/java/land/chipmunk/chipmunkmod/listeners/Listener.java @@ -3,14 +3,14 @@ package land.chipmunk.chipmunkmod.listeners; import net.minecraft.network.packet.Packet; import net.minecraft.text.Text; -public class Listener { - public void chatMessageReceived (Text message) {} +public interface Listener { + default void chatMessageReceived (Text message) {} - public void packetReceived (Packet packet) {} + default void packetReceived (Packet packet) {} - public void packetSent (Packet packet) {} + default void packetSent (Packet packet) {} - public void coreReady () {} + default void coreReady () {} - public void coreMoved () {} + default void coreMoved () {} } diff --git a/src/main/java/land/chipmunk/chipmunkmod/modules/ChomeNSAuth.java b/src/main/java/land/chipmunk/chipmunkmod/modules/ChomeNSAuth.java index ad87f2e..3e25f58 100644 --- a/src/main/java/land/chipmunk/chipmunkmod/modules/ChomeNSAuth.java +++ b/src/main/java/land/chipmunk/chipmunkmod/modules/ChomeNSAuth.java @@ -13,7 +13,7 @@ import net.minecraft.text.TextContent; import java.nio.charset.StandardCharsets; import java.util.List; -public class ChomeNSAuth extends Listener { +public class ChomeNSAuth implements Listener { public static final ChomeNSAuth INSTANCE = new ChomeNSAuth(); public final String id = "chomens_bot_verify"; diff --git a/src/main/java/land/chipmunk/chipmunkmod/modules/ChomeNSBotCommandSuggestions.java b/src/main/java/land/chipmunk/chipmunkmod/modules/ChomeNSBotCommandSuggestions.java index 4193fd5..0861917 100644 --- a/src/main/java/land/chipmunk/chipmunkmod/modules/ChomeNSBotCommandSuggestions.java +++ b/src/main/java/land/chipmunk/chipmunkmod/modules/ChomeNSBotCommandSuggestions.java @@ -15,7 +15,7 @@ import net.minecraft.text.Text; import java.util.ArrayList; import java.util.List; -public class ChomeNSBotCommandSuggestions extends Listener { +public class ChomeNSBotCommandSuggestions implements Listener { public static final String ID = "chomens_bot_request_command_suggestion"; public static ChomeNSBotCommandSuggestions INSTANCE = new ChomeNSBotCommandSuggestions(MinecraftClient.getInstance()); diff --git a/src/main/java/land/chipmunk/chipmunkmod/modules/KaboomCheck.java b/src/main/java/land/chipmunk/chipmunkmod/modules/KaboomCheck.java index d62d3af..34f6c6e 100644 --- a/src/main/java/land/chipmunk/chipmunkmod/modules/KaboomCheck.java +++ b/src/main/java/land/chipmunk/chipmunkmod/modules/KaboomCheck.java @@ -12,7 +12,7 @@ import java.util.Timer; import java.util.TimerTask; import java.util.concurrent.CompletableFuture; -public class KaboomCheck extends Listener { +public class KaboomCheck implements Listener { public boolean isKaboom = false; private Timer timer = null; diff --git a/src/main/java/land/chipmunk/chipmunkmod/modules/SelfCare.java b/src/main/java/land/chipmunk/chipmunkmod/modules/SelfCare.java index 32de7a5..ab88f06 100644 --- a/src/main/java/land/chipmunk/chipmunkmod/modules/SelfCare.java +++ b/src/main/java/land/chipmunk/chipmunkmod/modules/SelfCare.java @@ -17,7 +17,7 @@ import java.util.TimerTask; import static land.chipmunk.chipmunkmod.util.ServerUtilities.serverHasCommand; -public class SelfCare extends Listener { +public class SelfCare implements Listener { private final MinecraftClient client; public final long interval; public final long chatInterval; diff --git a/src/main/java/land/chipmunk/chipmunkmod/modules/TabComplete.java b/src/main/java/land/chipmunk/chipmunkmod/modules/TabComplete.java index 2f95e4e..e4948cc 100644 --- a/src/main/java/land/chipmunk/chipmunkmod/modules/TabComplete.java +++ b/src/main/java/land/chipmunk/chipmunkmod/modules/TabComplete.java @@ -13,7 +13,7 @@ import java.util.HashMap; import java.util.Map; import java.util.concurrent.CompletableFuture; -public class TabComplete extends Listener { +public class TabComplete implements Listener { private final MinecraftClient client; private final Map> transactions = new HashMap<>(); From c61773fb730d306e082afeb54eead918e2ffd142 Mon Sep 17 00:00:00 2001 From: amyavi <144570677+amyavi@users.noreply.github.com> Date: Tue, 31 Dec 2024 01:46:52 -0300 Subject: [PATCH 2/3] refactor: mixin cleanups --- .../mixin/ClientConnectionAccessor.java | 12 ---- .../mixin/ClientConnectionInvoker.java | 15 ----- .../mixin/ClientConnectionMixin.java | 8 +-- .../ClientPlayNetworkHandlerAccessor.java | 18 ------ .../mixin/ClientPlayerEntityMixin.java | 56 ++++++++++--------- .../ElderGuardianAppearanceParticleMixin.java | 13 ++--- .../chipmunkmod/mixin/IdentifierMixin.java | 31 ---------- .../mixin/PlayerListEntryAccessor.java | 16 ------ .../chipmunkmod/mixin/SoundSystemMixin.java | 1 - .../chipmunkmod/mixin/StringHelperMixin.java | 3 - src/main/resources/chipmunkmod.mixins.json | 5 -- 11 files changed, 39 insertions(+), 139 deletions(-) delete mode 100644 src/main/java/land/chipmunk/chipmunkmod/mixin/ClientConnectionAccessor.java delete mode 100644 src/main/java/land/chipmunk/chipmunkmod/mixin/ClientConnectionInvoker.java delete mode 100644 src/main/java/land/chipmunk/chipmunkmod/mixin/ClientPlayNetworkHandlerAccessor.java delete mode 100644 src/main/java/land/chipmunk/chipmunkmod/mixin/IdentifierMixin.java delete mode 100644 src/main/java/land/chipmunk/chipmunkmod/mixin/PlayerListEntryAccessor.java diff --git a/src/main/java/land/chipmunk/chipmunkmod/mixin/ClientConnectionAccessor.java b/src/main/java/land/chipmunk/chipmunkmod/mixin/ClientConnectionAccessor.java deleted file mode 100644 index bc030c5..0000000 --- a/src/main/java/land/chipmunk/chipmunkmod/mixin/ClientConnectionAccessor.java +++ /dev/null @@ -1,12 +0,0 @@ -package land.chipmunk.chipmunkmod.mixin; - -import net.minecraft.network.ClientConnection; -import net.minecraft.network.listener.PacketListener; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -@Mixin(ClientConnection.class) -public interface ClientConnectionAccessor { - @Accessor("packetListener") - PacketListener packetListener (); -} diff --git a/src/main/java/land/chipmunk/chipmunkmod/mixin/ClientConnectionInvoker.java b/src/main/java/land/chipmunk/chipmunkmod/mixin/ClientConnectionInvoker.java deleted file mode 100644 index a9800cb..0000000 --- a/src/main/java/land/chipmunk/chipmunkmod/mixin/ClientConnectionInvoker.java +++ /dev/null @@ -1,15 +0,0 @@ -package land.chipmunk.chipmunkmod.mixin; - -import net.minecraft.network.ClientConnection; -import net.minecraft.network.listener.PacketListener; -import net.minecraft.network.packet.Packet; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Invoker; - -@Mixin(ClientConnection.class) -public interface ClientConnectionInvoker { - @Invoker("handlePacket") - static void handlePacket (Packet packet, PacketListener listener) { - throw new AssertionError(); - } -} diff --git a/src/main/java/land/chipmunk/chipmunkmod/mixin/ClientConnectionMixin.java b/src/main/java/land/chipmunk/chipmunkmod/mixin/ClientConnectionMixin.java index 43bd234..2043b4b 100644 --- a/src/main/java/land/chipmunk/chipmunkmod/mixin/ClientConnectionMixin.java +++ b/src/main/java/land/chipmunk/chipmunkmod/mixin/ClientConnectionMixin.java @@ -1,7 +1,6 @@ package land.chipmunk.chipmunkmod.mixin; import io.netty.channel.ChannelHandlerContext; -import io.netty.handler.codec.DecoderException; import land.chipmunk.chipmunkmod.listeners.Listener; import land.chipmunk.chipmunkmod.listeners.ListenerManager; import net.minecraft.client.MinecraftClient; @@ -12,7 +11,6 @@ import net.minecraft.network.packet.c2s.play.RequestCommandCompletionsC2SPacket; import net.minecraft.network.packet.s2c.play.ParticleS2CPacket; import net.minecraft.network.packet.s2c.play.PlaySoundS2CPacket; import net.minecraft.sound.SoundEvent; -import net.minecraft.text.Text; import net.minecraft.util.Identifier; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; @@ -25,6 +23,8 @@ import java.util.regex.Pattern; @Mixin(net.minecraft.network.ClientConnection.class) public class ClientConnectionMixin { + @Unique + private static final double MAX_PARTICLES_PER_PACKET = 1000; @Unique private static final Pattern CUSTOM_PITCH_PATTERN = Pattern.compile(".*\\.pitch\\.(.*)"); @@ -45,9 +45,7 @@ public class ClientConnectionMixin { // please don't skid this.,. // mabe mabe mabe if (packet instanceof ParticleS2CPacket t_packet) { - final double max = 1000; - - if (t_packet.getCount() > max) { + if (t_packet.getCount() > MAX_PARTICLES_PER_PACKET) { ci.cancel(); } } else if (packet instanceof PlaySoundS2CPacket t_packet) { diff --git a/src/main/java/land/chipmunk/chipmunkmod/mixin/ClientPlayNetworkHandlerAccessor.java b/src/main/java/land/chipmunk/chipmunkmod/mixin/ClientPlayNetworkHandlerAccessor.java deleted file mode 100644 index 6ef7342..0000000 --- a/src/main/java/land/chipmunk/chipmunkmod/mixin/ClientPlayNetworkHandlerAccessor.java +++ /dev/null @@ -1,18 +0,0 @@ -package land.chipmunk.chipmunkmod.mixin; - -import net.minecraft.client.network.PlayerListEntry; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -import java.util.Map; -import java.util.Set; -import java.util.UUID; - -@Mixin(net.minecraft.client.network.ClientPlayNetworkHandler.class) -public interface ClientPlayNetworkHandlerAccessor { - @Accessor("playerListEntries") - Map playerListEntries(); - - @Accessor("listedPlayerListEntries") - Set listedPlayerListEntries(); -} diff --git a/src/main/java/land/chipmunk/chipmunkmod/mixin/ClientPlayerEntityMixin.java b/src/main/java/land/chipmunk/chipmunkmod/mixin/ClientPlayerEntityMixin.java index 9f406e0..d80e454 100644 --- a/src/main/java/land/chipmunk/chipmunkmod/mixin/ClientPlayerEntityMixin.java +++ b/src/main/java/land/chipmunk/chipmunkmod/mixin/ClientPlayerEntityMixin.java @@ -1,38 +1,42 @@ package land.chipmunk.chipmunkmod.mixin; +import land.chipmunk.chipmunkmod.modules.CommandCore; +import net.minecraft.client.network.ClientPlayNetworkHandler; +import net.minecraft.client.network.ClientPlayerEntity; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityType; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.ChunkPos; +import net.minecraft.world.World; +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; -import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.entity.MovementType; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.util.math.Vec3d; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec2f; -import land.chipmunk.chipmunkmod.modules.CommandCore; @Mixin(ClientPlayerEntity.class) -public class ClientPlayerEntityMixin { - @Unique private static MinecraftClient CLIENT = MinecraftClient.getInstance(); +public abstract class ClientPlayerEntityMixin extends Entity { + @Shadow @Final public ClientPlayNetworkHandler networkHandler; - @Inject(at = @At("HEAD"), method = "move") - public void move (MovementType type, Vec3d relPos, CallbackInfo ci) { - if ((ClientPlayerEntity) (Object) this != CLIENT.player) return; - - final Vec3d position = ((ClientPlayerEntity) (Object) this).getPos().add(relPos); - - final ClientWorld world = CLIENT.getNetworkHandler().getWorld(); - - final BlockPos origin = CommandCore.INSTANCE.origin; - if (origin == null) { CommandCore.INSTANCE.move(position); return; } - final int distance = (int) Math.sqrt(new Vec2f(origin.getX() / 16, origin.getZ() / 16).distanceSquared(new Vec2f((int) position.getX() / 16, (int) position.getZ() / 16))); - if (distance > world.getSimulationDistance()) { - CommandCore.INSTANCE.clientPlayerEntityFilled = true; - CommandCore.INSTANCE.move(position); + public ClientPlayerEntityMixin(final EntityType type, final World world) { + super(type, world); + } + + @Inject(at = @At("TAIL"), method = "move") + public void move(CallbackInfo ci) { + final BlockPos origin = CommandCore.INSTANCE.origin; + if (origin == null) { + CommandCore.INSTANCE.move(this.getPos()); + return; + } + + final int distanceSquared = this.getChunkPos().getSquaredDistance(new ChunkPos(origin)); + final int distance = (int) Math.sqrt(distanceSquared); + + if (distance > networkHandler.getWorld().getSimulationDistance()) { + CommandCore.INSTANCE.clientPlayerEntityFilled = true; + CommandCore.INSTANCE.move(this.getPos()); + } } - } } diff --git a/src/main/java/land/chipmunk/chipmunkmod/mixin/ElderGuardianAppearanceParticleMixin.java b/src/main/java/land/chipmunk/chipmunkmod/mixin/ElderGuardianAppearanceParticleMixin.java index ac46a1f..5dfef9a 100644 --- a/src/main/java/land/chipmunk/chipmunkmod/mixin/ElderGuardianAppearanceParticleMixin.java +++ b/src/main/java/land/chipmunk/chipmunkmod/mixin/ElderGuardianAppearanceParticleMixin.java @@ -2,8 +2,6 @@ package land.chipmunk.chipmunkmod.mixin; import net.minecraft.client.particle.ElderGuardianAppearanceParticle; import net.minecraft.client.particle.Particle; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.particle.SimpleParticleType; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -11,10 +9,11 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(ElderGuardianAppearanceParticle.Factory.class) public class ElderGuardianAppearanceParticleMixin { - @Inject(method = "createParticle(Lnet/minecraft/particle/SimpleParticleType;Lnet/minecraft/client/world/ClientWorld;DDDDDD)Lnet/minecraft/client/particle/Particle;", at = @At("HEAD")) - private void createParticle (SimpleParticleType simpleParticleType, ClientWorld clientWorld, double d, double e, double f, double g, double h, double i, CallbackInfoReturnable cir) { - if (cir.isCancelled() || !cir.isCancellable()) return; - - cir.cancel(); + @Inject( + method = "createParticle(Lnet/minecraft/particle/SimpleParticleType;Lnet/minecraft/client/world/ClientWorld;DDDDDD)Lnet/minecraft/client/particle/Particle;", + at = @At("HEAD"), + cancellable = true) + private void createParticle(final CallbackInfoReturnable cir) { + cir.setReturnValue(null); } } diff --git a/src/main/java/land/chipmunk/chipmunkmod/mixin/IdentifierMixin.java b/src/main/java/land/chipmunk/chipmunkmod/mixin/IdentifierMixin.java deleted file mode 100644 index e7b24eb..0000000 --- a/src/main/java/land/chipmunk/chipmunkmod/mixin/IdentifierMixin.java +++ /dev/null @@ -1,31 +0,0 @@ -package land.chipmunk.chipmunkmod.mixin; - -import net.minecraft.util.Identifier; -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.CallbackInfoReturnable; - -@Mixin(Identifier.class) -public class IdentifierMixin { - @Inject(method = "isNamespaceCharacterValid", at = @At("HEAD"), cancellable = true) - private static void isNamespaceCharacterValid (char character, CallbackInfoReturnable cir) { - cir.setReturnValue(true); - - cir.cancel(); - } - - @Inject(method = "isNamespaceValid", at = @At("HEAD"), cancellable = true) - private static void isNamespaceValid (String namespace, CallbackInfoReturnable cir) { - cir.setReturnValue(true); - - cir.cancel(); - } - - @Inject(method = "validateNamespace", at = @At("HEAD"), cancellable = true) - private static void validateNamespace(String namespace, String path, CallbackInfoReturnable cir) { - cir.setReturnValue(namespace); - - cir.cancel(); - } -} diff --git a/src/main/java/land/chipmunk/chipmunkmod/mixin/PlayerListEntryAccessor.java b/src/main/java/land/chipmunk/chipmunkmod/mixin/PlayerListEntryAccessor.java deleted file mode 100644 index 39faf9a..0000000 --- a/src/main/java/land/chipmunk/chipmunkmod/mixin/PlayerListEntryAccessor.java +++ /dev/null @@ -1,16 +0,0 @@ -package land.chipmunk.chipmunkmod.mixin; - -import net.minecraft.client.network.PlayerListEntry; -import net.minecraft.world.GameMode; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; -import org.spongepowered.asm.mixin.gen.Invoker; - -@Mixin(PlayerListEntry.class) -public interface PlayerListEntryAccessor { - @Accessor("gameMode") - void setGameMode (GameMode gameMode); - - @Accessor("latency") - void setLatency (int latency); -} diff --git a/src/main/java/land/chipmunk/chipmunkmod/mixin/SoundSystemMixin.java b/src/main/java/land/chipmunk/chipmunkmod/mixin/SoundSystemMixin.java index 6d1d208..79672f8 100644 --- a/src/main/java/land/chipmunk/chipmunkmod/mixin/SoundSystemMixin.java +++ b/src/main/java/land/chipmunk/chipmunkmod/mixin/SoundSystemMixin.java @@ -12,6 +12,5 @@ public class SoundSystemMixin { @Inject(method = "getAdjustedPitch", at = @At("HEAD"), cancellable = true) private void getAdjustedPitch (SoundInstance sound, CallbackInfoReturnable cir) { cir.setReturnValue(sound.getPitch()); - cir.cancel(); } } diff --git a/src/main/java/land/chipmunk/chipmunkmod/mixin/StringHelperMixin.java b/src/main/java/land/chipmunk/chipmunkmod/mixin/StringHelperMixin.java index c3fb817..df42151 100644 --- a/src/main/java/land/chipmunk/chipmunkmod/mixin/StringHelperMixin.java +++ b/src/main/java/land/chipmunk/chipmunkmod/mixin/StringHelperMixin.java @@ -11,18 +11,15 @@ public class StringHelperMixin { @Inject(method = "truncateChat", at = @At("HEAD"), cancellable = true) private static void truncateChat (String text, CallbackInfoReturnable cir) { cir.setReturnValue(text); - cir.cancel(); } @Inject(method = "stripTextFormat", at = @At("HEAD"), cancellable = true) private static void stripTextFormat(String text, CallbackInfoReturnable cir) { cir.setReturnValue(text); - cir.cancel(); } @Inject(method = "isValidChar", at = @At("HEAD"), cancellable = true) private static void isValidChar (char chr, CallbackInfoReturnable cir) { cir.setReturnValue(chr >= ' ' && chr != '\u007f'); - cir.cancel(); } } diff --git a/src/main/resources/chipmunkmod.mixins.json b/src/main/resources/chipmunkmod.mixins.json index 89df942..a61592b 100644 --- a/src/main/resources/chipmunkmod.mixins.json +++ b/src/main/resources/chipmunkmod.mixins.json @@ -8,16 +8,11 @@ "ChatScreenMixin", "ClientConnectionMixin", "ClientPlayerEntityMixin", - "ClientPlayNetworkHandlerAccessor", "ClientPlayNetworkHandlerMixin", "MinecraftClientAccessor", "StringHelperMixin", "ElderGuardianAppearanceParticleMixin", - "IdentifierMixin", "TextMixin", - "ClientConnectionInvoker", - "ClientConnectionAccessor", - "PlayerListEntryAccessor", "TextSerializerMixin", "CommandDispatcherMixin", "SoundSystemMixin", From fc4e2d2ccced8da0989e9a769d7d4673836c0536 Mon Sep 17 00:00:00 2001 From: amyavi <144570677+amyavi@users.noreply.github.com> Date: Tue, 31 Dec 2024 02:12:26 -0300 Subject: [PATCH 3/3] feat: pass UUID placeholder to CustomChat --- .../java/land/chipmunk/chipmunkmod/modules/CustomChat.java | 6 +----- src/main/resources/default_config.json | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/main/java/land/chipmunk/chipmunkmod/modules/CustomChat.java b/src/main/java/land/chipmunk/chipmunkmod/modules/CustomChat.java index 93a8bd0..9033d72 100644 --- a/src/main/java/land/chipmunk/chipmunkmod/modules/CustomChat.java +++ b/src/main/java/land/chipmunk/chipmunkmod/modules/CustomChat.java @@ -4,8 +4,6 @@ import com.google.common.hash.Hashing; import com.google.gson.JsonElement; import land.chipmunk.chipmunkmod.ChipmunkMod; - -import net.kyori.adventure.audience.Audience; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; @@ -13,13 +11,10 @@ import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.ClientPlayNetworkHandler; import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.text.Text; import java.nio.charset.StandardCharsets; import java.util.Timer; import java.util.TimerTask; -import java.util.regex.Matcher; -import java.util.regex.Pattern; public class CustomChat { private final MinecraftClient client; @@ -127,6 +122,7 @@ public class CustomChat { // .replace("\"PREFIX\"", prefix) // .replace("\"DISPLAYNAME\"", displayName) .replace("USERNAME", username) + .replace("UUID", player.getUuidAsString()) .replace("HASH", hash) .replace("{\"text\":\"MESSAGE\"}", messageWithColor) .replace("\"extra\":[\"MESSAGE\"],\"color\":", "\"extra\":[" + messageWithColor + "],\"color\":") diff --git a/src/main/resources/default_config.json b/src/main/resources/default_config.json index 85762f0..2345328 100644 --- a/src/main/resources/default_config.json +++ b/src/main/resources/default_config.json @@ -26,7 +26,7 @@ "translate": "chat.type.text", "with": [ { - "selector": "USERNAME" + "selector": "UUID" }, { "text": "MESSAGE"