diff --git a/pom.xml b/pom.xml
index 29f27a9..35be923 100644
--- a/pom.xml
+++ b/pom.xml
@@ -163,6 +163,11 @@
dmulloy2-repo
https://repo.dmulloy2.net/nexus/repository/public/
+
+
+ essentials-releases
+ https://repo.essentialsx.net/releases/
+
@@ -310,5 +315,12 @@
1.18.22
provided
+
+
+ net.essentialsx
+ EssentialsX
+ 2.19.0
+ provided
+
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 8917c7b..f841e1a 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/RTPCommandType.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/RTPCommandType.java
@@ -12,6 +12,7 @@ public enum RTPCommandType {
LOCATION(new CmdLocation()),
//SETTINGS(new CmdSettings(), true),
TEST(new CmdTest(), true),
+ Queue(new CmdQueue(), true),
VERSION(new CmdVersion()),
WORLD(new CmdWorld());
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 bcbe292..77ed566 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
@@ -6,6 +6,7 @@ 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.QueueHandler;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldDefault;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldPlayer;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
@@ -142,6 +143,7 @@ public class CmdInfo implements RTPCommand, RTPCommandHelpable {
info.add("&7- &eBiomes&7: &f" + _rtpworld.getBiomes().toString());
info.add("&7- &6Shape&7: &f" + _rtpworld.getShape().toString() + getInfo(_rtpworld, worldDefault, "shape"));
info.add("&7- &ePermission Group&7: " + (_rtpworld.getConfig() != null ? "&a" + _rtpworld.getConfig().getGroupName() : "&cN/A"));
+ info.add("&7- &6Queue Available&7: " + QueueHandler.getApplicable(_rtpworld).size());
}
}
return info;
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdQueue.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdQueue.java
new file mode 100644
index 0000000..a819aa4
--- /dev/null
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/commands/types/CmdQueue.java
@@ -0,0 +1,85 @@
+package me.SuperRonanCraft.BetterRTP.player.commands.types;
+
+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.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.QueueData;
+import me.SuperRonanCraft.BetterRTP.references.rtpinfo.QueueHandler;
+import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldDefault;
+import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldPlayer;
+import org.bukkit.Bukkit;
+import org.bukkit.Location;
+import org.bukkit.World;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+import org.bukkit.potion.PotionEffectType;
+import xyz.xenondevs.particle.ParticleEffect;
+
+import java.sql.Time;
+import java.util.ArrayList;
+import java.util.List;
+
+public class CmdQueue implements RTPCommand, RTPCommandHelpable {
+
+ public String getName() {
+ return "queue";
+ }
+
+ public void execute(CommandSender sendi, String label, String[] args) {
+ if (args.length > 1 && Bukkit.getWorld(args[1]) != null) {
+ sendInfo(sendi, queueGetWorld(Bukkit.getWorld(args[1])));
+ } else
+ queueWorlds(sendi);
+ }
+
+ @Override
+ public String getHelp() {
+ return null;
+ }
+
+ //World
+ public static void sendInfo(CommandSender sendi, List list) { //Send info
+ list.add(0, "&e&m-----&6 BetterRTP &8| Queue &e&m-----");
+ list.forEach(str ->
+ list.set(list.indexOf(str), BetterRTP.getInstance().getText().color(str)));
+ sendi.sendMessage(list.toArray(new String[0]));
+ }
+
+ private void queueWorlds(CommandSender sendi) { //All worlds
+ List info = new ArrayList<>();
+ for (World w : Bukkit.getWorlds())
+ info.addAll(queueGetWorld(w));
+ info.add("&eTotal of &a%amount% generated locations".replace("%amount%", String.valueOf(QueueHandler.getCount())));
+ sendInfo(sendi, info);
+ }
+
+ public static List queueGetWorld(World world) { //Specific world
+ List info = new ArrayList<>();
+ info.add("&eWorld: &6" + world.getName());
+ for (QueueData queue : QueueHandler.getApplicable(world)) {
+ String str = "&7x= &b%x, &7z= &b%z";
+ Location loc = queue.getLocation();
+ str = str.replace("%x", String.valueOf(loc.getBlockX())).replace("%z", String.valueOf(loc.getBlockZ()));
+ info.add(str);
+ }
+ return info;
+ }
+
+ public List tabComplete(CommandSender sendi, String[] args) {
+ List info = new ArrayList<>();
+ if (args.length == 2) {
+ for (World world : Bukkit.getWorlds())
+ if (world.getName().startsWith(args[1]))
+ info.add(world.getName());
+ }
+ return info;
+ }
+
+ public boolean permission(CommandSender sendi) {
+ return PermissionNode.ADMIN.check(sendi);
+ }
+}
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 e08e57d..53cc80e 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
@@ -33,7 +33,7 @@ public class CmdTest implements RTPCommand, RTPCommandHelpable {
@Override
public boolean permission(CommandSender sendi) {
- return PermissionNode.TEST.check(sendi);
+ return PermissionNode.ADMIN.check(sendi);
}
@Override
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Click.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Click.java
index a0a9b3c..c0805ab 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Click.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Click.java
@@ -10,14 +10,14 @@ import org.bukkit.event.inventory.InventoryClickEvent;
public class Click {
- public void click(InventoryClickEvent e) {
+ static void click(InventoryClickEvent e) {
if (!validClick(e))
return;
e.setCancelled(true);
handler(e);
}
- private void handler(InventoryClickEvent e) {
+ static private void handler(InventoryClickEvent e) {
try {
Player p = (Player) e.getWhoClicked();
PlayerData data = HelperPlayer.getData(p);
@@ -28,7 +28,7 @@ public class Click {
}
}
- private boolean validClick(InventoryClickEvent e) {
+ static private boolean validClick(InventoryClickEvent e) {
//Not a player, or Not our inventory
if (!(e.getWhoClicked() instanceof Player) || e.isCancelled())
return false;
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Custom.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Custom.java
new file mode 100644
index 0000000..8cfdd2b
--- /dev/null
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Custom.java
@@ -0,0 +1,12 @@
+package me.SuperRonanCraft.BetterRTP.player.events;
+
+import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent;
+import me.SuperRonanCraft.BetterRTP.references.depends.DepEssentials;
+
+public class Custom {
+
+ static void postRTP(RTP_TeleportPostEvent e) {
+ DepEssentials.setBackLocation(e.getPlayer(), e.getOldLocation());
+ }
+
+}
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/EventListener.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/EventListener.java
index 4832c6b..7f35108 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/EventListener.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/EventListener.java
@@ -1,6 +1,7 @@
package me.SuperRonanCraft.BetterRTP.player.events;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
+import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.SignChangeEvent;
@@ -12,11 +13,7 @@ import org.bukkit.event.player.PlayerTeleportEvent;
import org.bukkit.plugin.PluginManager;
public class EventListener implements Listener {
- private final Join join = new Join();
- private final Leave leave = new Leave();
private final Interact interact = new Interact();
- private final Click click = new Click();
- //private final PluginEnable pEnable = new PluginEnable();
public void registerEvents(BetterRTP pl) {
PluginManager pm = pl.getServer().getPluginManager();
@@ -28,33 +25,28 @@ public class EventListener implements Listener {
}
@EventHandler
- @SuppressWarnings("unused")
private void onLeave(PlayerQuitEvent e) {
- leave.event(e);
+ Leave.event(e);
}
@EventHandler
- @SuppressWarnings("unused")
private void onJoin(PlayerJoinEvent e) {
- join.event(e);
+ Join.event(e);
}
@EventHandler
- @SuppressWarnings("unused")
private void onInteract(PlayerInteractEvent e) {
interact.event(e);
}
@EventHandler
- @SuppressWarnings("unused")
private void interact(SignChangeEvent e) {
interact.createSign(e);
}
@EventHandler
- @SuppressWarnings("unused")
private void click(InventoryClickEvent e) {
- click.click(e);
+ Click.click(e);
}
@EventHandler
@@ -62,8 +54,8 @@ public class EventListener implements Listener {
Teleport.tpEvent(e);
}
- /*@EventHandler
- private void enablePlugin(PluginEnableEvent e) {
- pEnable.enabled(e);
- }*/
+ @EventHandler
+ private void rtpPost(RTP_TeleportPostEvent e) {
+ Custom.postRTP(e);
+ }
}
\ No newline at end of file
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 f09b307..380657b 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Interact.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Interact.java
@@ -61,7 +61,7 @@ class Interact {
BetterRTP.getInstance().getCmd().commandExecuted(p, "rtp", line);
}
- private String cmd(String[] signArray) {
+ private static String cmd(String[] signArray) {
String actions = "";
for (int i = 1; i < signArray.length; i++) {
String line = signArray[i];
@@ -74,7 +74,7 @@ class Interact {
return actions;
}
- private boolean isSign(Block block) {
+ private static boolean isSign(Block block) {
return block.getState() instanceof Sign;
}
}
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 684938e..c05bf13 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Join.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Join.java
@@ -12,7 +12,7 @@ import org.bukkit.event.player.PlayerJoinEvent;
public class Join {
- void event(PlayerJoinEvent e) {
+ static void event(PlayerJoinEvent e) {
Player p = e.getPlayer();
updater(p);
Bukkit.getScheduler().runTaskAsynchronously(BetterRTP.getInstance(), () -> {
@@ -22,7 +22,7 @@ public class Join {
}
//Updater
- private void updater(Player p) {
+ private static void updater(Player 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#" +
@@ -30,12 +30,12 @@ public class Join {
}
//RTP on first join
- private void rtpOnFirstJoin(Player p) {
+ private static void rtpOnFirstJoin(Player p) {
if (getPl().getSettings().isRtpOnFirstJoin_Enabled() && !p.hasPlayedBefore())
HelperRTP.tp(p, Bukkit.getConsoleSender(), Bukkit.getWorld(getPl().getSettings().getRtpOnFirstJoin_World()), null, RTP_TYPE.JOIN); //Console is sender to override delays
}
- private BetterRTP getPl() {
+ private static BetterRTP getPl() {
return BetterRTP.getInstance();
}
}
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Leave.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Leave.java
index 477b1d6..eb2011e 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Leave.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/Leave.java
@@ -6,7 +6,7 @@ import org.bukkit.event.player.PlayerQuitEvent;
class Leave {
- void event(PlayerQuitEvent e) {
+ static void event(PlayerQuitEvent e) {
Player p = e.getPlayer();
HelperPlayer.unload(p);
}
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/PluginEnable.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/PluginEnable.java
deleted file mode 100644
index 7c9b450..0000000
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/events/PluginEnable.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package me.SuperRonanCraft.BetterRTP.player.events;
-
-import me.SuperRonanCraft.BetterRTP.BetterRTP;
-import org.bukkit.event.server.PluginEnableEvent;
-
-public class PluginEnable {
-
- //In the case SoftDependencies plugins load after us!
- void enabled(PluginEnableEvent e) {
- String name = e.getPlugin().getName();
- //System.out.println(name);
- if (name.equalsIgnoreCase("WorldGuard"))
- BetterRTP.getInstance().getSettings().getsDepends().registerWorldguard();
- else if (name.equalsIgnoreCase("GriefPrevention"))
- BetterRTP.getInstance().getSettings().getsDepends().registerGriefPrevention();
-
- }
-
-}
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPPlayer.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPPlayer.java
index dfa4900..59df5c6 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPPlayer.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPPlayer.java
@@ -56,6 +56,7 @@ public class RTPPlayer {
attemptedLocations.add(loc);
//Valid location?
if (tpLoc != null && checkDepends(tpLoc)) {
+ tpLoc.add(0.5, 0, 0.5); //Center location
if (getPl().getEco().charge(p, pWorld)) {
tpLoc.setYaw(p.getLocation().getYaw());
tpLoc.setPitch(p.getLocation().getPitch());
@@ -101,7 +102,7 @@ public class RTPPlayer {
if ( b.getY() >= minY
&& b.getY() <= maxY
&& !badBlock(b.getType().name(), x, z, world, biomes)) {
- return new Location(world, (x + 0.5), b.getY() + 1, (z + 0.5));
+ return new Location(world, x, b.getY() + 1, z);
}
return null;
}
@@ -122,7 +123,7 @@ public class RTPPlayer {
continue;
if (world.getBlockAt(x, y + 1, z).getType().name().endsWith("AIR") //Head space
&& !badBlock(block, x, z, world, biomes)) //Valid block
- return new Location(world, (x + 0.5), y, (z + 0.5));
+ return new Location(world, x, y, 0.5);
}
}
return null;
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/PermissionNode.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/PermissionNode.java
index 6910a30..f41ba7a 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/PermissionNode.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/PermissionNode.java
@@ -1,13 +1,13 @@
package me.SuperRonanCraft.BetterRTP.references;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
-import me.SuperRonanCraft.BetterRTP.references.depends.DepPerms;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.command.CommandSender;
public enum PermissionNode {
+ ADMIN("admin"),
USE("use"),
BYPASS_ECONOMY("bypass.economy"),
BYPASS_HUNGER("bypass.hunger"),
@@ -21,7 +21,6 @@ public enum PermissionNode {
BIOME("biome"),
WORLD("world"),
SIGN_CREATE("sign"),
- TEST("test"),
VERSION("version"),
EDIT("edit"),
LOCATION("location"),
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/database/DatabaseQueue.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/database/DatabaseQueue.java
index 45c973e..5958a8b 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/database/DatabaseQueue.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/database/DatabaseQueue.java
@@ -87,8 +87,8 @@ public class DatabaseQueue extends SQLite {
//+ COLUMNS.USES.name + " "
+ ") VALUES(?, ?, ?, ?)";
List