mirror of
https://github.com/LeavesMC/Leaves.git
synced 2025-12-28 03:19:22 +00:00
150 lines
9.7 KiB
Diff
150 lines
9.7 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/src/main/java/io/papermc/paper/adventure/ChatProcessor.java b/src/main/java/io/papermc/paper/adventure/ChatProcessor.java
|
|
index 46d1ed7e617abc7096f5d7a391b138238f42aaa4..d8cfdfe46b26dd787e8e736b272889f573617b52 100644
|
|
--- a/src/main/java/io/papermc/paper/adventure/ChatProcessor.java
|
|
+++ b/src/main/java/io/papermc/paper/adventure/ChatProcessor.java
|
|
@@ -310,7 +310,7 @@ public final class ChatProcessor {
|
|
|
|
private void sendToServer(final ChatType.Bound chatType, final @Nullable Function<Audience, net.minecraft.network.chat.Component> msgFunction) {
|
|
final PlayerChatMessage toConsoleMessage = msgFunction == null ? ChatProcessor.this.message : ChatProcessor.this.message.withUnsignedContent(msgFunction.apply(ChatProcessor.this.server.console));
|
|
- ChatProcessor.this.server.logChatMessage(toConsoleMessage.serverContent(), chatType, ChatProcessor.this.server.getPlayerList().verifyChatTrusted(toConsoleMessage, ChatProcessor.this.player.asChatSender()) ? null : "Not Secure");
|
|
+ ChatProcessor.this.server.logChatMessage(toConsoleMessage.serverContent(), chatType, ChatProcessor.this.server.getPlayerList().verifyChatTrusted(toConsoleMessage, ChatProcessor.this.player.asChatSender()) || top.leavesmc.leaves.LeavesConfig.noChatSign ? null : "Not Secure"); // Leaves - No Not Secure
|
|
}
|
|
|
|
record ConstantFunction(net.minecraft.network.chat.Component component) implements Function<Audience, net.minecraft.network.chat.Component> {
|
|
diff --git a/src/main/java/net/minecraft/network/protocol/status/ServerStatus.java b/src/main/java/net/minecraft/network/protocol/status/ServerStatus.java
|
|
index 11183b4a39b9897e1b1067eb2a3556d2b1d90f52..73009fdcc695f41f8953b85bef5d728cc93a5709 100644
|
|
--- a/src/main/java/net/minecraft/network/protocol/status/ServerStatus.java
|
|
+++ b/src/main/java/net/minecraft/network/protocol/status/ServerStatus.java
|
|
@@ -78,7 +78,7 @@ public class ServerStatus {
|
|
}
|
|
|
|
public boolean enforcesSecureChat() {
|
|
- return this.enforcesSecureChat;
|
|
+ return this.enforcesSecureChat && !top.leavesmc.leaves.LeavesConfig.noChatSign; // Leaves - no enforcesSecureChat
|
|
}
|
|
|
|
public static class Players {
|
|
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
|
index d27f115b74fe00623985255d1027656166c1c459..b5d5c2346cad59dabffc0c378b4f9fdae90bd48e 100644
|
|
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
|
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
|
@@ -617,7 +617,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
|
|
|
@Override
|
|
public boolean enforceSecureProfile() {
|
|
- return this.getProperties().enforceSecureProfile && this.getProperties().onlineMode;
|
|
+ return this.getProperties().enforceSecureProfile && this.getProperties().onlineMode && !top.leavesmc.leaves.LeavesConfig.noChatSign; // Leaves - No Secure profile
|
|
}
|
|
|
|
protected boolean convertOldUsers() {
|
|
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
index 2fab929b6775238d031ca3305b61af3cbe920a06..ccd8fd62a824566ffd44083177280701de2cd3e1 100644
|
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
@@ -75,6 +75,8 @@ import net.minecraft.network.protocol.game.ClientboundContainerSetSlotPacket;
|
|
import net.minecraft.network.protocol.game.ClientboundDisconnectPacket;
|
|
import net.minecraft.network.protocol.game.ClientboundKeepAlivePacket;
|
|
import net.minecraft.network.protocol.game.ClientboundMoveVehiclePacket;
|
|
+import net.minecraft.network.protocol.game.ClientboundPlayerChatHeaderPacket;
|
|
+import net.minecraft.network.protocol.game.ClientboundPlayerChatPacket;
|
|
import net.minecraft.network.protocol.game.ClientboundPlayerPositionPacket;
|
|
import net.minecraft.network.protocol.game.ClientboundSetCarriedItemPacket;
|
|
import net.minecraft.network.protocol.game.ClientboundSetDefaultSpawnPositionPacket;
|
|
@@ -2149,10 +2151,30 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
|
|
|
@Override
|
|
public void send(Packet<?> packet) {
|
|
+ // Leaves start - no ClientboundPlayerChatHeaderPacket and rebuild ClientboundPlayerChatPacket
|
|
+ if (top.leavesmc.leaves.LeavesConfig.noChatSign) {
|
|
+ if (packet instanceof ClientboundPlayerChatHeaderPacket) {
|
|
+ return;
|
|
+ } else if (packet instanceof ClientboundPlayerChatPacket chat) {
|
|
+ packet = new ClientboundSystemChatPacket(chat.chatType().resolve(this.player.level.registryAccess())
|
|
+ .get().decorate(chat.message().serverContent()), false);
|
|
+ }
|
|
+ }
|
|
+ // Leaves end - no ClientboundPlayerChatHeaderPacket and rebuild ClientboundPlayerChatPacket
|
|
this.send(packet, (PacketSendListener) null);
|
|
}
|
|
|
|
public void send(Packet<?> packet, @Nullable PacketSendListener packetsendlistener) {
|
|
+ // Leaves start - no ClientboundPlayerChatHeaderPacket and rebuild ClientboundPlayerChatPacket
|
|
+ if (top.leavesmc.leaves.LeavesConfig.noChatSign) {
|
|
+ if (packet instanceof ClientboundPlayerChatHeaderPacket) {
|
|
+ return;
|
|
+ } else if (packet instanceof ClientboundPlayerChatPacket chat && packetsendlistener != null) {
|
|
+ this.send(chat);
|
|
+ return;
|
|
+ }
|
|
+ }
|
|
+ // Leaves end - no ClientboundPlayerChatHeaderPacket and rebuild ClientboundPlayerChatPacket
|
|
// CraftBukkit start
|
|
if (packet == null || this.processedDisconnect) { // Spigot
|
|
return;
|
|
@@ -2574,6 +2596,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
|
}
|
|
|
|
private void broadcastChatMessage(PlayerChatMessage playerchatmessage) {
|
|
+ // Leaves start - no sign
|
|
+ if (top.leavesmc.leaves.LeavesConfig.noChatSign) {
|
|
+ playerchatmessage = PlayerChatMessage.unsigned(playerchatmessage.signer(), playerchatmessage.signedContent());
|
|
+ }
|
|
+ // Leaves end - no sign
|
|
// CraftBukkit start
|
|
String s = playerchatmessage.signedContent().plain();
|
|
if (s.isEmpty()) {
|
|
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
index f3c3c530d9ae974c9b35e1a12f60e5bad014b42a..25ecac92dc77f33964dff7cf00bd522606366b0e 100644
|
|
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
@@ -1445,7 +1445,7 @@ public abstract class PlayerList {
|
|
// Paper end
|
|
boolean flag = this.verifyChatTrusted(playerchatmessage, chatsender);
|
|
|
|
- this.server.logChatMessage((unsignedFunction == null ? playerchatmessage : playerchatmessage.withUnsignedContent(unsignedFunction.apply(this.server.console))).serverContent(), chatmessagetype_a, flag ? null : "Not Secure"); // Paper
|
|
+ this.server.logChatMessage((unsignedFunction == null ? playerchatmessage : playerchatmessage.withUnsignedContent(unsignedFunction.apply(this.server.console))).serverContent(), chatmessagetype_a, flag || top.leavesmc.leaves.LeavesConfig.noChatSign ? null : "Not Secure"); // Paper -> Leaves - No Not Secure
|
|
OutgoingPlayerChatMessage outgoingplayerchatmessage = OutgoingPlayerChatMessage.create(playerchatmessage);
|
|
boolean flag1 = playerchatmessage.isFullyFiltered();
|
|
boolean flag2 = false;
|
|
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
|
index e2305caf0b3ce21810a31e05c943a6d859870bd5..ee8bc19a049a9f0235d959d41e4124865d5dabb1 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
|
@@ -205,7 +205,13 @@ public abstract class Player extends LivingEntity {
|
|
this.lastDeathLocation = Optional.empty();
|
|
this.setUUID(UUIDUtil.getOrCreatePlayerUUID(gameProfile));
|
|
this.gameProfile = gameProfile;
|
|
- this.profilePublicKey = publicKey;
|
|
+ // Leaves start - no public key
|
|
+ if (top.leavesmc.leaves.LeavesConfig.noChatSign) {
|
|
+ this.profilePublicKey = null;
|
|
+ } else {
|
|
+ this.profilePublicKey = publicKey;
|
|
+ }
|
|
+ // Leaves end - no public key
|
|
this.inventoryMenu = new InventoryMenu(this.inventory, !world.isClientSide, this);
|
|
this.containerMenu = this.inventoryMenu;
|
|
this.moveTo((double) pos.getX() + 0.5D, (double) (pos.getY() + 1), (double) pos.getZ() + 0.5D, yaw, 0.0F);
|
|
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
|
index 6b5551df69952d57006c2303e5f13224b22c5d95..0c341dc3a27f7a20ba4e87fd84a84c31df772d00 100644
|
|
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
|
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
|
@@ -185,6 +185,11 @@ public final class LeavesConfig {
|
|
private static void stickChangeArmorStandHasArm() {
|
|
stickChangeArmorStandArmStatus = getBoolean("settings.stick-change-armorstand-arm-status", stickChangeArmorStandArmStatus);
|
|
}
|
|
+
|
|
+ public static boolean noChatSign = true;
|
|
+ private static void noChatSign() {
|
|
+ noChatSign = getBoolean("settings.no-chat-sign", noChatSign);
|
|
+ }
|
|
|
|
public static final class WorldConfig {
|
|
|