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