From 57786c609ba8c197bb25e7e6a5d42bbb1cd65e13 Mon Sep 17 00:00:00 2001 From: Lennart ten Wolde <0p1q9o2w@hotmail.nl> Date: Thu, 25 Feb 2016 13:26:05 +0100 Subject: [PATCH] change permissions --- pom.xml | 10 +++ .../bukkit/marriage2/commands/Command.java | 9 ++- .../marriage2/commands/CommandHelp.java | 1 + .../marriage2/commands/CommandPriest.java | 3 +- .../marriage2/commands/CommandUpdate.java | 1 - .../bukkit/marriage2/config/Permissions.java | 77 +++++++++++++++++++ .../internal/MarriageCommandExecutor.java | 2 +- .../internal/data/MarriagePlayer.java | 6 +- .../marriage2/listeners/UpdateListener.java | 3 +- src/main/resources/changelog.json | 20 ++++- src/main/resources/plugin.yml | 39 +--------- 11 files changed, 121 insertions(+), 50 deletions(-) create mode 100644 src/main/java/com/lenis0012/bukkit/marriage2/config/Permissions.java diff --git a/pom.xml b/pom.xml index 3dafb73..28e0f91 100644 --- a/pom.xml +++ b/pom.xml @@ -19,6 +19,10 @@ md5-repo https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + + @@ -47,6 +51,12 @@ 1 compile + + + + + + junit junit diff --git a/src/main/java/com/lenis0012/bukkit/marriage2/commands/Command.java b/src/main/java/com/lenis0012/bukkit/marriage2/commands/Command.java index 00d12a7..96c9af9 100644 --- a/src/main/java/com/lenis0012/bukkit/marriage2/commands/Command.java +++ b/src/main/java/com/lenis0012/bukkit/marriage2/commands/Command.java @@ -1,5 +1,6 @@ package com.lenis0012.bukkit.marriage2.commands; +import com.lenis0012.bukkit.marriage2.config.Permissions; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; @@ -14,7 +15,7 @@ public abstract class Command { private String description = "No description available"; private String usage = ""; private int minArgs = 0; - private String permission = null; + private Permissions permission = null; private boolean allowConsole = false; private boolean hidden = false; @@ -26,7 +27,7 @@ public abstract class Command { this.marriage = marriage; this.aliases = aliases; if(aliases.length > 0) { - this.permission = "marry." + aliases[0]; + this.permission = Permissions.getByNode("marry." + aliases[0]); } } @@ -111,11 +112,11 @@ public abstract class Command { Bukkit.broadcastMessage(message); } - public String getPermission() { + public Permissions getPermission() { return permission; } - public void setPermission(String permission) { + public void setPermission(Permissions permission) { this.permission = permission; } diff --git a/src/main/java/com/lenis0012/bukkit/marriage2/commands/CommandHelp.java b/src/main/java/com/lenis0012/bukkit/marriage2/commands/CommandHelp.java index 230e467..906693f 100644 --- a/src/main/java/com/lenis0012/bukkit/marriage2/commands/CommandHelp.java +++ b/src/main/java/com/lenis0012/bukkit/marriage2/commands/CommandHelp.java @@ -10,6 +10,7 @@ public class CommandHelp extends Command { super(marriage, "help"); setMinArgs(-1); setHidden(true); + setPermission(null); } @Override diff --git a/src/main/java/com/lenis0012/bukkit/marriage2/commands/CommandPriest.java b/src/main/java/com/lenis0012/bukkit/marriage2/commands/CommandPriest.java index 6c54e1a..96a8b88 100644 --- a/src/main/java/com/lenis0012/bukkit/marriage2/commands/CommandPriest.java +++ b/src/main/java/com/lenis0012/bukkit/marriage2/commands/CommandPriest.java @@ -3,6 +3,7 @@ package com.lenis0012.bukkit.marriage2.commands; import com.lenis0012.bukkit.marriage2.MPlayer; import com.lenis0012.bukkit.marriage2.Marriage; import com.lenis0012.bukkit.marriage2.config.Message; +import com.lenis0012.bukkit.marriage2.config.Permissions; import com.lenis0012.bukkit.marriage2.config.Settings; import org.bukkit.entity.Player; @@ -16,7 +17,7 @@ public class CommandPriest extends Command { setDescription("Set whether or not a player should be priest."); setUsage("add/remove "); setMinArgs(2); - setPermission("marry.admin"); + setPermission(Permissions.ADMIN); if(!Settings.ENABLE_PRIEST.value()) { setHidden(true); diff --git a/src/main/java/com/lenis0012/bukkit/marriage2/commands/CommandUpdate.java b/src/main/java/com/lenis0012/bukkit/marriage2/commands/CommandUpdate.java index 2e2b3ed..35a8765 100644 --- a/src/main/java/com/lenis0012/bukkit/marriage2/commands/CommandUpdate.java +++ b/src/main/java/com/lenis0012/bukkit/marriage2/commands/CommandUpdate.java @@ -13,7 +13,6 @@ public class CommandUpdate extends Command { public CommandUpdate(Marriage marriage) { super(marriage, "update"); setHidden(true); - setPermission("marry.update"); } @Override diff --git a/src/main/java/com/lenis0012/bukkit/marriage2/config/Permissions.java b/src/main/java/com/lenis0012/bukkit/marriage2/config/Permissions.java new file mode 100644 index 0000000..16ee23f --- /dev/null +++ b/src/main/java/com/lenis0012/bukkit/marriage2/config/Permissions.java @@ -0,0 +1,77 @@ +package com.lenis0012.bukkit.marriage2.config; + +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.permissions.PermissionDefault; + +public enum Permissions { + /** + * Kitds + */ + ALL("marry.*", PermissionDefault.FALSE, -1), + ADMIN("marry.admin", PermissionDefault.OP, 0), + DEFAULT("marry.default", PermissionDefault.TRUE, 0), + /** + * Admin commands + */ + UPDATE("marry.update", PermissionDefault.OP, 1), + /** + * Player commands + */ + MARRY("marry.marry", PermissionDefault.TRUE), + LIST("marry.list", PermissionDefault.TRUE), + TELEPORT("marry.tp", PermissionDefault.TRUE), + HOME("marry.home", PermissionDefault.TRUE), + SET_HOME("marry.sethome", PermissionDefault.TRUE), + GIFT("marry.gift", PermissionDefault.TRUE), + CHAT("marry.chat", PermissionDefault.TRUE), + SEEN("marry.seen", PermissionDefault.TRUE); + +// public static Permission permissionService; +// +// public boolean setupPermissions() { +// RegisteredServiceProvider permissionProvider = Bukkit.getServicesManager().getRegistration(Permission.class); +// if(permissionProvider != null) { +// permissionService = permissionProvider.getProvider(); +// } +// return permissionService != null; +// } + + private final String node; + private final PermissionDefault defaultSetting; + private final int parent; + + Permissions(String node, PermissionDefault defaultSetting) { + this(node, defaultSetting, 2); + } + + Permissions(String node, PermissionDefault defaultSetting, int parent) { + this.node = node; + this.defaultSetting = defaultSetting; + this.parent = parent; + } + + public boolean has(CommandSender sender) { + if(parent >= 0 && values()[parent].has(sender)) { + return true; + } + + return sender.hasPermission(node); + +// if(permissionService != null) { +// return permissionService.has(player, node); +// } +// +// return defaultSetting.getValue(player.isOp()); + } + + public static Permissions getByNode(String node) { + for(Permissions permission : values()) { + if(permission.node.equalsIgnoreCase(node)) { + return permission; + } + } + + return null; + } +} diff --git a/src/main/java/com/lenis0012/bukkit/marriage2/internal/MarriageCommandExecutor.java b/src/main/java/com/lenis0012/bukkit/marriage2/internal/MarriageCommandExecutor.java index 4ec345e..2162563 100644 --- a/src/main/java/com/lenis0012/bukkit/marriage2/internal/MarriageCommandExecutor.java +++ b/src/main/java/com/lenis0012/bukkit/marriage2/internal/MarriageCommandExecutor.java @@ -31,7 +31,7 @@ public class MarriageCommandExecutor implements CommandExecutor { // Assuming that the command is not null now, if it is, then that is a mistake on my side. if(args.length > command.getMinArgs()) { - if(command.getPermission() == null || sender.hasPermission(command.getPermission())) { + if(command.getPermission() == null || command.getPermission().has(sender)) { if(command.isAllowConsole() || sender instanceof Player) { command.prepare(sender, args); command.execute(); diff --git a/src/main/java/com/lenis0012/bukkit/marriage2/internal/data/MarriagePlayer.java b/src/main/java/com/lenis0012/bukkit/marriage2/internal/data/MarriagePlayer.java index 234c830..4770c77 100644 --- a/src/main/java/com/lenis0012/bukkit/marriage2/internal/data/MarriagePlayer.java +++ b/src/main/java/com/lenis0012/bukkit/marriage2/internal/data/MarriagePlayer.java @@ -95,12 +95,12 @@ public class MarriagePlayer implements MPlayer { @Override public MPlayer getPartner() { Marriage core = MarriagePlugin.getInstance(); - UUID id = null; if(marriage != null) { - id = uuid.equals(marriage.getPlayer1Id()) ? marriage.getPllayer2Id() : marriage.getPlayer1Id(); + UUID id = uuid.equals(marriage.getPlayer1Id()) ? marriage.getPllayer2Id() : marriage.getPlayer1Id(); + return core.getMPlayer(id); } - return core.getMPlayer(id); + return null; } @Override diff --git a/src/main/java/com/lenis0012/bukkit/marriage2/listeners/UpdateListener.java b/src/main/java/com/lenis0012/bukkit/marriage2/listeners/UpdateListener.java index a095d42..f29e7be 100644 --- a/src/main/java/com/lenis0012/bukkit/marriage2/listeners/UpdateListener.java +++ b/src/main/java/com/lenis0012/bukkit/marriage2/listeners/UpdateListener.java @@ -1,6 +1,7 @@ package com.lenis0012.bukkit.marriage2.listeners; import com.lenis0012.bukkit.marriage2.config.Message; +import com.lenis0012.bukkit.marriage2.config.Permissions; import com.lenis0012.bukkit.marriage2.internal.MarriageCore; import com.lenis0012.updater.api.Updater; import com.lenis0012.updater.api.Version; @@ -21,7 +22,7 @@ public class UpdateListener implements Listener { @EventHandler public void onPlayerJoin(PlayerJoinEvent event) { final Player player = event.getPlayer(); - if(player.hasPermission("marry.update")) { + if(Permissions.UPDATE.has(player)) { final Updater updater = core.getUpdater(); Bukkit.getScheduler().runTaskLaterAsynchronously(core.getPlugin(), new Runnable() { @Override diff --git a/src/main/resources/changelog.json b/src/main/resources/changelog.json index 8812bf8..91c7c26 100644 --- a/src/main/resources/changelog.json +++ b/src/main/resources/changelog.json @@ -6,7 +6,25 @@ "---[ Changelog ]---", "When restarted, check config", "", - "- Updated chat format" + "- Updated chat format", + "", + "- Updated permission support", + "", + "- Fixed error on divorce" + ], + [ + "====[ DONATE ]====", + "", + "Make minecraft great again", + "$1 = 1 TRUMP VOTE", + "", + "paypal.me/lenis0012", + "=====[ SOCIAL ]=====", + "IGN: lenis", + "Twitter: @lenis0012", + "", + "Report bugs!", + "-lenis" ] ] } \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index d86cee9..f88bda6 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -8,41 +8,4 @@ softdepend: [Vault] commands: marry: description: Marriage main command. - usage: /marry -permissions: - marry.*: - description: Allows all Marriage Commands - default: false - children: - marry.admin: - description: Allows all admin commands - default: false - children: - marry.update: - description: Allows user to update plugin if updater is enabled. - default: op - marry.default: - description: Allows default player commands - default: true - children: - marry.marry: - description: Allows to marry with players - default: true - marry.tp: - description: Allows to tp to your partner - default: true - marry.home: - description: Allows to tp to your home if set - default: true - marry.sethome: - description: Allows to set your Marriage home - default: true - marry.gift: - description: Allows to gift items to your partner - default: true - marry.chat: - description: Allows to chat with your partner - default: true - marry.seen: - description: Allows to see your last login from your partner - default: true \ No newline at end of file + usage: /marry \ No newline at end of file