mirror of
https://github.com/RonanPlugins/BetterRTP.git
synced 2025-08-17 17:15:47 +00:00
2.10.0
This commit is contained in:
parent
3399eafa04
commit
07dae8fbc5
@ -1,6 +1,6 @@
|
||||
package me.SuperRonanCraft.BetterRTP;
|
||||
|
||||
import me.SuperRonanCraft.BetterRTP.player.Commands;
|
||||
import me.SuperRonanCraft.BetterRTP.player.commands.Commands;
|
||||
import me.SuperRonanCraft.BetterRTP.player.RTP;
|
||||
import me.SuperRonanCraft.BetterRTP.player.events.Listener;
|
||||
import me.SuperRonanCraft.BetterRTP.references.Econ;
|
||||
|
@ -1,291 +0,0 @@
|
||||
package me.SuperRonanCraft.BetterRTP.player;
|
||||
|
||||
import me.SuperRonanCraft.BetterRTP.Main;
|
||||
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Biome;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class Commands {
|
||||
|
||||
private Main pl;
|
||||
HashMap<UUID, Long> cooldowns = new HashMap<>();
|
||||
public HashMap<UUID, Boolean> rtping = new HashMap<>();
|
||||
private boolean cooldownTimer;
|
||||
private int timer, cooldown;
|
||||
public static String[] cmds = {"help", "player", "world", "version", "reload", "biome"};
|
||||
|
||||
public Commands(Main pl) {
|
||||
this.pl = pl;
|
||||
}
|
||||
|
||||
public void load() {
|
||||
FileBasics.FILETYPE config = pl.getFiles().getType(FileBasics.FILETYPE.CONFIG);
|
||||
timer = config.getInt("Settings.Delay.Time");
|
||||
cooldownTimer = config.getBoolean("Settings.Cooldown.Enabled");
|
||||
cooldown = config.getInt("Settings.Cooldown.Time");
|
||||
cooldowns.clear();
|
||||
}
|
||||
|
||||
public void commandExecuted(CommandSender sendi, String cmd, String[] args) {
|
||||
if (pl.getPerms().getUse(sendi))
|
||||
if (args == null)
|
||||
rtp(sendi, cmd, null, null);
|
||||
else if (args.length == 1) {
|
||||
if (args[0].equalsIgnoreCase(cmds[0]))
|
||||
help(sendi, cmd);
|
||||
else if (args[0].equalsIgnoreCase(cmds[1]))
|
||||
player(sendi, cmd, args);
|
||||
else if (args[0].equalsIgnoreCase(cmds[2]))
|
||||
world(sendi, cmd, args);
|
||||
else if (args[0].equalsIgnoreCase(cmds[3]))
|
||||
version(sendi);
|
||||
else if (args[0].equalsIgnoreCase(cmds[4]))
|
||||
reload(sendi);
|
||||
else if (args[0].equalsIgnoreCase(cmds[5]))
|
||||
biome(sendi, cmd, args);
|
||||
else
|
||||
invalid(sendi, cmd);
|
||||
} else if (args.length >= 2 && args.length <= 3) {
|
||||
if (args[0].equalsIgnoreCase(cmds[1]))
|
||||
player(sendi, cmd, args);
|
||||
else if (args[0].equalsIgnoreCase(cmds[2]))
|
||||
world(sendi, cmd, args);
|
||||
else if (args[0].equalsIgnoreCase(cmds[5]))
|
||||
biome(sendi, cmd, args);
|
||||
else
|
||||
invalid(sendi, cmd);
|
||||
} else if (args.length > 3) {
|
||||
if (args[0].equalsIgnoreCase(cmds[5]))
|
||||
biome(sendi, cmd, args);
|
||||
else if (args[0].equalsIgnoreCase(cmds[1]))
|
||||
player(sendi, cmd, args);
|
||||
else
|
||||
invalid(sendi, cmd);
|
||||
} else
|
||||
rtp(sendi, cmd, null, null);
|
||||
else
|
||||
noPerm(sendi);
|
||||
}
|
||||
|
||||
public List<String> onTabComplete(CommandSender sendi, String[] args) {
|
||||
List<String> list = new ArrayList<>();
|
||||
if (args.length == 1) {
|
||||
for (String s : cmds)
|
||||
if (s.startsWith(args[0]) && permOf(sendi, s))
|
||||
list.add(s);
|
||||
} else if (args.length == 2) {
|
||||
if (args[0].equalsIgnoreCase(cmds[1]) && permOf(sendi, cmds[1])) {
|
||||
for (Player p : Bukkit.getOnlinePlayers())
|
||||
if (p.getDisplayName().startsWith(args[1]))
|
||||
list.add(p.getDisplayName());
|
||||
} else if (args[0].equalsIgnoreCase(cmds[2]) && permOf(sendi, cmds[2]))
|
||||
for (World w : Bukkit.getWorlds())
|
||||
if (w.getName().startsWith(args[1]) && !pl.getRTP().disabledWorlds().contains(w.getName()) && pl
|
||||
.getPerms().getAWorld(sendi, w.getName()))
|
||||
list.add(w.getName());
|
||||
} else if (args.length == 3) {
|
||||
if (args[0].equalsIgnoreCase(cmds[1]) && permOf(sendi, cmds[1])) {
|
||||
for (World w : Bukkit.getWorlds())
|
||||
if (w.getName().startsWith(args[2]))
|
||||
list.add(w.getName());
|
||||
} else if (args[0].equalsIgnoreCase(cmds[2]) && permOf(sendi, cmds[2]) && permOf(sendi, cmds[5]))
|
||||
addBiomes(list, args);
|
||||
} else if (args.length > 3) {
|
||||
if (args[0].equalsIgnoreCase(cmds[2]) && permOf(sendi, cmds[2]) && permOf(sendi, cmds[5])) {
|
||||
addBiomes(list, args);
|
||||
} else if (args[0].equalsIgnoreCase(cmds[1]) && permOf(sendi, cmds[1]) && permOf(sendi, cmds[5]))
|
||||
addBiomes(list, args);
|
||||
}
|
||||
if (args[0].equalsIgnoreCase(cmds[5]) && permOf(sendi, cmds[5]))
|
||||
addBiomes(list, args);
|
||||
return list;
|
||||
}
|
||||
|
||||
private 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
|
||||
}
|
||||
}
|
||||
|
||||
//COMMANDS
|
||||
private void rtp(CommandSender sendi, String cmd, String world, List<String> biomes) {
|
||||
if (sendi instanceof Player)
|
||||
tp((Player) sendi, sendi, world, biomes);
|
||||
else
|
||||
sendi.sendMessage(pl.getText().colorPre("Must be a player to use this command! Try '/" + cmd + " help'"));
|
||||
}
|
||||
|
||||
private void help(CommandSender sendi, String cmd) {
|
||||
pl.getText().getHelpList(sendi, cmd);
|
||||
if (pl.getPerms().getRtpOther(sendi))
|
||||
pl.getText().getHelpPlayer(sendi, cmd);
|
||||
if (sendi instanceof Player) {
|
||||
if (pl.getPerms().getAWorld(sendi, null))
|
||||
pl.getText().getHelpWorld(sendi, cmd);
|
||||
} else
|
||||
pl.getText().getHelpWorld(sendi, cmd);
|
||||
if (pl.getPerms().getReload(sendi))
|
||||
pl.getText().getHelpReload(sendi, cmd);
|
||||
}
|
||||
|
||||
@SuppressWarnings("all")
|
||||
private void player(CommandSender sendi, String cmd, String[] args) {
|
||||
if (permOf(sendi, args[0]))
|
||||
if (args.length == 2)
|
||||
if (Bukkit.getPlayer(args[1]) != null && Bukkit.getPlayer(args[1]).isOnline())
|
||||
tp(Bukkit.getPlayer(args[1]), sendi, Bukkit.getPlayer(args[1]).getWorld().getName(), null);
|
||||
else if (Bukkit.getPlayer(args[1]) != null)
|
||||
playerNotOnline(sendi, args[1]);
|
||||
else
|
||||
usage(sendi, cmd, args[0]);
|
||||
else if (args.length >= 3)
|
||||
if (Bukkit.getPlayer(args[1]) != null && Bukkit.getPlayer(args[1]).isOnline())
|
||||
tp(Bukkit.getPlayer(args[1]), sendi, Bukkit.getWorld(args[2]).getName(), getBiomes(args, 3, sendi));
|
||||
else if (Bukkit.getPlayer(args[1]) != null)
|
||||
playerNotOnline(sendi, args[1]);
|
||||
else
|
||||
usage(sendi, cmd, args[0]);
|
||||
else
|
||||
usage(sendi, cmd, args[0]);
|
||||
else
|
||||
noPerm(sendi);
|
||||
}
|
||||
|
||||
//rtp world <world> <biome1, biome2...>
|
||||
private void world(CommandSender sendi, String cmd, String[] args) {
|
||||
if (permOf(sendi, args[0]))
|
||||
if (args.length >= 2)
|
||||
rtp(sendi, cmd, args[1], getBiomes(args, 2, sendi));
|
||||
else
|
||||
usage(sendi, cmd, args[0]);
|
||||
else
|
||||
noPerm(sendi);
|
||||
}
|
||||
|
||||
//rtp biome <biome1, biome2...>
|
||||
private void biome(CommandSender sendi, String cmd, String[] args) {
|
||||
if (permOf(sendi, args[0]))
|
||||
if (args.length >= 2)
|
||||
rtp(sendi, cmd, null, getBiomes(args, 1, sendi));
|
||||
else
|
||||
usage(sendi, cmd, args[0]);
|
||||
else
|
||||
noPerm(sendi);
|
||||
}
|
||||
|
||||
private List<String> getBiomes(String[] args, int start, CommandSender sendi) {
|
||||
List<String> biomes = new ArrayList<>();
|
||||
boolean error_sent = false;
|
||||
if (permOf(sendi, cmds[5]))
|
||||
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;
|
||||
}
|
||||
|
||||
private void reload(CommandSender sendi) {
|
||||
if (pl.getPerms().getReload(sendi))
|
||||
pl.reload(sendi);
|
||||
else
|
||||
noPerm(sendi);
|
||||
}
|
||||
|
||||
private void version(CommandSender sendi) {
|
||||
sendi.sendMessage(pl.getText().colorPre("&aVersion #&e" + pl.getDescription().getVersion()));
|
||||
}
|
||||
|
||||
private void invalid(CommandSender sendi, String cmd) {
|
||||
pl.getText().getInvalid(sendi, cmd);
|
||||
}
|
||||
|
||||
//INFORMATION
|
||||
private void usage(CommandSender sendi, String cmd, String arg) {
|
||||
if (arg.equalsIgnoreCase(cmds[1]))
|
||||
pl.getText().getUsageRTPOther(sendi, cmd);
|
||||
else if (arg.equalsIgnoreCase(cmds[2]))
|
||||
pl.getText().getUsageWorld(sendi, cmd);
|
||||
else if (arg.equalsIgnoreCase(cmds[5]))
|
||||
pl.getText().getUsageBiome(sendi, cmd);
|
||||
else
|
||||
pl.getText().sms(sendi, "&cSomething went wrong!");
|
||||
}
|
||||
|
||||
private void playerNotOnline(CommandSender sendi, String player) {
|
||||
pl.getText().getNotOnline(sendi, player);
|
||||
}
|
||||
|
||||
private void noPerm(CommandSender sendi) {
|
||||
pl.getText().getNoPermission(sendi);
|
||||
}
|
||||
|
||||
private void tp(Player player, CommandSender sendi, String world, List<String> biomes) {
|
||||
if (cooldown(sendi, player)) {
|
||||
boolean delay = false;
|
||||
if (!pl.getPerms().getBypassDelay(player))
|
||||
if (timer != 0)
|
||||
if (sendi == player)
|
||||
delay = true;
|
||||
pl.getRTP().start(player, sendi, world, biomes, delay);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean cooldown(CommandSender sendi, Player player) {
|
||||
if (sendi != player || pl.getPerms().getBypassCooldown(player))
|
||||
return true;
|
||||
else if (rtping.containsKey(player.getUniqueId()))
|
||||
if (rtping.get(player.getUniqueId())) {
|
||||
pl.getText().getAlready(player);
|
||||
return false;
|
||||
}
|
||||
if (cooldownTimer) {
|
||||
Player p = (Player) sendi;
|
||||
if (cooldowns.containsKey(p.getUniqueId())) {
|
||||
long Left = ((cooldowns.get(p.getUniqueId()) / 1000) + cooldown) - (System.currentTimeMillis() / 1000);
|
||||
if (!pl.getPerms().getBypassDelay(p))
|
||||
Left = Left + timer;
|
||||
if (Left > 0) {
|
||||
// Still cooling down
|
||||
pl.getText().getCooldown(sendi, String.valueOf(Left));
|
||||
return false;
|
||||
} else {
|
||||
cooldowns.remove(p.getUniqueId());
|
||||
return true;
|
||||
}
|
||||
} else
|
||||
cooldowns.put(p.getUniqueId(), System.currentTimeMillis());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean permOf(CommandSender sendi, String cmd) {
|
||||
if (cmd.equalsIgnoreCase(cmds[4]))
|
||||
return pl.getPerms().getReload(sendi);
|
||||
else if (cmd.equalsIgnoreCase(cmds[1]))
|
||||
return pl.getPerms().getRtpOther(sendi);
|
||||
else if (cmd.equalsIgnoreCase(cmds[2]))
|
||||
return pl.getPerms().getWorld(sendi);
|
||||
else if (cmd.equalsIgnoreCase(cmds[5]))
|
||||
return pl.getPerms().getBiome(sendi);
|
||||
return true;
|
||||
}
|
||||
}
|
@ -26,8 +26,8 @@ public class RTP {
|
||||
|
||||
private Main pl;
|
||||
//Cache
|
||||
private HashMap<String, RTPWorld> customWorlds = new HashMap<>();
|
||||
private HashMap<String, String> overriden = new HashMap<>();
|
||||
public HashMap<String, RTPWorld> customWorlds = new HashMap<>();
|
||||
public HashMap<String, String> overriden = new HashMap<>();
|
||||
public me.SuperRonanCraft.BetterRTP.references.worlds.Default Default = new Default();
|
||||
private Random rn = new Random();
|
||||
private List<String> disabledWorlds, blockList;
|
||||
@ -62,7 +62,7 @@ public class RTP {
|
||||
customWorlds.put(entry.getKey().toString(), new Custom(entry.getKey().toString()));
|
||||
}
|
||||
|
||||
List<String> disabledWorlds() {
|
||||
public List<String> disabledWorlds() {
|
||||
return disabledWorlds;
|
||||
}
|
||||
|
||||
@ -71,7 +71,7 @@ public class RTP {
|
||||
return disabledWorlds;
|
||||
}
|
||||
|
||||
void start(Player p, CommandSender sendi, String worl, List<String> biomes, boolean delay) {
|
||||
public void start(Player p, CommandSender sendi, String worl, List<String> biomes, boolean delay) {
|
||||
// Check overrides
|
||||
String world = worl;
|
||||
if (world == null)
|
||||
@ -275,6 +275,13 @@ public class RTP {
|
||||
|
||||
private Location getLocAtNormal(int x, int z, World world, Float yaw, Float pitch, PlayerWorld pWorld) {
|
||||
Block b = world.getHighestBlockAt(x, z);
|
||||
//System.out.println("-----------");
|
||||
//System.out.println(b.getType().isSolid() + " " + b.getType().name());
|
||||
if (b.getType() == Material.AIR || !b.getType().isSolid()) { //1.15.1 or less
|
||||
int y = world.getHighestBlockYAt(x, z);
|
||||
b = world.getBlockAt(x, y - 1, z);
|
||||
}
|
||||
//System.out.println(b.getType().isSolid() + " " + b.getType().name());
|
||||
if (!badBlock(b.getType().name(), x, z, pWorld.getWorld(), pWorld.getBiomes()))
|
||||
return new Location(world, (x + 0.5), b.getY() + 1, (z + 0.5), yaw, pitch);
|
||||
return null;
|
||||
|
@ -0,0 +1,23 @@
|
||||
package me.SuperRonanCraft.BetterRTP.player.commands;
|
||||
|
||||
import me.SuperRonanCraft.BetterRTP.player.commands.types.*;
|
||||
|
||||
public enum CommandTypes {
|
||||
BIOME(new CmdBiome()),
|
||||
HELP(new CmdHelp()),
|
||||
INFO(new CmdInfo()),
|
||||
PLAYER(new CmdPlayer()),
|
||||
RELOAD(new CmdReload()),
|
||||
VERSION(new CmdVersion()),
|
||||
WORLD(new CmdWorld());
|
||||
|
||||
private RTPCommand cmd;
|
||||
|
||||
CommandTypes(RTPCommand cmd) {
|
||||
this.cmd = cmd;
|
||||
}
|
||||
|
||||
public RTPCommand getCmd() {
|
||||
return cmd;
|
||||
}
|
||||
}
|
@ -0,0 +1,159 @@
|
||||
package me.SuperRonanCraft.BetterRTP.player.commands;
|
||||
|
||||
import me.SuperRonanCraft.BetterRTP.Main;
|
||||
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
|
||||
import org.bukkit.block.Biome;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class Commands {
|
||||
|
||||
private Main pl;
|
||||
public HashMap<UUID, Long> cooldowns = new HashMap<>();
|
||||
public HashMap<UUID, Boolean> rtping = new HashMap<>();
|
||||
private boolean cooldownTimer;
|
||||
private int timer, cooldown;
|
||||
public static String[] cmds = {"help", "player", "world", "version", "reload", "biome"};
|
||||
|
||||
public Commands(Main pl) {
|
||||
this.pl = pl;
|
||||
}
|
||||
|
||||
public void load() {
|
||||
FileBasics.FILETYPE config = pl.getFiles().getType(FileBasics.FILETYPE.CONFIG);
|
||||
timer = config.getInt("Settings.Delay.Time");
|
||||
cooldownTimer = config.getBoolean("Settings.Cooldown.Enabled");
|
||||
cooldown = config.getInt("Settings.Cooldown.Time");
|
||||
cooldowns.clear();
|
||||
}
|
||||
|
||||
public void commandExecuted(CommandSender sendi, String label, String[] args) {
|
||||
if (pl.getPerms().getUse(sendi)) {
|
||||
if (args.length > 0) {
|
||||
for (CommandTypes cmd : CommandTypes.values()) {
|
||||
if (cmd.name().equalsIgnoreCase(args[0])) {
|
||||
if (cmd.getCmd().permission(sendi))
|
||||
cmd.getCmd().execute(sendi, label, args);
|
||||
else
|
||||
noPerm(sendi);
|
||||
return;
|
||||
}
|
||||
}
|
||||
invalid(sendi, label);
|
||||
} else
|
||||
rtp(sendi, label, null, null);
|
||||
} else
|
||||
noPerm(sendi);
|
||||
}
|
||||
|
||||
private void invalid(CommandSender sendi, String cmd) {
|
||||
pl.getText().getInvalid(sendi, cmd);
|
||||
}
|
||||
|
||||
public List<String> onTabComplete(CommandSender sendi, String[] args) {
|
||||
List<String> list = new ArrayList<>();
|
||||
if (args.length == 1) {
|
||||
for (CommandTypes cmd : CommandTypes.values()) {
|
||||
if (cmd.name().toLowerCase().startsWith(args[0].toLowerCase()) && cmd.getCmd().permission(sendi))
|
||||
list.add(cmd.name().toLowerCase());
|
||||
}
|
||||
} else if (args.length > 1) {
|
||||
for (CommandTypes cmd : CommandTypes.values()) {
|
||||
if (cmd.name().equalsIgnoreCase(args[0]) && cmd.getCmd().permission(sendi)) {
|
||||
List<String> _cmdlist = cmd.getCmd().tabComplete(sendi, args);
|
||||
if (_cmdlist != null)
|
||||
list.addAll(_cmdlist);
|
||||
}
|
||||
}
|
||||
}
|
||||
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);
|
||||
else
|
||||
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 (Main.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 playerNotOnline(CommandSender sendi, String player) {
|
||||
pl.getText().getNotOnline(sendi, player);
|
||||
}
|
||||
|
||||
private void noPerm(CommandSender sendi) {
|
||||
pl.getText().getNoPermission(sendi);
|
||||
}
|
||||
|
||||
public void tp(Player player, CommandSender sendi, String world, List<String> biomes) {
|
||||
if (cooldown(sendi, player)) {
|
||||
boolean delay = false;
|
||||
if (!pl.getPerms().getBypassDelay(player))
|
||||
if (timer != 0)
|
||||
if (sendi == player)
|
||||
delay = true;
|
||||
pl.getRTP().start(player, sendi, world, biomes, delay);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean cooldown(CommandSender sendi, Player player) {
|
||||
if (sendi != player || pl.getPerms().getBypassCooldown(player))
|
||||
return true;
|
||||
else if (rtping.containsKey(player.getUniqueId()))
|
||||
if (rtping.get(player.getUniqueId())) {
|
||||
pl.getText().getAlready(player);
|
||||
return false;
|
||||
}
|
||||
if (cooldownTimer) {
|
||||
Player p = (Player) sendi;
|
||||
if (cooldowns.containsKey(p.getUniqueId())) {
|
||||
long Left = ((cooldowns.get(p.getUniqueId()) / 1000) + cooldown) - (System.currentTimeMillis() / 1000);
|
||||
if (!pl.getPerms().getBypassDelay(p))
|
||||
Left = Left + timer;
|
||||
if (Left > 0) {
|
||||
// Still cooling down
|
||||
pl.getText().getCooldown(sendi, String.valueOf(Left));
|
||||
return false;
|
||||
} else {
|
||||
cooldowns.remove(p.getUniqueId());
|
||||
return true;
|
||||
}
|
||||
} else
|
||||
cooldowns.put(p.getUniqueId(), System.currentTimeMillis());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package me.SuperRonanCraft.BetterRTP.player.commands;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface RTPCommand {
|
||||
|
||||
void execute(CommandSender sendi, String label, String[] args);
|
||||
|
||||
List<String> tabComplete(CommandSender sendi, String[] args);
|
||||
|
||||
boolean permission(CommandSender sendi);
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
package me.SuperRonanCraft.BetterRTP.player.commands.types;
|
||||
|
||||
import me.SuperRonanCraft.BetterRTP.Main;
|
||||
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class CmdBiome implements RTPCommand {
|
||||
|
||||
//rtp biome <biome1, biome2...>
|
||||
public void execute(CommandSender sendi, String label, String[] args) {
|
||||
if (args.length >= 2)
|
||||
Main.getInstance().getCmd().rtp(sendi, label, null, Main.getInstance().getCmd().getBiomes(args, 1, sendi));
|
||||
else
|
||||
usage(sendi, label);
|
||||
}
|
||||
|
||||
public List<String> tabComplete(CommandSender sendi, String[] args) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean permission(CommandSender sendi) {
|
||||
return Main.getInstance().getPerms().getBiome(sendi);
|
||||
}
|
||||
|
||||
public void usage(CommandSender sendi, String label) {
|
||||
Main.getInstance().getText().getUsageBiome(sendi, label);
|
||||
}
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package me.SuperRonanCraft.BetterRTP.player.commands.types;
|
||||
|
||||
import me.SuperRonanCraft.BetterRTP.Main;
|
||||
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class CmdHelp implements RTPCommand {
|
||||
|
||||
public void execute(CommandSender sendi, String label, String[] args) {
|
||||
Main pl = Main.getInstance();
|
||||
pl.getText().getHelpList(sendi, label);
|
||||
if (pl.getPerms().getRtpOther(sendi))
|
||||
pl.getText().getHelpPlayer(sendi, label);
|
||||
if (sendi instanceof Player) {
|
||||
if (pl.getPerms().getAWorld(sendi, null))
|
||||
pl.getText().getHelpWorld(sendi, label);
|
||||
} else
|
||||
pl.getText().getHelpWorld(sendi, label);
|
||||
if (pl.getPerms().getReload(sendi))
|
||||
pl.getText().getHelpReload(sendi, label);
|
||||
}
|
||||
|
||||
public List<String> tabComplete(CommandSender sendi, String[] args) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public boolean permission(CommandSender sendi) {
|
||||
return true;
|
||||
}
|
||||
}
|
@ -0,0 +1,68 @@
|
||||
package me.SuperRonanCraft.BetterRTP.player.commands.types;
|
||||
|
||||
import me.SuperRonanCraft.BetterRTP.Main;
|
||||
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
|
||||
import me.SuperRonanCraft.BetterRTP.references.worlds.RTPWorld;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.WorldBorder;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class CmdInfo implements RTPCommand {
|
||||
|
||||
public void execute(CommandSender sendi, String label, String[] args) {
|
||||
List<String> info = new ArrayList<>();
|
||||
info.add("&6BetterRTP Info");
|
||||
for (World w : Bukkit.getWorlds()) {
|
||||
info.add("&aWorld: &7" + w.getName());
|
||||
if (Main.getInstance().getRTP().getDisabledWorlds().contains(w.getName())) //DISABLED
|
||||
info.add("&7- &6Disabled: &bTrue");
|
||||
else {
|
||||
info.add("&7- &6Disabled: &cFalse");
|
||||
if (Main.getInstance().getRTP().overriden.containsKey(w.getName()))
|
||||
info.add("&7- &6Overriden: &bTrue");
|
||||
else {
|
||||
info.add("&7- &6Overriden: &cFalse");
|
||||
RTPWorld _rtpworld = Main.getInstance().getRTP().Default;
|
||||
for (RTPWorld __rtpworld : Main.getInstance().getRTP().customWorlds.values()) {
|
||||
if (__rtpworld.getWorld().equals(w.getName())) {
|
||||
_rtpworld = __rtpworld;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (_rtpworld == Main.getInstance().getRTP().Default)
|
||||
info.add("&7- &6Custom: &cFalse");
|
||||
else
|
||||
info.add("&7- &6Custom: &bTrue");
|
||||
if (_rtpworld.getUseWorldborder()) {
|
||||
info.add("&7- &6UseWorldborder: &bTrue");
|
||||
WorldBorder border = w.getWorldBorder();
|
||||
info.add("&7- &6Center X: &7" + border.getCenter().getBlockX());
|
||||
info.add("&7- &6Center Z: &7" + border.getCenter().getBlockZ());
|
||||
info.add("&7- &6MaxRad: &7" + (border.getSize() / 2));
|
||||
} else {
|
||||
info.add("&7- &6UseWorldborder: &cFalse");
|
||||
info.add("&7- &6Center X: &7" + _rtpworld.getCenterX());
|
||||
info.add("&7- &6Center Z: &7" + _rtpworld.getCenterZ());
|
||||
info.add("&7- &6MaxRad: &7" + _rtpworld.getMaxRad());
|
||||
}
|
||||
info.add("&7- &6MinRad: &7" + _rtpworld.getMinRad());
|
||||
}
|
||||
}
|
||||
}
|
||||
info.forEach(str ->
|
||||
info.set(info.indexOf(str), Main.getInstance().getText().color(str)));
|
||||
sendi.sendMessage(info.toArray(new String[0]));
|
||||
}
|
||||
|
||||
public List<String> tabComplete(CommandSender sendi, String[] args) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean permission(CommandSender sendi) {
|
||||
return Main.getInstance().getPerms().getInfo(sendi);
|
||||
}
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
package me.SuperRonanCraft.BetterRTP.player.commands.types;
|
||||
|
||||
import me.SuperRonanCraft.BetterRTP.Main;
|
||||
import me.SuperRonanCraft.BetterRTP.player.commands.CommandTypes;
|
||||
import me.SuperRonanCraft.BetterRTP.player.commands.Commands;
|
||||
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class CmdPlayer implements RTPCommand {
|
||||
|
||||
//rtp player <world> <biome1> <biome2...>
|
||||
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);
|
||||
else if (Bukkit.getPlayer(args[1]) != null)
|
||||
getCmd().playerNotOnline(sendi, args[1]);
|
||||
else
|
||||
usage(sendi, label);
|
||||
else if (args.length >= 3)
|
||||
if (Bukkit.getPlayer(args[1]) != null && Bukkit.getPlayer(args[1]).isOnline())
|
||||
getCmd().tp(Bukkit.getPlayer(args[1]), sendi, Bukkit.getWorld(args[2]).getName(), getCmd().getBiomes(args, 3, sendi));
|
||||
else if (Bukkit.getPlayer(args[1]) != null)
|
||||
getCmd().playerNotOnline(sendi, args[1]);
|
||||
else
|
||||
usage(sendi, label);
|
||||
else
|
||||
usage(sendi, label);
|
||||
}
|
||||
|
||||
public List<String> tabComplete(CommandSender sendi, String[] args) {
|
||||
List<String> list = new ArrayList<>();
|
||||
System.out.println(this.toString());
|
||||
if (args.length == 2) {
|
||||
for (Player p : Bukkit.getOnlinePlayers())
|
||||
if (p.getDisplayName().toLowerCase().startsWith(args[1].toLowerCase()))
|
||||
list.add(p.getDisplayName());
|
||||
} else if (args.length == 3) {
|
||||
for (World w : Bukkit.getWorlds())
|
||||
if (w.getName().startsWith(args[2]) && !Main.getInstance().getRTP().disabledWorlds().contains(w.getName()))
|
||||
list.add(w.getName());
|
||||
} else if (args.length > 3) {
|
||||
if (CommandTypes.BIOME.getCmd().permission(sendi))
|
||||
getCmd().addBiomes(list, args);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public boolean permission(CommandSender sendi) {
|
||||
return Main.getInstance().getPerms().getRtpOther(sendi);
|
||||
}
|
||||
|
||||
public void usage(CommandSender sendi, String label) {
|
||||
Main.getInstance().getText().getUsageRTPOther(sendi, label);
|
||||
}
|
||||
|
||||
private Commands getCmd() {
|
||||
return Main.getInstance().getCmd();
|
||||
}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package me.SuperRonanCraft.BetterRTP.player.commands.types;
|
||||
|
||||
import me.SuperRonanCraft.BetterRTP.Main;
|
||||
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class CmdReload implements RTPCommand {
|
||||
|
||||
public void execute(CommandSender sendi, String label, String[] args) {
|
||||
Main.getInstance().reload(sendi);
|
||||
}
|
||||
|
||||
public List<String> tabComplete(CommandSender sendi, String[] args) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean permission(CommandSender sendi) {
|
||||
return Main.getInstance().getPerms().getReload(sendi);
|
||||
}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package me.SuperRonanCraft.BetterRTP.player.commands.types;
|
||||
|
||||
import me.SuperRonanCraft.BetterRTP.Main;
|
||||
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class CmdVersion implements RTPCommand {
|
||||
|
||||
public void execute(CommandSender sendi, String label, String[] args) {
|
||||
sendi.sendMessage(Main.getInstance().getText().colorPre("&aVersion #&e" + Main.getInstance().getDescription().getVersion()));
|
||||
}
|
||||
|
||||
public List<String> tabComplete(CommandSender sendi, String[] args) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean permission(CommandSender sendi) {
|
||||
return true;
|
||||
}
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
package me.SuperRonanCraft.BetterRTP.player.commands.types;
|
||||
|
||||
import me.SuperRonanCraft.BetterRTP.Main;
|
||||
import me.SuperRonanCraft.BetterRTP.player.commands.CommandTypes;
|
||||
import me.SuperRonanCraft.BetterRTP.player.commands.Commands;
|
||||
import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class CmdWorld implements RTPCommand {
|
||||
|
||||
//rtp world <world> <biome1, biome2...>
|
||||
public void execute(CommandSender sendi, String label, String[] args) {
|
||||
if (args.length >= 2)
|
||||
Main.getInstance().getCmd().rtp(sendi, label, args[1], Main.getInstance().getCmd().getBiomes(args, 2, sendi));
|
||||
else
|
||||
usage(sendi, label);
|
||||
}
|
||||
|
||||
public List<String> tabComplete(CommandSender sendi, String[] args) {
|
||||
List<String> list = new ArrayList<>();
|
||||
if (args.length == 2) {
|
||||
for (World w : Bukkit.getWorlds())
|
||||
if (w.getName().startsWith(args[1]) && !Main.getInstance().getRTP().disabledWorlds().contains(w.getName()) &&
|
||||
Main.getInstance().getPerms().getAWorld(sendi, w.getName()))
|
||||
list.add(w.getName());
|
||||
} else if (args.length >= 3) {
|
||||
if (CommandTypes.BIOME.getCmd().permission(sendi))
|
||||
getCmd().addBiomes(list, args);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public boolean permission(CommandSender sendi) {
|
||||
return Main.getInstance().getPerms().getWorld(sendi);
|
||||
}
|
||||
|
||||
public void usage(CommandSender sendi, String label) {
|
||||
Main.getInstance().getText().getUsageWorld(sendi, label);
|
||||
}
|
||||
|
||||
private Commands getCmd() {
|
||||
return Main.getInstance().getCmd();
|
||||
}
|
||||
}
|
@ -2,7 +2,7 @@ package me.SuperRonanCraft.BetterRTP.player.events;
|
||||
|
||||
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
|
||||
import me.SuperRonanCraft.BetterRTP.Main;
|
||||
import me.SuperRonanCraft.BetterRTP.player.Commands;
|
||||
import me.SuperRonanCraft.BetterRTP.player.commands.Commands;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.Sign;
|
||||
import org.bukkit.entity.Player;
|
||||
|
@ -28,6 +28,10 @@ public class Permissions {
|
||||
return perm(pre + "reload", sendi);
|
||||
}
|
||||
|
||||
public boolean getInfo(CommandSender sendi) {
|
||||
return perm(pre + "info", sendi);
|
||||
}
|
||||
|
||||
public boolean getUpdate(CommandSender sendi) {
|
||||
return perm(pre + "updater", sendi);
|
||||
}
|
||||
|
@ -3,14 +3,13 @@ package me.SuperRonanCraft.BetterRTP.references.worlds;
|
||||
import me.SuperRonanCraft.BetterRTP.Main;
|
||||
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.World;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class Custom implements RTPWorld {
|
||||
public World world;
|
||||
public String world;
|
||||
private boolean useWorldborder = false;
|
||||
private int CenterX, CenterZ, maxBorderRad, minBorderRad, price;
|
||||
private List<String> Biomes;
|
||||
@ -19,7 +18,7 @@ public class Custom implements RTPWorld {
|
||||
String pre = "CustomWorlds.";
|
||||
FileBasics.FILETYPE config = Main.getInstance().getFiles().getType(FileBasics.FILETYPE.CONFIG);
|
||||
List<Map<?, ?>> map = config.getMapList("CustomWorlds");
|
||||
this.world = Bukkit.getWorld(world);
|
||||
this.world = world;
|
||||
|
||||
//Find Custom World and cache values
|
||||
for (Map<?, ?> m : map) {
|
||||
@ -140,4 +139,9 @@ public class Custom implements RTPWorld {
|
||||
public List<String> getBiomes() {
|
||||
return Biomes;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getWorld() {
|
||||
return world;
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +1,8 @@
|
||||
package me.SuperRonanCraft.BetterRTP.references.worlds;
|
||||
|
||||
|
||||
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
|
||||
import me.SuperRonanCraft.BetterRTP.Main;
|
||||
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
import java.util.List;
|
||||
@ -73,4 +73,9 @@ public class Default implements RTPWorld {
|
||||
public List<String> getBiomes() {
|
||||
return Biomes;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getWorld() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@ -17,4 +17,6 @@ public interface RTPWorld {
|
||||
int getPrice();
|
||||
|
||||
List<String> getBiomes();
|
||||
|
||||
String getWorld();
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
main: me.SuperRonanCraft.BetterRTP.Main
|
||||
version: 2.9.4
|
||||
version: 2.10.0
|
||||
name: BetterRTP
|
||||
author: SuperRonanCraft
|
||||
softdepend: [Vault, WorldGuard, GriefPrevention, Factions]
|
||||
@ -48,4 +48,7 @@ permissions:
|
||||
default: op
|
||||
betterrtp.updater:
|
||||
description: Get notification on new updates
|
||||
default: op
|
||||
betterrtp.info:
|
||||
description: View info about all worlds rtp will work in
|
||||
default: op
|
Loading…
x
Reference in New Issue
Block a user