42433c2626
Upstream has released updates that appears 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: 09f10fd9 SPIGOT-5950: Add PrepareSmithingEvent event CraftBukkit Changes: 7c03d257 SPIGOT-6011: End Gateways do not work on Non-Main End Worlds d492e363 SPIGOT-6015: Small Armor Stand doesn't drop items 5db13eea SPIGOT-5950: Add PrepareSmithingEvent event
52 lines
2.7 KiB
Diff
52 lines
2.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Fri, 18 Mar 2016 13:17:38 -0400
|
|
Subject: [PATCH] Default loading permissions.yml before plugins
|
|
|
|
Under previous behavior, plugins were not able to check if a player had a permission
|
|
if it was defined in permissions.yml. there is no clean way for a plugin to fix that either.
|
|
|
|
This will change the order so that by default, permissions.yml loads BEFORE plugins instead of after.
|
|
|
|
This gives plugins expected permission checks.
|
|
|
|
It also helps improve the expected logic, as servers should set the initial defaults, and then let plugins
|
|
modify that. Under the previous logic, plugins were unable (cleanly) override permissions.yml.
|
|
|
|
A config option has been added for those who depend on the previous behavior, but I don't expect that.
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
|
index a62f4bbb973b9cb6d1ee53f56a0897d70ae176af..f207abbe757ad403a29a7a012903aaa88d5b1685 100644
|
|
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
|
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
|
@@ -214,4 +214,9 @@ public class PaperConfig {
|
|
" - Length: " + timeSummary(Timings.getHistoryLength() / 20) +
|
|
" - Server Name: " + timingsServerName);
|
|
}
|
|
+
|
|
+ public static boolean loadPermsBeforePlugins = true;
|
|
+ private static void loadPermsBeforePlugins() {
|
|
+ loadPermsBeforePlugins = getBoolean("settings.load-permissions-yml-before-plugins", true);
|
|
+ }
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
index b2524582a59939aa0a4569bfbb03eb1cc64c3cab..3c5b3ab38c22dd127caa2218e9bc62baf7cf5760 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
@@ -399,6 +399,7 @@ public final class CraftServer implements Server {
|
|
if (type == PluginLoadOrder.STARTUP) {
|
|
helpMap.clear();
|
|
helpMap.initializeGeneralTopics();
|
|
+ if (com.destroystokyo.paper.PaperConfig.loadPermsBeforePlugins) loadCustomPermissions(); // Paper
|
|
}
|
|
|
|
Plugin[] plugins = pluginManager.getPlugins();
|
|
@@ -418,7 +419,7 @@ public final class CraftServer implements Server {
|
|
commandMap.registerServerAliases();
|
|
DefaultPermissions.registerCorePermissions();
|
|
CraftDefaultPermissions.registerCorePermissions();
|
|
- loadCustomPermissions();
|
|
+ if (!com.destroystokyo.paper.PaperConfig.loadPermsBeforePlugins) loadCustomPermissions(); // Paper
|
|
helpMap.initializeCommands();
|
|
syncCommands();
|
|
}
|