mirror of
https://github.com/RonanPlugins/BetterRTP.git
synced 2025-08-17 17:15:47 +00:00
api helper classes to better easily access classes
This commit is contained in:
parent
45601b4a34
commit
f819bd782e
@ -7,7 +7,7 @@
|
||||
<groupId>me.SuperRonanCraft</groupId>
|
||||
<artifactId>BetterRTPAddons</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.7</version>
|
||||
<version>1.8</version>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>1.8</maven.compiler.source>
|
||||
@ -108,7 +108,7 @@
|
||||
<dependency>
|
||||
<groupId>me.SuperRonanCraft</groupId>
|
||||
<artifactId>BetterRTP</artifactId>
|
||||
<version>3.2.1-4</version>
|
||||
<version>3.3.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<!-- ProtocolLib -->
|
||||
|
@ -2,6 +2,7 @@ package me.SuperRonanCraft.BetterRTPAddons;
|
||||
|
||||
import me.SuperRonanCraft.BetterRTP.BetterRTP;
|
||||
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.extraEffects.AddonExtraEffects;
|
||||
import me.SuperRonanCraft.BetterRTPAddons.addons.flashback.AddonFlashback;
|
||||
@ -29,7 +30,7 @@ public class AddonsHandler {
|
||||
//addonCount++;
|
||||
}
|
||||
//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() {
|
||||
|
@ -65,7 +65,7 @@ enum Command_types {
|
||||
TELEPORT("Teleport"),
|
||||
CANCELLED("Cancelled");
|
||||
|
||||
String path;
|
||||
final String path;
|
||||
|
||||
Command_types(String path) {
|
||||
this.path = path;
|
||||
|
@ -2,6 +2,7 @@ package me.SuperRonanCraft.BetterRTPAddons.addons.magicStick;
|
||||
|
||||
import me.SuperRonanCraft.BetterRTP.BetterRTP;
|
||||
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
|
||||
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Command;
|
||||
import me.SuperRonanCraft.BetterRTPAddons.Addon;
|
||||
import me.SuperRonanCraft.BetterRTPAddons.Main;
|
||||
import me.SuperRonanCraft.BetterRTPAddons.addons.magicStick.cmds.MagicStickCommand;
|
||||
@ -21,7 +22,7 @@ public class AddonMagicStick implements Addon {
|
||||
|
||||
@Override
|
||||
public void load() {
|
||||
BetterRTP.getInstance().getCmd().registerCommand(cmd, false);
|
||||
HelperRTP_Command.registerCommand(cmd, false);
|
||||
events.load();
|
||||
}
|
||||
|
||||
|
@ -5,6 +5,7 @@ import me.SuperRonanCraft.BetterRTP.player.rtp.RTP;
|
||||
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
|
||||
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_CancelledEvent;
|
||||
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent;
|
||||
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
|
||||
import me.SuperRonanCraft.BetterRTPAddons.Main;
|
||||
import me.SuperRonanCraft.BetterRTPAddons.addons.magicStick.cmds.MagicStickCommand;
|
||||
import me.SuperRonanCraft.BetterRTPAddons.util.Files;
|
||||
@ -64,7 +65,7 @@ public class MagicStickEvents implements Listener {
|
||||
if (listener.p == e.getPlayer())
|
||||
return;
|
||||
//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)
|
||||
teleportingPlayers.add(new PlayerListener(e.getPlayer()));
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp;
|
||||
|
||||
import me.SuperRonanCraft.BetterRTP.BetterRTP;
|
||||
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
|
||||
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Command;
|
||||
import me.SuperRonanCraft.BetterRTPAddons.Addon;
|
||||
import me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp.cmds.PartyCommand;
|
||||
import me.SuperRonanCraft.BetterRTPAddons.util.Files;
|
||||
@ -27,7 +28,7 @@ public class AddonParty implements Addon {
|
||||
@Override
|
||||
public void load() {
|
||||
instance = this;
|
||||
BetterRTP.getInstance().getCmd().registerCommand(cmd, false);
|
||||
HelperRTP_Command.registerCommand(cmd, false);
|
||||
PluginManager pm = BetterRTP.getInstance().getServer().getPluginManager();
|
||||
pm.registerEvents(handler, BetterRTP.getInstance());
|
||||
}
|
||||
|
@ -1,9 +1,7 @@
|
||||
package me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp;
|
||||
|
||||
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.systems.playerdata.PlayerData;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
|
@ -1,11 +1,11 @@
|
||||
package me.SuperRonanCraft.BetterRTPAddons.addons.portals;
|
||||
|
||||
import me.SuperRonanCraft.BetterRTP.BetterRTP;
|
||||
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
|
||||
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP_Command;
|
||||
import me.SuperRonanCraft.BetterRTPAddons.Addon;
|
||||
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.util.Files;
|
||||
|
||||
//Create portals for rtp'ing
|
||||
public class AddonPortals implements Addon {
|
||||
@ -23,7 +23,7 @@ public class AddonPortals implements Addon {
|
||||
|
||||
@Override
|
||||
public void load() {
|
||||
BetterRTP.getInstance().getCmd().registerCommand(cmd, false);
|
||||
HelperRTP_Command.registerCommand(cmd, false);
|
||||
database.load(PortalsDatabase.Columns.values());
|
||||
events.load();
|
||||
portalsCache.load();
|
||||
|
@ -4,6 +4,7 @@ import me.SuperRonanCraft.BetterRTP.BetterRTP;
|
||||
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
|
||||
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_CancelledEvent;
|
||||
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent;
|
||||
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
|
||||
import me.SuperRonanCraft.BetterRTPAddons.Main;
|
||||
import me.SuperRonanCraft.BetterRTPAddons.addons.portals.region.PortalsRegionInfo;
|
||||
import me.SuperRonanCraft.BetterRTPAddons.util.Files;
|
||||
@ -56,7 +57,7 @@ public class PortalsEvents implements Listener {
|
||||
if (ploc.getBlockY() <= Math.max(loc1.getBlockY(), loc2.getBlockY())
|
||||
&& ploc.getBlockY() >= Math.min(loc1.getBlockY(), loc2.getBlockY())) {
|
||||
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);
|
||||
return;
|
||||
}
|
||||
|
2
pom.xml
2
pom.xml
@ -7,7 +7,7 @@
|
||||
<groupId>me.SuperRonanCraft</groupId>
|
||||
<artifactId>BetterRTP</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>3.2.2-2</version>
|
||||
<version>3.3.0</version>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>1.8</maven.compiler.source>
|
||||
|
@ -1,6 +1,7 @@
|
||||
package me.SuperRonanCraft.BetterRTP.player.commands;
|
||||
|
||||
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.CooldownHandler;
|
||||
import me.SuperRonanCraft.BetterRTP.player.rtp.RTPSetupInformation;
|
||||
@ -19,7 +20,6 @@ import java.util.List;
|
||||
public class Commands {
|
||||
|
||||
private final BetterRTP pl;
|
||||
private int delayTimer;
|
||||
public List<RTPCommand> commands = new ArrayList<>();
|
||||
|
||||
public Commands(BetterRTP pl) {
|
||||
@ -28,7 +28,6 @@ public class Commands {
|
||||
|
||||
public void load() {
|
||||
FileBasics.FILETYPE config = FileBasics.FILETYPE.CONFIG;
|
||||
delayTimer = config.getInt("Settings.Delay.Time");
|
||||
commands.clear();
|
||||
for (RTPCommandType cmd : RTPCommandType.values())
|
||||
registerCommand(cmd.getCmd(), false);
|
||||
@ -55,7 +54,7 @@ public class Commands {
|
||||
}
|
||||
pl.getText().getInvalid(sendi, label);
|
||||
} else
|
||||
rtp(sendi, label, null, null);
|
||||
HelperRTP.rtp(sendi, label, null, null);
|
||||
} else
|
||||
pl.getText().getNoPermission(sendi);
|
||||
}
|
||||
@ -80,127 +79,4 @@ public class Commands {
|
||||
}
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
@ -4,6 +4,8 @@ import me.SuperRonanCraft.BetterRTP.BetterRTP;
|
||||
import me.SuperRonanCraft.BetterRTP.player.commands.Commands;
|
||||
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
|
||||
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 java.util.ArrayList;
|
||||
@ -18,7 +20,7 @@ public class CmdBiome implements RTPCommand, RTPCommandHelpable {
|
||||
//rtp biome <biome1, biome2...>
|
||||
public void execute(CommandSender sendi, String label, String[] args) {
|
||||
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
|
||||
usage(sendi, label);
|
||||
}
|
||||
@ -26,7 +28,7 @@ public class CmdBiome implements RTPCommand, RTPCommandHelpable {
|
||||
public List<String> tabComplete(CommandSender sendi, String[] args) {
|
||||
List<String> list = new ArrayList<>();
|
||||
if (args.length == 2)
|
||||
getCmd().addBiomes(list, args);
|
||||
HelperRTP_Info.addBiomes(list, args);
|
||||
return list;
|
||||
}
|
||||
|
||||
|
@ -5,6 +5,7 @@ import me.SuperRonanCraft.BetterRTP.player.commands.Commands;
|
||||
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
|
||||
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
|
||||
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.WorldLocations;
|
||||
import org.bukkit.Bukkit;
|
||||
@ -28,7 +29,7 @@ public class CmdLocation implements RTPCommand, RTPCommandHelpable {
|
||||
for (String location_name : getLocations().keySet()) {
|
||||
if (location_name.equalsIgnoreCase(args[1].toLowerCase())) {
|
||||
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));
|
||||
return;
|
||||
}
|
||||
@ -41,7 +42,7 @@ public class CmdLocation implements RTPCommand, RTPCommandHelpable {
|
||||
if (p != null && p.isOnline()) {
|
||||
for (String location_name : getLocations().keySet()) {
|
||||
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));
|
||||
return;
|
||||
}
|
||||
|
@ -6,6 +6,8 @@ import me.SuperRonanCraft.BetterRTP.player.commands.Commands;
|
||||
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommandHelpable;
|
||||
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
|
||||
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.World;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@ -24,7 +26,7 @@ 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())
|
||||
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)
|
||||
BetterRTP.getInstance().getText().getNotOnline(sendi, args[1]);
|
||||
else
|
||||
@ -33,7 +35,7 @@ public class CmdPlayer implements RTPCommand, RTPCommandHelpable {
|
||||
if (Bukkit.getPlayer(args[1]) != null && Bukkit.getPlayer(args[1]).isOnline()) {
|
||||
World world = Bukkit.getWorld(args[2]);
|
||||
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
|
||||
BetterRTP.getInstance().getText().getNotExist(sendi, args[2]);
|
||||
} else if (Bukkit.getPlayer(args[1]) != null)
|
||||
@ -56,7 +58,7 @@ public class CmdPlayer implements RTPCommand, RTPCommandHelpable {
|
||||
list.add(w.getName());
|
||||
} else if (args.length > 3) {
|
||||
if (RTPCommandType.BIOME.getCmd().permission(sendi))
|
||||
getCmd().addBiomes(list, args);
|
||||
HelperRTP_Info.addBiomes(list, args);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ public class CmdSettings implements RTPCommand, RTPCommandHelpable {
|
||||
if (sendi instanceof Player)
|
||||
BetterRTP.getInstance().getInvs().getInv(RTP_INV_SETTINGS.MAIN).show((Player) sendi);
|
||||
else
|
||||
BetterRTP.getInstance().getCmd().msgNotPlayer(sendi, label);
|
||||
BetterRTP.getInstance().getText().getNotPlayer(sendi, label);
|
||||
}
|
||||
|
||||
public List<String> tabComplete(CommandSender sendi, String[] args) {
|
||||
|
@ -1,10 +1,11 @@
|
||||
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.player.commands.RTPCommandType;
|
||||
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.World;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@ -21,7 +22,7 @@ public class CmdWorld implements RTPCommand, RTPCommandHelpable {
|
||||
//rtp world <world> <biome1, biome2...>
|
||||
public void execute(CommandSender sendi, String label, String[] args) {
|
||||
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
|
||||
usage(sendi, label);
|
||||
}
|
||||
@ -37,7 +38,7 @@ public class CmdWorld implements RTPCommand, RTPCommandHelpable {
|
||||
}
|
||||
} else if (args.length >= 3) {
|
||||
if (RTPCommandType.BIOME.getCmd().permission(sendi))
|
||||
getCmd().addBiomes(list, args);
|
||||
HelperRTP_Info.addBiomes(list, args);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
@ -50,10 +51,6 @@ public class CmdWorld implements RTPCommand, RTPCommandHelpable {
|
||||
BetterRTP.getInstance().getText().getUsageWorld(sendi, label);
|
||||
}
|
||||
|
||||
private Commands getCmd() {
|
||||
return BetterRTP.getInstance().getCmd();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getHelp() {
|
||||
return BetterRTP.getInstance().getText().getHelpWorld();
|
||||
|
@ -4,6 +4,7 @@ import me.SuperRonanCraft.BetterRTP.BetterRTP;
|
||||
import me.SuperRonanCraft.BetterRTP.player.rtp.RTP_TYPE;
|
||||
import me.SuperRonanCraft.BetterRTP.references.Updater;
|
||||
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
|
||||
import me.SuperRonanCraft.BetterRTP.references.helpers.HelperRTP;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
@ -30,7 +31,7 @@ public class Join {
|
||||
//RTP on first join
|
||||
private void rtpOnFirstJoin(Player p) {
|
||||
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() {
|
||||
|
@ -4,6 +4,7 @@ import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.RTPWorld;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
//Called when an rtp has found a valid location
|
||||
public class RTP_FindLocationEvent extends RTPEvent {
|
||||
|
||||
Player p;
|
||||
|
@ -247,4 +247,8 @@ public class Messages {
|
||||
public void error(CommandSender sendi) {
|
||||
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'");
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -7,6 +7,7 @@ public class Settings {
|
||||
|
||||
public boolean debug;
|
||||
public boolean delayEnabled;
|
||||
public int delayTime;
|
||||
public boolean rtpOnFirstJoin_Enabled;
|
||||
public String rtpOnFirstJoin_World;
|
||||
public boolean rtpOnFirstJoin_SetAsRespawn;
|
||||
@ -20,6 +21,7 @@ public class Settings {
|
||||
FileBasics.FILETYPE config = FileBasics.FILETYPE.CONFIG;
|
||||
debug = config.getBoolean("Settings.Debugger");
|
||||
delayEnabled = config.getBoolean("Settings.Delay.Enabled");
|
||||
delayTime = config.getInt("Settings.Delay.Time");
|
||||
rtpOnFirstJoin_Enabled = config.getBoolean("Settings.RtpOnFirstJoin.Enabled");
|
||||
rtpOnFirstJoin_World = config.getString("Settings.RtpOnFirstJoin.World");
|
||||
rtpOnFirstJoin_SetAsRespawn = config.getBoolean("Settings.RtpOnFirstJoin.SetAsRespawn");
|
||||
|
Loading…
x
Reference in New Issue
Block a user