New permission system

This commit is contained in:
Daniel Saukel 2016-04-29 16:42:52 +02:00
parent 4737441f9b
commit 0ccbc58be1
32 changed files with 301 additions and 127 deletions

View File

@ -38,6 +38,7 @@ import io.github.dre2n.dungeonsxl.listener.HangingListener;
import io.github.dre2n.dungeonsxl.listener.PlayerListener; import io.github.dre2n.dungeonsxl.listener.PlayerListener;
import io.github.dre2n.dungeonsxl.listener.WorldListener; import io.github.dre2n.dungeonsxl.listener.WorldListener;
import io.github.dre2n.dungeonsxl.player.DGroup; import io.github.dre2n.dungeonsxl.player.DGroup;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import io.github.dre2n.dungeonsxl.player.DPlayer; import io.github.dre2n.dungeonsxl.player.DPlayer;
import io.github.dre2n.dungeonsxl.player.DPlayers; import io.github.dre2n.dungeonsxl.player.DPlayers;
import io.github.dre2n.dungeonsxl.player.DSavePlayer; import io.github.dre2n.dungeonsxl.player.DSavePlayer;
@ -124,6 +125,7 @@ public class DungeonsXL extends BRPlugin {
// Load Language 2 // Load Language 2
loadMessageConfig(new File(getDataFolder(), "languages/" + mainConfig.getLanguage() + ".yml")); loadMessageConfig(new File(getDataFolder(), "languages/" + mainConfig.getLanguage() + ".yml"));
loadDCommands(); loadDCommands();
DPermissions.register();
loadGameTypes(); loadGameTypes();
loadRequirementTypes(); loadRequirementTypes();
loadRewardTypes(); loadRewardTypes();

View File

@ -22,6 +22,7 @@ import io.github.dre2n.commons.util.messageutil.MessageUtil;
import io.github.dre2n.dungeonsxl.DungeonsXL; import io.github.dre2n.dungeonsxl.DungeonsXL;
import io.github.dre2n.dungeonsxl.config.DMessages; import io.github.dre2n.dungeonsxl.config.DMessages;
import io.github.dre2n.dungeonsxl.player.DGlobalPlayer; import io.github.dre2n.dungeonsxl.player.DGlobalPlayer;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -38,7 +39,7 @@ public class BreakCommand extends BRCommand {
setMinArgs(0); setMinArgs(0);
setMaxArgs(0); setMaxArgs(0);
setHelp(messageConfig.getMessage(DMessages.HELP_CMD_BREAK)); setHelp(messageConfig.getMessage(DMessages.HELP_CMD_BREAK));
setPermission("dxl.break"); setPermission(DPermissions.BREAK.getNode());
setPlayerCommand(true); setPlayerCommand(true);
} }

View File

@ -21,6 +21,7 @@ import io.github.dre2n.commons.config.MessageConfig;
import io.github.dre2n.commons.util.messageutil.MessageUtil; import io.github.dre2n.commons.util.messageutil.MessageUtil;
import io.github.dre2n.dungeonsxl.DungeonsXL; import io.github.dre2n.dungeonsxl.DungeonsXL;
import io.github.dre2n.dungeonsxl.config.DMessages; import io.github.dre2n.dungeonsxl.config.DMessages;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import io.github.dre2n.dungeonsxl.player.DPlayer; import io.github.dre2n.dungeonsxl.player.DPlayer;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -38,7 +39,7 @@ public class ChatCommand extends BRCommand {
setMinArgs(0); setMinArgs(0);
setMaxArgs(0); setMaxArgs(0);
setHelp(messageConfig.getMessage(DMessages.HELP_CMD_CHAT)); setHelp(messageConfig.getMessage(DMessages.HELP_CMD_CHAT));
setPermission("dxl.chat"); setPermission(DPermissions.CHAT.getNode());
setPlayerCommand(true); setPlayerCommand(true);
} }

View File

@ -22,6 +22,7 @@ import io.github.dre2n.commons.util.messageutil.MessageUtil;
import io.github.dre2n.dungeonsxl.DungeonsXL; import io.github.dre2n.dungeonsxl.DungeonsXL;
import io.github.dre2n.dungeonsxl.config.DMessages; import io.github.dre2n.dungeonsxl.config.DMessages;
import io.github.dre2n.dungeonsxl.player.DGlobalPlayer; import io.github.dre2n.dungeonsxl.player.DGlobalPlayer;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -38,7 +39,7 @@ public class ChatSpyCommand extends BRCommand {
setMinArgs(0); setMinArgs(0);
setMaxArgs(0); setMaxArgs(0);
setHelp(messageConfig.getMessage(DMessages.HELP_CMD_CHATSPY)); setHelp(messageConfig.getMessage(DMessages.HELP_CMD_CHATSPY));
setPermission("dxl.chatspy"); setPermission(DPermissions.CHAT_SPY.getNode());
setPlayerCommand(true); setPlayerCommand(true);
} }

View File

@ -21,6 +21,7 @@ import io.github.dre2n.commons.config.MessageConfig;
import io.github.dre2n.commons.util.messageutil.MessageUtil; import io.github.dre2n.commons.util.messageutil.MessageUtil;
import io.github.dre2n.dungeonsxl.DungeonsXL; import io.github.dre2n.dungeonsxl.DungeonsXL;
import io.github.dre2n.dungeonsxl.config.DMessages; import io.github.dre2n.dungeonsxl.config.DMessages;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import io.github.dre2n.dungeonsxl.player.DPlayer; import io.github.dre2n.dungeonsxl.player.DPlayer;
import io.github.dre2n.dungeonsxl.world.EditWorld; import io.github.dre2n.dungeonsxl.world.EditWorld;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -40,7 +41,7 @@ public class CreateCommand extends BRCommand {
setMaxArgs(1); setMaxArgs(1);
setCommand("create"); setCommand("create");
setHelp(messageConfig.getMessage(DMessages.HELP_CMD_CREATE)); setHelp(messageConfig.getMessage(DMessages.HELP_CMD_CREATE));
setPermission("dxl.create"); setPermission(DPermissions.CREATE.getNode());
setPlayerCommand(true); setPlayerCommand(true);
setConsoleCommand(true); setConsoleCommand(true);
} }

View File

