@@ -12,8 +12,7 @@
import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.server.MinecraftServer;
import net.minecraftforge.permissions.PermissionContext;
import net.minecraftforge.permissions.PermissionsManager;
import net.minecraftforge.permission.PermissionManager;

import org.apache.commons.lang3.StringUtils;

@@ -147,11 +146,7 @@ public static void parseMain(CommandParserArgs arguments)
return;
if (arguments.senderPlayer == null)
throw new TranslatedCommandException(FEPermissions.MSG_NO_CONSOLE_COMMAND);
if (!PermissionsManager.checkPermission(new PermissionContext().setCommandSender(arguments.senderPlayer), PERM_DEBUG))
{
arguments.error(FEPermissions.MSG_NO_COMMAND_PERM);
return;
}
arguments.checkPermission(PERM_DEBUG);
if (ModulePermissions.permissionHelper.permissionDebugUsers.contains(arguments.senderPlayer))
{
ModulePermissions.permissionHelper.permissionDebugUsers.remove(arguments.senderPlayer);
@@ -220,8 +215,7 @@ public static void parseTest(CommandParserArgs arguments)
throw new TranslatedCommandException("Missing permission argument!");
if (arguments.senderPlayer == null)
throw new TranslatedCommandException(FEPermissions.MSG_NO_CONSOLE_COMMAND);
if (!arguments.isTabCompletion && !PermissionsManager.checkPermission(new PermissionContext().setCommandSender(arguments.sender), PERM_TEST))
throw new TranslatedCommandException(FEPermissions.MSG_NO_COMMAND_PERM);
arguments.checkPermission(PERM_TEST);

if (arguments.isTabCompletion)
{
@@ -261,9 +255,7 @@ else if (Zone.PERMISSION_FALSE.equalsIgnoreCase(result))

public static void parseUser(CommandParserArgs arguments)
{
if (!arguments.isTabCompletion && !PermissionsManager.checkPermission(new PermissionContext().setCommandSender(arguments.sender), PERM_USER))
throw new TranslatedCommandException(FEPermissions.MSG_NO_COMMAND_PERM);

arguments.checkPermission(PERM_USER);
if (arguments.args.isEmpty())
{
arguments.confirm("Possible usage:");
@@ -385,8 +377,7 @@ public static void parseUserInner(CommandParserArgs arguments, UserIdent ident,

public static void parseUserPrefixSuffix(CommandParserArgs arguments, UserIdent ident, Zone zone, boolean isSuffix)
{
if (!arguments.isTabCompletion && !PermissionsManager.checkPermission(new PermissionContext().setCommandSender(arguments.sender), PERM_USER_FIX))
throw new TranslatedCommandException(FEPermissions.MSG_NO_COMMAND_PERM);
arguments.checkPermission(PERM_USER_FIX);
if (arguments.isTabCompletion)
return;

@@ -416,8 +407,7 @@ public static void parseUserPrefixSuffix(CommandParserArgs arguments, UserIdent

public static void parseUserPermissions(CommandParserArgs arguments, UserIdent ident, Zone zone, PermissionAction type)
{
if (!arguments.isTabCompletion && !PermissionsManager.checkPermission(new PermissionContext().setCommandSender(arguments.sender), PERM_USER_PERMS))
throw new TranslatedCommandException(FEPermissions.MSG_NO_COMMAND_PERM);
arguments.checkPermission(PERM_USER_PERMS);
if (arguments.args.isEmpty())
throw new TranslatedCommandException("Missing permission argument!");

@@ -471,8 +461,7 @@ public static void parseUserPermissions(CommandParserArgs arguments, UserIdent i

public static void parseUserSpawn(CommandParserArgs arguments, UserIdent ident, Zone zone)
{
if (!arguments.isTabCompletion && !PermissionsManager.checkPermission(new PermissionContext().setCommandSender(arguments.sender), PERM_USER_SPAWN))
throw new TranslatedCommandException(FEPermissions.MSG_NO_COMMAND_PERM);
arguments.checkPermission(PERM_USER_SPAWN);
if (arguments.args.isEmpty())
{
arguments.confirm("/feperm user " + ident.getUsernameOrUuid() + " spawn here|clear|<x> <y> <z> <dim>: Set spawn location");
@@ -631,9 +620,7 @@ public static void parseUserGroup(CommandParserArgs arguments, UserIdent ident,

public static void parseGroup(CommandParserArgs arguments)
{
if (!arguments.isTabCompletion && !PermissionsManager.checkPermission(new PermissionContext().setCommandSender(arguments.sender), PERM_GROUP))
throw new TranslatedCommandException(FEPermissions.MSG_NO_COMMAND_PERM);

arguments.checkPermission(PERM_GROUP);
if (arguments.args.isEmpty())
{
arguments.confirm("Possible usage:");
@@ -695,8 +682,7 @@ public static void parseGroup(CommandParserArgs arguments)

public static void parseGlobal(CommandParserArgs arguments)
{
if (!arguments.isTabCompletion && !PermissionsManager.checkPermission(new PermissionContext().setCommandSender(arguments.sender), PERM_GROUP))
throw new TranslatedCommandException(FEPermissions.MSG_NO_COMMAND_PERM);
arguments.checkPermission(PERM_GROUP);
parseGroupInner(arguments, Zone.GROUP_DEFAULT, null);
}

@@ -821,8 +807,7 @@ public static void parseGroupInner(CommandParserArgs arguments, String group, Zo

public static void parseGroupPrefixSuffix(CommandParserArgs arguments, String group, Zone zone, boolean isSuffix)
{
if (!arguments.isTabCompletion && !PermissionsManager.checkPermission(new PermissionContext().setCommandSender(arguments.sender), PERM_GROUP_FIX))
throw new TranslatedCommandException(FEPermissions.MSG_NO_COMMAND_PERM);
arguments.checkPermission(PERM_GROUP_FIX);
if (arguments.isTabCompletion)
return;

@@ -852,8 +837,7 @@ public static void parseGroupPrefixSuffix(CommandParserArgs arguments, String gr

public static void parseGroupPermissions(CommandParserArgs arguments, String group, Zone zone, PermissionAction type)
{
if (!arguments.isTabCompletion && !PermissionsManager.checkPermission(new PermissionContext().setCommandSender(arguments.sender), PERM_GROUP_PERMS))
throw new TranslatedCommandException(FEPermissions.MSG_NO_COMMAND_PERM);
arguments.checkPermission(PERM_GROUP_PERMS);
if (arguments.args.isEmpty())
throw new TranslatedCommandException("Missing permission argument!");

@@ -909,9 +893,7 @@ public static void parseGroupPermissions(CommandParserArgs arguments, String gro

public static void parseGroupSpawn(CommandParserArgs arguments, String group, Zone zone)
{
if (!arguments.isTabCompletion && !PermissionsManager.checkPermission(new PermissionContext().setCommandSender(arguments.sender), PERM_GROUP_SPAWN))
throw new TranslatedCommandException(FEPermissions.MSG_NO_COMMAND_PERM);

arguments.checkPermission(PERM_GROUP_SPAWN);
if (arguments.args.isEmpty())
{
if (arguments.command.getCommandName().equalsIgnoreCase("setspawn"))
@@ -995,8 +977,7 @@ else if (val.equals("false") | val.equals("disable"))

public static void parseGroupPriority(CommandParserArgs arguments, String group)
{
if (!arguments.isTabCompletion && !PermissionsManager.checkPermission(new PermissionContext().setCommandSender(arguments.sender), PERM_GROUP_PERMS))
throw new TranslatedCommandException(FEPermissions.MSG_NO_COMMAND_PERM);
arguments.checkPermission(PERM_GROUP_PERMS);
if (arguments.args.isEmpty())
{
arguments.confirm("Priority for group " + group + ": " + APIRegistry.perms.getGroupPermissionProperty(group, FEPermissions.GROUP_PRIORITY));
@@ -1016,9 +997,7 @@ public static void parseGroupPriority(CommandParserArgs arguments, String group)

public static void parseGroupInclude(CommandParserArgs arguments, String group, boolean isParent)
{
if (!arguments.isTabCompletion && !PermissionsManager.checkPermission(new PermissionContext().setCommandSender(arguments.sender), PERM_GROUP_PERMS))
throw new TranslatedCommandException(FEPermissions.MSG_NO_COMMAND_PERM);

arguments.checkPermission(PERM_GROUP_PERMS);
if (arguments.isTabCompletion && arguments.args.size() == 1)
{
arguments.tabCompletion = ForgeEssentialsCommandBase.getListOfStringsMatchingLastWord(arguments.args.peek(), parseGroupIncludeArgs);
@@ -1153,7 +1132,7 @@ public static Zone parseZone(CommandParserArgs arguments, String zoneId)

public static void listUserPermissions(ICommandSender sender, UserIdent ident, boolean showGroupPerms)
{
if (!PermissionsManager.checkPermission(new PermissionContext().setCommandSender(sender), PERM_LIST_PERMS))
if (!PermissionManager.checkPermission(sender, PERM_LIST_PERMS))
throw new TranslatedCommandException(FEPermissions.MSG_NO_COMMAND_PERM);

ChatOutputHandler.chatNotification(sender, ident.getUsernameOrUuid() + " permissions:");
@@ -1247,7 +1226,7 @@ public static void listZones(ICommandSender sender, WorldPoint location)

public static void listGroups(ICommandSender sender)
{
if (!PermissionsManager.checkPermission(new PermissionContext().setCommandSender(sender), PERM_LIST_GROUPS))
if (!PermissionManager.checkPermission(sender, PERM_LIST_GROUPS))
throw new TranslatedCommandException(FEPermissions.MSG_NO_COMMAND_PERM);

ChatOutputHandler.chatNotification(sender, "Groups:");
@@ -1257,7 +1236,7 @@ public static void listGroups(ICommandSender sender)

public static void listUsers(ICommandSender sender)
{
if (!PermissionsManager.checkPermission(new PermissionContext().setCommandSender(sender), PERM_LIST_USERS))
if (!PermissionManager.checkPermission(sender, PERM_LIST_USERS))
throw new TranslatedCommandException(FEPermissions.MSG_NO_COMMAND_PERM);

ChatOutputHandler.chatNotification(sender, "Known players:");
@@ -17,20 +17,17 @@
import java.util.TreeMap;
import java.util.TreeSet;

import net.minecraft.command.ICommandSender;
import net.minecraft.command.ICommand;
import net.minecraft.command.server.CommandBlockLogic;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.IChatComponent;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.CommandEvent;
import net.minecraftforge.event.world.WorldEvent;
import net.minecraftforge.fe.server.CommandHandlerForge;
import net.minecraftforge.permissions.IContext;
import net.minecraftforge.permissions.PermissionsManager;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionContext;
import net.minecraftforge.permission.PermissionLevel;
import net.minecraftforge.permission.PermissionManager;

import com.forgeessentials.api.APIRegistry;
import com.forgeessentials.api.UserIdent;
@@ -51,8 +48,8 @@
import com.forgeessentials.commons.selections.WorldPoint;
import com.forgeessentials.core.FEConfig;
import com.forgeessentials.core.ForgeEssentials;
import com.forgeessentials.core.commands.ForgeEssentialsCommandBase;
import com.forgeessentials.protection.ModuleProtection;
import com.forgeessentials.util.events.FEModuleEvent.FEModuleServerPostInitEvent;
import com.forgeessentials.util.events.PlayerChangedZone;
import com.forgeessentials.util.events.PlayerMoveEvent;
import com.forgeessentials.util.events.ServerEventHandler;
@@ -87,12 +84,14 @@ public class ZonedPermissionHelper extends ServerEventHandler implements IPermis
protected boolean dirty = true;

/**
* First time that permissions have been changed. At least one minute after this time, permissions will definitely be saved.
* First time that permissions have been changed. At least one minute after this time, permissions will definitely
* be saved.
*/
protected long firstDirtyTime = 0;

/**
* Last time that permissions have been changed. Five seconds after no more permissions have been changed, they will be saved.
* Last time that permissions have been changed. Five seconds after no more permissions have been changed, they will
* be saved.
*/
protected long lastDirtyTime = 0;

@@ -211,6 +210,8 @@ public void writePermissionlist()
{
PermissionList defaultPerms = rootZone.getGroupPermissions(Zone.GROUP_DEFAULT);
PermissionList opPerms = rootZone.getGroupPermissions(Zone.GROUP_OPERATORS);
opPerms.remove(null);
defaultPerms.remove(null);

File file = new File(ForgeEssentials.getFEDirectory(), PERMISSIONS_LIST_FILE);
File fileItems = new File(ForgeEssentials.getFEDirectory(), PERMISSIONS_LIST_ITEMS_FILE);
@@ -235,27 +236,27 @@ public void writePermissionlist()
BufferedWriter writerItems = new BufferedWriter(new FileWriter(fileItems));
BufferedWriter writerBlocks = new BufferedWriter(new FileWriter(fileBlocks)))
{
writer.write("#// ---------- PERMISSIONS LIST ------------ \\\\#");
writer.write("#// ------------ PERMISSIONS LIST ---------- \\\\#");
writer.newLine();
writer.write("#// ---------------- " + FEConfig.FORMAT_DATE_TIME.format(new Date()) + " ------------- \\\\#");
writer.write("#// --------------- " + FEConfig.FORMAT_DATE_TIME.format(new Date()) + " ------------ \\\\#");
writer.newLine();
writer.write("#// ----------- Total amount: " + permCount + " --------- \\\\#");
writer.newLine();
writer.write("#// ---------------------------------------- \\\\#");
writer.newLine();

writerItems.write("#// ---------- PERMISSIONS LIST ITEMS ------ \\\\#");
writerItems.write("#// --------- PERMISSIONS LIST ITEMS ------- \\\\#");
writerItems.newLine();
writerItems.write("#// ---------------- " + FEConfig.FORMAT_DATE_TIME.format(new Date()) + " ------------- \\\\#");
writerItems.write("#// --------------- " + FEConfig.FORMAT_DATE_TIME.format(new Date()) + " ------------ \\\\#");
writerItems.newLine();
writerItems.write("#// ----------- Total amount: " + permCount + " --------- \\\\#");
writerItems.newLine();
writerItems.write("#// ---------------------------------------- \\\\#");
writerItems.newLine();

writerBlocks.write("#// ---------- PERMISSIONS LIST BLOCKS ----- \\\\#");
writerBlocks.write("#// -------- PERMISSIONS LIST BLOCKS ------- \\\\#");
writerBlocks.newLine();
writerBlocks.write("#// ---------------- " + FEConfig.FORMAT_DATE_TIME.format(new Date()) + " ------------- \\\\#");
writerBlocks.write("#// --------------- " + FEConfig.FORMAT_DATE_TIME.format(new Date()) + " ------------ \\\\#");
writerBlocks.newLine();
writerBlocks.write("#// ----------- Total amount: " + permCount + " --------- \\\\#");
writerBlocks.newLine();
@@ -490,6 +491,16 @@ public void playerLoggedOut(PlayerLoggedOutEvent e)
permissionDebugUsers.remove(e.player);
}

@SubscribeEvent(priority = EventPriority.LOWEST)
public void serverStarted(FEModuleServerPostInitEvent e)
{
// TODO This can be removed if the Permission API gets accepted!
@SuppressWarnings("unchecked")
Map<String, ICommand> commands = MinecraftServer.getServer().getCommandManager().getCommands();
for (ICommand command : commands.values())
PermissionManager.registerCommandPermission(command);
}

@SubscribeEvent
public void worldLoad(WorldEvent.Load e)
{
@@ -524,23 +535,6 @@ public void playerChangedZoneEvent(PlayerChangedZone event)
}
}

@SubscribeEvent(priority = EventPriority.HIGHEST)
public void commandEvent(CommandEvent e)
{
if (!(e.command instanceof ForgeEssentialsCommandBase) && e.sender instanceof EntityPlayer && !CommandHandlerForge.canUse(e.command, e.sender))
{
e.setCanceled(true);
permissionDeniedMessage(e.sender);
}
}

public static void permissionDeniedMessage(ICommandSender sender)
{
ChatComponentTranslation msg = new ChatComponentTranslation("commands.generic.permission", new Object[0]);
msg.getChatStyle().setColor(EnumChatFormatting.RED);
ChatOutputHandler.sendMessage(sender, msg);
}

@SubscribeEvent
public void serverTickEvent(TickEvent.ServerTickEvent e)
{
@@ -614,13 +608,13 @@ public void registerPermissionPropertyOp(String permissionNode, String defaultVa
}

@Override
public void registerPermission(String permissionNode, PermissionsManager.RegisteredPermValue permLevel)
public void registerPermission(String permissionNode, PermissionLevel permLevel)
{
if (permLevel == RegisteredPermValue.FALSE)
if (permLevel == PermissionLevel.FALSE)
rootZone.setGroupPermission(Zone.GROUP_DEFAULT, permissionNode, false);
else if (permLevel == RegisteredPermValue.TRUE)
else if (permLevel == PermissionLevel.TRUE)
rootZone.setGroupPermission(Zone.GROUP_DEFAULT, permissionNode, true);
else if (permLevel == RegisteredPermValue.OP)
else
{
rootZone.setGroupPermission(Zone.GROUP_DEFAULT, permissionNode, false);
rootZone.setGroupPermission(Zone.GROUP_OPERATORS, permissionNode, true);
@@ -634,7 +628,7 @@ public void registerPermissionDescription(String permissionNode, String descript
}

@Override
public void registerPermission(String permissionNode, RegisteredPermValue level, String description)
public void registerPermission(String permissionNode, PermissionLevel level, String description)
{
registerPermission(permissionNode, level);
registerPermissionDescription(permissionNode, description);
@@ -687,77 +681,36 @@ public String getPermissionDescription(String permissionNode)
// ------------------------------------------------------------
// -- IPermissionProvider
// ------------------------------------------------------------
/**
* Will return the player if set or the commandSender, if it is an instance of {@link EntityPlayer}
*/
protected static EntityPlayer contextGetPlayerOrCommandPlayer(IContext context)
{
return (context.getPlayer() != null) ? context.getPlayer() : (context.getCommandSender() instanceof EntityPlayer ? (EntityPlayer) context
.getCommandSender() : null);
}

protected static boolean contextIsConsole(IContext context)
{
return context.getPlayer() == null && context.getCommandSender() != null && !(context.getCommandSender() instanceof EntityPlayer)
&& !(context.getCommandSender() instanceof CommandBlockLogic);
}

protected static boolean contextIsPlayer(IContext context)
{
return (context.getPlayer() != null) || (context.getCommandSender() instanceof EntityPlayer);
}

@Override
public boolean checkPermission(IContext context, String permissionNode)
public boolean checkPermission(PermissionContext context, String permissionNode)
{
if (contextIsConsole(context))
if (context.isConsole())
return true;

UserIdent ident = null;
EntityPlayer player = contextGetPlayerOrCommandPlayer(context);
EntityPlayer player = context.getPlayer();
UserIdent ident = player == null ? null : UserIdent.get(player);
int dim = context.getDimension();
WorldPoint loc = null;
WorldArea area = null;
int dim = 0;

if (player != null)
{
ident = UserIdent.get(player);
// TODO: should be changed to context.getDimension()
dim = player.dimension;
}

if (context.getTargetLocationStart() != null)
{
if (context.getTargetLocationEnd() != null)
{
area = new WorldArea(dim, new Point(context.getTargetLocationStart()), new Point(context.getTargetLocationEnd()));
}
else
{
loc = new WorldPoint(dim, context.getTargetLocationStart());
}
}
else if (context.getSourceLocationStart() != null)
{
if (context.getSourceLocationEnd() != null)
{
area = new WorldArea(dim, new Point(context.getSourceLocationStart()), new Point(context.getSourceLocationEnd()));
}
else
{
loc = new WorldPoint(dim, context.getSourceLocationStart());
}
}
else
{
if (player != null)
{
loc = new WorldPoint(player);
}
}

SortedSet<GroupEntry> groups = getPlayerGroups(ident);
if (context.getCommandSender() instanceof CommandBlockLogic)
if (context.getSender() instanceof CommandBlockLogic)
groups.add(new GroupEntry(rootZone.getServerZone(), Zone.GROUP_CMDBLOCKS));
return checkBooleanPermission(getPermission(ident, loc, area, GroupEntry.toList(groups), permissionNode, false));
}
@@ -4,7 +4,7 @@
import java.util.List;

import net.minecraft.launchwrapper.Launch;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.api.APIRegistry;
import com.forgeessentials.core.ForgeEssentials;
@@ -89,8 +89,8 @@ public void serverPreInit(FEModuleServerPreInitEvent e)

private void registerPermissions()
{
APIRegistry.perms.registerPermission(PERM, RegisteredPermValue.OP, "Player logger permisssions");
APIRegistry.perms.registerPermission(PERM_WAND, RegisteredPermValue.OP, "Allow usage of player loggger wand (clock)");
APIRegistry.perms.registerPermission(PERM, PermissionLevel.OP, "Player logger permisssions");
APIRegistry.perms.registerPermission(PERM_WAND, PermissionLevel.OP, "Allow usage of player loggger wand (clock)");
}

@SubscribeEvent
@@ -3,7 +3,7 @@
import javax.persistence.TypedQuery;

import net.minecraft.command.ICommandSender;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.api.permissions.FEPermissions;
import com.forgeessentials.core.commands.ParserCommandBase;
@@ -42,9 +42,9 @@ public String getCommandUsage(ICommandSender sender)
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.OP;
return PermissionLevel.OP;
}

@Override
@@ -6,7 +6,7 @@
import java.util.UUID;

import net.minecraft.command.ICommandSender;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.api.permissions.Zone;
import com.forgeessentials.commons.selections.Selection;
@@ -56,9 +56,9 @@ public String getPermissionNode()
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.OP;
return PermissionLevel.OP;
}

@Override
@@ -8,7 +8,7 @@
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.event.ForgeEventFactory;
import net.minecraftforge.event.world.BlockEvent;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.core.commands.ParserCommandBase;
import com.forgeessentials.util.CommandParserArgs;
@@ -54,9 +54,9 @@ public String getCommandUsage(ICommandSender sender)
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.OP;
return PermissionLevel.OP;
}

@Override
@@ -38,7 +38,7 @@
import net.minecraft.item.ItemStack;
import net.minecraft.util.DamageSource;
import net.minecraft.world.World;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.api.APIRegistry;
import com.forgeessentials.api.permissions.PermissionEvent;
@@ -150,84 +150,84 @@ public void registerPermissions(FEModuleServerInitEvent event)
{
// ----------------------------------------
// Other
APIRegistry.perms.registerPermission(PERM_SLEEP, RegisteredPermValue.TRUE, "Allow players to sleep in beds");
APIRegistry.perms.registerPermission(PERM_PVP, RegisteredPermValue.TRUE, "If denied for at least one of two fighting players, PvP will be disabled");
APIRegistry.perms.registerPermission(PERM_SLEEP, PermissionLevel.TRUE, "Allow players to sleep in beds");
APIRegistry.perms.registerPermission(PERM_PVP, PermissionLevel.TRUE, "If denied for at least one of two fighting players, PvP will be disabled");
APIRegistry.perms.registerPermissionProperty(PERM_GAMEMODE, "-1", "Force gamemode (-1 = none / default, 0 = survival, 1 = creative, 2 = adventure)");
APIRegistry.perms.registerPermissionProperty(PERM_INVENTORY_GROUP, "default",
"Inventory group property - can be set to any identifier to separate inventories for certain regions");
APIRegistry.perms.registerPermission(PERM_INTERACT_ENTITY, RegisteredPermValue.TRUE, "Allow interacting with entities (villagers, dogs, horses)");
APIRegistry.perms.registerPermission(PERM_EXPLOSION, RegisteredPermValue.TRUE, "(global) Allows explosions.");
APIRegistry.perms.registerPermission(PERM_INTERACT_ENTITY, PermissionLevel.TRUE, "Allow interacting with entities (villagers, dogs, horses)");
APIRegistry.perms.registerPermission(PERM_EXPLOSION, PermissionLevel.TRUE, "(global) Allows explosions.");

// ----------------------------------------
// Damage
APIRegistry.perms.registerPermission(PERM_DAMAGE_TO, RegisteredPermValue.TRUE, "Allow damaging entities");
APIRegistry.perms.registerPermission(PERM_DAMAGE_BY, RegisteredPermValue.TRUE, "Allow getting hurt by entities");
APIRegistry.perms.registerPermission(PERM_DAMAGE_TO, PermissionLevel.TRUE, "Allow damaging entities");
APIRegistry.perms.registerPermission(PERM_DAMAGE_BY, PermissionLevel.TRUE, "Allow getting hurt by entities");
for (Class<?> entityClass : damageEntityClasses)
{
APIRegistry.perms.registerPermission(PERM_DAMAGE_TO + "." + entityClass.getSimpleName(), RegisteredPermValue.TRUE);
APIRegistry.perms.registerPermission(PERM_DAMAGE_BY + "." + entityClass.getSimpleName(), RegisteredPermValue.TRUE);
APIRegistry.perms.registerPermission(PERM_DAMAGE_TO + "." + entityClass.getSimpleName(), PermissionLevel.TRUE);
APIRegistry.perms.registerPermission(PERM_DAMAGE_BY + "." + entityClass.getSimpleName(), PermissionLevel.TRUE);
}
for (DamageSource dmgType : damageByTypes)
{
APIRegistry.perms.registerPermission(PERM_DAMAGE_BY + "." + dmgType.getDamageType(), RegisteredPermValue.TRUE);
APIRegistry.perms.registerPermission(PERM_DAMAGE_BY + "." + dmgType.getDamageType(), PermissionLevel.TRUE);
}

// ----------------------------------------
// Register mobs
APIRegistry.perms.registerPermission(PERM_MOBSPAWN + Zone.PERMISSION_ASTERIX, RegisteredPermValue.TRUE, "(global) Allow spawning of mobs");
APIRegistry.perms.registerPermission(PERM_MOBSPAWN_NATURAL + Zone.ALL_PERMS, RegisteredPermValue.TRUE,
APIRegistry.perms.registerPermission(PERM_MOBSPAWN + Zone.PERMISSION_ASTERIX, PermissionLevel.TRUE, "(global) Allow spawning of mobs");
APIRegistry.perms.registerPermission(PERM_MOBSPAWN_NATURAL + Zone.ALL_PERMS, PermissionLevel.TRUE,
"(global) Allow natural spawning of mobs (random spawn)");
APIRegistry.perms.registerPermission(PERM_MOBSPAWN_FORCED + Zone.ALL_PERMS, RegisteredPermValue.TRUE,
APIRegistry.perms.registerPermission(PERM_MOBSPAWN_FORCED + Zone.ALL_PERMS, PermissionLevel.TRUE,
"(global) Allow forced spawning of mobs (mob-spawners)");

for (Entry<String, Class<? extends Entity>> e : ((Map<String, Class<? extends Entity>>) EntityList.stringToClassMapping).entrySet())
if (EntityLiving.class.isAssignableFrom(e.getValue()))
{
APIRegistry.perms.registerPermission(PERM_MOBSPAWN_NATURAL + "." + e.getKey(), RegisteredPermValue.TRUE);
APIRegistry.perms.registerPermission(PERM_MOBSPAWN_FORCED + "." + e.getKey(), RegisteredPermValue.TRUE);
APIRegistry.perms.registerPermission(PERM_MOBSPAWN_NATURAL + "." + e.getKey(), PermissionLevel.TRUE);
APIRegistry.perms.registerPermission(PERM_MOBSPAWN_FORCED + "." + e.getKey(), PermissionLevel.TRUE);
}
for (MobType mobType : MobType.values())
{
APIRegistry.perms.registerPermission(mobType.getSpawnPermission(false), RegisteredPermValue.TRUE);
APIRegistry.perms.registerPermission(mobType.getSpawnPermission(true), RegisteredPermValue.TRUE);
APIRegistry.perms.registerPermission(mobType.getDamageByPermission(), RegisteredPermValue.TRUE);
APIRegistry.perms.registerPermission(mobType.getDamageToPermission(), RegisteredPermValue.TRUE);
APIRegistry.perms.registerPermission(mobType.getSpawnPermission(false), PermissionLevel.TRUE);
APIRegistry.perms.registerPermission(mobType.getSpawnPermission(true), PermissionLevel.TRUE);
APIRegistry.perms.registerPermission(mobType.getDamageByPermission(), PermissionLevel.TRUE);
APIRegistry.perms.registerPermission(mobType.getDamageToPermission(), PermissionLevel.TRUE);
}

// ----------------------------------------
// Register items
APIRegistry.perms.registerPermission(PERM_USE + Zone.ALL_PERMS, RegisteredPermValue.TRUE, "Allow using items");
APIRegistry.perms.registerPermission(PERM_INVENTORY + Zone.ALL_PERMS, RegisteredPermValue.TRUE,
APIRegistry.perms.registerPermission(PERM_USE + Zone.ALL_PERMS, PermissionLevel.TRUE, "Allow using items");
APIRegistry.perms.registerPermission(PERM_INVENTORY + Zone.ALL_PERMS, PermissionLevel.TRUE,
"Allow having item in inventory. Item will be dropped if not allowed.");
APIRegistry.perms.registerPermission(PERM_EXIST + Zone.ALL_PERMS, RegisteredPermValue.TRUE,
APIRegistry.perms.registerPermission(PERM_EXIST + Zone.ALL_PERMS, PermissionLevel.TRUE,
"Allow having item in inventory. Item will be destroyed if not allowed.");
for (Item item : GameData.getItemRegistry().typeSafeIterable())
if (!(item instanceof ItemBlock))
{
String itemPerm = "." + getItemId(item) + Zone.ALL_PERMS;
APIRegistry.perms.registerPermission(PERM_USE + itemPerm, RegisteredPermValue.TRUE, "USE " + getItemName(item));
APIRegistry.perms.registerPermission(PERM_INVENTORY + itemPerm, RegisteredPermValue.TRUE, "INVENTORY " + getItemName(item));
APIRegistry.perms.registerPermission(PERM_INVENTORY + itemPerm, RegisteredPermValue.TRUE, "EXIST " + getItemName(item));
APIRegistry.perms.registerPermission(PERM_USE + itemPerm, PermissionLevel.TRUE, "USE " + getItemName(item));
APIRegistry.perms.registerPermission(PERM_INVENTORY + itemPerm, PermissionLevel.TRUE, "INVENTORY " + getItemName(item));
APIRegistry.perms.registerPermission(PERM_INVENTORY + itemPerm, PermissionLevel.TRUE, "EXIST " + getItemName(item));
}

// ----------------------------------------
// Register blocks
APIRegistry.perms.registerPermission(PERM_BREAK + Zone.ALL_PERMS, RegisteredPermValue.TRUE, "Allow breaking blocks");
APIRegistry.perms.registerPermission(PERM_PLACE + Zone.ALL_PERMS, RegisteredPermValue.TRUE, "Allow placing blocks");
APIRegistry.perms.registerPermission(PERM_INTERACT + Zone.ALL_PERMS, RegisteredPermValue.TRUE,
APIRegistry.perms.registerPermission(PERM_BREAK + Zone.ALL_PERMS, PermissionLevel.TRUE, "Allow breaking blocks");
APIRegistry.perms.registerPermission(PERM_PLACE + Zone.ALL_PERMS, PermissionLevel.TRUE, "Allow placing blocks");
APIRegistry.perms.registerPermission(PERM_INTERACT + Zone.ALL_PERMS, PermissionLevel.TRUE,
"Allow interacting with blocks (button, chest, workbench)");
for (Block block : GameData.getBlockRegistry().typeSafeIterable())
{
String blockPerm = "." + getBlockId(block) + Zone.ALL_PERMS;
APIRegistry.perms.registerPermission(PERM_BREAK + blockPerm, RegisteredPermValue.TRUE, "BREAK " + block.getLocalizedName());
APIRegistry.perms.registerPermission(PERM_PLACE + blockPerm, RegisteredPermValue.TRUE, "PLACE " + block.getLocalizedName());
APIRegistry.perms.registerPermission(PERM_INTERACT + blockPerm, RegisteredPermValue.TRUE, "INTERACT " + block.getLocalizedName());
APIRegistry.perms.registerPermission(PERM_BREAK + blockPerm, PermissionLevel.TRUE, "BREAK " + block.getLocalizedName());
APIRegistry.perms.registerPermission(PERM_PLACE + blockPerm, PermissionLevel.TRUE, "PLACE " + block.getLocalizedName());
APIRegistry.perms.registerPermission(PERM_INTERACT + blockPerm, PermissionLevel.TRUE, "INTERACT " + block.getLocalizedName());
}

// ----------------------------------------
// Register zone permissions
APIRegistry.perms.registerPermissionDescription(ZONE, "Worldborder permissions");
APIRegistry.perms.registerPermission(ZONE_KNOCKBACK, RegisteredPermValue.FALSE, "Deny players from entering this area");
APIRegistry.perms.registerPermission(ZONE_KNOCKBACK, PermissionLevel.FALSE, "Deny players from entering this area");
APIRegistry.perms.registerPermissionProperty(ZONE_DAMAGE, null, "Apply this amount of damage to players, if they are in this area");
APIRegistry.perms.registerPermissionProperty(ZONE_DAMAGE_INTERVAL, "1000",
"Time interval in milliseconds for applying damage-effect. Zero = once only.");
@@ -5,7 +5,7 @@

import net.minecraft.command.ICommandSender;
import net.minecraft.item.ItemStack;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.api.APIRegistry;
import com.forgeessentials.api.permissions.FEPermissions;
@@ -37,9 +37,9 @@ public String getPermissionNode()
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.TRUE;
return PermissionLevel.TRUE;
}

@Override
@@ -8,7 +8,7 @@
import net.minecraftforge.common.util.FakePlayerFactory;
import net.minecraftforge.event.ForgeEventFactory;
import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.core.commands.ParserCommandBase;
import com.forgeessentials.util.CommandParserArgs;
@@ -40,9 +40,9 @@ public String getPermissionNode()
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.OP;
return PermissionLevel.OP;
}

@Override
@@ -2,7 +2,7 @@

import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.core.commands.ForgeEssentialsCommandBase;
import com.forgeessentials.protection.ModuleProtection;
@@ -51,9 +51,9 @@ public String getCommandUsage(ICommandSender sender)
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.TRUE;
return PermissionLevel.TRUE;
}

}
@@ -9,7 +9,7 @@
import net.minecraft.block.Block;
import net.minecraft.command.ICommandSender;
import net.minecraft.item.Item;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.api.APIRegistry;
import com.forgeessentials.api.permissions.AreaZone;
@@ -51,9 +51,9 @@ public String getCommandUsage(ICommandSender sender)
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.OP;
return PermissionLevel.OP;
}

@Override
@@ -13,7 +13,7 @@

import net.minecraft.server.MinecraftServer;
import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.api.APIRegistry;
import com.forgeessentials.api.UserIdent;
@@ -118,8 +118,8 @@ public void getASMDataTable(FEModulePreInitEvent e)
public void load(FEModuleInitEvent e)
{
APIRegistry.remoteManager = this;
APIRegistry.perms.registerPermission(PERM, RegisteredPermValue.OP, "Allows login to remote module");
APIRegistry.perms.registerPermission(PERM_CONTROL, RegisteredPermValue.OP,
APIRegistry.perms.registerPermission(PERM, PermissionLevel.OP, "Allows login to remote module");
APIRegistry.perms.registerPermission(PERM_CONTROL, PermissionLevel.OP,
"Allows to start / stop remote server and control users (regen passkeys, kick, block)");

registerRemoteHandlers();
@@ -264,7 +264,7 @@ public void registerHandler(RemoteHandler handler, String id)
handlers.put(id, handler);
String perm = handler.getPermission();
if (perm != null && APIRegistry.perms.getServerZone().getRootZone().getGroupPermission(Zone.GROUP_DEFAULT, perm) == null)
APIRegistry.perms.registerPermission(perm, RegisteredPermValue.OP);
APIRegistry.perms.registerPermission(perm, PermissionLevel.OP);
}

/*
@@ -9,7 +9,7 @@
import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.IChatComponent;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.api.UserIdent;
import com.forgeessentials.api.permissions.FEPermissions;
@@ -21,8 +21,8 @@
import com.forgeessentials.core.misc.Translator;
import com.forgeessentials.remote.ModuleRemote;
import com.forgeessentials.util.CommandParserArgs;
import com.forgeessentials.util.output.ChatOutputHandler;
import com.forgeessentials.util.PlayerInfo;
import com.forgeessentials.util.output.ChatOutputHandler;

public class CommandRemote extends ForgeEssentialsCommandBase
{
@@ -234,9 +234,9 @@ public String getCommandUsage(ICommandSender sender)
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.TRUE;
return PermissionLevel.TRUE;
}

}
@@ -24,7 +24,7 @@ public class QueryRemoteCapabilitiesHandler extends GenericRemoteHandler<JsonEle
public QueryRemoteCapabilitiesHandler()
{
super(null, JsonElement.class);
// APIRegistry.perms.registerPermission(PERM, RegisteredPermValue.TRUE,
// APIRegistry.perms.registerPermission(PERM, PermissionLevel.TRUE,
// "Allows querying capabilities (allowed handlers - should ALWAYS be granted)");
}

@@ -2,7 +2,7 @@

import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.ServerChatEvent;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.api.APIRegistry;
import com.forgeessentials.api.remote.FERemoteHandler;
@@ -26,7 +26,7 @@ public class PushChatHandler extends GenericRemoteHandler<EnableRequest>
public PushChatHandler()
{
super(PERM, EnableRequest.class);
APIRegistry.perms.registerPermission(PERM, RegisteredPermValue.TRUE, "Allows requesting chat push messages");
APIRegistry.perms.registerPermission(PERM, PermissionLevel.TRUE, "Allows requesting chat push messages");
MinecraftForge.EVENT_BUS.register(this);
}

@@ -6,7 +6,7 @@
import net.minecraft.util.IChatComponent;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.ServerChatEvent;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.api.APIRegistry;
import com.forgeessentials.api.remote.FERemoteHandler;
@@ -27,7 +27,7 @@ public class SendChatHandler extends GenericRemoteHandler<String>
public SendChatHandler()
{
super(PERM, String.class);
APIRegistry.perms.registerPermission(PERM, RegisteredPermValue.TRUE, "Allows to send chat messages");
APIRegistry.perms.registerPermission(PERM, PermissionLevel.TRUE, "Allows to send chat messages");
}

@Override
@@ -5,8 +5,8 @@
import net.minecraft.command.CommandException;
import net.minecraft.command.ICommand;
import net.minecraft.server.MinecraftServer;
import net.minecraftforge.fe.server.CommandHandlerForge;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;
import net.minecraftforge.permission.PermissionManager;

import com.forgeessentials.api.APIRegistry;
import com.forgeessentials.api.remote.FERemoteHandler;
@@ -15,7 +15,6 @@
import com.forgeessentials.api.remote.RemoteRequest;
import com.forgeessentials.api.remote.RemoteResponse;
import com.forgeessentials.api.remote.RemoteSession;
import com.forgeessentials.core.commands.ForgeEssentialsCommandBase;
import com.forgeessentials.remote.RemoteCommandSender;
import com.forgeessentials.remote.RemoteMessageID;

@@ -28,7 +27,7 @@ public class CommandHandler extends GenericRemoteHandler<String>
public CommandHandler()
{
super(PERM, String.class);
APIRegistry.perms.registerPermission(PERM, RegisteredPermValue.TRUE, "Allows to run commands remotely");
APIRegistry.perms.registerPermission(PERM, PermissionLevel.TRUE, "Allows to run commands remotely");
}

@Override
@@ -47,12 +46,7 @@ protected RemoteResponse<?> handleData(RemoteSession session, RemoteRequest<Stri

RemoteCommandSender sender = new RemoteCommandSender(session);

boolean canUse;
if (command instanceof ForgeEssentialsCommandBase)
canUse = ((ForgeEssentialsCommandBase) command).checkCommandPermission(sender);
else
canUse = CommandHandlerForge.canUse(command, sender);
if (!canUse)
if (!PermissionManager.checkPermission(sender, command))
error(RemoteHandler.MSG_NO_PERMISSION);

try
@@ -1,6 +1,6 @@
package com.forgeessentials.remote.handler.permission;

import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.api.APIRegistry;
import com.forgeessentials.api.permissions.Zone;
@@ -22,7 +22,7 @@ public class SetPermissionHandler extends GenericRemoteHandler<SetPermissionRequ
public SetPermissionHandler()
{
super(PERM, SetPermissionRequest.class);
APIRegistry.perms.registerPermission(PERM, RegisteredPermValue.OP, "Allows to change permissions");
APIRegistry.perms.registerPermission(PERM, PermissionLevel.OP, "Allows to change permissions");
}

@Override
@@ -4,7 +4,7 @@
import java.util.Set;

import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.api.APIRegistry;
import com.forgeessentials.api.UserIdent;
@@ -32,7 +32,7 @@ public class QueryPlayerHandler extends GenericRemoteHandler<QueryPlayerRequest>
public QueryPlayerHandler()
{
super(PERM, QueryPlayerRequest.class);
APIRegistry.perms.registerPermission(PERM, RegisteredPermValue.OP, "Allows querying player data");
APIRegistry.perms.registerPermission(PERM, PermissionLevel.OP, "Allows querying player data");
}

@Override
@@ -5,7 +5,7 @@
import java.util.Map.Entry;

import net.minecraft.command.ICommandSender;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.core.commands.ForgeEssentialsCommandBase;
import com.forgeessentials.core.misc.Translator;
@@ -88,9 +88,9 @@ public String getPermissionNode()
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.OP;
return PermissionLevel.OP;
}

}
@@ -7,7 +7,7 @@

import net.minecraft.command.CommandException;
import net.minecraft.command.ICommandSender;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import org.apache.commons.lang3.StringUtils;

@@ -51,7 +51,7 @@ public CommandPattern(String pattern, List<String> script)

protected String permission;

protected RegisteredPermValue permissionLevel = RegisteredPermValue.TRUE;
protected PermissionLevel permissionLevel = PermissionLevel.TRUE;

protected Map<String, List<String>> patterns = new HashMap<>();

@@ -166,7 +166,7 @@ public boolean canConsoleUseCommand()
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return permissionLevel;
}
@@ -8,8 +8,8 @@
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action;
import net.minecraftforge.fe.event.world.SignEditEvent;
import net.minecraftforge.permissions.PermissionsManager;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;
import net.minecraftforge.permission.PermissionManager;

import com.forgeessentials.core.ForgeEssentials;
import com.forgeessentials.core.moduleLauncher.FEModule;
@@ -25,6 +25,7 @@ public class SignToolsModule extends ConfigLoaderBase
{

public static final String COLOURIZE_PERM = "fe.signs.colourize";

private static boolean allowSignCommands;

@SubscribeEvent
@@ -37,7 +38,7 @@ public void onLoad(FEModuleInitEvent e)
@SubscribeEvent
public void registerPerms(FEModuleServerInitEvent e)
{
PermissionsManager.registerPermission(COLOURIZE_PERM, RegisteredPermValue.TRUE);
PermissionManager.registerPermission(COLOURIZE_PERM, PermissionLevel.TRUE);
}

/**
@@ -50,7 +51,7 @@ public void registerPerms(FEModuleServerInitEvent e)
@SubscribeEvent
public void onSignEdit(SignEditEvent e)
{
if (!PermissionsManager.checkPermission(e.editor, COLOURIZE_PERM))
if (!PermissionManager.checkPermission(e.editor, COLOURIZE_PERM))
{
return;
}
@@ -2,8 +2,8 @@

import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraftforge.permissions.PermissionsManager;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;
import net.minecraftforge.permission.PermissionManager;

import com.forgeessentials.commons.selections.WarpPoint;
import com.forgeessentials.core.commands.ForgeEssentialsCommandBase;
@@ -39,17 +39,17 @@ public String getPermissionNode()
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.TRUE;
return PermissionLevel.TRUE;
}

@Override
public void processCommandPlayer(EntityPlayerMP sender, String[] args)
{
PlayerInfo pi = PlayerInfo.get(sender.getPersistentID());
WarpPoint point = null;
if (PermissionsManager.checkPermission(sender, TeleportModule.PERM_BACK_ONDEATH))
if (PermissionManager.checkPermission(sender, TeleportModule.PERM_BACK_ONDEATH))
point = pi.getLastDeathLocation();
if (point == null)
point = pi.getLastTeleportOrigin();
@@ -9,8 +9,8 @@
import net.minecraft.world.World;
import net.minecraftforge.common.DimensionManager;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.permissions.PermissionsManager;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;
import net.minecraftforge.permission.PermissionManager;

import com.forgeessentials.api.UserIdent;
import com.forgeessentials.commons.selections.WarpPoint;
@@ -38,7 +38,7 @@ public String getCommandName()
@Override
public void processCommandPlayer(EntityPlayerMP sender, String[] args)
{
if (args.length >= 1 && PermissionsManager.checkPermission(sender, TeleportModule.PERM_BED_OTHERS))
if (args.length >= 1 && PermissionManager.checkPermission(sender, TeleportModule.PERM_BED_OTHERS))
{
EntityPlayerMP player = UserIdent.getPlayerByMatchOrUsername(sender, args[0]);
if (player != null)
@@ -119,9 +119,9 @@ public List<String> addTabCompletionOptions(ICommandSender sender, String[] args
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.TRUE;
return PermissionLevel.TRUE;
}

@Override
@@ -5,17 +5,17 @@
import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraftforge.permissions.PermissionsManager;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;
import net.minecraftforge.permission.PermissionManager;

import com.forgeessentials.api.UserIdent;
import com.forgeessentials.commons.selections.WarpPoint;
import com.forgeessentials.core.commands.ForgeEssentialsCommandBase;
import com.forgeessentials.core.misc.TeleportHelper;
import com.forgeessentials.core.misc.TranslatedCommandException;
import com.forgeessentials.core.misc.Translator;
import com.forgeessentials.util.output.ChatOutputHandler;
import com.forgeessentials.util.PlayerInfo;
import com.forgeessentials.util.output.ChatOutputHandler;

public class CommandHome extends ForgeEssentialsCommandBase
{
@@ -43,13 +43,13 @@ public void processCommandPlayer(EntityPlayerMP sender, String[] args)
EntityPlayerMP player = sender;
if (args.length == 2)
{
if (!PermissionsManager.checkPermission(sender, TeleportModule.PERM_HOME_OTHER))
if (!PermissionManager.checkPermission(sender, TeleportModule.PERM_HOME_OTHER))
throw new TranslatedCommandException("You don't have the permission to access other players home.");
player = UserIdent.getPlayerByMatchOrUsername(sender, args[1]);
if (player == null)
throw new TranslatedCommandException("Player %s not found.", args[1]);
}
else if (!PermissionsManager.checkPermission(sender, TeleportModule.PERM_HOME_SET))
else if (!PermissionManager.checkPermission(sender, TeleportModule.PERM_HOME_SET))
throw new TranslatedCommandException("You don't have the permission to set your home location.");

WarpPoint p = new WarpPoint(sender);
@@ -89,9 +89,9 @@ public boolean canConsoleUseCommand()
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.TRUE;
return PermissionLevel.TRUE;
}

@Override
@@ -3,7 +3,7 @@
import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.util.MovingObjectPosition;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.commons.selections.WarpPoint;
import com.forgeessentials.core.commands.ForgeEssentialsCommandBase;
@@ -42,9 +42,9 @@ public String getPermissionNode()
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.OP;
return PermissionLevel.OP;
}

@Override
@@ -6,7 +6,7 @@

import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import org.apache.commons.lang3.StringUtils;

@@ -58,16 +58,16 @@ public String getPermissionNode()
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.OP;
return PermissionLevel.OP;
}

@Override
public void registerExtraPermissions()
{
APIRegistry.perms.registerPermission(PERM_SET, RegisteredPermValue.OP, "Allow setting personal warps");
APIRegistry.perms.registerPermission(PERM_DELETE, RegisteredPermValue.OP, "Allow deleting personal warps");
APIRegistry.perms.registerPermission(PERM_SET, PermissionLevel.OP, "Allow setting personal warps");
APIRegistry.perms.registerPermission(PERM_DELETE, PermissionLevel.OP, "Allow deleting personal warps");
APIRegistry.perms.registerPermissionProperty(PERM_LIMIT, "10", "Maximal personal warp count");
APIRegistry.perms.registerPermissionPropertyOp(PERM_LIMIT, "false");
}
@@ -4,7 +4,7 @@

import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.api.APIRegistry;
import com.forgeessentials.api.permissions.Zone;
@@ -56,9 +56,9 @@ public String getPermissionNode()
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.OP;
return PermissionLevel.OP;
}

@Override
@@ -5,9 +5,8 @@
import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraftforge.permissions.PermissionContext;
import net.minecraftforge.permissions.PermissionsManager;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;
import net.minecraftforge.permission.PermissionManager;

import com.forgeessentials.api.UserIdent;
import com.forgeessentials.api.permissions.FEPermissions;
@@ -16,8 +15,8 @@
import com.forgeessentials.core.misc.RespawnHandler;
import com.forgeessentials.core.misc.TeleportHelper;
import com.forgeessentials.core.misc.TranslatedCommandException;
import com.forgeessentials.util.output.ChatOutputHandler;
import com.forgeessentials.util.PlayerInfo;
import com.forgeessentials.util.output.ChatOutputHandler;

import cpw.mods.fml.common.FMLCommonHandler;

@@ -35,7 +34,7 @@ public void processCommandPlayer(EntityPlayerMP sender, String[] args)
{
if (args.length >= 1)
{
if (!PermissionsManager.checkPermission(sender, TeleportModule.PERM_SPAWN_OTHERS))
if (!PermissionManager.checkPermission(sender, TeleportModule.PERM_SPAWN_OTHERS))
{
throw new TranslatedCommandException(FEPermissions.MSG_NO_COMMAND_PERM);
}
@@ -74,7 +73,7 @@ public void processCommandConsole(ICommandSender sender, String[] args)
throw new TranslatedCommandException(FEPermissions.MSG_NOT_ENOUGH_ARGUMENTS);
}

if (!PermissionsManager.checkPermission(new PermissionContext().setCommandSender(sender).setCommand(this), TeleportModule.PERM_SPAWN_OTHERS))
if (!PermissionManager.checkPermission(sender, this, TeleportModule.PERM_SPAWN_OTHERS))
{
throw new TranslatedCommandException(FEPermissions.MSG_NO_COMMAND_PERM);
}
@@ -119,9 +118,9 @@ public List<String> addTabCompletionOptions(ICommandSender sender, String[] args
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.TRUE;
return PermissionLevel.TRUE;
}

@Override
@@ -2,7 +2,7 @@

import net.minecraft.command.ICommandSender;
import net.minecraft.world.WorldServer;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.api.APIRegistry;
import com.forgeessentials.api.UserIdent;
@@ -40,16 +40,16 @@ public String getPermissionNode()
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.TRUE;
return PermissionLevel.TRUE;
}

@Override
public void registerExtraPermissions()
{
APIRegistry.perms.registerPermission(PERM_HERE, RegisteredPermValue.TRUE, "Allow teleporting other players to your own location (inversed TPA)");
APIRegistry.perms.registerPermission(PERM_LOCATION, RegisteredPermValue.OP, "Allow teleporting other players to any location");
APIRegistry.perms.registerPermission(PERM_HERE, PermissionLevel.TRUE, "Allow teleporting other players to your own location (inversed TPA)");
APIRegistry.perms.registerPermission(PERM_LOCATION, PermissionLevel.OP, "Allow teleporting other players to any location");
}

@Override
@@ -5,8 +5,8 @@
import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.init.Blocks;
import net.minecraftforge.permissions.PermissionsManager;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;
import net.minecraftforge.permission.PermissionManager;

import com.forgeessentials.api.UserIdent;
import com.forgeessentials.commons.selections.WarpPoint;
@@ -32,7 +32,7 @@ public void processCommandPlayer(EntityPlayerMP sender, String[] args)
{
top(sender);
}
else if (args.length == 1 && PermissionsManager.checkPermission(sender, TeleportModule.PERM_TOP_OTHERS))
else if (args.length == 1 && PermissionManager.checkPermission(sender, TeleportModule.PERM_TOP_OTHERS))
{
EntityPlayerMP player = UserIdent.getPlayerByMatchOrUsername(sender, args[0]);
if (player != null)
@@ -100,9 +100,9 @@ public List<String> addTabCompletionOptions(ICommandSender sender, String[] args
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.TRUE;
return PermissionLevel.TRUE;
}

@Override
@@ -7,8 +7,8 @@
import net.minecraft.command.PlayerSelector;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraftforge.permissions.PermissionsManager;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;
import net.minecraftforge.permission.PermissionManager;

import com.forgeessentials.api.UserIdent;
import com.forgeessentials.commons.selections.Point;
@@ -17,9 +17,9 @@
import com.forgeessentials.core.misc.TeleportHelper;
import com.forgeessentials.core.misc.TranslatedCommandException;
import com.forgeessentials.core.misc.Translator;
import com.forgeessentials.util.output.ChatOutputHandler;
import com.forgeessentials.util.PlayerInfo;
import com.forgeessentials.util.ServerUtil;
import com.forgeessentials.util.output.ChatOutputHandler;

import cpw.mods.fml.common.FMLCommonHandler;

@@ -51,7 +51,7 @@ public void processCommandPlayer(EntityPlayerMP sender, String[] args)
throw new TranslatedCommandException("Player %s does not exist, or is not online.", args[0]);
TeleportHelper.teleport(sender, new WarpPoint(target));
}
else if (args.length == 2 && PermissionsManager.checkPermission(sender, TeleportModule.PERM_TP_OTHERS))
else if (args.length == 2 && PermissionManager.checkPermission(sender, TeleportModule.PERM_TP_OTHERS))
{

EntityPlayerMP player = UserIdent.getPlayerByMatchOrUsername(sender, args[0]);
@@ -172,9 +172,9 @@ public List<String> addTabCompletionOptions(ICommandSender sender, String[] args
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.OP;
return PermissionLevel.OP;
}

@Override
@@ -5,7 +5,7 @@

import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.commons.selections.Point;
import com.forgeessentials.commons.selections.WarpPoint;
@@ -72,9 +72,9 @@ public List<String> addTabCompletionOptions(ICommandSender sender, String[] args
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.TRUE;
return PermissionLevel.TRUE;
}

@Override
@@ -6,7 +6,7 @@

import net.minecraft.command.ICommandSender;
import net.minecraft.entity.Entity;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import org.apache.commons.lang3.StringUtils;

@@ -56,16 +56,16 @@ public String getPermissionNode()
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.OP;
return PermissionLevel.OP;
}

@Override
public void registerExtraPermissions()
{
APIRegistry.perms.registerPermission(PERM_SET, RegisteredPermValue.OP, "Allow setting warps");
APIRegistry.perms.registerPermission(PERM_DELETE, RegisteredPermValue.OP, "Allow deleting warps");
APIRegistry.perms.registerPermission(PERM_SET, PermissionLevel.OP, "Allow setting warps");
APIRegistry.perms.registerPermission(PERM_DELETE, PermissionLevel.OP, "Allow deleting warps");
APIRegistry.perms.registerPermissionProperty(PERM_LIMIT, "10", "Maximal warp count");
APIRegistry.perms.registerPermissionPropertyOp(PERM_LIMIT, "false");
}
@@ -1,7 +1,7 @@
package com.forgeessentials.teleport;

import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.api.APIRegistry;
import com.forgeessentials.core.ForgeEssentials;
@@ -91,20 +91,20 @@ public void serverStarting(FEModuleServerInitEvent e)

APIRegistry.perms.registerPermissionProperty(PERM_TPA_TIMEOUT, "20", "Amount of sec a user has to accept a TPA request");

APIRegistry.perms.registerPermission(PERM_BACK_ONDEATH, RegisteredPermValue.TRUE, "Allow returning to the last death location with back-command");
APIRegistry.perms.registerPermission(PERM_BACK_ONDEATH, PermissionLevel.TRUE, "Allow returning to the last death location with back-command");
APIRegistry.perms
.registerPermission(PERM_BACK_ONTP, RegisteredPermValue.TRUE, "Allow returning to the last location before teleport with back-command");
APIRegistry.perms.registerPermission(PERM_BED_OTHERS, RegisteredPermValue.OP, "Allow teleporting to other player's bed location");

APIRegistry.perms.registerPermission(PERM_HOME, RegisteredPermValue.TRUE, "Allow usage of /home");
APIRegistry.perms.registerPermission(PERM_HOME_SET, RegisteredPermValue.TRUE, "Allow setting of home location");
APIRegistry.perms.registerPermission(PERM_HOME_OTHER, RegisteredPermValue.OP, "Allow setting other players home location");

APIRegistry.perms.registerPermission(PERM_SPAWN_OTHERS, RegisteredPermValue.OP, "Allow setting other player's spawn");
APIRegistry.perms.registerPermission(PERM_TOP_OTHERS, RegisteredPermValue.OP);
APIRegistry.perms.registerPermission(PERM_TPA_SENDREQUEST, RegisteredPermValue.TRUE, "Allow sending teleport-to requests");
APIRegistry.perms.registerPermission(PERM_TPAHERE_SENDREQUEST, RegisteredPermValue.TRUE, "Allow sending teleport-here requests");
APIRegistry.perms.registerPermission(PERM_WARP_ADMIN, RegisteredPermValue.OP);
.registerPermission(PERM_BACK_ONTP, PermissionLevel.TRUE, "Allow returning to the last location before teleport with back-command");
APIRegistry.perms.registerPermission(PERM_BED_OTHERS, PermissionLevel.OP, "Allow teleporting to other player's bed location");

APIRegistry.perms.registerPermission(PERM_HOME, PermissionLevel.TRUE, "Allow usage of /home");
APIRegistry.perms.registerPermission(PERM_HOME_SET, PermissionLevel.TRUE, "Allow setting of home location");
APIRegistry.perms.registerPermission(PERM_HOME_OTHER, PermissionLevel.OP, "Allow setting other players home location");

APIRegistry.perms.registerPermission(PERM_SPAWN_OTHERS, PermissionLevel.OP, "Allow setting other player's spawn");
APIRegistry.perms.registerPermission(PERM_TOP_OTHERS, PermissionLevel.OP);
APIRegistry.perms.registerPermission(PERM_TPA_SENDREQUEST, PermissionLevel.TRUE, "Allow sending teleport-to requests");
APIRegistry.perms.registerPermission(PERM_TPAHERE_SENDREQUEST, PermissionLevel.TRUE, "Allow sending teleport-here requests");
APIRegistry.perms.registerPermission(PERM_WARP_ADMIN, PermissionLevel.OP);
}

}
@@ -3,7 +3,7 @@
import java.util.Map.Entry;

import net.minecraft.command.ICommandSender;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.commons.selections.Point;
import com.forgeessentials.commons.selections.Selection;
@@ -45,9 +45,9 @@ public String getPermissionNode()
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.OP;
return PermissionLevel.OP;
}

@Override
@@ -10,16 +10,16 @@
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.IChatComponent;
import net.minecraftforge.permissions.PermissionsManager;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;
import net.minecraftforge.permission.PermissionManager;

import com.forgeessentials.api.UserIdent;
import com.forgeessentials.core.commands.ForgeEssentialsCommandBase;
import com.forgeessentials.core.misc.TeleportHelper;
import com.forgeessentials.core.misc.TranslatedCommandException;
import com.forgeessentials.core.misc.Translator;
import com.forgeessentials.util.output.ChatOutputHandler;
import com.forgeessentials.util.ServerUtil;
import com.forgeessentials.util.output.ChatOutputHandler;

public class CommandTicket extends ForgeEssentialsCommandBase
{
@@ -184,7 +184,7 @@ public boolean permcheck(ICommandSender sender, String perm)
{
if (sender instanceof EntityPlayer)
{
return PermissionsManager.checkPermission((EntityPlayer) sender, ModuleTickets.PERMBASE + "." + perm);
return PermissionManager.checkPermission((EntityPlayer) sender, ModuleTickets.PERMBASE + "." + perm);
}
else
{
@@ -208,9 +208,9 @@ public String getCommandUsage(ICommandSender sender)
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{

return RegisteredPermValue.TRUE;
return PermissionLevel.TRUE;
}
}
@@ -5,18 +5,18 @@
import java.util.Map;

import net.minecraft.util.EnumChatFormatting;
import net.minecraftforge.permissions.PermissionsManager;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;
import net.minecraftforge.permission.PermissionManager;

import com.forgeessentials.api.APIRegistry;
import com.forgeessentials.core.ForgeEssentials;
import com.forgeessentials.core.misc.FECommandManager;
import com.forgeessentials.core.moduleLauncher.FEModule;
import com.forgeessentials.data.v2.DataManager;
import com.forgeessentials.util.output.ChatOutputHandler;
import com.forgeessentials.util.events.FEModuleEvent.FEModuleInitEvent;
import com.forgeessentials.util.events.FEModuleEvent.FEModuleServerInitEvent;
import com.forgeessentials.util.events.FEModuleEvent.FEModuleServerStopEvent;
import com.forgeessentials.util.output.ChatOutputHandler;

import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
@@ -46,11 +46,11 @@ public void load(FEModuleInitEvent e)
public void serverStarting(FEModuleServerInitEvent e)
{
loadAll();
APIRegistry.perms.registerPermission(PERMBASE + ".new", RegisteredPermValue.TRUE);
APIRegistry.perms.registerPermission(PERMBASE + ".view", RegisteredPermValue.TRUE);
APIRegistry.perms.registerPermission(PERMBASE + ".new", PermissionLevel.TRUE);
APIRegistry.perms.registerPermission(PERMBASE + ".view", PermissionLevel.TRUE);

APIRegistry.perms.registerPermission(PERMBASE + ".tp", RegisteredPermValue.TRUE);
APIRegistry.perms.registerPermission(PERMBASE + ".admin", RegisteredPermValue.OP);
APIRegistry.perms.registerPermission(PERMBASE + ".tp", PermissionLevel.TRUE);
APIRegistry.perms.registerPermission(PERMBASE + ".admin", PermissionLevel.OP);
}

@SubscribeEvent
@@ -101,7 +101,7 @@ public static Ticket getID(int i)
@SubscribeEvent
public void loadData(PlayerEvent.PlayerLoggedInEvent e)
{
if (PermissionsManager.checkPermission(e.player, ModuleTickets.PERMBASE + ".admin"))
if (PermissionManager.checkPermission(e.player, ModuleTickets.PERMBASE + ".admin"))
{
if (!ModuleTickets.ticketList.isEmpty())
{
@@ -14,7 +14,7 @@
import net.minecraft.command.ICommand;
import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraftforge.permissions.PermissionContext;
import net.minecraftforge.permission.PermissionContext;

import org.apache.commons.lang3.StringUtils;

@@ -51,7 +51,7 @@ public CommandParserArgs(ICommand command, String[] args, ICommandSender sender,
this.isTabCompletion = isTabCompletion;
if (isTabCompletion)
tabCompletion = new ArrayList<>();
this.permissionContext = new PermissionContext().setCommandSender(sender).setCommand(command);
this.permissionContext = new PermissionContext(sender, command);
}

public CommandParserArgs(ICommand command, String[] args, ICommandSender sender)
@@ -1,7 +1,7 @@
package com.forgeessentials.util.questioner;

import net.minecraft.command.ICommandSender;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.core.commands.ForgeEssentialsCommandBase;

@@ -39,9 +39,9 @@ public String getPermissionNode()
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.TRUE;
return PermissionLevel.TRUE;
}

@Override
@@ -2,11 +2,11 @@

import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.core.commands.ForgeEssentialsCommandBase;
import com.forgeessentials.util.output.ChatOutputHandler;
import com.forgeessentials.util.PlayerInfo;
import com.forgeessentials.util.output.ChatOutputHandler;

public class CommandDeselect extends ForgeEssentialsCommandBase
{
@@ -53,9 +53,9 @@ public String getCommandUsage(ICommandSender sender)
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{

return RegisteredPermValue.TRUE;
return PermissionLevel.TRUE;
}
}
@@ -4,7 +4,7 @@

import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.commons.selections.Point;
import com.forgeessentials.commons.selections.Selection;
@@ -235,10 +235,10 @@ public String getCommandUsage(ICommandSender sender)
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{

return RegisteredPermValue.TRUE;
return PermissionLevel.TRUE;
}

}
@@ -3,7 +3,7 @@
import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.server.MinecraftServer;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.commons.selections.Selection;
import com.forgeessentials.core.commands.ForgeEssentialsCommandBase;
@@ -54,9 +54,9 @@ public String getCommandUsage(ICommandSender sender)
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.TRUE;
return PermissionLevel.TRUE;
}

}
@@ -5,7 +5,7 @@
import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.util.MovingObjectPosition;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.api.APIRegistry;
import com.forgeessentials.api.UserIdent;
@@ -140,9 +140,9 @@ public String getCommandUsage(ICommandSender sender)
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.TRUE;
return PermissionLevel.TRUE;
}

}
@@ -6,14 +6,14 @@
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.Item;
import net.minecraft.util.EnumChatFormatting;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.api.permissions.FEPermissions;
import com.forgeessentials.core.commands.ForgeEssentialsCommandBase;
import com.forgeessentials.core.misc.TranslatedCommandException;
import com.forgeessentials.core.moduleLauncher.ModuleLauncher;
import com.forgeessentials.util.output.ChatOutputHandler;
import com.forgeessentials.util.PlayerInfo;
import com.forgeessentials.util.output.ChatOutputHandler;

public class CommandWand extends ForgeEssentialsCommandBase
{
@@ -98,9 +98,9 @@ public String getCommandUsage(ICommandSender sender)
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.TRUE;
return PermissionLevel.TRUE;
}

}
@@ -2,7 +2,7 @@

import net.minecraft.command.ICommandSender;
import net.minecraft.world.WorldServer;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;
import net.minecraftforge.permission.PermissionLevel;

import com.forgeessentials.api.permissions.FEPermissions;
import com.forgeessentials.commons.selections.Point;
@@ -19,6 +19,12 @@ public String getCommandName()
{
return "worldborder";
}

@Override
public String[] getDefaultAliases()
{
return new String[]{ "wb" };
}

@Override
public String getCommandUsage(ICommandSender p_71518_1_)
@@ -33,9 +39,9 @@ public String getPermissionNode()
}

@Override
public RegisteredPermValue getDefaultPermission()
public PermissionLevel getPermissionLevel()
{
return RegisteredPermValue.OP;
return PermissionLevel.OP;
}

@Override

This file was deleted.

@@ -0,0 +1,51 @@
package net.minecraftforge.permission;

import java.util.HashMap;
import java.util.Map;

import net.minecraft.server.MinecraftServer;
import net.minecraft.server.management.UserListOpsEntry;

import com.mojang.authlib.GameProfile;

public class DefaultPermissionProvider implements IPermissionProvider
{

private static final String PERM_SEED = PermissionManager.DEFAULT_COMMAND_NODE + ".seed";
private static final String PERM_TELL = PermissionManager.DEFAULT_COMMAND_NODE + ".tell";
private static final String PERM_HELP = PermissionManager.DEFAULT_COMMAND_NODE + ".help";
private static final String PERM_ME = PermissionManager.DEFAULT_COMMAND_NODE + ".me";

protected static final Map<String, PermissionLevel> permissions = new HashMap<String, PermissionLevel>();

@Override
public boolean checkPermission(PermissionContext context, String permission)
{
// Special permission checks from EntityPlayerMP
if (PERM_SEED.equals(permission) && !MinecraftServer.getServer().isDedicatedServer())
return true;
if (PERM_TELL.equals(permission) || PERM_HELP.equals(permission) || PERM_ME.equals(permission))
return true;

PermissionLevel level = permissions.get(permission);
if (level == null)
return true;
int opLevel = context.isPlayer() ? getOpLevel(context.getPlayer().getGameProfile()) : 0;
return level.getOpLevel() <= opLevel;
}

@Override
public void registerPermission(String permission, PermissionLevel level)
{
permissions.put(permission, level);
}

protected int getOpLevel(GameProfile profile)
{
if (!MinecraftServer.getServer().getConfigurationManager().func_152596_g(profile))
return 0;
UserListOpsEntry entry = (UserListOpsEntry) MinecraftServer.getServer().getConfigurationManager().func_152603_m().func_152683_b(profile);
return entry != null ? entry.func_152644_a() : MinecraftServer.getServer().getOpPermissionLevel();
}

}
@@ -0,0 +1,30 @@
package net.minecraftforge.permission;

/**
* Interface for permission management systems to implement
*/
public interface IPermissionProvider
{

/**
* Checks a permission
*
* @param context
* The context where the permission is being checked in
* @param permission
* The permission to check
* @return Whether the permission is allowed
*/
boolean checkPermission(PermissionContext context, String permission);

/**
* Notifies the permission manager about registered permissions
*
* @param permission
* The name of the permission
* @param level
* Default access level for the permission
*/
void registerPermission(String permission, PermissionLevel level);

}
@@ -1,23 +1,25 @@
package net.minecraftforge.permissions;
package net.minecraftforge.permission;

import net.minecraft.command.ICommand;
import net.minecraft.command.ICommandSender;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.Vec3;

/**
* This is the base class for a context. A permission framework <i><b>might</b></i> subclass this context, to allow additional properties for the context.
* Class to hold all information regarding a permission check
*/
public class PermissionContext implements IContext {
public class PermissionContext
{

private EntityPlayer player;

private EntityPlayer targetPlayer;
private ICommandSender sender;

private ICommand command;

private ICommandSender commandSender;
private int dimension;

private Vec3 sourceLocationStart;

@@ -31,75 +33,89 @@ public class PermissionContext implements IContext {

private Entity targetEntity;

@Override
public EntityPlayer getPlayer()
public PermissionContext()
{
return player;
}

@Override
public EntityPlayer getTargetPlayer()
public PermissionContext(ICommandSender sender)
{
return targetPlayer;
this.sender = sender;
if (sender instanceof EntityPlayer)
{
EntityPlayer player = (EntityPlayer) sender;
this.player = player;
this.dimension = player.dimension;
this.sourceLocationStart = Vec3.createVectorHelper(player.posX, player.posY, player.posZ);
}
}

public PermissionContext(ICommandSender sender, ICommand command)
{
this(sender);
this.command = command;
}

public ICommandSender getSender()
{
return sender;
}

public EntityPlayer getPlayer()
{
return player;
}

@Override
public ICommand getCommand()
{
return command;
}

@Override
public ICommandSender getCommandSender()
public int getDimension()
{
return commandSender;
return dimension;
}

@Override
public Vec3 getSourceLocationStart()
{
return sourceLocationStart;
}

@Override
public Vec3 getSourceLocationEnd()
{
return sourceLocationEnd;
}

@Override
public Vec3 getTargetLocationStart()
{
return targetLocationStart;
}

@Override
public Vec3 getTargetLocationEnd()
{
return targetLocationEnd;
}

@Override
public Entity getSourceEntity()
{
return sourceEntity;
}

@Override
public Entity getTargetEntity()
{
return targetEntity;
}

public PermissionContext setPlayer(EntityPlayer player)
public PermissionContext setSender(ICommandSender sender)
{
this.player = player;
if (sender instanceof EntityPlayer)
return setPlayer((EntityPlayer) sender);
this.sender = sender;
return this;
}

public PermissionContext setTargetPlayer(EntityPlayer player)
public PermissionContext setPlayer(EntityPlayer player)
{
this.targetPlayer = player;
this.sender = this.player = player;
return this;
}

@@ -109,60 +125,56 @@ public PermissionContext setCommand(ICommand command)
return this;
}

public PermissionContext setCommandSender(ICommandSender sender)
public PermissionContext setDimension(int dimension)
{
this.commandSender = sender;
this.dimension = dimension;
return this;
}

public PermissionContext setSourceLocationStart(Vec3 location)
public PermissionContext setSourceStart(Vec3 location)
{
this.sourceLocationStart = location;
return this;
}

public PermissionContext setSourceLocationEnd(Vec3 location)
public PermissionContext setSourceEnd(Vec3 location)
{
this.sourceLocationEnd = location;
return this;
}

public PermissionContext setTargetLocationStart(Vec3 location)
public PermissionContext setTargetStart(Vec3 location)
{
this.targetLocationStart = location;
return this;
}

public PermissionContext setTargetLocationEnd(Vec3 location)
public PermissionContext setTargetEnd(Vec3 location)
{
this.targetLocationEnd = location;
return this;
}

public PermissionContext setSourceEntity(Entity entity)
public PermissionContext setSource(Entity entity)
{
this.sourceEntity = entity;
return this;
}

public PermissionContext setTargetEntity(Entity entity)
public PermissionContext setTarget(Entity entity)
{
this.targetEntity = entity;
return this;
}

public PermissionContext()
{
}

public boolean isConsole()
{
return player == null && commandSender != null && !(commandSender instanceof EntityPlayer);
return player == null && (sender == null || sender instanceof MinecraftServer);
}

public boolean isPlayer()
{
return (player instanceof EntityPlayer) || (commandSender instanceof EntityPlayer);
return player instanceof EntityPlayer;
}

}
@@ -0,0 +1,44 @@
package net.minecraftforge.permission;

public enum PermissionLevel
{

TRUE(0), OP_1(1), OP_2(2), OP_3(3), OP(4), FALSE(5);

private int opLevel;

private PermissionLevel(int opLevel)
{
this.opLevel = opLevel;
}

public int getOpLevel()
{
return opLevel;
}

public static PermissionLevel fromBoolean(boolean value)
{
return value ? TRUE : FALSE;
}

public static PermissionLevel fromInteger(int value)
{
switch (value)
{
case 0:
return TRUE;
case 1:
return OP_1;
case 2:
return OP_2;
case 3:
return OP_3;
case 4:
return OP;
default:
return FALSE;
}
}

}
@@ -0,0 +1,130 @@
package net.minecraftforge.permission;

import net.minecraft.command.CommandBase;
import net.minecraft.command.ICommand;
import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.EnumChatFormatting;
import net.minecraftforge.event.CommandEvent;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.FMLLog;
import cpw.mods.fml.common.eventhandler.EventPriority;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;

public final class PermissionManager
{

public static final String DEFAULT_COMMAND_NODE = "command.";

protected static IPermissionProvider permissionProvider = new DefaultPermissionProvider();

protected static PermissionManager instance = new PermissionManager();

/* ------------------------------------------------------------ */

public PermissionManager()
{
FMLCommonHandler.instance().bus().register(this);
}

@SubscribeEvent(priority = EventPriority.HIGHEST)
protected void commandEvent(CommandEvent event)
{
if (!checkPermission(event.sender, event.command))
{
event.setCanceled(true);
ChatComponentTranslation msg = new ChatComponentTranslation("commands.generic.permission", new Object[0]);
msg.getChatStyle().setColor(EnumChatFormatting.RED);
event.sender.addChatMessage(msg);
}
}

/* ------------------------------------------------------------ */

public static void setPermissionProvider(IPermissionProvider provider) throws IllegalStateException
{
if (provider == null)
provider = new DefaultPermissionProvider();
if (!(permissionProvider instanceof DefaultPermissionProvider))
{
FMLLog.severe("Registration of permission provider %s overwriting permission provider %s!", provider.getClass().getName(), permissionProvider
.getClass().getName());
}
permissionProvider = provider;
FMLLog.fine("Registered permission provider %s", permissionProvider.getClass().getName());
}

public static IPermissionProvider getPermissionProvider()
{
return permissionProvider;
}

/* ------------------------------------------------------------ */

public static String getCommandPermission(ICommand command)
{
if (command instanceof PermissionObject)
{
String permission = ((PermissionObject) command).getPermissionNode();
if (permission != null)
return permission;
}
return DEFAULT_COMMAND_NODE + command.getCommandName();
}

public static PermissionLevel getCommandLevel(ICommand command)
{
if (command instanceof PermissionObject)
return ((PermissionObject) command).getPermissionLevel();
if (command instanceof CommandBase)
return PermissionLevel.fromInteger(((CommandBase) command).getRequiredPermissionLevel());
return PermissionLevel.OP;
}

/**
* <b>FOR INTERNAL USE ONLY</b> <br>
* This method should not be called directly, but instead is called by forge upon registration of a new command
*
* @param command
*/
public static void registerCommandPermission(ICommand command)
{
String permission = getCommandPermission(command);
PermissionLevel level = getCommandLevel(command);
registerPermission(permission, level);
}

/* ------------------------------------------------------------ */

public static void registerPermission(String permission, PermissionLevel level)
{
permissionProvider.registerPermission(permission, level);
}

public static boolean checkPermission(PermissionContext context, String permission)
{
return permissionProvider.checkPermission(context, permission);
}

public static boolean checkPermission(EntityPlayer player, String permission)
{
return checkPermission(new PermissionContext(player), permission);
}

public static boolean checkPermission(ICommandSender sender, ICommand command, String permission)
{
return checkPermission(new PermissionContext(sender, command), permission);
}

public static boolean checkPermission(ICommandSender sender, ICommand command)
{
return checkPermission(new PermissionContext(sender, command), getCommandPermission(command));
}

public static boolean checkPermission(ICommandSender sender, String permission)
{
return checkPermission(new PermissionContext(sender), permission);
}

}
@@ -0,0 +1,10 @@
package net.minecraftforge.permission;

public interface PermissionObject
{

public String getPermissionNode();

public PermissionLevel getPermissionLevel();

}

This file was deleted.

This file was deleted.