permission check revamp

This commit is contained in:
SuperRonanCraft 2023-03-29 00:26:05 -04:00
parent 06453db90c
commit 9c56ec17ea
23 changed files with 104 additions and 54 deletions

View File

@ -7,7 +7,7 @@
<groupId>me.SuperRonanCraft</groupId> <groupId>me.SuperRonanCraft</groupId>
<artifactId>BetterRTP</artifactId> <artifactId>BetterRTP</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>
<version>3.6.3</version> <version>3.6.4</version>
<properties> <properties>
<maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.source>1.8</maven.compiler.source>

View File

@ -37,7 +37,7 @@ public class Commands {
if (args != null && args.length > 0) { if (args != null && args.length > 0) {
for (RTPCommand cmd : commands) { for (RTPCommand cmd : commands) {
if (cmd.getName().equalsIgnoreCase(args[0])) { if (cmd.getName().equalsIgnoreCase(args[0])) {
if (cmd.permission(sendi)) { if (cmd.permission().check(sendi)) {
RTP_CommandEvent event = new RTP_CommandEvent(sendi, cmd); RTP_CommandEvent event = new RTP_CommandEvent(sendi, cmd);
//Command Event //Command Event
Bukkit.getServer().getPluginManager().callEvent(event); Bukkit.getServer().getPluginManager().callEvent(event);
@ -67,13 +67,13 @@ public class Commands {
if (args.length == 1) { if (args.length == 1) {
for (RTPCommand cmd : commands) { for (RTPCommand cmd : commands) {
if (cmd.getName().toLowerCase().startsWith(args[0].toLowerCase())) if (cmd.getName().toLowerCase().startsWith(args[0].toLowerCase()))
if (cmd.permission(sendi)) if (cmd.permission().check(sendi))
list.add(cmd.getName().toLowerCase()); list.add(cmd.getName().toLowerCase());
} }
} else if (args.length > 1) { } else if (args.length > 1) {
for (RTPCommand cmd : commands) { for (RTPCommand cmd : commands) {
if (cmd.getName().equalsIgnoreCase(args[0])) if (cmd.getName().equalsIgnoreCase(args[0]))
if (cmd.permission(sendi)) { if (cmd.permission().check(sendi)) {
List<String> _cmdlist = cmd.tabComplete(sendi, args); List<String> _cmdlist = cmd.tabComplete(sendi, args);
if (_cmdlist != null) if (_cmdlist != null)
list.addAll(_cmdlist); list.addAll(_cmdlist);

View File

@ -1,6 +1,9 @@
package me.SuperRonanCraft.BetterRTP.player.commands; package me.SuperRonanCraft.BetterRTP.player.commands;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.List; import java.util.List;
@ -10,7 +13,8 @@ public interface RTPCommand {
List<String> tabComplete(CommandSender sendi, String[] args); List<String> tabComplete(CommandSender sendi, String[] args);
boolean permission(CommandSender sendi); @NotNull
PermissionNode permission();
String getName(); String getName();

View File

@ -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.MessagesHelp;
import me.SuperRonanCraft.BetterRTP.references.messages.MessagesUsage; import me.SuperRonanCraft.BetterRTP.references.messages.MessagesUsage;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -35,8 +36,8 @@ public class CmdBiome implements RTPCommand, RTPCommandHelpable {
return list; return list;
} }
public boolean permission(CommandSender sendi) { @NotNull public PermissionNode permission() {
return PermissionNode.BIOME.check(sendi); return PermissionNode.BIOME;
} }
public void usage(CommandSender sendi, String label) { public void usage(CommandSender sendi, String label) {

View File

@ -1,8 +1,10 @@
package me.SuperRonanCraft.BetterRTP.player.commands.types; package me.SuperRonanCraft.BetterRTP.player.commands.types;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.RandomLocation; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.RandomLocation;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;
import java.util.List; import java.util.List;
@ -20,8 +22,9 @@ public class CmdDeveloper implements RTPCommand {
return null; return null;
} }
public boolean permission(CommandSender sendi) { @NotNull public PermissionNode permission() {
return sendi.getName().equalsIgnoreCase("SuperRonanCraft") || sendi.getName().equalsIgnoreCase("RonanCrafts"); return PermissionNode.DEVELOPER;
//sendi.getName().equalsIgnoreCase("SuperRonanCraft") || sendi.getName().equalsIgnoreCase("RonanCrafts");
} }
public void usage(CommandSender sendi, String label) { public void usage(CommandSender sendi, String label) {

View File

@ -17,6 +17,7 @@ import org.bukkit.Material;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import java.util.*; import java.util.*;
@ -272,9 +273,9 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds
return list; return list;
} }
@Override @NotNull @Override
public boolean permission(CommandSender sendi) { public PermissionNode permission() {
return PermissionNode.EDIT.check(sendi); return PermissionNode.EDIT;
} }
private void usage(CommandSender sendi, String label, RTP_CMD_EDIT type) { private void usage(CommandSender sendi, String label, RTP_CMD_EDIT type) {

View File

@ -3,9 +3,11 @@ package me.SuperRonanCraft.BetterRTP.player.commands.types;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; 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.Message_RTP;
import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp; import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
@ -22,7 +24,7 @@ public class CmdHelp implements RTPCommand, RTPCommandHelpable {
list.add(MessagesHelp.PREFIX.get()); list.add(MessagesHelp.PREFIX.get());
list.add(MessagesHelp.MAIN.get()); list.add(MessagesHelp.MAIN.get());
for (RTPCommand cmd : BetterRTP.getInstance().getCmd().commands) for (RTPCommand cmd : BetterRTP.getInstance().getCmd().commands)
if (cmd.permission(sendi)) if (cmd.permission().check(sendi))
if (cmd instanceof RTPCommandHelpable) { if (cmd instanceof RTPCommandHelpable) {
String help = ((RTPCommandHelpable) cmd).getHelp(); String help = ((RTPCommandHelpable) cmd).getHelp();
list.add(help); list.add(help);
@ -35,8 +37,8 @@ public class CmdHelp implements RTPCommand, RTPCommandHelpable {
} }
public boolean permission(CommandSender sendi) { @NotNull public PermissionNode permission() {
return true; return PermissionNode.USE;
} }
@Override @Override

View File

@ -26,6 +26,7 @@ import org.bukkit.World;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.potion.PotionEffectType; import org.bukkit.potion.PotionEffectType;
import org.jetbrains.annotations.NotNull;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser; import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException; import org.json.simple.parser.ParseException;
@ -286,7 +287,7 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable {
return info; return info;
} }
public boolean permission(CommandSender sendi) { @NotNull public PermissionNode permission() {
return PermissionNode.INFO.check(sendi); return PermissionNode.INFO;
} }
} }

View File

@ -15,6 +15,7 @@ import org.bukkit.Bukkit;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.ArrayList; import java.util.ArrayList;
@ -74,8 +75,8 @@ public class CmdLocation implements RTPCommand, RTPCommandHelpable {
return list; return list;
} }
public boolean permission(CommandSender sendi) { @NotNull public PermissionNode permission() {
return PermissionNode.LOCATION.check(sendi); return PermissionNode.LOCATION;
} }
public void usage(CommandSender sendi, String label) { public void usage(CommandSender sendi, String label) {

View File

@ -12,6 +12,7 @@ import net.md_5.bungee.api.chat.HoverEvent;
import net.md_5.bungee.api.chat.TextComponent; import net.md_5.bungee.api.chat.TextComponent;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser; import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException; import org.json.simple.parser.ParseException;
@ -63,8 +64,8 @@ public class CmdLogger implements RTPCommand {
return null; return null;
} }
public boolean permission(CommandSender sendi) { @NotNull public PermissionNode permission() {
return PermissionNode.ADMIN.check(sendi); return PermissionNode.ADMIN;
} }
public void usage(CommandSender sendi, String label) { public void usage(CommandSender sendi, String label) {

View File

@ -17,6 +17,7 @@ import org.bukkit.Bukkit;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; 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())) if (w.getName().startsWith(args[2]) && !BetterRTP.getInstance().getRTP().getDisabledWorlds().contains(w.getName()))
list.add(w.getName()); list.add(w.getName());
} else if (args.length > 3) { } else if (args.length > 3) {
if (RTPCommandType.BIOME.getCmd().permission(sendi)) if (RTPCommandType.BIOME.getCmd().permission().check(sendi))
HelperRTP_Info.addBiomes(list, args); HelperRTP_Info.addBiomes(list, args);
} }
return list; return list;
} }
public boolean permission(CommandSender sendi) { @NotNull public PermissionNode permission() {
return PermissionNode.RTP_OTHER.check(sendi); return PermissionNode.RTP_OTHER;
} }
public void usage(CommandSender sendi, String label) { public void usage(CommandSender sendi, String label) {

View File

@ -22,6 +22,7 @@ import org.bukkit.Location;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser; import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException; import org.json.simple.parser.ParseException;
@ -121,7 +122,7 @@ public class CmdQueue implements RTPCommand {
return info; return info;
} }
public boolean permission(CommandSender sendi) { @NotNull public PermissionNode permission() {
return PermissionNode.ADMIN.check(sendi); return PermissionNode.ADMIN;
} }
} }

View File

@ -6,6 +6,7 @@ import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode; import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp; import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;
import java.util.List; import java.util.List;
@ -23,8 +24,8 @@ public class CmdReload implements RTPCommand, RTPCommandHelpable {
return null; return null;
} }
public boolean permission(CommandSender sendi) { @NotNull public PermissionNode permission() {
return PermissionNode.RELOAD.check(sendi); return PermissionNode.RELOAD;
} }
@Override @Override

View File

@ -9,6 +9,7 @@ import me.SuperRonanCraft.BetterRTP.references.messages.Message_RTP;
import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp; import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import java.util.List; import java.util.List;
@ -29,8 +30,8 @@ public class CmdSettings implements RTPCommand, RTPCommandHelpable {
return null; return null;
} }
public boolean permission(CommandSender sendi) { @NotNull public PermissionNode permission() {
return PermissionNode.SETTINGS.check(sendi); return PermissionNode.SETTINGS;
} }
@Override @Override

View File

@ -2,11 +2,13 @@ package me.SuperRonanCraft.BetterRTP.player.commands.types;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE; 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.helpers.HelperRTP;
import me.SuperRonanCraft.BetterRTP.references.messages.Message_RTP; import me.SuperRonanCraft.BetterRTP.references.messages.Message_RTP;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import java.util.List; import java.util.List;
@ -30,9 +32,9 @@ public class CmdTeleport implements RTPCommand {
return null; return null;
} }
@Override @NotNull @Override
public boolean permission(CommandSender sendi) { public PermissionNode permission() {
return true; return PermissionNode.USE;
} }
@Override @Override

View File

@ -8,6 +8,7 @@ import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp; import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import java.util.List; import java.util.List;
@ -32,9 +33,9 @@ public class CmdTest implements RTPCommand, RTPCommandHelpable {
return null; return null;
} }
@Override @NotNull @Override
public boolean permission(CommandSender sendi) { public PermissionNode permission() {
return PermissionNode.ADMIN.check(sendi); return PermissionNode.ADMIN;
} }
@Override @Override

View File

@ -1,13 +1,13 @@
package me.SuperRonanCraft.BetterRTP.player.commands.types; package me.SuperRonanCraft.BetterRTP.player.commands.types;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; 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.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.messages.Message;
import me.SuperRonanCraft.BetterRTP.references.messages.Message_RTP; import me.SuperRonanCraft.BetterRTP.references.messages.Message_RTP;
import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp; import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;
import java.util.List; import java.util.List;
@ -25,8 +25,8 @@ public class CmdVersion implements RTPCommand, RTPCommandHelpable {
return null; return null;
} }
public boolean permission(CommandSender sendi) { @NotNull public PermissionNode permission() {
return PermissionNode.VERSION.check(sendi); return PermissionNode.VERSION;
} }
@Override @Override

View File

@ -13,6 +13,7 @@ import me.SuperRonanCraft.BetterRTP.references.messages.MessagesUsage;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;
import org.kingdoms.commands.general.misc.CommandTeleport; import org.kingdoms.commands.general.misc.CommandTeleport;
import java.util.ArrayList; import java.util.ArrayList;
@ -48,14 +49,14 @@ public class CmdWorld implements RTPCommand, RTPCommandHelpable {
list.add(_wName); list.add(_wName);
} }
} else if (args.length >= 3) { } else if (args.length >= 3) {
if (RTPCommandType.BIOME.getCmd().permission(sendi)) if (RTPCommandType.BIOME.getCmd().permission().check(sendi))
HelperRTP_Info.addBiomes(list, args); HelperRTP_Info.addBiomes(list, args);
} }
return list; return list;
} }
public boolean permission(CommandSender sendi) { @NotNull public PermissionNode permission() {
return PermissionNode.WORLD.check(sendi); return PermissionNode.WORLD;
} }
public void usage(CommandSender sendi, String label) { public void usage(CommandSender sendi, String label) {

View File

@ -5,7 +5,7 @@ import me.SuperRonanCraft.BetterRTP.references.messages.MessagesCore;
public enum RTP_ERROR_REQUEST_REASON { public enum RTP_ERROR_REQUEST_REASON {
IS_RTPING(MessagesCore.ALREADY), IS_RTPING(MessagesCore.ALREADY),
NO_PERMISSION(MessagesCore.NOPERMISSION), NO_PERMISSION(MessagesCore.NOPERMISSION_WORLD),
WORLD_DISABLED(MessagesCore.DISABLED_WORLD), WORLD_DISABLED(MessagesCore.DISABLED_WORLD),
COOLDOWN(MessagesCore.COOLDOWN), COOLDOWN(MessagesCore.COOLDOWN),
PRICE_ECONOMY(MessagesCore.FAILED_PRICE), PRICE_ECONOMY(MessagesCore.FAILED_PRICE),

View File

@ -1,9 +1,12 @@
package me.SuperRonanCraft.BetterRTP.references; package me.SuperRonanCraft.BetterRTP.references;
import com.griefdefender.api.permission.PermissionResult;
import lombok.Getter;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;
public enum PermissionNode { public enum PermissionNode {
@ -24,6 +27,7 @@ public enum PermissionNode {
VERSION("version"), VERSION("version"),
EDIT("edit"), EDIT("edit"),
LOCATION("location"), LOCATION("location"),
DEVELOPER("DEVELOPER_PERM"),
; ;
private final String node; private final String node;
@ -34,6 +38,8 @@ public enum PermissionNode {
} }
public boolean check(CommandSender sendi) { public boolean check(CommandSender sendi) {
if (this == DEVELOPER)
return sendi.getName().equalsIgnoreCase("SuperRonanCraft") || sendi.getName().equalsIgnoreCase("RonanCrafts");
return BetterRTP.getInstance().getPerms().checkPerm(node, sendi); return BetterRTP.getInstance().getPerms().checkPerm(node, sendi);
} }
@ -42,15 +48,19 @@ public enum PermissionNode {
} }
public static boolean getAWorld(CommandSender sendi, String world) { public static boolean getAWorld(CommandSender sendi, String world) {
if (check(sendi, prefix + "world.*")) return getAWorldText(sendi, world).passed;
return true; }
else if (world == null) {
for (World w : Bukkit.getWorlds()) public static PermissionResult getAWorldText(CommandSender sendi, @NotNull String world) {
if (check(sendi, prefix + "world." + w.getName())) String perm = prefix + "world.*";
return true; if (check(sendi, perm)) {
} else return new PermissionResult(perm, true);
return check(sendi, prefix + "world." + world); } else {
return false; 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); 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;
}
}
} }

View File

@ -1,6 +1,7 @@
package me.SuperRonanCraft.BetterRTP.references.messages.placeholder; package me.SuperRonanCraft.BetterRTP.references.messages.placeholder;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperDate; import me.SuperRonanCraft.BetterRTP.references.helpers.HelperDate;
import me.SuperRonanCraft.BetterRTP.references.player.playerdata.PlayerData; import me.SuperRonanCraft.BetterRTP.references.player.playerdata.PlayerData;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownData; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownData;
@ -37,9 +38,16 @@ public class PlaceholderAnalyzer {
private static String worldPlayer(WorldPlayer pWorld, String str) { private static String worldPlayer(WorldPlayer pWorld, String str) {
str = ints(str, pWorld.getPrice()); str = ints(str, pWorld.getPrice());
str = world(str, pWorld.getWorld()); str = world(str, pWorld.getWorld());
str = perm(str, pWorld.getPlayer(), pWorld.getWorld().getName());
return player(str, pWorld.getPlayer()); 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) { private static String string(String str, String info) {
if (str.contains(Placeholders.COMMAND.name)) if (str.contains(Placeholders.COMMAND.name))
str = str.replace(Placeholders.COMMAND.name, info); str = str.replace(Placeholders.COMMAND.name, info);

View File

@ -11,6 +11,7 @@ public enum Placeholders {
LOCATION_Z("z"), LOCATION_Z("z"),
//World //World
WORLD("world"), WORLD("world"),
PERMISSION("permission"),
//ints //ints
ATTEMPTS("attempts"), ATTEMPTS("attempts"),
PRICE("price"), PRICE("price"),

View File

@ -17,7 +17,7 @@ Messages:
Reload: '&eConfig reloaded successfully!' Reload: '&eConfig reloaded successfully!'
NoPermission: NoPermission:
Basic: '&cSorry! &7You don''t have permission to use this command!' 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!' DisabledWorld: '&cDisabled World %world%! &7Could not RTP!'
Cooldown: '&cSorry! &7You can''t rtp for another &c%time%&7!' Cooldown: '&cSorry! &7You can''t rtp for another &c%time%&7!'
Locked: '&cSorry! &7You''ve used up all your RTP''s!' Locked: '&cSorry! &7You''ve used up all your RTP''s!'