mirror of
https://github.com/PaperMC/Paper.git
synced 2025-03-24 07:49:29 +01:00
More more more more more more more work
This commit is contained in:
parent
983a4b0b2b
commit
2f8a665549
50 changed files with 42 additions and 197 deletions
|
@ -9,20 +9,21 @@ diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListener
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 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
|
||||||
@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||||
|
|
||||||
private boolean tryHandleChat(String s, Instant instant) {
|
private boolean tryHandleChat(String message, Instant timestamp, LastSeenMessages.Update acknowledgment) {
|
||||||
if (!this.updateChatOrder(instant)) {
|
if (!this.updateChatOrder(timestamp)) {
|
||||||
- ServerGamePacketListenerImpl.LOGGER.warn("{} sent out-of-order chat: '{}'", this.player.getName().getString(), s);
|
- ServerGamePacketListenerImpl.LOGGER.warn("{} sent out-of-order chat: '{}'", this.player.getName().getString(), message);
|
||||||
+ ServerGamePacketListenerImpl.LOGGER.warn("{} sent out-of-order chat: '{}'; {} > {}", this.player.getName().getString(), s, this.lastChatTimeStamp.get().getEpochSecond(), instant.getEpochSecond()); // Paper
|
+ ServerGamePacketListenerImpl.LOGGER.warn("{} sent out-of-order chat: '{}': {} > {}", this.player.getName().getString(), message, this.lastChatTimeStamp.get().getEpochSecond(), timestamp.getEpochSecond()); // Paper
|
||||||
this.server.scheduleOnMain(() -> { // Paper - push to main
|
this.server.scheduleOnMain(() -> { // Paper - push to main
|
||||||
this.disconnect(Component.translatable("multiplayer.disconnect.out_of_order_chat"));
|
this.disconnect(Component.translatable("multiplayer.disconnect.out_of_order_chat"));
|
||||||
}); // Paper - push to main
|
}); // Paper - push to main
|
||||||
|
@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
if (this.isChatExpired(instant)) {
|
if (message.hasExpiredServer(Instant.now())) {
|
||||||
- ServerGamePacketListenerImpl.LOGGER.warn("{} sent expired chat: '{}'. Is the client/server system time unsynchronized?", this.player.getName().getString(), s);
|
- ServerGamePacketListenerImpl.LOGGER.warn("{} sent expired chat: '{}'. Is the client/server system time unsynchronized?", this.player.getName().getString(), message.signedContent().plain());
|
||||||
+ ServerGamePacketListenerImpl.LOGGER.warn("{} sent expired chat: '{}'. Is the client/server system time unsynchronized? c: {} s: {}", this.player.getName().getString(), s, instant.getEpochSecond(), Instant.now().getEpochSecond()); // Paper
|
+ ServerGamePacketListenerImpl.LOGGER.warn("{} sent expired chat: '{}'. Is the client/server system time unsynchronized? c: {} s: {}", this.player.getName().getString(), message.signedContent().plain(), message.timeStamp().getEpochSecond(), Instant.now().getEpochSecond()); // Paper
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.resetLastActionTime();
|
return true;
|
|
@ -8,7 +8,7 @@ diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListener
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 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
|
||||||
@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||||
@Override
|
@Override
|
||||||
public void handleClientInformation(ServerboundClientInformationPacket packet) {
|
public void handleClientInformation(ServerboundClientInformationPacket packet) {
|
||||||
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel());
|
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel());
|
|
@ -8,7 +8,7 @@ diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListener
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 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
|
||||||
@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||||
public void handleResourcePackResponse(ServerboundResourcePackPacket packet) {
|
public void handleResourcePackResponse(ServerboundResourcePackPacket packet) {
|
||||||
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel());
|
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel());
|
||||||
if (packet.getAction() == ServerboundResourcePackPacket.Action.DECLINED && this.server.isResourcePackRequired()) {
|
if (packet.getAction() == ServerboundResourcePackPacket.Action.DECLINED && this.server.isResourcePackRequired()) {
|
|
@ -8,12 +8,12 @@ diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListener
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 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
|
||||||
@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||||
}
|
}
|
||||||
// Spigot end
|
// Spigot end
|
||||||
// this.chatSpamTickCount += 20;
|
// this.chatSpamTickCount += 20;
|
||||||
- if (this.chatSpamTickCount.addAndGet(20) > 200 && !this.server.getPlayerList().isOp(this.player.getGameProfile())) {
|
- if (this.chatSpamTickCount.addAndGet(20) > 200 && !this.server.getPlayerList().isOp(this.player.getGameProfile())) {
|
||||||
+ if (counted && this.chatSpamTickCount.addAndGet(20) > 200 && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { // Paper - exclude from SpigotConfig.spamExclusions
|
+ if (counted && this.chatSpamTickCount.addAndGet(20) > 200 && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { // Paper - exclude from SpigotConfig.spamExclusions
|
||||||
if (!isSync) {
|
// CraftBukkit end
|
||||||
Waitable waitable = new Waitable() {
|
this.disconnect(Component.translatable("disconnect.spam"), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM); // Paper - kick event cause
|
||||||
@Override
|
}
|
|
@ -8,7 +8,7 @@ diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListener
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 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
|
||||||
@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||||
return false; // CraftBukkit - Return event status
|
return false; // CraftBukkit - Return event status
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@ diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListener
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 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
|
||||||
@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||||
this.player = this.server.getPlayerList().respawn(this.player, false);
|
this.player = this.server.getPlayerList().respawn(this.player, false);
|
||||||
if (this.server.isHardcore()) {
|
if (this.server.isHardcore()) {
|
||||||
this.player.setGameMode(GameType.SPECTATOR, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.HARDCORE_DEATH, null); // Paper
|
this.player.setGameMode(GameType.SPECTATOR, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.HARDCORE_DEATH, null); // Paper
|
|
@ -0,0 +1,24 @@
|
||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Shane Freeder <theboyetronic@gmail.com>
|
||||||
|
Date: Wed, 13 Apr 2022 08:25:42 +0100
|
||||||
|
Subject: [PATCH] Prevent tile entity copies loading chunks
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
|
@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||||
|
BlockPos blockposition = BlockEntity.getPosFromTag(nbttagcompound);
|
||||||
|
|
||||||
|
if (this.player.level.isLoaded(blockposition)) {
|
||||||
|
- BlockEntity tileentity = this.player.level.getBlockEntity(blockposition);
|
||||||
|
+ // Paper start
|
||||||
|
+ BlockEntity tileentity = null;
|
||||||
|
+ if (this.player.distanceToSqr(blockposition.getX(), blockposition.getY(), blockposition.getZ()) < 32 * 32 && this.player.getLevel().isLoadedAndInBounds(blockposition)) {
|
||||||
|
+ tileentity = this.player.level.getBlockEntity(blockposition);
|
||||||
|
+ }
|
||||||
|
+ // Paper end
|
||||||
|
|
||||||
|
if (tileentity != null) {
|
||||||
|
tileentity.saveToItem(itemstack);
|
|
@ -1,18 +0,0 @@
|
||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Noah van der Aa <ndvdaa@gmail.com>
|
|
||||||
Date: Wed, 15 Jun 2022 22:34:07 +0200
|
|
||||||
Subject: [PATCH] Fix MC-252439
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
|
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java
|
|
||||||
@@ -0,0 +0,0 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
|
|
||||||
|
|
||||||
entityvillager.setVillagerXp(this.villagerXp);
|
|
||||||
entityvillager.finalizeSpawn(world, world.getCurrentDifficultyAt(entityvillager.blockPosition()), MobSpawnType.CONVERSION, (SpawnGroupData) null, (CompoundTag) null);
|
|
||||||
+ entityvillager.refreshBrain(world); // Paper - Fix MC-252439
|
|
||||||
if (this.conversionStarter != null) {
|
|
||||||
Player entityhuman = world.getPlayerByUUID(this.conversionStarter);
|
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Shane Freeder <theboyetronic@gmail.com>
|
|
||||||
Date: Mon, 20 Jun 2022 14:59:38 +0100
|
|
||||||
Subject: [PATCH] Fix missing null check in
|
|
||||||
ChunkGenerator#findNearestMapStructure
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
|
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
|
|
||||||
@@ -0,0 +0,0 @@ public abstract class ChunkGenerator {
|
|
||||||
if (structureplacement1 instanceof ConcentricRingsStructurePlacement) {
|
|
||||||
ConcentricRingsStructurePlacement concentricringsstructureplacement = (ConcentricRingsStructurePlacement) structureplacement1;
|
|
||||||
Pair<BlockPos, Holder<Structure>> pair1 = this.getNearestGeneratedStructure((Set) entry.getValue(), world, structuremanager, center, skipReferencedStructures, concentricringsstructureplacement);
|
|
||||||
+ if (pair1 == null) continue; // Paper
|
|
||||||
BlockPos blockposition1 = (BlockPos) pair1.getFirst();
|
|
||||||
double d1 = center.distSqr(blockposition1);
|
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Shane Freeder <theboyetronic@gmail.com>
|
|
||||||
Date: Wed, 13 Apr 2022 08:25:42 +0100
|
|
||||||
Subject: [PATCH] Prevent tile entity copies loading chunks
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
||||||
@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
|
||||||
|
|
||||||
if (!itemstack.isEmpty() && nbttagcompound != null && nbttagcompound.contains("x") && nbttagcompound.contains("y") && nbttagcompound.contains("z") && this.player.getBukkitEntity().hasPermission("minecraft.nbt.copy")) { // Spigot
|
|
||||||
BlockPos blockposition = BlockEntity.getPosFromTag(nbttagcompound);
|
|
||||||
- BlockEntity tileentity = this.player.level.getBlockEntity(blockposition);
|
|
||||||
+ // Paper start
|
|
||||||
+ BlockEntity tileentity = null;
|
|
||||||
+ if (this.player.distanceToSqr(blockposition.getX(), blockposition.getY(), blockposition.getZ()) < 32 * 32 && this.player.getLevel().isLoadedAndInBounds(blockposition)) {
|
|
||||||
+ tileentity = this.player.level.getBlockEntity(blockposition);
|
|
||||||
+ }
|
|
||||||
+ // Paper end
|
|
||||||
|
|
||||||
if (tileentity != null) {
|
|
||||||
tileentity.saveToItem(itemstack);
|
|
|
@ -1,19 +0,0 @@
|
||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Nassim Jahnke <nassim@njahnke.dev>
|
|
||||||
Date: Fri, 10 Jun 2022 16:02:35 +0200
|
|
||||||
Subject: [PATCH] Remove invalid signature login stacktrace
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
|
||||||
@@ -0,0 +0,0 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener
|
|
||||||
try {
|
|
||||||
this.playerProfilePublicKey = ServerLoginPacketListenerImpl.validatePublicKey(packet, this.server.getServiceSignatureValidator(), this.server.enforceSecureProfile());
|
|
||||||
} catch (ServerLoginPacketListenerImpl.PublicKeyParseException loginlistener_a) {
|
|
||||||
- ServerLoginPacketListenerImpl.LOGGER.error(loginlistener_a.getMessage(), loginlistener_a.getCause());
|
|
||||||
+ //ServerLoginPacketListenerImpl.LOGGER.error(loginlistener_a.getMessage(), loginlistener_a.getCause()); // Paper - unnecessary stacktrace
|
|
||||||
if (!this.connection.isMemoryConnection()) {
|
|
||||||
this.disconnect(loginlistener_a.getComponent());
|
|
||||||
return;
|
|
|
@ -1,100 +0,0 @@
|
||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Nassim Jahnke <nassim@njahnke.dev>
|
|
||||||
Date: Wed, 8 Jun 2022 21:30:34 +0200
|
|
||||||
Subject: [PATCH] Untrash chat handling
|
|
||||||
|
|
||||||
Vanilla technically allows chat messages with starting slashes now,
|
|
||||||
Spigot still accepts them as commands, most likely due to being too
|
|
||||||
lazy to properly differentiate between chat and command intent in
|
|
||||||
their implementation. This disallows modified clients to send chat
|
|
||||||
messages with slashes and makes sure chat validation always happens
|
|
||||||
on the netty event loop, rather than there and possibly being moved
|
|
||||||
to the main thread, thus having the delayed handling cause a bad
|
|
||||||
process order of message ids.
|
|
||||||
|
|
||||||
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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
||||||
--- a/src/main/java/net/minecraft/network/protocol/game/ServerboundChatPacket.java
|
|
||||||
+++ b/src/main/java/net/minecraft/network/protocol/game/ServerboundChatPacket.java
|
|
||||||
@@ -0,0 +0,0 @@ public class ServerboundChatPacket implements Packet<ServerGamePacketListener> {
|
|
||||||
}
|
|
||||||
|
|
||||||
// Spigot Start
|
|
||||||
- private static final java.util.concurrent.ExecutorService executors = java.util.concurrent.Executors.newCachedThreadPool(
|
|
||||||
+ // Paper start - untrash chat event handling
|
|
||||||
+ public static final java.util.concurrent.ExecutorService executors = java.util.concurrent.Executors.newCachedThreadPool(
|
|
||||||
new com.google.common.util.concurrent.ThreadFactoryBuilder().setDaemon( true ).setNameFormat( "Async Chat Thread - #%d" ).setUncaughtExceptionHandler(new net.minecraft.DefaultUncaughtExceptionHandlerWithName(net.minecraft.server.MinecraftServer.LOGGER)).build() ); // Paper
|
|
||||||
public void handle(final ServerGamePacketListener listener) {
|
|
||||||
- if ( !this.message.startsWith("/") )
|
|
||||||
- {
|
|
||||||
- ServerboundChatPacket.executors.execute( new Runnable() // Paper - Use #execute to propagate exceptions up instead of swallowing them
|
|
||||||
- {
|
|
||||||
-
|
|
||||||
- @Override
|
|
||||||
- public void run()
|
|
||||||
- {
|
|
||||||
- listener.handleChat( ServerboundChatPacket.this );
|
|
||||||
- }
|
|
||||||
- } );
|
|
||||||
+ if (this.message.startsWith("/")) {
|
|
||||||
+ // Just don't allow this instead of creating gigantic diff when untrashing more Spigot code
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
- // Spigot End
|
|
||||||
listener.handleChat(this);
|
|
||||||
+ // Paper end - untrash chat event handling
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getMessage() {
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
||||||
@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void handleChat(ServerboundChatPacket packet) {
|
|
||||||
- // CraftBukkit start - async chat
|
|
||||||
- // SPIGOT-3638
|
|
||||||
- if (this.server.isStopped()) {
|
|
||||||
- return;
|
|
||||||
- }
|
|
||||||
// CraftBukkit end
|
|
||||||
if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.getMessage())) {
|
|
||||||
this.server.scheduleOnMain(() -> { // Paper - push to main for event firing
|
|
||||||
@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
|
||||||
if (this.tryHandleChat(packet.getMessage(), packet.getTimeStamp())) {
|
|
||||||
// CraftBukkit start
|
|
||||||
// this.filterTextPacket(packetplayinchat.getMessage(), (filteredtext) -> {
|
|
||||||
+ // Paper start - untrash chat handling
|
|
||||||
+ ServerboundChatPacket.executors.execute(() -> {
|
|
||||||
+ if (this.server.isStopped()) {
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
this.handleChat(packet, FilteredText.passThrough(packet.getMessage())); // CraftBukkit - filter NYI
|
|
||||||
// });
|
|
||||||
+ });
|
|
||||||
+ // Paper end - untrash chat handling
|
|
||||||
// CraftBukkit end
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
|
||||||
this.disconnect(Component.translatable("multiplayer.disconnect.illegal_characters"));
|
|
||||||
}); // Paper - push to main for event firing
|
|
||||||
} else {
|
|
||||||
- PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel());
|
|
||||||
+ // Paper start - untrash chat handling
|
|
||||||
if (this.tryHandleChat(packet.command(), packet.timeStamp())) {
|
|
||||||
+ this.server.scheduleOnMain(() -> {
|
|
||||||
// CraftBukkit start
|
|
||||||
// CommandListenerWrapper commandlistenerwrapper = this.player.createCommandSourceStack().withSigningContext(serverboundchatcommandpacket.signingContext(this.player.getUUID()));
|
|
||||||
|
|
||||||
@@ -0,0 +0,0 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
|
||||||
}
|
|
||||||
this.detectRateSpam(true, "/" + packet.command()); // Spigot
|
|
||||||
// CraftBukkit end
|
|
||||||
+ });
|
|
||||||
+ // Paper end - untrash chat handling
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
Loading…
Add table
Reference in a new issue