@ -21,7 +21,9 @@ import io.github.dre2n.commons.config.MessageConfig;
import io.github.dre2n.commons.util.messageutil.MessageUtil; import io.github.dre2n.commons.util.messageutil.MessageUtil;
import io.github.dre2n.dungeonsxl.DungeonsXL; import io.github.dre2n.dungeonsxl.DungeonsXL;
import io.github.dre2n.dungeonsxl.config.DMessages; import io.github.dre2n.dungeonsxl.config.DMessages;
import io.github.dre2n.dungeonsxl.player.DGlobalPlayer;
import io.github.dre2n.dungeonsxl.player.DGroup; import io.github.dre2n.dungeonsxl.player.DGroup;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import io.github.dre2n.dungeonsxl.player.DPlayer; import io.github.dre2n.dungeonsxl.player.DPlayer;
import io.github.dre2n.dungeonsxl.world.EditWorld; import io.github.dre2n.dungeonsxl.world.EditWorld;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -52,7 +54,7 @@ public class EditCommand extends BRCommand {
DGroup dGroup = DGroup.getByPlayer(player); DGroup dGroup = DGroup.getByPlayer(player);
DPlayer dPlayer = DPlayer.getByPlayer(player); DPlayer dPlayer = DPlayer.getByPlayer(player);
if (!(EditWorld.isInvitedPlayer(mapName, player.getUniqueId(), player.getName()) || player.hasPermission("dxl.edit"))) { if (!(EditWorld.isInvitedPlayer(mapName, player.getUniqueId(), player.getName()) || DPermissions.hasPermission(player, DPermissions.EDIT))) {
MessageUtil.sendMessage(player, messageConfig.getMessage(DMessages.ERROR_NO_PERMISSIONS)); MessageUtil.sendMessage(player, messageConfig.getMessage(DMessages.ERROR_NO_PERMISSIONS));
return; return;
} }

View File

@ -22,7 +22,9 @@ import io.github.dre2n.commons.util.messageutil.MessageUtil;
import io.github.dre2n.dungeonsxl.DungeonsXL; import io.github.dre2n.dungeonsxl.DungeonsXL;
import io.github.dre2n.dungeonsxl.config.DMessages; import io.github.dre2n.dungeonsxl.config.DMessages;
import io.github.dre2n.dungeonsxl.game.Game; import io.github.dre2n.dungeonsxl.game.Game;
import io.github.dre2n.dungeonsxl.player.DGlobalPlayer;
import io.github.dre2n.dungeonsxl.player.DGroup; import io.github.dre2n.dungeonsxl.player.DGroup;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import io.github.dre2n.dungeonsxl.player.DPlayer; import io.github.dre2n.dungeonsxl.player.DPlayer;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -40,7 +42,7 @@ public class EnterCommand extends BRCommand {
setMaxArgs(2); setMaxArgs(2);
setCommand("enter"); setCommand("enter");
setHelp(messageConfig.getMessage(DMessages.HELP_CMD_ENTER)); setHelp(messageConfig.getMessage(DMessages.HELP_CMD_ENTER));
setPermission("dxl.enter"); setPermission(DPermissions.ENTER.getNode());
setPlayerCommand(true); setPlayerCommand(true);
} }
@ -72,7 +74,7 @@ public class EnterCommand extends BRCommand {
joining = new DGroup(captain, game.getWorld().getMapName(), game.getDungeon() != null); joining = new DGroup(captain, game.getWorld().getMapName(), game.getDungeon() != null);
} }
if (joining.getCaptain() != captain && !sender.hasPermission("dxl.bypass")) { if (joining.getCaptain() != captain && !DPermissions.hasPermission(sender, DPermissions.BYPASS)) {
MessageUtil.sendMessage(sender, messageConfig.getMessage(DMessages.ERROR_NOT_CAPTAIN)); MessageUtil.sendMessage(sender, messageConfig.getMessage(DMessages.ERROR_NOT_CAPTAIN));
return; return;
} }

View File

@ -22,6 +22,7 @@ import io.github.dre2n.commons.util.messageutil.MessageUtil;
import io.github.dre2n.dungeonsxl.DungeonsXL; import io.github.dre2n.dungeonsxl.DungeonsXL;
import io.github.dre2n.dungeonsxl.config.DMessages; import io.github.dre2n.dungeonsxl.config.DMessages;
import io.github.dre2n.dungeonsxl.player.DGroup; import io.github.dre2n.dungeonsxl.player.DGroup;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import io.github.dre2n.dungeonsxl.player.DPlayer; import io.github.dre2n.dungeonsxl.player.DPlayer;
import io.github.dre2n.dungeonsxl.world.EditWorld; import io.github.dre2n.dungeonsxl.world.EditWorld;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -40,7 +41,7 @@ public class EscapeCommand extends BRCommand {
setMinArgs(0); setMinArgs(0);
setMaxArgs(0); setMaxArgs(0);
setHelp(messageConfig.getMessage(DMessages.HELP_CMD_ESCAPE)); setHelp(messageConfig.getMessage(DMessages.HELP_CMD_ESCAPE));
setPermission("dxl.escape"); setPermission(DPermissions.ESCAPE.getNode());
setPlayerCommand(true); setPlayerCommand(true);
} }

View File

@ -23,6 +23,7 @@ import io.github.dre2n.dungeonsxl.DungeonsXL;
import io.github.dre2n.dungeonsxl.config.DMessages; import io.github.dre2n.dungeonsxl.config.DMessages;
import io.github.dre2n.dungeonsxl.game.Game; import io.github.dre2n.dungeonsxl.game.Game;
import io.github.dre2n.dungeonsxl.player.DGroup; import io.github.dre2n.dungeonsxl.player.DGroup;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import io.github.dre2n.dungeonsxl.world.GameWorld; import io.github.dre2n.dungeonsxl.world.GameWorld;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -40,7 +41,7 @@ public class GameCommand extends BRCommand {
setMinArgs(0); setMinArgs(0);
setMaxArgs(0); setMaxArgs(0);
setHelp(messageConfig.getMessage(DMessages.HELP_CMD_GAME)); setHelp(messageConfig.getMessage(DMessages.HELP_CMD_GAME));
setPermission("dxl.game"); setPermission(DPermissions.GAME.getNode());
setPlayerCommand(true); setPlayerCommand(true);
} }

View File

@ -24,7 +24,9 @@ import io.github.dre2n.dungeonsxl.config.DMessages;
import io.github.dre2n.dungeonsxl.event.dgroup.DGroupCreateEvent; import io.github.dre2n.dungeonsxl.event.dgroup.DGroupCreateEvent;
import io.github.dre2n.dungeonsxl.event.dgroup.DGroupDisbandEvent; import io.github.dre2n.dungeonsxl.event.dgroup.DGroupDisbandEvent;
import io.github.dre2n.dungeonsxl.event.dplayer.DPlayerKickEvent; import io.github.dre2n.dungeonsxl.event.dplayer.DPlayerKickEvent;
import io.github.dre2n.dungeonsxl.player.DGlobalPlayer;
import io.github.dre2n.dungeonsxl.player.DGroup; import io.github.dre2n.dungeonsxl.player.DGroup;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import io.github.dre2n.dungeonsxl.player.DPlayer; import io.github.dre2n.dungeonsxl.player.DPlayer;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -42,7 +44,7 @@ public class GroupCommand extends BRCommand {
setMinArgs(0); setMinArgs(0);
setMaxArgs(2); setMaxArgs(2);
setHelp(messageConfig.getMessage(DMessages.HELP_CMD_GROUP)); setHelp(messageConfig.getMessage(DMessages.HELP_CMD_GROUP));
setPermission("dxl.group"); setPermission(DPermissions.GROUP.getNode());
setPlayerCommand(true); setPlayerCommand(true);
} }
@ -91,7 +93,7 @@ public class GroupCommand extends BRCommand {
createGroup(); createGroup();
return; return;
} else if (args[1].equalsIgnoreCase("disband") && sender.hasPermission("dxl.group.admin")) { } else if (args[1].equalsIgnoreCase("disband") && DPermissions.hasPermission(sender, DPermissions.GROUP_ADMIN)) {
disbandGroup(DGroup.getByName(args[2])); disbandGroup(DGroup.getByName(args[2]));
return; return;
@ -99,7 +101,7 @@ public class GroupCommand extends BRCommand {
joinGroup(DGroup.getByName(args[2])); joinGroup(DGroup.getByName(args[2]));
return; return;
} else if (args[1].equalsIgnoreCase("show") && sender.hasPermission("dxl.group.admin")) { } else if (args[1].equalsIgnoreCase("show") && DPermissions.hasPermission(sender, DPermissions.GROUP_ADMIN)) {
showGroup(DGroup.getByName(args[2])); showGroup(DGroup.getByName(args[2]));
return; return;
} }
@ -191,7 +193,7 @@ public class GroupCommand extends BRCommand {
return; return;
} }
if (!dGroup.getInvitedPlayers().contains(player) && !player.hasPermission("dxl.bypass")) { if (!dGroup.getInvitedPlayers().contains(player) && !DPermissions.hasPermission(player, DPermissions.BYPASS)) {
MessageUtil.sendMessage(sender, messageConfig.getMessage(DMessages.ERROR_NOT_INVITED, args[2])); MessageUtil.sendMessage(sender, messageConfig.getMessage(DMessages.ERROR_NOT_INVITED, args[2]));
return; return;
} }

