Compare commits

...

17 Commits

8 changed files with 73 additions and 22 deletions

View File

@ -16,46 +16,61 @@ public class SimplyAPI implements PermsConfig {
@Override
public void removePlayer(String player) {
plugin.config.removePlayer(player);
plugin.refreshPlayerPermissions(player);
}
@Override
public void removePlayerGroups(String player) {
plugin.config.removePlayerGroups(player);
plugin.refreshPlayerPermissions(player);
}
@Override
public void removePlayerGroup(String player, String group) {
plugin.config.removePlayerGroup(player, group);
plugin.refreshPlayerPermissions(player);
}
@Override
public void setPlayerGroup(String player, String group) {
plugin.config.setPlayerGroup(player, group);
plugin.refreshPlayerPermissions(player);
}
@Override
public void addPlayerGroup(String player, String group) {
plugin.config.addPlayerGroup(player, group);
plugin.refreshPlayerPermissions(player);
}
@Override
public void addPlayerPermission(String player, String permission, boolean value) {
plugin.config.addPlayerPermission(player, permission, value);
plugin.refreshPlayerPermissions(player);
}
@Override
public void addPlayerPermission(String player, String world, String permission, boolean value) {
plugin.config.addPlayerPermission(player, world, permission, value);
plugin.refreshPlayerPermissions(player);
}
@Override
public void removePlayerPermissions(String player) {
plugin.config.removePlayerPermissions(player);
plugin.refreshPlayerPermissions(player);
}
@Override
public void removePlayerPermission(String player, String permission) {
plugin.config.removePlayerPermission(player, permission);
plugin.refreshPlayerPermissions(player);
}
@Override
public void removePlayerPermission(String player, String world, String permission) {
plugin.config.removePlayerPermission(player, world, permission);
plugin.refreshPlayerPermissions(player);
}
@Override
@ -111,16 +126,19 @@ public class SimplyAPI implements PermsConfig {
@Override
public void addGroupInheritance(String group, String inherit) {
plugin.config.addGroupInheritance(group, inherit);
refreshPermissions();
}
@Override
public void removeGroupInheritance(String group, String inherit) {
plugin.config.removeGroupInheritance(group, inherit);
refreshPermissions();
}
@Override
public void removeGroupInheritances(String group) {
plugin.config.removeGroupInheritances(group);
refreshPermissions();
}
@Override
@ -136,31 +154,37 @@ public class SimplyAPI implements PermsConfig {
@Override
public void addGroupPermission(String group, String world, String permission, boolean value) {
plugin.config.addGroupPermission(group, world, permission, value);
refreshPermissions();
}
@Override
public void addGroupPermission(String group, String permission, boolean value) {
plugin.config.addGroupPermission(group, permission, value);
refreshPermissions();
}
@Override
public void removeGroupPermission(String group, String world, String permission) {
plugin.config.removeGroupPermission(group, world, permission);
refreshPermissions();
}
@Override
public void removeGroupPermission(String group, String permission) {
plugin.config.removeGroupPermission(group, permission);
refreshPermissions();
}
@Override
public void removeGroupPermissions(String group) {
plugin.config.removeGroupPermissions(group);
refreshPermissions();
}
@Override
public void removeGroup(String group) {
plugin.config.removeGroup(group);
refreshPermissions();
}
@Override
@ -176,11 +200,13 @@ public class SimplyAPI implements PermsConfig {
@Override
public void addMessage(String key, String message) {
plugin.config.addMessage(key, message);
plugin.refreshConfig();
}
@Override
public void removeMessage(String key) {
plugin.config.removeMessage(key);
plugin.refreshConfig();
}
@Override
@ -191,6 +217,7 @@ public class SimplyAPI implements PermsConfig {
@Override
public void setDefaultGroup(String group) {
plugin.config.setDefaultGroup(group);
refreshPermissions();
}
@Override
@ -201,6 +228,7 @@ public class SimplyAPI implements PermsConfig {
@Override
public void setDebug(boolean debug) {
plugin.config.setDebug(debug);
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

@ -36,6 +36,12 @@ public class ConfigFile implements PermsConfig {
plugin.getConfig().set("users/" + player + "/groups", (groups.isEmpty()) ? null : groups);
}
@Override
public void setPlayerGroup(String player, String group) {
removePlayerGroups(player);
addPlayerGroup(player, group);
}
@Override
public void addPlayerGroup(String player, String group) {
player = player.toLowerCase();
@ -119,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;
@ -208,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;
@ -279,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

@ -113,6 +113,12 @@ public class ConfigSQL implements PermsConfig {
}
}
@Override
public void setPlayerGroup(String player, String group) {
removePlayerGroups(player);
addPlayerGroup(player, group);
}
private void addPlayerGroup(String player, String group, boolean first) {
if (init()) {
try {

View File

@ -11,6 +11,8 @@ public interface PermsConfig {
public void removePlayerGroup(String player, String group);
public void setPlayerGroup(String player, String group);
public void addPlayerGroup(String player, String group);
public void addPlayerPermission(String player, String permission, boolean value);

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.2
version: 1.7.6
dscription: When powerful plugin made Permissions easy !
softdepend: [ PermissionsBukkit ]
commands: