Skip to content
This repository was archived by the owner on Sep 23, 2023. It is now read-only.

Update Upstream (Purpur) #66

Open
wants to merge 1 commit into
base: ver/1.19.2
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
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
10 changes: 5 additions & 5 deletions patches/server/0035-Skip-events-if-there-s-no-listeners.patch
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@ Original code by PurpurMC, licensed under MIT
You can find the original code on https://github.com/PurpurMC/Purpur

diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java
index 7c96f7fc5997761426a0c62cad0cab5cc668f282..98664c95331cee4139711c402dfaf406ee672c22 100644
index 7c96f7fc5997761426a0c62cad0cab5cc668f282..c3721948ebccdf995f1b3fb10c4bbea1efa08e4c 100644
--- a/src/main/java/net/minecraft/commands/Commands.java
+++ b/src/main/java/net/minecraft/commands/Commands.java
@@ -415,6 +415,7 @@ public class Commands {
}

@@ -417,6 +417,7 @@ public class Commands {
private void runSync(ServerPlayer player, Collection<String> bukkit, RootCommandNode<SharedSuggestionProvider> rootcommandnode) {
+ if (PlayerCommandSendEvent.getHandlerList().getRegisteredListeners().length > 0) { // Purpur - skip all this crap if there's nothing listening
// Paper end - Async command map building
new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent<CommandSourceStack>(player.getBukkitEntity(), (RootCommandNode) rootcommandnode, false).callEvent(); // Paper
+ if (PlayerCommandSendEvent.getHandlerList().getRegisteredListeners().length > 0) { // Purpur - skip all this crap if there's nothing listening
PlayerCommandSendEvent event = new PlayerCommandSendEvent(player.getBukkitEntity(), new LinkedHashSet<>(bukkit));
event.getPlayer().getServer().getPluginManager().callEvent(event);

@@ -427,6 +428,7 @@ public class Commands {
}
}
Expand Down
6 changes: 3 additions & 3 deletions patches/server/0036-Alternative-Keepalive-Handling.patch
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,14 @@ index 9379fd91df73ac482064a89462764dac9835c71f..432ba1293419dea0903e31043f68f5ad
}
\ No newline at end of file
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 79c56946cecba2a6308a0a67b7da036d348a97a8..dfacc5d6b7eb30292f59b25752d2c7ee1ff9534f 100644
index 79c56946cecba2a6308a0a67b7da036d348a97a8..9ad168cba36ee03a8c5ba0aef63fa2592c6ca725 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -260,6 +260,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
private long keepAliveTime = Util.getMillis();
private boolean keepAlivePending;
private long keepAliveChallenge;
+ private java.util.List<Long> keepAlives = new java.util.ArrayList<>(); // Purpur
+ private it.unimi.dsi.fastutil.longs.LongList keepAlives = new it.unimi.dsi.fastutil.longs.LongArrayList(); // Purpur
// CraftBukkit start - multithreaded fields
private final AtomicInteger chatSpamTickCount = new AtomicInteger();
private final java.util.concurrent.atomic.AtomicInteger tabSpamLimiter = new java.util.concurrent.atomic.AtomicInteger(); // Paper - configurable tab spam limits
Expand All @@ -42,7 +42,7 @@ index 79c56946cecba2a6308a0a67b7da036d348a97a8..dfacc5d6b7eb30292f59b25752d2c7ee
+ // Purpur start
+ if (dev.etil.mirai.MiraiConfig.useAlternateKeepAlive) {
+ if (elapsedTime >= 1000L) { // 1 second
+ if (!processedDisconnect && keepAlives.size() > KEEPALIVE_LIMIT) {
+ if (!processedDisconnect && keepAlives.size() * 1000L >= KEEPALIVE_LIMIT) {
+ LOGGER.warn("{} was kicked due to keepalive timeout!", player.getName());
+ disconnect(Component.translatable("disconnect.timeout"));
+ } else {
Expand Down