mirror of
https://github.com/EssentialsX/Essentials.git
synced 2024-10-29 23:09:38 +01:00
Merge remote branch 'remotes/ess/groupmanager' into essmaster
This commit is contained in:
commit
d732821e06
@ -40,3 +40,9 @@ v 1.3:
|
||||
- Fixed manudelsub not correctly selecting the group to remove.
|
||||
- Added two new permission nodes - groupmanager.notify.self & groupmanager.notify.other
|
||||
These allow players/admins to be notified when players are moved between groups.
|
||||
v 1.4:
|
||||
- Updated for Bukkits new YamlConfiguration.
|
||||
- Cleared remaining Cast errors cause by object cloning.
|
||||
- Removed extra notification messages for the player issuing the group move command.
|
||||
- Added a config setting - bukkit_perms_override: false
|
||||
Enable to allow default Bukkit based permissions to remain enabled, unless directly negated within GroupManager.
|
@ -2,6 +2,9 @@ settings:
|
||||
config:
|
||||
# With this enabled anyone set as op has full permissions when managing GroupManager
|
||||
opOverrides: true
|
||||
# If enabled any bukkit permissiosn which default to true will be left enabled.
|
||||
# If the player is op any permissions set to Op will follow suit.
|
||||
bukkit_perms_override: false
|
||||
data:
|
||||
save:
|
||||
# How often GroupManager will save it's data back to groups and users.yml
|
||||
|
@ -10,7 +10,7 @@ import java.util.Map;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.anjocaido.groupmanager.utils.Tasks;
|
||||
import org.bukkit.util.config.Configuration;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
|
||||
/**
|
||||
*
|
||||
@ -20,7 +20,7 @@ public class GMConfiguration {
|
||||
|
||||
private GroupManager plugin;
|
||||
private File configFile;
|
||||
private Configuration GMconfig;
|
||||
private YamlConfiguration GMconfig;
|
||||
|
||||
public GMConfiguration(GroupManager plugin) {
|
||||
this.plugin = plugin;
|
||||
@ -41,10 +41,10 @@ public class GMConfiguration {
|
||||
}
|
||||
}
|
||||
|
||||
GMconfig = new Configuration(configFile);
|
||||
GMconfig = new YamlConfiguration();
|
||||
|
||||
try {
|
||||
GMconfig.load();
|
||||
GMconfig.load(configFile);
|
||||
} catch (Exception ex) {
|
||||
throw new IllegalArgumentException("The following file couldn't pass on Parser.\n" + configFile.getPath(), ex);
|
||||
}
|
||||
@ -52,12 +52,15 @@ public class GMConfiguration {
|
||||
}
|
||||
|
||||
public boolean isOpOverride() {
|
||||
return GMconfig.getBoolean("settings.config.bukkit_perms_override", true);
|
||||
}
|
||||
public boolean isBukkitPermsOverride() {
|
||||
return GMconfig.getBoolean("settings.config.opOverrides", true);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public Map<String, Object> getMirrorsMap() {
|
||||
return (Map<String, Object>) GMconfig.getProperty("settings.permission.world.mirror");
|
||||
return (Map<String, Object>) GMconfig.getList("settings.permission.world.mirror");
|
||||
}
|
||||
|
||||
public Integer getSaveInterval() {
|
||||
|
@ -57,7 +57,7 @@ public class GroupManager extends JavaPlugin {
|
||||
private boolean validateOnlinePlayer = true;
|
||||
private boolean isReady = false;
|
||||
private static boolean isLoaded = false;
|
||||
private GMConfiguration config;
|
||||
protected GMConfiguration config;
|
||||
private GMLoggerHandler ch;
|
||||
public static BukkitPermissions BukkitPermissions;
|
||||
private static WorldListener WorldEvents;
|
||||
@ -369,6 +369,7 @@ public class GroupManager extends JavaPlugin {
|
||||
|
||||
//PARECE OK
|
||||
auxUser.setGroup(auxGroup);
|
||||
if (!sender.hasPermission("groupmanager.notify.other"))
|
||||
sender.sendMessage(ChatColor.YELLOW + "You changed player '" + auxUser.getName() + "' group to '" + auxGroup.getName() + "'.");
|
||||
|
||||
targetPlayer = this.getServer().getPlayer(auxUser.getName());
|
||||
@ -1590,6 +1591,7 @@ public class GroupManager extends JavaPlugin {
|
||||
}
|
||||
//PARECE OK
|
||||
auxUser.setGroup(auxGroup);
|
||||
if (!sender.hasPermission("groupmanager.notify.other"))
|
||||
sender.sendMessage(ChatColor.YELLOW + "You changed " + auxUser.getName() + " group to " + auxGroup.getName() + ".");
|
||||
|
||||
targetPlayer = this.getServer().getPlayer(auxUser.getName());
|
||||
@ -1648,6 +1650,7 @@ public class GroupManager extends JavaPlugin {
|
||||
}
|
||||
//PARECE OK
|
||||
auxUser.setGroup(auxGroup);
|
||||
if (!sender.hasPermission("groupmanager.notify.other"))
|
||||
sender.sendMessage(ChatColor.YELLOW + "You changed " + auxUser.getName() + " group to " + auxGroup.getName() + ".");
|
||||
|
||||
targetPlayer = this.getServer().getPlayer(auxUser.getName());
|
||||
@ -1770,10 +1773,10 @@ public class GroupManager extends JavaPlugin {
|
||||
for(Player test: Bukkit.getServer().getOnlinePlayers()) {
|
||||
if (!test.equals(player)){
|
||||
if (test.hasPermission("groupmanager.notify.other"))
|
||||
test.sendMessage(ChatColor.YELLOW + name +" was " + msg);
|
||||
test.sendMessage(ChatColor.YELLOW + name +" was" + msg);
|
||||
} else
|
||||
if ((player != null) && ((player.hasPermission("groupmanager.notify.self")) || (player.hasPermission("groupmanager.notify.other"))))
|
||||
player.sendMessage(ChatColor.YELLOW + "You we're " + msg);
|
||||
player.sendMessage(ChatColor.YELLOW + "You were" + msg);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -102,7 +102,7 @@ public abstract class DataUnit {
|
||||
* @return a copy of the permission list
|
||||
*/
|
||||
public ArrayList<String> getPermissionList() {
|
||||
return (ArrayList<String>) permissions.clone();
|
||||
return new ArrayList<String>(permissions);
|
||||
}
|
||||
|
||||
public void sortPermissions() {
|
||||
|
@ -41,7 +41,7 @@ public class Group extends DataUnit implements Cloneable {
|
||||
@Override
|
||||
public Group clone() {
|
||||
Group clone = new Group(getDataSource(), this.getName());
|
||||
clone.inherits = ((ArrayList<String>) this.getInherits().clone());
|
||||
clone.inherits = new ArrayList<String>(this.getInherits());
|
||||
for (String perm : this.getPermissionList()) {
|
||||
clone.addPermission(perm);
|
||||
}
|
||||
@ -60,7 +60,7 @@ public class Group extends DataUnit implements Cloneable {
|
||||
return null;
|
||||
}
|
||||
Group clone = getDataSource().createGroup(this.getName());
|
||||
clone.inherits = ((ArrayList<String>) this.getInherits().clone());
|
||||
clone.inherits = new ArrayList<String>(this.getInherits());
|
||||
for (String perm : this.getPermissionList()) {
|
||||
clone.addPermission(perm);
|
||||
}
|
||||
@ -76,7 +76,7 @@ public class Group extends DataUnit implements Cloneable {
|
||||
* @return the inherits
|
||||
*/
|
||||
public ArrayList<String> getInherits() {
|
||||
return (ArrayList<String>) inherits.clone();
|
||||
return new ArrayList<String>(inherits);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -183,7 +183,7 @@ public class User extends DataUnit implements Cloneable {
|
||||
}
|
||||
|
||||
public ArrayList<String> subGroupListStringCopy() {
|
||||
return (ArrayList<String>) subGroups.clone();
|
||||
return new ArrayList<String>(subGroups);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -43,6 +43,7 @@ import org.bukkit.event.server.ServerListener;
|
||||
import org.bukkit.permissions.Permission;
|
||||
import org.bukkit.permissions.PermissionAttachment;
|
||||
import org.bukkit.permissions.PermissionAttachmentInfo;
|
||||
import org.bukkit.permissions.PermissionDefault;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
|
||||
@ -125,14 +126,30 @@ public class BukkitPermissions {
|
||||
User user = worldData.getUser(player.getName());
|
||||
|
||||
// clear permissions
|
||||
for (String permission : attachment.getPermissions().keySet()) {
|
||||
for (String permission : attachment.getPermissions().keySet())
|
||||
attachment.unsetPermission(permission);
|
||||
}
|
||||
|
||||
// find matching permissions
|
||||
/*
|
||||
* find matching permissions
|
||||
*
|
||||
* and base bukkit perms if we are set to allow bukkit permissions to override.
|
||||
*/
|
||||
Boolean value;
|
||||
for (Permission permission : registeredPermissions) {
|
||||
|
||||
value = worldData.getPermissionsHandler().checkUserPermission(user, permission.getName());
|
||||
|
||||
// Only check bukkit override IF we don't have the permission directly.
|
||||
if (value = false) {
|
||||
PermissionDefault permDefault = permission.getDefault();
|
||||
|
||||
if ((plugin.getGMConfig().isBukkitPermsOverride())
|
||||
&& ((permDefault == PermissionDefault.TRUE)
|
||||
|| ((permDefault == PermissionDefault.NOT_OP) && !player.isOp())
|
||||
|| ((permDefault == PermissionDefault.OP) && player.isOp())))
|
||||
value = true;
|
||||
}
|
||||
|
||||
if (value == true)
|
||||
attachment.setPermission(permission, value);
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
name: GroupManager
|
||||
version: "1.3 (Phoenix)"
|
||||
version: "1.4 (Phoenix)"
|
||||
main: org.anjocaido.groupmanager.GroupManager
|
||||
website: http://www.anjocaido.info/
|
||||
description: Provides on-the-fly system for permissions system created by Nijikokun. But all in memory, and with flat-file saving schedule.
|
||||
|
Loading…
Reference in New Issue
Block a user