zPermissions: Ignore world argument when adding/removing players to/from groups.

When setting prefix/suffix/string infos, ensure value is properly quoted.
  Don't cache ConsoleCommandSender, since it appears to be null at load time.
This commit is contained in:
ZerothAngel 2013-05-27 18:53:25 -07:00
parent 9a79e19c40
commit d1f1d10225
2 changed files with 26 additions and 31 deletions

View File

@ -21,7 +21,6 @@ import net.milkbowl.vault.chat.Chat;
import net.milkbowl.vault.permission.Permission; import net.milkbowl.vault.permission.Permission;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@ -40,12 +39,9 @@ public class Chat_zPermissions extends Chat {
private ZPermissionsService service; private ZPermissionsService service;
private final ConsoleCommandSender ccs;
public Chat_zPermissions(Plugin plugin, Permission perms) { public Chat_zPermissions(Plugin plugin, Permission perms) {
super(perms); super(perms);
this.plugin = plugin; this.plugin = plugin;
ccs = Bukkit.getServer().getConsoleSender();
Bukkit.getServer().getPluginManager().registerEvents(new PermissionServerListener(), plugin); Bukkit.getServer().getPluginManager().registerEvents(new PermissionServerListener(), plugin);
// Load service in case it was loaded before // Load service in case it was loaded before
if (service == null) { if (service == null) {
@ -94,7 +90,7 @@ public class Chat_zPermissions extends Chat {
@Override @Override
public void setPlayerPrefix(String world, String player, String prefix) { public void setPlayerPrefix(String world, String player, String prefix) {
plugin.getServer().dispatchCommand(ccs, "permissions player " + player + " metadata set prefix " + prefix); setPlayerInfoString(world, player, "prefix", prefix);
} }
@Override @Override
@ -104,7 +100,7 @@ public class Chat_zPermissions extends Chat {
@Override @Override
public void setPlayerSuffix(String world, String player, String suffix) { public void setPlayerSuffix(String world, String player, String suffix) {
plugin.getServer().dispatchCommand(ccs, "permissions player " + player + " metadata set suffix " + suffix); setPlayerInfoString(world, player, "suffix", suffix);
} }
@Override @Override
@ -114,7 +110,7 @@ public class Chat_zPermissions extends Chat {
@Override @Override
public void setGroupPrefix(String world, String group, String prefix) { public void setGroupPrefix(String world, String group, String prefix) {
plugin.getServer().dispatchCommand(ccs, "permissions group " + group + " metadata set prefix " + prefix); setGroupInfoString(world, group, "prefix", prefix);
} }
@Override @Override
@ -124,7 +120,7 @@ public class Chat_zPermissions extends Chat {
@Override @Override
public void setGroupSuffix(String world, String group, String suffix) { public void setGroupSuffix(String world, String group, String suffix) {
plugin.getServer().dispatchCommand(ccs, "permissions group " + group + " metadata set suffix " + suffix); setGroupInfoString(world, group, "suffix", suffix);
} }
@Override @Override
@ -138,7 +134,7 @@ public class Chat_zPermissions extends Chat {
@Override @Override
public void setPlayerInfoInteger(String world, String player, String node, int value) { public void setPlayerInfoInteger(String world, String player, String node, int value) {
plugin.getServer().dispatchCommand(ccs, "permissions player " + player + " metadata setint " + node + " " + value); plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), "permissions player " + player + " metadata setint " + node + " " + value);
} }
@Override @Override
@ -152,7 +148,7 @@ public class Chat_zPermissions extends Chat {
@Override @Override
public void setGroupInfoInteger(String world, String group, String node, int value) { public void setGroupInfoInteger(String world, String group, String node, int value) {
plugin.getServer().dispatchCommand(ccs, "permissions group " + group + " metadata setint " + node + " " + value); plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), "permissions group " + group + " metadata setint " + node + " " + value);
} }
@Override @Override
@ -166,7 +162,7 @@ public class Chat_zPermissions extends Chat {
@Override @Override
public void setPlayerInfoDouble(String world, String player, String node, double value) { public void setPlayerInfoDouble(String world, String player, String node, double value) {
plugin.getServer().dispatchCommand(ccs, "permissions player " + player + " metadata setreal " + node + " " + value); plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), "permissions player " + player + " metadata setreal " + node + " " + value);
} }
@Override @Override
@ -180,7 +176,7 @@ public class Chat_zPermissions extends Chat {
@Override @Override
public void setGroupInfoDouble(String world, String group, String node, double value) { public void setGroupInfoDouble(String world, String group, String node, double value) {
plugin.getServer().dispatchCommand(ccs, "permissions group " + group + " metadata setreal " + node + " " + value); plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), "permissions group " + group + " metadata setreal " + node + " " + value);
} }
@Override @Override
@ -194,7 +190,7 @@ public class Chat_zPermissions extends Chat {
@Override @Override
public void setPlayerInfoBoolean(String world, String player, String node, boolean value) { public void setPlayerInfoBoolean(String world, String player, String node, boolean value) {
plugin.getServer().dispatchCommand(ccs, "permissions player " + player + " metadata setbool " + node + " " + value); plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), "permissions player " + player + " metadata setbool " + node + " " + value);
} }
@Override @Override
@ -208,7 +204,7 @@ public class Chat_zPermissions extends Chat {
@Override @Override
public void setGroupInfoBoolean(String world, String group, String node, boolean value) { public void setGroupInfoBoolean(String world, String group, String node, boolean value) {
plugin.getServer().dispatchCommand(ccs, "permissions group " + group + " metadata setbool " + node + " " + value); plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), "permissions group " + group + " metadata setbool " + node + " " + value);
} }
@Override @Override
@ -222,7 +218,7 @@ public class Chat_zPermissions extends Chat {
@Override @Override
public void setPlayerInfoString(String world, String player, String node, String value) { public void setPlayerInfoString(String world, String player, String node, String value) {
plugin.getServer().dispatchCommand(ccs, "permissions player " + player + " metadata set " + node + " " + value); plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), "permissions player " + player + " metadata set " + node + " " + quote(value));
} }
@Override @Override
@ -236,7 +232,15 @@ public class Chat_zPermissions extends Chat {
@Override @Override
public void setGroupInfoString(String world, String group, String node, String value) { public void setGroupInfoString(String world, String group, String node, String value) {
plugin.getServer().dispatchCommand(ccs, "permissions group " + group + " metadata set " + node + " " + value); plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), "permissions group " + group + " metadata set " + node + " " + quote(value));
}
private String quote(String input) {
input = input.replaceAll("\\\\", "\\\\\\\\").replaceAll("\"", "\\\\\"");
if (input.matches(".*\\s.*"))
return "\"" + input + "\""; // Enclose in quotes
else
return input;
} }
} }

