Compare commits

...

14 Commits

6 changed files with 44 additions and 35 deletions

View File

@ -16,61 +16,61 @@ public class SimplyAPI implements PermsConfig {
@Override
public void removePlayer(String player) {
plugin.config.removePlayer(player);
refreshPermissions();
plugin.refreshPlayerPermissions(player);
}
@Override
public void removePlayerGroups(String player) {
plugin.config.removePlayerGroups(player);
refreshPermissions();
plugin.refreshPlayerPermissions(player);
}
@Override
public void removePlayerGroup(String player, String group) {
plugin.config.removePlayerGroup(player, group);
refreshPermissions();
plugin.refreshPlayerPermissions(player);
}
@Override
public void setPlayerGroup(String player, String group) {
plugin.config.setPlayerGroup(player, group);
refreshPermissions();
plugin.refreshPlayerPermissions(player);
}
@Override
public void addPlayerGroup(String player, String group) {
plugin.config.addPlayerGroup(player, group);
refreshPermissions();
plugin.refreshPlayerPermissions(player);
}
@Override
public void addPlayerPermission(String player, String permission, boolean value) {
plugin.config.addPlayerPermission(player, permission, value);
refreshPermissions();
plugin.refreshPlayerPermissions(player);
}
@Override
public void addPlayerPermission(String player, String world, String permission, boolean value) {
plugin.config.addPlayerPermission(player, world, permission, value);
refreshPermissions();
plugin.refreshPlayerPermissions(player);
}
@Override
public void removePlayerPermissions(String player) {
plugin.config.removePlayerPermissions(player);
refreshPermissions();
plugin.refreshPlayerPermissions(player);
}
@Override
public void removePlayerPermission(String player, String permission) {
plugin.config.removePlayerPermission(player, permission);
refreshPermissions();
plugin.refreshPlayerPermissions(player);
}
@Override
public void removePlayerPermission(String player, String world, String permission) {
plugin.config.removePlayerPermission(player, world, permission);
refreshPermissions();
plugin.refreshPlayerPermissions(player);
}
@Override
@ -200,13 +200,13 @@ public class SimplyAPI implements PermsConfig {
@Override
public void addMessage(String key, String message) {
plugin.config.addMessage(key, message);
refreshPermissions();
plugin.refreshConfig();
}
@Override
public void removeMessage(String key) {
plugin.config.removeMessage(key);
refreshPermissions();
plugin.refreshConfig();
}
@Override
@ -228,7 +228,7 @@ public class SimplyAPI implements PermsConfig {
@Override
public void setDebug(boolean debug) {
plugin.config.setDebug(debug);
refreshPermissions();
plugin.refreshConfig();
}
public void refreshPermissions() {

View File

@ -183,10 +183,8 @@ public class SimplyCommands implements CommandExecutor {
try {
manager.run();
plugin.refreshPermissions();
sender.sendMessage(ChatColor.GREEN + "Operation success !");
} catch (Exception e) {
plugin.reloadConfig();
sender.sendMessage(ChatColor.RED + "An error occurred ! Please check server log...");
e.printStackTrace();
}
@ -325,7 +323,7 @@ public class SimplyCommands implements CommandExecutor {
plugin.config.addPlayerGroup(player, group);
}
plugin.refreshPermissions();
plugin.refreshPlayerPermissions(player);
sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " is now in " + ChatColor.WHITE + split[3] + ChatColor.GREEN + ".");
return true;
@ -341,7 +339,7 @@ public class SimplyCommands implements CommandExecutor {
}
plugin.config.addPlayerGroup(player, group);
plugin.refreshPermissions();
plugin.refreshPlayerPermissions(player);
sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " is now in " + ChatColor.WHITE + group + ChatColor.GREEN + ".");
return true;
@ -357,7 +355,7 @@ public class SimplyCommands implements CommandExecutor {
}
plugin.config.removePlayerGroup(player, group);
plugin.refreshPermissions();
plugin.refreshPlayerPermissions(player);
sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " is no longer in " + ChatColor.WHITE + group + ChatColor.GREEN + ".");
return true;
@ -372,7 +370,7 @@ public class SimplyCommands implements CommandExecutor {
}
plugin.config.removePlayer(player);
plugin.refreshPermissions();
plugin.refreshPlayerPermissions(player);
sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " is no longer in config file.");
return true;
@ -390,7 +388,7 @@ public class SimplyCommands implements CommandExecutor {
}
plugin.config.addPlayerPermission(player, world, perm, value);
plugin.refreshPermissions();
plugin.refreshPlayerPermissions(player);
sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " now has " + ChatColor.WHITE + perm + ChatColor.GREEN + " = " + ChatColor.WHITE + value + ChatColor.GREEN + ".");
return true;
@ -412,7 +410,7 @@ public class SimplyCommands implements CommandExecutor {
return true;
}
plugin.config.removePlayerPermission(player, world, perm);
plugin.refreshPermissions();
plugin.refreshPlayerPermissions(player);
sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " no longer has " + ChatColor.WHITE + perm + ChatColor.GREEN + " set.");
return true;

