Remove packet limiter patch (non-effective)

This commit is contained in:
William Blake Galbreath
2020-03-26 19:09:24 -05:00
parent 8c994be011
commit 21a468770c
74 changed files with 121 additions and 398 deletions

View File

@@ -1,4 +1,4 @@
From 53a6720daaa77fdc79d9d84ff31511fb88640c60 Mon Sep 17 00:00:00 2001
From c8392bbe6cbc94fcdc12ba2737a58784e52b6260 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Tue, 9 Jul 2019 20:56:47 -0500
Subject: [PATCH] Fix pig zombies (MC-56653)

View File

@@ -1,277 +0,0 @@
From 285f8173d5c86b39852cadd451d8ec5b5b5cfc71 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Fri, 7 Feb 2020 09:45:09 -0600
Subject: [PATCH] Rate limit incoming packets from players
---
.../net/minecraft/server/NetworkManager.java | 7 +
.../minecraft/server/PlayerConnection.java | 56 +++++++
.../java/net/pl3x/purpur/PurpurConfig.java | 12 ++
.../pl3x/purpur/network/PacketLimiter.java | 147 ++++++++++++++++++
4 files changed, 222 insertions(+)
create mode 100644 src/main/java/net/pl3x/purpur/network/PacketLimiter.java
diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java
index 77aa911c98..802295681a 100644
--- a/src/main/java/net/minecraft/server/NetworkManager.java
+++ b/src/main/java/net/minecraft/server/NetworkManager.java
@@ -150,6 +150,13 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
}
private static <T extends PacketListener> void a(Packet<T> packet, PacketListener packetlistener) {
+ // Purpur start - Ratelimit packets
+ if (packetlistener instanceof PlayerConnection) {
+ if (((PlayerConnection)packetlistener).rateLimitPacket(packet)) {
+ return; // we've been killed as a result of rate limiting
+ }
+ }
+ // Purpur end
packet.a((T) packetlistener); // CraftBukkit - decompile error
}
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 895e34ed34..67afa457e8 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -140,6 +140,62 @@ public class PlayerConnection implements PacketListenerPlayIn {
return (this.player == null) ? null : (CraftPlayer) this.player.getBukkitEntity();
}
// CraftBukkit end
+ // Purpur start - ratelimit packets
+ /*
+ * We cannot rely on tick() being called. If a server lags we could end up kicking everyone!
+ * So we must rely on our own timer.
+ */
+ private final net.pl3x.purpur.network.PacketLimiter packetLimiter = net.pl3x.purpur.PurpurConfig.packetRateLimit < 0 ?
+ null : new net.pl3x.purpur.network.PacketLimiter(net.pl3x.purpur.PurpurConfig.packetRateLimitInterval * 1000.0, 100);
+ private boolean kickedForPacketSpam;
+
+ private static final java.text.DecimalFormat ONE_DECIMAL_PLACE = new java.text.DecimalFormat("0.0");
+
+ /**
+ * @return {@code true} if the client has been killed as a result of rate limiting, {@code false} if not
+ */
+ boolean rateLimitPacket(final Packet<?> packet) {
+ final net.pl3x.purpur.network.PacketLimiter limiter = this.packetLimiter;
+ if (limiter == null) {
+ // not configured
+ return false;
+ }
+
+ // avoid contending the lock if we've been kicked already
+ if (this.kickedForPacketSpam) {
+ return true;
+ }
+
+ final int limit = net.pl3x.purpur.PurpurConfig.packetRateLimit;
+
+ synchronized (limiter) {
+ // we need to re-check this, as it could have changed during the lock hold
+ if (this.kickedForPacketSpam) {
+ return true;
+ }
+
+ final int packets = limiter.incrementPackets(1);
+
+ if (packets / (limiter.intervalTime / 1000.0) <= limit) {
+ // below limit
+ return false;
+ }
+
+ this.kickedForPacketSpam = true;
+ this.minecraftServer.postToMainThread(() -> {
+ if (PlayerConnection.this.processedDisconnect) {
+ return; // no point, we've disconnected already
+ }
+ PlayerConnection.this.disconnect(net.pl3x.purpur.PurpurConfig.packetRateLimitKickMessage);
+ PlayerConnection.LOGGER.warn("{} was kicked for sending too many packets! {} in the last {} seconds",
+ PlayerConnection.this.player.getDisplayName().getString(), packets,
+ ONE_DECIMAL_PLACE.format(limiter.intervalTime / 1000.0));
+ });
+
+ return true;
+ }
+ }
+ // Purpur end
public void tick() {
this.syncPosition();
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 3670b4d48d..e1a1ef860a 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -142,6 +142,18 @@ public class PurpurConfig {
loggerSuppressWorldGenFeatureDeserializationError = getBoolean("settings.logger.suppress-world-gen-feature-deserialization-errors", loggerSuppressWorldGenFeatureDeserializationError);
}
+ public static int packetRateLimit = 250; // per second
+ public static double packetRateLimitInterval = 10.0; // seconds
+ public static String packetRateLimitKickMessage = "Sent too many packets";
+ private static void packetLimiterSettings() {
+ packetRateLimit = Math.max(-1, getInt("settings.packet-limiter.packets-per-second", packetRateLimit));
+ packetRateLimitInterval = getDouble("settings.packet-limiter.packet-spam-interval", packetRateLimitInterval);
+ if (packetRateLimitInterval <= 0.0 && packetRateLimit >= 0) {
+ log(Level.SEVERE, "If packet rate limiting is enabled, the rate limit interval must be greater than 0!");
+ }
+ packetRateLimitKickMessage = getString("settings.packet-limiter.kick-message", packetRateLimitKickMessage);
+ }
+
public static boolean dontSendUselessEntityPackets = false;
public static boolean fixItemPositionDesync = false;
private static void dontSendUselessEntityPackets() {
diff --git a/src/main/java/net/pl3x/purpur/network/PacketLimiter.java b/src/main/java/net/pl3x/purpur/network/PacketLimiter.java
new file mode 100644
index 0000000000..e51e7eb9d0
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/network/PacketLimiter.java
@@ -0,0 +1,147 @@
+package net.pl3x.purpur.network;
+
+import java.util.Arrays;
+
+public class PacketLimiter {
+
+ /**
+ * multiplier to convert ns to ms
+ */
+ private static final double NANOSECONDS_TO_MILLISECONDS = 1.0e-6; // 1e3 / 1e9
+
+ /**
+ * The time frame this packet limiter will count packets over (ms).
+ */
+ public final double intervalTime;
+
+ /**
+ * The time each bucket will represent (ms).
+ */
+ public final double intervalResolution;
+
+ /**
+ * Total buckets contained in this limiter.
+ */
+ public final int totalBuckets;
+
+ /**
+ * contains all packet data, note that indices of buckets will wrap around the array
+ */
+ private final int[] data;
+
+ /**
+ * pointer which represents the bucket containing the newest data
+ */
+ private int newestData;
+
+ /**
+ * the time attached to the bucket at newestData
+ */
+ private double lastBucketTime;
+
+ /**
+ * cached sum of all data
+ */
+ private int sum;
+
+ /**
+ * Constructs a packetlimiter which will record total packets sent over the specified
+ * interval time (in ms) with the specified number of buckets
+ *
+ * @param intervalTime The specified interval time, in ms
+ * @param totalBuckets The total number of buckets
+ */
+ public PacketLimiter(final double intervalTime, final int totalBuckets) {
+ this.intervalTime = intervalTime;
+ this.intervalResolution = intervalTime / (double) totalBuckets;
+ this.totalBuckets = totalBuckets;
+ this.data = new int[totalBuckets];
+ }
+
+ /*
+ * Stores number of packets according to their relative time. Each "bucket" will represent a time frame, according
+ * to this.intervalResolution. The newestData pointer represents the bucket containing the newest piece of data.
+ * The oldest piece of data is always the bucket after the newest data. When a new time frame is needed, the newest
+ * data pointer is simply moved forward and previous data is either removed or overridden.
+ *
+ * For example, the following piece of code will sum all data older than the newest (starting from new -> older):
+ *
+ * int sum = 0;
+ * for (int i = (newestData - 1) % buckets; i != newestData; i = (i - 1) % total_buckets) {
+ * sum += buckets[i];
+ * }
+ *
+ * Additionally, the sum of data is cached. Older data is automatically subtracted and newer data is automatically
+ * summed. This makes calls made within a time interval of 'this.intervalResolution' O(1)
+ *
+ * Calls made over larger timers are O(n), with n ~ min(total_buckets, timePassed / bucket_interval)
+ */
+
+ /**
+ * Adds to this limiter's packet count. Old data is automatically purged, and the current time from {@link System#nanoTime()}
+ * is used to record this data. Returns the new packet count.
+ *
+ * @param packets The number of packets to attach to the current time
+ * @return The new packet count
+ */
+ public int incrementPackets(final int packets) {
+ return this.incrementPackets(System.nanoTime(), packets);
+ }
+
+ private int incrementPackets(final long currentTime, final int packets) {
+ final double timeMs = currentTime * NANOSECONDS_TO_MILLISECONDS;
+ double timeDelta = timeMs - this.lastBucketTime;
+
+ if (timeDelta < 0.0) {
+ // we presume the difference is small. nanotime always moves forward
+ timeDelta = 0.0;
+ }
+
+ if (timeDelta < this.intervalResolution) {
+ this.data[this.newestData] += packets;
+ return this.sum += packets;
+ }
+
+ final int bucketsToMove = (int) (timeDelta / this.intervalResolution);
+
+ // With this expression there will be error, however it is small and will continue to the next counter.
+ // In the end what matters is the DIFFERENCE in time between each bucket being the interval resolution,
+ // which will remain approximately the case for this class' use case.
+ // For large bucket counts (n > 1_000_000) we might have to consider the error.
+ final double nextBucketTime = (this.lastBucketTime + bucketsToMove * this.intervalResolution);
+
+ if (bucketsToMove >= this.totalBuckets) {
+ // we need to simply clear all data
+ Arrays.fill(this.data, 0);
+
+ this.data[0] = packets;
+ this.sum = packets;
+ this.newestData = 0;
+ this.lastBucketTime = timeMs;
+
+ return packets;
+ }
+
+ // buckets we have no data for (since we've jumped ahead of them)
+ for (int i = 1; i < bucketsToMove; ++i) {
+ final int index = (this.newestData + i) % this.totalBuckets;
+ this.sum -= this.data[index];
+ this.data[index] = 0;
+ }
+
+ final int newestDataIndex = (this.newestData + bucketsToMove) % this.totalBuckets;
+ this.sum += packets - this.data[newestDataIndex]; // this.sum += packets; this.sum -= this.data[index]
+ this.data[newestDataIndex] = packets;
+ this.newestData = newestDataIndex;
+ this.lastBucketTime = nextBucketTime;
+
+ return this.sum;
+ }
+
+ /**
+ * Returns the total number of packets recorded in this interval.
+ */
+ public int getTotalPackets() {
+ return this.sum;
+ }
+}
--
2.24.0

View File

@@ -1,4 +1,4 @@
From 4fcd9a1dc6957dde11f6c9cafb95e4a298bb9cf8 Mon Sep 17 00:00:00 2001
From f722135719ca11125f156d56ee7f3b665ac38f7d Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 8 Aug 2019 15:29:15 -0500
Subject: [PATCH] Implement AFK API
@@ -158,10 +158,10 @@ index e1fdee2794..4665671ef6 100644
public static Predicate<Entity> a(double d0, double d1, double d2, double d3) {
double d4 = d3 * d3;
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 67afa457e8..2659da1881 100644
index 895e34ed34..f92516069a 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -279,6 +279,12 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -223,6 +223,12 @@ public class PlayerConnection implements PacketListenerPlayIn {
}
if (this.player.F() > 0L && this.minecraftServer.getIdleTimeout() > 0 && SystemUtils.getMonotonicMillis() - this.player.F() > (long) (this.minecraftServer.getIdleTimeout() * 1000 * 60)) {
@@ -174,7 +174,7 @@ index 67afa457e8..2659da1881 100644
this.player.resetIdleTimer(); // CraftBukkit - SPIGOT-854
this.disconnect(new ChatMessage("multiplayer.disconnect.idling", new Object[0]));
}
@@ -495,6 +501,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -439,6 +445,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch();
@@ -183,7 +183,7 @@ index 67afa457e8..2659da1881 100644
// Skip the first time we do this
if (true) { // Spigot - don't skip any move events
Location oldTo = to.clone();
@@ -1164,6 +1172,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -1108,6 +1116,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch();

View File

@@ -1,4 +1,4 @@
From 314352c191fb1618442c3f4c6da3182d05bdc133 Mon Sep 17 00:00:00 2001
From f41de3d2785b4c83e7b5a51e975b8634d6ef04de Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Wed, 10 Jul 2019 20:43:05 -0500
Subject: [PATCH] Option to toggle milk curing bad omen
@@ -24,7 +24,7 @@ index 6b255e09ac..e1d3894ab7 100644
return itemstack.isEmpty() ? new ItemStack(Items.BUCKET) : itemstack;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 555039f531..598fb1659d 100644
index b454d71ac0..0062cae90c 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -126,6 +126,7 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From 0b24837b907ccd580b2c8a84d88df8fb135d7022 Mon Sep 17 00:00:00 2001
From 6b74772ae63b677d751eb9453f3ace21291c6323 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 14 Jul 2019 19:52:47 -0500
Subject: [PATCH] Mending mends most damages equipment first
@@ -86,7 +86,7 @@ index 4730c2beb7..4fe5038083 100644
return this.tag == null ? 0 : this.tag.getInt("Damage");
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 598fb1659d..d5526c15a0 100644
index 0062cae90c..89e86ec7c1 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -127,6 +127,7 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From 81d24301be807dfb97d3f87978501b4402ab1140 Mon Sep 17 00:00:00 2001
From ad24080ee09e8252f14fc5a68b3616ed3cf68839 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 13 Jul 2019 15:56:22 -0500
Subject: [PATCH] Tulips change fox type

View File

@@ -1,4 +1,4 @@
From 05d9cbbce4c9bb98f4f3442ef2206df1fbe82a2b Mon Sep 17 00:00:00 2001
From 9386f1f4856f85a8b2f2153a9419fb554734b876 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Mon, 22 Jul 2019 14:24:26 -0500
Subject: [PATCH] Implement a hard limit for pillager outpost spawns

View File

@@ -1,4 +1,4 @@
From 6bec53634c5c7957ab5fe5a76d5b3ba9165393a4 Mon Sep 17 00:00:00 2001
From a0f03d381a3b6ca22baa147c923d9e587d9013fa Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 16 Jan 2020 14:59:16 -0600
Subject: [PATCH] Make the GUI better

View File

@@ -1,4 +1,4 @@
From 70da77a02d7fda3940bc3fb26b77bb7a77487923 Mon Sep 17 00:00:00 2001
From ca4b53ff30ee60caee8b32da17b5cd9006107f09 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 21 Jul 2019 18:01:46 -0500
Subject: [PATCH] Players should not cram to death
@@ -8,7 +8,7 @@ Subject: [PATCH] Players should not cram to death
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 31d34e51e9..c0eb1a45d9 100644
index 919921c2d2..3d866f038d 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1136,7 +1136,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {

View File

@@ -1,4 +1,4 @@
From 52cdc501405004c1792d660f8d6c25c13dc3ed70 Mon Sep 17 00:00:00 2001
From 70c007b806075c1d970b6ff24135f6565b0db779 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 11 Jan 2020 23:12:52 -0600
Subject: [PATCH] Add EntityPortalReadyEvent

View File

@@ -1,4 +1,4 @@
From 2b3a34f078c59d18736fef8715f9a2bf8bab89ba Mon Sep 17 00:00:00 2001
From 4a16e6e50017470a014c6689c787918f28be94ae Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 25 Jul 2019 18:07:37 -0500
Subject: [PATCH] Implement elytra settings
@@ -115,7 +115,7 @@ index 62a0810062..53e7e82688 100644
return this.x * this.x + this.y * this.y + this.z * this.z;
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 4615abfbee..e5de7cbe05 100644
index 18a30fde39..3b932e329e 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -151,6 +151,19 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From c688c4492c5bbd6652df6b97f13f5b9120804d22 Mon Sep 17 00:00:00 2001
From b73f4489831dfc1cb1855897306c6994af205d73 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 30 Jan 2020 00:41:24 -0600
Subject: [PATCH] Add tick times API

View File

@@ -1,4 +1,4 @@
From bdd5cee287f706ab3263daa516e19d930a7ae459 Mon Sep 17 00:00:00 2001
From 9e7184e16fdc8d638d25b1018267dd312b96d3fb Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 1 Aug 2019 19:15:12 -0500
Subject: [PATCH] Add blacklist option for grindstone
@@ -68,7 +68,7 @@ index 7b7a0a7cb1..6b45bc17cf 100644
return this.getItem().f(this);
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index e5de7cbe05..c9303598fa 100644
index 3b932e329e..b0747e092c 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -8,6 +8,7 @@ import net.minecraft.server.MinecraftKey;

View File

@@ -1,4 +1,4 @@
From 29f5f31894e0f8620a7218a9a65c56fd49e2a75f Mon Sep 17 00:00:00 2001
From c8ee2e9bea58e8d432fc993c2e2742e96dc6ad14 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Tue, 23 Jul 2019 10:07:16 -0500
Subject: [PATCH] Implement lagging threshold
@@ -30,7 +30,7 @@ index 0889cef15d..2d7f1bae7a 100644
}
// Spigot end
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index e1a1ef860a..2537a5add3 100644
index 3670b4d48d..968d21dda4 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -142,6 +142,11 @@ public class PurpurConfig {
@@ -42,9 +42,9 @@ index e1a1ef860a..2537a5add3 100644
+ laggingThreshold = getDouble("settings.lagging-threshold", laggingThreshold);
+ }
+
public static int packetRateLimit = 250; // per second
public static double packetRateLimitInterval = 10.0; // seconds
public static String packetRateLimitKickMessage = "Sent too many packets";
public static boolean dontSendUselessEntityPackets = false;
public static boolean fixItemPositionDesync = false;
private static void dontSendUselessEntityPackets() {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 16da82abdb..393259e717 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java

View File

@@ -1,4 +1,4 @@
From 545911bcad12bba9e8e1f89f71f0f3088058fd5b Mon Sep 17 00:00:00 2001
From e86d8824d8533d1d4bfc7520ff926b6376907161 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Tue, 23 Jul 2019 08:28:21 -0500
Subject: [PATCH] Implement configurable villager brain ticks

View File

@@ -1,4 +1,4 @@
From e907cb731f652dac24d3b179bca16354714822af Mon Sep 17 00:00:00 2001
From 53321659ee1eaea04df841b1c068ffa20c69eee6 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 17 Aug 2019 15:27:09 -0500
Subject: [PATCH] Add option for zombies targetting turtle eggs

View File

@@ -1,4 +1,4 @@
From e083f2d13b813ff4a7e9e1834de3f005406e9120 Mon Sep 17 00:00:00 2001
From 55d8f0bc4b265ae99d182172fd50854f6fe48c9e Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 23 Aug 2019 20:57:29 -0500
Subject: [PATCH] Implement bamboo growth settings
@@ -76,7 +76,7 @@ index 02c548dd9c..016ceebb9d 100644
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 719c8ea602..acb5a9f109 100644
index aee946c27e..8680e173d8 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -72,6 +72,13 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From 1ebcee771cc5e20ee628d9dd25841efbb968ec46 Mon Sep 17 00:00:00 2001
From 62da9f9c74ae5c8a0f30a844cfbc37876f067180 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 21 Jul 2019 18:06:20 -0500
Subject: [PATCH] Climbing should not bypass cramming gamerule
@@ -161,7 +161,7 @@ index 4665671ef6..fbf2a50f08 100644
} else if (entity.world.isClientSide && (!(entity1 instanceof EntityHuman) || !((EntityHuman) entity1).ec())) {
return false;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index acb5a9f109..551327db8f 100644
index 8680e173d8..9914bb004a 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -145,6 +145,7 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From 5f6185e24488dc16df1aec88bf4d5c461cbd4b24 Mon Sep 17 00:00:00 2001
From 25c179c746deb04dbcf29ea9983de57e03e7a47c Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 23 Aug 2019 21:56:31 -0500
Subject: [PATCH] Option for slimes not pushable
@@ -47,10 +47,10 @@ index 01f32659d9..52ab86f0b1 100644
+ // Purpur end
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 2537a5add3..7be2e01814 100644
index 968d21dda4..e2459a32aa 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -166,6 +166,11 @@ public class PurpurConfig {
@@ -154,6 +154,11 @@ public class PurpurConfig {
fixItemPositionDesync = getBoolean("settings.fix-item-position-desync", fixItemPositionDesync);
}

View File

@@ -1,4 +1,4 @@
From 536a11356cac67d0e1ac04a7ee9f543cd4b949cb Mon Sep 17 00:00:00 2001
From 3543ac0ecae4947ebb9174d924de3db779362261 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 26 May 2019 15:19:14 -0500
Subject: [PATCH] Bring back server name

View File

@@ -1,4 +1,4 @@
From 61e0d04f452e65528c3a85b0329ae0ba13f39009 Mon Sep 17 00:00:00 2001
From c8401ff8c19ecfe4ee4873942cb00852622d15e3 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 25 Aug 2019 00:09:52 -0500
Subject: [PATCH] Dispenser curse of binding protection
@@ -49,7 +49,7 @@ index df8c42bfbd..a4b3d0c298 100644
return this.b;
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 551327db8f..e4131cb08d 100644
index 9914bb004a..87cd40aec2 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -106,6 +106,11 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From 53c6be6e52b5facec2f355c474d0717b39b8f26d Mon Sep 17 00:00:00 2001
From bb70f050b009760a9d261d2ed65a00c57bc044a8 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 5 May 2019 12:58:45 -0500
Subject: [PATCH] Implement LivingEntity safeFallDistance

View File

@@ -1,4 +1,4 @@
From 1001ae1fcc1a06e46622026b173f9641bbb419ef Mon Sep 17 00:00:00 2001
From a76d0c78538736721a23158d318a1bf93629addb Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 7 Sep 2019 22:47:59 -0500
Subject: [PATCH] Add option for boats to eject players on land
@@ -21,7 +21,7 @@ index 563fc8ced0..479ed7c7bc 100644
} else {
return EntityBoat.EnumStatus.IN_AIR;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index e4131cb08d..2a5f7f96f5 100644
index 87cd40aec2..7639b5acc7 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -143,6 +143,7 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From 28623c88638c0ed7034189a99b02d231cb111f06 Mon Sep 17 00:00:00 2001
From 805a6ec389305ba0321375f24bab8dfcc0a8f72d Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 31 May 2019 21:24:33 -0500
Subject: [PATCH] Advancement API Additions

View File

@@ -1,4 +1,4 @@
From 7d652d8cb6a3135efa95a46d4d206d2c0eac615c Mon Sep 17 00:00:00 2001
From 7771be9182ec2067b33f798b6184a0e935fca3e9 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 6 Oct 2019 12:46:35 -0500
Subject: [PATCH] Add option to set armorstand step height
@@ -29,7 +29,7 @@ index dfe8c57cef..0f6870a45c 100644
if (!this.canTick) {
if (this.noTickPoseDirty) {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 2a5f7f96f5..4ca1f55baf 100644
index 7639b5acc7..bb3153ec74 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -143,6 +143,7 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From 6e3ebc4c760e75a549aae15bc9c4881d44b4ecb5 Mon Sep 17 00:00:00 2001
From 655922dcd127f37efa484b26fdcacb2eb7bbdd69 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 5 Jul 2019 16:36:55 -0500
Subject: [PATCH] Implement ItemFactory#getMonsterEgg

View File

@@ -1,4 +1,4 @@
From 0e07013d7bb8fd2ed12ccbe3bd41f3f391fe7288 Mon Sep 17 00:00:00 2001
From 1f1e74c32ef2f12ca1f0b8ea10516bf101b939f5 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 11 Oct 2019 00:17:39 -0500
Subject: [PATCH] Alternative Keepalive Handling
@@ -22,7 +22,7 @@ index 8e93f1540b..470f92c4fb 100644
return this.a;
}
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 2659da1881..65b9b93a69 100644
index f92516069a..b60b71a15d 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -74,6 +74,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -33,7 +33,7 @@ index 2659da1881..65b9b93a69 100644
// CraftBukkit start - multithreaded fields
private volatile int chatThrottle;
private static final AtomicIntegerFieldUpdater chatSpamField = AtomicIntegerFieldUpdater.newUpdater(PlayerConnection.class, "chatThrottle");
@@ -247,6 +248,21 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -191,6 +192,21 @@ public class PlayerConnection implements PacketListenerPlayIn {
long currentTime = SystemUtils.getMonotonicMillis();
long elapsedTime = currentTime - this.getLastPing();
@@ -55,7 +55,7 @@ index 2659da1881..65b9b93a69 100644
if (this.isPendingPing()) {
if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected
PlayerConnection.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getName()); // more info
@@ -2673,6 +2689,17 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -2617,6 +2633,17 @@ public class PlayerConnection implements PacketListenerPlayIn {
@Override
public void a(PacketPlayInKeepAlive packetplayinkeepalive) {
@@ -74,11 +74,11 @@ index 2659da1881..65b9b93a69 100644
if (this.awaitingKeepAlive && packetplayinkeepalive.b() == this.h) {
int i = (int) (SystemUtils.getMonotonicMillis() - this.lastKeepAlive);
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 7be2e01814..3cd53cc3aa 100644
index e2459a32aa..1dfe2407da 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -159,6 +159,11 @@ public class PurpurConfig {
packetRateLimitKickMessage = getString("settings.packet-limiter.kick-message", packetRateLimitKickMessage);
@@ -147,6 +147,11 @@ public class PurpurConfig {
laggingThreshold = getDouble("settings.lagging-threshold", laggingThreshold);
}
+ public static boolean useAlternateKeepAlive = false;

View File

@@ -1,4 +1,4 @@
From c580927342086e1b3556beadfba82cf94847d2b7 Mon Sep 17 00:00:00 2001
From a94a24d5fe8c16401e9f1b17e06520c66c9152d8 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 5 Jul 2019 18:21:00 -0500
Subject: [PATCH] Implement PlayerSetSpawnerTypeWithEggEvent

View File

@@ -1,4 +1,4 @@
From 7080c7c8b6abad38776afe90ca60d46d8138ab71 Mon Sep 17 00:00:00 2001
From 2173fef605266ad306d4f623ec6a283ec859361c Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 19 Oct 2019 03:20:59 -0500
Subject: [PATCH] Add MonsterEggSpawnEvent

View File

@@ -1,4 +1,4 @@
From d2cdbe8f531dd26330edac8368e897c0a00a5b14 Mon Sep 17 00:00:00 2001
From 1f347d5cdc7517c74a5d7d09aed00457c9b1c075 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 1 Feb 2020 22:22:16 -0600
Subject: [PATCH] Add moon phase API

View File

@@ -1,4 +1,4 @@
From 242f84c6581542d3c1e3154fa399e330478405bf Mon Sep 17 00:00:00 2001
From 0464d28266e5b1cbe4ca4b1cf832da57600e77d6 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 8 Feb 2020 23:30:17 -0600
Subject: [PATCH] Add getPlacementBlockData to World

View File

@@ -1,4 +1,4 @@
From 3dd56b40660f298b31d8dbeb244fb3ddcdc02448 Mon Sep 17 00:00:00 2001
From 555740ef568b03ba528e1addefe7ec468001ec8d Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 23 May 2019 21:50:37 -0500
Subject: [PATCH] Barrels have 6 rows
@@ -53,7 +53,7 @@ index 1e27abbea0..d1a3aae91f 100644
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 3cd53cc3aa..f9e989d7c6 100644
index 1dfe2407da..871f2a031a 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -6,6 +6,7 @@ import org.bukkit.Bukkit;
@@ -64,7 +64,7 @@ index 3cd53cc3aa..f9e989d7c6 100644
import java.io.File;
import java.io.IOException;
@@ -171,8 +172,16 @@ public class PurpurConfig {
@@ -159,8 +160,16 @@ public class PurpurConfig {
fixItemPositionDesync = getBoolean("settings.fix-item-position-desync", fixItemPositionDesync);
}

View File

@@ -1,4 +1,4 @@
From f391234c049701f54283ba078aff28f47c67f404 Mon Sep 17 00:00:00 2001
From 0dc1d985a8a31c90996061e07b9c7e028feaf892 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 23 Jun 2019 17:01:26 -0500
Subject: [PATCH] Ender chests have 6 rows
@@ -37,10 +37,10 @@ index fd31b9a6dc..903c02e9ef 100644
// CraftBukkit end
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index f9e989d7c6..b40dcbe94f 100644
index 871f2a031a..e78f73f8a2 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -174,14 +174,20 @@ public class PurpurConfig {
@@ -162,14 +162,20 @@ public class PurpurConfig {
public static boolean barrelSixRows = false;
public static boolean slimeBlocksNotPushable = false;

View File

@@ -1,4 +1,4 @@
From 3f47a5694c9b9f3b85c48269937b751719aac6a4 Mon Sep 17 00:00:00 2001
From 52db11c962e61cd8f7289586391eb28692320742 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 28 Jul 2019 01:27:37 -0500
Subject: [PATCH] Add 5 second tps average in /tps

View File

@@ -1,4 +1,4 @@
From 807e796402b30f9cdfda3fbe697760dcb23bd358 Mon Sep 17 00:00:00 2001
From bbe942750043a0979b98e0c3938de221afd4c51d Mon Sep 17 00:00:00 2001
From: Tom <cryptite@gmail.com>
Date: Fri, 12 Jul 2019 07:59:35 -0500
Subject: [PATCH] Don't recalculate permissions for players on world change
@@ -51,10 +51,10 @@ index 253ee52eb5..cf8f24b31c 100644
public boolean isWhitelisted(GameProfile gameprofile) {
return isWhitelisted(gameprofile, null);
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index b40dcbe94f..17694bb5fd 100644
index e78f73f8a2..384afe2e64 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -191,6 +191,11 @@ public class PurpurConfig {
@@ -179,6 +179,11 @@ public class PurpurConfig {
slimeBlocksNotPushable = getBoolean("settings.blocks.slime.not-movable-by-piston", slimeBlocksNotPushable);
}

View File

@@ -1,4 +1,4 @@
From 8d19a33602103c19765be3862e6790ce4d1dcf91 Mon Sep 17 00:00:00 2001
From af6b0629c76f81fd4604fd578a9a9e0c63bb7cbe Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 19 Oct 2019 02:25:16 -0500
Subject: [PATCH] Add playPickupItemAnimation to LivingEntity

View File

@@ -1,4 +1,4 @@
From 66042ed6a76b9a4d4082b70535fa8b1386fcafb4 Mon Sep 17 00:00:00 2001
From 82bc1a06ef5c8fc2328803685e0a03a85aea5a16 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 19 Oct 2019 00:29:02 -0500
Subject: [PATCH] Add more evoker API

View File

@@ -1,4 +1,4 @@
From 6da12df0069d75ea43371cf74acc3d03b5d308f6 Mon Sep 17 00:00:00 2001
From cecba0fdfbf36d9c45d0e90cbe21831c5c24f991 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Mon, 7 Oct 2019 00:15:37 -0500
Subject: [PATCH] Add API for Villager#resetOffers()

View File

@@ -1,4 +1,4 @@
From b5b4e1ed6654e2aabbda223e7e0f9d820648fbc4 Mon Sep 17 00:00:00 2001
From ab42025a0f531be96f571f8e9038ce7c7399b006 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 18 Oct 2019 22:50:12 -0500
Subject: [PATCH] Add more llama API

View File

@@ -1,4 +1,4 @@
From 3f1c15c5e038c5de056b39686eabb14da3af23b5 Mon Sep 17 00:00:00 2001
From 083e15ebddc1a08e4b61fd651468e82f0f002805 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 19 Oct 2019 03:36:52 -0500
Subject: [PATCH] Fix furnace cook speed multiplier using values between 0 and

View File

@@ -1,4 +1,4 @@
From e73c2ce940a90250ce9f0d96df168b2fdb2bf67f Mon Sep 17 00:00:00 2001
From c4413cd2de3d33740bb913667e70be1fc6981319 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 23 Nov 2019 17:55:42 -0600
Subject: [PATCH] Implement infinite lava
@@ -70,7 +70,7 @@ index 9eba9a12c0..39252e6873 100644
protected boolean c;
protected boolean d;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 4ca1f55baf..db784b373e 100644
index bb3153ec74..3b68a7f76d 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -127,6 +127,11 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From 7f87d8ae26399a946f6e30775136439581481988 Mon Sep 17 00:00:00 2001
From 8633f5becb52710a6ee223adcdc272082e7056e1 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 18 Oct 2019 22:19:40 -0500
Subject: [PATCH] Expose getItemStack for Trident

View File

@@ -1,4 +1,4 @@
From 0299b10ed27e1b676ac899cd1dfa74abe0389efe Mon Sep 17 00:00:00 2001
From ea53ffd282e5600d2a5d515148e4e8f6e7613657 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Fri, 29 Nov 2019 23:47:42 -0600
Subject: [PATCH] Despawn egg hatches chicken

View File

@@ -1,4 +1,4 @@
From ae3a69662660fcc0172a5fbdbe761c8411dbb2de Mon Sep 17 00:00:00 2001
From eaa6b41f145c55f5b8fe536a6aaf1c87dfd58685 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 19 Oct 2019 01:42:50 -0500
Subject: [PATCH] Fix SpawnChangeEvent not firing for all use-cases

View File

@@ -1,4 +1,4 @@
From 5d34c980dc6204226cedee29c99158a72f2efd59 Mon Sep 17 00:00:00 2001
From d79a8973ef332fb7f6a030389719d029205d06e1 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 30 Nov 2019 03:30:17 -0600
Subject: [PATCH] Add sleep options
@@ -53,7 +53,7 @@ index 9d26bd1e4c..c99a338082 100644
return Either.left(EntityHuman.EnumBedResult.NOT_POSSIBLE_NOW);
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 069aa582ae..375ac07d68 100644
index 9e705db0bd..7b59bd638c 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -159,6 +159,8 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From 62c9f7ae5337e57cb2ae6d8568579136cf5d1f52 Mon Sep 17 00:00:00 2001
From 961f4f2944902957005ac29a38f0155c5c0f5add Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 30 Nov 2019 01:31:09 -0600
Subject: [PATCH] Option for hay block fall damage
@@ -21,7 +21,7 @@ index ca81c49f0a..1f8f60542f 100644
}
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 375ac07d68..7bd7472467 100644
index 7b59bd638c..505a52c42f 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -127,6 +127,11 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From f9772444889fa19c8064e3b1d6fc3c4fe6a5c514 Mon Sep 17 00:00:00 2001
From e452936ab8d3e0c59b6152916b7fe13412777c1a Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 19 Oct 2019 02:35:35 -0500
Subject: [PATCH] Add getPlayer to SkeletonHorseTrapEvent

View File

@@ -1,4 +1,4 @@
From 4e0f5f1ffea1500a69c8f78908149446055da3bc Mon Sep 17 00:00:00 2001
From cb27e73510ed20e2029db4c8d41a2d3ea49dd89a Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 19 Oct 2019 02:43:17 -0500
Subject: [PATCH] Add LootableInventoryFirstFillEvent

View File

@@ -1,4 +1,4 @@
From 495048109f6c2397aae097f2f76719ba4176b81e Mon Sep 17 00:00:00 2001
From c387c04b894d70d392080ddcfcb52131ea0ad52a Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Fri, 29 Nov 2019 22:10:12 -0600
Subject: [PATCH] Villagers follow emerald blocks

View File

@@ -1,4 +1,4 @@
From 45f4aba78a244500fa677490f6706e0cbf1dbd03 Mon Sep 17 00:00:00 2001
From 8b551acbf9d37c0f03fa2d2869d7238f13aa9363 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 26 Dec 2019 22:08:37 -0600
Subject: [PATCH] Add player death exp control options
@@ -35,7 +35,7 @@ index c99a338082..67a114d59e 100644
return 0;
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index e8f203d88f..4372b9a036 100644
index 425e12116a..8eff6a6dd6 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -164,6 +164,8 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From e5ddfc1c4c4a11c8266128d87e99e626140e1ed3 Mon Sep 17 00:00:00 2001
From 54a88bf800d7d66309f5345dc7ee298f7d89521b Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 28 Dec 2019 04:21:54 -0600
Subject: [PATCH] Add permission for F3+N debug

View File

@@ -1,4 +1,4 @@
From 35138263823bc5e492279092f7f1e2e20732de17 Mon Sep 17 00:00:00 2001
From fe27c94a228ba7c96dabb202da4815769a7cda5d Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 3 Oct 2019 18:08:03 -0500
Subject: [PATCH] Allow leashing villagers

View File

@@ -1,4 +1,4 @@
From 31d804d302cadc92a5066468739f7c950ae50c17 Mon Sep 17 00:00:00 2001
From bb5b30eaae071d0318045841228080adb3d8322a Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Mon, 22 Jul 2019 17:32:17 -0500
Subject: [PATCH] Implement configurable search radius for villagers to spawn

View File

@@ -1,4 +1,4 @@
From 2a4c1cd4b01157ea9b2df3ac561f446de4298321 Mon Sep 17 00:00:00 2001
From 9f6b65a56bd6fec50280bef3866029600e843107 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 2 Jan 2020 11:31:36 -0600
Subject: [PATCH] Make lava flow speed configurable
@@ -35,7 +35,7 @@ index 39252e6873..75f8441ab6 100644
return this.d;
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index d7a3c6c227..5ff002a77f 100644
index c57982274c..29c2d64fb5 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -133,8 +133,12 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From 1c3d8c84e763cd48c384c32c21386dbf7e02653d Mon Sep 17 00:00:00 2001
From 631983224d9e2d228496b3f8620b6456c920b0c6 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Tue, 14 Jan 2020 19:43:40 -0600
Subject: [PATCH] Add wither skeleton takes wither damage option

View File

@@ -1,4 +1,4 @@
From 38b0e36ddd394a8854bb38913d78544f5cc8fb7e Mon Sep 17 00:00:00 2001
From 89cdf2087d88de614709ec089cdab90342c358a2 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Wed, 22 Jan 2020 20:13:40 -0600
Subject: [PATCH] UPnP Port Forwarding Service
@@ -107,10 +107,10 @@ index ec6ddbb9cf..5d28185248 100644
public String getServerIp() {
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 17694bb5fd..a18333ad6c 100644
index 384afe2e64..3eaecc6393 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -165,6 +165,11 @@ public class PurpurConfig {
@@ -153,6 +153,11 @@ public class PurpurConfig {
useAlternateKeepAlive = getBoolean("settings.use-alternate-keepalive", useAlternateKeepAlive);
}

View File

@@ -1,4 +1,4 @@
From e20eb8ddf0b9a4ad09e140047d58f843e19851e9 Mon Sep 17 00:00:00 2001
From 614197becacc580fe8740ebc56597820c945f582 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Tue, 11 Feb 2020 21:56:48 -0600
Subject: [PATCH] Implement EntityMoveEvent

View File

@@ -1,4 +1,4 @@
From c18bc5969985402025aaf08321d1d8d1a3bcc9d8 Mon Sep 17 00:00:00 2001
From 74ed332eb04b0468b362a46d0bdabd156cbd7a5f Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Tue, 18 Feb 2020 20:07:08 -0600
Subject: [PATCH] Add option to disable saving projectiles to disk
@@ -141,7 +141,7 @@ index f5c8074dcf..674f2ccc7f 100644
float f5 = -MathHelper.sin(f1 * 0.017453292F) * MathHelper.cos(f * 0.017453292F);
float f6 = -MathHelper.sin((f + f2) * 0.017453292F);
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index e88157cc69..1db7e5433f 100644
index dff7cf1693..4dbe5c0773 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -173,6 +173,7 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From 1efe3db5e9865ddfb881e431d612fa75ca8776b1 Mon Sep 17 00:00:00 2001
From 059404d1d68b6b7982b0a05f6ec5085afc73d99f Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Fri, 21 Feb 2020 17:04:51 -0600
Subject: [PATCH] Always increment arrow despawn counter (fixes MC-125757)

View File

@@ -1,4 +1,4 @@
From d0cb88bfaa8f3cf46e7d3e435784cf8422abcc35 Mon Sep 17 00:00:00 2001
From c83065f4de01dde8add406147f185115847ca18d Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 22 Feb 2020 15:04:29 -0600
Subject: [PATCH] Implement bed explosion options
@@ -22,7 +22,7 @@ index 06a35629ab..df41a7dfcd 100644
// CraftBukkit end
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 1db7e5433f..fabd4f619f 100644
index 4dbe5c0773..865c73f388 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -3,6 +3,7 @@ package net.pl3x.purpur;

View File

@@ -1,4 +1,4 @@
From 99bcbbc8530a87863270add6659cf0621e00943c Mon Sep 17 00:00:00 2001
From fa20f82bfe91ef793afa08f61b5794c554a7ff0d Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 22 Feb 2020 15:54:08 -0600
Subject: [PATCH] Add item entity options
@@ -56,7 +56,7 @@ index bbb9ca1efc..262a7935e7 100644
if (org.bukkit.craftbukkit.event.CraftEventFactory.handleNonLivingEntityDamageEvent(this, damagesource, f)) {
return false;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index fabd4f619f..3c5f83f651 100644
index 865c73f388..24d9c699ac 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -5,6 +5,8 @@ import net.minecraft.server.Block;

View File

@@ -1,4 +1,4 @@
From bea6d280e28b01d64a7591b2a52116c3e1c99ded Mon Sep 17 00:00:00 2001
From 3b64a4a173f59e5650aa4561cb6e7237a8fd35ea Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 27 Feb 2020 13:39:06 -0600
Subject: [PATCH] Make natural spawns per biome configurable

View File

@@ -1,4 +1,4 @@
From b2c00dd988091a49b51b99e27585fb69177d57f9 Mon Sep 17 00:00:00 2001
From 57cebeeab276c2a5168160265160aa56f68ae6c8 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 27 Feb 2020 21:42:19 -0600
Subject: [PATCH] Configurable void damage height
@@ -22,7 +22,7 @@ index 51ad50d5a1..834abc5c69 100644
&& this.locY >= world.paperConfig.netherVoidTopDamageHeight)) {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 3c5f83f651..938add0cf7 100644
index 24d9c699ac..08980a797b 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -198,6 +198,7 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From 6ebe70bfb680d9c049ac629f1cb99736e3081192 Mon Sep 17 00:00:00 2001
From 16a18a27494420375d2e5a0127bade907e4404ff Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Fri, 6 Mar 2020 13:37:26 -0600
Subject: [PATCH] Fix the dead lagging the server

View File

@@ -1,4 +1,4 @@
From 9e33cfd44dbe3af47889ac211221671deaced52c Mon Sep 17 00:00:00 2001
From b90df99f2ab60e848518dfabd30610bcadf0dffd Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sun, 8 Mar 2020 20:54:44 -0500
Subject: [PATCH] Add flying mobs to entity activation range settings

View File

@@ -1,4 +1,4 @@
From 4b95ede84347d283f15d371f641d8ccea4c0fbe5 Mon Sep 17 00:00:00 2001
From a4f46446e58c09ea0e069089f9deae28d7f0701e Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Fri, 13 Mar 2020 22:23:44 -0500
Subject: [PATCH] Add /mspt command

View File

@@ -1,4 +1,4 @@
From ed8b8bda098f559305e3510916cba187f0b5a1c5 Mon Sep 17 00:00:00 2001
From 23e252797baf42ef1d3b165dc6896e4a6595d3bc Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Fri, 13 Mar 2020 22:29:10 -0500
Subject: [PATCH] Add /ping command

View File

@@ -1,4 +1,4 @@
From 11e6e4e419cee848bb9075ed58c42fb58cb01417 Mon Sep 17 00:00:00 2001
From 65fca6e865ea63f611df748ef2f567bd414aa7f7 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 19 Mar 2020 19:39:34 -0500
Subject: [PATCH] Add option to allow loyalty on tridents to work in the void
@@ -22,7 +22,7 @@ index ed8e26aa45..ca6c0ec299 100644
if (b0 > 0 && !this.z()) {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 938add0cf7..629fbca11c 100644
index 08980a797b..974e2b4b83 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -198,6 +198,7 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From db58bb38aaaae12c17ffdd206d0016448209d7d5 Mon Sep 17 00:00:00 2001
From a005b1f96651d4c63b4a4f5cd13d75918416edb1 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 21 Mar 2020 11:47:39 -0500
Subject: [PATCH] Configurable server mod name
@@ -22,10 +22,10 @@ index 5d28185248..c5319ff0f5 100644
public CrashReport b(CrashReport crashreport) {
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index a18333ad6c..90a44a539c 100644
index 3eaecc6393..312a503a98 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -201,6 +201,11 @@ public class PurpurConfig {
@@ -189,6 +189,11 @@ public class PurpurConfig {
recalculatePermsOnWorldChange = getBoolean("settings.recalculate-perms-on-world-change", recalculatePermsOnWorldChange);
}

View File

@@ -1,4 +1,4 @@
From 6cface30e735f89e3a17a5dc1c0e117b6d90e536 Mon Sep 17 00:00:00 2001
From 12dfa8a7283540bb50ee8a9960c3723edd35814e Mon Sep 17 00:00:00 2001
From: chase <chasewhip20@gmail.com>
Date: Sun, 15 Mar 2020 18:32:22 -0600
Subject: [PATCH] Per World Spawn limits

View File

@@ -1,4 +1,4 @@
From 9ee7ad50f2e155fd7fde5ae997ca1d0697882134 Mon Sep 17 00:00:00 2001
From 779a0e9938ee711ed03b19dabf79dc0b636544a9 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 21 Mar 2020 18:33:05 -0500
Subject: [PATCH] End gateway should check if entity can use portal

View File

@@ -1,4 +1,4 @@
From 0ebd2baadc2b163936f66b6d53503b1dd85c78ae Mon Sep 17 00:00:00 2001
From ecc3e2323ee4c0eca11c76b6f4c0e4d4116299b9 Mon Sep 17 00:00:00 2001
From: Eearslya Sleiarion <eearslya@gmail.com>
Date: Mon, 24 Jun 2019 21:27:32 -0700
Subject: [PATCH] Add BellRingEvent

View File

@@ -1,4 +1,4 @@
From 0dc09f620aef249ec06f6c0f827a8e469d612246 Mon Sep 17 00:00:00 2001
From b989cf2b34fd0be7f9a7db715941259329ba44fd Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 26 Mar 2020 12:48:02 -0500
Subject: [PATCH] Disable mojang profiler

View File

@@ -1,4 +1,4 @@
From bf5dc04768695c73902f25408e4975dd5d2e1bb8 Mon Sep 17 00:00:00 2001
From eb85eab76da3e25e7951c15c6a057df91b079ea1 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 26 Mar 2020 19:06:22 -0500
Subject: [PATCH] Configurable TPS Catchup
@@ -27,10 +27,10 @@ index 2ede67d883..e11414b609 100644
this.methodProfiler.exit();
this.methodProfiler.b();
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 90a44a539c..316b63d9e6 100644
index 312a503a98..3bb2562eee 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -170,6 +170,11 @@ public class PurpurConfig {
@@ -158,6 +158,11 @@ public class PurpurConfig {
useUPnP = getBoolean("settings.upnp-port-forwarding", useUPnP);
}