View File

@ -22,6 +22,7 @@ import io.github.dre2n.commons.util.NumberUtil;
import io.github.dre2n.commons.util.messageutil.MessageUtil; import io.github.dre2n.commons.util.messageutil.MessageUtil;
import io.github.dre2n.dungeonsxl.DungeonsXL; import io.github.dre2n.dungeonsxl.DungeonsXL;
import io.github.dre2n.dungeonsxl.config.DMessages; import io.github.dre2n.dungeonsxl.config.DMessages;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Set; import java.util.Set;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -39,7 +40,7 @@ public class HelpCommand extends BRCommand {
setMinArgs(0); setMinArgs(0);
setMaxArgs(1); setMaxArgs(1);
setHelp(messageConfig.getMessage(DMessages.HELP_CMD_HELP)); setHelp(messageConfig.getMessage(DMessages.HELP_CMD_HELP));
setPermission("dxl.help"); setPermission(DPermissions.HELP.getNode());
setPlayerCommand(true); setPlayerCommand(true);
setConsoleCommand(true); setConsoleCommand(true);
} }

View File

@ -22,6 +22,7 @@ import io.github.dre2n.commons.util.UUIDUtil;
import io.github.dre2n.commons.util.messageutil.MessageUtil; import io.github.dre2n.commons.util.messageutil.MessageUtil;
import io.github.dre2n.dungeonsxl.DungeonsXL; import io.github.dre2n.dungeonsxl.DungeonsXL;
import io.github.dre2n.dungeonsxl.config.DMessages; import io.github.dre2n.dungeonsxl.config.DMessages;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import io.github.dre2n.dungeonsxl.world.EditWorld; import io.github.dre2n.dungeonsxl.world.EditWorld;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -38,7 +39,7 @@ public class InviteCommand extends BRCommand {
setMaxArgs(2); setMaxArgs(2);
setCommand("invite"); setCommand("invite");
setHelp(messageConfig.getMessage(DMessages.HELP_CMD_INVITE)); setHelp(messageConfig.getMessage(DMessages.HELP_CMD_INVITE));
setPermission("dxl.invite"); setPermission(DPermissions.INVITE.getNode());
setPlayerCommand(true); setPlayerCommand(true);
setConsoleCommand(true); setConsoleCommand(true);
} }

View File

@ -24,6 +24,7 @@ import io.github.dre2n.dungeonsxl.config.DMessages;
import io.github.dre2n.dungeonsxl.event.dplayer.DPlayerEscapeEvent; import io.github.dre2n.dungeonsxl.event.dplayer.DPlayerEscapeEvent;
import io.github.dre2n.dungeonsxl.event.dplayer.DPlayerLeaveDGroupEvent; import io.github.dre2n.dungeonsxl.event.dplayer.DPlayerLeaveDGroupEvent;
import io.github.dre2n.dungeonsxl.player.DGroup; import io.github.dre2n.dungeonsxl.player.DGroup;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import io.github.dre2n.dungeonsxl.player.DPlayer; import io.github.dre2n.dungeonsxl.player.DPlayer;
import io.github.dre2n.dungeonsxl.world.GameWorld; import io.github.dre2n.dungeonsxl.world.GameWorld;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -42,7 +43,7 @@ public class LeaveCommand extends BRCommand {
setMinArgs(0); setMinArgs(0);
setMaxArgs(0); setMaxArgs(0);
setHelp(messageConfig.getMessage(DMessages.HELP_CMD_LEAVE)); setHelp(messageConfig.getMessage(DMessages.HELP_CMD_LEAVE));
setPermission("dxl.leave"); setPermission(DPermissions.LEAVE.getNode());
setPlayerCommand(true); setPlayerCommand(true);
} }

View File

@ -24,6 +24,7 @@ import io.github.dre2n.dungeonsxl.DungeonsXL;
import io.github.dre2n.dungeonsxl.config.DMessages; import io.github.dre2n.dungeonsxl.config.DMessages;
import io.github.dre2n.dungeonsxl.config.DungeonConfig; import io.github.dre2n.dungeonsxl.config.DungeonConfig;
import io.github.dre2n.dungeonsxl.dungeon.Dungeon; import io.github.dre2n.dungeonsxl.dungeon.Dungeon;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import io.github.dre2n.dungeonsxl.world.EditWorld; import io.github.dre2n.dungeonsxl.world.EditWorld;
import io.github.dre2n.dungeonsxl.world.GameWorld; import io.github.dre2n.dungeonsxl.world.GameWorld;
import java.io.File; import java.io.File;
@ -44,7 +45,7 @@ public class ListCommand extends BRCommand {
setMinArgs(0); setMinArgs(0);
setMaxArgs(3); setMaxArgs(3);
setHelp(messageConfig.getMessage(DMessages.HELP_CMD_LIST)); setHelp(messageConfig.getMessage(DMessages.HELP_CMD_LIST));
setPermission("dxl.list"); setPermission(DPermissions.LIST.getNode());
setPlayerCommand(true); setPlayerCommand(true);
setConsoleCommand(true); setConsoleCommand(true);
} }

View File

