diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/RTPCommandType.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/RTPCommandType.java index 025d74e..8917c7b 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/RTPCommandType.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/RTPCommandType.java @@ -9,6 +9,7 @@ public enum RTPCommandType { INFO(new CmdInfo()), PLAYER(new CmdPlayer()), RELOAD(new CmdReload()), + LOCATION(new CmdLocation()), //SETTINGS(new CmdSettings(), true), TEST(new CmdTest(), true), VERSION(new CmdVersion()), diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/RTP_SETUP_TYPE.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/RTP_SETUP_TYPE.java new file mode 100644 index 0000000..c85447a --- /dev/null +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/RTP_SETUP_TYPE.java @@ -0,0 +1,11 @@ +package me.SuperRonanCraft.BetterRTP.player.commands; + +import org.bukkit.command.CommandSender; + +import java.util.List; + +public enum RTP_SETUP_TYPE { + DEFAULT, + CUSTOM_WORLD, + LOCATION +} 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 f8c6506..fdb31e9 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 @@ -2,8 +2,10 @@ 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.RTP_SETUP_TYPE; import me.SuperRonanCraft.BetterRTP.player.rtp.RTPParticles; import me.SuperRonanCraft.BetterRTP.references.worlds.WorldDefault; +import me.SuperRonanCraft.BetterRTP.references.worlds.WorldLocations; import me.SuperRonanCraft.BetterRTP.references.worlds.WorldPlayer; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.references.worlds.WORLD_TYPE; @@ -128,7 +130,7 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable { info.add("&7- &6Overriden&7: " + _false); WorldPlayer _rtpworld = BetterRTP.getInstance().getRTP().getPlayerWorld(sendi, w.getName(), null, personal); WorldDefault worldDefault = BetterRTP.getInstance().getRTP().defaultWorld; - info.add("&7- &6Custom World&7: " + (BetterRTP.getInstance().getRTP().customWorlds.containsKey(w.getName()) ? _true : _false + " &8(using defaults)")); + info.add("&7- &6Setup Type&7: " + _rtpworld.setup_type.name() + (_rtpworld.setup_type == RTP_SETUP_TYPE.LOCATION ? "&7(" + _rtpworld.setup_name + ")" : "")); info.add("&7- &6Use World Border&7: " + (_rtpworld.getUseWorldborder() ? _true : _false)); info.add("&7- &6Permission Group&7: " + (_rtpworld.getConfig() != null ? "&e" + _rtpworld.getConfig().name : "&cN/A")); info.add("&7- &6Center X&7: &f" + _rtpworld.getCenterX() + getInfo(_rtpworld, worldDefault, "centerx")); 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 c490fc6..31892a2 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 @@ -1,421 +1,68 @@ package me.SuperRonanCraft.BetterRTP.player.commands.types; import me.SuperRonanCraft.BetterRTP.BetterRTP; +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.references.file.FileBasics; -import me.SuperRonanCraft.BetterRTP.references.worlds.WORLD_TYPE; +import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandType; +import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE; +import me.SuperRonanCraft.BetterRTP.references.worlds.RTPWorld; +import me.SuperRonanCraft.BetterRTP.references.worlds.WorldLocations; 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.ArrayList; import java.util.HashMap; import java.util.List; -import java.util.Map; -public class CmdLocation implements RTPCommand, RTPCommandHelpable { //Edit a worlds properties +public class CmdLocation implements RTPCommand, RTPCommandHelpable { public String getName() { - return "edit"; + return "location"; } - @Override + //rtp location public void execute(CommandSender sendi, String label, String[] args) { - if (args.length >= 4) { - for (RTP_CMD_LOCATION cmd : RTP_CMD_LOCATION.values()) - if (cmd.name().toLowerCase().startsWith(args[1].toLowerCase())) { - switch (cmd) { - case WORLD: - if (args.length >= 5) { - for (World world : Bukkit.getWorlds()) { - if (world.getName().startsWith(args[2])) { - for (RTP_CMD_LOCATION_SUB sub_cmd : RTP_CMD_LOCATION_SUB.values()) - if (sub_cmd.name().toLowerCase().startsWith(args[3].toLowerCase())) { - editWorld(sendi, sub_cmd, args[4], args[2]); - return; - } - usage(sendi, label, cmd); - return; - } - } - BetterRTP.getInstance().getText().getNotExist(sendi, args[2]); - return; - } - usage(sendi, label, cmd); - return; - case DEFAULT: - for (RTP_CMD_LOCATION_SUB sub_cmd : RTP_CMD_LOCATION_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; - } - } - 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 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; - } - } - } else if (args.length >= 2) { - for (RTP_CMD_LOCATION cmd : RTP_CMD_LOCATION.values()) - if (cmd.name().toLowerCase().startsWith(args[1].toLowerCase())) { - usage(sendi, label, cmd); + if (args.length == 2) { + for (String location_name : getLocations().keySet()) { + if (location_name.equalsIgnoreCase(args[1].toLowerCase())) { + //LOCATION RTP CODE + //********************************** + //********************************** return; } - } - usage(sendi, label, null); - } - - private void editWorld(CommandSender sendi, RTP_CMD_LOCATION_SUB cmd, String val, String world) { - Object value; - try { - value = cmd.getResult(val); - } catch (Exception e) { - e.printStackTrace(); - 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().loadCustomWorlds(); - } catch (IOException e) { - e.printStackTrace(); - } + usage(sendi, label); + } else + usage(sendi, label); } - private void editDefault(CommandSender sendi, RTP_CMD_LOCATION_SUB cmd, String val) { - Object value; - try { - value = cmd.getResult(val); - } catch (Exception e) { - e.printStackTrace(); - 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().loadCustomWorlds(); - 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_LOCATION.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_LOCATION.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_LOCATION.BLACKLISTEDBLOCKS.name(), block); - } catch (IOException e) { - e.printStackTrace(); - } - } - - //rtp edit default - //rtp edit world [] - //rtp edit worldtype - @Override public List tabComplete(CommandSender sendi, String[] args) { List list = new ArrayList<>(); if (args.length == 2) { - for (RTP_CMD_LOCATION cmd : RTP_CMD_LOCATION.values()) - if (cmd.name().toLowerCase().startsWith(args[1].toLowerCase())) - list.add(cmd.name().toLowerCase()); - } else if (args.length == 3) { //rtp edit - for (RTP_CMD_LOCATION cmd : RTP_CMD_LOCATION.values()) - if (cmd.name().equalsIgnoreCase(args[1])) { - switch (cmd) { - case WORLD_TYPE: - case OVERRIDE: - case WORLD: //List all worlds - for (World world : Bukkit.getWorlds()) - if (world.getName().toLowerCase().startsWith(args[2].toLowerCase())) - list.add(world.getName()); - break; - case DEFAULT: - list.addAll(tabCompleteSub(args, cmd)); - break; - case BLACKLISTEDBLOCKS: - list.add("add"); - list.add("remove"); - break; - } - } - } else if (args.length == 4) { - for (RTP_CMD_LOCATION cmd : RTP_CMD_LOCATION.values()) - if (cmd.name().equalsIgnoreCase(args[1])) - switch (cmd) { - case WORLD: - list.addAll(tabCompleteSub(args, cmd)); break; - case DEFAULT: - if (args[2].equalsIgnoreCase(RTP_CMD_LOCATION_SUB.CENTER_X.name())) - list.add(String.valueOf(((Player) sendi).getLocation().getBlockX())); - else if (args[2].equalsIgnoreCase(RTP_CMD_LOCATION_SUB.CENTER_Z.name())) - list.add(String.valueOf(((Player) sendi).getLocation().getBlockZ())); - break; - case WORLD_TYPE: - for (WORLD_TYPE _type : WORLD_TYPE.values()) - list.add(_type.name()); - break; - case OVERRIDE: - for (World world : Bukkit.getWorlds()) - if (world.getName().toLowerCase().startsWith(args[2].toLowerCase())) - list.add(world.getName()); - list.add("REMOVE_OVERRIDE"); - break; - case BLACKLISTEDBLOCKS: - if (args[2].equalsIgnoreCase("add")) { - for (Material block : Material.values()) { - if (list.size() > 20) - break; - if (block.name().startsWith(args[3].toUpperCase())) - list.add(block.name()); - } - } else if (args[2].equalsIgnoreCase("remove")) { - for (String block : BetterRTP.getInstance().getRTP().blockList) { - if (block.startsWith(args[3])) - list.add(block); - } - } - break; - } - } else if (args.length == 5) { - for (RTP_CMD_LOCATION cmd : RTP_CMD_LOCATION.values()) - if (cmd.name().equalsIgnoreCase(args[1])) - if (cmd == RTP_CMD_LOCATION.WORLD) { - if (args[3].equalsIgnoreCase(RTP_CMD_LOCATION_SUB.CENTER_X.name())) - list.add(String.valueOf(((Player) sendi).getLocation().getBlockX())); - else if (args[3].equalsIgnoreCase(RTP_CMD_LOCATION_SUB.CENTER_Z.name())) - list.add(String.valueOf(((Player) sendi).getLocation().getBlockZ())); - } + for (String location_name : getLocations().keySet()) + if (location_name.toLowerCase().startsWith(args[1].toLowerCase())) + list.add(location_name); } return list; } - private List tabCompleteSub(String[] args, RTP_CMD_LOCATION cmd) { - List list = new ArrayList<>(); - for (RTP_CMD_LOCATION_SUB sub_cmd : RTP_CMD_LOCATION_SUB.values()) { - - if (sub_cmd.name().toLowerCase().startsWith(args[args.length - 1].toLowerCase())) - list.add(sub_cmd.name().toLowerCase()); - } - return list; - } - - @Override public boolean permission(CommandSender sendi) { - return BetterRTP.getInstance().getPerms().getEdit(sendi); + return BetterRTP.getInstance().getPerms().getRtpOther(sendi); } - private void usage(CommandSender sendi, String label, RTP_CMD_LOCATION type) { - if (type != null) - switch (type) { - case DEFAULT: - BetterRTP.getInstance().getText().getUsageEditDefault(sendi, label); break; - case WORLD: - BetterRTP.getInstance().getText().getUsageEditWorld(sendi, label); break; - case WORLD_TYPE: - BetterRTP.getInstance().getText().getUsageWorldtype(sendi, label); break; - case OVERRIDE: - BetterRTP.getInstance().getText().getUsageOverride(sendi, label); break; - case BLACKLISTEDBLOCKS: - BetterRTP.getInstance().getText().getUsageBlacklistedBlocks(sendi, label); break; - } - else - BetterRTP.getInstance().getText().getUsageEdit(sendi, label); + public void usage(CommandSender sendi, String label) { + BetterRTP.getInstance().getText().getUsageLocation(sendi, label); + } + + private HashMap getLocations() { + return BetterRTP.getInstance().getRTP().worldLocations; } @Override public String getHelp() { - return BetterRTP.getInstance().getText().getHelpEdit(); + return BetterRTP.getInstance().getText().getHelpLocation(); } - - enum RTP_CMD_LOCATION { - WORLD, DEFAULT, WORLD_TYPE, OVERRIDE, BLACKLISTEDBLOCKS - } - - enum RTP_CMD_LOCATION_SUB { - CENTER_X("CenterX", "INT"), - CENTER_Z("CenterZ", "INT"), - MAX("MaxRadius", "INT"), - MIN("MinRadius", "INT"), - USEWORLDBORDER("UseWorldBorder", "BOL"); - - private final String type; - private final String str; - - RTP_CMD_LOCATION_SUB(String str, String type) { - this.str = str; - this.type = type; - } - - String get() { - return str; - } - - Object getResult(String input) { - if (this.type.equalsIgnoreCase("INT")) - return Integer.parseInt(input); - else if (this.type.equalsIgnoreCase("BOL")) - return Boolean.valueOf(input); - else if (this.type.equalsIgnoreCase("WORLDTYPE")) //WILL CAUSE ERROR IF INCORRECT - return WORLD_TYPE.valueOf(input).name(); - return null; - } - } -} \ No newline at end of file +} 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 69be7b6..caa1a5f 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP.java @@ -27,7 +27,7 @@ public class RTP { int maxAttempts, delayTime; boolean cancelOnMove, cancelOnDamage; public HashMap world_type = new HashMap<>(); - private HashMap worldLocations = new HashMap<>(); + public HashMap worldLocations = new HashMap<>(); public RTPTeleport getTeleport() { return teleport; @@ -151,12 +151,25 @@ public class RTP { public WorldPlayer getPlayerWorld(CommandSender sendi, String world_name, List biomes, boolean personal) { WorldPlayer pWorld = new WorldPlayer(sendi, Bukkit.getWorld(world_name)); - // Set all methods - if (customWorlds.containsKey(world_name)) { - RTPWorld cWorld = customWorlds.get(pWorld.getWorld().getName()); - pWorld.setup(cWorld, biomes, personal); - } else - pWorld.setup(defaultWorld, biomes, personal); + + //Locations + for (Map.Entry location_set : worldLocations.entrySet()) { + RTPWorld location = location_set.getValue(); + if (location.getWorld().getName().equals(world_name)) { + pWorld.setup(location_set.getKey(), location, location.getBiomes(), personal); + } + } + + if (!pWorld.isSetup()) { + //Custom World + if (customWorlds.containsKey(world_name)) { + RTPWorld cWorld = customWorlds.get(pWorld.getWorld().getName()); + pWorld.setup(null, cWorld, biomes, personal); + } + //Default World + else + pWorld.setup(null, defaultWorld, biomes, personal); + } //World type WORLD_TYPE world_type; //World rtp type if (this.world_type.containsKey(world_name)) @@ -211,6 +224,41 @@ public class RTP { rtp(sendi, pWorld, delay, rtpType); } + public void start(Player p, CommandSender sendi, String world_name, List biomes, boolean delay, RTP_TYPE rtpType, String location_name) { + // Check overrides + if (world_name == null) { + world_name = p.getWorld().getName(); + } else { // Check if nulled or world doesnt exist + World _world = 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; + } + } + if (overriden.containsKey(world_name)) + world_name = overriden.get(world_name); + // Not forced and has 'betterrtp.world.' + if (sendi == p && !getPl().getPerms().getAWorld(sendi, world_name)) { + getPl().getText().getNoPermissionWorld(p, world_name); + return; + } + // Check disabled worlds + if (disabledWorlds.contains(world_name)) { + getPl().getText().getDisabledWorld(sendi, world_name); + return; + } + WorldPlayer pWorld = getPlayerWorld(p, world_name, biomes, true); + // Economy + if (!getPl().getEco().hasBalance(sendi, pWorld)) + return; + //BetterRTP.getInstance().getpInfo().setRTPType(p, rtpType); + rtp(sendi, pWorld, delay, rtpType); + } + private void rtp(CommandSender sendi, WorldPlayer pWorld, boolean delay, RTP_TYPE type) { //Cooldown Player p = pWorld.getPlayer(); diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/Permissions.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/Permissions.java index 4f5e146..a38e979 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/Permissions.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/Permissions.java @@ -91,6 +91,10 @@ public class Permissions { return checkPerm(pre + "edit", sendi); } + public boolean getLocation(CommandSender sendi) { + return checkPerm(pre + "location", sendi); + } + public boolean getPermissionGroup(CommandSender sendi, String group) { return checkPerm(pre + "group." + group, sendi); } 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 3910af4..9ae4e1b 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/Messages.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/Messages.java @@ -198,6 +198,10 @@ public class Messages { return getLang().getString(preH + "World"); } + public String getHelpLocation() { //rtp location + return getLang().getString(preH + "Location"); + } + //Usage public void getUsageRTPOther(CommandSender sendi, String cmd) { sms(sendi, getLang().getString(preU + "Player").replaceAll("%command%", cmd)); @@ -211,6 +215,10 @@ public class Messages { sms(sendi, getLang().getString(preU + "Biome").replaceAll("%command%", cmd)); } + public void getUsageLocation(CommandSender sendi, String cmd) { + sms(sendi, getLang().getString(preU + "Location").replaceAll("%command%", cmd)); + } + public void getUsageEdit(CommandSender sendi, String cmd) { sms(sendi, getLang().getString(preU + "Edit.Base").replaceAll("%command%", cmd)); } diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/WorldPlayer.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/WorldPlayer.java index 6a84e46..74fdfbd 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/WorldPlayer.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/WorldPlayer.java @@ -1,5 +1,6 @@ package me.SuperRonanCraft.BetterRTP.references.worlds; +import me.SuperRonanCraft.BetterRTP.player.commands.RTP_SETUP_TYPE; import me.SuperRonanCraft.BetterRTP.player.rtp.RTPPermissionGroup; import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE; @@ -22,15 +23,26 @@ public class WorldPlayer implements RTPWorld { private WORLD_TYPE world_type; private RTPPermissionGroup.RTPPermConfiguration config = null; private RTP_SHAPE shape; + public RTP_SETUP_TYPE setup_type = RTP_SETUP_TYPE.DEFAULT; + public String setup_name; //Economy - public boolean eco_money_taken = false; + public boolean eco_money_taken = false, setup = false; public WorldPlayer(CommandSender p, World world) { this.p = p; this.world = world; } - public void setup(RTPWorld world, List biomes, boolean personal) { + public boolean isSetup() { + return setup; + } + + public void setup(String setup_name, RTPWorld world, List biomes, boolean personal) { + if (world instanceof WorldLocations) { + setup_type = RTP_SETUP_TYPE.LOCATION; + } else if (world instanceof WorldCustom) + setup_type = RTP_SETUP_TYPE.CUSTOM_WORLD; + this.setup_name = setup_name; setUseWorldborder(world.getUseWorldborder()); setCenterX(world.getCenterX()); setCenterZ(world.getCenterZ()); @@ -64,6 +76,7 @@ public class WorldPlayer implements RTPWorld { setCenterX(border.getCenter().getBlockX()); setCenterZ(border.getCenter().getBlockZ()); } + setup = true; } private void setupGroup(RTPPermissionGroup permConfig) { diff --git a/src/main/resources/lang/chs.yml b/src/main/resources/lang/chs.yml index 6ad5378..effa472 100644 --- a/src/main/resources/lang/chs.yml +++ b/src/main/resources/lang/chs.yml @@ -46,11 +46,13 @@ Help: Test: ' &7- &e/%command% test &7- 测试传送后的插件效果。' Version: ' &7- &e/%command% version &7- 显示目前使用的插件版本。' World: ' &7- &e/%command% world <世界> [生物群系1, 生物群系2...] &7- 在其他世界随机传送。' +# Location: ' &7- &e/%command% location &7- Rtp using a specific location' Usage: Player: '&c用法&7:/%command% player <玩家> [世界] [生物群系1, 生物群系2]' World: '&c用法&7:/%command% world <世界> [生物群系1, 生物群系2...]' Biome: '&c用法&7:/%command% biome <生物群系1, 生物群系2...>' +# Location: '&cUsage&7: /%command% location ' Edit: Base: '&c用法&7:/%command% edit [参数...]' Default: '&c用法&7:/%command% edit default <值>' diff --git a/src/main/resources/lang/cht.yml b/src/main/resources/lang/cht.yml index ed08411..1479249 100644 --- a/src/main/resources/lang/cht.yml +++ b/src/main/resources/lang/cht.yml @@ -46,11 +46,13 @@ Help: # Test: ' &7- &e/%command% test &7- Test out plugin effects after a teleport without moving' # Version: ' &7- &e/%command% version &7- View currently running version' World: ' &7- &e/%command% world <世界> [生態域1, 生態域2...] &7- 在其他世界隨機傳送。' +# Location: ' &7- &e/%command% location &7- Rtp using a specific location' Usage: Player: '&cUsage&7: /%command% player <玩家> [世界] [生態域1, 生態域2]' World: '&cUsage&7: /%command% world <世界> [生態域1, 生態域2...]' Biome: '&cUsage&7: /%command% biome <生態域1, 生態域2...>' +# Location: '&cUsage&7: /%command% location ' # Edit: # Base: '&cUsage&7: /%command% edit [args...]' # Default: '&cUsage&7: /%command% edit default ' diff --git a/src/main/resources/lang/cs.yml b/src/main/resources/lang/cs.yml index 0fe2553..96c99e2 100644 --- a/src/main/resources/lang/cs.yml +++ b/src/main/resources/lang/cs.yml @@ -46,11 +46,13 @@ Help: Test: ' &7- &e/%command% test &7- Vyzkoušet efekty po teleportu bez pohybu' Version: ' &7- &e/%command% version &7- Zobrazí verzi pluginu' World: ' &7- &e/%command% world [biom1, biom2...] &7- Náhodně tě teleportuje do jiného světa' +# Location: ' &7- &e/%command% location &7- Rtp using a specific location' Usage: Player: '&cPoužití&7: /%command% player [svět] [biom1, biom2]' World: '&cPoužití&7: /%command% world [biom1, biom2...]' Biome: '&cPoužití&7: /%command% biome ' +# Location: '&cUsage&7: /%command% location ' Edit: Base: '&cPoužití&7: /%command% edit [hodnoty...]' Default: '&cPoužití&7: /%command% edit default ' diff --git a/src/main/resources/lang/du.yml b/src/main/resources/lang/du.yml index be0647c..a9c7704 100644 --- a/src/main/resources/lang/du.yml +++ b/src/main/resources/lang/du.yml @@ -46,11 +46,13 @@ Help: # Test: ' &7- &e/%command% test &7- Test out plugin effects after a teleport without moving' # Version: ' &7- &e/%command% version &7- View currently running version' World: ' &7- &e/%command% world [biome1, biome2...] &7- Random teleport in een andere wereld' +# Location: ' &7- &e/%command% location &7- Rtp using a specific location' Usage: Player: '&cUsage&7: /%command% player [world] [biome1, biome2]' World: '&cUsage&7: /%command% world [biome1, biome2...]' Biome: '&cUsage&7: /%command% biome ' +# Location: '&cUsage&7: /%command% location ' # Edit: # Base: '&cUsage&7: /%command% edit [args...]' # Default: '&cUsage&7: /%command% edit default ' diff --git a/src/main/resources/lang/en.yml b/src/main/resources/lang/en.yml index be40dbc..60f216b 100644 --- a/src/main/resources/lang/en.yml +++ b/src/main/resources/lang/en.yml @@ -46,11 +46,13 @@ Help: Test: ' &7- &e/%command% test &7- Test out plugin effects after a teleport without moving' Version: ' &7- &e/%command% version &7- View currently running version' World: ' &7- &e/%command% world [biome1, biome2...] &7- Randomly teleport in another world' + Location: ' &7- &e/%command% location &7- Rtp using a specific location' Usage: Player: '&cUsage&7: /%command% player [world] [biome1, biome2]' World: '&cUsage&7: /%command% world [biome1, biome2...]' Biome: '&cUsage&7: /%command% biome ' + Location: '&cUsage&7: /%command% location ' Edit: Base: '&cUsage&7: /%command% edit [args...]' Default: '&cUsage&7: /%command% edit default ' diff --git a/src/main/resources/lang/es.yml b/src/main/resources/lang/es.yml index 708055c..350b775 100644 --- a/src/main/resources/lang/es.yml +++ b/src/main/resources/lang/es.yml @@ -46,11 +46,13 @@ Help: Test: ' &7- &e/%command% test &7- Prueba los efectos posteriores a teletransportarse sin moverse del lugar' Version: ' &7- &e/%command% version &7- Ver la versión actualmente' World: ' &7- &e/%command% world [bioma1, bioma2...] &7- Teletransportarse aleatoriamente en otro mundo' +# Location: ' &7- &e/%command% location &7- Rtp using a specific location' Usage: Player: '&cUso&7&7: /%command% player [mundo] [bioma1, bioma2]' World: '&cUso&7&77: /%command% world [bioma1, bioma2...]' Biome: '&cUso&7: /%command% biome ' +# Location: '&cUsage&7: /%command% location ' Edit: Base: '&cUso&7: /%command% edit [args...]' Default: '&cUso&7: /%command% edit default ' diff --git a/src/main/resources/lang/fr.yml b/src/main/resources/lang/fr.yml index cb101fa..3f91309 100644 --- a/src/main/resources/lang/fr.yml +++ b/src/main/resources/lang/fr.yml @@ -46,11 +46,13 @@ Help: Test: ' &7- &e/%command% test &7- Teste les effets du plugin après une téléportation sans bouger' Version: ' &7- &e/%command% version &7- Voir la version en cours d''exécution' World: ' &7- &e/%command% world &7- Te téléporte aléatoirement dans un autre monde' +# Location: ' &7- &e/%command% location &7- Rtp using a specific location' Usage: Player: '&cUtilisation&7: /%command% player [monde]' World: '&cUtilisation&7: /%command% world ' Biome: '&cUtilisation&7: /%command% biome ' +# Location: '&cUsage&7: /%command% location ' Edit: Base: '&cUtilisation&7: /%command% edit [args...]' Default: '&cUtilisation&7: /%command% edit default ' diff --git a/src/main/resources/lang/ja.yml b/src/main/resources/lang/ja.yml index dd1ca71..411ff54 100644 --- a/src/main/resources/lang/ja.yml +++ b/src/main/resources/lang/ja.yml @@ -46,11 +46,13 @@ Help: # Test: ' &7- &e/%command% test &7- Test out plugin effects after a teleport without moving' # Version: ' &7- &e/%command% version &7- View currently running version' World: ' &7- &e/%command% world &7- 他のワールドにランダムテレポート' +# Location: ' &7- &e/%command% location &7- Rtp using a specific location' Usage: Player: '&c使い方&7: /%command% player <プレイヤー> [ワールド]' World: '&c使い方&7: /%command% world <ワールド>' Biome: '&cUsage&7: /%command% biome ' +# Location: '&cUsage&7: /%command% location ' # Edit: # Base: '&cUsage&7: /%command% edit [args...]' # Default: '&cUsage&7: /%command% edit default ' diff --git a/src/main/resources/lang/pl.yml b/src/main/resources/lang/pl.yml index 74c945c..048bb35 100644 --- a/src/main/resources/lang/pl.yml +++ b/src/main/resources/lang/pl.yml @@ -46,11 +46,13 @@ Help: Test: ' &7- &e/%command% test &7- Testuje efekty teleportacji bez ruszania się z miejsca' Version: ' &7- &e/%command% version &7- Pokaż wersję pluginu' World: ' &7- &e/%command% world [biome1, biome2...] &7- Losowo teleportuj do innego świata' +# Location: ' &7- &e/%command% location &7- Rtp using a specific location' Usage: Player: '&cUsage&7: /%command% player [world] [biome1, biome2]' World: '&cUsage&7: /%command% world [biome1, biome2...]' Biome: '&cUsage&7: /%command% biome ' +# Location: '&cUsage&7: /%command% location ' Edit: Base: '&cUsage&7: /%command% edit [args...]' Default: '&cUsage&7: /%command% edit default ' diff --git a/src/main/resources/lang/ro.yml b/src/main/resources/lang/ro.yml index 153ce6a..b90b268 100644 --- a/src/main/resources/lang/ro.yml +++ b/src/main/resources/lang/ro.yml @@ -45,11 +45,13 @@ Help: Test: ' &7- &e/%command% test &7- Testezi efectele teleportarii fara a te misca' Version: ' &7- &e/%command% version &7- Vezi versiunea curenta' World: ' &7- &e/%command% world [biome1, biome2...] &7- Te teleporteaza random in alta lume' +# Location: ' &7- &e/%command% location &7- Rtp using a specific location' Usage: Player: '&cFolosire&7: /%command% player [world] [biome1, biome2]' World: '&cFolosire&7: /%command% world [biome1, biome2...]' Biome: '&cFolosire&7: /%command% biome ' +# Location: '&cUsage&7: /%command% location ' Edit: Base: '&cFolosire&7: /%command% edit [args...]' Default: '&cFolosire&7: /%command% edit default ' diff --git a/src/main/resources/lang/ru.yml b/src/main/resources/lang/ru.yml index d524c8c..b07a067 100644 --- a/src/main/resources/lang/ru.yml +++ b/src/main/resources/lang/ru.yml @@ -46,11 +46,13 @@ Help: Test: ' &7- &e/%command% test &7- протестировать эффект плагина после телелепортации' Version: ' &7- &e/%command% version &7- отобразить текущую версию плагина' World: ' &7- &e/%command% world [biome1, biome2...] &7- телепортирует Вас в рандомное место в указанных биомах в указанный мир' +# Location: ' &7- &e/%command% location &7- Rtp using a specific location' Usage: Player: '&cUsage&7: /%command% player <игрок> [мир] [биом1, биом2]' World: '&cUsage&7: /%command% world <мир> [биом1, биом2...]' Biome: '&cUsage&7: /%command% biome <биом1, биом2...>' +# Location: '&cUsage&7: /%command% location ' Edit: Base: '&cUsage&7: /%command% edit [аргументы...]' Default: '&cUsage&7: /%command% edit default ' diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 0f7022a..ad3bcaf 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -49,6 +49,8 @@ permissions: description: RTP another player betterrtp.biome: description: RTP to specific biomes + betterrtp.location: + description: RTP using a specific location betterrtp.group.*: description: Use a permission group to rtp with different restrictions betterrtp.sign: