package org.bukkit.util.permissions;
import org.bukkit.Bukkit;
import org.bukkit.permissions.Permission;
import org.bukkit.permissions.PermissionDefault;
import java.util.Map;
public final class DefaultPermissions
{
private static final String ROOT = "craftbukkit";
private static final String LEGACY_PREFIX = "craft";
private DefaultPermissions()
{
}
public static Permission registerPermission(Permission perm)
{
return registerPermission(perm, true);
}
public static Permission registerPermission(Permission perm, boolean withLegacy)
{
Permission result = perm;
try
{
Bukkit.getPluginManager().addPermission(perm);
} catch(IllegalArgumentException ex)
{
result = Bukkit.getPluginManager().getPermission(perm.getName());
}
if(withLegacy)
{
Permission legacy = new Permission(LEGACY_PREFIX + result.getName(), result.getDescription(), PermissionDefault.FALSE);
legacy.getChildren().put(result.getName(), true);
registerPermission(perm, false);
}
return result;
}
public static Permission registerPermission(Permission perm, Permission parent)
{
parent.getChildren().put(perm.getName(), true);
return registerPermission(perm);
}
public static Permission registerPermission(String name, String desc)
{
Permission perm = registerPermission(new Permission(name, desc));
return perm;
}
public static Permission registerPermission(String name, String desc, Permission parent)
{
Permission perm = registerPermission(name, desc);
parent.getChildren().put(perm.getName(), true);
return perm;
}
public static Permission registerPermission(String name, String desc, PermissionDefault def)
{
Permission perm = registerPermission(new Permission(name, desc, def));
return perm;
}
public static Permission registerPermission(String name, String desc, PermissionDefault def, Permission parent)
{
Permission perm = registerPermission(name, desc, def);
parent.getChildren().put(perm.getName(), true);
return perm;
}
public static Permission registerPermission(String name, String desc, PermissionDefault def, Map<String, Boolean> children)
{
Permission perm = registerPermission(new Permission(name, desc, def, children));
return perm;
}
public static Permission registerPermission(String name, String desc, PermissionDefault def, Map<String, Boolean> children, Permission parent)
{
Permission perm = registerPermission(name, desc, def, children);
parent.getChildren().put(perm.getName(), true);
return perm;
}
public static void registerCorePermissions()
{
Permission parent = registerPermission(ROOT, "Gives the user the ability to use all CraftBukkit utilities and commands");
CommandPermissions.registerPermissions(parent);
BroadcastPermissions.registerPermissions(parent);
parent.recalculatePermissibles();
}
}