View File

@ -25,7 +25,6 @@ import net.milkbowl.vault.permission.Permission;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
@ -41,12 +40,10 @@ public class Permission_zPermissions extends Permission {
private final String name = "zPermissions"; private final String name = "zPermissions";
private ZPermissionsService service; private ZPermissionsService service;
private final ConsoleCommandSender ccs;
private boolean trackSupport; private boolean trackSupport;
public Permission_zPermissions(Plugin plugin) { public Permission_zPermissions(Plugin plugin) {
this.plugin = plugin; this.plugin = plugin;
ccs = Bukkit.getServer().getConsoleSender();
Bukkit.getServer().getPluginManager().registerEvents(new PermissionServerListener(), plugin); Bukkit.getServer().getPluginManager().registerEvents(new PermissionServerListener(), plugin);
// Load service in case it was loaded before // Load service in case it was loaded before
if (service == null) { if (service == null) {
@ -124,7 +121,7 @@ public class Permission_zPermissions extends Permission {
if (world != null) { if (world != null) {
permission = world + ":" + permission; permission = world + ":" + permission;
} }
return plugin.getServer().dispatchCommand(ccs, "permissions player " + player + " set " + permission); return plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), "permissions player " + player + " set " + permission);
} }
@Override @Override
@ -132,7 +129,7 @@ public class Permission_zPermissions extends Permission {
if (world != null) { if (world != null) {
permission = world + ":" + permission; permission = world + ":" + permission;
} }
return plugin.getServer().dispatchCommand(ccs, "permissions player " + player + " unset " + permission); return plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), "permissions player " + player + " unset " + permission);
} }
@Override @Override
@ -156,7 +153,7 @@ public class Permission_zPermissions extends Permission {
if (world != null) { if (world != null) {
permission = world + ":" + permission; permission = world + ":" + permission;
} }
return plugin.getServer().dispatchCommand(ccs, "permissions group " + group + " set " + permission); return plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), "permissions group " + group + " set " + permission);
} }
@Override @Override
@ -164,7 +161,7 @@ public class Permission_zPermissions extends Permission {
if (world != null) { if (world != null) {
permission = world + ":" + permission; permission = world + ":" + permission;
} }
return plugin.getServer().dispatchCommand(ccs, "permissions group " + group + " unset " + permission); return plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), "permissions group " + group + " unset " + permission);
} }
@Override @Override
@ -181,18 +178,12 @@ public class Permission_zPermissions extends Permission {
@Override @Override
public boolean playerAddGroup(String world, String player, String group) { public boolean playerAddGroup(String world, String player, String group) {
if (world != null) { return plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), "permissions group " + group + " add " + player);
return false;
}
return plugin.getServer().dispatchCommand(ccs, "permissions group " + group + " add " + player);
} }
@Override @Override
public boolean playerRemoveGroup(String world, String player, String group) { public boolean playerRemoveGroup(String world, String player, String group) {
if (world != null) { return plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), "permissions group " + group + " remove " + player);
return false;
}
return plugin.getServer().dispatchCommand(ccs, "permissions group " + group + " remove " + player);
} }
@Override @Override