9
0
mirror of https://github.com/BX-Team/DivineMC.git synced 2025-12-22 16:29:23 +00:00

Add config for chat message signatures

This commit is contained in:
NONPLAYT
2024-01-07 12:28:53 +03:00
parent 167b94e5ff
commit b8d09ad409
8 changed files with 206 additions and 22 deletions

View File

@@ -35,6 +35,14 @@ Global settings affect all worlds on the server as well as the core server funct
- **default**: false - **default**: false
- **description**: Sets whether the server should dump all configuration values to the server log on startup (this maybe not working) - **description**: Sets whether the server should dump all configuration values to the server log on startup (this maybe not working)
### settings
- #### do-not-process-chat-commands
- **default**: true
- **description**: Commands will not be proceeded while the player is joining the server
- #### disable-chat-reports
- **default**: false
- **description**: Disables chat signing, which was introduced in version 1.19.1 (similar to No Chat Reports mod)
### region-format ### region-format
- #### linear - #### linear
- ##### flush-frequency - ##### flush-frequency

View File

@@ -79,7 +79,7 @@ index 0000000000000000000000000000000000000000..6ab4a0ae2a0f63e4dfdb36a561ccda2a
+} +}
diff --git a/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java b/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java diff --git a/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java b/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java
new file mode 100644 new file mode 100644
index 0000000000000000000000000000000000000000..9e802fbe8e5f1a3c24cb6bc9254c72a2a0c3fde1 index 0000000000000000000000000000000000000000..fa7ee2b2778a26d0e466bdc05ade26a5ae0c17f4
--- /dev/null --- /dev/null
+++ b/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java +++ b/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java
@@ -0,0 +1,155 @@ @@ -0,0 +1,155 @@
@@ -238,7 +238,6 @@ index 0000000000000000000000000000000000000000..9e802fbe8e5f1a3c24cb6bc9254c72a2
+ return builder.build(); + return builder.build();
+ } + }
+} +}
\ No newline at end of file
diff --git a/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java b/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java diff --git a/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java b/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
new file mode 100644 new file mode 100644
index 0000000000000000000000000000000000000000..5d16d2250bae9c982a0af9ad2580a63532b140f7 index 0000000000000000000000000000000000000000..5d16d2250bae9c982a0af9ad2580a63532b140f7
@@ -348,7 +347,7 @@ index d21260dd1b7305949f063123b427dec1f5a00ae5..e64ac037eeeebd3b14d8652bdea7b05b
this.setFlightAllowed(dedicatedserverproperties.allowFlight); this.setFlightAllowed(dedicatedserverproperties.allowFlight);
this.setMotd(dedicatedserverproperties.motd); this.setMotd(dedicatedserverproperties.motd);
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 3c7cc1cba00df45296155bdd1430a64a94945f6c..20f760e678b3b9c5d5b2184f5b92f05932fb1256 100644 index 2b5409e653be7d6b9c0529b512b2f7408b218011..1b318f6c281170cdaafd26a0bff4901e3a153b59 100644
--- a/src/main/java/net/minecraft/world/level/Level.java --- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -15,6 +15,8 @@ import java.util.function.Consumer; @@ -15,6 +15,8 @@ import java.util.function.Consumer;
@@ -377,7 +376,7 @@ index 3c7cc1cba00df45296155bdd1430a64a94945f6c..20f760e678b3b9c5d5b2184f5b92f059
this.generator = gen; this.generator = gen;
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env); this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 19fca5427c175a1ebcfb6c37c9ce91a51b285c0f..37fc46c9329240f494f41f625db679673c41c537 100644 index 08808e9d98380792b4d4c944b7b1723a3efb346d..c5c5731a755fe635384aad24c3ac5152e5c8ae74 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -14,6 +14,7 @@ import com.mojang.brigadier.tree.CommandNode; @@ -14,6 +14,7 @@ import com.mojang.brigadier.tree.CommandNode;

View File

