From c04e8c0e7da7d823cd055b481fbe478a0b618673 Mon Sep 17 00:00:00 2001 From: RonanCraft Date: Wed, 6 Apr 2022 14:22:05 -0400 Subject: [PATCH] added /rtp edit locations/permission_group + rtp setup redo --- .../SuperRonanCraft/BetterRTP/BetterRTP.java | 2 +- .../player/commands/types/CmdBiome.java | 3 +- .../player/commands/types/CmdEdit.java | 459 ++++++------------ .../player/commands/types/CmdInfo.java | 20 +- .../player/commands/types/CmdLocation.java | 9 +- .../player/commands/types/CmdPlayer.java | 3 +- .../player/commands/types/CmdReload.java | 3 +- .../player/commands/types/CmdSettings.java | 3 +- .../player/commands/types/CmdTest.java | 3 +- .../player/commands/types/CmdVersion.java | 3 +- .../player/commands/types/CmdWorld.java | 7 +- .../BetterRTP/player/events/Interact.java | 3 +- .../BetterRTP/player/events/Join.java | 5 +- .../BetterRTP/player/rtp/RTP.java | 57 +-- .../BetterRTP/player/rtp/RTPLoader.java | 14 +- .../BetterRTP/references/Permissions.java | 15 +- .../references/depends/DepEconomy.java | 7 +- .../BetterRTP/references/file/Messages.java | 8 + .../references/helpers/HelperRTP.java | 98 ++-- .../helpers/HelperRTP_EditConfig.java | 6 + .../helpers/HelperRTP_EditWorlds.java | 268 ++++++++++ .../references/helpers/HelperRTP_Info.java | 3 +- .../references/rtpinfo/CooldownHandler.java | 17 +- .../references/rtpinfo/PermissionGroup.java | 22 +- .../references/rtpinfo/worlds/RTPWorld.java | 5 + .../rtpinfo/worlds/RTPWorld_Defaulted.java | 3 +- .../rtpinfo/worlds/WorldCustom.java | 13 +- .../rtpinfo/worlds/WorldLocations.java | 13 +- .../rtpinfo/worlds/WorldPermissionGroup.java | 22 +- .../rtpinfo/worlds/WorldPlayer.java | 18 +- .../references/settings/Settings.java | 2 + .../references/{ => web}/Updater.java | 2 +- src/main/resources/config.yml | 1 + src/main/resources/lang/chs.yml | 1 + src/main/resources/lang/cht.yml | 1 + src/main/resources/lang/cs.yml | 1 + src/main/resources/lang/da.yml | 1 + src/main/resources/lang/du.yml | 1 + src/main/resources/lang/en.yml | 4 +- src/main/resources/lang/es.yml | 1 + src/main/resources/lang/fr.yml | 1 + src/main/resources/lang/it.yml | 1 + src/main/resources/lang/ja.yml | 1 + src/main/resources/lang/no.yml | 1 + src/main/resources/lang/pl.yml | 1 + src/main/resources/lang/ro.yml | 1 + src/main/resources/lang/ru.yml | 1 + src/main/resources/lang/vi.yml | 7 +- 48 files changed, 653 insertions(+), 488 deletions(-) create mode 100644 src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP_EditConfig.java create mode 100644 src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP_EditWorlds.java rename src/main/java/me/SuperRonanCraft/BetterRTP/references/{ => web}/Updater.java (95%) diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/BetterRTP.java b/src/main/java/me/SuperRonanCraft/BetterRTP/BetterRTP.java index d4b8847..a82496a 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/BetterRTP.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/BetterRTP.java @@ -6,7 +6,7 @@ import me.SuperRonanCraft.BetterRTP.player.commands.Commands; import me.SuperRonanCraft.BetterRTP.player.events.Listener; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP; import me.SuperRonanCraft.BetterRTP.references.Permissions; -import me.SuperRonanCraft.BetterRTP.references.Updater; +import me.SuperRonanCraft.BetterRTP.references.web.Updater; import me.SuperRonanCraft.BetterRTP.references.depends.DepEconomy; import me.SuperRonanCraft.BetterRTP.references.file.Files; import me.SuperRonanCraft.BetterRTP.references.file.Messages; 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 e64c003..5a778df 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 @@ -4,6 +4,7 @@ import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.player.commands.Commands; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; +import me.SuperRonanCraft.BetterRTP.references.PermissionNode; import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP; import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Info; import org.bukkit.command.CommandSender; @@ -33,7 +34,7 @@ public class CmdBiome implements RTPCommand, RTPCommandHelpable { } public boolean permission(CommandSender sendi) { - return BetterRTP.getInstance().getPerms().getBiome(sendi); + return PermissionNode.BIOME.check(sendi); } 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 fcd20a3..c957ea7 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 @@ -3,17 +3,17 @@ package me.SuperRonanCraft.BetterRTP.player.commands.types; import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE; -import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; +import me.SuperRonanCraft.BetterRTP.references.PermissionNode; +import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_EditWorlds; +import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.RTPWorld; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WORLD_TYPE; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.command.CommandSender; -import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; -import java.io.IOException; import java.util.*; public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds properties @@ -25,65 +25,105 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds @Override public void execute(CommandSender sendi, String label, String[] args) { if (args.length >= 4) { - for (RTP_CMD_EDIT cmd : RTP_CMD_EDIT.values()) - if (cmd.name().toLowerCase().startsWith(args[1].toLowerCase())) { - switch (cmd) { - case CUSTOMWORLD: - if (args.length >= 5) { - for (World world : Bukkit.getWorlds()) { - if (world.getName().startsWith(args[2])) { - for (RTP_CMD_EDIT_SUB sub_cmd : RTP_CMD_EDIT_SUB.values()) - if (sub_cmd.name().toLowerCase().startsWith(args[3].toLowerCase())) { - editWorld(sendi, sub_cmd, args[2], args[4]); - return; - } - usage(sendi, label, cmd); + for (RTP_CMD_EDIT cmd : RTP_CMD_EDIT.values()) { + if (!cmd.name().equalsIgnoreCase(args[1])) continue; + switch (cmd) { + case CUSTOMWORLD: + if (args.length >= 5) { + for (World world : Bukkit.getWorlds()) { + if (world.getName().equals(args[2])) { + for (RTP_CMD_EDIT_SUB sub_cmd : RTP_CMD_EDIT_SUB.values()) + if (sub_cmd.name().equalsIgnoreCase(args[3])) { + HelperRTP_EditWorlds.editCustomWorld(sendi, sub_cmd, world.getName(), args[4]); + return; + } + usage(sendi, label, cmd); + return; + } + } + BetterRTP.getInstance().getText().getNotExist(sendi, args[2]); + return; + } + usage(sendi, label, cmd); + return; + case LOCATION: + if (args.length >= 5) { + for (Map.Entry location : BetterRTP.getInstance().getRTP().worldLocations.entrySet()) { + if (location.getKey().equals(args[2])) { + for (RTP_CMD_EDIT_SUB sub_cmd : RTP_CMD_EDIT_SUB.values()) + if (sub_cmd.name().equalsIgnoreCase(args[3])) { + HelperRTP_EditWorlds.editLocation(sendi, sub_cmd, location.getKey(), args[4]); + return; + } + usage(sendi, label, cmd); + return; + } + } + usage(sendi, label, cmd); + return; + } + usage(sendi, label, cmd); + return; + case PERMISSION_GROUP: + if (BetterRTP.getInstance().getSettings().isPermissionGroupEnabled() && args.length >= 6) { + for (String group : BetterRTP.getInstance().getRTP().worldPermissionGroups.keySet()) { + if (group.equals(args[2])) { + for (World world : Bukkit.getWorlds()) { + if (world.getName().equals(args[3])) { + for (RTP_CMD_EDIT_SUB sub_cmd : RTP_CMD_EDIT_SUB.values()) + if (sub_cmd.name().toLowerCase().startsWith(args[4].toLowerCase())) { + HelperRTP_EditWorlds.editPermissionGroup(sendi, sub_cmd, group, world.getName(), args[5]); + return; + } + usage(sendi, label, cmd); + return; + } + BetterRTP.getInstance().getText().getNotExist(sendi, args[3]); return; } } - BetterRTP.getInstance().getText().getNotExist(sendi, args[2]); + } + } + usage(sendi, label, cmd); + return; + case DEFAULT: + for (RTP_CMD_EDIT_SUB sub_cmd : RTP_CMD_EDIT_SUB.values()) + if (sub_cmd.name().equalsIgnoreCase(args[2].toLowerCase())) { + HelperRTP_EditWorlds.editDefault(sendi, sub_cmd, args[3]); return; } - usage(sendi, label, cmd); - return; - case DEFAULT: - for (RTP_CMD_EDIT_SUB sub_cmd : RTP_CMD_EDIT_SUB.values()) - if (sub_cmd.name().toLowerCase().startsWith(args[2].toLowerCase())) { - editDefault(sendi, sub_cmd, args[3]); - return; - } - usage(sendi, label, cmd); - return; - case WORLD_TYPE: - for (World world : Bukkit.getWorlds()) { - if (world.getName().startsWith(args[2])) { - editWorldtype(sendi, args[2], args[3]); - //usage(sendi, label, cmd); - return; - } + usage(sendi, label, cmd); + return; + case WORLD_TYPE: + for (World world : Bukkit.getWorlds()) { + if (world.getName().equals(args[2])) { + HelperRTP_EditWorlds.editWorldtype(sendi, args[2], args[3]); + //usage(sendi, label, cmd); + return; } - BetterRTP.getInstance().getText().getNotExist(sendi, args[2]); - return; - case OVERRIDE: - for (World world : Bukkit.getWorlds()) { - if (world.getName().startsWith(args[2])) { - editOverride(sendi, args[2], args[3]); - //usage(sendi, label, cmd); - return; - } + } + BetterRTP.getInstance().getText().getNotExist(sendi, args[2]); + return; + case OVERRIDE: + for (World world : Bukkit.getWorlds()) { + if (world.getName().equals(args[2])) { + HelperRTP_EditWorlds.editOverride(sendi, args[2], args[3]); + //usage(sendi, label, cmd); + return; } - BetterRTP.getInstance().getText().getNotExist(sendi, args[2]); - return; - case BLACKLISTEDBLOCKS: - if (args[2].equalsIgnoreCase("add")) { - editBlacklisted(sendi, args[3], true); - } else if (args[2].equalsIgnoreCase("remove")) { - editBlacklisted(sendi, args[3], false); - } else - usage(sendi, label, cmd); - return; - } + } + BetterRTP.getInstance().getText().getNotExist(sendi, args[2]); + return; + case BLACKLISTEDBLOCKS: + if (args[2].equalsIgnoreCase("add")) { + HelperRTP_EditWorlds.editBlacklisted(sendi, args[3], true); + } else if (args[2].equalsIgnoreCase("remove")) { + HelperRTP_EditWorlds.editBlacklisted(sendi, args[3], false); + } else + usage(sendi, label, cmd); + return; } + } } else if (args.length >= 2) { for (RTP_CMD_EDIT cmd : RTP_CMD_EDIT.values()) if (cmd.name().toLowerCase().startsWith(args[1].toLowerCase())) { @@ -91,231 +131,7 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds return; } } - usage(sendi, label, null); - } - - private void editLocation(CommandSender sendi, RTP_CMD_EDIT_SUB cmd, String location, String val) { - Object value; - try { - value = cmd.getResult(val); - } catch (Exception e) { - e.printStackTrace(); - BetterRTP.getInstance().getText().getEditError(sendi); - return; - } - - if (value == null) { - BetterRTP.getInstance().getText().getEditError(sendi); - return; - } - - FileBasics.FILETYPE file = FileBasics.FILETYPE.LOCATIONS; - YamlConfiguration config = file.getConfig(); - - List> map = config.getMapList("Locations"); - boolean found = false; - for (Map m : map) { - for (Map.Entry entry : m.entrySet()) { - if (entry.getKey().toString().equals(location)) { - found = true; - for (Object map2 : m.values()) { - Map values = (Map) map2; - values.put(cmd.get(), value); - BetterRTP.getInstance().getText().getEditSet(sendi, cmd.get(), val); - } - break; - } - } - } - - if (found) { - config.set("Locations", map); - try { - config.save(file.getFile()); - BetterRTP.getInstance().getRTP().loadLocations(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - - private void editWorld(CommandSender sendi, RTP_CMD_EDIT_SUB cmd, String world, String val) { - Object value; - try { - value = cmd.getResult(val); - } catch (Exception e) { - e.printStackTrace(); - BetterRTP.getInstance().getText().getEditError(sendi); - return; - } - - if (value == null) { - BetterRTP.getInstance().getText().getEditError(sendi); - return; - } - - FileBasics.FILETYPE file = FileBasics.FILETYPE.CONFIG; - YamlConfiguration config = file.getConfig(); - - List> map = config.getMapList("CustomWorlds"); - boolean found = false; - for (Map m : map) { - if (m.keySet().toArray()[0].equals(world)) { - found = true; - for (Object map2 : m.values()) { - Map values = (Map) map2; - values.put(cmd.get(), value); - BetterRTP.getInstance().getText().getEditSet(sendi, cmd.get(), val); - } - break; - } - } - if (!found) { - Map map2 = new HashMap<>(); - Map values = new HashMap<>(); - values.put(cmd.get(), value); - map2.put(world, values); - map.add(map2); - } - - config.set("CustomWorlds", map); - - try { - config.save(file.getFile()); - BetterRTP.getInstance().getRTP().loadWorlds(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - private void editDefault(CommandSender sendi, RTP_CMD_EDIT_SUB cmd, String val) { - Object value; - try { - value = cmd.getResult(val); - } catch (Exception e) { - e.printStackTrace(); - BetterRTP.getInstance().getText().getEditError(sendi); - return; - } - - if (value == null) { - BetterRTP.getInstance().getText().getEditError(sendi); - return; - } - - FileBasics.FILETYPE file = FileBasics.FILETYPE.CONFIG; - YamlConfiguration config = file.getConfig(); - - config.set("Default." + cmd.get(), value); - - try { - config.save(file.getFile()); - BetterRTP.getInstance().getRTP().loadWorlds(); - BetterRTP.getInstance().getText().getEditSet(sendi, cmd.get(), val); - } catch (IOException e) { - e.printStackTrace(); - } - } - - private void editWorldtype(CommandSender sendi, String world, String val) { - //sendi.sendMessage("Editting worldtype for world " + world + " to " + val); - WORLD_TYPE type; - try { - type = WORLD_TYPE.valueOf(val.toUpperCase()); - } catch (Exception e) { - //e.printStackTrace(); - BetterRTP.getInstance().getText().getEditError(sendi); - return; - } - - FileBasics.FILETYPE file = FileBasics.FILETYPE.CONFIG; - YamlConfiguration config = file.getConfig(); - - List> world_map = config.getMapList("WorldType"); - List> removeList = new ArrayList<>(); - for (Map m : world_map) { - for (Map.Entry entry : m.entrySet()) { - if (entry.getKey().equals(world)) - removeList.add(m); - } - } - for (Map o : removeList) - world_map.remove(o); - Map newIndex = new HashMap<>(); - newIndex.put(world, type.name()); - world_map.add(newIndex); - config.set("WorldType", world_map); - - try { - config.save(file.getFile()); - BetterRTP.getInstance().getRTP().load(); - BetterRTP.getInstance().getText().getEditSet(sendi, RTP_CMD_EDIT.WORLD_TYPE.name(), val); - } catch (IOException e) { - e.printStackTrace(); - } - } - - private void editOverride(CommandSender sendi, String world, String val) { - - FileBasics.FILETYPE file = FileBasics.FILETYPE.CONFIG; - YamlConfiguration config = file.getConfig(); - - List> world_map = config.getMapList("Overrides"); - List> removeList = new ArrayList<>(); - for (Map m : world_map) { - for (Map.Entry entry : m.entrySet()) { - if (entry.getKey().equals(world)) - removeList.add(m); - } - } - for (Map o : removeList) - world_map.remove(o); - if (!val.equals("REMOVE_OVERRIDE")) { - Map newIndex = new HashMap<>(); - newIndex.put(world, val); - world_map.add(newIndex); - } else { - val = "(removed override)"; - } - config.set("Overrides", world_map); - - try { - config.save(file.getFile()); - BetterRTP.getInstance().getRTP().load(); - BetterRTP.getInstance().getText().getEditSet(sendi, RTP_CMD_EDIT.OVERRIDE.name(), val); - } catch (IOException e) { - e.printStackTrace(); - } - } - - private void editBlacklisted(CommandSender sendi, String block, boolean add) { - - FileBasics.FILETYPE file = FileBasics.FILETYPE.CONFIG; - YamlConfiguration config = file.getConfig(); - - List world_map = config.getStringList("BlacklistedBlocks"); - List removeList = new ArrayList<>(); - for (String m : world_map) { - if (m.equals(block)) { - removeList.add(m); - } - } - for (String o : removeList) - world_map.remove(o); - if (add) { - world_map.add(block); - } else { - block = "(removed " + block + ")"; - } - config.set("BlacklistedBlocks", world_map); - - try { - config.save(file.getFile()); - BetterRTP.getInstance().getRTP().load(); - BetterRTP.getInstance().getText().getEditSet(sendi, RTP_CMD_EDIT.BLACKLISTEDBLOCKS.name(), block); - } catch (IOException e) { - e.printStackTrace(); - } + usage(sendi, label, null); } //rtp edit default @@ -339,6 +155,16 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds if (world.getName().toLowerCase().startsWith(args[2].toLowerCase())) list.add(world.getName()); break; + case PERMISSION_GROUP: + for (String group : BetterRTP.getInstance().getRTP().worldPermissionGroups.keySet()) + if (group.toLowerCase().startsWith(args[2].toLowerCase())) + list.add(group); + break; + case LOCATION: + for (String location : BetterRTP.getInstance().getRTP().worldLocations.keySet()) + if (location.toLowerCase().startsWith(args[2].toLowerCase())) + list.add(location); + break; case DEFAULT: list.addAll(tabCompleteSub(args, cmd)); break; @@ -353,7 +179,13 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds if (cmd.name().equalsIgnoreCase(args[1])) switch (cmd) { case CUSTOMWORLD: + case LOCATION: list.addAll(tabCompleteSub(args, cmd)); break; + case PERMISSION_GROUP: + for (World world : Bukkit.getWorlds()) + if (world.getName().toLowerCase().startsWith(args[3].toLowerCase())) + list.add(world.getName()); + break; case DEFAULT: if (args[2].equalsIgnoreCase(RTP_CMD_EDIT_SUB.CENTER_X.name())) list.add(String.valueOf(((Player) sendi).getLocation().getBlockX())); @@ -389,19 +221,38 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds } else if (args.length == 5) { for (RTP_CMD_EDIT cmd : RTP_CMD_EDIT.values()) if (cmd.name().equalsIgnoreCase(args[1])) - if (cmd == RTP_CMD_EDIT.CUSTOMWORLD) { - if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.CENTER_X.name())) - list.add(String.valueOf(((Player) sendi).getLocation().getBlockX())); - else if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.CENTER_Z.name())) - list.add(String.valueOf(((Player) sendi).getLocation().getBlockZ())); - else if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.SHAPE.name())) - for (RTP_SHAPE shape : RTP_SHAPE.values()) - list.add(shape.name().toLowerCase()); - /*else if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.BIOME_ADD.name())) - for (Biome biome : Biome.values()) { - if (biome.name().toLowerCase().startsWith(args[4].toLowerCase()) && list.size() < 20) - list.add(biome.name()); - }*/ + switch (cmd) { + case CUSTOMWORLD: + case LOCATION: + if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.CENTER_X.name())) + list.add(String.valueOf(((Player) sendi).getLocation().getBlockX())); + else if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.CENTER_Z.name())) + list.add(String.valueOf(((Player) sendi).getLocation().getBlockZ())); + else if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.SHAPE.name())) + for (RTP_SHAPE shape : RTP_SHAPE.values()) + list.add(shape.name().toLowerCase()); + /*else if (args[3].equalsIgnoreCase(RTP_CMD_EDIT_SUB.BIOME_ADD.name())) + for (Biome biome : Biome.values()) { + if (biome.name().toLowerCase().startsWith(args[4].toLowerCase()) && list.size() < 20) + list.add(biome.name()); + }*/ + break; + case PERMISSION_GROUP: + list.addAll(tabCompleteSub(args, cmd)); break; + } + } else if (args.length == 6) { + for (RTP_CMD_EDIT cmd : RTP_CMD_EDIT.values()) + if (cmd.name().equalsIgnoreCase(args[1])) + switch (cmd) { + case PERMISSION_GROUP: + if (args[4].equalsIgnoreCase(RTP_CMD_EDIT_SUB.CENTER_X.name())) + list.add(String.valueOf(((Player) sendi).getLocation().getBlockX())); + else if (args[4].equalsIgnoreCase(RTP_CMD_EDIT_SUB.CENTER_Z.name())) + list.add(String.valueOf(((Player) sendi).getLocation().getBlockZ())); + else if (args[4].equalsIgnoreCase(RTP_CMD_EDIT_SUB.SHAPE.name())) + for (RTP_SHAPE shape : RTP_SHAPE.values()) + list.add(shape.name().toLowerCase()); + break; } } return list; @@ -419,7 +270,7 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds @Override public boolean permission(CommandSender sendi) { - return BetterRTP.getInstance().getPerms().getEdit(sendi); + return PermissionNode.EDIT.check(sendi); } private void usage(CommandSender sendi, String label, RTP_CMD_EDIT type) { @@ -435,6 +286,10 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds BetterRTP.getInstance().getText().getUsageOverride(sendi, label); break; case BLACKLISTEDBLOCKS: BetterRTP.getInstance().getText().getUsageBlacklistedBlocks(sendi, label); break; + case PERMISSION_GROUP: + BetterRTP.getInstance().getText().getUsagePermissionGroup(sendi, label); break; + case LOCATION: + BetterRTP.getInstance().getText().getUsageEditLocation(sendi, label); break; } else BetterRTP.getInstance().getText().getUsageEdit(sendi, label); @@ -445,11 +300,19 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds return BetterRTP.getInstance().getText().getHelpEdit(); } - enum RTP_CMD_EDIT { - CUSTOMWORLD, /*LOCATION,*/ DEFAULT, WORLD_TYPE, OVERRIDE, BLACKLISTEDBLOCKS + public enum RTP_CMD_EDIT { + //Mapped + CUSTOMWORLD, + PERMISSION_GROUP, + LOCATION, + //Custom Coded + DEFAULT, + WORLD_TYPE, + OVERRIDE, + BLACKLISTEDBLOCKS } - enum RTP_CMD_EDIT_SUB { //Only for World and Default + public enum RTP_CMD_EDIT_SUB { //Only for World and Default CENTER_X("CenterX", "INT"), CENTER_Z("CenterZ", "INT"), MAXRAD("MaxRadius", "INT"), @@ -469,11 +332,11 @@ public class CmdEdit implements RTPCommand, RTPCommandHelpable { //Edit a worlds this.type = type; } - String get() { + public String get() { return str; } - Object getResult(String input) { + public Object getResult(String input) { if (this.type.equalsIgnoreCase("INT")) return Integer.parseInt(input); else if (this.type.equalsIgnoreCase("BOL")) 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 74e2815..c104c99 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 @@ -5,6 +5,7 @@ import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; import me.SuperRonanCraft.BetterRTP.player.commands.RTP_SETUP_TYPE; import me.SuperRonanCraft.BetterRTP.player.rtp.RTPParticles; import me.SuperRonanCraft.BetterRTP.player.rtp.RTPSetupInformation; +import me.SuperRonanCraft.BetterRTP.references.PermissionNode; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldDefault; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldPlayer; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; @@ -34,7 +35,7 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable { infoEffects(sendi); else if (args[1].equalsIgnoreCase(CmdInfoSub.WORLD.name())) { if (args.length > 2 && Bukkit.getWorld(args[2]) != null) { - sendInfoWorld(sendi, infoGetWorld(sendi, Bukkit.getWorld(args[2]), null)); + sendInfoWorld(sendi, infoGetWorld(sendi, Bukkit.getWorld(args[2]), null, null)); } else if (sendi instanceof Player) { //Personalize with permission groups World world = null; Player player = null; @@ -45,7 +46,7 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable { } if (world == null) world = ((Player) sendi).getWorld(); - sendInfoWorld(sendi, infoGetWorld(sendi, world, player)); + sendInfoWorld(sendi, infoGetWorld(sendi, world, player, null)); } else infoWorld(sendi); } @@ -96,7 +97,7 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable { } //World - private void sendInfoWorld(CommandSender sendi, List list) { //Send info + public static void sendInfoWorld(CommandSender sendi, List list) { //Send info list.add(0, "&e&m-----&6 BetterRTP &8| Info &e&m-----"); list.forEach(str -> list.set(list.indexOf(str), BetterRTP.getInstance().getText().color(str))); @@ -106,17 +107,17 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable { private void infoWorld(CommandSender sendi) { //All worlds List info = new ArrayList<>(); for (World w : Bukkit.getWorlds()) - info.addAll(infoGetWorld(sendi, w, null)); + info.addAll(infoGetWorld(sendi, w, null, null)); sendInfoWorld(sendi, info); } - private List infoGetWorld(CommandSender sendi, World w, Player player) { //Specific world + public static List infoGetWorld(CommandSender sendi, World w, Player player, WorldPlayer _rtpworld) { //Specific world List info = new ArrayList<>(); BetterRTP pl = BetterRTP.getInstance(); String _true = "&aTrue", _false = "&bFalse"; info.add("&bRTP info for &7" + w.getName() + (player != null ? " &d(personalized)" : "")); info.add("&7- &eViewing as: &b" + (player != null ? player.getName() : "ADMIN")); - info.add("&7- &6Allowed: " + (player != null ? pl.getPerms().getAWorld(player, w.getName()) ? _true : _false : "&cN/A")); + info.add("&7- &6Allowed: " + (player != null ? PermissionNode.getAWorld(player, w.getName()) ? _true : _false : "&cN/A")); if (pl.getRTP().getDisabledWorlds().contains(w.getName())) //World disabled info.add("&7- &eDisabled: " + _true); else { @@ -125,7 +126,8 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable { info.add("&7- &6Overriden: " + _true + " &7- target `" + pl.getRTP().overriden.get(w.getName()) + "`"); else { info.add("&7- &6Overriden&7: " + _false); - WorldPlayer _rtpworld = BetterRTP.getInstance().getRTP().getPlayerWorld(new RTPSetupInformation(w, player != null ? player : sendi, player, player != null)); + if (_rtpworld == null) + _rtpworld = BetterRTP.getInstance().getRTP().getPlayerWorld(new RTPSetupInformation(w, player != null ? player : sendi, player, player != null)); WorldDefault worldDefault = BetterRTP.getInstance().getRTP().defaultWorld; info.add("&7- &eSetup Type&7: " + _rtpworld.setup_type.name() + getInfo(_rtpworld, worldDefault, "setup")); info.add("&7- &6Use World Border&7: " + (_rtpworld.getUseWorldborder() ? _true : _false)); @@ -146,7 +148,7 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable { } //Janky, but it works - private String getInfo(WorldPlayer worldPlayer, WorldDefault worldDefault, String type) { + private static String getInfo(WorldPlayer worldPlayer, WorldDefault worldDefault, String type) { switch (type) { case "centerx": return worldPlayer.getUseWorldborder() || worldPlayer.getCenterX() == worldDefault.getCenterX() ? worldPlayer.getUseWorldborder() ? " &8(worldborder)" : " &8(default)" : ""; @@ -203,6 +205,6 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable { } public boolean permission(CommandSender sendi) { - return BetterRTP.getInstance().getPerms().getInfo(sendi); + return PermissionNode.INFO.check(sendi); } } 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 2d30091..13662e2 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 @@ -5,6 +5,7 @@ import me.SuperRonanCraft.BetterRTP.player.commands.Commands; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; 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.rtpinfo.worlds.RTPWorld; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldLocations; @@ -39,7 +40,7 @@ public class CmdLocation implements RTPCommand, RTPCommandHelpable { usage(sendi, label); } else sendi.sendMessage("Console is not able to execute this command! Try '/rtp help'"); - } else if (args.length == 3 && BetterRTP.getInstance().getPerms().getRtpOther(sendi)) { + } else if (args.length == 3 && PermissionNode.RTP_OTHER.check(sendi)) { Player p = Bukkit.getPlayer(args[2]); if (p != null && p.isOnline()) { for (String location_name : getLocations(sendi, null).keySet()) { @@ -63,7 +64,7 @@ public class CmdLocation implements RTPCommand, RTPCommandHelpable { for (String location_name : getLocations(sendi, null).keySet()) if (location_name.toLowerCase().startsWith(args[1].toLowerCase())) list.add(location_name); - } else if (args.length == 3 && BetterRTP.getInstance().getPerms().getRtpOther(sendi)) { + } else if (args.length == 3 && PermissionNode.RTP_OTHER.check(sendi)) { for (Player p : Bukkit.getOnlinePlayers()) if (p.getName().toLowerCase().startsWith(args[2].toLowerCase())) list.add(p.getName()); @@ -72,7 +73,7 @@ public class CmdLocation implements RTPCommand, RTPCommandHelpable { } public boolean permission(CommandSender sendi) { - return BetterRTP.getInstance().getPerms().getLocation(sendi); + return PermissionNode.LOCATION.check(sendi); } public void usage(CommandSender sendi, String label) { @@ -88,7 +89,7 @@ public class CmdLocation implements RTPCommand, RTPCommandHelpable { if (BetterRTP.getInstance().getSettings().isLocationNeedPermission()) { HashMap locations = new HashMap<>(); for (Map.Entry location : getLocations().entrySet()) - if (BetterRTP.getInstance().getPerms().getLocation(sendi, location.getKey())) { + if (PermissionNode.getLocation(sendi, location.getKey())) { if (world == null || location.getValue().getWorld().equals(world)) locations.put(location.getKey(), location.getValue()); } 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 596163b..0e1f47e 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 @@ -6,6 +6,7 @@ import me.SuperRonanCraft.BetterRTP.player.commands.Commands; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; +import me.SuperRonanCraft.BetterRTP.references.PermissionNode; import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP; import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Info; import org.bukkit.Bukkit; @@ -64,7 +65,7 @@ public class CmdPlayer implements RTPCommand, RTPCommandHelpable { } public boolean permission(CommandSender sendi) { - return BetterRTP.getInstance().getPerms().getRtpOther(sendi); + return PermissionNode.RTP_OTHER.check(sendi); } public void usage(CommandSender sendi, String label) { 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 8d9a448..e642961 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 @@ -3,6 +3,7 @@ package me.SuperRonanCraft.BetterRTP.player.commands.types; import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; +import me.SuperRonanCraft.BetterRTP.references.PermissionNode; import org.bukkit.command.CommandSender; import java.util.List; @@ -22,7 +23,7 @@ public class CmdReload implements RTPCommand, RTPCommandHelpable { } public boolean permission(CommandSender sendi) { - return BetterRTP.getInstance().getPerms().getReload(sendi); + return PermissionNode.RELOAD.check(sendi); } @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 d481ef0..54c61a1 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 @@ -2,6 +2,7 @@ package me.SuperRonanCraft.BetterRTP.player.commands.types; import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; +import me.SuperRonanCraft.BetterRTP.references.PermissionNode; import me.SuperRonanCraft.BetterRTP.references.invs.RTP_INV_SETTINGS; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import org.bukkit.command.CommandSender; @@ -27,7 +28,7 @@ public class CmdSettings implements RTPCommand, RTPCommandHelpable { } public boolean permission(CommandSender sendi) { - return BetterRTP.getInstance().getPerms().getSettings(sendi); + return PermissionNode.SETTINGS.check(sendi); } @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 7401534..e08e57d 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 @@ -4,6 +4,7 @@ import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE; +import me.SuperRonanCraft.BetterRTP.references.PermissionNode; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -32,7 +33,7 @@ public class CmdTest implements RTPCommand, RTPCommandHelpable { @Override public boolean permission(CommandSender sendi) { - return BetterRTP.getInstance().getPerms().getTest(sendi); + return PermissionNode.TEST.check(sendi); } @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 9ca1518..7145d55 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 @@ -3,6 +3,7 @@ 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.references.PermissionNode; import org.bukkit.command.CommandSender; import java.util.List; @@ -22,7 +23,7 @@ public class CmdVersion implements RTPCommand, RTPCommandHelpable { } public boolean permission(CommandSender sendi) { - return BetterRTP.getInstance().getPerms().getVersion(sendi); + return PermissionNode.VERSION.check(sendi); } @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 cc6e151..962342c 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 @@ -4,6 +4,7 @@ import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandType; +import me.SuperRonanCraft.BetterRTP.references.PermissionNode; import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP; import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Info; import org.bukkit.Bukkit; @@ -24,6 +25,8 @@ public class CmdWorld implements RTPCommand, RTPCommandHelpable { public void execute(CommandSender sendi, String label, String[] args) { if (args.length >= 2) { World world = Bukkit.getWorld(args[1]); + if (world == null) //Check if world has spaces instead of underscores + world = Bukkit.getWorld(args[1].replace("_", " ")); if (world != null) CmdTeleport.teleport(sendi, label, world, HelperRTP_Info.getBiomes(args, 2, sendi)); else @@ -38,7 +41,7 @@ public class CmdWorld implements RTPCommand, RTPCommandHelpable { for (World w : Bukkit.getWorlds()) { String _wName = w.getName().replace(" ", "_"); if (w.getName().startsWith(args[1]) && !BetterRTP.getInstance().getRTP().getDisabledWorlds().contains(_wName) - && BetterRTP.getInstance().getPerms().getAWorld(sendi, _wName)) + && PermissionNode.getAWorld(sendi, _wName)) list.add(_wName); } } else if (args.length >= 3) { @@ -49,7 +52,7 @@ public class CmdWorld implements RTPCommand, RTPCommandHelpable { } public boolean permission(CommandSender sendi) { - return BetterRTP.getInstance().getPerms().getWorld(sendi); + return PermissionNode.WORLD.check(sendi); } public void usage(CommandSender sendi, String label) { diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Interact.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Interact.java index 65cf19c..f09b307 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Interact.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Interact.java @@ -1,6 +1,7 @@ package me.SuperRonanCraft.BetterRTP.player.events; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandType; +import me.SuperRonanCraft.BetterRTP.references.PermissionNode; import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; import me.SuperRonanCraft.BetterRTP.BetterRTP; import org.bukkit.block.Block; @@ -46,7 +47,7 @@ class Interact { } void createSign(SignChangeEvent e) { - if (enabled && BetterRTP.getInstance().getPerms().getSignCreate(e.getPlayer())) { + if (enabled && PermissionNode.SIGN_CREATE.check(e.getPlayer())) { String line = e.getLine(0); if (line != null && (line.equalsIgnoreCase(title) || line.equalsIgnoreCase("[RTP]"))) { diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Join.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Join.java index f6418a5..684938e 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Join.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Join.java @@ -2,7 +2,8 @@ package me.SuperRonanCraft.BetterRTP.player.events; import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE; -import me.SuperRonanCraft.BetterRTP.references.Updater; +import me.SuperRonanCraft.BetterRTP.references.PermissionNode; +import me.SuperRonanCraft.BetterRTP.references.web.Updater; import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP; import org.bukkit.Bukkit; @@ -22,7 +23,7 @@ public class Join { //Updater private void updater(Player p) { - if (!getPl().getFiles().getType(FileBasics.FILETYPE.CONFIG).getBoolean("Settings.DisableUpdater") && getPl().getPerms().getUpdate(p)) + if (!getPl().getFiles().getType(FileBasics.FILETYPE.CONFIG).getBoolean("Settings.DisableUpdater") && PermissionNode.UPDATER.check(p)) if (!getPl().getDescription().getVersion().equals(Updater.updatedVersion)) getPl().getText().sms(p, "&7There is currently an update for &6BetterRTP &7version &e#" + Updater.updatedVersion + " &7you have version &e#" + getPl().getDescription().getVersion()); diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP.java index 5c7848b..3e6b164 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP.java @@ -2,6 +2,9 @@ package me.SuperRonanCraft.BetterRTP.player.rtp; import lombok.Getter; import me.SuperRonanCraft.BetterRTP.BetterRTP; +import me.SuperRonanCraft.BetterRTP.player.commands.types.CmdInfo; +import me.SuperRonanCraft.BetterRTP.player.commands.types.CmdWorld; +import me.SuperRonanCraft.BetterRTP.references.PermissionNode; import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_SettingUpEvent; import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP; @@ -65,6 +68,10 @@ public class RTP { RTPLoader.loadLocations(worldLocations); } + public void loadPermissionGroups() { //Keeping this here because of the edit command + RTPLoader.loadPermissionGroups(worldPermissionGroups); + } + public WorldPlayer getPlayerWorld(RTPSetupInformation setup_info) { WorldPlayer pWorld = new WorldPlayer(setup_info.getPlayer(), setup_info.getWorld()); @@ -94,7 +101,7 @@ public class RTP { for (Map.Entry permissionGroup : BetterRTP.getInstance().getRTP().worldPermissionGroups.entrySet()) { for (Map.Entry worldPermission : permissionGroup.getValue().getWorlds().entrySet()) { if (pWorld.getWorld().equals(worldPermission.getValue().getWorld())) { - if (BetterRTP.getInstance().getPerms().getPermissionGroup(pWorld.getPlayer(), permissionGroup.getKey())) { + if (PermissionNode.getPermissionGroup(pWorld.getPlayer(), permissionGroup.getKey())) { if (group != null) { if (group.getPriority() < worldPermission.getValue().getPriority()) continue; @@ -137,56 +144,14 @@ public class RTP { public void start(RTPSetupInformation setup_info) { RTP_SettingUpEvent setup = new RTP_SettingUpEvent(setup_info.getPlayer()); Bukkit.getPluginManager().callEvent(setup); - if (setup.isCancelled()) { + if (setup.isCancelled()) return; - } - World world_name = setup_info.getWorld(); - Player p = setup_info.getPlayer(); CommandSender sendi = setup_info.getSender(); - // Locations - if (setup_info.getLocation() != null) { - WorldLocations location = setup_info.getLocation(); - world_name = location.getWorld(); - setup_info.setWorld(world_name); - setup_info.setBiomes(location.getBiomes()); - } - - // Check overrides - if (world_name == null && p != null) { - world_name = p.getWorld(); - }// else { // Check if nulled or world doesnt exist - //World _world = world_name;//Bukkit.getWorld(world_name); - /*if (_world == null) { //Check if world has spaces instead of underscores - _world = Bukkit.getWorld(world_name.replace("_", " ")); - world_name = world_name.replace("_", ""); - } - if (_world == null) { - getPl().getText().getNotExist(sendi, world_name); - return; - }*/ - //} - //No World was sent??? - if (world_name == null) { - BetterRTP.getInstance().getText().error(sendi); - return; - } - if (overriden.containsKey(world_name.getName())) { - world_name = Bukkit.getWorld(overriden.get(world_name.getName())); - setup_info.setWorld(world_name); - } - // Not forced and has 'betterrtp.world.' - if (sendi == p && !getPl().getPerms().getAWorld(sendi, world_name.getName())) { - getPl().getText().getNoPermissionWorld(p, world_name.getName()); - return; - } - // Check disabled worlds - if (disabledWorlds.contains(world_name.getName())) { - getPl().getText().getDisabledWorld(sendi, world_name.getName()); - return; - } WorldPlayer pWorld = getPlayerWorld(setup_info); + //Debugging! + //CmdInfo.sendInfoWorld(sendi, CmdInfo.infoGetWorld(sendi, setup_info.getWorld(), setup_info.getPlayer(), pWorld)); // Economy if (!getPl().getEco().hasBalance(sendi, pWorld)) return; diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPLoader.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPLoader.java index 16c759d..2ab8e5d 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPLoader.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPLoader.java @@ -25,18 +25,16 @@ public class RTPLoader { for (Map m : map) for (Map.Entry entry : m.entrySet()) { String world = entry.getKey().toString(); - customWorlds.put(world, new WorldCustom(world)); AtomicBoolean exists = new AtomicBoolean(false); Bukkit.getWorlds().forEach(w -> { if (w.getName().equals(world)) exists.set(true); }); - if (getPl().getSettings().isDebug()) { - if (exists.get()) - BetterRTP.debug("- Custom World '" + world + "' successfully registered"); - else - BetterRTP.debug("[WARN] - Custom World '" + world + "' registered but world does NOT exist"); - } + if (exists.get()) { + customWorlds.put(world, new WorldCustom(Bukkit.getWorld(world))); + BetterRTP.debug("- Custom World '" + world + "' successfully registered"); + } else + BetterRTP.debug("[WARN] - Custom World '" + world + "' was not registered because world does NOT exist"); } } catch (Exception e) { //No Custom Worlds @@ -119,7 +117,7 @@ public class RTPLoader { static void loadPermissionGroups(@NotNull HashMap permissionGroup) { permissionGroup.clear(); FileBasics.FILETYPE config = FileBasics.FILETYPE.CONFIG; - if (!config.getBoolean("PermissionGroup.Enabled")) + if (!getPl().getSettings().isPermissionGroupEnabled()) return; BetterRTP.debug("Loading Permission Groups..."); try { diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/Permissions.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/Permissions.java index 37e68aa..13cd733 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/Permissions.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/Permissions.java @@ -13,7 +13,13 @@ public class Permissions { depPerms.register(); } - private final String pre = "betterrtp."; + public boolean checkPerm(String str, CommandSender sendi) { + return depPerms.hasPerm(str, sendi); + } + +} + //Moved to PermissionNode.NODE + /*private final String pre = "betterrtp."; public boolean getUse(CommandSender sendi) { return checkPerm(pre + "use", sendi); @@ -101,9 +107,4 @@ public class Permissions { public boolean getPermissionGroup(CommandSender sendi, String group) { return checkPerm(pre + "group." + group, sendi); - } - - public boolean checkPerm(String str, CommandSender sendi) { - return depPerms.hasPerm(str, sendi); - } -} + }*/ diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/DepEconomy.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/DepEconomy.java index 45d9dd7..b70be0a 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/DepEconomy.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/depends/DepEconomy.java @@ -1,5 +1,6 @@ package me.SuperRonanCraft.BetterRTP.references.depends; +import me.SuperRonanCraft.BetterRTP.references.PermissionNode; import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldPlayer; @@ -33,7 +34,7 @@ public class DepEconomy { } } //Economy Stuff - if (e != null && pWorld.getPrice() != 0 && !BetterRTP.getInstance().getPerms().getBypassEconomy(sendi)) { + if (e != null && pWorld.getPrice() != 0 && !PermissionNode.BYPASS_ECONOMY.check(sendi)) { try { EconomyResponse r = e.withdrawPlayer(player, pWorld.getPrice()); boolean passed_economy = r.transactionSuccess(); @@ -57,7 +58,7 @@ public class DepEconomy { Player player = pWorld.getPlayer(); //Hunger Stuff if (hunger != 0 - && !BetterRTP.getInstance().getPerms().getBypassHunger(sendi) + && !PermissionNode.BYPASS_HUNGER.check(sendi) && (player.getGameMode() == GameMode.SURVIVAL || player.getGameMode() == GameMode.ADVENTURE)) { boolean has_hunger = player.getFoodLevel() > hunger; if (!has_hunger) { @@ -66,7 +67,7 @@ public class DepEconomy { } } //Economy Stuff - if (e != null && pWorld.getPrice() != 0 && !BetterRTP.getInstance().getPerms().getBypassEconomy(sendi)) { + if (e != null && pWorld.getPrice() != 0 && !PermissionNode.BYPASS_ECONOMY.check(sendi)) { try { boolean passed_economy = e.getBalance(player) >= pWorld.getPrice(); if (!passed_economy) { diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/Messages.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/Messages.java index d718008..2faffa8 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/Messages.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/Messages.java @@ -242,6 +242,10 @@ public class Messages { sms(sendi, getLang().getString(preU + "Location").replaceAll("%command%", cmd)); } + public void getUsageEditLocation(CommandSender sendi, String cmd) { + sms(sendi, getLang().getString(preU + "Edit.Location").replaceAll("%command%", cmd)); + } + public void getUsageEdit(CommandSender sendi, String cmd) { sms(sendi, getLang().getString(preU + "Edit.Base").replaceAll("%command%", cmd)); } @@ -266,6 +270,10 @@ public class Messages { sms(sendi, getLang().getString(preU + "Edit.BlacklistedBlocks").replaceAll("%command%", cmd)); } + public void getUsagePermissionGroup(CommandSender sendi, String cmd) { + sms(sendi, getLang().getString(preU + "Edit.PermissionGroup").replaceAll("%command%", cmd)); + } + // Not Found public void error(CommandSender sendi) { sms(sendi, "&cERROR &7Seems like your Administrator did not update their language file!"); diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP.java index e059504..0d8a164 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP.java @@ -4,6 +4,7 @@ import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.player.commands.types.CmdLocation; import me.SuperRonanCraft.BetterRTP.player.rtp.RTPSetupInformation; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE; +import me.SuperRonanCraft.BetterRTP.references.PermissionNode; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownData; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownHandler; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.RTPWorld; @@ -40,67 +41,74 @@ public class HelperRTP { public static void tp(@NotNull Player player, CommandSender sendi, @Nullable World world, List biomes, RTP_TYPE rtpType, boolean ignoreCooldown, boolean ignoreDelay, WorldLocations locations) { - if (isRTPing(player, sendi)) { //Is RTP'ing - if (world == null) - world = player.getWorld(); - if (BetterRTP.getInstance().getRTP().overriden.containsKey(world.getName())) - world = Bukkit.getWorld(BetterRTP.getInstance().getRTP().overriden.get(world.getName())); - if (ignoreCooldown || isCoolingDown(sendi, player, world)) { //Is Cooling down - boolean delay = false; - if (!ignoreDelay && sendi == player) //Forced? - if (getPl().getSettings().isDelayEnabled() && getPl().getSettings().getDelayTime() > 0) //Delay enabled? - if (!getPl().getPerms().getBypassDelay(player)) //Can bypass? - delay = true; - RTPSetupInformation setup_info = new RTPSetupInformation(world, sendi, player, true, - biomes, delay, rtpType, locations, !ignoreCooldown && cooldownApplies(sendi, player)); //ignore cooldown or else - getPl().getRTP().start(setup_info); - } + if (isRTPing(player, sendi)) //Is RTP'ing + return; + if (world == null) + world = player.getWorld(); + if (BetterRTP.getInstance().getRTP().overriden.containsKey(world.getName())) + world = Bukkit.getWorld(BetterRTP.getInstance().getRTP().overriden.get(world.getName())); + // Not forced and has 'betterrtp.world.' + if (sendi == player && !PermissionNode.getAWorld(sendi, world.getName())) { + getPl().getText().getNoPermissionWorld(player, world.getName()); + return; + } + // Check disabled worlds + if (getPl().getRTP().getDisabledWorlds().contains(world.getName())) { + getPl().getText().getDisabledWorld(sendi, world.getName()); + return; + } + boolean delay = false; + if (!ignoreDelay && sendi == player) //Forced? + if (getPl().getSettings().isDelayEnabled() && getPl().getSettings().getDelayTime() > 0) //Delay enabled? + if (!PermissionNode.BYPASS_DELAY.check(player)) //Can bypass? + delay = true; + RTPSetupInformation setup_info = new RTPSetupInformation(world, sendi, player, true, + biomes, delay, rtpType, locations, !ignoreCooldown && cooldownApplies(sendi, player)); //ignore cooldown or else + if (ignoreCooldown || isCoolingDown(sendi, player, setup_info)) { //Is Cooling down + getPl().getRTP().start(setup_info); } } private static boolean isRTPing(Player player, CommandSender sendi) { - if (getPl().getpInfo().getRtping().containsKey(player) && getPl().getpInfo().getRtping().get(player)) { + if (getPl().getpInfo().getRtping().getOrDefault(player, false)) { getPl().getText().getAlready(sendi); - return false; + return true; } - return true; + return false; } - private static boolean isCoolingDown(CommandSender sendi, Player player, World world) { - if (cooldownApplies(sendi, player)) { //Bypassing/Forced? - CooldownHandler cooldownHandler = getPl().getCooldowns(); - if (!cooldownHandler.isLoaded() || !cooldownHandler.loadedPlayer(player)) { //Cooldowns have yet to download - getPl().getText().getCooldown(sendi, String.valueOf(-1L)); + private static boolean isCoolingDown(CommandSender sendi, Player player, RTPSetupInformation setupInfo) { + if (!cooldownApplies(sendi, player)) //Bypassing/Forced? + return true; + CooldownHandler cooldownHandler = getPl().getCooldowns(); + if (!cooldownHandler.isLoaded() || !cooldownHandler.loadedPlayer(player)) { //Cooldowns have yet to download + getPl().getText().getCooldown(sendi, String.valueOf(-1L)); + return false; + } + //Cooldown Data + CooldownData cooldownData = getPl().getCooldowns().get(player, setupInfo.getWorld()); + if (cooldownData != null) { + if (cooldownHandler.locked(player)) { //Infinite cooldown (locked) + getPl().getText().getNoPermission(sendi); return false; - } - //Cooldown Data - CooldownData cooldownData = getPl().getCooldowns().get(player, world); - if (cooldownData != null) { - if (cooldownHandler.locked(player)) { //Infinite cooldown (locked) - getPl().getText().getNoPermission(sendi); + } else { //Normal cooldown + long timeLeft = cooldownHandler.timeLeft(player, cooldownData, BetterRTP.getInstance().getRTP().getPlayerWorld(setupInfo)); + if (timeLeft > 0) { + //Still cooling down + getPl().getText().getCooldown(sendi, String.valueOf(timeLeft)); return false; - } else { //Normal cooldown - long Left = cooldownHandler.timeLeft(cooldownData); - if (getPl().getSettings().isDelayEnabled() && !getPl().getPerms().getBypassDelay(sendi)) - Left = Left + getPl().getSettings().getDelayTime(); - if (Left > 0) { - //Still cooling down - getPl().getText().getCooldown(sendi, String.valueOf(Left)); - return false; - } else { - //Reset timer, but allow them to tp - //cooldowns.add(id); - return true; - } + } else { + //Reset timer, but allow them to tp + //cooldowns.add(id); + return true; } - } //else - //cooldowns.add(id); + } } return true; } private static boolean cooldownOverride(CommandSender sendi, Player player) { - return sendi != player || getPl().getPerms().getBypassCooldown(player); + return sendi != player || PermissionNode.BYPASS_COOLDOWN.check(player); } private static boolean cooldownEnabled() { diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP_EditConfig.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP_EditConfig.java new file mode 100644 index 0000000..decd618 --- /dev/null +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP_EditConfig.java @@ -0,0 +1,6 @@ +package me.SuperRonanCraft.BetterRTP.references.helpers; + +public class HelperRTP_EditConfig { + + +} diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP_EditWorlds.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP_EditWorlds.java new file mode 100644 index 0000000..7ae1694 --- /dev/null +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP_EditWorlds.java @@ -0,0 +1,268 @@ +package me.SuperRonanCraft.BetterRTP.references.helpers; + +import me.SuperRonanCraft.BetterRTP.BetterRTP; +import me.SuperRonanCraft.BetterRTP.player.commands.types.CmdEdit; +import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; +import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WORLD_TYPE; +import org.bukkit.command.CommandSender; +import org.bukkit.configuration.file.YamlConfiguration; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class HelperRTP_EditWorlds { + + public static void editCustomWorld(CommandSender sendi, CmdEdit.RTP_CMD_EDIT_SUB cmd, String world, String val) { + String path = "CustomWorlds"; + if (editSingleMap(sendi, cmd, world, val, path, FileBasics.FILETYPE.CONFIG)) + BetterRTP.getInstance().getRTP().loadWorlds(); + } + + public static void editLocation(CommandSender sendi, CmdEdit.RTP_CMD_EDIT_SUB cmd, String location, String val) { + String path = "Locations"; + if (editSingleMap(sendi, cmd, location, val, path, FileBasics.FILETYPE.LOCATIONS)) + BetterRTP.getInstance().getRTP().loadLocations(); + } + + private static boolean editSingleMap(CommandSender sendi, CmdEdit.RTP_CMD_EDIT_SUB cmd, String field, String val, String path, FileBasics.FILETYPE file) { + Object value; + try { + value = cmd.getResult(val); + } catch (Exception e) { + e.printStackTrace(); + BetterRTP.getInstance().getText().getEditError(sendi); + return false; + } + + if (value == null) { + BetterRTP.getInstance().getText().getEditError(sendi); + return false; + } + YamlConfiguration config = file.getConfig(); + + List> map = config.getMapList(path); + boolean found = false; + for (Map m : map) { + if (m.keySet().toArray()[0].equals(field)) { + found = true; + for (Object map2 : m.values()) { + Map values = (Map) map2; + values.put(cmd.get(), value); + BetterRTP.getInstance().getText().getEditSet(sendi, cmd.get(), val); + } + break; + } + } + if (!found) { + Map map2 = new HashMap<>(); + Map values = new HashMap<>(); + values.put(cmd.get(), value); + map2.put(field, values); + map.add(map2); + } + + config.set(path, map); + + try { + config.save(file.getFile()); + return true; + } catch (IOException e) { + e.printStackTrace(); + } + return false; + } + + public static void editPermissionGroup(CommandSender sendi, CmdEdit.RTP_CMD_EDIT_SUB cmd, String group, String world, String val) { + Object value; + try { + value = cmd.getResult(val); + } catch (Exception e) { + e.printStackTrace(); + BetterRTP.getInstance().getText().getEditError(sendi); + return; + } + + if (value == null) { + BetterRTP.getInstance().getText().getEditError(sendi); + return; + } + + String path = "PermissionGroup.Groups"; + FileBasics.FILETYPE file = FileBasics.FILETYPE.CONFIG; + YamlConfiguration config = file.getConfig(); + + List> map = config.getMapList(path); + for (Map m : map) + for (Map.Entry entry : m.entrySet()) { + String _group = entry.getKey().toString(); + if (_group.equals(group)) { + BetterRTP.getInstance().getLogger().info("Group: " + group); + Object _value = entry.getValue(); + for (Object worldList : ((ArrayList) _value)) { + BetterRTP.getInstance().getLogger().info("World: " + worldList.toString()); + for (Object hash : ((HashMap) worldList).entrySet()) { + Map.Entry worldFields = (Map.Entry) hash; + BetterRTP.getInstance().getLogger().info("Hash: " + hash); + if (world.equals(worldFields.getKey().toString())) { + Map values = (Map) worldFields.getValue(); + values.put(cmd.get(), value); + BetterRTP.getInstance().getText().getEditSet(sendi, cmd.get(), val); + } + } + } + } + } + /*if (!found) { + Map map2 = new HashMap<>(); + Map values = new HashMap<>(); + values.put(cmd.get(), value); + map2.put(world, values); + map.add(map2); + }*/ + //if (!found) + // return; + + config.set(path, map); + + try { + config.save(file.getFile()); + BetterRTP.getInstance().getRTP().loadPermissionGroups(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public static void editDefault(CommandSender sendi, CmdEdit.RTP_CMD_EDIT_SUB cmd, String val) { + Object value; + try { + value = cmd.getResult(val); + } catch (Exception e) { + e.printStackTrace(); + BetterRTP.getInstance().getText().getEditError(sendi); + return; + } + + if (value == null) { + BetterRTP.getInstance().getText().getEditError(sendi); + return; + } + + FileBasics.FILETYPE file = FileBasics.FILETYPE.CONFIG; + YamlConfiguration config = file.getConfig(); + + config.set("Default." + cmd.get(), value); + + try { + config.save(file.getFile()); + BetterRTP.getInstance().getRTP().loadWorlds(); + BetterRTP.getInstance().getText().getEditSet(sendi, cmd.get(), val); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public static void editWorldtype(CommandSender sendi, String world, String val) { + //sendi.sendMessage("Editting worldtype for world " + world + " to " + val); + WORLD_TYPE type; + try { + type = WORLD_TYPE.valueOf(val.toUpperCase()); + } catch (Exception e) { + //e.printStackTrace(); + BetterRTP.getInstance().getText().getEditError(sendi); + return; + } + + FileBasics.FILETYPE file = FileBasics.FILETYPE.CONFIG; + YamlConfiguration config = file.getConfig(); + + List> world_map = config.getMapList("WorldType"); + List> removeList = new ArrayList<>(); + for (Map m : world_map) { + for (Map.Entry entry : m.entrySet()) { + if (entry.getKey().equals(world)) + removeList.add(m); + } + } + for (Map o : removeList) + world_map.remove(o); + Map newIndex = new HashMap<>(); + newIndex.put(world, type.name()); + world_map.add(newIndex); + config.set("WorldType", world_map); + + try { + config.save(file.getFile()); + BetterRTP.getInstance().getRTP().load(); + BetterRTP.getInstance().getText().getEditSet(sendi, CmdEdit.RTP_CMD_EDIT.WORLD_TYPE.name(), val); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public static void editOverride(CommandSender sendi, String world, String val) { + + FileBasics.FILETYPE file = FileBasics.FILETYPE.CONFIG; + YamlConfiguration config = file.getConfig(); + + List> world_map = config.getMapList("Overrides"); + List> removeList = new ArrayList<>(); + for (Map m : world_map) { + for (Map.Entry entry : m.entrySet()) { + if (entry.getKey().equals(world)) + removeList.add(m); + } + } + for (Map o : removeList) + world_map.remove(o); + if (!val.equals("REMOVE_OVERRIDE")) { + Map newIndex = new HashMap<>(); + newIndex.put(world, val); + world_map.add(newIndex); + } else { + val = "(removed override)"; + } + config.set("Overrides", world_map); + + try { + config.save(file.getFile()); + BetterRTP.getInstance().getRTP().load(); + BetterRTP.getInstance().getText().getEditSet(sendi, CmdEdit.RTP_CMD_EDIT.OVERRIDE.name(), val); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public static void editBlacklisted(CommandSender sendi, String block, boolean add) { + + FileBasics.FILETYPE file = FileBasics.FILETYPE.CONFIG; + YamlConfiguration config = file.getConfig(); + + List world_map = config.getStringList("BlacklistedBlocks"); + List removeList = new ArrayList<>(); + for (String m : world_map) { + if (m.equals(block)) { + removeList.add(m); + } + } + for (String o : removeList) + world_map.remove(o); + if (add) { + world_map.add(block); + } else { + block = "(removed " + block + ")"; + } + config.set("BlacklistedBlocks", world_map); + + try { + config.save(file.getFile()); + BetterRTP.getInstance().getRTP().load(); + BetterRTP.getInstance().getText().getEditSet(sendi, CmdEdit.RTP_CMD_EDIT.BLACKLISTEDBLOCKS.name(), block); + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP_Info.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP_Info.java index bfbfcc0..e83a671 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP_Info.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP_Info.java @@ -1,6 +1,7 @@ package me.SuperRonanCraft.BetterRTP.references.helpers; import me.SuperRonanCraft.BetterRTP.BetterRTP; +import me.SuperRonanCraft.BetterRTP.references.PermissionNode; import org.bukkit.block.Biome; import org.bukkit.command.CommandSender; @@ -13,7 +14,7 @@ public class HelperRTP_Info { public static List getBiomes(String[] args, int start, CommandSender sendi) { List biomes = new ArrayList<>(); boolean error_sent = false; - if (BetterRTP.getInstance().getPerms().getBiome(sendi)) + if (PermissionNode.BIOME.check(sendi)) for (int i = start; i < args.length; i++) { String str = args[i]; try { diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/CooldownHandler.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/CooldownHandler.java index 74ef36f..aad1c01 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/CooldownHandler.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/CooldownHandler.java @@ -2,13 +2,16 @@ package me.SuperRonanCraft.BetterRTP.references.rtpinfo; import lombok.Getter; import me.SuperRonanCraft.BetterRTP.BetterRTP; +import me.SuperRonanCraft.BetterRTP.references.PermissionNode; import me.SuperRonanCraft.BetterRTP.references.database.DatabaseCooldownsWorlds; import me.SuperRonanCraft.BetterRTP.references.database.DatabasePlayers; import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; import me.SuperRonanCraft.BetterRTP.references.player.HelperPlayer; import me.SuperRonanCraft.BetterRTP.references.player.playerdata.PlayerData; +import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.RTPWorld; import org.bukkit.Bukkit; import org.bukkit.World; +import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import javax.annotation.Nullable; @@ -19,9 +22,8 @@ import java.util.List; public class CooldownHandler { @Getter boolean enabled, loaded, cooldownByWorld; - private int - timer, //Global Cooldown timer - lockedAfter; //Rtp's before being locked + @Getter private int cooldownTime; //Global Cooldown timer + private int lockedAfter; //Rtp's before being locked private final List downloading = new ArrayList<>(); private final DatabaseCooldownsWorlds cooldowns = new DatabaseCooldownsWorlds(); private final DatabasePlayers players = new DatabasePlayers(); @@ -34,7 +36,7 @@ public class CooldownHandler { downloading.clear(); loaded = false; if (enabled) { - timer = config.getInt("Settings.Cooldown.Time"); + cooldownTime = config.getInt("Settings.Cooldown.Time"); lockedAfter = config.getInt("Settings.Cooldown.LockAfter"); cooldownByWorld = config.getBoolean("Settings.Cooldown.PerWorld"); } @@ -100,9 +102,12 @@ public class CooldownHandler { return null; } - public long timeLeft(CooldownData data) { + public long timeLeft(CommandSender sendi, CooldownData data, RTPWorld rtpWorld) { long cooldown = data.getTime(); - return ((cooldown / 1000) + timer) - (System.currentTimeMillis() / 1000); + long timeLeft = ((cooldown / 1000) + rtpWorld.getCooldown()) - (System.currentTimeMillis() / 1000); + if (BetterRTP.getInstance().getSettings().isDelayEnabled() && !PermissionNode.BYPASS_DELAY.check(sendi)) + timeLeft = timeLeft + BetterRTP.getInstance().getSettings().getDelayTime(); + return timeLeft; } public boolean locked(Player player) { diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/PermissionGroup.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/PermissionGroup.java index 48938ff..194b631 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/PermissionGroup.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/PermissionGroup.java @@ -24,20 +24,14 @@ public class PermissionGroup { Object value = fields.getValue(); for (Object worldList : ((ArrayList) value)) { for (Object hash : ((HashMap) worldList).entrySet()) { - Map.Entry world = (Map.Entry) hash; - BetterRTP.debug("- -- World: " + world.getKey()); - WorldPermissionGroup permissionGroup = new WorldPermissionGroup(groupName, world.getKey().toString(), world); - boolean loaded = false; - for (World realWorld : Bukkit.getWorlds()) { - if (realWorld.getName().equals(permissionGroup.world)) { - this.worlds.put(world.getKey().toString(), permissionGroup); - loaded = true; - break; - } - } - if (!loaded) { - BetterRTP.debug("- - The Permission groups '" + groupName + "'s world '" + world.getKey() + "' does not exist! World info not loaded..."); - } + Map.Entry worldFields = (Map.Entry) hash; + BetterRTP.debug("- -- World: " + worldFields.getKey()); + World world = Bukkit.getWorld(worldFields.getKey().toString()); + if (world != null) { + WorldPermissionGroup permissionGroup = new WorldPermissionGroup(groupName, world, worldFields); + this.worlds.put(worldFields.getKey().toString(), permissionGroup); + } else + BetterRTP.debug("- - The Permission Group '" + groupName + "'s world '" + worldFields.getKey() + "' does not exist! Permission Group not loaded..."); } } } diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/RTPWorld.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/RTPWorld.java index e4760b8..5982729 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/RTPWorld.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/RTPWorld.java @@ -1,6 +1,7 @@ package me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds; import lombok.NonNull; +import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE; import org.bukkit.World; @@ -29,4 +30,8 @@ public interface RTPWorld { int getMinY(); int getMaxY(); + + default long getCooldown() { + return BetterRTP.getInstance().getCooldowns().getCooldownTime(); + } } diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/RTPWorld_Defaulted.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/RTPWorld_Defaulted.java index 72c8dbf..802c0ba 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/RTPWorld_Defaulted.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/RTPWorld_Defaulted.java @@ -2,6 +2,7 @@ package me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds; import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE; +import org.bukkit.World; import java.util.List; @@ -21,7 +22,7 @@ public interface RTPWorld_Defaulted { void setBiomes(List value); - void setWorld(String value); + void setWorld(World value); void setShape(RTP_SHAPE value); diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldCustom.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldCustom.java index a2033ca..84374cf 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldCustom.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldCustom.java @@ -12,13 +12,13 @@ import java.util.List; import java.util.Map; public class WorldCustom implements RTPWorld, RTPWorld_Defaulted { - public String world; + public World world; private boolean useWorldborder; private int centerX, centerZ, maxBorderRad, minBorderRad, price, miny, maxy; private List biomes; private RTP_SHAPE shape; - public WorldCustom(String world) { + public WorldCustom(World world) { //String pre = "CustomWorlds."; FileBasics.FILETYPE config = BetterRTP.getInstance().getFiles().getType(FileBasics.FILETYPE.CONFIG); List> map = config.getMapList("CustomWorlds"); @@ -31,7 +31,7 @@ public class WorldCustom implements RTPWorld, RTPWorld_Defaulted { for (Map m : map) { for (Map.Entry entry : m.entrySet()) { String key = entry.getKey().toString(); - if (!key.equals(world)) + if (!key.equals(world.getName())) continue; Map test = ((Map) m.get(key)); if (test == null) @@ -45,9 +45,8 @@ public class WorldCustom implements RTPWorld, RTPWorld_Defaulted { centerX = Integer.parseInt((test.get("CenterX")).toString()); } if (test.get("CenterZ") != null) { - if (test.get("CenterZ").getClass() == Integer.class) { + if (test.get("CenterZ").getClass() == Integer.class) centerZ = Integer.parseInt((test.get("CenterZ")).toString()); - } } if (test.get("MaxRadius") != null) { if (test.get("MaxRadius").getClass() == Integer.class) @@ -173,7 +172,7 @@ public class WorldCustom implements RTPWorld, RTPWorld_Defaulted { @NotNull @Override public World getWorld() { - return Bukkit.getWorld(world); + return world; } @Override @@ -228,7 +227,7 @@ public class WorldCustom implements RTPWorld, RTPWorld_Defaulted { } @Override - public void setWorld(String value) { + public void setWorld(World value) { this.world = value; } diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldLocations.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldLocations.java index 8af4326..cc9b0e2 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldLocations.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldLocations.java @@ -15,7 +15,7 @@ public class WorldLocations implements RTPWorld, RTPWorld_Defaulted { private boolean useWorldborder; private int centerX, centerZ, maxRad, minRad, price, miny, maxy; private List biomes; - private String world; + private World world; private RTP_SHAPE shape; public WorldLocations(String location_name) { @@ -36,9 +36,10 @@ public class WorldLocations implements RTPWorld, RTPWorld_Defaulted { continue; if (test.get("World") != null) { if (test.get("World").getClass() == String.class) - world = test.get("World").toString(); - } else { - BetterRTP.getInstance().getLogger().warning("Location `" + location_name + "` does NOT have a World specified!"); + world = Bukkit.getWorld(test.get("World").toString()); + } + if (world == null) { + BetterRTP.getInstance().getLogger().warning("Location `" + location_name + "` does NOT have a `World` or world doesnt exist!"); return; } if (test.get("UseWorldBorder") != null) { @@ -121,7 +122,7 @@ public class WorldLocations implements RTPWorld, RTPWorld_Defaulted { @NotNull @Override public World getWorld() { - return Bukkit.getWorld(world); + return world; } @Override @@ -212,7 +213,7 @@ public class WorldLocations implements RTPWorld, RTPWorld_Defaulted { } @Override - public void setWorld(String value) { + public void setWorld(World value) { this.world = value; } diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldPermissionGroup.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldPermissionGroup.java index 48d6c9a..4ebce9f 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldPermissionGroup.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldPermissionGroup.java @@ -17,12 +17,13 @@ public class WorldPermissionGroup implements RTPWorld, RTPWorld_Defaulted { private boolean useWorldborder; private int centerX, centerZ, maxRad, minRad, price, miny, maxy; private List biomes; - public String world; + public World world; private RTP_SHAPE shape; @Getter private int priority; - @Getter private String groupName; + @Getter private final String groupName; + private long cooldown; - public WorldPermissionGroup(String group, String world, Map.Entry fields) { + public WorldPermissionGroup(String group, World world, Map.Entry fields) { this.groupName = group; this.world = world; setupDefaults(); @@ -102,6 +103,7 @@ public class WorldPermissionGroup implements RTPWorld, RTPWorld_Defaulted { this.shape = RTP_SHAPE.valueOf(hash3.getValue().toString().toUpperCase()); BetterRTP.debug("- - Shape: " + shape.name()); } catch (Exception e) { + BetterRTP.debug("- - Shape: (INVALID) " + hash3.getValue().toString()); //Invalid shape } } @@ -116,6 +118,11 @@ public class WorldPermissionGroup implements RTPWorld, RTPWorld_Defaulted { this.maxy = Integer.parseInt(hash3.getValue().toString()); BetterRTP.debug("- - MaxY: " + maxy); } + if (field.equalsIgnoreCase("Cooldown")) + if (hash3.getValue().getClass() == Long.class) { + this.cooldown = Long.parseLong(hash3.getValue().toString()); + BetterRTP.debug("- - Custom Cooldown: " + cooldown); + } } } @@ -156,7 +163,7 @@ public class WorldPermissionGroup implements RTPWorld, RTPWorld_Defaulted { @Override public @NonNull World getWorld() { - return Bukkit.getWorld(world); + return world; } @Override @@ -174,6 +181,11 @@ public class WorldPermissionGroup implements RTPWorld, RTPWorld_Defaulted { return maxy; } + @Override + public long getCooldown() { + return cooldown; + } + @Override public void setUseWorldBorder(boolean value) { this.useWorldborder = value; @@ -210,7 +222,7 @@ public class WorldPermissionGroup implements RTPWorld, RTPWorld_Defaulted { } @Override - public void setWorld(String value) { + public void setWorld(World value) { this.world = value; } diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldPlayer.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldPlayer.java index 42922da..3f859c7 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldPlayer.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldPlayer.java @@ -59,14 +59,6 @@ public class WorldPlayer implements RTPWorld, RTPWorld_Defaulted { list.addAll(biomes); } setBiomes(list); - //if (personal && player != null) - // setupGroup(); - //Make sure our borders will not cause an invalid integer - if (getMaxRadius() <= getMinRadius()) { - setMinRadius(BetterRTP.getInstance().getRTP().defaultWorld.getMinRadius()); - if (getMaxRadius() <= getMinRadius()) - setMinRadius(0); - } //World border protection if (getUseWorldborder()) { WorldBorder border = getWorld().getWorldBorder(); @@ -76,6 +68,12 @@ public class WorldPlayer implements RTPWorld, RTPWorld_Defaulted { setCenterX(border.getCenter().getBlockX()); setCenterZ(border.getCenter().getBlockZ()); } + //Make sure our borders will not cause an invalid integer + if (getMaxRadius() <= getMinRadius()) { + setMinRadius(BetterRTP.getInstance().getRTP().defaultWorld.getMinRadius()); + if (getMaxRadius() <= getMinRadius()) + setMinRadius(0); + } //MinY setMinY(world.getMinY()); setMaxY(world.getMaxY()); @@ -236,8 +234,8 @@ public class WorldPlayer implements RTPWorld, RTPWorld_Defaulted { } @Override - public void setWorld(String value) { - + public void setWorld(World value) { + //Can't override this one buddy } //Custom World type diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/settings/Settings.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/settings/Settings.java index 91c7e03..fc8a74c 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/settings/Settings.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/settings/Settings.java @@ -20,6 +20,7 @@ public class Settings { @Getter private boolean useLocationIfAvailable; @Getter private boolean locationNeedPermission; @Getter private boolean locationOnlyAllowInWorld; + @Getter private boolean permissionGroupEnabled; public void load() { //Load Settings FileBasics.FILETYPE config = FileBasics.FILETYPE.CONFIG; @@ -31,6 +32,7 @@ public class Settings { rtpOnFirstJoin_SetAsRespawn = config.getBoolean("Settings.RtpOnFirstJoin.SetAsRespawn"); preloadRadius = config.getInt("Settings.PreloadRadius"); statusMessages = config.getBoolean("Settings.StatusMessages"); + permissionGroupEnabled = config.getBoolean("PermissionGroup.Enabled"); protocolLibSounds = FileBasics.FILETYPE.EFFECTS.getBoolean("Sounds.ProtocolLibSound"); useLocationIfAvailable = FileBasics.FILETYPE.LOCATIONS.getBoolean("UseLocationIfAvailable"); locationNeedPermission = FileBasics.FILETYPE.LOCATIONS.getBoolean("RequirePermission"); diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/Updater.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/web/Updater.java similarity index 95% rename from src/main/java/me/SuperRonanCraft/BetterRTP/references/Updater.java rename to src/main/java/me/SuperRonanCraft/BetterRTP/references/web/Updater.java index 2cc674c..1b5780d 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/Updater.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/web/Updater.java @@ -1,4 +1,4 @@ -package me.SuperRonanCraft.BetterRTP.references; +package me.SuperRonanCraft.BetterRTP.references.web; import me.SuperRonanCraft.BetterRTP.BetterRTP; import org.bukkit.Bukkit; diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index e2ec65d..e46fa42 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -79,6 +79,7 @@ BlacklistedBlocks: - bedrock - oak_leaves - jungle_leaves + - kelp ## Worlds to NOT allow /rtp in, unless there is an override to another enabled world # DisabledWorlds: diff --git a/src/main/resources/lang/chs.yml b/src/main/resources/lang/chs.yml index effa472..bafb16f 100644 --- a/src/main/resources/lang/chs.yml +++ b/src/main/resources/lang/chs.yml @@ -57,6 +57,7 @@ Usage: Base: '&c用法&7:/%command% edit [参数...]' Default: '&c用法&7:/%command% edit default <值>' World: '&c用法&7:/%command% edit world <值>' +# PermissionGroup: '&cUsage&7: /%command% edit permission_group ' # Worldtype: '&cUsage&7: /%command% edit world_type ' # Override: '&cUsage&7: /%command% edit override ' # BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks ' diff --git a/src/main/resources/lang/cht.yml b/src/main/resources/lang/cht.yml index 5c92e19..04d19db 100644 --- a/src/main/resources/lang/cht.yml +++ b/src/main/resources/lang/cht.yml @@ -57,6 +57,7 @@ Usage: Base: '&c用法&7: /%command% edit [參數...]' Default: '&c用法&7: /%command% edit default <數值>' World: '&c用法&7: /%command% edit world <數值>' +# PermissionGroup: '&cUsage&7: /%command% edit permission_group ' Worldtype: '&c用法&7: /%command% edit world_type <世界> ' Override: '&c用法&7: /%command% edit override <世界> <要傳送到的世界>' BlacklistedBlocks: '&c用法&7: /%command% edit blacklistedblocks <方塊ID>' diff --git a/src/main/resources/lang/cs.yml b/src/main/resources/lang/cs.yml index 96c99e2..d6e08e8 100644 --- a/src/main/resources/lang/cs.yml +++ b/src/main/resources/lang/cs.yml @@ -57,6 +57,7 @@ Usage: Base: '&cPoužití&7: /%command% edit [hodnoty...]' Default: '&cPoužití&7: /%command% edit default ' World: '&cPoužití&7: /%command% edit world ' +# PermissionGroup: '&cUsage&7: /%command% edit permission_group ' # Worldtype: '&cUsage&7: /%command% edit world_type ' # Override: '&cUsage&7: /%command% edit override ' # BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks ' diff --git a/src/main/resources/lang/da.yml b/src/main/resources/lang/da.yml index 8a65bae..7f2a70a 100644 --- a/src/main/resources/lang/da.yml +++ b/src/main/resources/lang/da.yml @@ -57,6 +57,7 @@ Usage: Base: '&Brug&7: /%command% edit [args...]' Default: '&Brug&7: /%command% edit default ' World: '&Brug&7: /%command% edit world ' +# PermissionGroup: '&cUsage&7: /%command% edit permission_group ' Worldtype: '&Brug&7: /%command% edit world_type ' Override: '&Brug&7: /%command% edit override ' BlacklistedBlocks: '&Brug&7: /%command% edit blacklistedblocks ' \ No newline at end of file diff --git a/src/main/resources/lang/du.yml b/src/main/resources/lang/du.yml index a9c7704..7f883af 100644 --- a/src/main/resources/lang/du.yml +++ b/src/main/resources/lang/du.yml @@ -57,6 +57,7 @@ Usage: # Base: '&cUsage&7: /%command% edit [args...]' # Default: '&cUsage&7: /%command% edit default ' # World: '&cUsage&7: /%command% edit world ' +# PermissionGroup: '&cUsage&7: /%command% edit permission_group ' # Worldtype: '&cUsage&7: /%command% edit world_type ' # Override: '&cUsage&7: /%command% edit override ' # BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks ' \ No newline at end of file diff --git a/src/main/resources/lang/en.yml b/src/main/resources/lang/en.yml index 81eb0dd..1633db3 100644 --- a/src/main/resources/lang/en.yml +++ b/src/main/resources/lang/en.yml @@ -56,7 +56,9 @@ Usage: Edit: Base: '&cUsage&7: /%command% edit [args...]' Default: '&cUsage&7: /%command% edit default ' - World: '&cUsage&7: /%command% edit world ' + World: '&cUsage&7: /%command% edit customworld ' + PermissionGroup: '&cUsage&7: /%command% edit permission_group ' + Location: '&cUsage&7: /%command% edit location ' Worldtype: '&cUsage&7: /%command% edit world_type ' Override: '&cUsage&7: /%command% edit override ' BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks ' diff --git a/src/main/resources/lang/es.yml b/src/main/resources/lang/es.yml index 12ba5dc..2a5c7d9 100644 --- a/src/main/resources/lang/es.yml +++ b/src/main/resources/lang/es.yml @@ -57,6 +57,7 @@ Usage: Base: '&cUso&7: /%command% edit [args...]' Default: '&cUso&7: /%command% edit default ' World: '&cUso&7: /%command% edit world ' +# PermissionGroup: '&cUsage&7: /%command% edit permission_group ' Worldtype: '&cUso&7: /%command% edit world_type ' Override: '&cUso&7: /%command% edit override ' BlacklistedBlocks: '&cUso&7: /%command% edit blacklistedblocks ' diff --git a/src/main/resources/lang/fr.yml b/src/main/resources/lang/fr.yml index fc3fae8..e2655c9 100644 --- a/src/main/resources/lang/fr.yml +++ b/src/main/resources/lang/fr.yml @@ -58,6 +58,7 @@ Usage: Base: '&cUtilisation &7: /%command% edit [args...]' Default: '&cUtilisation &7: /%command% edit default ' World: '&cUtilisation &7: /%command% edit world ' +# PermissionGroup: '&cUsage&7: /%command% edit permission_group ' Worldtype: '&cUtilisation &7: /%command% edit world_type ' Override: '&cUtilisation &7: /%command% edit override ' BlacklistedBlocks: '&cUtilisation &7: /%command% edit blacklistedblocks ' diff --git a/src/main/resources/lang/it.yml b/src/main/resources/lang/it.yml index 7debf9c..394c6aa 100644 --- a/src/main/resources/lang/it.yml +++ b/src/main/resources/lang/it.yml @@ -53,3 +53,4 @@ Usage: Base: '&cUsa&7: /%command% edit [argomenti...]' Default: '&cUsa&7: /%command% edit default ' World: '&cUsa&7: /%command% edit world ' +# PermissionGroup: '&cUsage&7: /%command% edit permission_group ' \ No newline at end of file diff --git a/src/main/resources/lang/ja.yml b/src/main/resources/lang/ja.yml index 411ff54..e15e4f8 100644 --- a/src/main/resources/lang/ja.yml +++ b/src/main/resources/lang/ja.yml @@ -57,6 +57,7 @@ Usage: # Base: '&cUsage&7: /%command% edit [args...]' # Default: '&cUsage&7: /%command% edit default ' # World: '&cUsage&7: /%command% edit world ' +# PermissionGroup: '&cUsage&7: /%command% edit permission_group ' # Worldtype: '&cUsage&7: /%command% edit world_type ' # Override: '&cUsage&7: /%command% edit override ' # BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks ' \ No newline at end of file diff --git a/src/main/resources/lang/no.yml b/src/main/resources/lang/no.yml index 8ea0c52..0625147 100644 --- a/src/main/resources/lang/no.yml +++ b/src/main/resources/lang/no.yml @@ -57,6 +57,7 @@ Usage: Base: '&cUsage &7: /%command% edit [args ...]' Default: '&cUsage &7: /%command% edit default ' World: '&cUsage &7: /%command% edit world ' +# PermissionGroup: '&cUsage&7: /%command% edit permission_group ' Worldtype: '&cUsage &7: /%command% edit world_type ' Override: '&cUsage &7: /%command% edit override ' BlacklistedBlocks: '&cUsage &7: /%command% edit blacklistedblocks ' diff --git a/src/main/resources/lang/pl.yml b/src/main/resources/lang/pl.yml index d2c4f29..62e54dd 100644 --- a/src/main/resources/lang/pl.yml +++ b/src/main/resources/lang/pl.yml @@ -57,6 +57,7 @@ Usage: Base: '&cUżycie&7: /%command% edit [args...]' Default: '&cUżycie&7: /%command% edit default ' World: '&cUżycie&7: /%command% edit world ' +# PermissionGroup: '&cUsage&7: /%command% edit permission_group ' Worldtype: '&cUżycie&7: /%command% edit world_type ' Override: '&cUżycie&7: /%command% edit override ' BlacklistedBlocks: '&cUżycie&7: /%command% edit blacklistedblocks ' \ No newline at end of file diff --git a/src/main/resources/lang/ro.yml b/src/main/resources/lang/ro.yml index b90b268..251fb8e 100644 --- a/src/main/resources/lang/ro.yml +++ b/src/main/resources/lang/ro.yml @@ -56,6 +56,7 @@ Usage: Base: '&cFolosire&7: /%command% edit [args...]' Default: '&cFolosire&7: /%command% edit default ' World: '&cFolosire&7: /%command% edit world ' +# PermissionGroup: '&cUsage&7: /%command% edit permission_group ' # Worldtype: '&cUsage&7: /%command% edit world_type ' # Override: '&cUsage&7: /%command% edit override ' # BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks ' diff --git a/src/main/resources/lang/ru.yml b/src/main/resources/lang/ru.yml index b07a067..2a0f070 100644 --- a/src/main/resources/lang/ru.yml +++ b/src/main/resources/lang/ru.yml @@ -57,6 +57,7 @@ Usage: Base: '&cUsage&7: /%command% edit [аргументы...]' Default: '&cUsage&7: /%command% edit default ' World: '&cUsage&7: /%command% edit world ' +# PermissionGroup: '&cUsage&7: /%command% edit permission_group ' # Worldtype: '&cUsage&7: /%command% edit world_type ' # Override: '&cUsage&7: /%command% edit override ' # BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks ' \ No newline at end of file diff --git a/src/main/resources/lang/vi.yml b/src/main/resources/lang/vi.yml index 5ef13a7..c65030f 100644 --- a/src/main/resources/lang/vi.yml +++ b/src/main/resources/lang/vi.yml @@ -56,9 +56,8 @@ Usage: Edit: Base: '&cUsage&7: /%command% edit [args...]' Default: '&cUsage&7: /%command% edit default ' - World: '&cUsage&7: /%command% edit world - ' + World: '&cUsage&7: /%command% edit world ' +# PermissionGroup: '&cUsage&7: /%command% edit permission_group ' Worldtype: '&cUsage&7: /%command% edit world_type ' Override: '&cUsage&7: /%command% edit override ' - BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks - ' + BlacklistedBlocks: '&cUsage&7: /%command% edit blacklistedblocks '