mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-20 09:57:43 +01:00
return empty itemstack to PlayerBookTooLargeEvent if book is not being held
This commit is contained in:
@@ -5,14 +5,17 @@ Subject: [PATCH] PlayerBookTooLargeEvent
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 14f6abe6e7eeaf5d3053bf3ecb540b898813c267..65c9e83063c84ccff38d52049160bb093a7a50e7 100644
|
||||
index d7230d7a0ab8088bfa77d07c2b8cff66953409a9..f221f14c345ec81bc422e0f50d940eb43cdbcc73 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -1148,10 +1148,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -1148,10 +1148,15 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
int maxBookPageSize = io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.pageMax;
|
||||
double multiplier = Math.max(0.3D, Math.min(1D, io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.totalMultiplier));
|
||||
long byteAllowed = maxBookPageSize;
|
||||
+ ItemStack itemstack = this.player.getInventory().getItem(packet.getSlot()); // Purpur
|
||||
+ // Purpur start
|
||||
+ int slot = packet.getSlot();
|
||||
+ ItemStack itemstack = Inventory.isHotbarSlot(slot) || slot == Inventory.SLOT_OFFHAND ? this.player.getInventory().getItem(slot) : ItemStack.EMPTY;
|
||||
+ // Purpur end
|
||||
for (String testString : pageList) {
|
||||
int byteLength = testString.getBytes(java.nio.charset.StandardCharsets.UTF_8).length;
|
||||
if (byteLength > 256 * 4) {
|
||||
@@ -21,7 +24,7 @@ index 14f6abe6e7eeaf5d3053bf3ecb540b898813c267..65c9e83063c84ccff38d52049160bb09
|
||||
server.scheduleOnMain(() -> this.disconnect("Book too large!", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION)); // Paper - kick event cause
|
||||
return;
|
||||
}
|
||||
@@ -1175,6 +1177,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -1175,6 +1180,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
|
||||
if (byteTotal > byteAllowed) {
|
||||
ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send too large of a book. Book Size: " + byteTotal + " - Allowed: "+ byteAllowed + " - Pages: " + pageList.size());
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Dont run with scissors!
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 65c9e83063c84ccff38d52049160bb093a7a50e7..90561a2fb7c353bedb62b200689d8c73b3534033 100644
|
||||
index f221f14c345ec81bc422e0f50d940eb43cdbcc73..a84ec27e5fbbb270c4cb3ed814518272591ae613 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -1610,6 +1610,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -1613,6 +1613,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
this.player.resetFallDistance();
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ index 65c9e83063c84ccff38d52049160bb093a7a50e7..90561a2fb7c353bedb62b200689d8c73
|
||||
this.player.checkMovementStatistics(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5);
|
||||
this.lastGoodX = this.player.getX();
|
||||
this.lastGoodY = this.player.getY();
|
||||
@@ -1661,6 +1668,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -1664,6 +1671,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
return false;
|
||||
}
|
||||
// Paper end - optimise out extra getCubes
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Shift right click to use exp for mending
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||
index 0838b3c612c832276afa1edc090ef7771e8bf2fc..3250c21eded7872336d349a7a93c2c17160db723 100644
|
||||
index 0520d66d9de942f12f61dd1f735f8c19d5d62f07..818b360c205c7667946f49e324daa961b3b446cb 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||
@@ -518,6 +518,7 @@ public class ServerPlayerGameMode {
|
||||
@@ -36,10 +36,10 @@ index 0838b3c612c832276afa1edc090ef7771e8bf2fc..3250c21eded7872336d349a7a93c2c17
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 90561a2fb7c353bedb62b200689d8c73b3534033..9e4100ed797cfbafbb9c0b658f2a19c1c9a57ffc 100644
|
||||
index a84ec27e5fbbb270c4cb3ed814518272591ae613..ccaee317c02bba549787dbcfa558763d67eab1d2 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -2020,6 +2020,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -2023,6 +2023,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
|
||||
boolean cancelled;
|
||||
if (movingobjectposition == null || movingobjectposition.getType() != HitResult.Type.BLOCK) {
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Option to disable kick for out of order chat
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 9e4100ed797cfbafbb9c0b658f2a19c1c9a57ffc..018a3597c7132ba1f5972fef74b6a32837a31cb3 100644
|
||||
index ccaee317c02bba549787dbcfa558763d67eab1d2..82a536db73221dc366a06818e66ce15f23536cde 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -2338,7 +2338,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -2341,7 +2341,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
do {
|
||||
instant1 = (Instant) this.lastChatTimeStamp.get();
|
||||
if (timestamp.isBefore(instant1)) {
|
||||
|
||||
@@ -606,10 +606,10 @@ index de8e4fb4e0dac35cda26aced583f7dbd7f670f56..d5837c675e033c7277656e026cb98d55
|
||||
|
||||
} else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index fe54da743bf3583de98ff5c26d1746f686736729..1060672a14af92acd307e165a6c0f1b5bb234edb 100644
|
||||
index 82a536db73221dc366a06818e66ce15f23536cde..314fd1bfe080a1298a72ca063da510d22c621ed6 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -2448,7 +2448,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -2451,7 +2451,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
|
||||
public void handleCommand(String s) { // Paper - private -> public
|
||||
org.spigotmc.AsyncCatcher.catchOp("Command Dispatched Async: " + s); // Paper - Add async catcher
|
||||
@@ -618,7 +618,7 @@ index fe54da743bf3583de98ff5c26d1746f686736729..1060672a14af92acd307e165a6c0f1b5
|
||||
if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot
|
||||
this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s);
|
||||
|
||||
@@ -2458,7 +2458,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -2461,7 +2461,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
this.cserver.getPluginManager().callEvent(event);
|
||||
|
||||
if (event.isCancelled()) {
|
||||
@@ -627,7 +627,7 @@ index fe54da743bf3583de98ff5c26d1746f686736729..1060672a14af92acd307e165a6c0f1b5
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -2471,7 +2471,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -2474,7 +2474,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
java.util.logging.Logger.getLogger(ServerGamePacketListenerImpl.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
|
||||
return;
|
||||
} finally {
|
||||
@@ -637,7 +637,7 @@ index fe54da743bf3583de98ff5c26d1746f686736729..1060672a14af92acd307e165a6c0f1b5
|
||||
}
|
||||
// CraftBukkit end
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index 11b825f3dda93005e4b6fd4a5f36935215daf76a..d83f360d5f28f39fffca2949c5dbc114c04e7629 100644
|
||||
index 5c90dbdbaa4655458081fea0343a48674cfd3a55..50720000069a4914c11ef5c402a39c469966196f 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -1249,7 +1249,7 @@ public abstract class PlayerList {
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Add more logger output for invalid movement kicks
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 0c56b90dbcb4aaf904eeb1773a1aa82e9e018c50..165623f5abc237e63b236489af6375bb43daeaca 100644
|
||||
index 314fd1bfe080a1298a72ca063da510d22c621ed6..a086680bde989523dbaa52ef7c403ad6520ced98 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -736,6 +736,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -16,7 +16,7 @@ index 0c56b90dbcb4aaf904eeb1773a1aa82e9e018c50..165623f5abc237e63b236489af6375bb
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1324,8 +1325,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -1327,8 +1328,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@Override
|
||||
public void handleMovePlayer(ServerboundMovePlayerPacket packet) {
|
||||
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
|
||||
|
||||
@@ -36,7 +36,7 @@ index 2e395962b555bef0ce1a98e1d768e7738f011535..40f51062624161892c780ddae05e2285
|
||||
|
||||
this.writeId(BuiltInRegistries.ITEM, item);
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 306195a8a57dc62379ffd856b214a651fd60e483..bc0dfdad161936d1881066f61de02e6c9a7ed8a7 100644
|
||||
index 926ba816e7bccec0d1b34c2f8fc3300be84df4c2..b61c4d1ebb9c15a7ecd7bec5eb864851c053fb7e 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1549,6 +1549,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -48,10 +48,10 @@ index 306195a8a57dc62379ffd856b214a651fd60e483..bc0dfdad161936d1881066f61de02e6c
|
||||
while (iterator.hasNext()) {
|
||||
ServerLevel worldserver = (ServerLevel) iterator.next();
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 165623f5abc237e63b236489af6375bb43daeaca..6638d769a34287d54b22e4416003556915e153f1 100644
|
||||
index a086680bde989523dbaa52ef7c403ad6520ced98..34bb21e6e2812068e9bf82776cda4a0c1a34a2df 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -3362,6 +3362,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -3365,6 +3365,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user