2023-07-05 15:08:19 +00:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Luna <lunahatesgogle@gmail.com>
|
|
|
|
Date: Tue, 4 Jul 2023 18:49:34 -0300
|
|
|
|
Subject: [PATCH] Fix packet-related lag exploits
|
|
|
|
|
|
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
2024-01-24 22:30:21 +00:00
|
|
|
index 51e5742e265d4d624eda119e199d6bc0f528b835..1865e5219bfb1930b2d01e03c04718b64617522f 100644
|
2023-07-05 15:08:19 +00:00
|
|
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
2024-01-24 01:05:59 +00:00
|
|
|
@@ -856,7 +856,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
2023-07-05 15:08:19 +00:00
|
|
|
this.player.sendSystemMessage(Component.translatable("advMode.notEnabled"));
|
|
|
|
} else if (!this.player.canUseGameMasterBlocks() && (!this.player.isCreative() || !this.player.getBukkitEntity().hasPermission("minecraft.commandblock"))) { // Paper - command block permission
|
|
|
|
this.player.sendSystemMessage(Component.translatable("advMode.notAllowed"));
|
|
|
|
- } else {
|
|
|
|
+ } else if (this.player.level().isLoadedAndInBounds(packet.getPos())) { // Scissors
|
|
|
|
BaseCommandBlock commandblocklistenerabstract = null;
|
|
|
|
CommandBlockEntity tileentitycommand = null;
|
|
|
|
BlockPos blockposition = packet.getPos();
|
2024-01-24 01:05:59 +00:00
|
|
|
@@ -1025,7 +1025,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
2023-07-05 15:08:19 +00:00
|
|
|
@Override
|
|
|
|
public void handleSetStructureBlock(ServerboundSetStructureBlockPacket packet) {
|
|
|
|
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
|
|
|
|
- if (this.player.canUseGameMasterBlocks()) {
|
|
|
|
+ if (this.player.canUseGameMasterBlocks() && this.player.level().isLoadedAndInBounds(packet.getPos())) { // Scissors
|
|
|
|
BlockPos blockposition = packet.getPos();
|
|
|
|
BlockState iblockdata = this.player.level().getBlockState(blockposition);
|
|
|
|
BlockEntity tileentity = this.player.level().getBlockEntity(blockposition);
|
2024-01-24 01:05:59 +00:00
|
|
|
@@ -1083,7 +1083,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
2023-07-05 15:08:19 +00:00
|
|
|
@Override
|
|
|
|
public void handleSetJigsawBlock(ServerboundSetJigsawBlockPacket packet) {
|
|
|
|
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
|
|
|
|
- if (this.player.canUseGameMasterBlocks()) {
|
|
|
|
+ if (this.player.canUseGameMasterBlocks() && this.player.level().isLoadedAndInBounds(packet.getPos())) { // Scissors
|
|
|
|
BlockPos blockposition = packet.getPos();
|
|
|
|
BlockState iblockdata = this.player.level().getBlockState(blockposition);
|
|
|
|
BlockEntity tileentity = this.player.level().getBlockEntity(blockposition);
|
2024-01-24 01:05:59 +00:00
|
|
|
@@ -1108,7 +1108,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
2023-07-05 15:08:19 +00:00
|
|
|
@Override
|
|
|
|
public void handleJigsawGenerate(ServerboundJigsawGeneratePacket packet) {
|
|
|
|
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
|
|
|
|
- if (this.player.canUseGameMasterBlocks()) {
|
|
|
|
+ if (this.player.canUseGameMasterBlocks() && this.player.level().isLoadedAndInBounds(packet.getPos())) { // Scissors
|
|
|
|
BlockPos blockposition = packet.getPos();
|
|
|
|
BlockEntity tileentity = this.player.level().getBlockEntity(blockposition);
|
|
|
|
|