RtpInfo checks + sudo command

This commit is contained in:
SuperRonanCraft
2023-06-15 00:06:14 -04:00
parent 2b4367b058
commit 1e3e57236f
13 changed files with 154 additions and 57 deletions
+6 -3
View File
@@ -7,7 +7,7 @@
<groupId>me.SuperRonanCraft</groupId> <groupId>me.SuperRonanCraft</groupId>
<artifactId>BetterRTP</artifactId> <artifactId>BetterRTP</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>
<version>3.6.10-DEV</version> <version>3.6.10-2DEV</version>
<!-- Upload patches to https://repo.ronanplugins.com/#/ --> <!-- Upload patches to https://repo.ronanplugins.com/#/ -->
@@ -273,7 +273,9 @@
<version>97b96c9</version> <version>97b96c9</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<!-- Particles Library (https://github.com/ByteZ1337/ParticleLib/blob/master/src/main/java/xyz/xenondevs/particle/ParticleEffect.java) --> <!-- Particles Library
https://github.com/ByteZ1337/ParticleLib
(https://github.com/ByteZ1337/ParticleLib/blob/master/src/main/java/xyz/xenondevs/particle/ParticleEffect.java) -->
<dependency> <dependency>
<groupId>xyz.xenondevs</groupId> <groupId>xyz.xenondevs</groupId>
<artifactId>particle</artifactId> <artifactId>particle</artifactId>
@@ -327,7 +329,7 @@
<version>2.0</version> <version>2.0</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<!-- MinePlots (https://builtbybit.com/resources/mineplots.21646/) (Added in 3.6.6 ) --> <!-- MinePlots (https://builtbybit.com/resources/mineplots.21646/) (Added in 3.6.6 ) -->
<dependency> <dependency>
<groupId>pl.minecodes.plots</groupId> <groupId>pl.minecodes.plots</groupId>
<artifactId>plugin-api</artifactId> <artifactId>plugin-api</artifactId>
@@ -351,6 +353,7 @@
<groupId>com.github.WhipDevelopment</groupId> <groupId>com.github.WhipDevelopment</groupId>
<artifactId>CrashClaim</artifactId> <artifactId>CrashClaim</artifactId>
<version>-75abe3b665-1</version> <version>-75abe3b665-1</version>
<scope>provided</scope>
</dependency> </dependency>
<!-- CAN BE UNCOMMENTED IF YOU HAVE ACCESS TO THE PLUGIN --> <!-- CAN BE UNCOMMENTED IF YOU HAVE ACCESS TO THE PLUGIN -->
@@ -9,6 +9,7 @@ public enum RTPCommandType {
INFO(new CmdInfo()), INFO(new CmdInfo()),
LOCATION(new CmdLocation()), LOCATION(new CmdLocation()),
PLAYER(new CmdPlayer()), PLAYER(new CmdPlayer()),
PLAYERSUDO(new CmdPlayerSudo()),
QUEUE(new CmdQueue(), true), QUEUE(new CmdQueue(), true),
RELOAD(new CmdReload()), RELOAD(new CmdReload()),
//SETTINGS(new CmdSettings(), true), //SETTINGS(new CmdSettings(), true),
@@ -26,7 +26,7 @@ public class CmdPlayer implements RTPCommand, RTPCommandHelpable {
return "player"; return "player";
} }
//rtp player <world> <biome1> <biome2...> //rtp player <player> <world> <RTP_PlayerInfo.RTP_PLAYERINFO_FLAG...>
public void execute(CommandSender sendi, String label, String[] args) { public void execute(CommandSender sendi, String label, String[] args) {
if (args.length == 2) if (args.length == 2)
if (Bukkit.getPlayer(args[1]) != null && Bukkit.getPlayer(args[1]).isOnline()) { if (Bukkit.getPlayer(args[1]) != null && Bukkit.getPlayer(args[1]).isOnline()) {
@@ -44,7 +44,6 @@ public class CmdPlayer implements RTPCommand, RTPCommandHelpable {
else if (args.length >= 3) else if (args.length >= 3)
if (Bukkit.getPlayer(args[1]) != null && Bukkit.getPlayer(args[1]).isOnline()) { if (Bukkit.getPlayer(args[1]) != null && Bukkit.getPlayer(args[1]).isOnline()) {
World world = Bukkit.getWorld(args[2]); World world = Bukkit.getWorld(args[2]);
RTP_PlayerInfo playerInfo = getFlags(args);
if (world != null) { if (world != null) {
HelperRTP.tp(Bukkit.getPlayer(args[1]), HelperRTP.tp(Bukkit.getPlayer(args[1]),
sendi, sendi,
@@ -52,7 +51,7 @@ public class CmdPlayer implements RTPCommand, RTPCommandHelpable {
null, null,
RTP_TYPE.FORCED, RTP_TYPE.FORCED,
null, null,
playerInfo); getFlags(args));
} else } else
MessagesCore.NOTEXIST.send(sendi, args[2]); MessagesCore.NOTEXIST.send(sendi, args[2]);
} else if (Bukkit.getPlayer(args[1]) != null) } else if (Bukkit.getPlayer(args[1]) != null)
@@ -76,8 +75,8 @@ public class CmdPlayer implements RTPCommand, RTPCommandHelpable {
if (flag.name().equalsIgnoreCase(args[i])) { if (flag.name().equalsIgnoreCase(args[i])) {
switch (flag) { switch (flag) {
case NODELAY: applyDelay = false; break; case NODELAY: applyDelay = false; break;
case NOCOOLDOWN: checkCooldown = false; break; case NOCOOLDOWN: applyCooldown = false; break;
case IGNORECOOLDOWN: applyCooldown = false; break; case IGNORECOOLDOWN: checkCooldown = false; break;
case IGNOREMONEY: takeMoney = false; break; case IGNOREMONEY: takeMoney = false; break;
case IGNOREHUNGER: takeHunger = false; break; case IGNOREHUNGER: takeHunger = false; break;
} }
@@ -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.rtp.RTP_PlayerInfo;
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.MessagesCore;
import me.SuperRonanCraft.BetterRTP.references.messages.MessagesHelp;
import me.SuperRonanCraft.BetterRTP.references.messages.MessagesUsage;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
public class CmdPlayerSudo implements RTPCommand {
public String getName() {
return "player_sudo";
}
//rtp sudoplayer <player> <world> <RTP_PlayerInfo.RTP_PLAYERINFO_FLAG...>
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,
null,
new RTP_PlayerInfo(false, true, false, false, false));
} else if (Bukkit.getPlayer(args[1]) != null)
MessagesCore.NOTONLINE.send(sendi, args[1]);
else
usage(sendi, label);
else if (args.length >= 3)
if (Bukkit.getPlayer(args[1]) != null && Bukkit.getPlayer(args[1]).isOnline()) {
World world = Bukkit.getWorld(args[2]);
if (world != null) {
HelperRTP.tp(Bukkit.getPlayer(args[1]),
sendi,
world,
null,
RTP_TYPE.FORCED,
null,
new RTP_PlayerInfo(false, true, false, false, false));
} else
MessagesCore.NOTEXIST.send(sendi, args[2]);
} else if (Bukkit.getPlayer(args[1]) != null)
MessagesCore.NOTONLINE.send(sendi, args[1]);
else
usage(sendi, label);
else
usage(sendi, label);
}
public List<String> tabComplete(CommandSender sendi, String[] args) {
List<String> list = new ArrayList<>();
if (args.length == 2) {
for (Player p : Bukkit.getOnlinePlayers())
if (p.getDisplayName().toLowerCase().startsWith(args[1].toLowerCase()))
list.add(p.getName());
} else if (args.length == 3) {
for (World w : Bukkit.getWorlds())
if (w.getName().startsWith(args[2]) && !BetterRTP.getInstance().getRTP().getDisabledWorlds().contains(w.getName()))
list.add(w.getName());
}
return list;
}
@NotNull public PermissionNode permission() {
return PermissionNode.RTP_OTHER;
}
public void usage(CommandSender sendi, String label) {
MessagesUsage.RTP_OTHER.send(sendi, label);
}
}
@@ -7,6 +7,7 @@ import me.SuperRonanCraft.BetterRTP.references.WarningHandler;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_SettingUpEvent; import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_SettingUpEvent;
import me.SuperRonanCraft.BetterRTP.references.file.FileOther; import me.SuperRonanCraft.BetterRTP.references.file.FileOther;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP; import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Check;
import me.SuperRonanCraft.BetterRTP.references.messages.MessagesCore; import me.SuperRonanCraft.BetterRTP.references.messages.MessagesCore;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.PermissionGroup; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.PermissionGroup;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.*; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.*;
@@ -82,12 +83,12 @@ public class RTP {
if (setup.isCancelled()) if (setup.isCancelled())
return; return;
// Second Economy check // Second Economy check
if (pWorld.getPlayerInfo().takeMoney && !getPl().getEco().hasBalance(pWorld.getSendi(), pWorld)) { if (pWorld.getPlayerInfo().takeMoney && !getPl().getEco().hasBalance(pWorld)) {
MessagesCore.FAILED_PRICE.send(pWorld.getSendi()); MessagesCore.FAILED_PRICE.send(pWorld.getPlayer());
return; return;
} }
if (pWorld.getPlayerInfo().takeHunger && !getPl().getEco().hasHunger(pWorld.getSendi(), pWorld)) { if (pWorld.getPlayerInfo().takeHunger && !getPl().getEco().hasHunger(pWorld)) {
MessagesCore.FAILED_HUNGER.send(pWorld.getSendi()); MessagesCore.FAILED_HUNGER.send(pWorld.getPlayer());
return; return;
} }
rtp(pWorld.getSendi(), pWorld, pWorld.getRtp_type()); rtp(pWorld.getSendi(), pWorld, pWorld.getRtp_type());
@@ -103,7 +104,7 @@ public class RTP {
//Setup player rtp methods //Setup player rtp methods
RTPPlayer rtpPlayer = new RTPPlayer(p, this, pWorld, type); RTPPlayer rtpPlayer = new RTPPlayer(p, this, pWorld, type);
// Delaying? Else, just go // Delaying? Else, just go
if (pWorld.getPlayerInfo().isApplyDelay() && getPl().getSettings().isDelayEnabled()) { if (pWorld.getPlayerInfo().applyDelay && HelperRTP_Check.applyDelay(pWorld.getPlayer())) {
new RTPDelay(sendi, rtpPlayer, delayTime, cancelOnMove, cancelOnDamage); new RTPDelay(sendi, rtpPlayer, delayTime, cancelOnMove, cancelOnDamage);
} else { } else {
if (!teleport.beforeTeleportInstant(sendi, p)) if (!teleport.beforeTeleportInstant(sendi, p))
@@ -64,7 +64,7 @@ class RTPDelay implements Listener {
getPl().getRTP().getTeleport().cancelledTeleport(rtp.getPlayer()); getPl().getRTP().getTeleport().cancelledTeleport(rtp.getPlayer());
//getPl().getEco().unCharge(rtp.getPlayer(), rtp.pWorld); //getPl().getEco().unCharge(rtp.getPlayer(), rtp.pWorld);
getPl().getCooldowns().removeCooldown(rtp.getPlayer(), rtp.worldPlayer.getWorld()); getPl().getCooldowns().removeCooldown(rtp.getPlayer(), rtp.worldPlayer.getWorld());
getPl().getpInfo().getRtping().put(rtp.getPlayer(), false); getPl().getpInfo().getRtping().remove(rtp.getPlayer());
Bukkit.getServer().getPluginManager().callEvent(new RTP_CancelledEvent(rtp.getPlayer())); Bukkit.getServer().getPluginManager().callEvent(new RTP_CancelledEvent(rtp.getPlayer()));
} }
@@ -26,7 +26,7 @@ public class RTPPlayer {
@Getter WorldPlayer worldPlayer; @Getter WorldPlayer worldPlayer;
@Getter RTP_TYPE type; @Getter RTP_TYPE type;
@Getter int attempts; @Getter int attempts;
List<Location> attemptedLocations = new ArrayList<>(); //List<Location> attemptedLocations = new ArrayList<>();
RTPPlayer(Player player, RTP settings, WorldPlayer worldPlayer, RTP_TYPE type) { RTPPlayer(Player player, RTP settings, WorldPlayer worldPlayer, RTP_TYPE type) {
this.player = player; this.player = player;
@@ -83,18 +83,19 @@ public class RTPPlayer {
private void attempt(CommandSender sendi, Location loc) { private void attempt(CommandSender sendi, Location loc) {
Location tpLoc; Location tpLoc;
tpLoc = RandomLocation.getSafeLocation(worldPlayer.getWorldtype(), worldPlayer.getWorld(), loc, worldPlayer.getMinY(), worldPlayer.getMaxY(), worldPlayer.getBiomes()); tpLoc = RandomLocation.getSafeLocation(worldPlayer.getWorldtype(), worldPlayer.getWorld(), loc, worldPlayer.getMinY(), worldPlayer.getMaxY(), worldPlayer.getBiomes());
attemptedLocations.add(loc); //attemptedLocations.add(loc);
//Valid location? //Valid location?
if (tpLoc != null && checkDepends(tpLoc)) { if (tpLoc != null && checkDepends(tpLoc)) {
tpLoc.add(0.5, 0, 0.5); //Center location tpLoc.add(0.5, 0, 0.5); //Center location
if (worldPlayer.getPlayerInfo().isTakeMoney() && getPl().getEco().charge(player, worldPlayer)) { if (getPl().getEco().charge(player, worldPlayer)) {
//Successfully found a safe location, teleport player
tpLoc.setYaw(player.getLocation().getYaw()); tpLoc.setYaw(player.getLocation().getYaw());
tpLoc.setPitch(player.getLocation().getPitch()); tpLoc.setPitch(player.getLocation().getPitch());
AsyncHandler.sync(() -> AsyncHandler.sync(() -> settings.teleport.sendPlayer(sendi, player, tpLoc, worldPlayer, attempts, type));
settings.teleport.sendPlayer(sendi, player, tpLoc, worldPlayer, attempts, type));
} else { } else {
getPl().getCooldowns().removeCooldown(player, worldPlayer.getWorld()); if (worldPlayer.getPlayerInfo().applyCooldown)
getPl().getpInfo().getRtping().put(player, false); getPl().getCooldowns().removeCooldown(player, worldPlayer.getWorld());
getPl().getpInfo().getRtping().remove(player);
} }
} else { } else {
randomlyTeleport(sendi); randomlyTeleport(sendi);
@@ -106,7 +107,7 @@ public class RTPPlayer {
private void metMax(CommandSender sendi, Player p) { private void metMax(CommandSender sendi, Player p) {
settings.teleport.failedTeleport(p, sendi); settings.teleport.failedTeleport(p, sendi);
getPl().getCooldowns().removeCooldown(p, worldPlayer.getWorld()); getPl().getCooldowns().removeCooldown(p, worldPlayer.getWorld());
getPl().getpInfo().getRtping().put(p, false); getPl().getpInfo().getRtping().remove(p);
} }
/** /**
@@ -115,15 +115,18 @@ public class RTPTeleport {
private void loadingTeleport(Player p, CommandSender sendi) { private void loadingTeleport(Player p, CommandSender sendi) {
effects.getTitles().showTitle(RTPEffect_Titles.RTP_TITLE_TYPE.LOADING, p, p.getLocation(), 0, 0); effects.getTitles().showTitle(RTPEffect_Titles.RTP_TITLE_TYPE.LOADING, p, p.getLocation(), 0, 0);
if ((effects.getTitles().sendMsg(RTPEffect_Titles.RTP_TITLE_TYPE.LOADING) && sendStatusMessage()) || sendi != p) //Show msg if enabled or if not same player if (effects.getTitles().sendMsg(RTPEffect_Titles.RTP_TITLE_TYPE.LOADING) && sendStatusMessage()) { //Show msg if enabled or if not same player
MessagesCore.SUCCESS_LOADING.send(sendi); if (p == sendi)
MessagesCore.SUCCESS_LOADING.send(sendi);
MessagesCore.SUCCESS_LOADING.send(p);
}
} }
public void failedTeleport(Player p, CommandSender sendi) { public void failedTeleport(Player p, CommandSender sendi) {
effects.getTitles().showTitle(RTPEffect_Titles.RTP_TITLE_TYPE.FAILED, p, p.getLocation(), 0, 0); effects.getTitles().showTitle(RTPEffect_Titles.RTP_TITLE_TYPE.FAILED, p, p.getLocation(), 0, 0);
if (effects.getTitles().sendMsg(RTPEffect_Titles.RTP_TITLE_TYPE.FAILED)) if (effects.getTitles().sendMsg(RTPEffect_Titles.RTP_TITLE_TYPE.FAILED))
if (p == sendi) if (p == sendi)
MessagesCore.FAILED_NOTSAFE.send(sendi, BetterRTP.getInstance().getRTP().maxAttempts); MessagesCore.FAILED_NOTSAFE.send(p, BetterRTP.getInstance().getRTP().maxAttempts);
else else
MessagesCore.OTHER_NOTSAFE.send(sendi, Arrays.asList( MessagesCore.OTHER_NOTSAFE.send(sendi, Arrays.asList(
BetterRTP.getInstance().getRTP().maxAttempts, BetterRTP.getInstance().getRTP().maxAttempts,
@@ -17,8 +17,7 @@ public class RTP_PlayerInfo {
} }
public RTP_PlayerInfo(boolean applyDelay, boolean applyCooldown) { public RTP_PlayerInfo(boolean applyDelay, boolean applyCooldown) {
this.applyDelay = applyDelay; this(applyDelay, applyCooldown, true, true, true);
this.applyCooldown = applyCooldown;
} }
public RTP_PlayerInfo(boolean applyDelay, public RTP_PlayerInfo(boolean applyDelay,
@@ -23,9 +23,10 @@ public class DepEconomy {
//Hunger Stuff //Hunger Stuff
boolean took_food = false; boolean took_food = false;
if (hunger != 0 if (hunger != 0
&& sendi == player && pWorld.getPlayerInfo().isTakeHunger()
&& !PermissionNode.BYPASS_HUNGER.check(player)
&& (player.getGameMode() == GameMode.SURVIVAL || player.getGameMode() == GameMode.ADVENTURE)) { && (player.getGameMode() == GameMode.SURVIVAL || player.getGameMode() == GameMode.ADVENTURE)) {
boolean has_hunger = player.getFoodLevel() > hunger; boolean has_hunger = player.getFoodLevel() >= hunger;
if (!has_hunger) { if (!has_hunger) {
MessagesCore.FAILED_HUNGER.send(sendi); MessagesCore.FAILED_HUNGER.send(sendi);
return false; return false;
@@ -35,7 +36,10 @@ public class DepEconomy {
} }
} }
//Economy Stuff //Economy Stuff
if (e != null && pWorld.getPrice() != 0 && !PermissionNode.BYPASS_ECONOMY.check(sendi)) { if (e != null
&& pWorld.getPrice() != 0
&& pWorld.getPlayerInfo().isTakeMoney()
&& !PermissionNode.BYPASS_ECONOMY.check(player)) {
try { try {
EconomyResponse r = e.withdrawPlayer(player, pWorld.getPrice()); EconomyResponse r = e.withdrawPlayer(player, pWorld.getPrice());
boolean passed_economy = r.transactionSuccess(); boolean passed_economy = r.transactionSuccess();
@@ -54,11 +58,11 @@ public class DepEconomy {
return true; return true;
} }
public boolean hasBalance(CommandSender sendi, WorldPlayer pWorld) { public boolean hasBalance(WorldPlayer pWorld) {
check(false); check(false);
//Economy Stuff //Economy Stuff
int price = pWorld.getPrice(); int price = pWorld.getPrice();
if (e != null && price != 0 && !PermissionNode.BYPASS_ECONOMY.check(sendi)) { if (e != null && price != 0 && !PermissionNode.BYPASS_ECONOMY.check(pWorld.getPlayer())) {
try { try {
return e.getBalance(pWorld.getPlayer()) >= price; return e.getBalance(pWorld.getPlayer()) >= price;
} catch (Exception e) { } catch (Exception e) {
@@ -69,14 +73,14 @@ public class DepEconomy {
return true; return true;
} }
public boolean hasHunger(CommandSender sendi, WorldPlayer pWorld) { public boolean hasHunger(WorldPlayer pWorld) {
check(false); check(false);
Player player = pWorld.getPlayer(); Player player = pWorld.getPlayer();
//Hunger Stuff //Hunger Stuff
if (hunger != 0 if (hunger != 0
&& !PermissionNode.BYPASS_HUNGER.check(sendi) && !PermissionNode.BYPASS_HUNGER.check(player)
&& (player.getGameMode() == GameMode.SURVIVAL || player.getGameMode() == GameMode.ADVENTURE)) { && (player.getGameMode() == GameMode.SURVIVAL || player.getGameMode() == GameMode.ADVENTURE)) {
return player.getFoodLevel() > hunger; return player.getFoodLevel() >= hunger;
} }
//Default value //Default value
return true; return true;
@@ -96,7 +96,7 @@ public class DepPlaceholderAPI extends PlaceholderExpansion {
RTPSetupInformation setup_info = new RTPSetupInformation(HelperRTP.getActualWorld(data.player, world), data.player, data.player, true); RTPSetupInformation setup_info = new RTPSetupInformation(HelperRTP.getActualWorld(data.player, world), data.player, data.player, true);
WorldPlayer pWorld = HelperRTP.getPlayerWorld(setup_info); WorldPlayer pWorld = HelperRTP.getPlayerWorld(setup_info);
Long cooldownTime = BetterRTP.getInstance().getCooldowns().locked(data.player) ? -1L : Long cooldownTime = BetterRTP.getInstance().getCooldowns().locked(data.player) ? -1L :
(HelperRTP_Check.applyCooldown(data.player, data.player) ? pWorld.getCooldown() * 1000L : 0L); (HelperRTP_Check.applyCooldown(data.player) ? pWorld.getCooldown() * 1000L : 0L);
return HelperDate.total(cooldownTime); return HelperDate.total(cooldownTime);
} }
@@ -109,13 +109,13 @@ public class DepPlaceholderAPI extends PlaceholderExpansion {
RTPSetupInformation setupInformation = new RTPSetupInformation(world, player, player, true); RTPSetupInformation setupInformation = new RTPSetupInformation(world, player, player, true);
WorldPlayer pWorld = HelperRTP.getPlayerWorld(setupInformation); WorldPlayer pWorld = HelperRTP.getPlayerWorld(setupInformation);
//Cooldown //Cooldown
if (HelperRTP_Check.isCoolingDown(player, player, pWorld)) if (HelperRTP_Check.isCoolingDown(player, pWorld))
return BetterRTP.getInstance().getSettings().getPlaceholder_cooldown(); return BetterRTP.getInstance().getSettings().getPlaceholder_cooldown();
//Price //Price
if (!BetterRTP.getInstance().getEco().hasBalance(player, pWorld)) if (!BetterRTP.getInstance().getEco().hasBalance(pWorld))
return BetterRTP.getInstance().getSettings().getPlaceholder_balance(); return BetterRTP.getInstance().getSettings().getPlaceholder_balance();
//Hunger //Hunger
if (!BetterRTP.getInstance().getEco().hasHunger(player, pWorld)) if (!BetterRTP.getInstance().getEco().hasHunger(pWorld))
return BetterRTP.getInstance().getSettings().getPlaceholder_hunger(); return BetterRTP.getInstance().getSettings().getPlaceholder_hunger();
//True //True
return BetterRTP.getInstance().getSettings().getPlaceholder_true(); return BetterRTP.getInstance().getSettings().getPlaceholder_true();
@@ -128,7 +128,7 @@ public class DepPlaceholderAPI extends PlaceholderExpansion {
RTPSetupInformation setupInformation = new RTPSetupInformation(world, player, player, true); RTPSetupInformation setupInformation = new RTPSetupInformation(world, player, player, true);
WorldPlayer pWorld = HelperRTP.getPlayerWorld(setupInformation); WorldPlayer pWorld = HelperRTP.getPlayerWorld(setupInformation);
//Cooldown //Cooldown
if (HelperRTP_Check.isCoolingDown(player, player, pWorld)) if (HelperRTP_Check.isCoolingDown(player, pWorld))
return BetterRTP.getInstance().getSettings().getPlaceholder_cooldown(); return BetterRTP.getInstance().getSettings().getPlaceholder_cooldown();
//True //True
return BetterRTP.getInstance().getSettings().getPlaceholder_true(); return BetterRTP.getInstance().getSettings().getPlaceholder_true();
@@ -141,7 +141,7 @@ public class DepPlaceholderAPI extends PlaceholderExpansion {
RTPSetupInformation setupInformation = new RTPSetupInformation(world, player, player, true); RTPSetupInformation setupInformation = new RTPSetupInformation(world, player, player, true);
WorldPlayer pWorld = HelperRTP.getPlayerWorld(setupInformation); WorldPlayer pWorld = HelperRTP.getPlayerWorld(setupInformation);
//Price //Price
if (!BetterRTP.getInstance().getEco().hasBalance(player, pWorld)) if (!BetterRTP.getInstance().getEco().hasBalance(pWorld))
return BetterRTP.getInstance().getSettings().getPlaceholder_balance(); return BetterRTP.getInstance().getSettings().getPlaceholder_balance();
//True //True
return BetterRTP.getInstance().getSettings().getPlaceholder_true(); return BetterRTP.getInstance().getSettings().getPlaceholder_true();
@@ -154,7 +154,7 @@ public class DepPlaceholderAPI extends PlaceholderExpansion {
RTPSetupInformation setupInformation = new RTPSetupInformation(world, player, player, true); RTPSetupInformation setupInformation = new RTPSetupInformation(world, player, player, true);
WorldPlayer pWorld = HelperRTP.getPlayerWorld(setupInformation); WorldPlayer pWorld = HelperRTP.getPlayerWorld(setupInformation);
//Hunger //Hunger
if (!BetterRTP.getInstance().getEco().hasHunger(player, pWorld)) if (!BetterRTP.getInstance().getEco().hasHunger(pWorld))
return BetterRTP.getInstance().getSettings().getPlaceholder_hunger(); return BetterRTP.getInstance().getSettings().getPlaceholder_hunger();
//True //True
return BetterRTP.getInstance().getSettings().getPlaceholder_true(); return BetterRTP.getInstance().getSettings().getPlaceholder_true();
@@ -7,6 +7,7 @@ import me.SuperRonanCraft.BetterRTP.references.PermissionCheck;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode; import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.WarningHandler; import me.SuperRonanCraft.BetterRTP.references.WarningHandler;
import me.SuperRonanCraft.BetterRTP.references.messages.Message_RTP; import me.SuperRonanCraft.BetterRTP.references.messages.Message_RTP;
import me.SuperRonanCraft.BetterRTP.references.messages.MessagesCore;
import me.SuperRonanCraft.BetterRTP.references.messages.placeholder.Placeholders; import me.SuperRonanCraft.BetterRTP.references.messages.placeholder.Placeholders;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.PermissionGroup; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.PermissionGroup;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.*; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.*;
@@ -93,7 +94,9 @@ public class HelperRTP {
msg = msg.replace(Placeholders.COOLDOWN.name, HelperDate.total(HelperRTP_Check.getCooldown(player, pWorld))); msg = msg.replace(Placeholders.COOLDOWN.name, HelperDate.total(HelperRTP_Check.getCooldown(player, pWorld)));
msg = msg.replace(Placeholders.TIME.name, HelperDate.total(HelperRTP_Check.getCooldown(player, pWorld))); msg = msg.replace(Placeholders.TIME.name, HelperDate.total(HelperRTP_Check.getCooldown(player, pWorld)));
} }
Message_RTP.sms(sendi, msg, pWorld); Message_RTP.sms(player, msg, pWorld);
if (sendi != player)
Message_RTP.sms(sendi, msg, pWorld);
return; return;
} }
//ignore cooldown or else //ignore cooldown or else
@@ -26,12 +26,12 @@ public class HelperRTP_Check {
if (getPl().getRTP().getDisabledWorlds().contains(pWorld.getWorld().getName())) { if (getPl().getRTP().getDisabledWorlds().contains(pWorld.getWorld().getName())) {
return RTP_ERROR_REQUEST_REASON.WORLD_DISABLED; return RTP_ERROR_REQUEST_REASON.WORLD_DISABLED;
} }
if (rtpInfo.isCheckCooldown() && sendi == player && isCoolingDown(sendi, player, pWorld)) { //Is Cooling down if (rtpInfo.isCheckCooldown() && isCoolingDown(player, pWorld)) { //Is Cooling down
return RTP_ERROR_REQUEST_REASON.COOLDOWN; return RTP_ERROR_REQUEST_REASON.COOLDOWN;
} }
if (rtpInfo.isTakeMoney() && !getPl().getEco().hasBalance(sendi, pWorld)) if (rtpInfo.isTakeMoney() && !getPl().getEco().hasBalance(pWorld))
return RTP_ERROR_REQUEST_REASON.PRICE_ECONOMY; return RTP_ERROR_REQUEST_REASON.PRICE_ECONOMY;
if (rtpInfo.isTakeHunger() && !getPl().getEco().hasHunger(sendi, pWorld)) if (rtpInfo.isTakeHunger() && !getPl().getEco().hasHunger(pWorld))
return RTP_ERROR_REQUEST_REASON.PRICE_HUNGER; return RTP_ERROR_REQUEST_REASON.PRICE_HUNGER;
return null; return null;
} }
@@ -40,8 +40,8 @@ public class HelperRTP_Check {
return getPl().getpInfo().getRtping().getOrDefault(player, false); return getPl().getpInfo().getRtping().getOrDefault(player, false);
} }
public static boolean isCoolingDown(CommandSender sendi, Player player, WorldPlayer pWorld) { public static boolean isCoolingDown(Player player, WorldPlayer pWorld) {
if (!applyCooldown(sendi, player)) //Bypassing/Forced? if (!applyCooldown(player))
return false; return false;
return getCooldown(player, pWorld) > 0L || isLocked(player); return getCooldown(player, pWorld) > 0L || isLocked(player);
} }
@@ -69,17 +69,15 @@ public class HelperRTP_Check {
return 0L; return 0L;
} }
public static boolean applyCooldown(CommandSender sendi, Player player) { public static boolean applyCooldown(Player player) {
return getPl().getCooldowns().isEnabled() && !(sendi != player || PermissionNode.BYPASS_COOLDOWN.check(player)); return getPl().getCooldowns().isEnabled()
&& !PermissionNode.BYPASS_COOLDOWN.check(player);
} }
public static boolean applyDelay(Player player, CommandSender sendi) { public static boolean applyDelay(Player player) {
boolean delay = false; return getPl().getSettings().isDelayEnabled()
if (sendi == player) //Forced? && getPl().getSettings().getDelayTime() > 0
if (getPl().getSettings().isDelayEnabled() && getPl().getSettings().getDelayTime() > 0) //Delay enabled? && !PermissionNode.BYPASS_DELAY.check(player);
if (!PermissionNode.BYPASS_DELAY.check(player)) //Can bypass?
delay = true;
return delay;
} }
private static BetterRTP getPl() { private static BetterRTP getPl() {