economy price placeholder fix

This commit is contained in:
SuperRonanCraft 2023-04-07 23:00:24 -04:00
parent 3dc0eea406
commit f47c8cee10
5 changed files with 21 additions and 13 deletions

View File

@ -7,7 +7,7 @@
<groupId>me.SuperRonanCraft</groupId>
<artifactId>BetterRTP</artifactId>
<packaging>jar</packaging>
<version>3.6.4</version>
<version>3.6.5</version>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>

View File

@ -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'");
}

View File

@ -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);

View File

@ -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<CompletableFuture<Chunk>> 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));
}

View File

@ -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;