Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Fixed bee count payload exploit and made it configurable.
  • Loading branch information
dexuby committed Feb 18, 2024
commit bb3c98cc905de07868db279d05547c926945df8d
Original file line number Diff line number Diff line change
Expand Up @@ -17,23 +17,39 @@ index 4a0e56f4fb6903ea5f4974052d9d55447a6254ea..cd2394263cc14d99861f98c77f016e54
this.hasLoggedStop = true; // Paper - Debugging
if (isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper - Debugging
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 20bf50f07f50409d0d1f394d7c3acde9a00ff98d..655b49f74139d960b81985e3c2eae23004f1e7e4 100644
index 0d70fe71651c8f9d75a604ed2d5c480b41df1dd6..38de0e9b83ecac489ca676725274d14fcb60dd5c 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -376,6 +376,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface

if (gg.pufferfish.pufferfish.PufferfishConfig.enableAsyncMobSpawning) mobSpawnExecutor.start(); // Pufferfish
org.purpurmc.purpur.task.BossBarTask.startAll(); // Purpur
+ org.purpurmc.purpur.task.BeehiveTask.instance().register(); // Purpur
+ if (org.purpurmc.purpur.PurpurConfig.beeCountPayload) org.purpurmc.purpur.task.BeehiveTask.instance().register(); // Purpur
return true;
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index ffff69021335ca52d10a07bb3b3f272eea6ebcb5..0e28cf20a870f3f3662bd1d8f7a4f2cbf13c48bf 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -434,6 +434,11 @@ public class PurpurConfig {
allowWaterPlacementInTheEnd = getBoolean("settings.allow-water-placement-in-the-end", allowWaterPlacementInTheEnd);
}

+ public static boolean beeCountPayload = false;
+ private static void beeCountPayload() {
+ beeCountPayload = getBoolean("settings.bee-count-payload", beeCountPayload);
+ }
+
public static boolean loggerSuppressInitLegacyMaterialError = false;
public static boolean loggerSuppressIgnoredAdvancementWarnings = false;
public static boolean loggerSuppressUnrecognizedRecipeErrors = false;
diff --git a/src/main/java/org/purpurmc/purpur/task/BeehiveTask.java b/src/main/java/org/purpurmc/purpur/task/BeehiveTask.java
new file mode 100644
index 0000000000000000000000000000000000000000..8a5faed6c1ac6850b87405e774e4393877d61c92
index 0000000000000000000000000000000000000000..a704f2cbe0a0168cb808f0575aa9f26a49f8ee41
--- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/task/BeehiveTask.java
@@ -0,0 +1,92 @@
@@ -0,0 +1,95 @@
+package org.purpurmc.purpur.task;
+
+import com.google.common.io.ByteArrayDataInput;
Expand Down Expand Up @@ -92,6 +108,9 @@ index 0000000000000000000000000000000000000000..8a5faed6c1ac6850b87405e774e43938
+
+ ServerPlayer serverPlayer = ((CraftPlayer) player).getHandle();
+
+ if (!pos.getCenter().closerThan(serverPlayer.position(), 16)) return; // Targeted Block info max range is 16
+ if (serverPlayer.level().getChunkIfLoaded(pos) == null) return;
+
+ BlockEntity blockEntity = serverPlayer.level().getBlockEntity(pos);
+ if (!(blockEntity instanceof BeehiveBlockEntity beehive)) {
+ return;
Expand Down
4 changes: 2 additions & 2 deletions patches/server/0239-Configurable-food-attributes.patch
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,10 @@ index e83ea53da012f3dcaa1f53bf6082a17a69e6ee13..cf68dca4096556b0c2594c76fcf11341
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index ffff69021335ca52d10a07bb3b3f272eea6ebcb5..590286e593fec706a3f16f0080b35aa0637ca06d 100644
index 0e28cf20a870f3f3662bd1d8f7a4f2cbf13c48bf..ce3ab604e6ed6669f38abf83d40b500148277b9d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -461,4 +461,75 @@ public class PurpurConfig {
@@ -466,4 +466,75 @@ public class PurpurConfig {
String setPattern = getString("settings.username-valid-characters", defaultPattern);
usernameValidCharactersPattern = java.util.regex.Pattern.compile(setPattern == null || setPattern.isBlank() ? defaultPattern : setPattern);
}
Expand Down
6 changes: 3 additions & 3 deletions patches/server/0240-Max-joins-per-second.patch
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Subject: [PATCH] Max joins per second
When this option is set to true the `max-joins-per-tick` setting in paper.yml will be used per second instead of per tick

diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java
index e18406b4172499b0cb116a45cd5a968ae3e3fdce..57d0fbca001da7cace3eeb69526e28e8a2ef5ac5 100644
index 4716f8bd8a64d4f20f0d5957c1e7fabf63020f43..b41cab778f446434b788946ea9d3e02c152e570e 100644
--- a/src/main/java/net/minecraft/network/Connection.java
+++ b/src/main/java/net/minecraft/network/Connection.java
@@ -569,11 +569,20 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
Expand All @@ -31,10 +31,10 @@ index e18406b4172499b0cb116a45cd5a968ae3e3fdce..57d0fbca001da7cace3eeb69526e28e8
}
// Paper end - Buffer joins to world
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 590286e593fec706a3f16f0080b35aa0637ca06d..f17b160b304b1adbde80690ae482986309f3befe 100644
index ce3ab604e6ed6669f38abf83d40b500148277b9d..a05da9ff158c6e7d55abb23e4b28f3703e9e5b3d 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -451,8 +451,10 @@ public class PurpurConfig {
@@ -456,8 +456,10 @@ public class PurpurConfig {
}

public static boolean useUPnP = false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ 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 1b2836737a38eb11e484c6073a6a33f5bc16d4e1..8aad8c78869b644f0111e9b2265c128633386787 100644
index 3c50c4a296fb24c1ae967f3a2ca35dc309a00fda..b961aad10028efce3cdf5a5bb3c4dfd5eccd15bc 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1720,7 +1720,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
Expand All @@ -18,10 +18,10 @@ index 1b2836737a38eb11e484c6073a6a33f5bc16d4e1..8aad8c78869b644f0111e9b2265c1286

voxelshape1 = (VoxelShape) iterator.next();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 3a49455509a26063a62e39fb3d3ad81e80bced54..40922e69274de6bc3da6f74b0216a816a1fb7722 100644
index 9bc5cc4944dcd3918b2a90bde9dd8fdd795ae3b2..b55a4366f69a1f259d5d7aed01764aec14a1dbb2 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -456,9 +456,11 @@ public class PurpurConfig {
@@ -461,9 +461,11 @@ public class PurpurConfig {

public static boolean useUPnP = false;
public static boolean maxJoinsPerSecond = false;
Expand Down
6 changes: 3 additions & 3 deletions patches/server/0275-Add-item-packet-serialize-event.patch
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ index 8384f72d408f6f31c4c8a1ba47b8caba600faaad..b1dd8d66a524254a270a725f5f7a46f2
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 e38de89141ee2f61966abdd81bd00a2d671ef949..5b37a0bc513a68e0696362fa53633c125eb1fa8b 100644
index 6eb68915c608ffea21e043c9ee809081c24ba68a..1c005ef082178ab82ca6b469fcbefa725d885806 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -3369,6 +3369,12 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
Expand All @@ -65,10 +65,10 @@ index e38de89141ee2f61966abdd81bd00a2d671ef949..5b37a0bc513a68e0696362fa53633c12
boolean flag1 = packet.getSlotNum() >= 1 && packet.getSlotNum() <= 45;
boolean flag2 = itemstack.isEmpty() || itemstack.getDamageValue() >= 0 && itemstack.getCount() <= 64 && !itemstack.isEmpty();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 128eab7246bf263e302cbeb5e4c359a41dd2cd3f..be7b302257447d5593efe9b512d036b293f340b5 100644
index 5313ba91ffc625b27d5bb99395f0e719829f6bda..5329ad6493950a561bd46045e35a9bd70ac4405f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -563,4 +563,9 @@ public class PurpurConfig {
@@ -568,4 +568,9 @@ public class PurpurConfig {
}
});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Subject: [PATCH] Add an option to fix MC-3304 (projectile looting)


diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
index 00ec6661f07d9b8dc3744c4d2d128643f680c8d8..56c150d037964e82d9aa3fac2008dc1e14cced8c 100644
index 2d1bff45830b489caba33552cafa2ae795d6def6..fd1d6c4c3f78b610282318e98ba3742f8bf6e20e 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
@@ -74,6 +74,7 @@ public abstract class AbstractArrow extends Projectile {
Expand Down Expand Up @@ -48,7 +48,7 @@ index 220513d3fd5645322886522ea4f6b8c55d043b3c..d45a2f49c82d00801578c34e5f5277fc
org.bukkit.event.entity.EntityShootBowEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityShootBowEvent(entityhuman, stack, itemstack1, entityarrow, entityhuman.getUsedItemHand(), f, !flag1);
if (event.isCancelled()) {
diff --git a/src/main/java/net/minecraft/world/item/CrossbowItem.java b/src/main/java/net/minecraft/world/item/CrossbowItem.java
index b112845e94d354bbadff67673ea0b4939672bd3e..62f291abef664d8bccd682db9de8d0ae6fe2b9bd 100644
index 05d3a7c077df1b92819655790230cd22028f6893..211d8e59a9b3460b346e5f8cf581df70b05d1b8f 100644
--- a/src/main/java/net/minecraft/world/item/CrossbowItem.java
+++ b/src/main/java/net/minecraft/world/item/CrossbowItem.java
@@ -291,6 +291,14 @@ public class CrossbowItem extends ProjectileWeaponItem implements Vanishable {
Expand Down Expand Up @@ -104,10 +104,10 @@ index 3fb1e558c3510243c94981211f9a0e5e0ef1895b..e5177e5ffcac360f935f2139db4554c6
if (context.hasParam(LootContextParams.LOOTING_MOD)) {
i = context.getParamOrNull(LootContextParams.LOOTING_MOD);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index be7b302257447d5593efe9b512d036b293f340b5..2d7b942a0067b8d5eb156d7ee9ec2e5914cbe181 100644
index 5329ad6493950a561bd46045e35a9bd70ac4405f..88763ca8cc31bda23f8f31d2bc990fb4a85c9955 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -568,4 +568,9 @@ public class PurpurConfig {
@@ -573,4 +573,9 @@ public class PurpurConfig {
private static void fixNetworkSerializedCreativeItems() {
fixNetworkSerializedItemsInCreative = getBoolean("settings.fix-network-serialized-items-in-creative", fixNetworkSerializedItemsInCreative);
}
Expand Down
4 changes: 2 additions & 2 deletions patches/server/0277-Configurable-block-blast-resistance.patch
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ index 63c4d52c348d9297a24abb17e105b2f4c7758740..d38d8fc7ef22fb68e867cc29dab1171c
protected final SoundType soundType;
protected final float friction;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 2d7b942a0067b8d5eb156d7ee9ec2e5914cbe181..3c163e2b512294f93255f25ccdc7917ded14ca4a 100644
index 88763ca8cc31bda23f8f31d2bc990fb4a85c9955..b13635ec623c80b1c32f2a6c11680dae899e8ec7 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -573,4 +573,19 @@ public class PurpurConfig {
@@ -578,4 +578,19 @@ public class PurpurConfig {
private static void fixProjectileLootingTransfer() {
fixProjectileLootingTransfer = getBoolean("settings.fix-projectile-looting-transfer", fixProjectileLootingTransfer);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,10 @@ index ef364aa171a48482a45bc18cfe730ec20c3f7be6..74971d90506aa253d5ee821b5390fb25
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 3c163e2b512294f93255f25ccdc7917ded14ca4a..f743f97c622f1672374cc446331435edb1ce1ed9 100644
index b13635ec623c80b1c32f2a6c11680dae899e8ec7..bc001cac7d478baf5118ec746de8d2d2eba2ba5c 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -588,4 +588,50 @@ public class PurpurConfig {
@@ -593,4 +593,50 @@ public class PurpurConfig {
block.explosionResistance = blastResistance.floatValue();
});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ Subject: [PATCH] Add log suppression for LibraryLoader


diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index f743f97c622f1672374cc446331435edb1ce1ed9..24db1eb4d9b1677287bbe157320575fee926577a 100644
index bc001cac7d478baf5118ec746de8d2d2eba2ba5c..5343628ea71c14fba785a0b36ef4abd05b6f63c3 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -465,11 +465,14 @@ public class PurpurConfig {
@@ -470,11 +470,14 @@ public class PurpurConfig {
public static boolean loggerSuppressIgnoredAdvancementWarnings = false;
public static boolean loggerSuppressUnrecognizedRecipeErrors = false;
public static boolean loggerSuppressSetBlockFarChunk = false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,10 @@ index f0703302e7dbbda88de8c648d20d87c55ed9b1e0..a913ebabaa5f443afa987b972355a8f8
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 24db1eb4d9b1677287bbe157320575fee926577a..3eba2f3df5723d068ff62c78243e39b8f4e3f853 100644
index 5343628ea71c14fba785a0b36ef4abd05b6f63c3..cd2c365bcaca0720dc543188a23ff585192cb76e 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -577,6 +577,16 @@ public class PurpurConfig {
@@ -582,6 +582,16 @@ public class PurpurConfig {
fixProjectileLootingTransfer = getBoolean("settings.fix-projectile-looting-transfer", fixProjectileLootingTransfer);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@ index 6736093629bf92a888b0c971f3cf0a4e725cddec..ba4466c49a7c1713007140efdc2eb805
}

diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 3eba2f3df5723d068ff62c78243e39b8f4e3f853..e9fc2b4661f5275b93db5d3fdf25a8bdc3b38920 100644
index cd2c365bcaca0720dc543188a23ff585192cb76e..776d397fc31db121fa933a2ae2b4f1589fc10247 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -647,4 +647,9 @@ public class PurpurConfig {
@@ -652,4 +652,9 @@ public class PurpurConfig {
block.fallDistanceMultiplier = fallDistanceMultiplier.floatValue();
});
}
Expand Down