cooldown applied after teleport

This commit is contained in:
RonanCraft
2023-06-15 09:02:50 -04:00
parent 1e3e57236f
commit ee87464451
4 changed files with 10 additions and 24 deletions

View File

@@ -58,7 +58,6 @@ public class RTP {
//Permissions
loadPermissionGroups();
teleport.load(); //Load teleporting stuff
//permConfig.load(); //Load permission configs
}
public void loadWorlds() { //Keeping this here because of the edit command
@@ -82,24 +81,12 @@ public class RTP {
Bukkit.getPluginManager().callEvent(setup);
if (setup.isCancelled())
return;
// Second Economy check
if (pWorld.getPlayerInfo().takeMoney && !getPl().getEco().hasBalance(pWorld)) {
MessagesCore.FAILED_PRICE.send(pWorld.getPlayer());
return;
}
if (pWorld.getPlayerInfo().takeHunger && !getPl().getEco().hasHunger(pWorld)) {
MessagesCore.FAILED_HUNGER.send(pWorld.getPlayer());
return;
}
rtp(pWorld.getSendi(), pWorld, pWorld.getRtp_type());
}
private void rtp(CommandSender sendi, WorldPlayer pWorld, RTP_TYPE type) {
//Cooldown
Player p = pWorld.getPlayer();
//p.sendMessage("Cooling down: " + cooldown);
if (pWorld.getPlayerInfo().isApplyCooldown())
getPl().getCooldowns().add(p, pWorld.getWorld());
getPl().getpInfo().getRtping().put(p, true); //Cache player so they cant run '/rtp' again while rtp'ing
//Setup player rtp methods
RTPPlayer rtpPlayer = new RTPPlayer(p, this, pWorld, type);

View File

@@ -4,6 +4,7 @@ import io.papermc.lib.PaperLib;
import lombok.Getter;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_FindLocationEvent;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Check;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.QueueData;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.QueueHandler;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.RandomLocation;
@@ -88,7 +89,9 @@ public class RTPPlayer {
if (tpLoc != null && checkDepends(tpLoc)) {
tpLoc.add(0.5, 0, 0.5); //Center location
if (getPl().getEco().charge(player, worldPlayer)) {
//Successfully found a safe location, teleport player
//Successfully found a safe location, set cooldown and teleport player.
if (worldPlayer.getPlayerInfo().isApplyCooldown() && HelperRTP_Check.applyCooldown(player))
getPl().getCooldowns().add(player, worldPlayer.getWorld());
tpLoc.setYaw(player.getLocation().getYaw());
tpLoc.setPitch(player.getLocation().getPitch());
AsyncHandler.sync(() -> settings.teleport.sendPlayer(sendi, player, tpLoc, worldPlayer, attempts, type));

View File

@@ -67,7 +67,7 @@ public class HelperRTP {
List<String> biomes,
RTP_TYPE rtpType,
@Nullable WorldLocation location,
RTP_PlayerInfo playerInfo) {
@NotNull RTP_PlayerInfo playerInfo) {
world = getActualWorld(player, world, location);
RTPSetupInformation setup_info = new RTPSetupInformation(
world,
@@ -84,7 +84,7 @@ public class HelperRTP {
public static void tp(@NotNull Player player,
CommandSender sendi,
RTPSetupInformation setup_info) {
@NotNull RTPSetupInformation setup_info) {
//RTP request cancelled reason
WorldPlayer pWorld = getPlayerWorld(setup_info);
RTP_ERROR_REQUEST_REASON cantReason = HelperRTP_Check.canRTP(player, sendi, pWorld, setup_info.getPlayerInfo());
@@ -99,13 +99,9 @@ public class HelperRTP {
Message_RTP.sms(sendi, msg, pWorld);
return;
}
//ignore cooldown or else
//BetterRTP.getInstance().getLogger().info("Center X: " + pWorld.getCenterX());
getPl().getRTP().start(pWorld);
}
private static BetterRTP getPl() {
return BetterRTP.getInstance();
//Start teleport sequence!
BetterRTP.getInstance().getRTP().start(pWorld);
}
public static World getActualWorld(Player player,

View File

@@ -100,8 +100,8 @@ public class CooldownHandler {
public long timeLeft(CommandSender sendi, CooldownData data, WorldPlayer pWorld) {
long cooldown = data.getTime();
long timeLeft = ((cooldown / 1000) + pWorld.getCooldown()) - (System.currentTimeMillis() / 1000);
if (BetterRTP.getInstance().getSettings().isDelayEnabled() && !PermissionNode.BYPASS_DELAY.check(sendi))
timeLeft = timeLeft + BetterRTP.getInstance().getSettings().getDelayTime();
//if (BetterRTP.getInstance().getSettings().isDelayEnabled() && !PermissionNode.BYPASS_DELAY.check(sendi))
// timeLeft = timeLeft + BetterRTP.getInstance().getSettings().getDelayTime();
return timeLeft * 1000L;
}