@ -21,6 +21,7 @@ import io.github.dre2n.commons.config.MessageConfig;
import io.github.dre2n.commons.util.messageutil.MessageUtil; import io.github.dre2n.commons.util.messageutil.MessageUtil;
import io.github.dre2n.dungeonsxl.DungeonsXL; import io.github.dre2n.dungeonsxl.DungeonsXL;
import io.github.dre2n.dungeonsxl.config.DMessages; import io.github.dre2n.dungeonsxl.config.DMessages;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import io.github.dre2n.dungeonsxl.player.DPlayer; import io.github.dre2n.dungeonsxl.player.DPlayer;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -39,7 +40,7 @@ public class LivesCommand extends BRCommand {
setMinArgs(0); setMinArgs(0);
setMaxArgs(1); setMaxArgs(1);
setHelp(messageConfig.getMessage(DMessages.HELP_CMD_LIVES)); setHelp(messageConfig.getMessage(DMessages.HELP_CMD_LIVES));
setPermission("dxl.lives"); setPermission(DPermissions.LIVES.getNode());
setPlayerCommand(true); setPlayerCommand(true);
setConsoleCommand(true); setConsoleCommand(true);
} }

View File

@ -24,6 +24,7 @@ import static io.github.dre2n.commons.util.messageutil.FatLetters.*;
import io.github.dre2n.commons.util.messageutil.MessageUtil; import io.github.dre2n.commons.util.messageutil.MessageUtil;
import io.github.dre2n.dungeonsxl.DungeonsXL; import io.github.dre2n.dungeonsxl.DungeonsXL;
import io.github.dre2n.dungeonsxl.config.DMessages; import io.github.dre2n.dungeonsxl.config.DMessages;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import java.io.File; import java.io.File;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -40,7 +41,7 @@ public class MainCommand extends BRCommand {
public MainCommand() { public MainCommand() {
setCommand("main"); setCommand("main");
setHelp(messageConfig.getMessage(DMessages.HELP_CMD_MAIN)); setHelp(messageConfig.getMessage(DMessages.HELP_CMD_MAIN));
setPermission("dxl.main"); setPermission(DPermissions.MAIN.getNode());
setPlayerCommand(true); setPlayerCommand(true);
setConsoleCommand(true); setConsoleCommand(true);
} }

View File

@ -23,6 +23,7 @@ import io.github.dre2n.commons.util.messageutil.MessageUtil;
import io.github.dre2n.dungeonsxl.DungeonsXL; import io.github.dre2n.dungeonsxl.DungeonsXL;
import io.github.dre2n.dungeonsxl.config.DMessages; import io.github.dre2n.dungeonsxl.config.DMessages;
import io.github.dre2n.dungeonsxl.config.WorldConfig; import io.github.dre2n.dungeonsxl.config.WorldConfig;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import io.github.dre2n.dungeonsxl.world.EditWorld; import io.github.dre2n.dungeonsxl.world.EditWorld;
import java.io.File; import java.io.File;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
@ -42,7 +43,7 @@ public class MsgCommand extends BRCommand {
setMaxArgs(-1); setMaxArgs(-1);
setCommand("msg"); setCommand("msg");
setHelp(messageConfig.getMessage(DMessages.HELP_CMD_MSG)); setHelp(messageConfig.getMessage(DMessages.HELP_CMD_MSG));
setPermission("dxl.msg"); setPermission(DPermissions.MESSAGE.getNode());
setPlayerCommand(true); setPlayerCommand(true);
} }

View File

@ -25,7 +25,9 @@ import io.github.dre2n.dungeonsxl.config.DungeonConfig;
import io.github.dre2n.dungeonsxl.config.WorldConfig; import io.github.dre2n.dungeonsxl.config.WorldConfig;
import io.github.dre2n.dungeonsxl.dungeon.Dungeon; import io.github.dre2n.dungeonsxl.dungeon.Dungeon;
import io.github.dre2n.dungeonsxl.event.dgroup.DGroupCreateEvent; import io.github.dre2n.dungeonsxl.event.dgroup.DGroupCreateEvent;
import io.github.dre2n.dungeonsxl.player.DGlobalPlayer;
import io.github.dre2n.dungeonsxl.player.DGroup; import io.github.dre2n.dungeonsxl.player.DGroup;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import io.github.dre2n.dungeonsxl.player.DPlayer; import io.github.dre2n.dungeonsxl.player.DPlayer;
import io.github.dre2n.dungeonsxl.world.EditWorld; import io.github.dre2n.dungeonsxl.world.EditWorld;
import io.github.dre2n.dungeonsxl.world.GameWorld; import io.github.dre2n.dungeonsxl.world.GameWorld;
@ -46,7 +48,7 @@ public class PlayCommand extends BRCommand {
setMinArgs(1); setMinArgs(1);
setMaxArgs(2); setMaxArgs(2);
setHelp(messageConfig.getMessage(DMessages.HELP_CMD_PLAY)); setHelp(messageConfig.getMessage(DMessages.HELP_CMD_PLAY));
setPermission("dxl.play"); setPermission(DPermissions.PLAY.getNode());
setPlayerCommand(true); setPlayerCommand(true);
} }
@ -113,7 +115,7 @@ public class PlayCommand extends BRCommand {
DGroup dGroup = DGroup.getByPlayer(player); DGroup dGroup = DGroup.getByPlayer(player);
if (dGroup != null) { if (dGroup != null) {
if (!dGroup.getCaptain().equals(player) && !player.hasPermission("dxl.bypass")) { if (!dGroup.getCaptain().equals(player) && !DPermissions.hasPermission(player, DPermissions.BYPASS)) {
MessageUtil.sendMessage(player, messageConfig.getMessage(DMessages.ERROR_NOT_CAPTAIN)); MessageUtil.sendMessage(player, messageConfig.getMessage(DMessages.ERROR_NOT_CAPTAIN));
} }

View File

@ -23,6 +23,7 @@ import io.github.dre2n.dungeonsxl.DungeonsXL;
import io.github.dre2n.dungeonsxl.config.DMessages; import io.github.dre2n.dungeonsxl.config.DMessages;
import io.github.dre2n.dungeonsxl.global.DPortal; import io.github.dre2n.dungeonsxl.global.DPortal;
import io.github.dre2n.dungeonsxl.player.DGlobalPlayer; import io.github.dre2n.dungeonsxl.player.DGlobalPlayer;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import io.github.dre2n.dungeonsxl.player.DPlayer; import io.github.dre2n.dungeonsxl.player.DPlayer;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -42,7 +43,7 @@ public class PortalCommand extends BRCommand {
setMinArgs(0); setMinArgs(0);
setMaxArgs(0); setMaxArgs(0);
setHelp(messageConfig.getMessage(DMessages.HELP_CMD_PORTAL)); setHelp(messageConfig.getMessage(DMessages.HELP_CMD_PORTAL));
setPermission("dxl.portal"); setPermission(DPermissions.PORTAL.getNode());
setPlayerCommand(true); setPlayerCommand(true);
} }

View File

@ -23,6 +23,7 @@ import io.github.dre2n.commons.config.MessageConfig;
import io.github.dre2n.commons.util.messageutil.MessageUtil; import io.github.dre2n.commons.util.messageutil.MessageUtil;
import io.github.dre2n.dungeonsxl.DungeonsXL; import io.github.dre2n.dungeonsxl.DungeonsXL;
import io.github.dre2n.dungeonsxl.config.DMessages; import io.github.dre2n.dungeonsxl.config.DMessages;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import java.io.File; import java.io.File;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -41,7 +42,7 @@ public class ReloadCommand extends BRCommand {
setMinArgs(0); setMinArgs(0);
setMaxArgs(0); setMaxArgs(0);
setHelp(messageConfig.getMessage(DMessages.HELP_CMD_RELOAD)); setHelp(messageConfig.getMessage(DMessages.HELP_CMD_RELOAD));
setPermission("dxl.reload"); setPermission(DPermissions.RELOAD.getNode());
setPlayerCommand(true); setPlayerCommand(true);
setConsoleCommand(true); setConsoleCommand(true);
} }

View File

@ -21,6 +21,7 @@ import io.github.dre2n.commons.config.MessageConfig;
import io.github.dre2n.commons.util.messageutil.MessageUtil; import io.github.dre2n.commons.util.messageutil.MessageUtil;
import io.github.dre2n.dungeonsxl.DungeonsXL; import io.github.dre2n.dungeonsxl.DungeonsXL;
import io.github.dre2n.dungeonsxl.config.DMessages; import io.github.dre2n.dungeonsxl.config.DMessages;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import io.github.dre2n.dungeonsxl.world.EditWorld; import io.github.dre2n.dungeonsxl.world.EditWorld;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -38,7 +39,7 @@ public class SaveCommand extends BRCommand {
setMinArgs(0); setMinArgs(0);
setMaxArgs(0); setMaxArgs(0);
setHelp(messageConfig.getMessage(DMessages.HELP_CMD_SAVE)); setHelp(messageConfig.getMessage(DMessages.HELP_CMD_SAVE));
setPermission("dxl.save"); setPermission(DPermissions.SAVE.getNode());
setPlayerCommand(true); setPlayerCommand(true);
} }