View File

@ -145,20 +145,29 @@ public class SimplyPlugin extends JavaPlugin {
}
}
protected void refreshPermissions() {
protected void refreshConfig() {
try {
getConfig().save(configFile);
reloadConfig();
} catch (IOException e) {
getLogger().warning("Failed to write changed config.yml: " + e.getMessage());
}
for (String player : permissions.keySet()) {
PermissionAttachment attachment = permissions.get(player);
for (String key : attachment.getPermissions().keySet()) {
attachment.unsetPermission(key);
}
}
calculateAttachment(getServer().getPlayer(player));
protected void refreshPlayerPermissions(String player) {
refreshConfig();
if (getServer().getPlayer(player) == null) return;
PermissionAttachment attachment = permissions.get(getServer().getPlayer(player).getName());
for (String key : attachment.getPermissions().keySet()) {
attachment.unsetPermission(key);
}
calculateAttachment(getServer().getPlayer(player));
}
protected void refreshPermissions() {
refreshConfig();
for (String player : permissions.keySet()) {
refreshPlayerPermissions(player);
}
}

View File

@ -71,9 +71,11 @@ public abstract class SimplyPrevents implements Listener {
long current = System.currentTimeMillis();
if (next.longValue() < current) {
player.sendMessage(plugin.config.getMessage(node));
plugin.debug("Event '" + node + "' cancelled for " + player.getName());
throttleTimestamps.put(player, Long.valueOf(current + 3000));
if (!plugin.config.getMessage(node).isEmpty()) {
player.sendMessage(plugin.config.getMessage(node));
plugin.debug("Event '" + node + "' cancelled for " + player.getName());
throttleTimestamps.put(player, Long.valueOf(current + 3000));
}
}
}

View File

@ -125,7 +125,7 @@ public class ConfigFile implements PermsConfig {
String permNode = (!world.isEmpty()) ? "users/" + player + "/worlds/" + world : "users/" + player + "/permissions";
if (plugin.getNode(permNode) != null) {
for (Entry<String, Object> permPlayer : plugin.getNode(permNode).getValues(false).entrySet()) {
finalPerms.put(permPlayer.getKey(), (Boolean) permPlayer.getValue());
finalPerms.put(permPlayer.getKey(), Boolean.valueOf(permPlayer.getValue().toString()));
}
}
return finalPerms;
@ -214,7 +214,7 @@ public class ConfigFile implements PermsConfig {
String permNode = (!world.isEmpty()) ? "groups/" + group + "/worlds/" + world : "groups/" + group + "/permissions";
if (plugin.getNode(permNode) != null) {
for (Entry<String, Object> permGroup : plugin.getNode(permNode).getValues(false).entrySet()) {
finalPerms.put(permGroup.getKey(), (Boolean) permGroup.getValue());
finalPerms.put(permGroup.getKey(), Boolean.valueOf(permGroup.getValue().toString()));
}
}
return finalPerms;
@ -285,7 +285,7 @@ public class ConfigFile implements PermsConfig {
@Override
public String getMessage(String key) {
return plugin.getConfig().getString("messages/" + key, plugin.getConfig().getString("messages/all")).replace('&', '\u00A7');
return plugin.getConfig().getString("messages/" + key, plugin.getConfig().getString("messages/all", "")).replace('&', '\u00A7');
}
@Override

View File

@ -2,7 +2,7 @@ name: SimplyPerms
main: net.crystalyx.bukkit.simplyperms.SimplyPlugin
author: Xefir Destiny
website: http://dev.bukkit.org/server-mods/simplyperms/
version: 1.7.3
version: 1.7.6
dscription: When powerful plugin made Permissions easy !
softdepend: [ PermissionsBukkit ]
commands: