api helper classes to better easily access classes

This commit is contained in:
RonanCraft 2022-03-08 11:14:51 -05:00
parent 45601b4a34
commit f819bd782e
23 changed files with 205 additions and 158 deletions

View File

@ -7,7 +7,7 @@
<groupId>me.SuperRonanCraft</groupId> <groupId>me.SuperRonanCraft</groupId>
<artifactId>BetterRTPAddons</artifactId> <artifactId>BetterRTPAddons</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>
<version>1.7</version> <version>1.8</version>
<properties> <properties>
<maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.source>1.8</maven.compiler.source>
@ -108,7 +108,7 @@
<dependency> <dependency>
<groupId>me.SuperRonanCraft</groupId> <groupId>me.SuperRonanCraft</groupId>
<artifactId>BetterRTP</artifactId> <artifactId>BetterRTP</artifactId>
<version>3.2.1-4</version> <version>3.3.0</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<!-- ProtocolLib --> <!-- ProtocolLib -->

View File

@ -2,6 +2,7 @@ package me.SuperRonanCraft.BetterRTPAddons;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Command;
import me.SuperRonanCraft.BetterRTPAddons.addons.commands.AddonCommands; import me.SuperRonanCraft.BetterRTPAddons.addons.commands.AddonCommands;
import me.SuperRonanCraft.BetterRTPAddons.addons.extraEffects.AddonExtraEffects; import me.SuperRonanCraft.BetterRTPAddons.addons.extraEffects.AddonExtraEffects;
import me.SuperRonanCraft.BetterRTPAddons.addons.flashback.AddonFlashback; import me.SuperRonanCraft.BetterRTPAddons.addons.flashback.AddonFlashback;
@ -29,7 +30,7 @@ public class AddonsHandler {
//addonCount++; //addonCount++;
} }
//Main.getInstance().getLogger().log(Level.INFO, addonCount + "/" + Addons.values().length + " addons were enabled!"); //Main.getInstance().getLogger().log(Level.INFO, addonCount + "/" + Addons.values().length + " addons were enabled!");
BetterRTP.getInstance().getCmd().registerCommand(cmd, false); HelperRTP_Command.registerCommand(cmd, false);
} }
public void unload() { public void unload() {

View File

@ -65,7 +65,7 @@ enum Command_types {
TELEPORT("Teleport"), TELEPORT("Teleport"),
CANCELLED("Cancelled"); CANCELLED("Cancelled");
String path; final String path;
Command_types(String path) { Command_types(String path) {
this.path = path; this.path = path;

View File

@ -2,6 +2,7 @@ package me.SuperRonanCraft.BetterRTPAddons.addons.magicStick;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Command;
import me.SuperRonanCraft.BetterRTPAddons.Addon; import me.SuperRonanCraft.BetterRTPAddons.Addon;
import me.SuperRonanCraft.BetterRTPAddons.Main; import me.SuperRonanCraft.BetterRTPAddons.Main;
import me.SuperRonanCraft.BetterRTPAddons.addons.magicStick.cmds.MagicStickCommand; import me.SuperRonanCraft.BetterRTPAddons.addons.magicStick.cmds.MagicStickCommand;
@ -21,7 +22,7 @@ public class AddonMagicStick implements Addon {
@Override @Override
public void load() { public void load() {
BetterRTP.getInstance().getCmd().registerCommand(cmd, false); HelperRTP_Command.registerCommand(cmd, false);
events.load(); events.load();
} }

View File

@ -5,6 +5,7 @@ import me.SuperRonanCraft.BetterRTP.player.rtp.RTP;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_CancelledEvent; import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_CancelledEvent;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent; import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
import me.SuperRonanCraft.BetterRTPAddons.Main; import me.SuperRonanCraft.BetterRTPAddons.Main;
import me.SuperRonanCraft.BetterRTPAddons.addons.magicStick.cmds.MagicStickCommand; import me.SuperRonanCraft.BetterRTPAddons.addons.magicStick.cmds.MagicStickCommand;
import me.SuperRonanCraft.BetterRTPAddons.util.Files; import me.SuperRonanCraft.BetterRTPAddons.util.Files;
@ -64,7 +65,7 @@ public class MagicStickEvents implements Listener {
if (listener.p == e.getPlayer()) if (listener.p == e.getPlayer())
return; return;
//Rtp the player //Rtp the player
BetterRTP.getInstance().getCmd().tp(e.getPlayer(), e.getPlayer(), e.getPlayer().getWorld().getName(), null, RTP_TYPE.ADDON_MAGICSTICK); HelperRTP.tp(e.getPlayer(), e.getPlayer(), e.getPlayer().getWorld().getName(), null, RTP_TYPE.ADDON_MAGICSTICK);
if (this.take) if (this.take)
teleportingPlayers.add(new PlayerListener(e.getPlayer())); teleportingPlayers.add(new PlayerListener(e.getPlayer()));
} }

View File

@ -2,6 +2,7 @@ package me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Command;
import me.SuperRonanCraft.BetterRTPAddons.Addon; import me.SuperRonanCraft.BetterRTPAddons.Addon;
import me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp.cmds.PartyCommand; import me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp.cmds.PartyCommand;
import me.SuperRonanCraft.BetterRTPAddons.util.Files; import me.SuperRonanCraft.BetterRTPAddons.util.Files;
@ -27,7 +28,7 @@ public class AddonParty implements Addon {
@Override @Override
public void load() { public void load() {
instance = this; instance = this;
BetterRTP.getInstance().getCmd().registerCommand(cmd, false); HelperRTP_Command.registerCommand(cmd, false);
PluginManager pm = BetterRTP.getInstance().getServer().getPluginManager(); PluginManager pm = BetterRTP.getInstance().getServer().getPluginManager();
pm.registerEvents(handler, BetterRTP.getInstance()); pm.registerEvents(handler, BetterRTP.getInstance());
} }

View File

@ -1,9 +1,7 @@
package me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp; package me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_SettingUpEvent; import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_SettingUpEvent;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportEvent;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent; import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent;
import me.SuperRonanCraft.BetterRTP.references.systems.playerdata.PlayerData;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;

View File

@ -1,11 +1,11 @@
package me.SuperRonanCraft.BetterRTPAddons.addons.portals; package me.SuperRonanCraft.BetterRTPAddons.addons.portals;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Command;
import me.SuperRonanCraft.BetterRTPAddons.Addon; import me.SuperRonanCraft.BetterRTPAddons.Addon;
import me.SuperRonanCraft.BetterRTPAddons.addons.portals.cmds.PortalsCommand; import me.SuperRonanCraft.BetterRTPAddons.addons.portals.cmds.PortalsCommand;
import me.SuperRonanCraft.BetterRTPAddons.util.Files;
import me.SuperRonanCraft.BetterRTPAddons.addons.portals.region.PortalsCache; import me.SuperRonanCraft.BetterRTPAddons.addons.portals.region.PortalsCache;
import me.SuperRonanCraft.BetterRTPAddons.util.Files;
//Create portals for rtp'ing //Create portals for rtp'ing
public class AddonPortals implements Addon { public class AddonPortals implements Addon {
@ -23,7 +23,7 @@ public class AddonPortals implements Addon {
@Override @Override
public void load() { public void load() {
BetterRTP.getInstance().getCmd().registerCommand(cmd, false); HelperRTP_Command.registerCommand(cmd, false);
database.load(PortalsDatabase.Columns.values()); database.load(PortalsDatabase.Columns.values());
events.load(); events.load();
portalsCache.load(); portalsCache.load();

View File

@ -4,6 +4,7 @@ import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_CancelledEvent; import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_CancelledEvent;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent; import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
import me.SuperRonanCraft.BetterRTPAddons.Main; import me.SuperRonanCraft.BetterRTPAddons.Main;
import me.SuperRonanCraft.BetterRTPAddons.addons.portals.region.PortalsRegionInfo; import me.SuperRonanCraft.BetterRTPAddons.addons.portals.region.PortalsRegionInfo;
import me.SuperRonanCraft.BetterRTPAddons.util.Files; import me.SuperRonanCraft.BetterRTPAddons.util.Files;
@ -56,7 +57,7 @@ public class PortalsEvents implements Listener {
if (ploc.getBlockY() <= Math.max(loc1.getBlockY(), loc2.getBlockY()) if (ploc.getBlockY() <= Math.max(loc1.getBlockY(), loc2.getBlockY())
&& ploc.getBlockY() >= Math.min(loc1.getBlockY(), loc2.getBlockY())) { && ploc.getBlockY() >= Math.min(loc1.getBlockY(), loc2.getBlockY())) {
playerPortaling.put(e.getPlayer(), portal); playerPortaling.put(e.getPlayer(), portal);
BetterRTP.getInstance().getCmd().tp(e.getPlayer(), e.getPlayer(), HelperRTP.tp(e.getPlayer(), e.getPlayer(),
portal.getWorld(), null, RTP_TYPE.ADDON_PORTAL, ignoreCooldown, ignoreDelay); portal.getWorld(), null, RTP_TYPE.ADDON_PORTAL, ignoreCooldown, ignoreDelay);
return; return;
} }

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.2.2-2</version> <version>3.3.0</version>
<properties> <properties>
<maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.source>1.8</maven.compiler.source>

View File

@ -1,6 +1,7 @@
package me.SuperRonanCraft.BetterRTP.player.commands; package me.SuperRonanCraft.BetterRTP.player.commands;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownData; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownData;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownHandler; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownHandler;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTPSetupInformation; import me.SuperRonanCraft.BetterRTP.player.rtp.RTPSetupInformation;
@ -19,7 +20,6 @@ import java.util.List;
public class Commands { public class Commands {
private final BetterRTP pl; private final BetterRTP pl;
private int delayTimer;
public List<RTPCommand> commands = new ArrayList<>(); public List<RTPCommand> commands = new ArrayList<>();
public Commands(BetterRTP pl) { public Commands(BetterRTP pl) {
@ -28,7 +28,6 @@ public class Commands {
public void load() { public void load() {
FileBasics.FILETYPE config = FileBasics.FILETYPE.CONFIG; FileBasics.FILETYPE config = FileBasics.FILETYPE.CONFIG;
delayTimer = config.getInt("Settings.Delay.Time");
commands.clear(); commands.clear();
for (RTPCommandType cmd : RTPCommandType.values()) for (RTPCommandType cmd : RTPCommandType.values())
registerCommand(cmd.getCmd(), false); registerCommand(cmd.getCmd(), false);
@ -55,7 +54,7 @@ public class Commands {
} }
pl.getText().getInvalid(sendi, label); pl.getText().getInvalid(sendi, label);
} else } else
rtp(sendi, label, null, null); HelperRTP.rtp(sendi, label, null, null);
} else } else
pl.getText().getNoPermission(sendi); pl.getText().getNoPermission(sendi);
} }
@ -80,127 +79,4 @@ public class Commands {
} }
return list; return list;
} }
public void addBiomes(List<String> list, String[] args) {
try {
for (Biome b : Biome.values())
if (b.name().toUpperCase().replaceAll("minecraft:", "").startsWith(args[args.length - 1].toUpperCase()))
list.add(b.name().replaceAll("minecraft:", ""));
} catch (NoSuchMethodError e) {
//Not in 1.14.X
}
}
public void rtp(CommandSender sendi, String cmd, String world, List<String> biomes) {
if (sendi instanceof Player)
tp((Player) sendi, sendi, world, biomes, RTP_TYPE.COMMAND);
else
msgNotPlayer(sendi, cmd);
}
public void msgNotPlayer(CommandSender sendi, String cmd) {
sendi.sendMessage(pl.getText().colorPre("Must be a player to use this command! Try '/" + cmd + " help'"));
}
//Custom biomes
public List<String> getBiomes(String[] args, int start, CommandSender sendi) {
List<String> biomes = new ArrayList<>();
boolean error_sent = false;
if (BetterRTP.getInstance().getPerms().getBiome(sendi))
for (int i = start; i < args.length; i++) {
String str = args[i];
try {
biomes.add(Biome.valueOf(str.replaceAll(",", "").toUpperCase()).name());
} catch (Exception e) {
if (!error_sent) {
pl.getText().getOtherBiome(sendi, str);
error_sent = true;
}
}
}
return biomes;
}
public void tp(Player player, CommandSender sendi, String world, List<String> biomes, RTP_TYPE rtpType) {
this.tp(player, sendi, world, biomes, rtpType, false, false);
}
public void tp(Player player, CommandSender sendi, String world, List<String> biomes, RTP_TYPE rtpType,
boolean ignoreCooldown, boolean ignoreDelay) {
this.tp(player, sendi, world, biomes, rtpType, ignoreCooldown, ignoreDelay, null);
}
public void tp(Player player, CommandSender sendi, String world, List<String> biomes, RTP_TYPE rtpType,
boolean ignoreCooldown, boolean ignoreDelay, WorldLocations locations) {
if (checkRTPing(player, sendi)) { //Is RTP'ing
if (ignoreCooldown || checkCooldown(sendi, player)) { //Is Cooling down
boolean delay = false;
if (!ignoreDelay && sendi == player) //Forced?
if (pl.getSettings().delayEnabled && delayTimer > 0) //Delay enabled?
if (!pl.getPerms().getBypassDelay(player)) //Can bypass?
delay = true;
//player.sendMessage("Cooldown applies: " + cooldownApplies(sendi, player));
RTPSetupInformation setup_info = new RTPSetupInformation(world, sendi, player, true,
biomes, delay, rtpType, locations, !ignoreCooldown && cooldownApplies(sendi, player)); //ignore cooldown or else
pl.getRTP().start(setup_info);
}
}
}
private boolean checkRTPing(Player player, CommandSender sendi) {
if (getPl().getpInfo().getRtping().containsKey(player) && getPl().getpInfo().getRtping().get(player)) {
pl.getText().getAlready(sendi);
return false;
}
return true;
}
private boolean checkCooldown(CommandSender sendi, Player player) {
if (cooldownApplies(sendi, player)) { //Bypassing/Forced?
CooldownHandler cooldownHandler = getPl().getCooldowns();
if (!cooldownHandler.isLoaded() || !cooldownHandler.loadedPlayer(player)) { //Cooldowns have yet to download
pl.getText().getCooldown(sendi, String.valueOf(-1L));
return false;
}
//Cooldown Data
CooldownData cooldownData = getPl().getCooldowns().getPlayer(player);
if (cooldownData != null) {
if (cooldownHandler.locked(cooldownData)) { //Infinite cooldown (locked)
pl.getText().getNoPermission(sendi);
return false;
} else { //Normal cooldown
long Left = cooldownHandler.timeLeft(cooldownData);
if (pl.getSettings().delayEnabled && !pl.getPerms().getBypassDelay(sendi))
Left = Left + delayTimer;
if (Left > 0) {
//Still cooling down
pl.getText().getCooldown(sendi, String.valueOf(Left));
return false;
} else {
//Reset timer, but allow them to tp
//cooldowns.add(id);
return true;
}
}
} //else
//cooldowns.add(id);
}
return true;
}
private boolean cooldownOverride(CommandSender sendi, Player player) {
return sendi != player || pl.getPerms().getBypassCooldown(player);
}
private boolean cooldownEnabled() {
return getPl().getCooldowns().isEnabled();
}
private boolean cooldownApplies(CommandSender sendi, Player player) {
return cooldownEnabled() && !cooldownOverride(sendi, player);
}
private BetterRTP getPl() {
return BetterRTP.getInstance();
}
} }

View File

@ -4,6 +4,8 @@ import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.Commands; import me.SuperRonanCraft.BetterRTP.player.commands.Commands;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Info;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import java.util.ArrayList; import java.util.ArrayList;
@ -18,7 +20,7 @@ public class CmdBiome implements RTPCommand, RTPCommandHelpable {
//rtp biome <biome1, biome2...> //rtp biome <biome1, biome2...>
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)
BetterRTP.getInstance().getCmd().rtp(sendi, label, null, BetterRTP.getInstance().getCmd().getBiomes(args, 1, sendi)); HelperRTP.rtp(sendi, label, null, HelperRTP_Info.getBiomes(args, 1, sendi));
else else
usage(sendi, label); usage(sendi, label);
} }
@ -26,7 +28,7 @@ public class CmdBiome implements RTPCommand, RTPCommandHelpable {
public List<String> tabComplete(CommandSender sendi, String[] args) { public List<String> tabComplete(CommandSender sendi, String[] args) {
List<String> list = new ArrayList<>(); List<String> list = new ArrayList<>();
if (args.length == 2) if (args.length == 2)
getCmd().addBiomes(list, args); HelperRTP_Info.addBiomes(list, args);
return list; return list;
} }

View File

@ -5,6 +5,7 @@ import me.SuperRonanCraft.BetterRTP.player.commands.Commands;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.RTPWorld; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.RTPWorld;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldLocations; import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldLocations;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@ -28,7 +29,7 @@ public class CmdLocation implements RTPCommand, RTPCommandHelpable {
for (String location_name : getLocations().keySet()) { for (String location_name : getLocations().keySet()) {
if (location_name.equalsIgnoreCase(args[1].toLowerCase())) { if (location_name.equalsIgnoreCase(args[1].toLowerCase())) {
Player p = (Player) sendi; Player p = (Player) sendi;
BetterRTP.getInstance().getCmd().tp(p, sendi, null, null, RTP_TYPE.COMMAND, HelperRTP.tp(p, sendi, null, null, RTP_TYPE.COMMAND,
false, false, (WorldLocations) getLocations().get(location_name)); false, false, (WorldLocations) getLocations().get(location_name));
return; return;
} }
@ -41,7 +42,7 @@ public class CmdLocation implements RTPCommand, RTPCommandHelpable {
if (p != null && p.isOnline()) { if (p != null && p.isOnline()) {
for (String location_name : getLocations().keySet()) { for (String location_name : getLocations().keySet()) {
if (location_name.equalsIgnoreCase(args[1].toLowerCase())) { if (location_name.equalsIgnoreCase(args[1].toLowerCase())) {
BetterRTP.getInstance().getCmd().tp(p, sendi, null, null, RTP_TYPE.COMMAND, HelperRTP.tp(p, sendi, null, null, RTP_TYPE.COMMAND,
false, false, (WorldLocations) getLocations().get(location_name)); false, false, (WorldLocations) getLocations().get(location_name));
return; return;
} }

View File

@ -6,6 +6,8 @@ import me.SuperRonanCraft.BetterRTP.player.commands.Commands;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Info;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -24,7 +26,7 @@ public class CmdPlayer implements RTPCommand, RTPCommandHelpable {
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())
getCmd().tp(Bukkit.getPlayer(args[1]), sendi, Bukkit.getPlayer(args[1]).getWorld().getName(), null, RTP_TYPE.FORCED); HelperRTP.tp(Bukkit.getPlayer(args[1]), sendi, Bukkit.getPlayer(args[1]).getWorld().getName(), null, RTP_TYPE.FORCED);
else if (Bukkit.getPlayer(args[1]) != null) else if (Bukkit.getPlayer(args[1]) != null)
BetterRTP.getInstance().getText().getNotOnline(sendi, args[1]); BetterRTP.getInstance().getText().getNotOnline(sendi, args[1]);
else else
@ -33,7 +35,7 @@ public class CmdPlayer implements RTPCommand, RTPCommandHelpable {
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]);
if (world != null) { if (world != null) {
getCmd().tp(Bukkit.getPlayer(args[1]), sendi, world.getName(), getCmd().getBiomes(args, 3, sendi), RTP_TYPE.FORCED); HelperRTP.tp(Bukkit.getPlayer(args[1]), sendi, world.getName(), HelperRTP_Info.getBiomes(args, 3, sendi), RTP_TYPE.FORCED);
} else } else
BetterRTP.getInstance().getText().getNotExist(sendi, args[2]); BetterRTP.getInstance().getText().getNotExist(sendi, args[2]);
} else if (Bukkit.getPlayer(args[1]) != null) } else if (Bukkit.getPlayer(args[1]) != null)
@ -56,7 +58,7 @@ public class CmdPlayer implements RTPCommand, RTPCommandHelpable {
list.add(w.getName()); list.add(w.getName());
} else if (args.length > 3) { } else if (args.length > 3) {
if (RTPCommandType.BIOME.getCmd().permission(sendi)) if (RTPCommandType.BIOME.getCmd().permission(sendi))
getCmd().addBiomes(list, args); HelperRTP_Info.addBiomes(list, args);
} }
return list; return list;
} }

View File

@ -19,7 +19,7 @@ public class CmdSettings implements RTPCommand, RTPCommandHelpable {
if (sendi instanceof Player) if (sendi instanceof Player)
BetterRTP.getInstance().getInvs().getInv(RTP_INV_SETTINGS.MAIN).show((Player) sendi); BetterRTP.getInstance().getInvs().getInv(RTP_INV_SETTINGS.MAIN).show((Player) sendi);
else else
BetterRTP.getInstance().getCmd().msgNotPlayer(sendi, label); BetterRTP.getInstance().getText().getNotPlayer(sendi, label);
} }
public List<String> tabComplete(CommandSender sendi, String[] args) { public List<String> tabComplete(CommandSender sendi, String[] args) {

View File

@ -1,10 +1,11 @@
package me.SuperRonanCraft.BetterRTP.player.commands.types; package me.SuperRonanCraft.BetterRTP.player.commands.types;
import me.SuperRonanCraft.BetterRTP.player.commands.Commands;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandType;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand; import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandType;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Info;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -21,7 +22,7 @@ public class CmdWorld implements RTPCommand, RTPCommandHelpable {
//rtp world <world> <biome1, biome2...> //rtp world <world> <biome1, biome2...>
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)
BetterRTP.getInstance().getCmd().rtp(sendi, label, args[1], BetterRTP.getInstance().getCmd().getBiomes(args, 2, sendi)); HelperRTP.rtp(sendi, label, args[1], HelperRTP_Info.getBiomes(args, 2, sendi));
else else
usage(sendi, label); usage(sendi, label);
} }
@ -37,7 +38,7 @@ public class CmdWorld implements RTPCommand, RTPCommandHelpable {
} }
} else if (args.length >= 3) { } else if (args.length >= 3) {
if (RTPCommandType.BIOME.getCmd().permission(sendi)) if (RTPCommandType.BIOME.getCmd().permission(sendi))
getCmd().addBiomes(list, args); HelperRTP_Info.addBiomes(list, args);
} }
return list; return list;
} }
@ -50,10 +51,6 @@ public class CmdWorld implements RTPCommand, RTPCommandHelpable {
BetterRTP.getInstance().getText().getUsageWorld(sendi, label); BetterRTP.getInstance().getText().getUsageWorld(sendi, label);
} }
private Commands getCmd() {
return BetterRTP.getInstance().getCmd();
}
@Override @Override
public String getHelp() { public String getHelp() {
return BetterRTP.getInstance().getText().getHelpWorld(); return BetterRTP.getInstance().getText().getHelpWorld();

View File

@ -4,6 +4,7 @@ import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE; import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
import me.SuperRonanCraft.BetterRTP.references.Updater; import me.SuperRonanCraft.BetterRTP.references.Updater;
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics; import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerJoinEvent;
@ -30,7 +31,7 @@ public class Join {
//RTP on first join //RTP on first join
private void rtpOnFirstJoin(Player p) { private void rtpOnFirstJoin(Player p) {
if (getPl().getSettings().rtpOnFirstJoin_Enabled && !p.hasPlayedBefore()) if (getPl().getSettings().rtpOnFirstJoin_Enabled && !p.hasPlayedBefore())
getPl().getCmd().tp(p, Bukkit.getConsoleSender(), getPl().getSettings().rtpOnFirstJoin_World, null, RTP_TYPE.JOIN); //Console is sender to override delays HelperRTP.tp(p, Bukkit.getConsoleSender(), getPl().getSettings().rtpOnFirstJoin_World, null, RTP_TYPE.JOIN); //Console is sender to override delays
} }
private BetterRTP getPl() { private BetterRTP getPl() {

View File

@ -4,6 +4,7 @@ import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.RTPWorld;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
//Called when an rtp has found a valid location
public class RTP_FindLocationEvent extends RTPEvent { public class RTP_FindLocationEvent extends RTPEvent {
Player p; Player p;

View File

@ -247,4 +247,8 @@ public class Messages {
public void error(CommandSender sendi) { public void error(CommandSender sendi) {
sms(sendi, "&cERROR &7Seems like your Administrator did not update their language file!"); sms(sendi, "&cERROR &7Seems like your Administrator did not update their language file!");
} }
public void getNotPlayer(CommandSender sendi, String cmd) {
sms(sendi, "Must be a player to use this command! Try '/" + cmd + " help'");
}
} }

View File

@ -0,0 +1,105 @@
package me.SuperRonanCraft.BetterRTP.references.helpers;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTPSetupInformation;
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownData;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownHandler;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldLocations;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.List;
public class HelperRTP {
public static void rtp(CommandSender sendi, String cmd, String world, List<String> biomes) {
if (sendi instanceof Player)
HelperRTP.tp((Player) sendi, sendi, world, biomes, RTP_TYPE.COMMAND);
else
BetterRTP.getInstance().getText().getNotPlayer(sendi, cmd);
}
public static void tp(Player player, CommandSender sendi, String world, List<String> biomes, RTP_TYPE rtpType) {
tp(player, sendi, world, biomes, rtpType, false, false);
}
public static void tp(Player player, CommandSender sendi, String world, List<String> biomes, RTP_TYPE rtpType,
boolean ignoreCooldown, boolean ignoreDelay) {
tp(player, sendi, world, biomes, rtpType, ignoreCooldown, ignoreDelay, null);
}
public static void tp(Player player, CommandSender sendi, String world, List<String> biomes, RTP_TYPE rtpType,
boolean ignoreCooldown, boolean ignoreDelay, WorldLocations locations) {
if (checkRTPing(player, sendi)) { //Is RTP'ing
if (ignoreCooldown || checkCooldown(sendi, player)) { //Is Cooling down
boolean delay = false;
if (!ignoreDelay && sendi == player) //Forced?
if (getPl().getSettings().delayEnabled && getPl().getSettings().delayTime > 0) //Delay enabled?
if (!getPl().getPerms().getBypassDelay(player)) //Can bypass?
delay = true;
//player.sendMessage("Cooldown applies: " + cooldownApplies(sendi, player));
RTPSetupInformation setup_info = new RTPSetupInformation(world, sendi, player, true,
biomes, delay, rtpType, locations, !ignoreCooldown && cooldownApplies(sendi, player)); //ignore cooldown or else
getPl().getRTP().start(setup_info);
}
}
}
private static boolean checkRTPing(Player player, CommandSender sendi) {
if (getPl().getpInfo().getRtping().containsKey(player) && getPl().getpInfo().getRtping().get(player)) {
getPl().getText().getAlready(sendi);
return false;
}
return true;
}
private static boolean checkCooldown(CommandSender sendi, Player player) {
if (cooldownApplies(sendi, player)) { //Bypassing/Forced?
CooldownHandler cooldownHandler = getPl().getCooldowns();
if (!cooldownHandler.isLoaded() || !cooldownHandler.loadedPlayer(player)) { //Cooldowns have yet to download
getPl().getText().getCooldown(sendi, String.valueOf(-1L));
return false;
}
//Cooldown Data
CooldownData cooldownData = getPl().getCooldowns().getPlayer(player);
if (cooldownData != null) {
if (cooldownHandler.locked(cooldownData)) { //Infinite cooldown (locked)
getPl().getText().getNoPermission(sendi);
return false;
} else { //Normal cooldown
long Left = cooldownHandler.timeLeft(cooldownData);
if (getPl().getSettings().delayEnabled && !getPl().getPerms().getBypassDelay(sendi))
Left = Left + getPl().getSettings().delayTime;
if (Left > 0) {
//Still cooling down
getPl().getText().getCooldown(sendi, String.valueOf(Left));
return false;
} else {
//Reset timer, but allow them to tp
//cooldowns.add(id);
return true;
}
}
} //else
//cooldowns.add(id);
}
return true;
}
private static boolean cooldownOverride(CommandSender sendi, Player player) {
return sendi != player || getPl().getPerms().getBypassCooldown(player);
}
private static boolean cooldownEnabled() {
return getPl().getCooldowns().isEnabled();
}
private static boolean cooldownApplies(CommandSender sendi, Player player) {
return cooldownEnabled() && !cooldownOverride(sendi, player);
}
private static BetterRTP getPl() {
return BetterRTP.getInstance();
}
}

View File

@ -0,0 +1,12 @@
package me.SuperRonanCraft.BetterRTP.references.helpers;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
public class HelperRTP_Command {
public static void registerCommand(RTPCommand cmd, boolean forced) {
BetterRTP.getInstance().getCmd().registerCommand(cmd, forced);
}
}

View File

@ -0,0 +1,41 @@
package me.SuperRonanCraft.BetterRTP.references.helpers;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import org.bukkit.block.Biome;
import org.bukkit.command.CommandSender;
import java.util.ArrayList;
import java.util.List;
public class HelperRTP_Info {
//Custom biomes
public static List<String> getBiomes(String[] args, int start, CommandSender sendi) {
List<String> biomes = new ArrayList<>();
boolean error_sent = false;
if (BetterRTP.getInstance().getPerms().getBiome(sendi))
for (int i = start; i < args.length; i++) {
String str = args[i];
try {
biomes.add(Biome.valueOf(str.replaceAll(",", "").toUpperCase()).name());
} catch (Exception e) {
if (!error_sent) {
BetterRTP.getInstance().getText().getOtherBiome(sendi, str);
error_sent = true;
}
}
}
return biomes;
}
public static void addBiomes(List<String> list, String[] args) {
try {
for (Biome b : Biome.values())
if (b.name().toUpperCase().replaceAll("minecraft:", "").startsWith(args[args.length - 1].toUpperCase()))
list.add(b.name().replaceAll("minecraft:", ""));
} catch (NoSuchMethodError e) {
//Not in 1.14.X
}
}
}

View File

@ -7,6 +7,7 @@ public class Settings {
public boolean debug; public boolean debug;
public boolean delayEnabled; public boolean delayEnabled;
public int delayTime;
public boolean rtpOnFirstJoin_Enabled; public boolean rtpOnFirstJoin_Enabled;
public String rtpOnFirstJoin_World; public String rtpOnFirstJoin_World;
public boolean rtpOnFirstJoin_SetAsRespawn; public boolean rtpOnFirstJoin_SetAsRespawn;
@ -20,6 +21,7 @@ public class Settings {
FileBasics.FILETYPE config = FileBasics.FILETYPE.CONFIG; FileBasics.FILETYPE config = FileBasics.FILETYPE.CONFIG;
debug = config.getBoolean("Settings.Debugger"); debug = config.getBoolean("Settings.Debugger");
delayEnabled = config.getBoolean("Settings.Delay.Enabled"); delayEnabled = config.getBoolean("Settings.Delay.Enabled");
delayTime = config.getInt("Settings.Delay.Time");
rtpOnFirstJoin_Enabled = config.getBoolean("Settings.RtpOnFirstJoin.Enabled"); rtpOnFirstJoin_Enabled = config.getBoolean("Settings.RtpOnFirstJoin.Enabled");
rtpOnFirstJoin_World = config.getString("Settings.RtpOnFirstJoin.World"); rtpOnFirstJoin_World = config.getString("Settings.RtpOnFirstJoin.World");
rtpOnFirstJoin_SetAsRespawn = config.getBoolean("Settings.RtpOnFirstJoin.SetAsRespawn"); rtpOnFirstJoin_SetAsRespawn = config.getBoolean("Settings.RtpOnFirstJoin.SetAsRespawn");