Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-15 19:10:09 +01:00
094bb03a37
- Lots of itemstack cloning removed. Only clone if the item is actually moved - Return true when a plugin cancels inventory move item event instead of false, as false causes pulls to cycle through all items. However, pushes do not exhibit the same behavior, so this is not something plugins could of been relying on. - Add option (Default on) to cooldown hoppers when they fail to move an item due to full inventory - Skip subsequent InventoryMoveItemEvents if a plugin does not use the item after first event fire for an iteration
68 Zeilen
2.8 KiB
Diff
68 Zeilen
2.8 KiB
Diff
From ce75a88cf3b22175b325c446a64511201a3e655e Mon Sep 17 00:00:00 2001
|
|
From: vemacs <d@nkmem.es>
|
|
Date: Wed, 23 Nov 2016 08:31:45 -0500
|
|
Subject: [PATCH] Cache user authenticator threads
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/LoginListener.java b/src/main/java/net/minecraft/server/LoginListener.java
|
|
index 57f728567..2158fcd32 100644
|
|
--- a/src/main/java/net/minecraft/server/LoginListener.java
|
|
+++ b/src/main/java/net/minecraft/server/LoginListener.java
|
|
@@ -96,6 +96,12 @@ public class LoginListener implements PacketLoginInListener, ITickable {
|
|
|
|
}
|
|
|
|
+ // Paper start - Cache authenticator threads
|
|
+ private static final AtomicInteger threadId = new AtomicInteger(0);
|
|
+ private static final java.util.concurrent.ExecutorService authenticatorPool = java.util.concurrent.Executors.newCachedThreadPool(
|
|
+ r -> new Thread(r, "User Authenticator #" + threadId.incrementAndGet())
|
|
+ );
|
|
+ // Paper end
|
|
// Spigot start
|
|
public void initUUID()
|
|
{
|
|
@@ -178,8 +184,8 @@ public class LoginListener implements PacketLoginInListener, ITickable {
|
|
this.networkManager.sendPacket(new PacketLoginOutEncryptionBegin("", this.server.O().getPublic(), this.e));
|
|
} else {
|
|
// Spigot start
|
|
- new Thread("User Authenticator #" + LoginListener.b.incrementAndGet()) {
|
|
-
|
|
+ // Paper start - Cache authenticator threads
|
|
+ authenticatorPool.execute(new Runnable() {
|
|
@Override
|
|
public void run() {
|
|
try {
|
|
@@ -191,7 +197,8 @@ public class LoginListener implements PacketLoginInListener, ITickable {
|
|
server.server.getLogger().log(java.util.logging.Level.WARNING, "Exception verifying " + i.getName(), ex);
|
|
}
|
|
}
|
|
- }.start();
|
|
+ });
|
|
+ // Paper end
|
|
// Spigot end
|
|
}
|
|
|
|
@@ -207,7 +214,8 @@ public class LoginListener implements PacketLoginInListener, ITickable {
|
|
this.loginKey = packetlogininencryptionbegin.a(privatekey);
|
|
this.g = LoginListener.EnumProtocolState.AUTHENTICATING;
|
|
this.networkManager.a(this.loginKey);
|
|
- (new Thread("User Authenticator #" + LoginListener.b.incrementAndGet()) {
|
|
+ // Paper start - Cache authenticator threads
|
|
+ authenticatorPool.execute(new Runnable() {
|
|
public void run() {
|
|
GameProfile gameprofile = LoginListener.this.i;
|
|
|
|
@@ -254,7 +262,8 @@ public class LoginListener implements PacketLoginInListener, ITickable {
|
|
|
|
return LoginListener.this.server.ac() && socketaddress instanceof InetSocketAddress ? ((InetSocketAddress) socketaddress).getAddress() : null;
|
|
}
|
|
- }).start();
|
|
+ });
|
|
+ // Paper end
|
|
}
|
|
}
|
|
|
|
--
|
|
2.16.1
|
|
|