Updated Upstream (Bukkit/CraftBukkit/Spigot) (#9648)

Upstream has released updates that appear to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
6b34da8f SPIGOT-7467: Add getAddress to RemoteConsoleCommandSender

CraftBukkit Changes:
db4ba2897 SPIGOT-7467: Add getAddress to RemoteConsoleCommandSender
4f7ff4dec PR-1246: Add missing AbstractTestingBase to tests which need them
f70a7b68d SPIGOT-7465, MC-264979: Fresh installations print NoSuchFileException for server.properties
8ef7afef6 PR-1240: Call BlockGrowEvent for vines that are growing on additional sides of an existing vine block

Spigot Changes:
d2eba2c8 Rebuild patches
This commit is contained in:
Noah van der Aa 2023-08-28 13:05:48 +02:00
parent a9122ec448
commit a0632a8f06
9 changed files with 26 additions and 62 deletions

View file

@ -1,24 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Mariell Hoversholm <proximyst@proximyst.com>
Date: Mon, 2 Aug 2021 08:52:21 +0200
Subject: [PATCH] Fix test not bootstrapping
Signed-off-by: Mariell Hoversholm <proximyst@proximyst.com>
diff --git a/src/test/java/org/bukkit/enchantments/EnchantmentTargetTest.java b/src/test/java/org/bukkit/enchantments/EnchantmentTargetTest.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/test/java/org/bukkit/enchantments/EnchantmentTargetTest.java
+++ b/src/test/java/org/bukkit/enchantments/EnchantmentTargetTest.java
@@ -0,0 +0,0 @@ import net.minecraft.world.item.Item;
import net.minecraft.world.item.enchantment.EnchantmentCategory;
import org.bukkit.Material;
import org.bukkit.craftbukkit.util.CraftMagicNumbers;
+import org.bukkit.support.AbstractTestingBase;
import org.junit.Assert;
import org.junit.Test;
-public class EnchantmentTargetTest {
+public class EnchantmentTargetTest extends AbstractTestingBase { // Paper
@Test
public void test() {

View file

@ -16,8 +16,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -0,0 +0,0 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -0,0 +0,0 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public OptionSet options;
public org.bukkit.command.ConsoleCommandSender console; public org.bukkit.command.ConsoleCommandSender console;
public org.bukkit.command.RemoteConsoleCommandSender remoteConsole;
public ConsoleReader reader; public ConsoleReader reader;
- public static int currentTick = (int) (System.currentTimeMillis() / 50); - public static int currentTick = (int) (System.currentTimeMillis() / 50);
+ public static int currentTick = 0; // Paper - Further improve tick loop + public static int currentTick = 0; // Paper - Further improve tick loop

View file

@ -4,23 +4,6 @@ Date: Wed, 14 Dec 2022 15:52:11 -0800
Subject: [PATCH] Improve logging and errors Subject: [PATCH] Improve logging and errors
diff --git a/src/main/java/net/minecraft/server/dedicated/Settings.java b/src/main/java/net/minecraft/server/dedicated/Settings.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/net/minecraft/server/dedicated/Settings.java
+++ b/src/main/java/net/minecraft/server/dedicated/Settings.java
@@ -0,0 +0,0 @@ public abstract class Settings<T extends Settings<T>> {
}
public static Properties loadFromFile(Path path) {
+ // Paper start
+ if (Files.notExists(path)) {
+ LOGGER.info("Could not find existing {}. Creating with default values...", path.getFileName());
+ return new Properties();
+ }
+ // Paper end
try {
Properties properties;
Properties properties1;
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java

View file

@ -934,7 +934,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
-import org.bukkit.craftbukkit.SpigotTimings; // Spigot -import org.bukkit.craftbukkit.SpigotTimings; // Spigot
+import co.aikar.timings.MinecraftTimings; // Paper +import co.aikar.timings.MinecraftTimings; // Paper
import org.bukkit.event.server.ServerCommandEvent; import org.bukkit.event.server.ServerCommandEvent;
+import org.bukkit.craftbukkit.util.Waitable; +import org.bukkit.craftbukkit.util.Waitable; // Paper
import org.bukkit.event.server.RemoteServerCommandEvent; import org.bukkit.event.server.RemoteServerCommandEvent;
// CraftBukkit end // CraftBukkit end
@ -957,21 +957,27 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
@Override @Override
@@ -0,0 +0,0 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -0,0 +0,0 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
}
@Override public String runCommand(RconConsoleSource rconConsoleSource, String s) {
public String runCommand(String command) { + Waitable[] waitableArray = new Waitable[1]; // Paper
+ Waitable[] waitableArray = new Waitable[1]; rconConsoleSource.prepareForCommand();
this.rconConsoleSource.prepareForCommand(); + final java.util.concurrent.atomic.AtomicReference<String> command = new java.util.concurrent.atomic.AtomicReference<>(s); // Paper
this.executeBlocking(() -> { this.executeBlocking(() -> {
// CraftBukkit start - fire RemoteServerCommandEvent CommandSourceStack wrapper = rconConsoleSource.createCommandSourceStack();
RemoteServerCommandEvent event = new RemoteServerCommandEvent(rconConsoleSource.getBukkitSender(wrapper), s);
@@ -0,0 +0,0 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -0,0 +0,0 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
if (event.isCancelled()) { if (event.isCancelled()) {
return; return;
} }
- ConsoleInput serverCommand = new ConsoleInput(event.getCommand(), wrapper);
- server.dispatchServerCommand(event.getSender(), serverCommand);
+
+ // Paper start + // Paper start
+ if (command.toLowerCase().startsWith("timings") && command.toLowerCase().matches("timings (report|paste|get|merged|seperate)")) { + command.set(event.getCommand());
+ if (event.getCommand().toLowerCase().startsWith("timings") && event.getCommand().toLowerCase().matches("timings (report|paste|get|merged|seperate)")) {
+ org.bukkit.command.BufferedCommandSender sender = new org.bukkit.command.BufferedCommandSender(); + org.bukkit.command.BufferedCommandSender sender = new org.bukkit.command.BufferedCommandSender();
+ Waitable<String> waitable = new Waitable<String>() { + Waitable<String> waitable = new Waitable<>() {
+ @Override + @Override
+ protected String evaluate() { + protected String evaluate() {
+ return sender.getBuffer(); + return sender.getBuffer();
@ -981,10 +987,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ co.aikar.timings.Timings.generateReport(new co.aikar.timings.TimingsReportListener(sender, waitable)); + co.aikar.timings.Timings.generateReport(new co.aikar.timings.TimingsReportListener(sender, waitable));
+ } else { + } else {
+ // Paper end + // Paper end
ConsoleInput serverCommand = new ConsoleInput(event.getCommand(), this.rconConsoleSource.createCommandSourceStack()); + ConsoleInput serverCommand = new ConsoleInput(event.getCommand(), wrapper);
server.dispatchServerCommand(remoteConsole, serverCommand); + server.dispatchServerCommand(event.getSender(), serverCommand);
+ } // Paper + } // Paper
// CraftBukkit end
}); });
+ // Paper start + // Paper start
+ if (waitableArray[0] != null) { + if (waitableArray[0] != null) {
@ -993,17 +998,17 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ try { + try {
+ return waitable.get(); + return waitable.get();
+ } catch (java.util.concurrent.ExecutionException e) { + } catch (java.util.concurrent.ExecutionException e) {
+ throw new RuntimeException("Exception processing rcon command " + command, e.getCause()); + throw new RuntimeException("Exception processing rcon command " + command.get(), e.getCause());
+ } catch (InterruptedException e) { + } catch (InterruptedException e) {
+ Thread.currentThread().interrupt(); // Maintain interrupted state + Thread.currentThread().interrupt(); // Maintain interrupted state
+ throw new RuntimeException("Interrupted processing rcon command " + command, e); + throw new RuntimeException("Interrupted processing rcon command " + command.get(), e);
+ } + }
+ +
+ } + }
+ // Paper end + // Paper end
return this.rconConsoleSource.getCommandResponse(); return rconConsoleSource.getCommandResponse();
// CraftBukkit end
} }
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java --- a/src/main/java/net/minecraft/server/level/ChunkMap.java

View file

@ -265,9 +265,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
import net.minecraft.core.HolderLookup; import net.minecraft.core.HolderLookup;
import net.minecraft.resources.RegistryOps; import net.minecraft.resources.RegistryOps;
@@ -0,0 +0,0 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -0,0 +0,0 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public org.bukkit.craftbukkit.CraftServer server;
public OptionSet options; public OptionSet options;
public org.bukkit.command.ConsoleCommandSender console; public org.bukkit.command.ConsoleCommandSender console;
public org.bukkit.command.RemoteConsoleCommandSender remoteConsole;
- public ConsoleReader reader; - public ConsoleReader reader;
+ //public ConsoleReader reader; // Paper + //public ConsoleReader reader; // Paper
public static int currentTick = 0; // Paper - Further improve tick loop public static int currentTick = 0; // Paper - Further improve tick loop

View file

@ -17,7 +17,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ private final java.util.Queue<ConsoleInput> serverCommandQueue = new java.util.concurrent.ConcurrentLinkedQueue<>(); // Paper - use a proper queuemmands + private final java.util.Queue<ConsoleInput> serverCommandQueue = new java.util.concurrent.ConcurrentLinkedQueue<>(); // Paper - use a proper queuemmands
@Nullable @Nullable
private QueryThreadGs4 queryThreadGs4; private QueryThreadGs4 queryThreadGs4;
public final RconConsoleSource rconConsoleSource; // public final RemoteControlCommandListener rconConsoleSource; // CraftBukkit - remove field
@@ -0,0 +0,0 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -0,0 +0,0 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
return; return;
} }

@ -1 +1 @@
Subproject commit 82af5dc60eae0a6223be15ea4f69c560521c97a9 Subproject commit 6b34da8f0c34fb308c825d3e12abf9cf5bac6ab9

@ -1 +1 @@
Subproject commit b76ceb4f5dbeeedb6e0cff3b4545779b137bc125 Subproject commit db4ba289785418d608eeca8dec2013e513adf9ad

@ -1 +1 @@
Subproject commit 94e187b577b93759e4f46e85c892049a6baa3bcc Subproject commit d2eba2c820b52b742eb542c6d2c4d76e3d743570