diff --git a/pom.xml b/pom.xml index a1088be..788fe85 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ me.SuperRonanCraft BetterRTP jar - 3.6.3 + 3.6.4 1.8 diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/Commands.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/Commands.java index 469cc01..b0a936a 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/Commands.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/Commands.java @@ -37,7 +37,7 @@ public class Commands { if (args != null && args.length > 0) { for (RTPCommand cmd : commands) { if (cmd.getName().equalsIgnoreCase(args[0])) { - if (cmd.permission(sendi)) { + if (cmd.permission().check(sendi)) { RTP_CommandEvent event = new RTP_CommandEvent(sendi, cmd); //Command Event Bukkit.getServer().getPluginManager().callEvent(event); @@ -67,13 +67,13 @@ public class Commands { if (args.length == 1) { for (RTPCommand cmd : commands) { if (cmd.getName().toLowerCase().startsWith(args[0].toLowerCase())) - if (cmd.permission(sendi)) + if (cmd.permission().check(sendi)) list.add(cmd.getName().toLowerCase()); } } else if (args.length > 1) { for (RTPCommand cmd : commands) { if (cmd.getName().equalsIgnoreCase(args[0])) - if (cmd.permission(sendi)) { + if (cmd.permission().check(sendi)) { List _cmdlist = cmd.tabComplete(sendi, args); if (_cmdlist != null) list.addAll(_cmdlist); diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/RTPCommand.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/RTPCommand.java index 08d3ec3..09249d9 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/RTPCommand.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/RTPCommand.java @@ -1,6 +1,9 @@ package me.SuperRonanCraft.BetterRTP.player.commands; +import me.SuperRonanCraft.BetterRTP.references.PermissionNode; import org.bukkit.command.CommandSender; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.List; @@ -10,7 +13,8 @@ public interface RTPCommand { List tabComplete(CommandSender sendi, String[] args); - boolean permission(CommandSender sendi); + @NotNull + PermissionNode permission(); String getName(); diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdBiome.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdBiome.java index 63896ba..2a060f5 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdBiome.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdBiome.java @@ -10,6 +10,7 @@ import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Info; import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp; import me.SuperRonanCraft.BetterRTP.references.messages.MessagesUsage; import org.bukkit.command.CommandSender; +import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; @@ -35,8 +36,8 @@ public class CmdBiome implements RTPCommand, RTPCommandHelpable { return list; } - public boolean permission(CommandSender sendi) { - return PermissionNode.BIOME.check(sendi); + @NotNull public PermissionNode permission() { + return PermissionNode.BIOME; } public void usage(CommandSender sendi, String label) { diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdDeveloper.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdDeveloper.java index 34e02aa..b07354f 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdDeveloper.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdDeveloper.java @@ -1,8 +1,10 @@ package me.SuperRonanCraft.BetterRTP.player.commands.types; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; +import me.SuperRonanCraft.BetterRTP.references.PermissionNode; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.RandomLocation; import org.bukkit.command.CommandSender; +import org.jetbrains.annotations.NotNull; import java.util.List; @@ -20,8 +22,9 @@ public class CmdDeveloper implements RTPCommand { return null; } - public boolean permission(CommandSender sendi) { - return sendi.getName().equalsIgnoreCase("SuperRonanCraft") || sendi.getName().equalsIgnoreCase("RonanCrafts"); + @NotNull public PermissionNode permission() { + return PermissionNode.DEVELOPER; + //sendi.getName().equalsIgnoreCase("SuperRonanCraft") || sendi.getName().equalsIgnoreCase("RonanCrafts"); } public void usage(CommandSender sendi, String label) { diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdEdit.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdEdit.java index 3453931..8ee0c9d 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdEdit.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdEdit.java @@ -17,6 +17,7 @@ import org.bukkit.Material; import org.bukkit.World; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; import java.util.*; @@ -272,9 +273,9 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds return list; } - @Override - public boolean permission(CommandSender sendi) { - return PermissionNode.EDIT.check(sendi); + @NotNull @Override + public PermissionNode permission() { + return PermissionNode.EDIT; } private void usage(CommandSender sendi, String label, RTP_CMD_EDIT type) { diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdHelp.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdHelp.java index af82a85..705117f 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdHelp.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdHelp.java @@ -3,9 +3,11 @@ package me.SuperRonanCraft.BetterRTP.player.commands.types; import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; +import me.SuperRonanCraft.BetterRTP.references.PermissionNode; import me.SuperRonanCraft.BetterRTP.references.messages.Message_RTP; import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp; import org.bukkit.command.CommandSender; +import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.Collections; @@ -22,7 +24,7 @@ public class CmdHelp implements RTPCommand, RTPCommandHelpable { list.add(MessagesHelp.PREFIX.get()); list.add(MessagesHelp.MAIN.get()); for (RTPCommand cmd : BetterRTP.getInstance().getCmd().commands) - if (cmd.permission(sendi)) + if (cmd.permission().check(sendi)) if (cmd instanceof RTPCommandHelpable) { String help = ((RTPCommandHelpable) cmd).getHelp(); list.add(help); @@ -35,8 +37,8 @@ public class CmdHelp implements RTPCommand, RTPCommandHelpable { } - public boolean permission(CommandSender sendi) { - return true; + @NotNull public PermissionNode permission() { + return PermissionNode.USE; } @Override diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdInfo.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdInfo.java index 0420bfa..6fb9b34 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdInfo.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdInfo.java @@ -26,6 +26,7 @@ import org.bukkit.World; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.potion.PotionEffectType; +import org.jetbrains.annotations.NotNull; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; @@ -286,7 +287,7 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable { return info; } - public boolean permission(CommandSender sendi) { - return PermissionNode.INFO.check(sendi); + @NotNull public PermissionNode permission() { + return PermissionNode.INFO; } } diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdLocation.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdLocation.java index 62de0a7..dee9365 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdLocation.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdLocation.java @@ -15,6 +15,7 @@ import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.ArrayList; @@ -74,8 +75,8 @@ public class CmdLocation implements RTPCommand, RTPCommandHelpable { return list; } - public boolean permission(CommandSender sendi) { - return PermissionNode.LOCATION.check(sendi); + @NotNull public PermissionNode permission() { + return PermissionNode.LOCATION; } public void usage(CommandSender sendi, String label) { diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdLogger.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdLogger.java index 1bdafc4..760e264 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdLogger.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdLogger.java @@ -12,6 +12,7 @@ import net.md_5.bungee.api.chat.HoverEvent; import net.md_5.bungee.api.chat.TextComponent; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; @@ -63,8 +64,8 @@ public class CmdLogger implements RTPCommand { return null; } - public boolean permission(CommandSender sendi) { - return PermissionNode.ADMIN.check(sendi); + @NotNull public PermissionNode permission() { + return PermissionNode.ADMIN; } public void usage(CommandSender sendi, String label) { diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdPlayer.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdPlayer.java index aa9df64..db03c80 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdPlayer.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdPlayer.java @@ -17,6 +17,7 @@ import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; @@ -62,14 +63,14 @@ public class CmdPlayer implements RTPCommand, RTPCommandHelpable { if (w.getName().startsWith(args[2]) && !BetterRTP.getInstance().getRTP().getDisabledWorlds().contains(w.getName())) list.add(w.getName()); } else if (args.length > 3) { - if (RTPCommandType.BIOME.getCmd().permission(sendi)) + if (RTPCommandType.BIOME.getCmd().permission().check(sendi)) HelperRTP_Info.addBiomes(list, args); } return list; } - public boolean permission(CommandSender sendi) { - return PermissionNode.RTP_OTHER.check(sendi); + @NotNull public PermissionNode permission() { + return PermissionNode.RTP_OTHER; } public void usage(CommandSender sendi, String label) { diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdQueue.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdQueue.java index ba14abd..447e0c8 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdQueue.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdQueue.java @@ -22,6 +22,7 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; @@ -121,7 +122,7 @@ public class CmdQueue implements RTPCommand { return info; } - public boolean permission(CommandSender sendi) { - return PermissionNode.ADMIN.check(sendi); + @NotNull public PermissionNode permission() { + return PermissionNode.ADMIN; } } diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdReload.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdReload.java index 44be866..b829510 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdReload.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdReload.java @@ -6,6 +6,7 @@ import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.references.PermissionNode; import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp; import org.bukkit.command.CommandSender; +import org.jetbrains.annotations.NotNull; import java.util.List; @@ -23,8 +24,8 @@ public class CmdReload implements RTPCommand, RTPCommandHelpable { return null; } - public boolean permission(CommandSender sendi) { - return PermissionNode.RELOAD.check(sendi); + @NotNull public PermissionNode permission() { + return PermissionNode.RELOAD; } @Override diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdSettings.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdSettings.java index be23031..1377999 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdSettings.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdSettings.java @@ -9,6 +9,7 @@ import me.SuperRonanCraft.BetterRTP.references.messages.Message_RTP; import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; import java.util.List; @@ -29,8 +30,8 @@ public class CmdSettings implements RTPCommand, RTPCommandHelpable { return null; } - public boolean permission(CommandSender sendi) { - return PermissionNode.SETTINGS.check(sendi); + @NotNull public PermissionNode permission() { + return PermissionNode.SETTINGS; } @Override diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdTeleport.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdTeleport.java index fec66d7..a82526b 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdTeleport.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdTeleport.java @@ -2,11 +2,13 @@ package me.SuperRonanCraft.BetterRTP.player.commands.types; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE; +import me.SuperRonanCraft.BetterRTP.references.PermissionNode; import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP; import me.SuperRonanCraft.BetterRTP.references.messages.Message_RTP; import org.bukkit.World; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; import java.util.List; @@ -30,9 +32,9 @@ public class CmdTeleport implements RTPCommand { return null; } - @Override - public boolean permission(CommandSender sendi) { - return true; + @NotNull @Override + public PermissionNode permission() { + return PermissionNode.USE; } @Override diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdTest.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdTest.java index b97c48b..c9c8d81 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdTest.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdTest.java @@ -8,6 +8,7 @@ import me.SuperRonanCraft.BetterRTP.references.PermissionNode; import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; import java.util.List; @@ -32,9 +33,9 @@ public class CmdTest implements RTPCommand, RTPCommandHelpable { return null; } - @Override - public boolean permission(CommandSender sendi) { - return PermissionNode.ADMIN.check(sendi); + @NotNull @Override + public PermissionNode permission() { + return PermissionNode.ADMIN; } @Override diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdVersion.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdVersion.java index efe6dfc..548d98c 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdVersion.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdVersion.java @@ -1,13 +1,13 @@ package me.SuperRonanCraft.BetterRTP.player.commands.types; -import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; +import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; import me.SuperRonanCraft.BetterRTP.references.PermissionNode; -import me.SuperRonanCraft.BetterRTP.references.messages.Message; import me.SuperRonanCraft.BetterRTP.references.messages.Message_RTP; import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp; import org.bukkit.command.CommandSender; +import org.jetbrains.annotations.NotNull; import java.util.List; @@ -25,8 +25,8 @@ public class CmdVersion implements RTPCommand, RTPCommandHelpable { return null; } - public boolean permission(CommandSender sendi) { - return PermissionNode.VERSION.check(sendi); + @NotNull public PermissionNode permission() { + return PermissionNode.VERSION; } @Override diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdWorld.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdWorld.java index df70c00..19a1386 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdWorld.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdWorld.java @@ -13,6 +13,7 @@ import me.SuperRonanCraft.BetterRTP.references.messages.MessagesUsage; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.command.CommandSender; +import org.jetbrains.annotations.NotNull; import org.kingdoms.commands.general.misc.CommandTeleport; import java.util.ArrayList; @@ -48,14 +49,14 @@ public class CmdWorld implements RTPCommand, RTPCommandHelpable { list.add(_wName); } } else if (args.length >= 3) { - if (RTPCommandType.BIOME.getCmd().permission(sendi)) + if (RTPCommandType.BIOME.getCmd().permission().check(sendi)) HelperRTP_Info.addBiomes(list, args); } return list; } - public boolean permission(CommandSender sendi) { - return PermissionNode.WORLD.check(sendi); + @NotNull public PermissionNode permission() { + return PermissionNode.WORLD; } public void usage(CommandSender sendi, String label) { diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP_ERROR_REQUEST_REASON.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP_ERROR_REQUEST_REASON.java index 3376733..c03fe01 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP_ERROR_REQUEST_REASON.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP_ERROR_REQUEST_REASON.java @@ -5,7 +5,7 @@ import me.SuperRonanCraft.BetterRTP.references.messages.MessagesCore; public enum RTP_ERROR_REQUEST_REASON { IS_RTPING(MessagesCore.ALREADY), - NO_PERMISSION(MessagesCore.NOPERMISSION), + NO_PERMISSION(MessagesCore.NOPERMISSION_WORLD), WORLD_DISABLED(MessagesCore.DISABLED_WORLD), COOLDOWN(MessagesCore.COOLDOWN), PRICE_ECONOMY(MessagesCore.FAILED_PRICE), diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/PermissionNode.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/PermissionNode.java index f41ba7a..96c870d 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/PermissionNode.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/PermissionNode.java @@ -1,9 +1,12 @@ package me.SuperRonanCraft.BetterRTP.references; +import com.griefdefender.api.permission.PermissionResult; +import lombok.Getter; import me.SuperRonanCraft.BetterRTP.BetterRTP; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.command.CommandSender; +import org.jetbrains.annotations.NotNull; public enum PermissionNode { @@ -24,6 +27,7 @@ public enum PermissionNode { VERSION("version"), EDIT("edit"), LOCATION("location"), + DEVELOPER("DEVELOPER_PERM"), ; private final String node; @@ -34,6 +38,8 @@ public enum PermissionNode { } public boolean check(CommandSender sendi) { + if (this == DEVELOPER) + return sendi.getName().equalsIgnoreCase("SuperRonanCraft") || sendi.getName().equalsIgnoreCase("RonanCrafts"); return BetterRTP.getInstance().getPerms().checkPerm(node, sendi); } @@ -42,15 +48,19 @@ public enum PermissionNode { } public static boolean getAWorld(CommandSender sendi, String world) { - if (check(sendi, prefix + "world.*")) - return true; - else if (world == null) { - for (World w : Bukkit.getWorlds()) - if (check(sendi, prefix + "world." + w.getName())) - return true; - } else - return check(sendi, prefix + "world." + world); - return false; + return getAWorldText(sendi, world).passed; + } + + public static PermissionResult getAWorldText(CommandSender sendi, @NotNull String world) { + String perm = prefix + "world.*"; + if (check(sendi, perm)) { + return new PermissionResult(perm, true); + } else { + perm = prefix + "world." + world; + if (check(sendi, perm)) + return new PermissionResult(perm, true); + } + return new PermissionResult(perm, false); } @@ -62,4 +72,13 @@ public enum PermissionNode { return check(sendi, prefix + "group." + group); } + public static class PermissionResult { + @Getter private final boolean passed; + @Getter private final String string; + PermissionResult(String string, boolean passed) { + this.passed = passed; + this.string = string; + } + } + } diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/placeholder/PlaceholderAnalyzer.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/placeholder/PlaceholderAnalyzer.java index b5acb4d..1f49fd9 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/placeholder/PlaceholderAnalyzer.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/placeholder/PlaceholderAnalyzer.java @@ -1,6 +1,7 @@ package me.SuperRonanCraft.BetterRTP.references.messages.placeholder; import me.SuperRonanCraft.BetterRTP.BetterRTP; +import me.SuperRonanCraft.BetterRTP.references.PermissionNode; import me.SuperRonanCraft.BetterRTP.references.helpers.HelperDate; import me.SuperRonanCraft.BetterRTP.references.player.playerdata.PlayerData; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownData; @@ -37,9 +38,16 @@ public class PlaceholderAnalyzer { private static String worldPlayer(WorldPlayer pWorld, String str) { str = ints(str, pWorld.getPrice()); str = world(str, pWorld.getWorld()); + str = perm(str, pWorld.getPlayer(), pWorld.getWorld().getName()); return player(str, pWorld.getPlayer()); } + private static String perm(String str, CommandSender player, String world) { + if (str.contains(Placeholders.PERMISSION.name)) + str = str.replace(Placeholders.PERMISSION.name, PermissionNode.getAWorldText(player, world).getString()); + return str; + } + private static String string(String str, String info) { if (str.contains(Placeholders.COMMAND.name)) str = str.replace(Placeholders.COMMAND.name, info); diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/placeholder/Placeholders.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/placeholder/Placeholders.java index 941d592..e5e2aa6 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/placeholder/Placeholders.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/placeholder/Placeholders.java @@ -11,6 +11,7 @@ public enum Placeholders { LOCATION_Z("z"), //World WORLD("world"), + PERMISSION("permission"), //ints ATTEMPTS("attempts"), PRICE("price"), diff --git a/src/main/resources/lang/en.yml b/src/main/resources/lang/en.yml index 4be9960..07a7ac0 100644 --- a/src/main/resources/lang/en.yml +++ b/src/main/resources/lang/en.yml @@ -17,7 +17,7 @@ Messages: Reload: '&eConfig reloaded successfully!' NoPermission: Basic: '&cSorry! &7You don''t have permission to use this command!' - World: '&cSorry! &7You are not allowed rtp in the %world% world!' + World: '&cSorry! &7You are not allowed rtp in the %world% world! &8Permission: %permission%' DisabledWorld: '&cDisabled World %world%! &7Could not RTP!' Cooldown: '&cSorry! &7You can''t rtp for another &c%time%&7!' Locked: '&cSorry! &7You''ve used up all your RTP''s!'