diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 585ba08..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,3 +0,0 @@ -image: maven:3-jdk-8 -build: - script: "mvn install -B" \ No newline at end of file diff --git a/.idea/codeStyleSettings.xml b/.idea/codeStyleSettings.xml new file mode 100644 index 0000000..5555dd2 --- /dev/null +++ b/.idea/codeStyleSettings.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 2ca0d1f..8b5c9a3 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -12,7 +12,7 @@ - + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 97ceb86..b14edde 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ Delta-Wings BetterTP - 0.0.1 + 1.1.0-DEV jar BetterTP @@ -18,6 +18,7 @@ https://delta-wings.net + BetterTP clean package diff --git a/src/main/java/net/DeltaWings/Minecraft/BetterTP/Commands/Bettertp.java b/src/main/java/net/DeltaWings/Minecraft/BetterTP/Commands/Bettertp.java index 2aae2b1..03925e5 100644 --- a/src/main/java/net/DeltaWings/Minecraft/BetterTP/Commands/Bettertp.java +++ b/src/main/java/net/DeltaWings/Minecraft/BetterTP/Commands/Bettertp.java @@ -93,6 +93,8 @@ public class Bettertp implements CommandExecutor { } else if(s instanceof Player){ s.sendMessage(m.getString("global.permission").replace("&", "ยง")); return true; + } else { + s.sendMessage(m.getString("global.not-console")); } return false; } diff --git a/src/main/java/net/DeltaWings/Minecraft/BetterTP/Main.java b/src/main/java/net/DeltaWings/Minecraft/BetterTP/Main.java index b78fb71..fd6a1fc 100644 --- a/src/main/java/net/DeltaWings/Minecraft/BetterTP/Main.java +++ b/src/main/java/net/DeltaWings/Minecraft/BetterTP/Main.java @@ -3,7 +3,9 @@ package net.DeltaWings.Minecraft.BetterTP; import net.DeltaWings.Minecraft.BetterTP.Commands.*; import net.DeltaWings.Minecraft.BetterTP.Custom.Config; +import net.DeltaWings.Minecraft.BetterTP.TabCompleter.*; import org.bukkit.Bukkit; +import org.bukkit.command.PluginCommand; import org.bukkit.plugin.java.JavaPlugin; import java.io.IOException; @@ -11,7 +13,7 @@ import java.util.logging.Level; public final class Main extends JavaPlugin { - public void log(String Message) { + public static void log(String Message) { Bukkit.getLogger().log(Level.INFO, Message); } @@ -20,13 +22,19 @@ public final class Main extends JavaPlugin { return instance; } + public static void debug(String message) { + if(new Config("", "config").getBoolean("debug", false)) Main.getInstance().getLogger().info("[Debug] " + message); + } + @Override public void onEnable() { instance = this; getCommand("Spawn").setExecutor(new Spawn()); getCommand("Lobby").setExecutor(new Lobby()); getCommand("Home").setExecutor(new Home()); - getCommand("Bettertp").setExecutor(new Bettertp()); + PluginCommand bettertp = getCommand("Bettertp"); + bettertp.setExecutor(new Bettertp()); + bettertp.setTabCompleter(new BettertpTab()); getCommand("Sethome").setExecutor(new Sethome()); getCommand("Delhome").setExecutor(new Delhome()); getCommand("Homelist").setExecutor(new Homelist()); @@ -77,9 +85,11 @@ public final class Main extends JavaPlugin { if(!c.exist()) { c.create(); c.header("How to config : https://bitbucket.org/delta-wings/bettertp/wiki/"); + c.set("debug", false); c.set("maxhomes.default", 1); c.set("spawn.work", "world"); c.set("spawn.server.lobby", false); + //new String[]{"debug","maxhomes.default","spawn.work","spawn.server.lobby"}; c.save(); } } diff --git a/src/main/java/net/DeltaWings/Minecraft/BetterTP/Metrics.java b/src/main/java/net/DeltaWings/Minecraft/BetterTP/Metrics.java index 7aa3da5..44afacb 100644 --- a/src/main/java/net/DeltaWings/Minecraft/BetterTP/Metrics.java +++ b/src/main/java/net/DeltaWings/Minecraft/BetterTP/Metrics.java @@ -126,12 +126,7 @@ public class Metrics { } // Nevertheless we want our code to run in the Bukkit main thread, so we have to use the Bukkit scheduler // Don't be afraid! The connection to the bStats server is still async, only the stats collection is sync ;) - Bukkit.getScheduler().runTask(plugin, new Runnable() { - @Override - public void run() { - submitData(); - } - }); + Bukkit.getScheduler().runTask(plugin, () -> submitData()); } }, 1000*60*5, 1000*60*30); // Submit the data every 30 minutes, first time after 5 minutes to give other plugins enough time to start @@ -218,17 +213,14 @@ public class Metrics { data.put("plugins", pluginData); // Create a new thread for the connection to the bStats server - new Thread(new Runnable() { - @Override - public void run() { - try { - // Send the data - sendData(data); - } catch (Exception e) { - // Something went wrong! :( - if (logFailedRequests) { - plugin.getLogger().log(Level.WARNING, "Could not submit plugin stats of " + plugin.getName(), e); - } + new Thread(() -> { + try { + // Send the data + sendData(data); + } catch (Exception e) { + // Something went wrong! :( + if (logFailedRequests) { + plugin.getLogger().log(Level.WARNING, "Could not submit plugin stats of " + plugin.getName(), e); } } }).start(); diff --git a/src/main/java/net/DeltaWings/Minecraft/BetterTP/TabCompleter/BettertpTab.java b/src/main/java/net/DeltaWings/Minecraft/BetterTP/TabCompleter/BettertpTab.java new file mode 100644 index 0000000..84cf052 --- /dev/null +++ b/src/main/java/net/DeltaWings/Minecraft/BetterTP/TabCompleter/BettertpTab.java @@ -0,0 +1,42 @@ +package net.DeltaWings.Minecraft.BetterTP.TabCompleter; + +import net.DeltaWings.Minecraft.BetterTP.Main; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabCompleter; + +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", "config"}, setdel = new String[]{"spawn","lobby"}, confopt = new String[]{""}; + + @Override + public List 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) { + if(!a[0].equals("")) { + List l = new ArrayList<>(); + for (String t: menu) if(t.startsWith(a[0].toLowerCase())) l.add(t); + return l; + } + } else if(a.length == 2) { + 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; + else return null; + if (!a[1].equals("")) { + List l = new ArrayList<>(); + for (String t : y) if (t.startsWith(a[1].toLowerCase())) l.add(t); + return l; + } else return Arrays.asList(y); + } + return null; + } +}