@@ -36,7 +36,7 @@ index a6f58b3457b7477015c5c6d969e7d83017dd3fa1..e51f427eadc0c3b60754d0a67bea3892
public boolean strictAdvancementDimensionCheck = false; public boolean strictAdvancementDimensionCheck = false;
public IntOr.Default compressionLevel = IntOr.Default.USE_DEFAULT; public IntOr.Default compressionLevel = IntOr.Default.USE_DEFAULT;
diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
index 071d3877e386a0c7c4d2f2e8ddd06e0765c49d0d..d4cb765e3093365346c7ce2ab524e102148941f9 100644 index 385ca2c1022e0985550a5cc2bbff953f1aa33f5c..fce65fd461e0dbeaa93fb4ddbe931a9792b103da 100644
--- a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java --- a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
+++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
@@ -151,9 +151,9 @@ public class WorldConfiguration extends ConfigurationPart { @@ -151,9 +151,9 @@ public class WorldConfiguration extends ConfigurationPart {
@@ -192,7 +192,7 @@ index 071d3877e386a0c7c4d2f2e8ddd06e0765c49d0d..d4cb765e3093365346c7ce2ab524e102
@Setting(FeatureSeedsGeneration.FEATURES_KEY) @Setting(FeatureSeedsGeneration.FEATURES_KEY)
public Reference2LongMap<Holder<ConfiguredFeature<?, ?>>> features = new Reference2LongOpenHashMap<>(); public Reference2LongMap<Holder<ConfiguredFeature<?, ?>>> features = new Reference2LongOpenHashMap<>();
@@ -525,9 +540,9 @@ public class WorldConfiguration extends ConfigurationPart { @@ -532,9 +547,9 @@ public class WorldConfiguration extends ConfigurationPart {
public class Misc extends ConfigurationPart { public class Misc extends ConfigurationPart {
public int lightQueueSize = 20; public int lightQueueSize = 20;
@@ -205,7 +205,7 @@ index 071d3877e386a0c7c4d2f2e8ddd06e0765c49d0d..d4cb765e3093365346c7ce2ab524e102
public float maxLeashDistance = 10f; public float maxLeashDistance = 10f;
public boolean disableSprintInterruptionOnAttack = false; public boolean disableSprintInterruptionOnAttack = false;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 1f54e2ec6d73853001642bcf4b355c4a0dd10f6d..d8d19567cf49b41d730a936d46c8e37e5aec2f07 100644 index e14a5be13af47162c3f03f7d75ecbe10799bc907..7d24b3177c41661bbd35d51e7e33dedc2fc69d2c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -241,7 +241,7 @@ public class PurpurConfig { @@ -241,7 +241,7 @@ public class PurpurConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Fix entity serialization
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index a9d5a9b9bff5631f3f458fba7d88c3fc642416b8..293df31309490af25d3c553e714a6938c14016b6 100644 index 251b336c1915f173c975fd0c568dfb04182fc91b..174e0113d54d049b56316f4cba8250ba7df4d236 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2336,15 +2336,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -2340,15 +2340,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
} }
} }

View File

@@ -7,10 +7,10 @@ Original post on Mojira: https://bugs.mojang.com/browse/MC-2025
Fix taken from Reddit: https://redd.it/8pgd4q Fix taken from Reddit: https://redd.it/8pgd4q
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 293df31309490af25d3c553e714a6938c14016b6..f93c2f57ad8ca828de09ddb0759cd7b880f05f98 100644 index 174e0113d54d049b56316f4cba8250ba7df4d236..29e040ff5c2d5c4022dd18d807b1b665e2acbe9c 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2502,6 +2502,17 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -2506,6 +2506,17 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
nbttagcompound.putBoolean("Purpur.FireImmune", immuneToFire); nbttagcompound.putBoolean("Purpur.FireImmune", immuneToFire);
} }
// Purpur end // Purpur end
@@ -28,7 +28,7 @@ index 293df31309490af25d3c553e714a6938c14016b6..f93c2f57ad8ca828de09ddb0759cd7b8
return nbttagcompound; return nbttagcompound;
} catch (Throwable throwable) { } catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT"); CrashReport crashreport = CrashReport.forThrowable(throwable, "Saving entity NBT");
@@ -2579,6 +2590,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S @@ -2583,6 +2594,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
this.reapplyPosition(); this.reapplyPosition();
} }

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Do not process chat/commands before player has joined
diff --git a/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java b/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java diff --git a/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java b/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java
index 9e802fbe8e5f1a3c24cb6bc9254c72a2a0c3fde1..199a49bed6e5d827f8d01212e37f2f1de589bb8c 100644 index fa7ee2b2778a26d0e466bdc05ade26a5ae0c17f4..11dc1af9f8d8ce8c0a855d14a35077f5482ef0e8 100644
--- a/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java --- a/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java
+++ b/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java +++ b/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java
@@ -152,4 +152,9 @@ public class DivineConfig { @@ -152,4 +152,9 @@ public class DivineConfig {
@@ -18,9 +18,8 @@ index 9e802fbe8e5f1a3c24cb6bc9254c72a2a0c3fde1..199a49bed6e5d827f8d01212e37f2f1d
+ doNotProcessChatCommands = getBoolean("settings.do-not-process-chat-commands", doNotProcessChatCommands); + doNotProcessChatCommands = getBoolean("settings.do-not-process-chat-commands", doNotProcessChatCommands);
+ } + }
} }
\ No newline at end of file
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 819906c465debe02192084968bf3d17d69cdd8c8..b934e57437ae34f4599ddda6eaa90844a1cf403c 100644 index 68d4ccd7ae5719e66fd3f14e5bfce4675eb73a17..8244d269fcd179b285e5e3a36bff8e58c3806577 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -6,6 +6,7 @@ import com.mojang.authlib.GameProfile; @@ -6,6 +6,7 @@ import com.mojang.authlib.GameProfile;