View File

@ -24,6 +24,7 @@ import io.github.dre2n.dungeonsxl.config.DMessages;
import io.github.dre2n.dungeonsxl.game.Game; import io.github.dre2n.dungeonsxl.game.Game;
import io.github.dre2n.dungeonsxl.game.GameTypeDefault; import io.github.dre2n.dungeonsxl.game.GameTypeDefault;
import io.github.dre2n.dungeonsxl.player.DGroup; import io.github.dre2n.dungeonsxl.player.DGroup;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import io.github.dre2n.dungeonsxl.player.DPlayer; import io.github.dre2n.dungeonsxl.player.DPlayer;
import io.github.dre2n.dungeonsxl.world.GameWorld; import io.github.dre2n.dungeonsxl.world.GameWorld;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -42,7 +43,7 @@ public class TestCommand extends BRCommand {
setMinArgs(0); setMinArgs(0);
setMaxArgs(0); setMaxArgs(0);
setHelp(messageConfig.getMessage(DMessages.HELP_CMD_TEST)); setHelp(messageConfig.getMessage(DMessages.HELP_CMD_TEST));
setPermission("dxl.test"); setPermission(DPermissions.TEST.getNode());
setPlayerCommand(true); setPlayerCommand(true);
} }

View File

@ -22,6 +22,7 @@ import io.github.dre2n.commons.util.UUIDUtil;
import io.github.dre2n.commons.util.messageutil.MessageUtil; import io.github.dre2n.commons.util.messageutil.MessageUtil;
import io.github.dre2n.dungeonsxl.DungeonsXL; import io.github.dre2n.dungeonsxl.DungeonsXL;
import io.github.dre2n.dungeonsxl.config.DMessages; import io.github.dre2n.dungeonsxl.config.DMessages;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import io.github.dre2n.dungeonsxl.world.EditWorld; import io.github.dre2n.dungeonsxl.world.EditWorld;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -38,7 +39,7 @@ public class UninviteCommand extends BRCommand {
setMinArgs(2); setMinArgs(2);
setMaxArgs(2); setMaxArgs(2);
setHelp(messageConfig.getMessage(DMessages.HELP_CMD_UNINVITE)); setHelp(messageConfig.getMessage(DMessages.HELP_CMD_UNINVITE));
setPermission("dxl.uninvite"); setPermission(DPermissions.UNINVITE.getNode());
setPlayerCommand(true); setPlayerCommand(true);
setConsoleCommand(true); setConsoleCommand(true);
} }

View File

