Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@841da90 Paper Plugins (#8108)
PaperMC/Paper@7baf427 Fix plugin updater logic, allow null update directory (#8864)
This commit is contained in:
granny
2023-02-19 22:30:29 -08:00
parent 41593baf70
commit 9940dcf74b
45 changed files with 269 additions and 252 deletions

View File

@@ -20,7 +20,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
diff --git a/build.gradle.kts b/build.gradle.kts
index c16ebc233bce9fd2020d3dde6253c3b90000c0f3..4e78a535b528a87ad0ec9c361541c79854929c6e 100644
index 56333098150995cd36793de75a998b628e82881d..d65eb422de43b70496db2da85e8f2da30a5214fb 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -41,6 +41,7 @@ dependencies {
@@ -426,10 +426,10 @@ index 3a9aaca2e76411a9c27f9f5e0f22d060d5a66d06..9584e245144b561b4f6745b2f26a4f69
}
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
index b012ce40d82389c29d1b841ff685425ac10a7f9e..c077e7c883613fcb6e559b4e4776e794caa3b363 100644
index 2b8308989fce7f8a16907f8711b362e671fdbfb6..bd4d1a40f53784662174d426533ef4b5433a15b7 100644
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
@@ -625,7 +625,9 @@ public final class SimplePluginManager implements PluginManager {
@@ -584,7 +584,9 @@ public final class SimplePluginManager implements PluginManager {
// Paper start
private void handlePluginException(String msg, Throwable ex, Plugin plugin) {
@@ -439,7 +439,7 @@ index b012ce40d82389c29d1b841ff685425ac10a7f9e..c077e7c883613fcb6e559b4e4776e794
callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerPluginEnableDisableException(msg, ex, plugin)));
}
// Paper end
@@ -684,9 +686,11 @@ public final class SimplePluginManager implements PluginManager {
@@ -654,9 +656,11 @@ public final class SimplePluginManager implements PluginManager {
));
}
} catch (Throwable ex) {
@@ -452,20 +452,20 @@ index b012ce40d82389c29d1b841ff685425ac10a7f9e..c077e7c883613fcb6e559b4e4776e794
callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerEventException(msg, ex, registration.getPlugin(), registration.getListener(), event)));
}
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
index 7e5149a21b6747f64425a277c142e69f0ef43b3f..bf93183aa76af005d5daf8cf533f908d535166e8 100644
index 88d852c1a729ffd5951da803da424b31591c9f9a..90fdaee8b07df0acf8863103b47a1c68e38a3e4f 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -370,7 +370,9 @@ public final class JavaPluginLoader implements PluginLoader {
@@ -336,7 +336,9 @@ public final class JavaPluginLoader implements PluginLoader {
try {
jPlugin.setEnabled(true);
} catch (Throwable ex) {
+ gg.pufferfish.pufferfish.sentry.SentryContext.setPluginContext(plugin); // Pufferfish
server.getLogger().log(Level.SEVERE, "Error occurred while enabling " + plugin.getDescription().getFullName() + " (Is it up to date?)", ex);
+ gg.pufferfish.pufferfish.sentry.SentryContext.removePluginContext(); // Pufferfish
// Paper start - Disable plugins that fail to load
this.server.getPluginManager().disablePlugin(jPlugin);
return;
@@ -399,7 +401,9 @@ public final class JavaPluginLoader implements PluginLoader {
}
// Perhaps abort here, rather than continue going, but as it stands,
@@ -361,7 +363,9 @@ public final class JavaPluginLoader implements PluginLoader {
try {
jPlugin.setEnabled(false);
} catch (Throwable ex) {
@@ -476,19 +476,19 @@ index 7e5149a21b6747f64425a277c142e69f0ef43b3f..bf93183aa76af005d5daf8cf533f908d
if (cloader instanceof PluginClassLoader) {
diff --git a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
index cb3c25ef46b279ffdde87f47f729eb8aa7549c1c..6fb179c4d420eac3a6399fbff104b5af6ba448ba 100644
index 4b3380a42b4be54ef4df806c5db0d3a1be5909a6..a60ae10de96203772d6284e9399069df9949094f 100644
--- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
@@ -46,6 +46,8 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot
private final Set<String> seenIllegalAccess = Collections.newSetFromMap(new ConcurrentHashMap<>());
private java.util.logging.Logger logger; // Paper - add field
@@ -49,6 +49,8 @@ public final class PluginClassLoader extends URLClassLoader implements io.paperm
private io.papermc.paper.plugin.provider.classloader.PluginClassLoaderGroup classLoaderGroup; // Paper
public io.papermc.paper.plugin.provider.entrypoint.DependencyContext dependencyContext; // Paper
+ private boolean closed = false; // Pufferfish
+
static {
ClassLoader.registerAsParallelCapable();
}
@@ -177,6 +179,7 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot
@@ -199,6 +201,7 @@ public final class PluginClassLoader extends URLClassLoader implements io.paperm
throw new ClassNotFoundException(name);
}
@@ -496,7 +496,7 @@ index cb3c25ef46b279ffdde87f47f729eb8aa7549c1c..6fb179c4d420eac3a6399fbff104b5af
@Override
protected Class<?> findClass(String name) throws ClassNotFoundException {
if (name.startsWith("org.bukkit.") || name.startsWith("net.minecraft.")) {
@@ -184,7 +187,7 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot
@@ -206,7 +209,7 @@ public final class PluginClassLoader extends URLClassLoader implements io.paperm
}
Class<?> result = classes.get(name);
@@ -505,16 +505,16 @@ index cb3c25ef46b279ffdde87f47f729eb8aa7549c1c..6fb179c4d420eac3a6399fbff104b5af
String path = name.replace('.', '/').concat(".class");
JarEntry entry = jar.getJarEntry(path);
@@ -231,6 +234,7 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot
classes.put(name, result);
@@ -253,6 +256,7 @@ public final class PluginClassLoader extends URLClassLoader implements io.paperm
this.setClass(name, result); // Paper
}
+ if (result == null) throw new ClassNotFoundException(name); // Pufferfish
return result;
}
@@ -239,6 +243,7 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot
try {
@@ -267,6 +271,7 @@ public final class PluginClassLoader extends URLClassLoader implements io.paperm
// Paper end
super.close();
} finally {
+ this.closed = true; // Pufferfish

View File

@@ -1,115 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Parker Hawke <hawkeboyz2@hotmail.com>
Date: Sat, 27 Jun 2020 18:43:37 -0400
Subject: [PATCH] Spigot - Improve output of plugins command
Co-authored-by: Oharass <oharass@bk.ru>
diff --git a/src/main/java/org/bukkit/command/defaults/PluginsCommand.java b/src/main/java/org/bukkit/command/defaults/PluginsCommand.java
index 1aa58c59e1e8738bbdc77752885ff3b18b29de42..46525191653e4ac0e0366c0357f368c0b709f20d 100644
--- a/src/main/java/org/bukkit/command/defaults/PluginsCommand.java
+++ b/src/main/java/org/bukkit/command/defaults/PluginsCommand.java
@@ -11,6 +11,14 @@ import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.plugin.Plugin;
import org.jetbrains.annotations.NotNull;
+// Spigot start
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.TextComponent;
+import net.kyori.adventure.text.format.NamedTextColor;
+import net.kyori.adventure.text.event.ClickEvent;
+import org.bukkit.entity.Player;
+import org.bukkit.plugin.PluginDescriptionFile;
+// Spigot end
public class PluginsCommand extends BukkitCommand {
public PluginsCommand(@NotNull String name) {
@@ -25,7 +33,13 @@ public class PluginsCommand extends BukkitCommand {
public boolean execute(@NotNull CommandSender sender, @NotNull String currentAlias, @NotNull String[] args) {
if (!testPermission(sender)) return true;
- sender.sendMessage("Plugins " + getPluginList());
+ // Spigot start
+ if (sender instanceof Player && sender.hasPermission("bukkit.command.version")) {
+ sender.sendMessage(getPluginListSpigot());
+ } else {
+ sender.sendMessage("Plugins " + getPluginList());
+ }
+ // Spigot end
return true;
}
@@ -71,4 +85,73 @@ public class PluginsCommand extends BukkitCommand {
// Paper end
}
+ // Spigot start
+ @NotNull
+ private TextComponent getPluginListSpigot() {
+ Plugin[] plugins = Bukkit.getPluginManager().getPlugins();
+ TextComponent.Builder builder = Component.text();
+ builder.append(Component.text("Plugins (" + plugins.length + "): "));
+
+ int index = 0;
+ for (Plugin plugin : plugins) {
+ if (index++ > 0) {
+ builder.append(Component.text(", ", NamedTextColor.WHITE));
+ }
+
+ // Event components
+ PluginDescriptionFile description = plugin.getDescription();
+ TextComponent.Builder hover = Component.text();
+ hover.append(Component.text("Version: ", NamedTextColor.WHITE)).append(Component.text(description.getVersion(), NamedTextColor.GREEN));
+
+ if (description.getDescription() != null) {
+ hover.append(Component.newline())
+ .append(Component.text("Description: ", NamedTextColor.WHITE))
+ .append(Component.text(description.getDescription(), NamedTextColor.GREEN));
+ }
+
+ if (description.getWebsite() != null) {
+ hover.append(Component.newline())
+ .append(Component.text("Website: ", NamedTextColor.WHITE))
+ .append(Component.text(description.getWebsite(), NamedTextColor.GREEN));
+ }
+
+ if (!description.getAuthors().isEmpty()) {
+ hover.append(Component.newline());
+ if (description.getAuthors().size() == 1) {
+ hover.append(Component.text("Author: "));
+ } else {
+ hover.append(Component.text("Authors: "));
+ }
+
+ hover.append(getAuthors(description));
+ }
+
+ // Plugin list entry
+ builder.append(Component.text(plugin.getDescription().getName(), plugin.isEnabled() ? NamedTextColor.GREEN : NamedTextColor.RED)
+ .hoverEvent(hover.build()).clickEvent(ClickEvent.suggestCommand("/version " + description.getName())));
+
+ if (plugin.getDescription().getProvides().size() > 0) {
+ builder.append(Component.text(" (", NamedTextColor.WHITE)).append(Component.text(String.join(", ", plugin.getDescription().getProvides()))).append(Component.text(")"));
+ }
+ }
+
+ return builder.build();
+ }
+
+ @NotNull
+ private TextComponent getAuthors(@NotNull final PluginDescriptionFile description) {
+ TextComponent.Builder builder = Component.text();
+ List<String> authors = description.getAuthors();
+
+ for (int i = 0; i < authors.size(); i++) {
+ if (i > 0) {
+ builder.append(Component.text(i < authors.size() - 1 ? ", " : " and ", NamedTextColor.WHITE));
+ }
+
+ builder.append(Component.text(authors.get(i), NamedTextColor.GREEN));
+ }
+
+ return builder.build();
+ }
+ // Spigot end
}

View File

@@ -1,19 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Tue, 8 Dec 2020 09:48:18 -0600
Subject: [PATCH] Alphabetize in-game /plugins list
diff --git a/src/main/java/org/bukkit/command/defaults/PluginsCommand.java b/src/main/java/org/bukkit/command/defaults/PluginsCommand.java
index 46525191653e4ac0e0366c0357f368c0b709f20d..0b4937dc6d003caf0f43a01a5a0801d5804082bf 100644
--- a/src/main/java/org/bukkit/command/defaults/PluginsCommand.java
+++ b/src/main/java/org/bukkit/command/defaults/PluginsCommand.java
@@ -88,7 +88,7 @@ public class PluginsCommand extends BukkitCommand {
// Spigot start
@NotNull
private TextComponent getPluginListSpigot() {
- Plugin[] plugins = Bukkit.getPluginManager().getPlugins();
+ Plugin[] plugins = Arrays.stream(Bukkit.getPluginManager().getPlugins()).sorted(java.util.Comparator.comparing(plugin -> plugin.getName().toLowerCase())).toArray(Plugin[]::new); // Purpur
TextComponent.Builder builder = Component.text();
builder.append(Component.text("Plugins (" + plugins.length + "): "));

View File

@@ -120,7 +120,7 @@ index 3132dc98d26c54c5e46162e53aaed195d7335c8d..b461b5c50f97f11cb9ef68abc520271b
new ArrayList<String>(TIMINGS_SUBCOMMANDS.size()));
}
diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java
index 0bc24d0effe9b2e44c41a1c00060b0ebf7395c4a..aad6edb02f690b875db28e8db9bcd4e36b90d766 100644
index e842d13febca67ffa1c89fb2c1324d2609fb81fd..5349f16136d9348c374a7dfe5b89a71dfcb0e66d 100644
--- a/src/main/java/org/bukkit/command/SimpleCommandMap.java
+++ b/src/main/java/org/bukkit/command/SimpleCommandMap.java
@@ -163,10 +163,10 @@ public class SimpleCommandMap implements CommandMap {

View File

@@ -1,23 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: granny <granny@purpurmc.org>
Date: Thu, 30 Jun 2022 02:32:52 -0700
Subject: [PATCH] Spark Profiler
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
index c077e7c883613fcb6e559b4e4776e794caa3b363..75be5cdfeb30732975bbc38dc7aab52a0cdead9c 100644
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
@@ -167,6 +167,12 @@ public final class SimplePluginManager implements PluginManager {
server.getLogger().log(Level.SEVERE, "Could not load '" + file.getPath() + "' in folder '" + file.getParentFile().getPath() + "'", ex); // Paper
continue;
}
+ // Purpur start
+ if (!Boolean.getBoolean("Purpur.IReallyDontWantSpark") && plugins.containsKey(description.getName()) && description.getName().equalsIgnoreCase("spark")) {
+ server.getLogger().log(Level.INFO, "Purpur: Using user-provided spark plugin instead of our own.");
+ continue;
+ }
+ // Purpur end
File replacedFile = plugins.put(description.getName(), file);
if (replacedFile != null) {

View File

@@ -5,11 +5,11 @@ Subject: [PATCH] Add log suppression for LibraryLoader
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
index bf93183aa76af005d5daf8cf533f908d535166e8..d7ac5d5bb6180f97706be9c5ef25956f244bc376 100644
index 90fdaee8b07df0acf8863103b47a1c68e38a3e4f..6319f6c1428d0e272681984c1b15ec05a3272423 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -58,6 +58,7 @@ public final class JavaPluginLoader implements PluginLoader {
private final Map<String, Integer> classLoadLockCount = new java.util.HashMap<String, Integer>(); // Paper
@@ -55,6 +55,7 @@ public final class JavaPluginLoader implements PluginLoader {
private final Pattern[] fileFilters = new Pattern[]{Pattern.compile("\\.jar$")};
private final List<PluginClassLoader> loaders = new CopyOnWriteArrayList<PluginClassLoader>();
private final LibraryLoader libraryLoader;
+ public static boolean SuppressLibraryLoaderLogger = false; // Purpur
@@ -17,10 +17,10 @@ index bf93183aa76af005d5daf8cf533f908d535166e8..d7ac5d5bb6180f97706be9c5ef25956f
/**
* This class was not meant to be constructed explicitly
diff --git a/src/main/java/org/bukkit/plugin/java/LibraryLoader.java b/src/main/java/org/bukkit/plugin/java/LibraryLoader.java
index 6d634b0ea813ccb19f1562a7d0e5a59cea4eab21..06a7f27aa7c3963f63fe158438a83fdf67a20c51 100644
index f9e67e20133d349e43d126dbb48b34d4d9aceb4c..f8efacb9447d72e66a1fd59db18425fe0629e266 100644
--- a/src/main/java/org/bukkit/plugin/java/LibraryLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/LibraryLoader.java
@@ -62,6 +62,7 @@ class LibraryLoader
@@ -65,6 +65,7 @@ public class LibraryLoader
@Override
public void transferStarted(@NotNull TransferEvent event) throws TransferCancelledException
{
@@ -28,7 +28,7 @@ index 6d634b0ea813ccb19f1562a7d0e5a59cea4eab21..06a7f27aa7c3963f63fe158438a83fdf
logger.log( Level.INFO, "Downloading {0}", event.getResource().getRepositoryUrl() + event.getResource().getResourceName() );
}
} );
@@ -77,6 +78,7 @@ class LibraryLoader
@@ -80,6 +81,7 @@ public class LibraryLoader
{
return null;
}
@@ -36,7 +36,7 @@ index 6d634b0ea813ccb19f1562a7d0e5a59cea4eab21..06a7f27aa7c3963f63fe158438a83fdf
logger.log( Level.INFO, "[{0}] Loading {1} libraries... please wait", new Object[]
{
desc.getName(), desc.getLibraries().size()
@@ -115,6 +117,7 @@ class LibraryLoader
@@ -118,6 +120,7 @@ public class LibraryLoader
}
jarFiles.add( url );