diff --git a/pom.xml b/pom.xml
index 788fe85..8607a46 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,7 @@
me.SuperRonanCraft
BetterRTP
jar
- 3.6.4
+ 3.6.5
1.8
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 c9c8d81..da6eb03 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
@@ -3,8 +3,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.RTPCommand;
+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.helpers.HelperRTP;
import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@@ -23,7 +25,8 @@ public class CmdTest implements RTPCommand, RTPCommandHelpable {
public void execute(CommandSender sendi, String label, String[] args) {
if (sendi instanceof Player) {
Player p = (Player) sendi;
- BetterRTP.getInstance().getRTP().getTeleport().afterTeleport(p, p.getLocation(), 0, 0, p.getLocation(), RTP_TYPE.TEST);
+ BetterRTP.getInstance().getRTP().getTeleport().afterTeleport(p, p.getLocation(),
+ HelperRTP.getPlayerWorld(new RTPSetupInformation(p.getWorld(), p, p, false)), 0, p.getLocation(), RTP_TYPE.TEST);
} else
sendi.sendMessage("Console is not able to execute this command! Try '/rtp help'");
}
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 72f39ae..a880d20 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPPlayer.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPPlayer.java
@@ -90,7 +90,7 @@ public class RTPPlayer {
tpLoc.setYaw(player.getLocation().getYaw());
tpLoc.setPitch(player.getLocation().getPitch());
Bukkit.getScheduler().runTask(BetterRTP.getInstance(), () ->
- settings.teleport.sendPlayer(sendi, player, tpLoc, worldPlayer.getPrice(), attempts, type, worldPlayer.getWorldtype()));
+ settings.teleport.sendPlayer(sendi, player, tpLoc, worldPlayer, attempts, type));
}
} else {
randomlyTeleport(sendi);
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPTeleport.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPTeleport.java
index 6b53478..88d2f38 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPTeleport.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPTeleport.java
@@ -3,11 +3,13 @@ package me.SuperRonanCraft.BetterRTP.player.rtp;
import io.papermc.lib.PaperLib;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.rtp.effects.*;
+import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportEvent;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPreEvent;
import me.SuperRonanCraft.BetterRTP.references.messages.MessagesCore;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WORLD_TYPE;
+import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldPlayer;
import org.bukkit.Location;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@@ -38,8 +40,8 @@ public class RTPTeleport {
// CompletableFuture.allOf(asyncChunks.toArray(new CompletableFuture[] {})).cancel(true);
// }
- void sendPlayer(final CommandSender sendi, final Player p, final Location location, final int price,
- final int attempts, RTP_TYPE type, WORLD_TYPE worldType) throws NullPointerException {
+ void sendPlayer(final CommandSender sendi, final Player p, final Location location, final WorldPlayer wPlayer,
+ final int attempts, RTP_TYPE type) throws NullPointerException {
Location oldLoc = p.getLocation();
loadingTeleport(p, sendi); //Send loading message to player who requested
//List> asyncChunks = getChunks(location); //Get a list of chunks
@@ -49,15 +51,15 @@ public class RTPTeleport {
@Override
public void run() {*/
try {
- RTP_TeleportEvent event = new RTP_TeleportEvent(p, location, worldType);
+ RTP_TeleportEvent event = new RTP_TeleportEvent(p, location, wPlayer.getWorldtype());
getPl().getServer().getPluginManager().callEvent(event);
Location loc = event.getLocation();
PaperLib.teleportAsync(p, loc).thenRun(new BukkitRunnable() { //Async teleport
@Override
public void run() {
- afterTeleport(p, loc, price, attempts, oldLoc, type);
+ afterTeleport(p, loc, wPlayer, attempts, oldLoc, type);
if (sendi != p) //Tell player who requested that the player rtp'd
- sendSuccessMsg(sendi, p.getName(), loc, price, false, attempts);
+ sendSuccessMsg(sendi, p.getName(), loc, wPlayer, false, attempts);
getPl().getpInfo().getRtping().remove(p); //No longer rtp'ing
//Save respawn location if first join
if (type == RTP_TYPE.JOIN) //RTP Type was Join
@@ -76,13 +78,13 @@ public class RTPTeleport {
//Effects
- public void afterTeleport(Player p, Location loc, int price, int attempts, Location oldLoc, RTP_TYPE type) { //Only a successful rtp should run this OR '/rtp test'
+ public void afterTeleport(Player p, Location loc, WorldPlayer wPlayer, int attempts, Location oldLoc, RTP_TYPE type) { //Only a successful rtp should run this OR '/rtp test'
effects.getSounds().playTeleport(p);
effects.getParticles().display(p);
effects.getPotions().giveEffects(p);
effects.getTitles().showTitle(RTPEffect_Titles.RTP_TITLE_TYPE.TELEPORT, p, loc, attempts, 0);
if (effects.getTitles().sendMsg(RTPEffect_Titles.RTP_TITLE_TYPE.TELEPORT))
- sendSuccessMsg(p, p.getName(), loc, price, true, attempts);
+ sendSuccessMsg(p, p.getName(), loc, wPlayer, true, attempts);
getPl().getServer().getPluginManager().callEvent(new RTP_TeleportPostEvent(p, loc, oldLoc, type));
}
@@ -147,12 +149,12 @@ public class RTPTeleport {
return asyncChunks;
}*/
- private void sendSuccessMsg(CommandSender sendi, String player, Location loc, int price, boolean sameAsPlayer, int attempts) {
+ private void sendSuccessMsg(CommandSender sendi, String player, Location loc, WorldPlayer wPlayer, boolean sameAsPlayer, int attempts) {
if (sameAsPlayer) {
- if (price == 0)
+ if (wPlayer.getPrice() == 0 || PermissionNode.BYPASS_ECONOMY.check(sendi))
MessagesCore.SUCCESS_BYPASS.send(sendi, Arrays.asList(loc, attempts));
else
- MessagesCore.SUCCESS_PAID.send(sendi, Arrays.asList(loc, attempts, price));
+ MessagesCore.SUCCESS_PAID.send(sendi, Arrays.asList(loc, wPlayer, attempts));
} else
MessagesCore.OTHER_SUCCESS.send(sendi, Arrays.asList(loc, player, attempts));
}
diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/placeholder/PlaceholderAnalyzer.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/placeholder/PlaceholderAnalyzer.java
index 25a3fdf..d84982e 100644
--- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/placeholder/PlaceholderAnalyzer.java
+++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/messages/placeholder/PlaceholderAnalyzer.java
@@ -6,6 +6,7 @@ import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperDate;
import me.SuperRonanCraft.BetterRTP.references.player.playerdata.PlayerData;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownData;
+import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.RTPWorld;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldPlayer;
import me.clip.placeholderapi.PlaceholderAPI;
import org.bukkit.Location;
@@ -35,6 +36,8 @@ public class PlaceholderAnalyzer {
str = cmd(str, (RTPCommand) info);
if (info instanceof PermissionNode)
str = permNode(str, (PermissionNode) info);
+ if (info instanceof RTPWorld)
+ str = ints(str, ((RTPWorld) info).getPrice());
if (p instanceof Player)
str = papi((Player) p, str);
return str;