55b3a09dde
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: d0800d0c Update checkstyle e4e4bf70 Remove package-info from tests, breaks some IDEs d6651bb0 No longer necessary to synchronize sync events CraftBukkit Changes: e82b5477 SPIGOT-5556: Some biome methods use incorrect positions 544ccdc5 Update checkstyle 512ff7a5 Print legacy load reason in debug mode df371c1b SPIGOT-5554: Clear error message when BossBar is used for not fully joined players 18168500 Update scriptus 6bbb4e73 Clean up CraftBlockData.toString b1e96bd5 SPIGOT-5551: BlockState.setData fails when used by legacy plugin Spigot Changes: b9baf717 Add space before ocean seed output 13394884 Rebuild patches
107 lines
4.6 KiB
Diff
107 lines
4.6 KiB
Diff
From a11adba8d108fa72b7cebd2e84f0cceff1098f7c Mon Sep 17 00:00:00 2001
|
|
From: William <admin@domnian.com>
|
|
Date: Fri, 18 Mar 2016 03:28:07 -0400
|
|
Subject: [PATCH] Add command to reload permissions.yml and require confirm to
|
|
reload
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
|
|
index f152a60f6..58a183b9d 100644
|
|
--- a/src/main/java/org/bukkit/Bukkit.java
|
|
+++ b/src/main/java/org/bukkit/Bukkit.java
|
|
@@ -1516,6 +1516,13 @@ public final class Bukkit {
|
|
public static org.bukkit.command.CommandMap getCommandMap() {
|
|
return server.getCommandMap();
|
|
}
|
|
+
|
|
+ /**
|
|
+ * Reload the Permissions in permissions.yml
|
|
+ */
|
|
+ public static void reloadPermissions() {
|
|
+ server.reloadPermissions();
|
|
+ }
|
|
// Paper end
|
|
|
|
@NotNull
|
|
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
|
|
index 74f9d2bbc..ca0b63fa0 100644
|
|
--- a/src/main/java/org/bukkit/Server.java
|
|
+++ b/src/main/java/org/bukkit/Server.java
|
|
@@ -1336,4 +1336,6 @@ public interface Server extends PluginMessageRecipient {
|
|
@NotNull
|
|
Spigot spigot();
|
|
// Spigot end
|
|
+
|
|
+ void reloadPermissions(); // Paper
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/command/defaults/ReloadCommand.java b/src/main/java/org/bukkit/command/defaults/ReloadCommand.java
|
|
index 50cc311be..c62da4131 100644
|
|
--- a/src/main/java/org/bukkit/command/defaults/ReloadCommand.java
|
|
+++ b/src/main/java/org/bukkit/command/defaults/ReloadCommand.java
|
|
@@ -13,15 +13,35 @@ public class ReloadCommand extends BukkitCommand {
|
|
public ReloadCommand(@NotNull String name) {
|
|
super(name);
|
|
this.description = "Reloads the server configuration and plugins";
|
|
- this.usageMessage = "/reload";
|
|
+ this.usageMessage = "/reload [permissions]"; // Paper
|
|
this.setPermission("bukkit.command.reload");
|
|
this.setAliases(Arrays.asList("rl"));
|
|
}
|
|
|
|
@Override
|
|
- public boolean execute(@NotNull CommandSender sender, @NotNull String currentAlias, @NotNull String[] args) {
|
|
+ public boolean execute(@NotNull CommandSender sender, @NotNull String currentAlias, @NotNull String[] args) { // Paper
|
|
if (!testPermission(sender)) return true;
|
|
|
|
+ // Paper start - Reload permissions.yml & require confirm
|
|
+ boolean confirmed = System.getProperty("LetMeReload") != null;
|
|
+ if (args.length == 1) {
|
|
+ if (args[0].equalsIgnoreCase("permissions")) {
|
|
+ Bukkit.getServer().reloadPermissions();
|
|
+ Command.broadcastCommandMessage(sender, ChatColor.GREEN + "Permissions successfully reloaded.");
|
|
+ return true;
|
|
+ } else if ("confirm".equalsIgnoreCase(args[0])) {
|
|
+ confirmed = true;
|
|
+ } else {
|
|
+ Command.broadcastCommandMessage(sender, ChatColor.RED + "Usage: " + usageMessage);
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
+ if (!confirmed) {
|
|
+ Command.broadcastCommandMessage(sender, ChatColor.RED + "Are you sure you wish to reload your server? Doing so may cause bugs and memory leaks. It is recommended to restart instead of using /reload. To confirm, please type " + ChatColor.YELLOW + "/reload confirm");
|
|
+ return true;
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
Command.broadcastCommandMessage(sender, ChatColor.RED + "Please note that this command is not supported and may cause issues when using some plugins.");
|
|
Command.broadcastCommandMessage(sender, ChatColor.RED + "If you encounter any issues please use the /stop command to restart your server.");
|
|
Bukkit.reload();
|
|
@@ -33,6 +53,6 @@ public class ReloadCommand extends BukkitCommand {
|
|
@NotNull
|
|
@Override
|
|
public List<String> tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException {
|
|
- return Collections.emptyList();
|
|
+ return java.util.Collections.singletonList("permissions"); // Paper
|
|
}
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
|
|
index 715954c75..f70296d76 100644
|
|
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
|
|
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
|
|
@@ -836,4 +836,13 @@ public final class SimplePluginManager implements PluginManager {
|
|
public void useTimings(boolean use) {
|
|
co.aikar.timings.Timings.setTimingsEnabled(use); // Paper
|
|
}
|
|
+
|
|
+ // Paper start
|
|
+ public void clearPermissions() {
|
|
+ permissions.clear();
|
|
+ defaultPerms.get(true).clear();
|
|
+ defaultPerms.get(false).clear();
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
}
|
|
--
|
|
2.25.0
|
|
|