mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-21 16:37:44 +01:00
1cfd363d32
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: fc460d1b PR-735: Add Villager#zombify c8c8331e PR-690: Add method to read ItemStack input 62845f2f SPIGOT-6829: Add per-player world border API CraftBukkit Changes: a459f4d4 PR-1033: Add Villager#zombify d65d1430 PR-975: Add method to read ItemStack input b5559f8c SPIGOT-6990: Fix setRepairCost(0) in Anvil 6c308e1b SPIGOT-6829: Add per-player world border API Spigot Changes: 42b61526 SPIGOT-7000: Generation and /locate issues when using custom structure seeds
105 lines
4.9 KiB
Diff
105 lines
4.9 KiB
Diff
From 0000000000000000000000000000000000000000 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 1bd3780f8331074b24f9f4e2bbeeb2b37514aaa3..2b3ced048a48f660ca0859425583d342e7847744 100644
|
|
--- a/src/main/java/org/bukkit/Bukkit.java
|
|
+++ b/src/main/java/org/bukkit/Bukkit.java
|
|
@@ -2064,6 +2064,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 75bc4937f7a895c1bbf0a0800035ad8f7e0c5f46..be5f25a51a12082cb6732445c221d61246da89e9 100644
|
|
--- a/src/main/java/org/bukkit/Server.java
|
|
+++ b/src/main/java/org/bukkit/Server.java
|
|
@@ -1823,4 +1823,6 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
|
@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 50cc311be7904cc8fc6070a21c8e4de3a489fd20..c62da4131b17e66892678e8b618fb9ba3de93b56 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 1fbf690403eefe017b146c141c6d47d9b8d9d4bb..3ffe519b759f440f56f3054b0d3e4120b59f8c62 100644
|
|
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
|
|
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
|
|
@@ -905,4 +905,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
|
|
+
|
|
}
|