diff --git a/BetterRTPAddons/pom.xml b/BetterRTPAddons/pom.xml
index d0dcac2..9517092 100644
--- a/BetterRTPAddons/pom.xml
+++ b/BetterRTPAddons/pom.xml
@@ -7,7 +7,7 @@
me.SuperRonanCraft
BetterRTPAddons
jar
- 1.7
+ 1.8
1.8
@@ -108,7 +108,7 @@
me.SuperRonanCraft
BetterRTP
- 3.2.1-4
+ 3.3.0
provided
diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/AddonsHandler.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/AddonsHandler.java
index dc05da3..613e912 100644
--- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/AddonsHandler.java
+++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/AddonsHandler.java
@@ -2,6 +2,7 @@ package me.SuperRonanCraft.BetterRTPAddons;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
+import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Command;
import me.SuperRonanCraft.BetterRTPAddons.addons.commands.AddonCommands;
import me.SuperRonanCraft.BetterRTPAddons.addons.extraEffects.AddonExtraEffects;
import me.SuperRonanCraft.BetterRTPAddons.addons.flashback.AddonFlashback;
@@ -29,7 +30,7 @@ public class AddonsHandler {
//addonCount++;
}
//Main.getInstance().getLogger().log(Level.INFO, addonCount + "/" + Addons.values().length + " addons were enabled!");
- BetterRTP.getInstance().getCmd().registerCommand(cmd, false);
+ HelperRTP_Command.registerCommand(cmd, false);
}
public void unload() {
diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/commands/CommandsLoader.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/commands/CommandsLoader.java
index 7c3b504..92b4363 100644
--- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/commands/CommandsLoader.java
+++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/commands/CommandsLoader.java
@@ -65,7 +65,7 @@ enum Command_types {
TELEPORT("Teleport"),
CANCELLED("Cancelled");
- String path;
+ final String path;
Command_types(String path) {
this.path = path;
diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/magicStick/AddonMagicStick.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/magicStick/AddonMagicStick.java
index 7224e6f..fe13a83 100644
--- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/magicStick/AddonMagicStick.java
+++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/magicStick/AddonMagicStick.java
@@ -2,6 +2,7 @@ package me.SuperRonanCraft.BetterRTPAddons.addons.magicStick;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
+import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Command;
import me.SuperRonanCraft.BetterRTPAddons.Addon;
import me.SuperRonanCraft.BetterRTPAddons.Main;
import me.SuperRonanCraft.BetterRTPAddons.addons.magicStick.cmds.MagicStickCommand;
@@ -21,7 +22,7 @@ public class AddonMagicStick implements Addon {
@Override
public void load() {
- BetterRTP.getInstance().getCmd().registerCommand(cmd, false);
+ HelperRTP_Command.registerCommand(cmd, false);
events.load();
}
diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/magicStick/MagicStickEvents.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/magicStick/MagicStickEvents.java
index 6ccc255..e15e64f 100644
--- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/magicStick/MagicStickEvents.java
+++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/magicStick/MagicStickEvents.java
@@ -5,6 +5,7 @@ import me.SuperRonanCraft.BetterRTP.player.rtp.RTP;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_CancelledEvent;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent;
+import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
import me.SuperRonanCraft.BetterRTPAddons.Main;
import me.SuperRonanCraft.BetterRTPAddons.addons.magicStick.cmds.MagicStickCommand;
import me.SuperRonanCraft.BetterRTPAddons.util.Files;
@@ -64,7 +65,7 @@ public class MagicStickEvents implements Listener {
if (listener.p == e.getPlayer())
return;
//Rtp the player
- BetterRTP.getInstance().getCmd().tp(e.getPlayer(), e.getPlayer(), e.getPlayer().getWorld().getName(), null, RTP_TYPE.ADDON_MAGICSTICK);
+ HelperRTP.tp(e.getPlayer(), e.getPlayer(), e.getPlayer().getWorld().getName(), null, RTP_TYPE.ADDON_MAGICSTICK);
if (this.take)
teleportingPlayers.add(new PlayerListener(e.getPlayer()));
}
diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/AddonParty.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/AddonParty.java
index 90151fc..0a04de2 100644
--- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/AddonParty.java
+++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/AddonParty.java
@@ -2,6 +2,7 @@ package me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
+import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Command;
import me.SuperRonanCraft.BetterRTPAddons.Addon;
import me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp.cmds.PartyCommand;
import me.SuperRonanCraft.BetterRTPAddons.util.Files;
@@ -27,7 +28,7 @@ public class AddonParty implements Addon {
@Override
public void load() {
instance = this;
- BetterRTP.getInstance().getCmd().registerCommand(cmd, false);
+ HelperRTP_Command.registerCommand(cmd, false);
PluginManager pm = BetterRTP.getInstance().getServer().getPluginManager();
pm.registerEvents(handler, BetterRTP.getInstance());
}
diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/PartyHandler.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/PartyHandler.java
index b89e30c..5bb0f9c 100644
--- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/PartyHandler.java
+++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/partyrtp/PartyHandler.java
@@ -1,9 +1,7 @@
package me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_SettingUpEvent;
-import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportEvent;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent;
-import me.SuperRonanCraft.BetterRTP.references.systems.playerdata.PlayerData;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/AddonPortals.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/AddonPortals.java
index a6189cc..41e4d2d 100644
--- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/AddonPortals.java
+++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/AddonPortals.java
@@ -1,11 +1,11 @@
package me.SuperRonanCraft.BetterRTPAddons.addons.portals;
-import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
+import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Command;
import me.SuperRonanCraft.BetterRTPAddons.Addon;
import me.SuperRonanCraft.BetterRTPAddons.addons.portals.cmds.PortalsCommand;
-import me.SuperRonanCraft.BetterRTPAddons.util.Files;
import me.SuperRonanCraft.BetterRTPAddons.addons.portals.region.PortalsCache;
+import me.SuperRonanCraft.BetterRTPAddons.util.Files;
//Create portals for rtp'ing
public class AddonPortals implements Addon {
@@ -23,7 +23,7 @@ public class AddonPortals implements Addon {
@Override
public void load() {
- BetterRTP.getInstance().getCmd().registerCommand(cmd, false);
+ HelperRTP_Command.registerCommand(cmd, false);
database.load(PortalsDatabase.Columns.values());
events.load();
portalsCache.load();
diff --git a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/PortalsEvents.java b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/PortalsEvents.java
index 16cef8d..3b9dac1 100644
--- a/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/PortalsEvents.java
+++ b/BetterRTPAddons/src/main/java/me/SuperRonanCraft/BetterRTPAddons/addons/portals/PortalsEvents.java
@@ -4,6 +4,7 @@ import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_CancelledEvent;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent;
+import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
import me.SuperRonanCraft.BetterRTPAddons.Main;
import me.SuperRonanCraft.BetterRTPAddons.addons.portals.region.PortalsRegionInfo;
import me.SuperRonanCraft.BetterRTPAddons.util.Files;
@@ -56,7 +57,7 @@ public class PortalsEvents implements Listener {
if (ploc.getBlockY() <= Math.max(loc1.getBlockY(), loc2.getBlockY())
&& ploc.getBlockY() >= Math.min(loc1.getBlockY(), loc2.getBlockY())) {
playerPortaling.put(e.getPlayer(), portal);
- BetterRTP.getInstance().getCmd().tp(e.getPlayer(), e.getPlayer(),
+ HelperRTP.tp(e.getPlayer(), e.getPlayer(),
portal.getWorld(), null, RTP_TYPE.ADDON_PORTAL, ignoreCooldown, ignoreDelay);
return;
}
diff --git a/pom.xml b/pom.xml
index 3ef6a06..235cd37 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,7 @@
me.SuperRonanCraft
BetterRTP
jar
- 3.2.2-2
+ 3.3.0
1.8
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/Commands.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/Commands.java
index 3a98181..566f0c1 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/Commands.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/Commands.java
@@ -1,6 +1,7 @@
package me.SuperRonanCraft.BetterRTP.player.commands;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
+import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownData;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownHandler;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTPSetupInformation;
@@ -19,7 +20,6 @@ import java.util.List;
public class Commands {
private final BetterRTP pl;
- private int delayTimer;
public List commands = new ArrayList<>();
public Commands(BetterRTP pl) {
@@ -28,7 +28,6 @@ public class Commands {
public void load() {
FileBasics.FILETYPE config = FileBasics.FILETYPE.CONFIG;
- delayTimer = config.getInt("Settings.Delay.Time");
commands.clear();
for (RTPCommandType cmd : RTPCommandType.values())
registerCommand(cmd.getCmd(), false);
@@ -55,7 +54,7 @@ public class Commands {
}
pl.getText().getInvalid(sendi, label);
} else
- rtp(sendi, label, null, null);
+ HelperRTP.rtp(sendi, label, null, null);
} else
pl.getText().getNoPermission(sendi);
}
@@ -80,127 +79,4 @@ public class Commands {
}
return list;
}
-
- public void addBiomes(List list, String[] args) {
- try {
- for (Biome b : Biome.values())
- if (b.name().toUpperCase().replaceAll("minecraft:", "").startsWith(args[args.length - 1].toUpperCase()))
- list.add(b.name().replaceAll("minecraft:", ""));
- } catch (NoSuchMethodError e) {
- //Not in 1.14.X
- }
- }
-
- public void rtp(CommandSender sendi, String cmd, String world, List biomes) {
- if (sendi instanceof Player)
- tp((Player) sendi, sendi, world, biomes, RTP_TYPE.COMMAND);
- else
- msgNotPlayer(sendi, cmd);
- }
-
- public void msgNotPlayer(CommandSender sendi, String cmd) {
- sendi.sendMessage(pl.getText().colorPre("Must be a player to use this command! Try '/" + cmd + " help'"));
- }
-
- //Custom biomes
- public List getBiomes(String[] args, int start, CommandSender sendi) {
- List biomes = new ArrayList<>();
- boolean error_sent = false;
- if (BetterRTP.getInstance().getPerms().getBiome(sendi))
- for (int i = start; i < args.length; i++) {
- String str = args[i];
- try {
- biomes.add(Biome.valueOf(str.replaceAll(",", "").toUpperCase()).name());
- } catch (Exception e) {
- if (!error_sent) {
- pl.getText().getOtherBiome(sendi, str);
- error_sent = true;
- }
- }
- }
- return biomes;
- }
-
- public void tp(Player player, CommandSender sendi, String world, List biomes, RTP_TYPE rtpType) {
- 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) {
- 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;
- if (!ignoreDelay && sendi == player) //Forced?
- if (pl.getSettings().delayEnabled && delayTimer > 0) //Delay enabled?
- if (!pl.getPerms().getBypassDelay(player)) //Can bypass?
- delay = true;
- //player.sendMessage("Cooldown applies: " + cooldownApplies(sendi, player));
- RTPSetupInformation setup_info = new RTPSetupInformation(world, sendi, player, true,
- biomes, delay, rtpType, locations, !ignoreCooldown && cooldownApplies(sendi, player)); //ignore cooldown or else
- pl.getRTP().start(setup_info);
- }
- }
- }
-
- private boolean checkRTPing(Player player, CommandSender sendi) {
- if (getPl().getpInfo().getRtping().containsKey(player) && getPl().getpInfo().getRtping().get(player)) {
- pl.getText().getAlready(sendi);
- return false;
- }
- return true;
- }
-
- private boolean checkCooldown(CommandSender sendi, Player player) {
- if (cooldownApplies(sendi, player)) { //Bypassing/Forced?
- CooldownHandler cooldownHandler = getPl().getCooldowns();
- if (!cooldownHandler.isLoaded() || !cooldownHandler.loadedPlayer(player)) { //Cooldowns have yet to download
- pl.getText().getCooldown(sendi, String.valueOf(-1L));
- return false;
- }
- //Cooldown Data
- CooldownData cooldownData = getPl().getCooldowns().getPlayer(player);
- if (cooldownData != null) {
- if (cooldownHandler.locked(cooldownData)) { //Infinite cooldown (locked)
- pl.getText().getNoPermission(sendi);
- return false;
- } else { //Normal cooldown
- long Left = cooldownHandler.timeLeft(cooldownData);
- if (pl.getSettings().delayEnabled && !pl.getPerms().getBypassDelay(sendi))
- Left = Left + delayTimer;
- if (Left > 0) {
- //Still cooling down
- pl.getText().getCooldown(sendi, String.valueOf(Left));
- return false;
- } else {
- //Reset timer, but allow them to tp
- //cooldowns.add(id);
- return true;
- }
- }
- } //else
- //cooldowns.add(id);
- }
- return true;
- }
-
- private boolean cooldownOverride(CommandSender sendi, Player player) {
- return sendi != player || pl.getPerms().getBypassCooldown(player);
- }
-
- private boolean cooldownEnabled() {
- return getPl().getCooldowns().isEnabled();
- }
-
- private boolean cooldownApplies(CommandSender sendi, Player player) {
- return cooldownEnabled() && !cooldownOverride(sendi, player);
- }
-
- private BetterRTP getPl() {
- return BetterRTP.getInstance();
- }
}
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 1cf716f..80277df 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,8 @@ 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.helpers.HelperRTP;
+import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Info;
import org.bukkit.command.CommandSender;
import java.util.ArrayList;
@@ -18,7 +20,7 @@ public class CmdBiome implements RTPCommand, RTPCommandHelpable {
//rtp biome
public void execute(CommandSender sendi, String label, String[] args) {
if (args.length >= 2)
- BetterRTP.getInstance().getCmd().rtp(sendi, label, null, BetterRTP.getInstance().getCmd().getBiomes(args, 1, sendi));
+ HelperRTP.rtp(sendi, label, null, HelperRTP_Info.getBiomes(args, 1, sendi));
else
usage(sendi, label);
}
@@ -26,7 +28,7 @@ public class CmdBiome implements RTPCommand, RTPCommandHelpable {
public List tabComplete(CommandSender sendi, String[] args) {
List list = new ArrayList<>();
if (args.length == 2)
- getCmd().addBiomes(list, args);
+ HelperRTP_Info.addBiomes(list, args);
return list;
}
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 2903536..32dd9bd 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.helpers.HelperRTP;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.RTPWorld;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldLocations;
import org.bukkit.Bukkit;
@@ -28,7 +29,7 @@ public class CmdLocation implements RTPCommand, RTPCommandHelpable {
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,
+ HelperRTP.tp(p, sendi, null, null, RTP_TYPE.COMMAND,
false, false, (WorldLocations) getLocations().get(location_name));
return;
}
@@ -41,7 +42,7 @@ public class CmdLocation implements RTPCommand, RTPCommandHelpable {
if (p != null && p.isOnline()) {
for (String location_name : getLocations().keySet()) {
if (location_name.equalsIgnoreCase(args[1].toLowerCase())) {
- BetterRTP.getInstance().getCmd().tp(p, sendi, null, null, RTP_TYPE.COMMAND,
+ HelperRTP.tp(p, sendi, null, null, RTP_TYPE.COMMAND,
false, false, (WorldLocations) getLocations().get(location_name));
return;
}
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 ada59e3..b0682b0 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,8 @@ 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.helpers.HelperRTP;
+import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Info;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.command.CommandSender;
@@ -24,7 +26,7 @@ public class CmdPlayer implements RTPCommand, RTPCommandHelpable {
public void execute(CommandSender sendi, String label, String[] args) {
if (args.length == 2)
if (Bukkit.getPlayer(args[1]) != null && Bukkit.getPlayer(args[1]).isOnline())
- getCmd().tp(Bukkit.getPlayer(args[1]), sendi, Bukkit.getPlayer(args[1]).getWorld().getName(), null, RTP_TYPE.FORCED);
+ HelperRTP.tp(Bukkit.getPlayer(args[1]), sendi, Bukkit.getPlayer(args[1]).getWorld().getName(), null, RTP_TYPE.FORCED);
else if (Bukkit.getPlayer(args[1]) != null)
BetterRTP.getInstance().getText().getNotOnline(sendi, args[1]);
else
@@ -33,7 +35,7 @@ public class CmdPlayer implements RTPCommand, RTPCommandHelpable {
if (Bukkit.getPlayer(args[1]) != null && Bukkit.getPlayer(args[1]).isOnline()) {
World world = Bukkit.getWorld(args[2]);
if (world != null) {
- getCmd().tp(Bukkit.getPlayer(args[1]), sendi, world.getName(), getCmd().getBiomes(args, 3, sendi), RTP_TYPE.FORCED);
+ HelperRTP.tp(Bukkit.getPlayer(args[1]), sendi, world.getName(), HelperRTP_Info.getBiomes(args, 3, sendi), RTP_TYPE.FORCED);
} else
BetterRTP.getInstance().getText().getNotExist(sendi, args[2]);
} else if (Bukkit.getPlayer(args[1]) != null)
@@ -56,7 +58,7 @@ public class CmdPlayer implements RTPCommand, RTPCommandHelpable {
list.add(w.getName());
} else if (args.length > 3) {
if (RTPCommandType.BIOME.getCmd().permission(sendi))
- getCmd().addBiomes(list, args);
+ HelperRTP_Info.addBiomes(list, args);
}
return list;
}
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 bf1016f..d481ef0 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
@@ -19,7 +19,7 @@ public class CmdSettings implements RTPCommand, RTPCommandHelpable {
if (sendi instanceof Player)
BetterRTP.getInstance().getInvs().getInv(RTP_INV_SETTINGS.MAIN).show((Player) sendi);
else
- BetterRTP.getInstance().getCmd().msgNotPlayer(sendi, label);
+ BetterRTP.getInstance().getText().getNotPlayer(sendi, label);
}
public List tabComplete(CommandSender sendi, String[] args) {
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 fd0bac9..5fcc3f9 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
@@ -1,10 +1,11 @@
package me.SuperRonanCraft.BetterRTP.player.commands.types;
-import me.SuperRonanCraft.BetterRTP.player.commands.Commands;
-import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
-import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandType;
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.helpers.HelperRTP;
+import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Info;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.command.CommandSender;
@@ -21,7 +22,7 @@ public class CmdWorld implements RTPCommand, RTPCommandHelpable {
//rtp world
public void execute(CommandSender sendi, String label, String[] args) {
if (args.length >= 2)
- BetterRTP.getInstance().getCmd().rtp(sendi, label, args[1], BetterRTP.getInstance().getCmd().getBiomes(args, 2, sendi));
+ HelperRTP.rtp(sendi, label, args[1], HelperRTP_Info.getBiomes(args, 2, sendi));
else
usage(sendi, label);
}
@@ -37,7 +38,7 @@ public class CmdWorld implements RTPCommand, RTPCommandHelpable {
}
} else if (args.length >= 3) {
if (RTPCommandType.BIOME.getCmd().permission(sendi))
- getCmd().addBiomes(list, args);
+ HelperRTP_Info.addBiomes(list, args);
}
return list;
}
@@ -50,10 +51,6 @@ public class CmdWorld implements RTPCommand, RTPCommandHelpable {
BetterRTP.getInstance().getText().getUsageWorld(sendi, label);
}
- private Commands getCmd() {
- return BetterRTP.getInstance().getCmd();
- }
-
@Override
public String getHelp() {
return BetterRTP.getInstance().getText().getHelpWorld();
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 b3091f2..54b271f 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Join.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Join.java
@@ -4,6 +4,7 @@ import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
import me.SuperRonanCraft.BetterRTP.references.Updater;
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
+import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerJoinEvent;
@@ -30,7 +31,7 @@ public class Join {
//RTP on first join
private void rtpOnFirstJoin(Player p) {
if (getPl().getSettings().rtpOnFirstJoin_Enabled && !p.hasPlayedBefore())
- getPl().getCmd().tp(p, Bukkit.getConsoleSender(), getPl().getSettings().rtpOnFirstJoin_World, null, RTP_TYPE.JOIN); //Console is sender to override delays
+ HelperRTP.tp(p, Bukkit.getConsoleSender(), getPl().getSettings().rtpOnFirstJoin_World, null, RTP_TYPE.JOIN); //Console is sender to override delays
}
private BetterRTP getPl() {
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/customEvents/RTP_FindLocationEvent.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/customEvents/RTP_FindLocationEvent.java
index 6711499..a0c70ba 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/customEvents/RTP_FindLocationEvent.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/customEvents/RTP_FindLocationEvent.java
@@ -4,6 +4,7 @@ import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.RTPWorld;
import org.bukkit.Location;
import org.bukkit.entity.Player;
+//Called when an rtp has found a valid location
public class RTP_FindLocationEvent extends RTPEvent {
Player p;
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 9ae4e1b..0a5ca65 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/Messages.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/Messages.java
@@ -247,4 +247,8 @@ public class Messages {
public void error(CommandSender sendi) {
sms(sendi, "&cERROR &7Seems like your Administrator did not update their language file!");
}
+
+ public void getNotPlayer(CommandSender sendi, String cmd) {
+ sms(sendi, "Must be a player to use this command! Try '/" + cmd + " help'");
+ }
}
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP.java
new file mode 100644
index 0000000..ca57855
--- /dev/null
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP.java
@@ -0,0 +1,105 @@
+package me.SuperRonanCraft.BetterRTP.references.helpers;
+
+import me.SuperRonanCraft.BetterRTP.BetterRTP;
+import me.SuperRonanCraft.BetterRTP.player.rtp.RTPSetupInformation;
+import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
+import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownData;
+import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownHandler;
+import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldLocations;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+import java.util.List;
+
+public class HelperRTP {
+
+ public static void rtp(CommandSender sendi, String cmd, String world, List biomes) {
+ if (sendi instanceof Player)
+ HelperRTP.tp((Player) sendi, sendi, world, biomes, RTP_TYPE.COMMAND);
+ else
+ BetterRTP.getInstance().getText().getNotPlayer(sendi, cmd);
+ }
+
+ public static void tp(Player player, CommandSender sendi, String world, List biomes, RTP_TYPE rtpType) {
+ tp(player, sendi, world, biomes, rtpType, false, false);
+ }
+
+ public static void tp(Player player, CommandSender sendi, String world, List biomes, RTP_TYPE rtpType,
+ boolean ignoreCooldown, boolean ignoreDelay) {
+ tp(player, sendi, world, biomes, rtpType, ignoreCooldown, ignoreDelay, null);
+ }
+
+ public static 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;
+ if (!ignoreDelay && sendi == player) //Forced?
+ if (getPl().getSettings().delayEnabled && getPl().getSettings().delayTime > 0) //Delay enabled?
+ if (!getPl().getPerms().getBypassDelay(player)) //Can bypass?
+ delay = true;
+ //player.sendMessage("Cooldown applies: " + cooldownApplies(sendi, player));
+ 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);
+ }
+ }
+ }
+
+ private static boolean checkRTPing(Player player, CommandSender sendi) {
+ if (getPl().getpInfo().getRtping().containsKey(player) && getPl().getpInfo().getRtping().get(player)) {
+ getPl().getText().getAlready(sendi);
+ return false;
+ }
+ return true;
+ }
+
+ private static boolean checkCooldown(CommandSender sendi, Player player) {
+ 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));
+ return false;
+ }
+ //Cooldown Data
+ CooldownData cooldownData = getPl().getCooldowns().getPlayer(player);
+ if (cooldownData != null) {
+ if (cooldownHandler.locked(cooldownData)) { //Infinite cooldown (locked)
+ getPl().getText().getNoPermission(sendi);
+ return false;
+ } else { //Normal cooldown
+ long Left = cooldownHandler.timeLeft(cooldownData);
+ if (getPl().getSettings().delayEnabled && !getPl().getPerms().getBypassDelay(sendi))
+ Left = Left + getPl().getSettings().delayTime;
+ 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
+ //cooldowns.add(id);
+ }
+ return true;
+ }
+
+ private static boolean cooldownOverride(CommandSender sendi, Player player) {
+ return sendi != player || getPl().getPerms().getBypassCooldown(player);
+ }
+
+ private static boolean cooldownEnabled() {
+ return getPl().getCooldowns().isEnabled();
+ }
+
+ private static boolean cooldownApplies(CommandSender sendi, Player player) {
+ return cooldownEnabled() && !cooldownOverride(sendi, player);
+ }
+
+ private static BetterRTP getPl() {
+ return BetterRTP.getInstance();
+ }
+}
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP_Command.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP_Command.java
new file mode 100644
index 0000000..23d7ffe
--- /dev/null
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP_Command.java
@@ -0,0 +1,12 @@
+package me.SuperRonanCraft.BetterRTP.references.helpers;
+
+import me.SuperRonanCraft.BetterRTP.BetterRTP;
+import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
+
+public class HelperRTP_Command {
+
+ public static void registerCommand(RTPCommand cmd, boolean forced) {
+ BetterRTP.getInstance().getCmd().registerCommand(cmd, forced);
+ }
+
+}
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
new file mode 100644
index 0000000..bfbfcc0
--- /dev/null
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP_Info.java
@@ -0,0 +1,41 @@
+package me.SuperRonanCraft.BetterRTP.references.helpers;
+
+import me.SuperRonanCraft.BetterRTP.BetterRTP;
+import org.bukkit.block.Biome;
+import org.bukkit.command.CommandSender;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class HelperRTP_Info {
+
+ //Custom biomes
+ public static List getBiomes(String[] args, int start, CommandSender sendi) {
+ List biomes = new ArrayList<>();
+ boolean error_sent = false;
+ if (BetterRTP.getInstance().getPerms().getBiome(sendi))
+ for (int i = start; i < args.length; i++) {
+ String str = args[i];
+ try {
+ biomes.add(Biome.valueOf(str.replaceAll(",", "").toUpperCase()).name());
+ } catch (Exception e) {
+ if (!error_sent) {
+ BetterRTP.getInstance().getText().getOtherBiome(sendi, str);
+ error_sent = true;
+ }
+ }
+ }
+ return biomes;
+ }
+
+ public static void addBiomes(List list, String[] args) {
+ try {
+ for (Biome b : Biome.values())
+ if (b.name().toUpperCase().replaceAll("minecraft:", "").startsWith(args[args.length - 1].toUpperCase()))
+ list.add(b.name().replaceAll("minecraft:", ""));
+ } catch (NoSuchMethodError e) {
+ //Not in 1.14.X
+ }
+ }
+
+}
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 4843798..47e59a8 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/settings/Settings.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/settings/Settings.java
@@ -7,6 +7,7 @@ public class Settings {
public boolean debug;
public boolean delayEnabled;
+ public int delayTime;
public boolean rtpOnFirstJoin_Enabled;
public String rtpOnFirstJoin_World;
public boolean rtpOnFirstJoin_SetAsRespawn;
@@ -20,6 +21,7 @@ public class Settings {
FileBasics.FILETYPE config = FileBasics.FILETYPE.CONFIG;
debug = config.getBoolean("Settings.Debugger");
delayEnabled = config.getBoolean("Settings.Delay.Enabled");
+ delayTime = config.getInt("Settings.Delay.Time");
rtpOnFirstJoin_Enabled = config.getBoolean("Settings.RtpOnFirstJoin.Enabled");
rtpOnFirstJoin_World = config.getString("Settings.RtpOnFirstJoin.World");
rtpOnFirstJoin_SetAsRespawn = config.getBoolean("Settings.RtpOnFirstJoin.SetAsRespawn");