70ce6ce831
This makes it easier for downstream projects (forks) to replace the version fetching system with their own. It is as simple as implementing an interface and overriding the default implementation of org.bukkit.UnsafeValues#getVersionFetcher() It also makes it easier for us to organize things like the version history feature. Lastly I have updated the paper implementation to check against the site API rather than against jenkins.
37 Zeilen
1.9 KiB
Diff
37 Zeilen
1.9 KiB
Diff
From 0e16e3ccb3e277055b24f23ecca8699c275896d5 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Sun, 12 Aug 2018 02:33:39 -0400
|
|
Subject: [PATCH] Use a Queue for Queueing Commands
|
|
|
|
Lists are bad as Queues mmmkay.
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
|
|
index c2c676e3b..3d452fe0e 100644
|
|
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
|
|
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
|
|
@@ -41,7 +41,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
|
|
|
|
private static final Logger LOGGER = LogManager.getLogger();
|
|
private static final Pattern j = Pattern.compile("^[a-fA-F0-9]{40}$");
|
|
- private final List<ServerCommand> serverCommandQueue = Collections.synchronizedList(Lists.newArrayList());
|
|
+ private final java.util.Queue<ServerCommand> serverCommandQueue = new java.util.concurrent.ConcurrentLinkedQueue<ServerCommand>(); // Paper - use a proper queue
|
|
private RemoteStatusListener l;
|
|
public final RemoteControlCommandListener remoteControlCommandListener;
|
|
private RemoteControlListener remoteControlListener;
|
|
@@ -442,8 +442,10 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
|
|
|
|
public void handleCommandQueue() {
|
|
MinecraftTimings.serverCommandTimer.startTiming(); // Spigot
|
|
- while (!this.serverCommandQueue.isEmpty()) {
|
|
- ServerCommand servercommand = (ServerCommand) this.serverCommandQueue.remove(0);
|
|
+ // Paper start - use proper queue
|
|
+ ServerCommand servercommand;
|
|
+ while ((servercommand = this.serverCommandQueue.poll()) != null) {
|
|
+ // Paper end
|
|
|
|
// CraftBukkit start - ServerCommand for preprocessing
|
|
ServerCommandEvent event = new ServerCommandEvent(console, servercommand.command);
|
|
--
|
|
2.21.0
|
|
|