@Override public String[] getPlayerGroups(String s, String s1) { PermissionEntity permissionEntity = getPlayer(s1).getPermissionEntity(); String[] data = new String[permissionEntity.getGroups().size()]; short i = 0; for (GroupEntityData groupEntityData : permissionEntity.getGroups()) { data[i++] = groupEntityData.getGroup(); } return data; }
/** * Gets the timeout of the player in their highest permission group. * * @param offlinePlayer the player to get the timeout for * @return The timeout of the player in their highest permission group * or -1 if it´s lifetime. * @see GroupEntityData */ public static long getPlayerGroupRemainingTime(OfflinePlayer offlinePlayer) { return offlinePlayer.getPermissionEntity().getGroups().stream() .filter(e -> e.getGroup().equals(getGroupName(offlinePlayer))) .findFirst() .map(GroupEntityData::getTimeout) .orElse(-1L); }
/** * Removes the given permission group by name from the given player. * * @param groupName the name of the permission group to remove * @param offlinePlayer the player to remove the permission group from * @see PermissionGroup */ public static void removePlayerGroup(String groupName, OfflinePlayer offlinePlayer) { PermissionPool permissionPool = CloudAPI.getInstance().getPermissionPool(); offlinePlayer.getPermissionEntity().getGroups().stream() .filter(e -> e.getGroup().equals(groupName)) .forEach(e -> offlinePlayer.getPermissionEntity().getGroups().remove(e)); if (offlinePlayer.getPermissionEntity().getGroups().size() == 0) { offlinePlayer.getPermissionEntity().getGroups().add(new GroupEntityData(permissionPool.getDefaultGroup().getName(), 0)); } updatePlayer(offlinePlayer); }
@Override public boolean playerRemoveGroup(String s, String s1, String s2) { OfflinePlayer offlinePlayer = getPlayer(s1); PermissionEntity permissionEntity = offlinePlayer.getPermissionEntity(); GroupEntityData groupEntityData = CollectionWrapper.filter(permissionEntity.getGroups(), new Acceptable<GroupEntityData>() { @Override public boolean isAccepted(GroupEntityData groupEntityData) { return groupEntityData.getGroup().equalsIgnoreCase(s2); } }); if (groupEntityData != null) permissionEntity.getGroups().remove(groupEntityData); offlinePlayer.setPermissionEntity(permissionEntity); updatePlayer(offlinePlayer); return true; }
/** * Gets a string representation of the permission groups of the given player. * * @param offlinePlayer the player to get the groups as a string for * @return Player Groups of the given player as String or null if the player doesn't exists */ public static String getPlayerGroups(OfflinePlayer offlinePlayer) { if (offlinePlayer != null && offlinePlayer.getPermissionEntity() != null) { StringBuilder stringBuilder = new StringBuilder(); for (GroupEntityData groupEntityData : offlinePlayer.getPermissionEntity().getGroups()) { stringBuilder .append(groupEntityData.getGroup()) .append("@").append(groupEntityData.getTimeout() == 0 || groupEntityData.getTimeout() == -1 ? "LIFETIME" : simpleDateFormat.format(groupEntityData.getTimeout())) .append(Character.LINE_SEPARATOR); } return stringBuilder.toString(); } return null; }
/** * Sets permission group for the given player. * * @param offlinePlayer the player to set the permission groups for * @param groupName the group name of the group to add * @param time the time after which the group will be removed * @see GroupEntityData */ public static void setPlayerGroup(OfflinePlayer offlinePlayer, String groupName, long time) { PermissionPool permissionPool = CloudAPI.getInstance().getPermissionPool(); if (permissionPool.getGroups().containsKey(groupName)) { offlinePlayer.getPermissionEntity().getGroups().clear(); offlinePlayer.getPermissionEntity().getGroups().add(new GroupEntityData(groupName, (time == -1 ? 0 : time))); updatePlayer(offlinePlayer); } }
@Override public boolean playerAddGroup(String s, String s1, String s2) { OfflinePlayer offlinePlayer = getPlayer(s1); PermissionEntity permissionEntity = offlinePlayer.getPermissionEntity(); GroupEntityData groupEntityData = CollectionWrapper.filter(permissionEntity.getGroups(), new Acceptable<GroupEntityData>() { @Override public boolean isAccepted(GroupEntityData groupEntityData) { return groupEntityData.getGroup().equalsIgnoreCase(s2); } }); if (groupEntityData != null) { permissionEntity.getGroups().remove(groupEntityData); groupEntityData = new GroupEntityData(groupEntityData.getGroup(), 0); } else { groupEntityData = new GroupEntityData(groupEntityData.getGroup(), 0); } permissionEntity.getGroups().add(groupEntityData); offlinePlayer.setPermissionEntity(permissionEntity); updatePlayer(offlinePlayer); return true; }
/** * Adds the given permission group by name to the player. * * @param player the player to add the permission group to. * @param groupName the group to add to the player * @param time the time after which the group will be removed * @see GroupEntityData */ public static void addPlayerGroup(OfflinePlayer player, String groupName, long time) { PermissionPool permissionPool = CloudAPI.getInstance().getPermissionPool(); if (permissionPool.getGroups().containsKey(groupName)) { player.getPermissionEntity().getGroups().add(new GroupEntityData(groupName, (time == -1 ? 0 : time))); updatePlayer(player); } }
public PermissionGroup getHighestPermissionGroup(PermissionPool permissionPool) { PermissionGroup permissionGroup = null; for (GroupEntityData groupEntityData : getGroups()) { if (permissionGroup == null) permissionGroup = permissionPool.getGroups().get(groupEntityData.getGroup()); else { if (permissionGroup.getJoinPower() < permissionPool.getGroups().get(groupEntityData.getGroup()).getJoinPower()) { permissionGroup = permissionPool.getGroups().get(groupEntityData.getGroup()); } } } return permissionGroup; }
@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)); } } }
for (GroupEntityData groupEntityData : offlinePlayer.getPermissionEntity().getGroups()) for (GroupEntityData groupEntity : offlinePlayer.getPermissionEntity().getGroups()) offlinePlayer.getPermissionEntity().getGroups().remove(groupEntityData); if (offlinePlayer.getPermissionEntity().getGroups().size() == 0) offlinePlayer.getPermissionEntity().getGroups().add(new GroupEntityData(permissionPool.getDefaultGroup().getName(), 0)); offlinePlayer.getPermissionEntity().getGroups().clear(); offlinePlayer.getPermissionEntity().getGroups() .add(new GroupEntityData(args[4], (args[5].equalsIgnoreCase("lifetime") ? 0L : NetworkUtils.checkIsNumber(args[5]) ? calcDays(Integer.parseInt(args[5])) : 0L))); offlinePlayer.getPermissionEntity().getGroups() .add(new GroupEntityData(args[4], (args[5].equalsIgnoreCase("lifetime") ? 0L : NetworkUtils.checkIsNumber(args[5]) ? calcDays(Integer.parseInt(args[5])) : 0L)));
for (GroupEntityData groupEntityData : offlinePlayer.getPermissionEntity().getGroups()) for (GroupEntityData groupEntity : offlinePlayer.getPermissionEntity().getGroups()) offlinePlayer.getPermissionEntity().getGroups().remove(groupEntityData); if (offlinePlayer.getPermissionEntity().getGroups().size() == 0) offlinePlayer.getPermissionEntity().getGroups().add(new GroupEntityData(permissionPool.getDefaultGroup().getName(), 0)); offlinePlayer.getPermissionEntity().getGroups().clear(); offlinePlayer.getPermissionEntity().getGroups() .add(new GroupEntityData(args[4], (args[5].equalsIgnoreCase("lifetime") ? 0L : NetworkUtils.checkIsNumber(args[5]) ? calcDays(Integer.parseInt(args[5])) : 0L))); offlinePlayer.getPermissionEntity().getGroups() .add(new GroupEntityData(args[4], (args[5].equalsIgnoreCase("lifetime") ? 0L : NetworkUtils.checkIsNumber(args[4]) ? calcDays(Integer.parseInt(args[4])) : 0L)));
int joinPower = CloudAPI.getInstance().getServerGroupData(CloudAPI.getInstance().getGroup()).getJoinPower(); boolean acceptLogin = false; for (GroupEntityData entityData : cloudPlayer.getPermissionEntity().getGroups())