From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: MrHua269 Date: Wed, 7 Feb 2024 02:00:50 +0000 Subject: [PATCH] Add config for chat sign diff --git a/src/main/java/me/earthme/luminol/config/modules/misc/ChatSignConfig.java b/src/main/java/me/earthme/luminol/config/modules/misc/ChatSignConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..1e03e51e51f56c38abaad100274e25c9f854f727 --- /dev/null +++ b/src/main/java/me/earthme/luminol/config/modules/misc/ChatSignConfig.java @@ -0,0 +1,20 @@ +package me.earthme.luminol.config.modules.misc; + +import me.earthme.luminol.config.ConfigInfo; +import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.IConfigModule; + +public class ChatSignConfig implements IConfigModule { + @ConfigInfo(baseName = "enabled") + public static boolean enabled = true; + + @Override + public EnumConfigCategory getCategory() { + return EnumConfigCategory.MISC; + } + + @Override + public String getBaseName() { + return "mojang_chat_sign"; + } +} diff --git a/src/main/java/net/minecraft/commands/arguments/ArgumentSignatures.java b/src/main/java/net/minecraft/commands/arguments/ArgumentSignatures.java index 479e6e2aa88a22ef7f8fccb06add6806f5b71d9d..22dae23a0c2fa4c85befd670637b1e592d889b58 100644 --- a/src/main/java/net/minecraft/commands/arguments/ArgumentSignatures.java +++ b/src/main/java/net/minecraft/commands/arguments/ArgumentSignatures.java @@ -14,9 +14,16 @@ public record ArgumentSignatures(List entries) { private static final int MAX_ARGUMENT_NAME_LENGTH = 16; public ArgumentSignatures(FriendlyByteBuf buf) { - this(buf.readCollection(FriendlyByteBuf.limitValue(ArrayList::new, 8), ArgumentSignatures.Entry::new)); + this(readSign(buf)); //Luminol - Fix java compile } + //Luminol start - Add config for chat sign + private static List readSign(FriendlyByteBuf buf) { + var entries = buf.readCollection(FriendlyByteBuf.limitValue(ArrayList::new, 8), Entry::new); + return me.earthme.luminol.config.modules.misc.ChatSignConfig.enabled ? List.of() : entries; + } + //Luminol end + public void write(FriendlyByteBuf buf) { buf.writeCollection(this.entries, (buf2, entry) -> entry.write(buf2)); } diff --git a/src/main/java/net/minecraft/network/FriendlyByteBuf.java b/src/main/java/net/minecraft/network/FriendlyByteBuf.java index a523a83aec3a6ecbec4d60a187edc0c0167d15b4..324df3cce3f5a1ab6b4d2acfbb8e80aa551870d7 100644 --- a/src/main/java/net/minecraft/network/FriendlyByteBuf.java +++ b/src/main/java/net/minecraft/network/FriendlyByteBuf.java @@ -129,6 +129,16 @@ public class FriendlyByteBuf extends ByteBuf { // Paper end - Adventure; add max length parameter DataResult dataresult = codec.encodeStart(JsonOps.INSTANCE, value); + //Luminol start - Add config for chat sign + if (codec == net.minecraft.network.protocol.status.ServerStatus.CODEC) { + JsonElement element = dataresult.getOrThrow(string -> new EncoderException("Failed to encode: " + string + " " + value)); + element.getAsJsonObject().addProperty("preventsChatReports", !me.earthme.luminol.config.modules.misc.ChatSignConfig.enabled); + + this.writeUtf(GSON.toJson(element)); + return; + } + //Luminol end + this.writeUtf(FriendlyByteBuf.GSON.toJson((JsonElement) dataresult.getOrThrow((s) -> { return new EncoderException("Failed to encode: " + s + " " + String.valueOf(value)); })), maxLength); // Paper - Adventure; add max length parameter