mirror of
https://github.com/LeavesMC/Leaves.git
synced 2025-12-19 14:59:32 +00:00
* init 1.21.4, and boom! * build change, but weight not work * just work * Build changes, and delete timings * Fix API patches (#406) * Fix API patches * merge --------- Co-authored-by: violetc <58360096+s-yh-china@users.noreply.github.com> * 0006/0129 * 0009/0129 * 0011/0129 * 0018/0129 * 0030/0129 * 0035/0129 * 0043/0129 * 0048/0129 * 0049/0129 * 0057/0129 * 0065/0129 * 0086/0129 (#408) * 0072/0129 * 0080/0129 * Readd patch infos * 0086/0129 * Delete applied patches * 0087/0129 * 0091/0129 * 0097/0129 * 0101/0129 * 102/129 * 0107/0129 * 0112/0129 * 0118/0129 * 0129/0129, 100% patched * fix some * server work * Protocol... (#409) * Jade v7 * Fix changed part for Jade * Formatting imports, add Lms Paster protocol * REI payloads 5/8 * Add REI support, remove unnecessary content in Jade * Rename * Make jade better * Make action work * fix action jar * Fix some protocol * Fix bot action, and entity tickCount * Fix Warden GameEventListener register on load * Fix extra Raider drop * Fix grindstone overstacking * Update Paper, and some doc * Merge * [ci skip] Update Action --------- Co-authored-by: Lumine1909 <133463833+Lumine1909@users.noreply.github.com>
148 lines
8.5 KiB
Diff
148 lines
8.5 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: violetc <58360096+s-yh-china@users.noreply.github.com>
|
|
Date: Wed, 3 Aug 2022 11:20:51 +0800
|
|
Subject: [PATCH] No chat sign
|
|
|
|
|
|
diff --git a/net/minecraft/commands/arguments/ArgumentSignatures.java b/net/minecraft/commands/arguments/ArgumentSignatures.java
|
|
index 47cb25aa9c37bd84d156288c397321009f1d9ae2..a94981882ac37ea215df3a71117d4a9b1ab79fcd 100644
|
|
--- a/net/minecraft/commands/arguments/ArgumentSignatures.java
|
|
+++ b/net/minecraft/commands/arguments/ArgumentSignatures.java
|
|
@@ -13,10 +13,17 @@ public record ArgumentSignatures(List<ArgumentSignatures.Entry> entries) {
|
|
private static final int MAX_ARGUMENT_COUNT = 8;
|
|
private static final int MAX_ARGUMENT_NAME_LENGTH = 16;
|
|
|
|
+ // Leaves start - no chat sign
|
|
public ArgumentSignatures(FriendlyByteBuf buffer) {
|
|
- this(buffer.readCollection(FriendlyByteBuf.<List<ArgumentSignatures.Entry>>limitValue(ArrayList::new, 8), ArgumentSignatures.Entry::new));
|
|
+ this(readSign(buffer));
|
|
}
|
|
|
|
+ private static List<ArgumentSignatures.Entry> readSign(FriendlyByteBuf buf) {
|
|
+ var entries = buf.readCollection(FriendlyByteBuf.<List<ArgumentSignatures.Entry>>limitValue(ArrayList::new, 8), ArgumentSignatures.Entry::new);
|
|
+ return org.leavesmc.leaves.LeavesConfig.mics.noChatSign ? List.of() : entries;
|
|
+ }
|
|
+ // Leaves end - no chat sign
|
|
+
|
|
public void write(FriendlyByteBuf buffer) {
|
|
buffer.writeCollection(this.entries, (buffer1, entry) -> entry.write(buffer1));
|
|
}
|
|
diff --git a/net/minecraft/network/FriendlyByteBuf.java b/net/minecraft/network/FriendlyByteBuf.java
|
|
index e5e5d9bc095ccd9fbf1c8aaa09e5c4ebb1d1c920..2e4b1883b0338cbb2a8767c7eafcf41558a55ae9 100644
|
|
--- a/net/minecraft/network/FriendlyByteBuf.java
|
|
+++ b/net/minecraft/network/FriendlyByteBuf.java
|
|
@@ -114,6 +114,14 @@ public class FriendlyByteBuf extends ByteBuf {
|
|
public <T> void writeJsonWithCodec(Codec<T> codec, T value, int maxLength) {
|
|
// Paper end - Adventure; add max length parameter
|
|
DataResult<JsonElement> dataResult = codec.encodeStart(JsonOps.INSTANCE, value);
|
|
+ // Leaves start - no 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", org.leavesmc.leaves.LeavesConfig.mics.noChatSign);
|
|
+ this.writeUtf(GSON.toJson(element));
|
|
+ return;
|
|
+ }
|
|
+ // Leaves end - no chat sign
|
|
this.writeUtf(GSON.toJson(dataResult.getOrThrow(exception -> new EncoderException("Failed to encode: " + exception + " " + value))), maxLength); // Paper - Adventure; add max length parameter
|
|
}
|
|
|
|
diff --git a/net/minecraft/network/protocol/game/ServerboundChatPacket.java b/net/minecraft/network/protocol/game/ServerboundChatPacket.java
|
|
index b5afc05924ae899e020c303c8b86398e1d4ab8a0..4479634e577913372faf87138b5ba26ba02ea4f7 100644
|
|
--- a/net/minecraft/network/protocol/game/ServerboundChatPacket.java
|
|
+++ b/net/minecraft/network/protocol/game/ServerboundChatPacket.java
|
|
@@ -16,7 +16,7 @@ public record ServerboundChatPacket(String message, Instant timeStamp, long salt
|
|
);
|
|
|
|
private ServerboundChatPacket(FriendlyByteBuf buffer) {
|
|
- this(buffer.readUtf(256), buffer.readInstant(), buffer.readLong(), buffer.readNullable(MessageSignature::read), new LastSeenMessages.Update(buffer));
|
|
+ this(buffer.readUtf(256), buffer.readInstant(), buffer.readLong(), buffer.readNullable(ServerboundChatPacket::readSign), new LastSeenMessages.Update(buffer)); // Leaves - no chat sign
|
|
}
|
|
|
|
private void write(FriendlyByteBuf buffer) {
|
|
@@ -27,6 +27,14 @@ public record ServerboundChatPacket(String message, Instant timeStamp, long salt
|
|
this.lastSeenMessages.write(buffer);
|
|
}
|
|
|
|
+ // Leaves start - no chat sign
|
|
+ private static MessageSignature readSign(FriendlyByteBuf buf) {
|
|
+ byte[] bs = new byte[256];
|
|
+ buf.readBytes(bs);
|
|
+ return org.leavesmc.leaves.LeavesConfig.mics.noChatSign ? null : new MessageSignature(bs);
|
|
+ }
|
|
+ // Leaves end - no chat sign
|
|
+
|
|
@Override
|
|
public PacketType<ServerboundChatPacket> type() {
|
|
return GamePacketTypes.SERVERBOUND_CHAT;
|
|
diff --git a/net/minecraft/network/protocol/game/ServerboundChatSessionUpdatePacket.java b/net/minecraft/network/protocol/game/ServerboundChatSessionUpdatePacket.java
|
|
index 1df628ac0b414511aaed6e09d78f884c4170f730..b92081d70ffeec47c304e553ce1aea0a8980752d 100644
|
|
--- a/net/minecraft/network/protocol/game/ServerboundChatSessionUpdatePacket.java
|
|
+++ b/net/minecraft/network/protocol/game/ServerboundChatSessionUpdatePacket.java
|
|
@@ -26,6 +26,11 @@ public record ServerboundChatSessionUpdatePacket(RemoteChatSession.Data chatSess
|
|
|
|
@Override
|
|
public void handle(ServerGamePacketListener handler) {
|
|
+ // Leaves start - no chat report
|
|
+ if (org.leavesmc.leaves.LeavesConfig.mics.noChatSign) {
|
|
+ return;
|
|
+ }
|
|
+ // Leaves end - no chat report
|
|
handler.handleChatSessionUpdate(this);
|
|
}
|
|
}
|
|
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
|
|
index 0c4e5aa382fed846a35badf903cab2756621a678..765521cae8bc1c65e3a390d018190646e39c4eb0 100644
|
|
--- a/net/minecraft/server/dedicated/DedicatedServer.java
|
|
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
|
|
@@ -616,7 +616,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
|
// Paper start - Add setting for proxy online mode status
|
|
return properties.enforceSecureProfile
|
|
&& io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode()
|
|
- && this.services.canValidateProfileKeys();
|
|
+ && this.services.canValidateProfileKeys() && !org.leavesmc.leaves.LeavesConfig.mics.noChatSign; // Leaves - no chat sign
|
|
// Paper end - Add setting for proxy online mode status
|
|
}
|
|
|
|
diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
|
index 46ffae71b5119c7c4527a21b19c8e822f4d87114..d3962942cfaf93e8a8f169f243a2cb3c6f4a0ed3 100644
|
|
--- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
|
+++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
|
@@ -284,10 +284,24 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
|
}
|
|
|
|
public void send(Packet<?> packet) {
|
|
+ // Leaves start - rebuild ClientboundPlayerChatPacket
|
|
+ if (org.leavesmc.leaves.LeavesConfig.mics.noChatSign) {
|
|
+ if (this instanceof ServerGamePacketListenerImpl && packet instanceof net.minecraft.network.protocol.game.ClientboundPlayerChatPacket chat) {
|
|
+ packet = new net.minecraft.network.protocol.game.ClientboundSystemChatPacket(chat.chatType().decorate(chat.unsignedContent() != null ? chat.unsignedContent() : Component.literal(chat.body().content())), false);
|
|
+ }
|
|
+ }
|
|
+ // Leaves end - rebuild ClientboundPlayerChatPacket
|
|
this.send(packet, null);
|
|
}
|
|
|
|
public void send(Packet<?> packet, @Nullable PacketSendListener listener) {
|
|
+ // Leaves start - no ClientboundPlayerChatHeaderPacket and rebuild ClientboundPlayerChatPacket
|
|
+ if (org.leavesmc.leaves.LeavesConfig.mics.noChatSign) {
|
|
+ if (packet instanceof net.minecraft.network.protocol.game.ClientboundPlayerChatPacket && listener != null) {
|
|
+ listener = null;
|
|
+ }
|
|
+ }
|
|
+ // Leaves end - no ClientboundPlayerChatHeaderPacket and rebuild ClientboundPlayerChatPacket
|
|
// CraftBukkit start
|
|
if (packet == null || this.processedDisconnect) { // Spigot
|
|
return;
|
|
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
|
index 43e1ee3c9e02a1ea33fbd41604c92fe12726ae04..07a2dad0480d030fe198785fab2faa6108a38214 100644
|
|
--- a/net/minecraft/server/players/PlayerList.java
|
|
+++ b/net/minecraft/server/players/PlayerList.java
|
|
@@ -1315,7 +1315,7 @@ public abstract class PlayerList {
|
|
}
|
|
|
|
public boolean verifyChatTrusted(PlayerChatMessage message) { // Paper - private -> public
|
|
- return message.hasSignature() && !message.hasExpiredServer(Instant.now());
|
|
+ return org.leavesmc.leaves.LeavesConfig.mics.noChatSign || (message.hasSignature() && !message.hasExpiredServer(Instant.now())); // Leaves - No Not Secure
|
|
}
|
|
|
|
// CraftBukkit start
|