diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml
index fc30e28..9f7cf4f 100644
--- a/dependency-reduced-pom.xml
+++ b/dependency-reduced-pom.xml
@@ -35,8 +35,8 @@
- us.ajg0702.premium
- us.ajg0702.queue
+ us.ajg0702.utils
+ us.ajg0702.queue.utils
@@ -134,35 +134,6 @@
-
- net.md-5
- bungeecord-api
- 1.14-SNAPSHOT
- javadoc
- provided
-
-
- bungeecord-chat
- net.md-5
-
-
- bungeecord-config
- net.md-5
-
-
- bungeecord-event
- net.md-5
-
-
- bungeecord-protocol
- net.md-5
-
-
- guava
- com.google.guava
-
-
- org.spigotmcspigot-api
diff --git a/pom.xml b/pom.xml
index f61b8ec..a18e1fb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,17 +26,15 @@
- net.md-5
- bungeecord-api
- 1.14-SNAPSHOT
- jar
- provided
+ us.ajg0702
+ ajUtils
+ 1.0.0
+ compilenet.md-5bungeecord-api1.14-SNAPSHOT
- javadocprovided
@@ -91,8 +89,8 @@
- us.ajg0702.premium
- us.ajg0702.queue
+ us.ajg0702.utils
+ us.ajg0702.queue.utils
diff --git a/src/main/java/us/ajg0702/queue/Main.java b/src/main/java/us/ajg0702/queue/Main.java
index ca8bd0c..779b801 100644
--- a/src/main/java/us/ajg0702/queue/Main.java
+++ b/src/main/java/us/ajg0702/queue/Main.java
@@ -3,6 +3,7 @@ package us.ajg0702.queue;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.concurrent.Callable;
@@ -20,10 +21,10 @@ import net.md_5.bungee.event.EventHandler;
import us.ajg0702.queue.commands.LeaveCommand;
import us.ajg0702.queue.commands.ManageCommand;
import us.ajg0702.queue.commands.MoveCommand;
-import us.ajg0702.queue.utils.BungeeConfig;
-import us.ajg0702.queue.utils.BungeeMessages;
-import us.ajg0702.queue.utils.BungeeStats;
-import us.ajg0702.queue.utils.BungeeUtils;
+import us.ajg0702.utils.bungee.BungeeConfig;
+import us.ajg0702.utils.bungee.BungeeMessages;
+import us.ajg0702.utils.bungee.BungeeStats;
+import us.ajg0702.utils.bungee.BungeeUtils;
public class Main extends Plugin implements Listener {
@@ -47,13 +48,16 @@ public class Main extends Plugin implements Listener {
public void onEnable() {
plugin = this;
- /*LinkedHashMap d = new LinkedHashMap<>();
+ LinkedHashMap d = new LinkedHashMap<>();
d.put("status.offline.base", "&cThe server you are queued for is {STATUS}. &7You are in position &f{POS}&7 of &f{LEN}&7.");
+
d.put("status.offline.offline", "offline");
d.put("status.offline.restarting", "restarting");
d.put("status.offline.full", "full");
+ d.put("status.offline.restricted", "restricted");
+
d.put("status.online.base", "&7You are in position &f{POS}&7 of &f{LEN}&7. Estimated time: {TIME}");
d.put("status.left-last-queue", "&aYou left the last queue you were in.");
d.put("status.now-in-queue", "&aYou are now queued for {SERVER}! &7You are in position &f{POS}&7 of &f{LEN}&7.\n&7Type &f/leavequeue&7 to leave the queue!");
@@ -65,8 +69,9 @@ public class Main extends Plugin implements Listener {
d.put("errors.player-only", "&cThis command can only be executed as a player!");
d.put("errors.already-connected", "&cYou are already connected to this server!");
- d.put("commands.leave-queue", "&aYou left the queue!");
+ d.put("commands.leave-queue", "&aYou left the queue for {SERVER}!");
d.put("commands.reload", "&aConfig and messages reloaded successfully!");
+ d.put("commands.joinqueue.usage", "&cUsage: /joinqueue ");
d.put("noperm", "&cYou do not have permission to do this!");
@@ -82,12 +87,13 @@ public class Main extends Plugin implements Listener {
d.put("spigot.actionbar.offline", "&7You are queued for &f{SERVER}&7. &7You are in position &f{POS}&7 of &f{LEN}&7.");
d.put("send", "&aAdded &f{PLAYER}&a to the queue for &f{SERVER}");
+ d.put("remove", "&aRemoved &f{PLAYER} from all queues they were in.");
d.put("placeholders.queued.none", "None");
d.put("placeholders.position.none", "None");
- msgs = BungeeMessages.getInstance(this, d);*/
- msgs = BungeeMessages.getInstance(this);
+ msgs = BungeeMessages.getInstance(this, d);
+ //msgs = BungeeMessages.getInstance(this);
config = new BungeeConfig(this);
checkConfig();
diff --git a/src/main/java/us/ajg0702/queue/Manager.java b/src/main/java/us/ajg0702/queue/Manager.java
index ef4a793..6e14107 100644
--- a/src/main/java/us/ajg0702/queue/Manager.java
+++ b/src/main/java/us/ajg0702/queue/Manager.java
@@ -9,8 +9,8 @@ import java.util.concurrent.TimeUnit;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.config.ServerInfo;
import net.md_5.bungee.api.connection.ProxiedPlayer;
-import us.ajg0702.queue.utils.BungeeMessages;
-import us.ajg0702.queue.utils.BungeeUtils;
+import us.ajg0702.utils.bungee.BungeeMessages;
+import us.ajg0702.utils.bungee.BungeeUtils;
public class Manager {
diff --git a/src/main/java/us/ajg0702/queue/commands/LeaveCommand.java b/src/main/java/us/ajg0702/queue/commands/LeaveCommand.java
index 03d42bc..1f7b684 100644
--- a/src/main/java/us/ajg0702/queue/commands/LeaveCommand.java
+++ b/src/main/java/us/ajg0702/queue/commands/LeaveCommand.java
@@ -6,7 +6,7 @@ import net.md_5.bungee.api.plugin.Command;
import us.ajg0702.queue.Main;
import us.ajg0702.queue.Manager;
import us.ajg0702.queue.Server;
-import us.ajg0702.queue.utils.BungeeMessages;
+import us.ajg0702.utils.bungee.BungeeMessages;
public class LeaveCommand extends Command {
Main plugin;
diff --git a/src/main/java/us/ajg0702/queue/commands/ManageCommand.java b/src/main/java/us/ajg0702/queue/commands/ManageCommand.java
index a3d1150..01cf097 100644
--- a/src/main/java/us/ajg0702/queue/commands/ManageCommand.java
+++ b/src/main/java/us/ajg0702/queue/commands/ManageCommand.java
@@ -9,7 +9,7 @@ import net.md_5.bungee.api.plugin.Command;
import us.ajg0702.queue.Main;
import us.ajg0702.queue.Manager;
import us.ajg0702.queue.Server;
-import us.ajg0702.queue.utils.BungeeMessages;
+import us.ajg0702.utils.bungee.BungeeMessages;
public class ManageCommand extends Command {
diff --git a/src/main/java/us/ajg0702/queue/commands/MoveCommand.java b/src/main/java/us/ajg0702/queue/commands/MoveCommand.java
index 5ac3bae..f20ac20 100644
--- a/src/main/java/us/ajg0702/queue/commands/MoveCommand.java
+++ b/src/main/java/us/ajg0702/queue/commands/MoveCommand.java
@@ -5,7 +5,7 @@ import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.Command;
import us.ajg0702.queue.Main;
import us.ajg0702.queue.Manager;
-import us.ajg0702.queue.utils.BungeeMessages;
+import us.ajg0702.utils.bungee.BungeeMessages;
public class MoveCommand extends Command {
Main plugin;
diff --git a/src/main/java/us/ajg0702/queue/utils/BungeeConfig.java b/src/main/java/us/ajg0702/queue/utils/BungeeConfig.java
deleted file mode 100644
index 9c4d4ee..0000000
--- a/src/main/java/us/ajg0702/queue/utils/BungeeConfig.java
+++ /dev/null
@@ -1,208 +0,0 @@
-package us.ajg0702.queue.utils;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
-
-import net.md_5.bungee.api.plugin.Plugin;
-import net.md_5.bungee.config.Configuration;
-import net.md_5.bungee.config.ConfigurationProvider;
-import net.md_5.bungee.config.YamlConfiguration;
-
-public class BungeeConfig {
-
- File f;
- Configuration config;
-
- ConfigurationProvider cv = ConfigurationProvider.getProvider(YamlConfiguration.class);
-
- String nfm = "Could not find KEY in config! Try restarting the server or deleting the config and allowing the plugin to re-create it.";
-
- public Object get(String key) {
- Object r = config.get(key);
- if(r == null) {
- pl.getLogger().severe(nfm.replace("KEY", key));;
- }
- return r;
- }
- public Integer getInt(String key) {
- int r = config.getInt(key, -38964298);
- if(r == -38964298) {
- pl.getLogger().severe(nfm.replace("KEY", key));;
- }
- return r;
- }
- public String getString(String key) {
- String r = config.getString(key);
- if(r == null) {
- pl.getLogger().severe(nfm.replace("KEY", key));;
- }
- return r;
- }
- public List getStringList(String key) {
- List r = config.getStringList(key);
- if(r == null) {
- pl.getLogger().severe(nfm.replace("KEY", key));;
- }
- return r;
- }
- public boolean getBoolean(String key) {
- return config.getBoolean(key);
- }
-
- public String getDefaultConfig() throws IOException {
- BufferedReader stream = new BufferedReader(new InputStreamReader(this.getClass().getResourceAsStream("/config.yml")));
- StringBuilder configfile = new StringBuilder();
- String line;
- while((line = stream.readLine()) != null) {
- configfile.append(line+"\n");
- }
- return configfile.toString();
- }
-
- public String getConfigString() throws IOException {
- List lines = Files.readAllLines(Paths.get(pl.getDataFolder().getPath().toString(), "config.yml"));
- String end = "";
- for(String line : lines) {
- end += line+"\n";
- }
- return end;
- }
- Plugin pl;
- @SuppressWarnings("unused")
- public BungeeConfig(Plugin plugin) {
- pl = plugin;
- f = new File(plugin.getDataFolder(), "config.yml");
- if(!f.exists()) {
- if(!Files.exists(pl.getDataFolder().toPath())) {
- try {
- Files.createDirectory(pl.getDataFolder().toPath());
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- try {
- PrintWriter writer = new PrintWriter(pl.getDataFolder()+File.separator+"config.yml", "UTF-8");
- String[] lines = getDefaultConfig().split("\n");
- for(String line : lines) {
- writer.println(line);
-
- }
- writer.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- //Bukkit.getLogger().info(configfile.toString());
- } else {
- try {
- f = new File(pl.getDataFolder(), "config.yml");
- Configuration oldconfig = cv.load(f);
- String newConfig = getDefaultConfig();
- int oldver = oldconfig.getInt("config-version", 0);
- String strv = newConfig
- .split("config\\-version: ")[1]
- .split("\n")[0];
- //pl.getLogger().info("New config version: "+strv);
- int newver = Integer.parseInt(strv);
- if(oldver < newver) {
- pl.getLogger().info("Starting config converter!");
- Date date = Calendar.getInstance().getTime();
- DateFormat dateFormat = new SimpleDateFormat("yyyy-mm-dd-hh-mm-ss");
- String strDate = dateFormat.format(date);
- duplicateFile(f, new File(pl.getDataFolder(), "config.yml.old."+strDate));
- String oldConfig = getConfigString();
- f = new File(pl.getDataFolder(), "config.yml");
- config = cv.load(f);
- for(String key : oldconfig.getKeys()) {
- pl.getLogger().info("Key: "+key);
- String[] keyParts = key.split("\\.");
- //pl.getLogger().info("Key len: "+keyParts.length);
- String keySec = keyParts[keyParts.length-1];
- pl.getLogger().info("keySec: "+keySec);
- String newVal = newConfig.split(keySec)[1].split("\n")[0];
- int i = 0;
- for(String l : newConfig.split(keySec)[1].split("\n")) {
- if(i == 0) {
- i++;
- continue;
- }
- i++;
- pl.getLogger().info("Scanning: "+l);
- if(l.startsWith("-")) {
- newVal += "\n"+l;
- } else {
- break;
- }
- }
- String find = keySec+ newVal;
- String replace = keySec + ": " + oldconfig.get(key);
- replace = replace.replaceAll("\\[", "\n- ");
- replace = replace.replaceAll("\\, ", "\n- ");
- replace = replace.replaceAll("\\]", "");
- pl.getLogger().info("Find: "+find +" Replace w: "+replace);
- if(!keySec.equals("config-version")) {
- newConfig = newConfig.replaceAll(find, replace);
- }
- }
- PrintWriter writer = new PrintWriter(f, "UTF-8");
- String[] lines = newConfig.split("\n");
- for(String line : lines) {
- writer.println(line);
- }
- writer.close();
- }
- } catch (IOException e) {
- pl.getLogger().severe("Unable to load default config! " + e.getMessage() + "\n" + e.getStackTrace().toString());;
- }
- }
-
- f = new File(pl.getDataFolder(), "config.yml");
- try {
- config = cv.load(f);
- } catch (IOException e) {
- pl.getLogger().warning("Unable to reload the config:");
- e.printStackTrace();
- }
- }
- public void reload() {
- try {
- config = cv.load(f);
- } catch (IOException e) {
- pl.getLogger().warning("Unable to reload the config:");
- e.printStackTrace();
- }
- }
-
-
-
- private static void duplicateFile(File source, File destination) throws IOException {
- InputStream is = null;
- OutputStream os = null;
- try {
- is = new FileInputStream(source);
- os = new FileOutputStream(destination);
- byte[] buffer = new byte[1024];
- int length;
- while ((length = is.read(buffer)) > 0) {
- os.write(buffer, 0, length);
- }
- } finally {
- is.close();
- os.close();
- }
- }
-}
diff --git a/src/main/java/us/ajg0702/queue/utils/BungeeMessages.java b/src/main/java/us/ajg0702/queue/utils/BungeeMessages.java
deleted file mode 100644
index 59ef67c..0000000
--- a/src/main/java/us/ajg0702/queue/utils/BungeeMessages.java
+++ /dev/null
@@ -1,137 +0,0 @@
-package us.ajg0702.queue.utils;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.LinkedHashMap;
-import java.util.regex.Matcher;
-
-import net.md_5.bungee.api.ProxyServer;
-import net.md_5.bungee.api.chat.BaseComponent;
-import net.md_5.bungee.api.chat.TextComponent;
-import net.md_5.bungee.api.plugin.Plugin;
-import net.md_5.bungee.config.Configuration;
-import net.md_5.bungee.config.ConfigurationProvider;
-import net.md_5.bungee.config.YamlConfiguration;
-
-public class BungeeMessages {
- static BungeeMessages INSTANCE = null;
- public static BungeeMessages getInstance() {
- return INSTANCE;
- }
- public static BungeeMessages getInstance(Plugin pl) {
- if(INSTANCE == null) {
- INSTANCE = new BungeeMessages(pl);
- }
- return INSTANCE;
- }
-
- Plugin pl;
- ConfigurationProvider cv = ConfigurationProvider.getProvider(YamlConfiguration.class);
- Configuration msgs;
- File msgFile;
- private BungeeMessages(Plugin pl) {
- this.pl = pl;
- loadMessagesFile();
- }
-
- private void loadMessagesFile() {
- msgFile = new File(pl.getDataFolder(), "messages.yml");
- if(!msgFile.exists()) {
- try {
- pl.getDataFolder().mkdirs();
- msgFile.createNewFile();
- } catch (IOException e) {
- pl.getLogger().severe("Unable to create messages file:");
- e.printStackTrace();
- }
- }
- try {
- msgs = cv.load(msgFile);
- } catch (IOException e) {
- pl.getLogger().severe("Unable to load messages file:");
- e.printStackTrace();
- return;
- }
- LinkedHashMap d = new LinkedHashMap<>();
-
-
- d.put("status.offline.base", "&cThe server you are queued for is {STATUS}. &7You are in position &f{POS}&7 of &f{LEN}&7.");
-
- d.put("status.offline.offline", "offline");
- d.put("status.offline.restarting", "restarting");
- d.put("status.offline.full", "full");
- d.put("status.offline.restricted", "restricted");
-
- d.put("status.online.base", "&7You are in position &f{POS}&7 of &f{LEN}&7. Estimated time: {TIME}");
- d.put("status.left-last-queue", "&aYou left the last queue you were in.");
- d.put("status.now-in-queue", "&aYou are now queued for {SERVER}! &7You are in position &f{POS}&7 of &f{LEN}&7.\n&7Type &f/leavequeue&7 to leave the queue!");
- d.put("status.now-in-empty-queue", "");
- d.put("status.sending-now", "&aSending you to &f{SERVER} &anow..");
-
- d.put("errors.server-not-exist", "&cThat server does not exist!");
- d.put("errors.already-queued", "&cYou are already queued for that server!");
- d.put("errors.player-only", "&cThis command can only be executed as a player!");
- d.put("errors.already-connected", "&cYou are already connected to this server!");
-
- d.put("commands.leave-queue", "&aYou left the queue for {SERVER}!");
- d.put("commands.reload", "&aConfig and messages reloaded successfully!");
- d.put("commands.joinqueue.usage", "&cUsage: /joinqueue ");
-
- d.put("noperm", "&cYou do not have permission to do this!");
-
- d.put("format.time.mins", "{m}m {s}s");
- d.put("format.time.secs", "{s} seconds");
-
- d.put("list.format", "&b{SERVER} &7({COUNT}): {LIST}");
- d.put("list.playerlist", "&9{NAME}&7, ");
- d.put("list.total", "&7Total players in queues: &f{TOTAL}");
- d.put("list.none", "&7None");
-
- d.put("spigot.actionbar.online", "&7You are queued for &f{SERVER}&7. You are in position &f{POS}&7 of &f{LEN}&7. Estimated time: {TIME}");
- d.put("spigot.actionbar.offline", "&7You are queued for &f{SERVER}&7. &7You are in position &f{POS}&7 of &f{LEN}&7.");
-
- d.put("send", "&aAdded &f{PLAYER}&a to the queue for &f{SERVER}");
- d.put("remove", "&aRemoved &f{PLAYER} from all queues they were in.");
-
- d.put("placeholders.queued.none", "None");
- d.put("placeholders.position.none", "None");
-
-
- for(String k : d.keySet()) {
- //pl.getLogger().info("Checking "+k);
- if(!msgs.contains(k)) {
- msgs.set(k, d.get(k));
- }
- }
- try {
- cv.save(msgs, msgFile);
- } catch (IOException e) {
- pl.getLogger().severe("Unable to save messages file:");
- e.printStackTrace();
- }
- }
-
- public String get(String key) {
- String msg = msgs.get(key, "&cMessage '"+key+"' does not exist!");
- msg = color(msg);
- return msg;
- }
- public BaseComponent[] getBC(String key, String... placeholders) {
- String m = get(key);
- for(String sr : placeholders) {
- //ProxyServer.getInstance().getLogger().info(sr);
- String placeholder = sr.split(":")[0];
- String value = sr.replaceFirst(Matcher.quoteReplacement(placeholder+":"), "");
- m = m.replaceAll("\\{"+Matcher.quoteReplacement(placeholder)+"\\}", value);
- }
- return TextComponent.fromLegacyText(m);
- }
- public String color(String msg) {
-
- return net.md_5.bungee.api.ChatColor.translateAlternateColorCodes('&', msg).replaceAll(Matcher.quoteReplacement("\\n"), "\n");
- }
-
- public void reload() {
- loadMessagesFile();
- }
-}
diff --git a/src/main/java/us/ajg0702/queue/utils/BungeeStats.java b/src/main/java/us/ajg0702/queue/utils/BungeeStats.java
deleted file mode 100644
index eee66a2..0000000
--- a/src/main/java/us/ajg0702/queue/utils/BungeeStats.java
+++ /dev/null
@@ -1,754 +0,0 @@
-package us.ajg0702.queue.utils;
-
-import com.google.gson.JsonArray;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonPrimitive;
-import net.md_5.bungee.api.plugin.Plugin;
-import net.md_5.bungee.config.Configuration;
-import net.md_5.bungee.config.ConfigurationProvider;
-import net.md_5.bungee.config.YamlConfiguration;
-
-import javax.net.ssl.HttpsURLConnection;
-import java.io.*;
-import java.lang.reflect.InvocationTargetException;
-import java.net.URL;
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.Callable;
-import java.util.concurrent.TimeUnit;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import java.util.zip.GZIPOutputStream;
-
-/**
- * bStats collects some data for plugin authors.
- *
- * Check out https://bStats.org/ to learn more about bStats!
- */
-@SuppressWarnings({"WeakerAccess", "unused"})
-public class BungeeStats {
-
- static {
- // You can use the property to disable the check in your test environment
- if (System.getProperty("bstats.relocatecheck") == null || !System.getProperty("bstats.relocatecheck").equals("false")) {
- // Maven's Relocate is clever and changes strings, too. So we have to use this little "trick" ... :D
- final String defaultPackage = new String(
- new byte[]{'o', 'r', 'g', '.', 'b', 's', 't', 'a', 't', 's', '.', 'b', 'u', 'n', 'g', 'e', 'e', 'c', 'o', 'r', 'd'});
- final String examplePackage = new String(new byte[]{'y', 'o', 'u', 'r', '.', 'p', 'a', 'c', 'k', 'a', 'g', 'e'});
- // We want to make sure nobody just copy & pastes the example and use the wrong package names
- if (BungeeStats.class.getPackage().getName().equals(defaultPackage) || BungeeStats.class.getPackage().getName().equals(examplePackage)) {
- throw new IllegalStateException("bStats Metrics class has not been relocated correctly!");
- }
- }
- }
-
- // The version of this bStats class
- public static final int B_STATS_VERSION = 1;
-
- // The url to which the data is sent
- private static final String URL = "https://bStats.org/submitData/bungeecord";
-
- // The plugin
- private final Plugin plugin;
-
- // The plugin id
- private final int pluginId;
-
- // Is bStats enabled on this server?
- private boolean enabled;
-
- // The uuid of the server
- private String serverUUID;
-
- // Should failed requests be logged?
- private boolean logFailedRequests = false;
-
- // Should the sent data be logged?
- private static boolean logSentData;
-
- // Should the response text be logged?
- private static boolean logResponseStatusText;
-
- // A list with all known metrics class objects including this one
- private static final List