@ -29,6 +29,7 @@ import io.github.dre2n.dungeonsxl.global.GlobalProtection;
import io.github.dre2n.dungeonsxl.global.GroupSign; import io.github.dre2n.dungeonsxl.global.GroupSign;
import io.github.dre2n.dungeonsxl.global.LeaveSign; import io.github.dre2n.dungeonsxl.global.LeaveSign;
import io.github.dre2n.dungeonsxl.player.DGlobalPlayer; import io.github.dre2n.dungeonsxl.player.DGlobalPlayer;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import io.github.dre2n.dungeonsxl.player.DPlayers; import io.github.dre2n.dungeonsxl.player.DPlayers;
import io.github.dre2n.dungeonsxl.sign.DSign; import io.github.dre2n.dungeonsxl.sign.DSign;
import io.github.dre2n.dungeonsxl.task.RedstoneEventTask; import io.github.dre2n.dungeonsxl.task.RedstoneEventTask;
@ -160,7 +161,7 @@ public class BlockListener implements Listener {
// Group Signs // Group Signs
if (editWorld == null) { if (editWorld == null) {
if (!player.hasPermission("dxl.sign")) { if (!DPermissions.hasPermission(player, DPermissions.SIGN)) {
return; return;
} }
@ -219,8 +220,9 @@ public class BlockListener implements Listener {
return; return;
} }
if (!player.hasPermission(dsign.getType().getBuildPermission())) { if (!DPermissions.hasPermission(player, dsign.getType().getBuildPermission())) {
MessageUtil.sendMessage(player, plugin.getMessageConfig().getMessage(DMessages.ERROR_NO_PERMISSIONS)); MessageUtil.sendMessage(player, plugin.getMessageConfig().getMessage(DMessages.ERROR_NO_PERMISSIONS));
return;
} }
if (dsign.check()) { if (dsign.check()) {

View File

@ -33,6 +33,7 @@ import io.github.dre2n.dungeonsxl.global.GroupSign;
import io.github.dre2n.dungeonsxl.global.LeaveSign; import io.github.dre2n.dungeonsxl.global.LeaveSign;
import io.github.dre2n.dungeonsxl.player.DGlobalPlayer; import io.github.dre2n.dungeonsxl.player.DGlobalPlayer;
import io.github.dre2n.dungeonsxl.player.DGroup; import io.github.dre2n.dungeonsxl.player.DGroup;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import io.github.dre2n.dungeonsxl.player.DPlayer; import io.github.dre2n.dungeonsxl.player.DPlayer;
import io.github.dre2n.dungeonsxl.player.DPlayers; import io.github.dre2n.dungeonsxl.player.DPlayers;
import io.github.dre2n.dungeonsxl.player.DSavePlayer; import io.github.dre2n.dungeonsxl.player.DSavePlayer;
@ -155,13 +156,13 @@ public class PlayerListener implements Listener {
if (GameWorld.getByWorld(player.getWorld()) != null || EditWorld.getByWorld(player.getWorld()) != null) { if (GameWorld.getByWorld(player.getWorld()) != null || EditWorld.getByWorld(player.getWorld()) != null) {
if (event.getAction() != Action.LEFT_CLICK_BLOCK) { if (event.getAction() != Action.LEFT_CLICK_BLOCK) {
if (clickedBlock.getType() == Material.ENDER_CHEST) { if (clickedBlock.getType() == Material.ENDER_CHEST) {
if (!player.hasPermission("dxl.bypass")) { if (!DPermissions.hasPermission(player, DPermissions.BYPASS)) {
MessageUtil.sendMessage(player, messageConfig.getMessage(DMessages.ERROR_ENDERCHEST)); MessageUtil.sendMessage(player, messageConfig.getMessage(DMessages.ERROR_ENDERCHEST));
event.setCancelled(true); event.setCancelled(true);
} }
} else if (clickedBlock.getType() == Material.BED_BLOCK) { } else if (clickedBlock.getType() == Material.BED_BLOCK) {
if (!player.hasPermission("dxl.bypass")) { if (!DPermissions.hasPermission(player, DPermissions.BYPASS)) {
MessageUtil.sendMessage(player, messageConfig.getMessage(DMessages.ERROR_BED)); MessageUtil.sendMessage(player, messageConfig.getMessage(DMessages.ERROR_BED));
event.setCancelled(true); event.setCancelled(true);
} }
@ -173,7 +174,7 @@ public class PlayerListener implements Listener {
if (GameWorld.getByWorld(player.getWorld()) != null) { if (GameWorld.getByWorld(player.getWorld()) != null) {
if (event.getAction() != Action.LEFT_CLICK_BLOCK) { if (event.getAction() != Action.LEFT_CLICK_BLOCK) {
if (clickedBlock.getType() == Material.DISPENSER) { if (clickedBlock.getType() == Material.DISPENSER) {
if (!player.hasPermission("dxl.bypass")) { if (!DPermissions.hasPermission(player, DPermissions.BYPASS)) {
MessageUtil.sendMessage(player, messageConfig.getMessage(DMessages.ERROR_DISPENSER)); MessageUtil.sendMessage(player, messageConfig.getMessage(DMessages.ERROR_DISPENSER));
event.setCancelled(true); event.setCancelled(true);
} }
@ -319,7 +320,7 @@ public class PlayerListener implements Listener {
return; return;
} }
if (dPlayer.isEditing() && !plugin.getMainConfig().getDropItems() && !player.hasPermission("dxl.insecure")) { if (dPlayer.isEditing() && !plugin.getMainConfig().getDropItems() && !DPermissions.hasPermission(player, DPermissions.INSECURE)) {
event.setCancelled(true); event.setCancelled(true);
} }
@ -425,7 +426,7 @@ public class PlayerListener implements Listener {
return; return;
} }
if (!player.hasPermission("dxl.bypass")) { if (!DPermissions.hasPermission(player, DPermissions.BYPASS)) {
event.setCancelled(true); event.setCancelled(true);
} }
} }
@ -560,7 +561,7 @@ public class PlayerListener implements Listener {
// Deny Player Cmds // Deny Player Cmds
@EventHandler(priority = EventPriority.HIGH) @EventHandler(priority = EventPriority.HIGH)
public void onCommand(PlayerCommandPreprocessEvent event) { public void onCommand(PlayerCommandPreprocessEvent event) {
if (event.getPlayer().hasPermission("dxl.bypass")) { if (DPermissions.hasPermission(event.getPlayer(), DPermissions.BYPASS)) {
return; return;
} }
@ -575,7 +576,7 @@ public class PlayerListener implements Listener {
GameWorld gameWorld = GameWorld.getByWorld(dPlayer.getWorld()); GameWorld gameWorld = GameWorld.getByWorld(dPlayer.getWorld());
if (dPlayer.isEditing()) { if (dPlayer.isEditing()) {
if (event.getPlayer().hasPermission("dxl.cmdedit")) { if (DPermissions.hasPermission(event.getPlayer(), DPermissions.CMD_EDIT)) {
return; return;
} else { } else {
@ -614,7 +615,7 @@ public class PlayerListener implements Listener {
GameChest.onOpenInventory(event); GameChest.onOpenInventory(event);
if (!plugin.getMainConfig().getOpenInventories() && !event.getPlayer().hasPermission("dxl.insecure")) { if (!plugin.getMainConfig().getOpenInventories() && !DPermissions.hasPermission(event.getPlayer(), DPermissions.INSECURE)) {
World world = event.getPlayer().getWorld(); World world = event.getPlayer().getWorld();
if (event.getInventory().getType() != InventoryType.CREATIVE && EditWorld.getByWorld(world) != null) { if (event.getInventory().getType() != InventoryType.CREATIVE && EditWorld.getByWorld(world) != null) {
event.setCancelled(true); event.setCancelled(true);

View File

@ -28,6 +28,8 @@ import org.bukkit.inventory.ItemStack;
*/ */
public class DGlobalPlayer { public class DGlobalPlayer {
protected static DungeonsXL plugin = DungeonsXL.getInstance();
protected Player player; protected Player player;
private boolean breakMode; private boolean breakMode;
@ -40,7 +42,7 @@ public class DGlobalPlayer {
public DGlobalPlayer(Player player) { public DGlobalPlayer(Player player) {
this.player = player; this.player = player;
DungeonsXL.getInstance().getDPlayers().addPlayer(this); plugin.getDPlayers().addPlayer(this);
} }
public DGlobalPlayer(DGlobalPlayer dPlayer) { public DGlobalPlayer(DGlobalPlayer dPlayer) {
@ -51,7 +53,7 @@ public class DGlobalPlayer {
respawnInventory = dPlayer.getRespawnInventory(); respawnInventory = dPlayer.getRespawnInventory();
respawnArmor = dPlayer.getRespawnArmor(); respawnArmor = dPlayer.getRespawnArmor();
DungeonsXL.getInstance().getDPlayers().addPlayer(this); plugin.getDPlayers().addPlayer(this);
} }
/** /**
@ -157,4 +159,22 @@ public class DGlobalPlayer {
this.respawnArmor = respawnArmor; this.respawnArmor = respawnArmor;
} }
/**
* @param permission
* the permission to check
* @return if the player has the permission
*/
public boolean hasPermission(DPermissions permission) {
return DPermissions.hasPermission(player, permission);
}
/**
* @param permission
* the permission to check
* @return if the player has the permission
*/
public boolean hasPermission(String permission) {
return DPermissions.hasPermission(player, permission);
}
} }

View File

@ -0,0 +1,180 @@
/*
* Copyright (C) 2016 Daniel Saukel
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package io.github.dre2n.dungeonsxl.player;
import io.github.dre2n.commons.util.EnumUtil;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.permissions.Permission;
import org.bukkit.permissions.PermissionDefault;
import static org.bukkit.permissions.PermissionDefault.*;
/**
* @author Daniel Saukel
*/
public enum DPermissions {
// Main nodes
BREAK("break", OP),
BYPASS("bypass", OP),
CHAT("chat", TRUE),
CHAT_SPY("chatspy", OP),
CMD_EDIT("cmdedit", OP),
CREATE("create", OP),
EDIT("edit", OP),
ENTER("enter", OP),
ESCAPE("escape", TRUE),
GAME("game", TRUE),
GROUP("group", OP),
GROUP_ADMIN("group.admin", OP, GROUP),
HELP("help", TRUE),
IGNORE_REQUIREMENTS("ignorerequirements", OP),
IGNORE_TIME_LIMIT("ignoretimelimit", OP),
INVITE("invite", OP),
INSECURE("insecure", OP),
LEAVE("leave", TRUE),
LIST("list", OP),
LIVES("lives", TRUE),
MAIN("main", TRUE),
MESSAGE("msg", OP),
PLAY("play", OP),
PORTAL("portal", OP),
RELOAD("reload", OP),
SAVE("save", OP),
SIGN("sign", OP),
TEST("test", OP),
UNINVITE("uninvite", OP),
// Kits
ADMINISTRATOR("*", OP),
HALF_EDITOR("halfeditor", OP, ESCAPE, LIST, MESSAGE, SAVE),
FULL_EDITOR("fulleditor", OP, HALF_EDITOR, EDIT, PLAY, SIGN, TEST),
HALF_PLAYER("halfplayer", TRUE, CHAT, ESCAPE, GAME, HELP, LEAVE, LIVES, MAIN),
FULL_PLAYER("fullplayer", OP, HALF_PLAYER, GROUP);
public static final String PREFIX = "dxl.";
private String node;
private PermissionDefault isDefault;
private List<DPermissions> children = new ArrayList<>();
DPermissions(String node, PermissionDefault isDefault) {
this.node = node;
this.isDefault = isDefault;
}
DPermissions(String node, PermissionDefault isDefault, DPermissions... children) {
this(node, isDefault);
this.children = Arrays.asList(children);
}
/**
* @return the permission node String
*/
public String getNode() {
return PREFIX + node;
}
/**
* @return if a player has the node by default
*/
public PermissionDefault isDefault() {
return isDefault;
}
/**
* @return if the node has children
*/
public boolean hasChildren() {
return !children.isEmpty();
}
/**
* @return the child permissions
*/
public List<DPermissions> getChildren() {
return children;
}
/**
* @param node
* the node String, with or without "dxl."
* @return
* the DPermissions value
*/
public static DPermissions getByNode(String node) {
for (DPermissions permission : values()) {
if (permission.getNode().equals(node) || permission.node.equals(node)) {
return permission;
}
}
return null;
}
/**
* @param permission
* the permission to check
* @return if the player has the permission
*/
public static boolean hasPermission(CommandSender sender, DPermissions permission) {
if (sender.hasPermission(permission.getNode())) {
return true;
}
for (DPermissions parent : DPermissions.values()) {
if (parent.getChildren().contains(permission) && sender.hasPermission(parent.getNode())) {
return true;
}
}
return false;
}
/**
* @param permission
* the permission to check
* @return if the player has the permission
*/
public static boolean hasPermission(CommandSender sender, String permission) {
DPermissions dPermission = null;
if (EnumUtil.isValidEnum(DPermissions.class, permission)) {
dPermission = DPermissions.valueOf(permission);
} else if (DPermissions.getByNode(permission) != null) {
dPermission = DPermissions.getByNode(permission);
}
if (dPermission == null) {
return false;
}
return hasPermission(sender, dPermission);
}
/**
* Registers the permissions.
*/
public static void register() {
for (DPermissions permission : values()) {
Bukkit.getPluginManager().addPermission(new Permission(permission.getNode(), permission.isDefault()));
}
}
}

View File

@ -22,7 +22,6 @@ import io.github.dre2n.commons.config.MessageConfig;
import io.github.dre2n.commons.util.NumberUtil; import io.github.dre2n.commons.util.NumberUtil;
import io.github.dre2n.commons.util.messageutil.MessageUtil; import io.github.dre2n.commons.util.messageutil.MessageUtil;
import io.github.dre2n.commons.util.playerutil.PlayerUtil; import io.github.dre2n.commons.util.playerutil.PlayerUtil;
import io.github.dre2n.dungeonsxl.DungeonsXL;
import io.github.dre2n.dungeonsxl.config.DMessages; import io.github.dre2n.dungeonsxl.config.DMessages;
import io.github.dre2n.dungeonsxl.config.DungeonConfig; import io.github.dre2n.dungeonsxl.config.DungeonConfig;
import io.github.dre2n.dungeonsxl.config.WorldConfig; import io.github.dre2n.dungeonsxl.config.WorldConfig;
@ -67,7 +66,6 @@ import org.bukkit.potion.PotionEffect;
*/ */
public class DPlayer extends DGlobalPlayer { public class DPlayer extends DGlobalPlayer {
protected static DungeonsXL plugin = DungeonsXL.getInstance();
protected static MessageConfig messageConfig = plugin.getMessageConfig(); protected static MessageConfig messageConfig = plugin.getMessageConfig();
// Variables // Variables

View File

@ -16,32 +16,34 @@
*/ */
package io.github.dre2n.dungeonsxl.sign; package io.github.dre2n.dungeonsxl.sign;
import io.github.dre2n.dungeonsxl.player.DPermissions;
/** /**
* @author Daniel Saukel * @author Daniel Saukel
*/ */
public enum DSignTypeDefault implements DSignType { public enum DSignTypeDefault implements DSignType {
BLOCK("Block", "dxl.sign.block", false, BlockSign.class), BLOCK("Block", "block", false, BlockSign.class),
CHECKPOINT("Checkpoint", "dxl.sign.checkpoint", false, CheckpointSign.class), CHECKPOINT("Checkpoint", "checkpoint", false, CheckpointSign.class),
CHEST("Chest", "dxl.sign.chest", false, ChestSign.class), CHEST("Chest", "chest", false, ChestSign.class),
CHUNK_UPDATER("ChunkUpdater", "dxl.sign.chunkupdater", true, ChunkUpdaterSign.class), CHUNK_UPDATER("ChunkUpdater", "chunkupdater", true, ChunkUpdaterSign.class),
CLASSES("Classes", "dxl.sign.classes", true, ClassesSign.class), CLASSES("Classes", "classes", true, ClassesSign.class),
COMMAND("CMD", "dxl.sign.cmd", false, CommandSign.class), COMMAND("CMD", "cmd", false, CommandSign.class),
END("End", "dxl.sign.end", false, EndSign.class), END("End", "end", false, EndSign.class),
FLOOR("Floor", "dxl.sign.floor", false, FloorSign.class), FLOOR("Floor", "floor", false, FloorSign.class),
INTERACT("Interact", "dxl.sign.interact", true, InteractSign.class), INTERACT("Interact", "interact", true, InteractSign.class),
LEAVE("Leave", "dxl.sign.leave", true, LeaveSign.class), LEAVE("Leave", "leave", true, LeaveSign.class),
LOBBY("Lobby", "dxl.sign.lobby", true, LobbySign.class), LOBBY("Lobby", "lobby", true, LobbySign.class),
MOB("Mob", "dxl.sign.mob", false, DMobSign.class), MOB("Mob", "mob", false, DMobSign.class),
MESSAGE("MSG", "dxl.sign.msg", false, MessageSign.class), MESSAGE("MSG", "msg", false, MessageSign.class),
MYTHIC_MOBS("MythicMobs", "dxl.sign.mob", false, MythicMobsSign.class), MYTHIC_MOBS("MythicMobs", "mob", false, MythicMobsSign.class),
PLACE("Place", "dxl.sign.place", false, PlaceSign.class), PLACE("Place", "place", false, PlaceSign.class),
READY("Ready", "dxl.sign.ready", true, ReadySign.class), READY("Ready", "ready", true, ReadySign.class),
REDSTONE("Redstone", "dxl.sign.redstone", false, RedstoneSign.class), REDSTONE("Redstone", "redstone", false, RedstoneSign.class),
SOUND_MESSAGE("SoundMSG", "dxl.sign.soundmsg", false, SoundMessageSign.class), SOUND_MESSAGE("SoundMSG", "soundmsg", false, SoundMessageSign.class),
START("Start", "dxl.sign.start", true, StartSign.class), START("Start", "start", true, StartSign.class),
TRIGGER("Trigger", "dxl.sign.trigger", true, TriggerSign.class), TRIGGER("Trigger", "trigger", true, TriggerSign.class),
WAVE("Wave", "dxl.sign.wave", false, WaveSign.class); WAVE("Wave", "wave", false, WaveSign.class);
private String name; private String name;
private String buildPermission; private String buildPermission;
@ -62,7 +64,7 @@ public enum DSignTypeDefault implements DSignType {
@Override @Override
public String getBuildPermission() { public String getBuildPermission() {
return buildPermission; return DPermissions.SIGN.getNode() + "." + buildPermission;
} }
@Override @Override

View File

@ -19,6 +19,7 @@ package io.github.dre2n.dungeonsxl.task;
import io.github.dre2n.dungeonsxl.DungeonsXL; import io.github.dre2n.dungeonsxl.DungeonsXL;
import io.github.dre2n.dungeonsxl.player.DEditPlayer; import io.github.dre2n.dungeonsxl.player.DEditPlayer;
import io.github.dre2n.dungeonsxl.player.DGlobalPlayer; import io.github.dre2n.dungeonsxl.player.DGlobalPlayer;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import io.github.dre2n.dungeonsxl.player.DPlayer; import io.github.dre2n.dungeonsxl.player.DPlayer;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -38,7 +39,7 @@ public class SecureModeTask extends BukkitRunnable {
} }
if (!(dGlobalPlayer instanceof DPlayer || dGlobalPlayer instanceof DEditPlayer)) { if (!(dGlobalPlayer instanceof DPlayer || dGlobalPlayer instanceof DEditPlayer)) {
if (player.getWorld().getName().startsWith("DXL_Game_") | player.getWorld().getName().startsWith("DXL_Edit_") && !player.hasPermission("dxl.insecure")) { if (player.getWorld().getName().startsWith("DXL_Game_") | player.getWorld().getName().startsWith("DXL_Edit_") && !DPermissions.hasPermission(player, DPermissions.INSECURE)) {
player.teleport(Bukkit.getWorlds().get(0).getSpawnLocation()); player.teleport(Bukkit.getWorlds().get(0).getSpawnLocation());
} }
} }

View File

@ -31,6 +31,7 @@ import io.github.dre2n.dungeonsxl.game.GameChest;
import io.github.dre2n.dungeonsxl.game.GamePlaceableBlock; import io.github.dre2n.dungeonsxl.game.GamePlaceableBlock;
import io.github.dre2n.dungeonsxl.mob.DMob; import io.github.dre2n.dungeonsxl.mob.DMob;
import io.github.dre2n.dungeonsxl.player.DGroup; import io.github.dre2n.dungeonsxl.player.DGroup;
import io.github.dre2n.dungeonsxl.player.DPermissions;
import io.github.dre2n.dungeonsxl.player.DPlayer; import io.github.dre2n.dungeonsxl.player.DPlayer;
import io.github.dre2n.dungeonsxl.requirement.Requirement; import io.github.dre2n.dungeonsxl.requirement.Requirement;
import io.github.dre2n.dungeonsxl.sign.DSign; import io.github.dre2n.dungeonsxl.sign.DSign;
@ -558,7 +559,7 @@ public class GameWorld {
} }
public static boolean canPlayDungeon(String map, Player player) { public static boolean canPlayDungeon(String map, Player player) {
if (player.hasPermission("dxl.ignoretimelimit")) { if (DPermissions.hasPermission(player, DPermissions.IGNORE_TIME_LIMIT)) {
return true; return true;
} }
@ -583,7 +584,7 @@ public class GameWorld {
} }
public static boolean canPlayDungeon(String dungeon, DGroup dGroup) { public static boolean canPlayDungeon(String dungeon, DGroup dGroup) {
if (dGroup.getCaptain().hasPermission("dxl.ignoretimelimit")) { if (DPermissions.hasPermission(dGroup.getCaptain(), DPermissions.IGNORE_TIME_LIMIT)) {
return true; return true;
} }
@ -619,7 +620,7 @@ public class GameWorld {
} }
public static boolean checkRequirements(String map, Player player) { public static boolean checkRequirements(String map, Player player) {
if (player.hasPermission("dxl.ignorerequirements")) { if (DPermissions.hasPermission(player, DPermissions.IGNORE_REQUIREMENTS)) {
return true; return true;
} }
@ -693,7 +694,7 @@ public class GameWorld {
} }
public static boolean checkRequirements(String map, DGroup dGroup) { public static boolean checkRequirements(String map, DGroup dGroup) {
if (dGroup.getCaptain().hasPermission("dxl.ignorerequirements")) { if (DPermissions.hasPermission(dGroup.getCaptain(), DPermissions.IGNORE_REQUIREMENTS)) {
return true; return true;
} }

View File

@ -9,62 +9,3 @@ commands:
dungeonsxl: dungeonsxl:
description: Reference command for DungeonsXL. description: Reference command for DungeonsXL.
aliases: [dxl,dungeon] aliases: [dxl,dungeon]
permissions:
dxl.break:
default: op
dxl.chat:
default: true
dxl.chatspy:
default: op
dxl.create:
default: op
dxl.edit:
default: op
dxl.enter:
default: op
dxl.escape:
default: true
dxl.game:
default: true
dxl.group:
default: op
dxl.group.admin:
default: op
dxl.help:
default: true
dxl.invite:
default: op
dxl.leave:
default: true
dxl.list:
default: true
dxl.lives:
default: true
dxl.main:
default: true
dxl.msg:
default: op
dxl.play:
default: op
dxl.portal:
default: op
dxl.reload:
default: op
dxl.save:
default: op
dxl.test:
default: op
dxl.uninvite:
default: op
dxl.ignoretimelimit:
default: op
dxl.ignorerequirements:
default: op
dxl.sign:
default: op
dxl.bypass:
default: op
dxl.cmdedit:
default: op
dxl.insecure:
default: op