WIP
This commit is contained in:
parent
3580ea0b2c
commit
9c7005f3a8
@ -1,19 +1,48 @@
|
|||||||
package net.DeltaWings.Minecraft.BetterTP.Api;
|
package net.DeltaWings.Minecraft.BetterTP.Api;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.ListIterator;
|
||||||
|
|
||||||
|
import net.DeltaWings.Minecraft.BetterTP.Main;
|
||||||
import net.DeltaWings.Minecraft.BetterTP.Libs.Config;
|
import net.DeltaWings.Minecraft.BetterTP.Libs.Config;
|
||||||
|
import net.DeltaWings.Minecraft.BetterTP.Libs.FileManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* API
|
* API
|
||||||
*/
|
*/
|
||||||
public class API {
|
public class API {
|
||||||
|
|
||||||
|
private static final String datafolder = "data";
|
||||||
|
private static final String playerfolder = "players";
|
||||||
|
|
||||||
|
public static String getDataFolder() {
|
||||||
|
return datafolder;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getPlayersFolder() {
|
||||||
|
return getDataFolder() + File.separator + playerfolder;
|
||||||
|
}
|
||||||
|
|
||||||
public static ArrayList<String> homelist(String player) {
|
public static ArrayList<String> homelist(String player) {
|
||||||
Config c = new Config("data", player);
|
Config c = new Config(getPlayersFolder(), player);
|
||||||
if(c.exist()) {
|
if(c.exist()) {
|
||||||
return c.getSection("");
|
return c.getSection("");
|
||||||
}
|
}
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static ArrayList<String> listPlayersWithHome() {
|
||||||
|
return listReplace(FileManager.listFiles(Main.getInstance().getDataFolder() + File.separator + getPlayersFolder()), ".yml", "");
|
||||||
|
}
|
||||||
|
|
||||||
|
//functions without plugin link
|
||||||
|
|
||||||
|
public static ArrayList<String> listReplace(ArrayList<String> list, String replaced, String replacement) {
|
||||||
|
ListIterator<String> it = list.listIterator();
|
||||||
|
while(it.hasNext()) {
|
||||||
|
it.set(it.next().replace(replaced, replacement));
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
}
|
}
|
@ -1,32 +0,0 @@
|
|||||||
package net.DeltaWings.Minecraft.BetterTP;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.util.concurrent.Callable;
|
|
||||||
|
|
||||||
import org.bstats.bukkit.Metrics;
|
|
||||||
|
|
||||||
import net.DeltaWings.Minecraft.BetterTP.Libs.Config;
|
|
||||||
import net.DeltaWings.Minecraft.BetterTP.Libs.FileManager;
|
|
||||||
|
|
||||||
public class Charts {
|
|
||||||
|
|
||||||
private Main i = Main.getInstance();
|
|
||||||
private String j = File.separator;
|
|
||||||
private final File d = new File(i.getDataFolder() + j + "data");
|
|
||||||
|
|
||||||
public Charts(Metrics metrics) {
|
|
||||||
|
|
||||||
metrics.addCustomChart(new Metrics.SingleLineChart("home_number", new Callable<Integer>(){
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Integer call() throws Exception {
|
|
||||||
Integer result = 0;
|
|
||||||
for (String conf : FileManager.listFiles(d)) {
|
|
||||||
Config c = new Config("data", conf);
|
|
||||||
result += c.getSection("").size();
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
}
|
|
@ -8,6 +8,7 @@ import org.bukkit.Location;
|
|||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.command.ConsoleCommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -15,125 +16,94 @@ import java.io.IOException;
|
|||||||
public class Bettertp implements CommandExecutor {
|
public class Bettertp implements CommandExecutor {
|
||||||
|
|
||||||
Config m = new Config("", "messages");
|
Config m = new Config("", "messages");
|
||||||
|
Config c = new Config("", "config");
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender s, Command unu2, String unu1, String[] a) {
|
public boolean onCommand(CommandSender s, Command unu2, String unu1, String[] a) {
|
||||||
|
if((s instanceof Player && s.hasPermission("bettertp.admin")) || s instanceof ConsoleCommandSender) {
|
||||||
Config g = new Config("", "config");
|
if(a.length == 1) {
|
||||||
if(s instanceof Player && s.hasPermission("bettertp.admin")) {
|
if(a[0].equalsIgnoreCase("help")) help(s);
|
||||||
Player p = (Player) s;
|
return true;
|
||||||
if((a.length == 2 || a.length == 3) && a[0].equalsIgnoreCase("home")) {
|
} else if(a.length >= 2 && a.length <= 3) {
|
||||||
if(a.length == 2) home(s, a[1], "home");
|
if(a.length == 2 && (a[0].equalsIgnoreCase("set") || a[0].equalsIgnoreCase("del"))) {
|
||||||
else home(s, a[1], a[2]);
|
if(a[1].equalsIgnoreCase("spawn") || a[1].equalsIgnoreCase("lobby")) set(s, a[1]);
|
||||||
} else if((a.length == 2 || a.length == 3) && a[0].equalsIgnoreCase("delhome")) {
|
else if(a[1].equalsIgnoreCase("spawn") || a[1].equalsIgnoreCase("lobby")) del(s, a[1]);
|
||||||
if(a.length == 2) delhome(s, a[1], "home");
|
|
||||||
else delhome(s, a[1], a[2]);
|
|
||||||
} else if(a.length == 2 && a[0].equalsIgnoreCase("homelist")) {
|
|
||||||
homelist(s, a[1]);
|
|
||||||
} else if(a.length == 2) {
|
|
||||||
if(a[0].equalsIgnoreCase("set")) {
|
|
||||||
if(a[1].equalsIgnoreCase("spawn")) {
|
|
||||||
Config c = null;
|
|
||||||
if(g.getString("spawn.work").equalsIgnoreCase("server")) c = new Config("data/spawn", "config");
|
|
||||||
else if(g.getString("spawn.work").equalsIgnoreCase("world")) c = new Config("data/spawn", ((Player) s).getWorld().getName());
|
|
||||||
if(c != null && !c.exist()) try {
|
|
||||||
c.create();
|
|
||||||
} catch ( IOException e ) {
|
|
||||||
e.printStackTrace();
|
|
||||||
s.sendMessage("Error please call an administrator !");
|
|
||||||
}
|
|
||||||
Location l = p.getLocation();
|
|
||||||
c.set("world", l.getWorld().getName());
|
|
||||||
c.set("x", l.getX());
|
|
||||||
c.set("y", l.getY());
|
|
||||||
c.set("z", l.getZ());
|
|
||||||
try {
|
|
||||||
c.save();
|
|
||||||
} catch ( IOException e ) {
|
|
||||||
e.printStackTrace();
|
|
||||||
s.sendMessage("Error please call an administrator !");
|
|
||||||
}
|
|
||||||
s.sendMessage(m.getString("spawn.set").replace("&","§"));
|
|
||||||
|
|
||||||
return true;
|
|
||||||
} else if(a[1].equalsIgnoreCase("lobby")) {
|
|
||||||
Config c = new Config("data/lobby", "config");
|
|
||||||
if(!c.exist()) try {
|
|
||||||
c.create();
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
s.sendMessage("Error Please call an administrator !");
|
|
||||||
}
|
|
||||||
Location l = p.getLocation();
|
|
||||||
c.set("world", l.getWorld().getName());
|
|
||||||
c.set("x", l.getX());
|
|
||||||
c.set("y", l.getY());
|
|
||||||
c.set("z", l.getZ());
|
|
||||||
try {
|
|
||||||
c.save();
|
|
||||||
} catch ( IOException e ) {
|
|
||||||
e.printStackTrace();
|
|
||||||
s.sendMessage("Error Please call an administrator !");
|
|
||||||
}
|
|
||||||
s.sendMessage(m.getString("lobby.set").replace("&","§"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
} else if(a[0].equalsIgnoreCase("del") || a[0].equalsIgnoreCase("delete")) {
|
|
||||||
if(a[1].equalsIgnoreCase("spawn")) {
|
|
||||||
if(g.getString("spawn.work").equalsIgnoreCase("server")) new Config("data/spawn", "config").delete();
|
|
||||||
else if(g.getString("spawn.work").equalsIgnoreCase("world")) new Config("data/spawn", ((Player) s).getWorld().getName()).delete();
|
|
||||||
s.sendMessage(m.getString("spawn.deleted").replace("&","§"));
|
|
||||||
return true;
|
|
||||||
} else if(a[1].equalsIgnoreCase("lobby")) {
|
|
||||||
new Config("data/lobby", "config").delete();
|
|
||||||
s.sendMessage(m.getString("lobby.deleted").replace("&","§"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if(a.length == 1) {
|
|
||||||
if(a[0].equalsIgnoreCase("help")) {
|
|
||||||
Config c = new Config("", "messages");
|
|
||||||
p.sendMessage(c.getString("help.top").replace("[help]", "BetterTP").replace("&", "§"));
|
|
||||||
p.sendMessage("&4| &9/btp &lset &llobby/spawn".replace("&", "§"));
|
|
||||||
p.sendMessage("&4| &9To set spawn or lobby".replace("&", "§"));
|
|
||||||
p.sendMessage("&4| &9/btp &ldel &llobby/spawn".replace("&", "§"));
|
|
||||||
p.sendMessage("&4| &9To delete spawn/lobby".replace("&", "§"));
|
|
||||||
p.sendMessage(c.getString("help.bottom").replace("[help]", "BetterTP").replace("&", "§"));
|
|
||||||
return true;
|
return true;
|
||||||
|
} else if(a[0].equalsIgnoreCase("home") || a[0].equalsIgnoreCase("delhome") || a[0].equalsIgnoreCase("homelist")) {
|
||||||
|
String home = a.length == 3 ? a[2] : "home"; //check if player has specified a home
|
||||||
|
if(a[0].equalsIgnoreCase("home")) home(s, a[1], home);
|
||||||
|
if(a[0].equalsIgnoreCase("homelist")) homelist(s, a[1]);
|
||||||
|
if(a[0].equalsIgnoreCase("delhome")) delhome(s, a[1], home);
|
||||||
|
return true;
|
||||||
|
} else return false;
|
||||||
|
} else return false;
|
||||||
|
} else {
|
||||||
|
//sendmessage you don't have the permission
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void set(CommandSender s, String whattoset) {
|
||||||
|
if(s instanceof ConsoleCommandSender) {
|
||||||
|
s.sendMessage("The console can't use this command");
|
||||||
|
} else {
|
||||||
|
Config t = new Config(API.getDataFolder(), whattoset);
|
||||||
|
if(t.exist()) {
|
||||||
|
//sendmessage spawn/lobby already set
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
t.create();
|
||||||
|
Location l = ((Player) s).getLocation();
|
||||||
|
t.set("world", l.getWorld().getName());
|
||||||
|
t.set("x", l.getX());
|
||||||
|
t.set("y", l.getY());
|
||||||
|
t.set("z", l.getZ());
|
||||||
|
t.save();
|
||||||
|
//sendmessage spawn/lobby successfully set !
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
//sendmessage error, writing the configuration file please report
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if(s instanceof Player){
|
|
||||||
s.sendMessage(m.getString("global.permission").replace("&", "§"));
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
s.sendMessage(m.getString("global.not-console"));
|
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void del(CommandSender s, String whattoset) {
|
||||||
|
Config t = new Config(API.getDataFolder(), whattoset);
|
||||||
|
if(t.exist()) {
|
||||||
|
try {
|
||||||
private void set() {
|
t.delete();
|
||||||
|
//sendmssage successfully removed the spawn/lobby
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
//sendmessage error, config couldn't be deleted
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//sendmessage there is no spawn/lobby
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void help() {
|
private void help(CommandSender s) {
|
||||||
|
s.sendMessage(m.getString("help.top").replace("[help]", "BetterTP").replace("&", "§"));
|
||||||
|
s.sendMessage("&4| &9/btp &lset &llobby/spawn".replace("&", "§"));
|
||||||
|
s.sendMessage("&4| &9To set spawn or lobby".replace("&", "§"));
|
||||||
|
s.sendMessage("&4| &9/btp &ldel &llobby/spawn".replace("&", "§"));
|
||||||
|
s.sendMessage("&4| &9To delete spawn/lobby".replace("&", "§"));
|
||||||
|
s.sendMessage(m.getString("help.bottom").replace("[help]", "BetterTP").replace("&", "§"));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void home(CommandSender s, String player, String home) {
|
private void home(CommandSender s, String player, String home) {
|
||||||
Config cp = new Config("data", player);
|
Config cp = new Config(API.getPlayersFolder(), player);
|
||||||
if(cp.exist()) {
|
if(cp.exist() && cp.isSet(home)) {
|
||||||
String t = home+".";
|
String t = home+".";
|
||||||
((Player) s).teleport(new Location(Bukkit.getServer().getWorld(cp.getString(t+"world")), cp.getDouble(t+"x"), cp.getDouble(t+"y"), cp.getDouble(t+"z")));
|
((Player) s).teleport(new Location(Bukkit.getServer().getWorld(cp.getString(t+"world")), cp.getDouble(t+"x"), cp.getDouble(t+"y"), cp.getDouble(t+"z")));
|
||||||
}
|
((Player) s).sendMessage("Sended you to " + player + " home : " + home);
|
||||||
((Player) s).sendMessage("Sended you to " + player + " home : " + home);
|
} else ; //sendmessage player has no home "homename"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void delhome(CommandSender s, String player, String home) {
|
private void delhome(CommandSender s, String player, String home) {
|
||||||
Config cp = new Config("data", player);
|
Config cp = new Config(API.getPlayersFolder(), player);
|
||||||
if(cp.exist() && cp.isSet(home)) {
|
if(cp.exist() && cp.isSet(home)) {
|
||||||
cp.set(home, null);
|
cp.set(home, null);
|
||||||
try {
|
try {
|
||||||
@ -143,7 +113,7 @@ public class Bettertp implements CommandExecutor {
|
|||||||
s.sendMessage("Error, Please call an Admin !");
|
s.sendMessage("Error, Please call an Admin !");
|
||||||
}
|
}
|
||||||
s.sendMessage(m.getString("home.deleted").replace("[home]", home).replace("&", "§"));
|
s.sendMessage(m.getString("home.deleted").replace("[home]", home).replace("&", "§"));
|
||||||
}
|
} else ; //send message player has no home "homename"
|
||||||
}
|
}
|
||||||
|
|
||||||
private void homelist(CommandSender s, String player) {
|
private void homelist(CommandSender s, String player) {
|
||||||
@ -158,3 +128,12 @@ public class Bettertp implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
/btp
|
||||||
|
set <lobby|spawn>
|
||||||
|
del <lobby|spawn>
|
||||||
|
help
|
||||||
|
homelist <player>
|
||||||
|
home <player> [homename]
|
||||||
|
selhome <player [homename]
|
||||||
|
*/
|
@ -1,14 +1,14 @@
|
|||||||
package net.DeltaWings.Minecraft.BetterTP.Commands;
|
package net.DeltaWings.Minecraft.BetterTP.Commands;
|
||||||
|
|
||||||
|
import net.DeltaWings.Minecraft.BetterTP.Api.API;
|
||||||
import net.DeltaWings.Minecraft.BetterTP.Libs.Config;
|
import net.DeltaWings.Minecraft.BetterTP.Libs.Config;
|
||||||
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.command.ConsoleCommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
public class Delhome implements CommandExecutor {
|
public class Delhome implements CommandExecutor {
|
||||||
|
|
||||||
private final Config m = new Config("", "messages");
|
private final Config m = new Config("", "messages");
|
||||||
@ -16,45 +16,30 @@ public class Delhome implements CommandExecutor {
|
|||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender s, Command command, String label, String[] a) {
|
public boolean onCommand(CommandSender s, Command command, String label, String[] a) {
|
||||||
if(s instanceof Player && s.hasPermission("bettertp.delhome")) {
|
if(s instanceof Player && s.hasPermission("bettertp.delhome")) {
|
||||||
Config c = new Config("data", s.getName());
|
if(a.length > 2) return false; //too many arguments
|
||||||
if(a.length == 1) {
|
Config c = new Config(API.getPlayersFolder(), s.getName());
|
||||||
if(c.isSet(a[0])) {
|
String homename = a.length == 0 ? "home" : a[0];
|
||||||
c.set(a[0], null);
|
try {
|
||||||
try {
|
if(c.exist() && c.isSet(homename)) {
|
||||||
c.save();
|
c.set(homename, null);
|
||||||
} catch ( IOException e ) {
|
if(c.getSection("").size() == 0) {
|
||||||
e.printStackTrace();
|
c.delete();
|
||||||
s.sendMessage("Error, Please call an Admin !");
|
} else c.save();
|
||||||
}
|
//sendmessage home deleted
|
||||||
s.sendMessage(m.getString("home.deleted").replace("[home]", a[0]).replace("&", "§"));
|
|
||||||
return true;
|
|
||||||
} else {
|
} else {
|
||||||
s.sendMessage(m.getString("home.dont-exist").replace("[home]", a[0]).replace("&", "§"));
|
//sendmessage home don't exist
|
||||||
return true;
|
|
||||||
}
|
|
||||||
} else if(a.length == 0) {
|
|
||||||
if(c.isSet("home")) {
|
|
||||||
c.set("home", null);
|
|
||||||
try {
|
|
||||||
c.save();
|
|
||||||
} catch ( IOException e ) {
|
|
||||||
e.printStackTrace();
|
|
||||||
s.sendMessage("Error, Please call an Admin !");
|
|
||||||
}
|
|
||||||
s.sendMessage(m.getString("home.deleted").replace("[home]", "home").replace("&", "§"));
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
s.sendMessage(m.getString("home.dont-exist").replace("[home]", "home").replace("&", "§"));
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
//sendmessage error happened
|
||||||
}
|
}
|
||||||
} else if(s instanceof Player && !s.hasPermission("bettertp.delhome")) {
|
return true;
|
||||||
s.sendMessage(m.getString("global.permission").replace("&", "§"));
|
} else if(s instanceof ConsoleCommandSender) {
|
||||||
|
//sendmessage console can't use this command
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
s.sendMessage(m.getString("global.not-console"));
|
//sendmessage missing permission
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package net.DeltaWings.Minecraft.BetterTP.Commands;
|
package net.DeltaWings.Minecraft.BetterTP.Commands;
|
||||||
|
|
||||||
|
import net.DeltaWings.Minecraft.BetterTP.Api.API;
|
||||||
import net.DeltaWings.Minecraft.BetterTP.Libs.Config;
|
import net.DeltaWings.Minecraft.BetterTP.Libs.Config;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
@ -7,50 +8,34 @@ import org.bukkit.Location;
|
|||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.command.ConsoleCommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class Home implements CommandExecutor {
|
public class Home implements CommandExecutor {
|
||||||
|
|
||||||
private final Config m = new Config("", "messages");
|
private final Config m = new Config("", "messages");
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender s, Command command, String label, String[] a) {
|
public boolean onCommand(CommandSender s, Command command, String label, String[] a) {
|
||||||
if(s instanceof Player && s.hasPermission("bettertp.home")) {
|
if(s instanceof Player && s.hasPermission("bettertp.home")) {
|
||||||
Config c = new Config("data", s.getName());
|
if(a.length > 1) return false; //too many arguments
|
||||||
if(c.exist()) {
|
Config c = new Config(API.getPlayersFolder(), s.getName());
|
||||||
if(a.length == 0) {
|
String homename = a.length == 0 ? "home" : a[0];
|
||||||
if ( c.isSet("home") ) {
|
if(c.isSet(homename)) {
|
||||||
String t = "home.";
|
((Player) s).teleport(new Location(Bukkit.getServer().getWorld(c.getString(homename+".world")), c.getDouble(homename+".x"), c.getDouble(homename+".y"), c.getDouble(homename+".z")));
|
||||||
((Player) s).teleport(new Location(Bukkit.getServer().getWorld(c.getString(t+"world")), c.getDouble(t+"x"), c.getDouble(t+"y"), c.getDouble(t+"z")));
|
//sendmessage teleported to home home
|
||||||
s.sendMessage(m.getString("home.teleported").replace("[home]", "home").replace("&", "§"));
|
return true;
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
s.sendMessage(m.getString("home.dont-exist").replace("&", "§").replace("[home]", "Home"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
} else if(a.length == 1) {
|
|
||||||
if ( c.isSet(a[0]) ) {
|
|
||||||
String t = a[0] + ".";
|
|
||||||
((Player) s).teleport(new Location(Bukkit.getServer().getWorld(c.getString(t+"world")), c.getDouble(t+"x"), c.getDouble(t+"y"), c.getDouble(t+"z")));
|
|
||||||
|
|
||||||
s.sendMessage(m.getString("home.teleported").replace("[home]", a[0]).replace("&", "§"));
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
s.sendMessage(m.getString("home.dont-exist").replace("&", "§").replace("[home]", a[0]));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
s.sendMessage(m.getString("home.dont-exist"));
|
//sendmessage home don't exist
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
} else if(s instanceof Player && !s.hasPermission("bettertp.home")) {
|
} else if(s instanceof ConsoleCommandSender) {
|
||||||
s.sendMessage(m.getString("global.permission").replace("&", "§"));
|
//sendmessage console can't use that command
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
s.sendMessage(m.getString("global.not-console"));
|
//sendmessage you don't have the permission
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package net.DeltaWings.Minecraft.BetterTP.Commands;
|
package net.DeltaWings.Minecraft.BetterTP.Commands;
|
||||||
|
|
||||||
|
import net.DeltaWings.Minecraft.BetterTP.Api.API;
|
||||||
import net.DeltaWings.Minecraft.BetterTP.Libs.Config;
|
import net.DeltaWings.Minecraft.BetterTP.Libs.Config;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
@ -8,23 +9,24 @@ import org.bukkit.command.CommandExecutor;
|
|||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class Lobby implements CommandExecutor {
|
public class LobbySpawn implements CommandExecutor {
|
||||||
private final Config m = new Config("", "messages");
|
private final Config m = new Config("", "messages");
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender s, Command unu1, String unu2, String[] unu3) {
|
public boolean onCommand(CommandSender s, Command unu1, String command, String[] unu3) {
|
||||||
|
if(command.equalsIgnoreCase("hub")) command = "lobby";
|
||||||
if(s instanceof Player ) {
|
if(s instanceof Player ) {
|
||||||
if(s.hasPermission("bettertp.lobby")) {
|
if(s.hasPermission("bettertp."+command)) {
|
||||||
Config c = new Config("data/lobby", "config");
|
Config c = new Config(API.getDataFolder(), command);
|
||||||
if(c.exist()) {
|
if(c.exist()) {
|
||||||
Double y = c.getDouble("x", (double) -1);
|
Double y = c.getDouble("x", (double) -1);
|
||||||
if(y != -1) {
|
if(y != -1) {
|
||||||
((Player) s).teleport(new Location(Bukkit.getServer().getWorld(c.getString("world")), c.getDouble("x"), c.getDouble("y"), c.getDouble("z")));
|
((Player) s).teleport(new Location(Bukkit.getServer().getWorld(c.getString("world")), c.getDouble("x"), c.getDouble("y"), c.getDouble("z")));
|
||||||
s.sendMessage(m.getString("lobby.teleported").replace("&", "§"));
|
s.sendMessage(m.getString(command+".teleported").replace("&", "§"));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
s.sendMessage(m.getString("lobby.not-set").replace("&", "§"));
|
s.sendMessage(m.getString(command+".not-set").replace("&", "§"));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
@ -1,15 +1,16 @@
|
|||||||
package net.DeltaWings.Minecraft.BetterTP.Commands;
|
package net.DeltaWings.Minecraft.BetterTP.Commands;
|
||||||
|
|
||||||
|
import net.DeltaWings.Minecraft.BetterTP.Api.API;
|
||||||
import net.DeltaWings.Minecraft.BetterTP.Libs.Config;
|
import net.DeltaWings.Minecraft.BetterTP.Libs.Config;
|
||||||
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.command.ConsoleCommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
public class Sethome implements CommandExecutor {
|
public class Sethome implements CommandExecutor {
|
||||||
|
|
||||||
@ -19,62 +20,45 @@ public class Sethome implements CommandExecutor {
|
|||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender s, Command command, String label, String[] a) {
|
public boolean onCommand(CommandSender s, Command command, String label, String[] a) {
|
||||||
if(s instanceof Player && s.hasPermission("bettertp.sethome")) {
|
if(s instanceof Player && s.hasPermission("bettertp.sethome")) {
|
||||||
Config c = new Config("data", s.getName());
|
if(a.length > 2) return false; //too many arguments
|
||||||
ArrayList<String> r = new ArrayList<>();
|
Config c = new Config(API.getPlayersFolder(), s.getName());
|
||||||
|
Integer maxhomes = -1;
|
||||||
for(String e : mc.getSection("maxhomes")) {
|
for(String e : mc.getSection("maxhomes")) {
|
||||||
if(s.hasPermission("bettertp.max."+e)) r.add(e);
|
if(s.hasPermission("bettertp.max."+e)) {
|
||||||
|
Integer max = mc.getInt("maxhomes."+e, 0);
|
||||||
|
maxhomes = max > maxhomes ? max : maxhomes; //if max > maxhome then maxhome = max
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Boolean p = false;
|
if(c.getSection("").size() >= maxhomes) { //Player already have max number of home
|
||||||
for(String e : r) {
|
|
||||||
if(c.getSection("").size() == mc.getInt("maxhomes." + e)) p = true;
|
|
||||||
}
|
|
||||||
if(p) {
|
|
||||||
s.sendMessage(m.getString("home.max").replace("[max]", c.getSection("").size() + "").replace("&", "§"));
|
s.sendMessage(m.getString("home.max").replace("[max]", c.getSection("").size() + "").replace("&", "§"));
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else { //player can have more homes
|
||||||
if(!c.exist()) try {
|
try {
|
||||||
c.create();
|
if(!c.exist()) c.create();
|
||||||
|
String homename = a.length == 0 ? "home" : a[0];
|
||||||
|
if(c.isSet(homename)) {
|
||||||
|
//sendmessage home already set please delete it before (/delhome)
|
||||||
|
} else {
|
||||||
|
Location l = ((Player) s).getLocation();
|
||||||
|
c.set(homename+".world", l.getWorld().getName());
|
||||||
|
c.set(homename+".x", l.getX());
|
||||||
|
c.set(homename+".y", l.getY());
|
||||||
|
c.set(homename+".z", l.getZ());
|
||||||
|
c.save();
|
||||||
|
//sendmessage home set
|
||||||
|
}
|
||||||
} catch ( IOException e ) {
|
} catch ( IOException e ) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
s.sendMessage("Error, Please call an Admin !");
|
s.sendMessage("Error, Please call an Admin !");
|
||||||
}
|
}
|
||||||
if(a.length == 0) {
|
return true;
|
||||||
Location l = ((Player) s).getLocation();
|
|
||||||
c.set("home.world", l.getWorld().getName());
|
|
||||||
c.set("home.x", l.getX());
|
|
||||||
c.set("home.y", l.getY());
|
|
||||||
c.set("home.z", l.getZ());
|
|
||||||
try {
|
|
||||||
c.save();
|
|
||||||
} catch ( IOException e ) {
|
|
||||||
e.printStackTrace();
|
|
||||||
s.sendMessage("Error, Please call an Admin !");
|
|
||||||
}
|
|
||||||
s.sendMessage(m.getString("home.set").replace("[home]", "home").replace("&", "§"));
|
|
||||||
return true;
|
|
||||||
} else if(a.length == 1) {
|
|
||||||
Location l = ((Player) s).getLocation();
|
|
||||||
c.set(a[0] + ".world", l.getWorld().getName());
|
|
||||||
c.set(a[0] + ".x", l.getX());
|
|
||||||
c.set(a[0] + ".y", l.getY());
|
|
||||||
c.set(a[0] + ".z", l.getZ());
|
|
||||||
try {
|
|
||||||
c.save();
|
|
||||||
} catch ( IOException e ) {
|
|
||||||
e.printStackTrace();
|
|
||||||
s.sendMessage("Error, Please call an Admin !");
|
|
||||||
}
|
|
||||||
s.sendMessage(m.getString("home.set").replace("[home]", a[0]).replace("&", "§"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else if(s instanceof Player && !s.hasPermission("bettertp.sethome")) {
|
} else if(s instanceof ConsoleCommandSender) {
|
||||||
s.sendMessage(m.getString("global.permission").replace("&", "§"));
|
//sendmessage can't be used as the console
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
s.sendMessage(m.getString("global.not-console"));
|
//sendmessage don't have the permission
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,39 +0,0 @@
|
|||||||
package net.DeltaWings.Minecraft.BetterTP.Commands;
|
|
||||||
|
|
||||||
import net.DeltaWings.Minecraft.BetterTP.Libs.Config;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
public class Spawn implements CommandExecutor {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender s, Command d, String l, String[] a) {
|
|
||||||
Config m = new Config("", "messages");
|
|
||||||
if(s instanceof Player) {
|
|
||||||
if(s.hasPermission("bettertp.spawn")) {
|
|
||||||
Config g = new Config("", "config");
|
|
||||||
Config c = null;
|
|
||||||
if(g.getString("spawn.work").equalsIgnoreCase("server")) c = new Config("data/spawn", "config");
|
|
||||||
else if(g.getString("spawn.work").equalsIgnoreCase("world")) c = new Config("data/spawn", ((Player) s).getWorld().getName());
|
|
||||||
if(c != null && c.exist()) {
|
|
||||||
((Player) s).teleport(new Location(Bukkit.getServer().getWorld(c.getString("world")), c.getDouble("x"), c.getDouble("y"), c.getDouble("z")));
|
|
||||||
s.sendMessage(m.getString("spawn.teleported").replace("&", "§"));
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
s.sendMessage(m.getString("spawn.not-set").replace("&", "§"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
s.sendMessage(m.getString("global.permission").replace("&", "§"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
s.sendMessage(m.getString("global.not-console"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -6,23 +6,22 @@ import java.io.FileOutputStream;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
|
||||||
import java.util.zip.ZipEntry;
|
import java.util.zip.ZipEntry;
|
||||||
import java.util.zip.ZipOutputStream;
|
import java.util.zip.ZipOutputStream;
|
||||||
|
|
||||||
public class FileManager {
|
public class FileManager {
|
||||||
|
|
||||||
|
|
||||||
public static List<String> listFiles(String path) {
|
public static ArrayList<String> listFiles(String path) {
|
||||||
String[] t = new File(path).list();
|
String[] t = new File(path).list();
|
||||||
if(t == null) return new ArrayList<>();
|
if(t == null) return new ArrayList<>();
|
||||||
else return Arrays.asList(t);
|
else return new ArrayList<String>(Arrays.asList(t));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<String> listFiles(File path) {
|
public static ArrayList<String> listFiles(File path) {
|
||||||
String[] t = path.list();
|
String[] t = path.list();
|
||||||
if(t == null) return new ArrayList<>();
|
if(t == null) return new ArrayList<>();
|
||||||
else return Arrays.asList(t);
|
else return new ArrayList<String>(Arrays.asList(t));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void delete(File path) {
|
public static void delete(File path) {
|
||||||
|
@ -1,20 +1,25 @@
|
|||||||
package net.DeltaWings.Minecraft.BetterTP;
|
package net.DeltaWings.Minecraft.BetterTP;
|
||||||
|
|
||||||
|
import net.DeltaWings.Minecraft.BetterTP.Api.API;
|
||||||
import net.DeltaWings.Minecraft.BetterTP.Commands.*;
|
import net.DeltaWings.Minecraft.BetterTP.Commands.*;
|
||||||
import net.DeltaWings.Minecraft.BetterTP.Libs.Config;
|
import net.DeltaWings.Minecraft.BetterTP.Libs.Config;
|
||||||
|
|
||||||
import net.DeltaWings.Minecraft.BetterTP.TabCompleter.*;
|
import net.DeltaWings.Minecraft.BetterTP.TabCompleter.*;
|
||||||
import org.bukkit.command.PluginCommand;
|
import org.bukkit.command.PluginCommand;
|
||||||
import org.bukkit.plugin.PluginManager;
|
import org.bukkit.plugin.PluginDescriptionFile;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
import org.bstats.bukkit.Metrics;
|
import org.bstats.bukkit.Metrics;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
import java.util.concurrent.Callable;
|
||||||
|
|
||||||
|
|
||||||
public final class Main extends JavaPlugin {
|
public final class Main extends JavaPlugin {
|
||||||
|
|
||||||
|
private PluginDescriptionFile desc;
|
||||||
|
|
||||||
private static Main instance;
|
private static Main instance;
|
||||||
public static Main getInstance() {
|
public static Main getInstance() {
|
||||||
return instance;
|
return instance;
|
||||||
@ -36,7 +41,8 @@ public final class Main extends JavaPlugin {
|
|||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
instance = this;
|
instance = this;
|
||||||
debug("Loading Variables");
|
debug("Loading Variables");
|
||||||
PluginManager pm = getServer().getPluginManager();
|
desc = this.getDescription();
|
||||||
|
//PluginManager pm = getServer().getPluginManager();
|
||||||
PluginCommand bettertp = getCommand("Bettertp");
|
PluginCommand bettertp = getCommand("Bettertp");
|
||||||
PluginCommand home = getCommand("Home");
|
PluginCommand home = getCommand("Home");
|
||||||
PluginCommand delhome = getCommand("Delhome");
|
PluginCommand delhome = getCommand("Delhome");
|
||||||
@ -53,16 +59,16 @@ public final class Main extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
debug("Loaded Configuration !");
|
debug("Loaded Configuration !");
|
||||||
|
|
||||||
debug("Loading Events");
|
//debug("Loading Events");
|
||||||
//pm.registerEvents(new Event(), this);
|
//pm.registerEvents(new Event(), this);
|
||||||
debug("Loaded Events");
|
//debug("Loaded Events");
|
||||||
|
|
||||||
debug("Loading Commands");
|
debug("Loading Commands");
|
||||||
|
|
||||||
//getCommand("Command").setExecutor(new Command());
|
//getCommand("Command").setExecutor(new Command());
|
||||||
bettertp.setExecutor(new Bettertp());
|
bettertp.setExecutor(new Bettertp());
|
||||||
bettertp.setTabCompleter(new BettertpTab());
|
bettertp.setTabCompleter(new BettertpTab());
|
||||||
getCommand("Spawn").setExecutor(new Spawn());
|
getCommand("Lobby").setExecutor(new LobbySpawn());
|
||||||
getCommand("Lobby").setExecutor(new Lobby());
|
|
||||||
home.setExecutor(new Home());
|
home.setExecutor(new Home());
|
||||||
home.setTabCompleter(new HomeTab());
|
home.setTabCompleter(new HomeTab());
|
||||||
getCommand("Sethome").setExecutor(new Sethome());
|
getCommand("Sethome").setExecutor(new Sethome());
|
||||||
@ -72,9 +78,11 @@ public final class Main extends JavaPlugin {
|
|||||||
|
|
||||||
debug("Loaded Commands");
|
debug("Loaded Commands");
|
||||||
|
|
||||||
debug("Enabling Metrics");
|
if(new Config("", "config").getBoolean("metrics", true)) {
|
||||||
new Charts(new Metrics(this));
|
debug("Enabling Metrics");
|
||||||
log("Metrics Started : https://bstats.org/plugin/bukkit/plugin/");
|
loadCharts(new Metrics(this));
|
||||||
|
log("Metrics Started : https://bstats.org/plugin/bukkit/"+desc.getName()+"/");
|
||||||
|
}
|
||||||
|
|
||||||
log("Loaded !");
|
log("Loaded !");
|
||||||
}
|
}
|
||||||
@ -114,6 +122,8 @@ public final class Main extends JavaPlugin {
|
|||||||
c.create();
|
c.create();
|
||||||
c.header("How to config : https://bitbucket.org/delta-wings/bettertp/wiki/");
|
c.header("How to config : https://bitbucket.org/delta-wings/bettertp/wiki/");
|
||||||
c.set("debug", false);
|
c.set("debug", false);
|
||||||
|
c.set("metrics", true);
|
||||||
|
c.set("donttouch.version", 1);
|
||||||
c.set("maxhomes.default", 1);
|
c.set("maxhomes.default", 1);
|
||||||
c.set("spawn.work", "world");
|
c.set("spawn.work", "world");
|
||||||
c.set("spawn.server.lobby", false);
|
c.set("spawn.server.lobby", false);
|
||||||
@ -121,4 +131,23 @@ public final class Main extends JavaPlugin {
|
|||||||
c.save();
|
c.save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void loadCharts(Metrics metrics) {
|
||||||
|
Main.debug("loading custom charts");
|
||||||
|
metrics.addCustomChart(new Metrics.SingleLineChart("home_number", new Callable<Integer>(){
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer call() throws Exception {
|
||||||
|
Integer result = 0;
|
||||||
|
for (String conf : API.listPlayersWithHome()) {
|
||||||
|
Config c = new Config(API.getPlayersFolder(), conf);
|
||||||
|
result += c.getSection("").size();
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
Main.debug("loading custom charts");
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,37 +3,49 @@ package net.DeltaWings.Minecraft.BetterTP.TabCompleter;
|
|||||||
import net.DeltaWings.Minecraft.BetterTP.Main;
|
import net.DeltaWings.Minecraft.BetterTP.Main;
|
||||||
import net.DeltaWings.Minecraft.BetterTP.Api.API;
|
import net.DeltaWings.Minecraft.BetterTP.Api.API;
|
||||||
import net.DeltaWings.Minecraft.BetterTP.Libs.Config;
|
import net.DeltaWings.Minecraft.BetterTP.Libs.Config;
|
||||||
|
import net.DeltaWings.Minecraft.BetterTP.Libs.FileManager;
|
||||||
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.TabCompleter;
|
import org.bukkit.command.TabCompleter;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class BettertpTab implements TabCompleter {
|
public class BettertpTab implements TabCompleter {
|
||||||
|
|
||||||
private final String[] menu = new String[]{"set", "del", "delete", "help", "home", "delhome"}, setdel = new String[]{"spawn","lobby"}, confopt = new String[]{""};
|
private final String[]
|
||||||
|
menu = new String[]{"set", "del", "delete", "help", "home", "delhome"},
|
||||||
|
setdel = new String[]{"spawn","lobby"},
|
||||||
|
confopt = new String[]{""};
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> onTabComplete(CommandSender s, Command c, String unused, String[] a) {
|
public List<String> onTabComplete(CommandSender s, Command c, String unused, String[] a) {
|
||||||
Main.debug("Tab Completing c : "+ c.getName() +" + \nNa : " + a.length);
|
Main.debug("Tab Completing c : "+ c.getName() +" + \na length: " + a.length);
|
||||||
for (String b: a) Main.debug(b);
|
Main.debug("a : " + a.toString());
|
||||||
if(a.length > 0 && a[0].equals("")) {
|
if(a.length == 1) { // no args
|
||||||
return Arrays.asList(menu);
|
|
||||||
}
|
|
||||||
if(a.length == 1) {
|
|
||||||
if(!a[0].equals("")) {
|
if(!a[0].equals("")) {
|
||||||
List<String> l = new ArrayList<>();
|
List<String> l = new ArrayList<>();
|
||||||
for (String t: menu) if(t.startsWith(a[0].toLowerCase())) l.add(t);
|
for (String t: menu) if(t.startsWith(a[0].toLowerCase())) l.add(t);
|
||||||
return l;
|
return l;
|
||||||
}
|
} else return Arrays.asList(menu);
|
||||||
} else if(a.length == 2) {
|
} else if(a.length == 2) { // first argument done
|
||||||
String[] y;
|
String[] y;
|
||||||
if (a[0].equalsIgnoreCase("set") || a[0].equalsIgnoreCase("del") || a[0].equalsIgnoreCase("delete")) y = setdel;
|
if(a[0].equalsIgnoreCase("set") || a[0].equalsIgnoreCase("del") || a[0].equalsIgnoreCase("delete")) y = setdel;
|
||||||
else if (a[0].equalsIgnoreCase("config")) y = confopt;
|
else if(a[0].equalsIgnoreCase("config")) y = confopt;
|
||||||
|
else if(a[0].equalsIgnoreCase("home") || a[0].equalsIgnoreCase("delhome")) {
|
||||||
|
ArrayList<String> list = API.listReplace(FileManager.listFiles(Main.getInstance().getDataFolder() + File.separator + "data"), ".yml", "");
|
||||||
|
if(a[1].equals("")) return list;
|
||||||
|
else {
|
||||||
|
ArrayList<String> l = new ArrayList<>();
|
||||||
|
for (String t : list) if (t.startsWith(a[1].toLowerCase())) l.add(t);
|
||||||
|
return l;
|
||||||
|
}
|
||||||
|
}
|
||||||
else return null;
|
else return null;
|
||||||
|
//for pre-made sets
|
||||||
if (!a[1].equals("")) {
|
if (!a[1].equals("")) {
|
||||||
List<String> l = new ArrayList<>();
|
List<String> l = new ArrayList<>();
|
||||||
for (String t : y) if (t.startsWith(a[1].toLowerCase())) l.add(t);
|
for (String t : y) if (t.startsWith(a[1].toLowerCase())) l.add(t);
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
package net.DeltaWings.Minecraft.BetterTP.TabCompleter;
|
package net.DeltaWings.Minecraft.BetterTP.TabCompleter;
|
||||||
|
|
||||||
import net.DeltaWings.Minecraft.BetterTP.Libs.Config;
|
import net.DeltaWings.Minecraft.BetterTP.Api.API;
|
||||||
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.TabCompleter;
|
import org.bukkit.command.TabCompleter;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class DelhomeTab implements TabCompleter {
|
public class DelhomeTab implements TabCompleter {
|
||||||
@ -13,8 +14,16 @@ public class DelhomeTab implements TabCompleter {
|
|||||||
@Override
|
@Override
|
||||||
public List<String> onTabComplete(CommandSender s, Command u1, String unused, String[] a) {
|
public List<String> onTabComplete(CommandSender s, Command u1, String unused, String[] a) {
|
||||||
if( a.length == 1) {
|
if( a.length == 1) {
|
||||||
Config c = new Config("data", s.getName());
|
if(a[0] == "") {
|
||||||
return c.getSection("");
|
return API.homelist(s.getName());
|
||||||
|
} else {
|
||||||
|
ArrayList<String> t = new ArrayList<>();
|
||||||
|
for (String home : API.homelist(s.getName())) {
|
||||||
|
if(home.startsWith(a[0].toLowerCase())) t.add(home);
|
||||||
|
}
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
} else return null;
|
} else return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ import org.bukkit.command.Command;
|
|||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.TabCompleter;
|
import org.bukkit.command.TabCompleter;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class HomeTab implements TabCompleter {
|
public class HomeTab implements TabCompleter {
|
||||||
@ -13,7 +14,16 @@ public class HomeTab implements TabCompleter {
|
|||||||
@Override
|
@Override
|
||||||
public List<String> onTabComplete(CommandSender s, Command u1, String unused, String[] a) {
|
public List<String> onTabComplete(CommandSender s, Command u1, String unused, String[] a) {
|
||||||
if( a.length == 1) {
|
if( a.length == 1) {
|
||||||
return API.homelist(s.getName());
|
if(a[0] == "") {
|
||||||
|
return API.homelist(s.getName());
|
||||||
|
} else {
|
||||||
|
ArrayList<String> t = new ArrayList<>();
|
||||||
|
for (String home : API.homelist(s.getName())) {
|
||||||
|
if(home.startsWith(a[0].toLowerCase())) t.add(home);
|
||||||
|
}
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
} else return null;
|
} else return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,13 +6,10 @@ authors: [Aviortheking, LePhoenixArdent, Aipsyllone]
|
|||||||
description: The best teleportation plugin
|
description: The best teleportation plugin
|
||||||
website: https://delta-wings.net
|
website: https://delta-wings.net
|
||||||
commands:
|
commands:
|
||||||
spawn:
|
|
||||||
description: Teleport to the spawn
|
|
||||||
usage: Usage /spawn
|
|
||||||
lobby:
|
lobby:
|
||||||
description: Teleport to the lobby
|
description: Teleport to the <command>
|
||||||
usage: Usage /lobby
|
usage: Usage /<command>
|
||||||
aliases: [hub]
|
aliases: [hub,spawn]
|
||||||
bettertp:
|
bettertp:
|
||||||
description: Manage the plugin
|
description: Manage the plugin
|
||||||
usage: Usage /bettertp help
|
usage: Usage /bettertp help
|
||||||
|
Reference in New Issue
Block a user