mirror of
https://github.com/EssentialsX/Essentials.git
synced 2024-12-23 17:47:34 +01:00
- Push updates to superperms for all valid GM commands.
This commit is contained in:
parent
8d266a3440
commit
d3f6e82474
@ -9,5 +9,5 @@ v 1.1:
|
||||
- Fix for Users.yml containing only 'users:' causing a crash.
|
||||
- GroupManager will now generate a fresh Users and Groups yml if either file is empty.
|
||||
- Fix for an infinite loop bug with the new Bukkit Perms during a new user creation.
|
||||
v 1.2:
|
||||
- Fixed BukkitPerms population. Wasn't correctly setting superperms.
|
||||
- Fixed BukkitPerms population. Wasn't correctly setting superperms.
|
||||
- Push updates to superperms for all valid GM commands.
|
@ -208,7 +208,7 @@ public class GroupManager extends JavaPlugin {
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
|
||||
boolean playerCanDo = false;
|
||||
boolean isConsole = false;
|
||||
Player senderPlayer = null;
|
||||
Player senderPlayer = null, targetPlayer = null;
|
||||
Group senderGroup = null;
|
||||
User senderUser = null;
|
||||
|
||||
@ -340,6 +340,9 @@ public class GroupManager extends JavaPlugin {
|
||||
//PARECE OK
|
||||
auxUser.setGroup(auxGroup);
|
||||
sender.sendMessage(ChatColor.YELLOW + "You changed player '" + auxUser.getName() + "' group to '" + auxGroup.getName() + "'.");
|
||||
|
||||
targetPlayer = this.getServer().getPlayer(auxUser.getName());
|
||||
if (targetPlayer != null) BukkitPermissions.updatePermissions(targetPlayer);
|
||||
|
||||
return true;
|
||||
//break;
|
||||
@ -374,6 +377,9 @@ public class GroupManager extends JavaPlugin {
|
||||
//PARECE OK
|
||||
dataHolder.removeUser(auxUser.getName());
|
||||
sender.sendMessage(ChatColor.YELLOW + "You changed player '" + auxUser.getName() + "' to default settings.");
|
||||
|
||||
targetPlayer = this.getServer().getPlayer(auxUser.getName());
|
||||
if (targetPlayer != null) BukkitPermissions.updatePermissions(targetPlayer);
|
||||
|
||||
return true;
|
||||
case manuaddsub:
|
||||
@ -416,6 +422,9 @@ public class GroupManager extends JavaPlugin {
|
||||
auxUser.addSubGroup(auxGroup);
|
||||
sender.sendMessage(ChatColor.YELLOW + "You changed player '" + auxUser.getName() + "' group to '" + auxGroup.getName() + "'.");
|
||||
|
||||
targetPlayer = this.getServer().getPlayer(auxUser.getName());
|
||||
if (targetPlayer != null) BukkitPermissions.updatePermissions(targetPlayer);
|
||||
|
||||
return true;
|
||||
case manudelsub:
|
||||
//VALIDANDO ESTADO DO SENDER
|
||||
@ -449,6 +458,9 @@ public class GroupManager extends JavaPlugin {
|
||||
auxUser.removeSubGroup(auxGroup);
|
||||
sender.sendMessage(ChatColor.YELLOW + "You removed subgroup '" + auxGroup.getName() + "' from player '" + auxUser.getName() + "' list.");
|
||||
|
||||
targetPlayer = this.getServer().getPlayer(auxUser.getName());
|
||||
if (targetPlayer != null) BukkitPermissions.updatePermissions(targetPlayer);
|
||||
|
||||
return true;
|
||||
case mangadd:
|
||||
//VALIDANDO ESTADO DO SENDER
|
||||
@ -491,6 +503,8 @@ public class GroupManager extends JavaPlugin {
|
||||
dataHolder.removeGroup(auxGroup.getName());
|
||||
sender.sendMessage(ChatColor.YELLOW + "You deleted a group named " + auxGroup.getName() + ", it's users are default group now.");
|
||||
|
||||
BukkitPermissions.updateAllPlayers();
|
||||
|
||||
return true;
|
||||
case manuaddp:
|
||||
//VALIDANDO ESTADO DO SENDER
|
||||
@ -554,6 +568,10 @@ public class GroupManager extends JavaPlugin {
|
||||
//PARECE OK
|
||||
auxUser.addPermission(args[1]);
|
||||
sender.sendMessage(ChatColor.YELLOW + "You added '" + args[1] + "' to player '" + auxUser.getName() + "' permissions.");
|
||||
|
||||
targetPlayer = this.getServer().getPlayer(auxUser.getName());
|
||||
if (targetPlayer != null) BukkitPermissions.updatePermissions(targetPlayer);
|
||||
|
||||
return true;
|
||||
//break;
|
||||
case manudelp:
|
||||
@ -604,6 +622,9 @@ public class GroupManager extends JavaPlugin {
|
||||
//PARECE OK
|
||||
auxUser.removePermission(args[1]);
|
||||
sender.sendMessage(ChatColor.YELLOW + "You removed '" + args[1] + "' from player '" + auxUser.getName() + "' permissions.");
|
||||
|
||||
targetPlayer = this.getServer().getPlayer(auxUser.getName());
|
||||
if (targetPlayer != null) BukkitPermissions.updatePermissions(targetPlayer);
|
||||
|
||||
return true;
|
||||
//break;
|
||||
@ -759,6 +780,8 @@ public class GroupManager extends JavaPlugin {
|
||||
//PARECE OK
|
||||
auxGroup.addPermission(args[1]);
|
||||
sender.sendMessage(ChatColor.YELLOW + "You added '" + args[1] + "' to group '" + auxGroup.getName() + "' permissions.");
|
||||
|
||||
BukkitPermissions.updateAllPlayers();
|
||||
|
||||
return true;
|
||||
case mangdelp:
|
||||
@ -799,6 +822,8 @@ public class GroupManager extends JavaPlugin {
|
||||
auxGroup.removePermission(args[1]);
|
||||
sender.sendMessage(ChatColor.YELLOW + "You removed '" + args[1] + "' from group '" + auxGroup.getName() + "' permissions.");
|
||||
|
||||
BukkitPermissions.updateAllPlayers();
|
||||
|
||||
return true;
|
||||
case manglistp:
|
||||
//VALIDANDO ESTADO DO SENDER
|
||||
@ -912,6 +937,8 @@ public class GroupManager extends JavaPlugin {
|
||||
auxGroup.addInherits(auxGroup2);
|
||||
sender.sendMessage(ChatColor.RED + "Group " + auxGroup2.getName() + " is now in " + auxGroup.getName() + " inheritance list.");
|
||||
|
||||
BukkitPermissions.updateAllPlayers();
|
||||
|
||||
return true;
|
||||
case mangdeli:
|
||||
//VALIDANDO ESTADO DO SENDER
|
||||
@ -947,6 +974,8 @@ public class GroupManager extends JavaPlugin {
|
||||
auxGroup.removeInherits(auxGroup2.getName());
|
||||
sender.sendMessage(ChatColor.RED + "Group " + auxGroup2.getName() + " was removed from " + auxGroup.getName() + " inheritance list.");
|
||||
|
||||
BukkitPermissions.updateAllPlayers();
|
||||
|
||||
return true;
|
||||
case manuaddv:
|
||||
//VALIDANDO ESTADO DO SENDER
|
||||
@ -1394,6 +1423,9 @@ public class GroupManager extends JavaPlugin {
|
||||
}
|
||||
worldsHolder.loadWorld(auxString);
|
||||
sender.sendMessage("The request to world '" + auxString + "' was sent.");
|
||||
|
||||
BukkitPermissions.updateAllPlayers();
|
||||
|
||||
return true;
|
||||
}
|
||||
//VALIDANDO ESTADO DO SENDER
|
||||
@ -1418,6 +1450,9 @@ public class GroupManager extends JavaPlugin {
|
||||
sender.sendMessage(ChatColor.YELLOW + " The current world was reloaded.");
|
||||
}
|
||||
worldsHolder.mirrorSetUp();
|
||||
|
||||
BukkitPermissions.updateAllPlayers();
|
||||
|
||||
return true;
|
||||
case listgroups:
|
||||
//VALIDANDO ESTADO DO SENDER
|
||||
@ -1487,6 +1522,9 @@ public class GroupManager extends JavaPlugin {
|
||||
//PARECE OK
|
||||
auxUser.setGroup(auxGroup);
|
||||
sender.sendMessage(ChatColor.YELLOW + "You changed " + auxUser.getName() + " group to " + auxGroup.getName() + ".");
|
||||
|
||||
targetPlayer = this.getServer().getPlayer(auxUser.getName());
|
||||
if (targetPlayer != null) BukkitPermissions.updatePermissions(targetPlayer);
|
||||
|
||||
return true;
|
||||
//break;
|
||||
@ -1542,6 +1580,9 @@ public class GroupManager extends JavaPlugin {
|
||||
//PARECE OK
|
||||
auxUser.setGroup(auxGroup);
|
||||
sender.sendMessage(ChatColor.YELLOW + "You changed " + auxUser.getName() + " group to " + auxGroup.getName() + ".");
|
||||
|
||||
targetPlayer = this.getServer().getPlayer(auxUser.getName());
|
||||
if (targetPlayer != null) BukkitPermissions.updatePermissions(targetPlayer);
|
||||
|
||||
return true;
|
||||
//break;
|
||||
|
@ -18,12 +18,13 @@ package org.anjocaido.groupmanager.permissions;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.anjocaido.groupmanager.GroupManager;
|
||||
import org.anjocaido.groupmanager.data.User;
|
||||
import org.anjocaido.groupmanager.dataholder.OverloadedWorldHolder;
|
||||
import org.anjocaido.groupmanager.utils.PermissionCheckResult;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
@ -40,6 +41,7 @@ import org.bukkit.event.server.PluginEnableEvent;
|
||||
import org.bukkit.event.server.ServerListener;
|
||||
import org.bukkit.permissions.Permission;
|
||||
import org.bukkit.permissions.PermissionAttachment;
|
||||
import org.bukkit.permissions.PermissionAttachmentInfo;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
|
||||
@ -114,9 +116,10 @@ public class BukkitPermissions {
|
||||
}
|
||||
|
||||
PermissionAttachment attachment = this.attachments.get(player);
|
||||
|
||||
OverloadedWorldHolder worldData = GroupManager.getWorldsHolder().getWorldData(world);
|
||||
|
||||
User user = GroupManager.getWorldsHolder().getWorldData(world).getUser(player.getName());
|
||||
List<String> permissions = user.getGroup().getPermissionList();
|
||||
User user = worldData.getUser(player.getName());
|
||||
|
||||
// clear permissions
|
||||
for (String permission : attachment.getPermissions().keySet()) {
|
||||
@ -125,24 +128,19 @@ public class BukkitPermissions {
|
||||
|
||||
// find matching permissions
|
||||
for (Permission permission : registeredPermissions) {
|
||||
boolean permissionValue = user.getGroup().hasSamePermissionNode(permission.getName());
|
||||
attachment.setPermission(permission, permissionValue);
|
||||
PermissionCheckResult permissionResult = worldData.getPermissionsHandler().checkFullUserPermission(user, permission.getName());
|
||||
Boolean value = false;
|
||||
if (permissionResult.resultType.equals(PermissionCheckResult.Type.NEGATION)) {
|
||||
value = false;
|
||||
} else if (permissionResult.resultType.equals(PermissionCheckResult.Type.FOUND))
|
||||
value = true;
|
||||
|
||||
|
||||
attachment.setPermission(permission, value);
|
||||
}
|
||||
|
||||
// all permissions
|
||||
for (String permission : permissions) {
|
||||
Boolean value = true;
|
||||
if (permission.startsWith("-")) {
|
||||
permission = permission.substring(1); // cut off -
|
||||
value = false;
|
||||
}
|
||||
|
||||
if (!attachment.getPermissions().containsKey(permission)) {
|
||||
attachment.setPermission(permission, value);
|
||||
}
|
||||
}
|
||||
|
||||
player.recalculatePermissions();
|
||||
|
||||
/*
|
||||
// List perms for this player
|
||||
GroupManager.logger.info("Attachment Permissions:");
|
||||
|
Loading…
Reference in New Issue
Block a user