You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
2.1 KiB

package ru.simsonic.rscPermissions.InternalCache;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import ru.simsonic.rscPermissions.DataTypes.RowEntity;
import ru.simsonic.rscPermissions.DataTypes.RowInheritance;
import ru.simsonic.rscPermissions.DataTypes.RowPermission;
import ru.simsonic.rscPermissions.BukkitPluginMain;
import ru.simsonic.rscPermissions.API.Settings;
public class LocalCacheFunctions extends LocalCacheTree
{
public LocalCacheFunctions(BukkitPluginMain rscp)
{
super(rscp);
}
public String userGetPrefix(String user)
{
return prefixes_u.get(user);
}
public String userGetSuffix(String user)
{
return suffixes_u.get(user);
}
public synchronized String groupGetPrefix(String group)
{
if(group == null || "".equals(group))
return null;
RowEntity entity = entities_g.get(group.toLowerCase());
return (entity != null) ? entity.prefix : null;
}
public synchronized String groupGetSuffix(String group)
{
if(group == null || "".equals(group))
return null;
RowEntity entity = entities_g.get(group.toLowerCase());
return (entity != null) ? entity.suffix : null;
}
public synchronized ArrayList<String> getUserGroups(String player)
{
final ArrayList<ResolutionLeaf> tree = mapTrees.get(player.toLowerCase());
if(tree == null)
return null;
final ArrayList<String> result = new ArrayList<>();
for(ResolutionLeaf leaf : tree)
result.add(leaf.instance != null ? leaf.group + Settings.separator + leaf.instance : leaf.group);
return result;
}
public synchronized Set<String> getAllPossibleGroups()
{
Set<String> result = new HashSet<>();
for(RowEntity row : entities_g.values())
result.add(row.entity.toLowerCase());
for(RowPermission row : permissions_p2g)
result.add(row.entity.toLowerCase());
for(RowInheritance row : inheritance_g2g)
{
result.add(row.entity.toLowerCase());
result.add(row.parent.toLowerCase());
}
for(RowInheritance row : inheritance_g2u)
result.add(row.parent.toLowerCase());
return result;
}
}