@Override public Set<PermissionAttachmentInfo> getEffectivePermissions() { final Map<String, Boolean> permissions = CloudServer.getInstance().getCloudPlayers().get(this.uniqueId).getPermissionEntity().getPermissions(); Set<PermissionAttachmentInfo> set = new HashSet<>(); for (Map.Entry<String, Boolean> entry : permissions.entrySet()) { PermissionAttachmentInfo permissionAttachmentInfo = new PermissionAttachmentInfo(this, entry.getKey(), null, entry.getValue()); set.add(permissionAttachmentInfo); } return set; }
@Override public boolean hasPermission(String inName) { if (inName.equalsIgnoreCase("bukkit.broadcast.user")) return true; CloudPlayer cloudPlayer = CloudServer.getInstance().getCloudPlayers().get(this.uniqueId); if (cloudPlayer != null) return cloudPlayer.getPermissionEntity().hasPermission(CloudAPI.getInstance().getPermissionPool(), inName, CloudAPI.getInstance().getGroup()); else return false; }
@Override public void onCall(PlayerInitEvent event) { if (event.getCloudPlayer().getPermissionEntity() == null) { event.getCloudPlayer().setPermissionEntity(PermissionModule.getInstance().getPermissionPool().getNewPermissionEntity(event.getCloudPlayer())); } Collection<GroupEntityData> groupEntiys = new LinkedList<>(); for (GroupEntityData groupEntityData : event.getCloudPlayer().getPermissionEntity().getGroups()) { if (!PermissionModule.getInstance().getPermissionPool().getGroups().containsKey(groupEntityData.getGroup()) || (System.currentTimeMillis() > groupEntityData.getTimeout() && groupEntityData.getTimeout() != -1 && groupEntityData.getTimeout() != 0)) { groupEntiys.add(groupEntityData); } } for (GroupEntityData groupEntityData : groupEntiys) event.getCloudPlayer().getPermissionEntity().getGroups().remove(groupEntityData); if (event.getCloudPlayer().getPermissionEntity().getGroups().size() == 0) { event.getCloudPlayer().getPermissionEntity().getGroups().add(new GroupEntityData(PermissionModule.getInstance().getPermissionPool().getDefaultGroup().getName(), 0L)); } } }
public void updateNameTags(Player player, Function<Player, PermissionGroup> playerPermissionGroupFunction, Function<Player, PermissionGroup> allOtherPlayerPermissionGroupFunction) { if (CloudAPI.getInstance().getPermissionPool() == null || !CloudAPI.getInstance().getPermissionPool().isAvailable()) return; PermissionGroup playerPermissionGroup = playerPermissionGroupFunction != null ? playerPermissionGroupFunction.apply(player) : null; if (playerPermissionGroup == null) playerPermissionGroup = getCloudPlayers().get(player.getUniqueId()) .getPermissionEntity().getHighestPermissionGroup(CloudAPI.getInstance().getPermissionPool()); initScoreboard(player); for (Player all : player.getServer().getOnlinePlayers()) { initScoreboard(all); if (playerPermissionGroup != null) addTeamEntry(player, all, playerPermissionGroup); PermissionGroup targetPermissionGroup = allOtherPlayerPermissionGroupFunction != null ? allOtherPlayerPermissionGroupFunction.apply(all) : null; if (targetPermissionGroup == null) targetPermissionGroup = getCachedPlayer(all.getUniqueId()) .getPermissionEntity().getHighestPermissionGroup(CloudAPI.getInstance().getPermissionPool()); if (targetPermissionGroup != null) addTeamEntry(all, player, targetPermissionGroup); } }
@EventHandler public void handle(AsyncPlayerChatEvent e) { PermissionGroup permissionGroup = permissionService ? CloudServer.getInstance() .getCachedPlayer(e.getPlayer().getUniqueId()).getPermissionEntity().getHighestPermissionGroup(CloudAPI.getInstance().getPermissionPool()) : null; if (permissionGroup == null) { return; } e.setFormat( ChatColor.translateAlternateColorCodes('&', ChatPlugin.getPlugin(ChatPlugin.class).getConfig().getString("format") .replace("%display%", ChatColor.translateAlternateColorCodes('&', permissionGroup.getDisplay())) .replace("%prefix%", ChatColor.translateAlternateColorCodes('&', permissionGroup.getPrefix())) .replace("%suffix%", ChatColor.translateAlternateColorCodes('&', permissionGroup.getSuffix())) .replace("%group%", permissionGroup.getName()) .replace("%player%", e.getPlayer().getName()) .replace("%message%", e.getPlayer().hasPermission("cloudnet.chat.color") ? ChatColor.translateAlternateColorCodes('&', e.getMessage().replace("%", "%%")) : ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&', e.getMessage().replace("%", "%%")))) )); } }
@EventHandler public void handlePermissionCheck(PermissionCheckEvent e) { if (CloudAPI.getInstance().getPermissionPool() == null || !CloudAPI.getInstance().getPermissionPool().isAvailable()) return; if (e.getSender() instanceof ProxiedPlayer) { if (CloudProxy.getInstance().getCloudPlayers().containsKey(((ProxiedPlayer) e.getSender()).getUniqueId())) e.setHasPermission(CloudProxy.getInstance().getCloudPlayers().get(((ProxiedPlayer) e.getSender()).getUniqueId()) .getPermissionEntity().hasPermission(CloudAPI.getInstance().getPermissionPool(), e.getPermission(), CloudAPI.getInstance().getGroup())); } else if (e.getSender() instanceof CloudPlayerCommandSender) { e.setHasPermission(((CloudPlayerCommandSender) e.getSender()).getCloudPlayer() .getPermissionEntity().hasPermission(CloudAPI.getInstance().getPermissionPool(), e.getPermission(), CloudAPI.getInstance().getGroup())); } }
int joinPower = CloudAPI.getInstance().getServerGroupData(CloudAPI.getInstance().getGroup()).getJoinPower(); boolean acceptLogin = false; for (GroupEntityData entityData : cloudPlayer.getPermissionEntity().getGroups())