View File

@@ -49,7 +49,7 @@ index f2c27e0ac65be4b75c1d86ef6fd45fdb538d96ac..84ef82da3a18341c1f8bc463360e8ba0
public static final class InProgressWrite { public static final class InProgressWrite {
public long writeCounter; public long writeCounter;
diff --git a/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java b/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java diff --git a/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java b/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java
index 199a49bed6e5d827f8d01212e37f2f1de589bb8c..734f7785261c7f4d45bccf5e5a18d9d6e9a0621a 100644 index 11dc1af9f8d8ce8c0a855d14a35077f5482ef0e8..def6f834d32b97e1065b17657e73d020a873bd14 100644
--- a/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java --- a/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java
+++ b/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java +++ b/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java
@@ -157,4 +157,15 @@ public class DivineConfig { @@ -157,4 +157,15 @@ public class DivineConfig {
@@ -68,7 +68,6 @@ index 199a49bed6e5d827f8d01212e37f2f1de589bb8c..734f7785261c7f4d45bccf5e5a18d9d6
+ linearFlushThreads = Math.max(linearFlushThreads, 1); + linearFlushThreads = Math.max(linearFlushThreads, 1);
+ } + }
} }
\ No newline at end of file
diff --git a/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java b/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java diff --git a/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java b/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
index ca344da743a7503795bdaeff0a1b14e0721f5092..7deda3f07cbe5c520ae44575d79f4e857f0b44a1 100644 index ca344da743a7503795bdaeff0a1b14e0721f5092..7deda3f07cbe5c520ae44575d79f4e857f0b44a1 100644
--- a/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java --- a/src/main/java/gq/bxteam/divinemc/configuration/DivineWorldConfig.java
@@ -729,7 +728,7 @@ index f69976dcba060027c67c2e1b49fa28d3f28f66f0..e10ef28420c755258f7fbe7935f8c8ab
return flag3; return flag3;
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index cd55b5bbba17a60766c3302fd8cb94553fe3f929..20530ca2a09f0b6993cde6772adbfabdcf989195 100644 index 2631c05a3855c71eff3f8cf8d13920430f929a13..b2ccdcc1aba21d0edfed3cd3da7b8ba8dc80cd1e 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java --- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1,31 +1,23 @@ @@ -1,31 +1,23 @@
@@ -862,7 +861,7 @@ index cd55b5bbba17a60766c3302fd8cb94553fe3f929..20530ca2a09f0b6993cde6772adbfabd
regionFile.setStatus(chunkPos.x, chunkPos.z, ChunkSerializer.getStatus(compound)); regionFile.setStatus(chunkPos.x, chunkPos.z, ChunkSerializer.getStatus(compound));
} }
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index dd0ef00d29d4caa3a1fe8513ec82d72f64fc308f..80547757b468c14ae38d647ae3e87d5a305c2c9d 100644 index ac3e1d0f5b8def2bdace6f3b680ff9e929c515fb..f9de830eee88d438357e524921069e7bc20fc3dd 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -6,6 +6,7 @@ import com.google.common.collect.Lists; @@ -6,6 +6,7 @@ import com.google.common.collect.Lists;
@@ -933,7 +932,7 @@ index dd0ef00d29d4caa3a1fe8513ec82d72f64fc308f..80547757b468c14ae38d647ae3e87d5a
protected void write(ChunkPos pos, net.minecraft.nbt.CompoundTag nbt) throws IOException { protected void write(ChunkPos pos, net.minecraft.nbt.CompoundTag nbt) throws IOException {
ChunkPos nbtPos = nbt == null ? null : EntityStorage.readChunkPos(nbt); ChunkPos nbtPos = nbt == null ? null : EntityStorage.readChunkPos(nbt);
@@ -749,7 +746,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -754,7 +751,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
// CraftBukkit end // CraftBukkit end
boolean flag2 = minecraftserver.forceSynchronousWrites(); boolean flag2 = minecraftserver.forceSynchronousWrites();
DataFixer datafixer = minecraftserver.getFixerUpper(); DataFixer datafixer = minecraftserver.getFixerUpper();
@@ -1145,7 +1144,7 @@ index 9248769e6d357f6eec68945fd7700e79b2942c41..4d9dd194d9754103579c15884f799f05
try (DataInputStream out = new DataInputStream(new java.io.BufferedInputStream(new InflaterInputStream(Files.newInputStream(file))))) { try (DataInputStream out = new DataInputStream(new java.io.BufferedInputStream(new InflaterInputStream(Files.newInputStream(file))))) {
return NbtIo.read((java.io.DataInput) out); return NbtIo.read((java.io.DataInput) out);
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
index db571f658f636cdda1dcdbaffa0c4da67fae11ad..a84e40213c83aac9f6f408d198333750e7ce53d7 100644 index 6eaeb2db0da59611501f2b1a63b5b48816a0ba48..0e61161d7d8d714bb7a7c3f68e018e867c6161a0 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
@@ -1,5 +1,8 @@ @@ -1,5 +1,8 @@
@@ -1451,7 +1450,7 @@ index 4aac1979cf57300825a999c876fcf24d3170e68e..b81636c1aa5b39e1696fdf30a7e2b270
this.factory = factory; this.factory = factory;
this.fixerUpper = dataFixer; this.fixerUpper = dataFixer;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 7321a8dfc59ccb1ae0b7e2d1ce23cb1a5cfbe029..1a3c1eb1ab43d13fed58155d3d2cf9fe4028879f 100644 index f6c6cd92e1eff044abefa6ca74477d361f4434ec..e24498294f44877bcf8fc97cea9e3ca1a4f9200d 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -5,7 +5,7 @@ import com.google.common.base.Predicates; @@ -5,7 +5,7 @@ import com.google.common.base.Predicates;

View File

@@ -0,0 +1,179 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com>
Date: Sun, 7 Jan 2024 11:56:00 +0300
Subject: [PATCH] Configurable Chat message signatures
diff --git a/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java b/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java
index def6f834d32b97e1065b17657e73d020a873bd14..c58eb66184d3e7fcf722d8871eb212eebed92646 100644
--- a/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java
+++ b/src/main/java/gq/bxteam/divinemc/configuration/DivineConfig.java
@@ -168,4 +168,9 @@ public class DivineConfig {
else
linearFlushThreads = Math.max(linearFlushThreads, 1);
}
+
+ public static boolean chatMessageSignatures = false;
+ private static void chatMessageSignatures() {
+ chatMessageSignatures = getBoolean("settings.disable-chat-reports", chatMessageSignatures);
+ }
}
diff --git a/src/main/java/io/papermc/paper/adventure/ChatProcessor.java b/src/main/java/io/papermc/paper/adventure/ChatProcessor.java
index e4fd372a1d585887287253a02531cd192929377b..dcc806bcbdcc18f8094b8aa55e8a92a6b12a5f7c 100644
--- a/src/main/java/io/papermc/paper/adventure/ChatProcessor.java
+++ b/src/main/java/io/papermc/paper/adventure/ChatProcessor.java
@@ -355,7 +355,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.decoratedContent(), chatType, ChatProcessor.this.server.getPlayerList().verifyChatTrusted(toConsoleMessage) ? null : "Not Secure");
+ ChatProcessor.this.server.logChatMessage(toConsoleMessage.decoratedContent(), chatType, ChatProcessor.this.server.getPlayerList().verifyChatTrusted(toConsoleMessage) ? null : (gq.bxteam.divinemc.configuration.DivineConfig.chatMessageSignatures ? null : "Not Secure")); // DivineMC - Configurable Chat message signatures
}
}
diff --git a/src/main/java/net/minecraft/network/protocol/game/ServerboundChatCommandPacket.java b/src/main/java/net/minecraft/network/protocol/game/ServerboundChatCommandPacket.java
index b8c1f3b9afddc87d56541c8af63cffecfcdd2653..fbfd8cf782ec73a0498ccd6ec0b4110de83ffb2d 100644
--- a/src/main/java/net/minecraft/network/protocol/game/ServerboundChatCommandPacket.java
+++ b/src/main/java/net/minecraft/network/protocol/game/ServerboundChatCommandPacket.java
@@ -16,7 +16,7 @@ public record ServerboundChatCommandPacket(String command, Instant timeStamp, lo
buf.writeUtf(this.command, 256);
buf.writeInstant(this.timeStamp);
buf.writeLong(this.salt);
- this.argumentSignatures.write(buf);
+ if (!gq.bxteam.divinemc.configuration.DivineConfig.chatMessageSignatures) this.argumentSignatures.write(buf); // DivineMC - Configurable Chat message signatures
this.lastSeenMessages.write(buf);
}
diff --git a/src/main/java/net/minecraft/network/protocol/game/ServerboundChatPacket.java b/src/main/java/net/minecraft/network/protocol/game/ServerboundChatPacket.java
index d1d2fc0c57523c1abf1e8bfec913c78927c3dafc..fa19289a2bbe5e6b72a505e45586a14670bc0c0b 100644
--- a/src/main/java/net/minecraft/network/protocol/game/ServerboundChatPacket.java
+++ b/src/main/java/net/minecraft/network/protocol/game/ServerboundChatPacket.java
@@ -17,7 +17,7 @@ public record ServerboundChatPacket(String message, Instant timeStamp, long salt
buf.writeUtf(this.message, 256);
buf.writeInstant(this.timeStamp);
buf.writeLong(this.salt);
- buf.writeNullable(this.signature, MessageSignature::write);
+ if (!gq.bxteam.divinemc.configuration.DivineConfig.chatMessageSignatures) buf.writeNullable(this.signature, MessageSignature::write); // DivineMC - Configurable Chat message signatures
this.lastSeenMessages.write(buf);
}
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 c40979e2fa37acb2f3df493395f3ab6e185345d7..16250b44775b2ccd02e2112600c9f3bab5820a98 100644
--- a/src/main/java/net/minecraft/network/protocol/status/ServerStatus.java
+++ b/src/main/java/net/minecraft/network/protocol/status/ServerStatus.java
@@ -17,7 +17,7 @@ import net.minecraft.network.chat.ComponentSerialization;
public record ServerStatus(Component description, Optional<ServerStatus.Players> players, Optional<ServerStatus.Version> version, Optional<ServerStatus.Favicon> favicon, boolean enforcesSecureChat) {
public static final Codec<ServerStatus> CODEC = RecordCodecBuilder.create((instance) -> {
- return instance.group(ComponentSerialization.CODEC.optionalFieldOf("description", CommonComponents.EMPTY).forGetter(ServerStatus::description), ServerStatus.Players.CODEC.optionalFieldOf("players").forGetter(ServerStatus::players), ServerStatus.Version.CODEC.optionalFieldOf("version").forGetter(ServerStatus::version), ServerStatus.Favicon.CODEC.optionalFieldOf("favicon").forGetter(ServerStatus::favicon), Codec.BOOL.optionalFieldOf("enforcesSecureChat", Boolean.valueOf(false)).forGetter(ServerStatus::enforcesSecureChat)).apply(instance, ServerStatus::new);
+ return gq.bxteam.divinemc.configuration.DivineConfig.chatMessageSignatures ? instance.group(ComponentSerialization.CODEC.optionalFieldOf("description", CommonComponents.EMPTY).forGetter(ServerStatus::description), ServerStatus.Players.CODEC.optionalFieldOf("players").forGetter(ServerStatus::players), ServerStatus.Version.CODEC.optionalFieldOf("version").forGetter(ServerStatus::version), ServerStatus.Favicon.CODEC.optionalFieldOf("favicon").forGetter(ServerStatus::favicon), Codec.BOOL.optionalFieldOf("enforcesSecureChat", Boolean.FALSE).forGetter(x -> true)).apply(instance, ServerStatus::new) : instance.group(ComponentSerialization.CODEC.optionalFieldOf("description", CommonComponents.EMPTY).forGetter(ServerStatus::description), ServerStatus.Players.CODEC.optionalFieldOf("players").forGetter(ServerStatus::players), ServerStatus.Version.CODEC.optionalFieldOf("version").forGetter(ServerStatus::version), ServerStatus.Favicon.CODEC.optionalFieldOf("favicon").forGetter(ServerStatus::favicon), Codec.BOOL.optionalFieldOf("enforcesSecureChat", Boolean.FALSE).forGetter(ServerStatus::enforcesSecureChat)).apply(instance, ServerStatus::new); // DivineMC - Configurable Chat message signatures
});
public static record Favicon(byte[] iconBytes) {
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index e64ac037eeeebd3b14d8652bdea7b05bbd85c7c3..7cf002599cf6a982dc616228eb7a9091c0e92875 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -686,6 +686,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@Override
public boolean enforceSecureProfile() {
+ if (gq.bxteam.divinemc.configuration.DivineConfig.chatMessageSignatures) return false; // DivineMC - Configurable Chat message signatures
DedicatedServerProperties dedicatedserverproperties = this.getProperties();
// Paper start - fix secure profile with proxy online mode
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 37a3ce5da2cb89675e0180c4ed937e5851cd002b..c73217929e9ae8264052ec4d6d46ac2c84c70725 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -2258,7 +2258,7 @@ public class ServerPlayer extends Player {
}
public void sendServerStatus(ServerStatus metadata) {
- this.connection.send(new ClientboundServerDataPacket(metadata.description(), metadata.favicon().map(ServerStatus.Favicon::iconBytes), metadata.enforcesSecureChat()));
+ if (gq.bxteam.divinemc.configuration.DivineConfig.chatMessageSignatures) this.connection.send(new ClientboundServerDataPacket(metadata.description(), metadata.favicon().map(ServerStatus.Favicon::iconBytes), true)); else this.connection.send(new ClientboundServerDataPacket(metadata.description(), metadata.favicon().map(ServerStatus.Favicon::iconBytes), metadata.enforcesSecureChat())); // DivineMC - Configurable Chat message signatures
}
@Override
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
index da499e0b21eba40d24d95047e3a9220567d4bae7..af52d6c7f18f0837f4ffce95a310ddeedfe30df9 100644
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
@@ -4,7 +4,7 @@ import com.mojang.authlib.GameProfile;
import com.mojang.logging.LogUtils;
import java.util.Objects;
import javax.annotation.Nullable;
-import net.minecraft.ChatFormatting;
+import io.papermc.paper.adventure.PaperAdventure; // DivineMC
import net.minecraft.CrashReport;
import net.minecraft.CrashReportCategory;
import net.minecraft.ReportedException;
@@ -22,6 +22,7 @@ import net.minecraft.network.protocol.common.ServerboundKeepAlivePacket;
import net.minecraft.network.protocol.common.ServerboundPongPacket;
import net.minecraft.network.protocol.common.ServerboundResourcePackPacket;
import net.minecraft.network.protocol.game.ClientboundSetDefaultSpawnPositionPacket;
+import net.minecraft.network.protocol.game.ClientboundSystemChatPacket; // DivineMC
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.level.ClientInformation;
@@ -34,7 +35,6 @@ import org.slf4j.Logger;
import io.netty.buffer.ByteBuf;
import java.util.concurrent.ExecutionException;
import org.bukkit.craftbukkit.entity.CraftPlayer;
-import org.bukkit.craftbukkit.util.CraftChatMessage;
import org.bukkit.craftbukkit.util.CraftLocation;
import org.bukkit.craftbukkit.util.Waitable;
import org.bukkit.event.player.PlayerKickEvent;
@@ -271,10 +271,31 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
}
public void send(Packet<?> packet) {
+ // DivineMC start - Configurable Chat message signatures
+ if (gq.bxteam.divinemc.configuration.DivineConfig.chatMessageSignatures) {
+ if (packet instanceof net.minecraft.network.protocol.game.ClientboundPlayerChatPacket chat) {
+ packet = new ClientboundSystemChatPacket(PaperAdventure.asAdventure(chat.chatType().resolve(this.player.level().registryAccess())
+ .get().decorate(chat.unsignedContent() != null ? chat.unsignedContent()
+ : Component.literal(chat.body().content()))), false);
+
+ this.send(packet);
+ return;
+ }
+ }
+ // DivineMC end
this.send(packet, (PacketSendListener) null);
}
public void send(Packet<?> packet, @Nullable PacketSendListener callbacks) {
+ // DivineMC start - Configurable Chat message signatures
+ if (gq.bxteam.divinemc.configuration.DivineConfig.chatMessageSignatures) {
+ if (packet instanceof net.minecraft.network.protocol.game.ClientboundPlayerChatPacket chat && callbacks != null) {
+ this.send(chat);
+ return;
+ }
+ }
+ // DivineMC end
+
// CraftBukkit start
if (packet == null || this.processedDisconnect) { // Spigot
return;
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index a52f0b7d76dc71d176d960fc4f67f0683127112e..39142f0619d20393e043eda61e6a82b0088a1c1e 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1469,7 +1469,7 @@ public abstract class PlayerList {
// Paper end
boolean flag = this.verifyChatTrusted(message);
- this.server.logChatMessage((unsignedFunction == null ? message.decoratedContent() : unsignedFunction.apply(this.server.console)), params, flag ? null : "Not Secure"); // Paper
+ this.server.logChatMessage((unsignedFunction == null ? message.decoratedContent() : unsignedFunction.apply(this.server.console)), params, flag ? null : (gq.bxteam.divinemc.configuration.DivineConfig.chatMessageSignatures ? null : "Not Secure")); // Paper // DivineMC - Configurable Chat message signatures
OutgoingChatMessage outgoingchatmessage = OutgoingChatMessage.create(message);
boolean flag1 = false;
@@ -1498,6 +1498,7 @@ public abstract class PlayerList {
}
public boolean verifyChatTrusted(PlayerChatMessage message) { // Paper - private -> public
+ if (gq.bxteam.divinemc.configuration.DivineConfig.chatMessageSignatures) return true; // DivineMC - Configurable Chat message signatures
return message.hasSignature() && !message.hasExpiredServer(Instant.now());
}