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!'