From 919e4584778a612580b96d68c5b6932e9e7f70ee Mon Sep 17 00:00:00 2001 From: SuperRonanCraft Date: Wed, 14 Jun 2023 00:21:18 -0400 Subject: [PATCH] rtp player info --- BetterRTPAddons/pom.xml | 2 +- .../player/commands/types/CmdPlayer.java | 11 ++++++- .../BetterRTP/player/rtp/RTP.java | 4 +-- .../player/rtp/RTPSetupInformation.java | 17 +++++++--- .../BetterRTP/player/rtp/RTP_PlayerInfo.java | 32 +++++++++++++++++++ .../references/helpers/HelperRTP.java | 32 +++++++++++++++---- .../rtpinfo/worlds/WorldPlayer.java | 9 +++--- 7 files changed, 87 insertions(+), 20 deletions(-) create mode 100644 src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP_PlayerInfo.java diff --git a/BetterRTPAddons/pom.xml b/BetterRTPAddons/pom.xml index 6ecd675..9135aff 100644 --- a/BetterRTPAddons/pom.xml +++ b/BetterRTPAddons/pom.xml @@ -109,7 +109,7 @@ me.SuperRonanCraft BetterRTP - 3.6.8-3 + LATEST provided 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 d4bb618..f89a1c7 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 @@ -4,6 +4,7 @@ import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandType; import me.SuperRonanCraft.BetterRTP.player.commands.Commands; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; +import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_PlayerInfo; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.references.PermissionNode; @@ -32,7 +33,15 @@ 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()) - HelperRTP.tp(Bukkit.getPlayer(args[1]), sendi, Bukkit.getPlayer(args[1]).getWorld(), null, RTP_TYPE.FORCED); + HelperRTP.tp(Bukkit.getPlayer(args[1]), + sendi, + Bukkit.getPlayer(args[1]).getWorld(), + null, + RTP_TYPE.FORCED, + false, + false, + null, + new RTP_PlayerInfo(false, false)); else if (Bukkit.getPlayer(args[1]) != null) MessagesCore.NOTONLINE.send(sendi, args[1]); else diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP.java index 5343977..7640e83 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP.java @@ -97,13 +97,13 @@ public class RTP { //Cooldown Player p = pWorld.getPlayer(); //p.sendMessage("Cooling down: " + cooldown); - if (pWorld.isApplyCooldown()) + 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); // Delaying? Else, just go - if (getPl().getSettings().isDelayEnabled() && pWorld.isApplyDelay()) { + if (getPl().getSettings().isDelayEnabled() && pWorld.getPlayerInfo().isApplyDelay()) { new RTPDelay(sendi, rtpPlayer, delayTime, cancelOnMove, cancelOnDamage); } else { if (!teleport.beforeTeleportInstant(sendi, p)) diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPSetupInformation.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPSetupInformation.java index b86ba11..e2248a4 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPSetupInformation.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPSetupInformation.java @@ -17,11 +17,10 @@ public class RTPSetupInformation { @Getter @NonNull private final CommandSender sender; @Getter @Nullable private final Player player; @Getter private final boolean personalized; - @Getter private final boolean cooldown; @Getter @Setter @Nullable private List biomes; @Getter @Setter @Nullable private WorldLocation location; - @Getter private final boolean delay; @Getter @Nullable private final RTP_TYPE rtp_type; + @Getter private final RTP_PlayerInfo playerInfo; public RTPSetupInformation(@Nullable World world, @NonNull CommandSender sender, @@ -50,18 +49,28 @@ public class RTPSetupInformation { @Nullable RTP_TYPE rtp_type, @Nullable WorldLocation location, boolean cooldown) { + this(world, sender, player, personalized, biomes, rtp_type, location, new RTP_PlayerInfo(delay, cooldown)); + } + + public RTPSetupInformation(@Nullable World world, + @NonNull CommandSender sender, + @Nullable Player player, + boolean personalized, + @Nullable List biomes, + @Nullable RTP_TYPE rtp_type, + @Nullable WorldLocation location, + RTP_PlayerInfo playerInfo) { this.world = world; this.sender = sender; this.player = player; this.personalized = personalized; this.biomes = biomes; - this.delay = delay; this.rtp_type = rtp_type; this.location = location; if (this.world == null) { if (player != null) this.world = player.getWorld(); } - this.cooldown = cooldown; + this.playerInfo = playerInfo; } } diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP_PlayerInfo.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP_PlayerInfo.java new file mode 100644 index 0000000..1a2ab8d --- /dev/null +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP_PlayerInfo.java @@ -0,0 +1,32 @@ +package me.SuperRonanCraft.BetterRTP.player.rtp; + +import lombok.Getter; +import lombok.Setter; + +public class RTP_PlayerInfo { + + @Getter @Setter boolean + applyDelay, + applyCooldown, + checkCooldown, + takeMoney, + takeHunger; + + public RTP_PlayerInfo(boolean applyDelay, boolean applyCooldown) { + this.applyDelay = applyDelay; + this.applyCooldown = applyCooldown; + } + + public RTP_PlayerInfo(boolean applyDelay, + boolean applyCooldown, + boolean checkCooldown, + boolean takeMoney, + boolean takeHunger) { + this.applyDelay = applyDelay; + this.applyCooldown = applyCooldown; + this.checkCooldown = checkCooldown; + this.takeMoney = takeMoney; + this.takeHunger = takeHunger; + } + +} diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP.java index 01314d9..4a22b66 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/helpers/HelperRTP.java @@ -2,10 +2,7 @@ package me.SuperRonanCraft.BetterRTP.references.helpers; import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.player.commands.types.CmdLocation; -import me.SuperRonanCraft.BetterRTP.player.rtp.RTP; -import me.SuperRonanCraft.BetterRTP.player.rtp.RTPSetupInformation; -import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_ERROR_REQUEST_REASON; -import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE; +import me.SuperRonanCraft.BetterRTP.player.rtp.*; import me.SuperRonanCraft.BetterRTP.references.PermissionCheck; import me.SuperRonanCraft.BetterRTP.references.PermissionNode; import me.SuperRonanCraft.BetterRTP.references.WarningHandler; @@ -26,7 +23,7 @@ public class HelperRTP { //Teleported and Sender are the same public static void tp(Player player, World world, List biomes, RTP_TYPE rtpType) { - tp(player, player, world, biomes, rtpType, false, false); + tp(player, player, world, biomes, rtpType); } //Teleported and Sender MAY be different @@ -49,11 +46,32 @@ public class HelperRTP { player, true, biomes, - !ignoreDelay && HelperRTP_Check.applyDelay(player, sendi), rtpType, location, - !ignoreCooldown && HelperRTP_Check.applyCooldown(sendi, player) + new RTP_PlayerInfo( + !ignoreDelay && HelperRTP_Check.applyDelay(player, sendi), + !ignoreCooldown && HelperRTP_Check.applyCooldown(sendi, player)) ); + tp(player, sendi, ignoreCooldown, ignoreDelay, setup_info); + } + + public static void tp(@NotNull Player player, CommandSender sendi, @Nullable World world, List biomes, RTP_TYPE rtpType, + boolean ignoreCooldown, boolean ignoreDelay, @Nullable WorldLocation location, RTP_PlayerInfo playerInfo) { + world = getActualWorld(player, world, location); + RTPSetupInformation setup_info = new RTPSetupInformation( + world, + sendi, + player, + true, + biomes, + rtpType, + location, + playerInfo + ); + tp(player, sendi, ignoreCooldown, ignoreDelay, setup_info); + } + + public static void tp(@NotNull Player player, CommandSender sendi, boolean ignoreCooldown, boolean ignoreDelay, RTPSetupInformation setup_info) { //RTP request cancelled reason WorldPlayer pWorld = getPlayerWorld(setup_info); RTP_ERROR_REQUEST_REASON cantReason = HelperRTP_Check.canRTP(player, sendi, pWorld, ignoreCooldown); diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldPlayer.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldPlayer.java index 2ef3b31..0057d3f 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldPlayer.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/rtpinfo/worlds/WorldPlayer.java @@ -4,6 +4,7 @@ import lombok.Getter; import me.SuperRonanCraft.BetterRTP.player.commands.RTP_SETUP_TYPE; import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.player.rtp.RTPSetupInformation; +import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_PlayerInfo; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_SHAPE; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE; import org.bukkit.Location; @@ -22,7 +23,7 @@ public class WorldPlayer implements RTPWorld, RTPWorld_Defaulted { private List Biomes; @Getter private final Player player; @Getter private final CommandSender sendi; - @Getter private final boolean applyCooldown, applyDelay; + @Getter private final RTP_PlayerInfo playerInfo; @Getter private final RTP_TYPE rtp_type; private final World world; private WORLD_TYPE world_type; @@ -30,17 +31,15 @@ public class WorldPlayer implements RTPWorld, RTPWorld_Defaulted { private RTP_SHAPE shape; public RTP_SETUP_TYPE setup_type = RTP_SETUP_TYPE.DEFAULT; public String setup_name; - //Economy - public boolean eco_money_taken = false; + @Getter private boolean setup = false; public WorldPlayer(RTPSetupInformation setup_info) { this.sendi = setup_info.getSender(); this.player = setup_info.getPlayer(); this.world = setup_info.getWorld(); - this.applyCooldown = setup_info.isCooldown(); - this.applyDelay = setup_info.isDelay(); this.rtp_type = setup_info.getRtp_type(); + this.playerInfo = setup_info.getPlayerInfo(); } public void setup(String setup_name, RTPWorld world, List biomes) {