From ed0d5f589ba8efe1038aad3812d7f91fff68ecfe Mon Sep 17 00:00:00 2001 From: SuperRonanCraft Date: Thu, 1 Apr 2021 19:01:11 -0400 Subject: [PATCH] locations useworldborder fix + command --- .../BetterRTP/player/commands/Commands.java | 11 ++++++++-- .../player/commands/types/CmdLocation.java | 19 ++++++++++-------- .../BetterRTP/player/rtp/RTP.java | 8 ++++++++ .../player/rtp/RTPSetupInformation.java | 20 ++++++++----------- .../references/worlds/WorldLocations.java | 11 +++++++++- 5 files changed, 46 insertions(+), 23 deletions(-) diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/Commands.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/Commands.java index 8e2b38d..8ad7af9 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/Commands.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/Commands.java @@ -6,6 +6,7 @@ import me.SuperRonanCraft.BetterRTP.player.rtp.RTPSetupInformation; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE; import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_CommandEvent; import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; +import me.SuperRonanCraft.BetterRTP.references.worlds.WorldLocations; import org.bukkit.Bukkit; import org.bukkit.block.Biome; import org.bukkit.command.CommandSender; @@ -141,7 +142,13 @@ public class Commands { this.tp(player, sendi, world, biomes, rtpType, false, false); } - public void tp(Player player, CommandSender sendi, String world, List biomes, RTP_TYPE rtpType, boolean ignoreCooldown, boolean ignoreDelay) { + public void tp(Player player, CommandSender sendi, String world, List biomes, RTP_TYPE rtpType, + boolean ignoreCooldown, boolean ignoreDelay) { + this.tp(player, sendi, world, biomes, rtpType, ignoreCooldown, ignoreDelay, null); + } + + public void tp(Player player, CommandSender sendi, String world, List biomes, RTP_TYPE rtpType, + boolean ignoreCooldown, boolean ignoreDelay, WorldLocations locations) { if (checkRTPing(player, sendi)) { //Is RTP'ing if (ignoreCooldown || checkCooldown(sendi, player)) { //Is Cooling down boolean delay = false; @@ -149,7 +156,7 @@ public class Commands { if (pl.getSettings().delayEnabled && delayTimer > 0) //Delay enabled? if (!pl.getPerms().getBypassDelay(player)) //Can bypass? delay = true; - RTPSetupInformation setup_info = new RTPSetupInformation(world, sendi, player, true, biomes, delay, rtpType, null); + RTPSetupInformation setup_info = new RTPSetupInformation(world, sendi, player, true, biomes, delay, rtpType, locations); pl.getRTP().start(setup_info); } } diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdLocation.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdLocation.java index 31892a2..6633e24 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 @@ -26,15 +26,18 @@ public class CmdLocation implements RTPCommand, RTPCommandHelpable { //rtp location public void execute(CommandSender sendi, String label, String[] args) { if (args.length == 2) { - for (String location_name : getLocations().keySet()) { - if (location_name.equalsIgnoreCase(args[1].toLowerCase())) { - //LOCATION RTP CODE - //********************************** - //********************************** - return; + if (sendi instanceof Player) { + for (String location_name : getLocations().keySet()) { + if (location_name.equalsIgnoreCase(args[1].toLowerCase())) { + Player p = (Player) sendi; + BetterRTP.getInstance().getCmd().tp(p, sendi, null, null, RTP_TYPE.COMMAND, + false, false, (WorldLocations) getLocations().get(location_name)); + return; + } } - } - usage(sendi, label); + usage(sendi, label); + } else + sendi.sendMessage("Console is not able to execute this command! Try '/rtp help'"); } else usage(sendi, label); } 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 bc1db52..230f577 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP.java @@ -211,6 +211,14 @@ public class RTP { Player p = setup_info.player; CommandSender sendi = setup_info.sender; + // Locations + if (setup_info.location != null) { + WorldLocations location = setup_info.location; + world_name = location.getWorld().getName(); + setup_info.world = world_name; + setup_info.biomes = location.getBiomes(); + } + // Check overrides if (world_name == null) { world_name = p.getWorld().getName(); diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPSetupInformation.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPSetupInformation.java index 77eef18..a567e88 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPSetupInformation.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPSetupInformation.java @@ -1,6 +1,7 @@ package me.SuperRonanCraft.BetterRTP.player.rtp; import me.SuperRonanCraft.BetterRTP.references.worlds.WorldLocations; +import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -18,18 +19,7 @@ public class RTPSetupInformation { public RTP_TYPE rtp_type; public RTPSetupInformation(String world, CommandSender sender, Player player, boolean personalized) { - this.world = world; - this.sender = sender; - this.player = player; - this.personalized = personalized; - } - - public RTPSetupInformation(String world, CommandSender sender, Player player, boolean personalized, List biomes) { - this.world = world; - this.sender = sender; - this.player = player; - this.personalized = personalized; - this.biomes = biomes; + this(world, sender, player, personalized, null, false, null, null); } public RTPSetupInformation(String world, CommandSender sender, Player player, boolean personalized, List biomes, @@ -42,5 +32,11 @@ public class RTPSetupInformation { this.delay = delay; this.rtp_type = rtp_type; this.location = location; + if (this.world == null) { + if (player != null) + this.world = player.getWorld().getName(); + else if (this.location != null) + this.world = this.location.getWorld().getName(); + } } } diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/WorldLocations.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/WorldLocations.java index a910db7..5655003 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/WorldLocations.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/worlds/WorldLocations.java @@ -94,6 +94,15 @@ public class WorldLocations implements RTPWorld, RTPWorld_Defaulted { } } } + if (test.get("UseWorldBorder") != null) { + if (test.get("UseWorldBorder").getClass() == Boolean.class) { + try { + this.useWorldborder = Boolean.parseBoolean(test.get("UseWorldBorder").toString()); + } catch (Exception e) { + //No UseWorldBorder + } + } + } } } } @@ -109,7 +118,7 @@ public class WorldLocations implements RTPWorld, RTPWorld_Defaulted { @Override public boolean getUseWorldborder() { - return false;//useWorldborder; + return useWorldborder; } @Override