From e1cad8d3df524dcab092604cea39d8a7ae5e727d Mon Sep 17 00:00:00 2001 From: Izzel_Aliz Date: Fri, 5 Jan 2018 13:19:53 +0800 Subject: [PATCH] Async query --- .gitignore | 3 + pom.xml | 40 +- src/com/ilummc/bugrepgui/Commands.java | 113 +++++ src/com/ilummc/bugrepgui/Database.java | 16 +- src/com/ilummc/bugrepgui/EventListener.java | 33 +- src/com/ilummc/bugrepgui/GUI.java | 436 +++++++++--------- src/com/ilummc/bugrepgui/Main.java | 9 +- src/com/ilummc/bugrepgui/Notify.java | 4 +- src/com/ilummc/bugrepgui/Stats.java | 90 ++-- src/com/ilummc/bugrepgui/Storage.java | 219 +++++---- .../ilummc/bugrepgui/bungee/GlobalNotify.java | 20 +- src/com/ilummc/bugrepgui/bungee/Main.java | 136 +++--- src/com/ilummc/bugrepgui/cmdExe.java | 116 ----- .../ilummc/bugrepgui/util/UpdateChecker.java | 64 ++- src/config.yml | 26 +- src/plugin.yml | 7 +- 16 files changed, 655 insertions(+), 677 deletions(-) create mode 100644 .gitignore create mode 100644 src/com/ilummc/bugrepgui/Commands.java delete mode 100644 src/com/ilummc/bugrepgui/cmdExe.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5cc6066 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +# Created by .ignore support plugin (hsz.mobi) +.gitignore +.idea/ diff --git a/pom.xml b/pom.xml index 50afad5..c07a4eb 100644 --- a/pom.xml +++ b/pom.xml @@ -19,27 +19,27 @@ - src - - - . - ${basedir}/src/ - - + src + + + . + ${basedir}/src/ + + org.apache.maven.plugins maven-compiler-plugin 3.5.1 - - default-compile - compile - - compile - - - + + default-compile + compile + + compile + + + 1.8 1.8 @@ -57,14 +57,12 @@ jar provided - - org.spigotmc - spigot-api - 1.8.3-R0.1-SNAPSHOT - provided + org.spigotmc + spigot-api + 1.8.3-R0.1-SNAPSHOT + provided - org.bukkit bukkit diff --git a/src/com/ilummc/bugrepgui/Commands.java b/src/com/ilummc/bugrepgui/Commands.java new file mode 100644 index 0000000..291587a --- /dev/null +++ b/src/com/ilummc/bugrepgui/Commands.java @@ -0,0 +1,113 @@ +package com.ilummc.bugrepgui; + +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class Commands implements CommandExecutor { + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (command.getName().equals("report")) { + if (sender instanceof Player) { + if (sender.hasPermission("bugrepgui.report")) { + Bug bug = new Bug((Player) sender); + Storage.putMap(bug); + Storage.send(sender, "input-bug-info"); + return true; + } else { + Storage.send(sender, "no-perm"); + return true; + } + } else { + Storage.send(sender, "must-player-run"); + return true; + } + } else { + if (args.length == 1 && args[0].equalsIgnoreCase("help")) { + Storage.getHelp(sender); + return true; + } + if (args.length == 1 && args[0].equalsIgnoreCase("view")) { + if (sender instanceof Player) { + if (sender.hasPermission("bugrepgui.view")) { + GUI.open((Player) sender, 1); + } else { + Storage.send(sender, "no-perm"); + } + return true; + } else { + Storage.send(sender, "must-player-run"); + } + return true; + } + if (args.length == 2 && args[0].equalsIgnoreCase("view") && args[1].equalsIgnoreCase("history")) { + if (sender instanceof Player) { + if (sender.hasPermission("bugrepgui.view")) { + GUI.openHistory((Player) sender, 1); + } else { + Storage.send(sender, "no-perm"); + } + return true; + } else { + Storage.send(sender, "must-player-run"); + } + } + if (args.length == 1 && args[0].equalsIgnoreCase("report")) { + if (sender instanceof Player) { + if (sender.hasPermission("bugrepgui.report")) { + Bug bug = new Bug((Player) sender); + Storage.putMap(bug); + Storage.send(sender, "input-bug-info"); + return true; + } else { + Storage.send(sender, "no-perm"); + return true; + } + } else { + Storage.send(sender, "must-player-run"); + return true; + } + } + if (args.length == 2 && args[0].equalsIgnoreCase("stats")) { + if (args[1].equalsIgnoreCase("text")) { + if (sender.hasPermission("bugrepgui.stats.text")) { + final CommandSender send = sender; + Thread t = new Thread(() -> { + send.sendMessage(Stats.loadTextRep()); + try { + Thread.sleep(3000); + Storage.send(send, "wait"); + Thread.sleep(5000); + } catch (InterruptedException e) { + Storage.logExcept(e); + } + send.sendMessage(Stats.loadTextExe()); + }); + t.start(); + return true; + } else { + Storage.send(sender, "no-perm"); + return true; + } + } + if (args[1].equalsIgnoreCase("gui")) { + return true; + } + return true; + } + if (args.length == 1 && args[0].equalsIgnoreCase("reload")) { + if (sender.hasPermission("bugrepgui.reload")) { + Storage.reload(); + Storage.send(sender, "reload-suc"); + return true; + } else { + Storage.send(sender, "no-perm"); + } + } + Storage.getHelp(sender); + return true; + } + } +} diff --git a/src/com/ilummc/bugrepgui/Database.java b/src/com/ilummc/bugrepgui/Database.java index ecc6960..7d5ca1c 100644 --- a/src/com/ilummc/bugrepgui/Database.java +++ b/src/com/ilummc/bugrepgui/Database.java @@ -1,15 +1,12 @@ package com.ilummc.bugrepgui; -import java.sql.*; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; - import org.bukkit.Bukkit; import org.bukkit.entity.Player; +import java.sql.*; +import java.util.*; +import java.util.Date; + public class Database { /* * SERIAL REPNAME REPTIME REPMSG EXENAME EXETIME EXEMSG EXECUTED BACK @@ -317,10 +314,7 @@ public class Database { c = DriverManager.getConnection(url, Storage.getConfig().getString("mysql-username"), Storage.getConfig().getString("mysql-password")); state = c.createStatement(); - } catch (SQLException e) { - Storage.logExcept(e); - return false; - } catch (ClassNotFoundException e) { + } catch (SQLException | ClassNotFoundException e) { Storage.logExcept(e); return false; } diff --git a/src/com/ilummc/bugrepgui/EventListener.java b/src/com/ilummc/bugrepgui/EventListener.java index c6929a4..55bf7ab 100644 --- a/src/com/ilummc/bugrepgui/EventListener.java +++ b/src/com/ilummc/bugrepgui/EventListener.java @@ -1,20 +1,17 @@ package com.ilummc.bugrepgui; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.player.AsyncPlayerChatEvent; -import org.bukkit.event.player.PlayerCommandPreprocessEvent; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerMoveEvent; -import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.event.player.*; import org.bukkit.inventory.Inventory; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + public class EventListener implements org.bukkit.event.Listener { + String alias; public EventListener setAlias(String msg) { this.alias = msg; @@ -38,8 +35,8 @@ public class EventListener implements org.bukkit.event.Listener { } } - @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = false) - public void onChat(AsyncPlayerChatEvent evt) { + @EventHandler(priority = EventPriority.HIGHEST) + public void onChat(AsyncPlayerChatEvent evt) { String regex2 = "[^']+"; Pattern pattern2 = Pattern.compile(regex2); Matcher m2 = pattern2.matcher(evt.getMessage()); @@ -68,8 +65,8 @@ public class EventListener implements org.bukkit.event.Listener { } } - @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = false) - public void onMove(PlayerMoveEvent evt) { + @EventHandler(priority = EventPriority.HIGHEST) + public void onMove(PlayerMoveEvent evt) { if (Storage.map.containsKey(evt.getPlayer().getUniqueId().toString())) { evt.setCancelled(true); Bug bug = Storage.map.get(evt.getPlayer().getUniqueId().toString()); @@ -84,15 +81,15 @@ public class EventListener implements org.bukkit.event.Listener { } } - @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = false) - public void onOffline(PlayerQuitEvent evt) { + @EventHandler(priority = EventPriority.HIGHEST) + public void onOffline(PlayerQuitEvent evt) { if (Storage.map.containsKey(evt.getPlayer().getUniqueId().toString())) { Storage.map.remove(evt.getPlayer().getUniqueId().toString()); } } - @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = false) - public void onClick(InventoryClickEvent evt) { + @EventHandler(priority = EventPriority.HIGHEST) + public void onClick(InventoryClickEvent evt) { String regex = "[¡ì[0-9a-fA-f]]*\\u005b\\s[0-9]*\\s/\\s[0-9]*\\s\\u005d\\s*[\\d\\D]*"; Pattern pattern = Pattern.compile(regex); Matcher m = pattern.matcher(evt.getInventory().getTitle()); @@ -135,8 +132,8 @@ public class EventListener implements org.bukkit.event.Listener { } - @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = false) - public void onJoin(PlayerJoinEvent evt) { + @EventHandler(priority = EventPriority.HIGHEST) + public void onJoin(PlayerJoinEvent evt) { Database.check(evt.getPlayer()); } } diff --git a/src/com/ilummc/bugrepgui/GUI.java b/src/com/ilummc/bugrepgui/GUI.java index 24f96b4..a7d5904 100644 --- a/src/com/ilummc/bugrepgui/GUI.java +++ b/src/com/ilummc/bugrepgui/GUI.java @@ -1,8 +1,5 @@ package com.ilummc.bugrepgui; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -10,226 +7,235 @@ import org.bukkit.event.inventory.ClickType; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.plugin.java.JavaPlugin; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Objects; public class GUI { - static List invs = new ArrayList<>(); - static List his = new ArrayList<>(); - static Integer pages; + private static List invs = new ArrayList<>(); + private static List his = new ArrayList<>(); + private static Integer pages; - public static void open(Player player, int page) { - loadInv(); - player.closeInventory(); - player.openInventory(invs.get(page - 1)); - } + public static void open(Player player, int page) { + new Thread(() -> { + loadInv(); + Bukkit.getScheduler().runTask(JavaPlugin.getPlugin(Main.class), () -> { + player.closeInventory(); + player.openInventory(invs.get(page - 1)); + }); + }).start(); + } - public static void openHistory(Player player, int page) { - loadHis(player); - player.closeInventory(); - player.openInventory(his.get(page - 1)); - } + public static void openHistory(Player player, int page) { + new Thread(() -> { + loadHis(player); + Bukkit.getScheduler().runTask(JavaPlugin.getPlugin(Main.class), () -> { + player.closeInventory(); + player.openInventory(his.get(page - 1)); + }); + }).start(); + } - public static void loadHis(Player player) { - his = new ArrayList<>(); - List set = Database.listHis(); - Iterator it = set.iterator(); - List nlist = new ArrayList<>(); - while (it.hasNext()) { - nlist.add(it.next().toItemExecuted()); - } - setItemHis(nlist, player); - } + public static void loadHis(Player player) { + his = new ArrayList<>(); + List set = Database.listHis(); + Iterator it = set.iterator(); + List nlist = new ArrayList<>(); + while (it.hasNext()) { + nlist.add(it.next().toItemExecuted()); + } + setItemHis(nlist, player); + } - public static boolean loadInv() { - invs = new ArrayList<>(); - List set = Database.list(); - Iterator it = set.iterator(); - List nlist = new ArrayList<>(); - while (it.hasNext()) { - nlist.add(it.next().toItem()); - } - setItem(nlist); - return true; - } + public static boolean loadInv() { + invs = new ArrayList<>(); + List set = Database.list(); + Iterator it = set.iterator(); + List nlist = new ArrayList<>(); + while (it.hasNext()) { + nlist.add(it.next().toItem()); + } + setItem(nlist); + return true; + } - private static void setItemHis(List nlist, Player player) { - ItemStack lp = new ItemStack(Material.REDSTONE); - ItemMeta lm = lp.getItemMeta(); - lm.setDisplayName(Storage.getMsg("last-page")); - lp.setItemMeta(lm); - ItemStack np = new ItemStack(Material.EMERALD); - ItemMeta nm = np.getItemMeta(); - nm.setDisplayName(Storage.getMsg("next-page")); - np.setItemMeta(nm); - ItemStack usage = new ItemStack(Material.PAPER); - ItemMeta um = usage.getItemMeta(); - um.setDisplayName(Storage.getMsg("to-not-executed")); - usage.setItemMeta(um); - ItemStack re = new ItemStack(Material.BOOK); - ItemMeta rm = re.getItemMeta(); - rm.setDisplayName(Storage.getMsg("refresh")); - re.setItemMeta(rm); - ItemStack ex = new ItemStack(Material.NETHER_STAR); - ItemMeta em = ex.getItemMeta(); - em.setDisplayName(Storage.getMsg("exit")); - ex.setItemMeta(em); - Iterator iter = nlist.iterator(); - int all = nlist.size(); - pages = (((all % 45) == 0) && (all != 0)) ? (all / 45) : (all / 45 + 1); - for (Integer t = 1; t <= pages; t++) { - Inventory inv = Bukkit.createInventory(player, 54, - "¡ìd( " + t.toString() + " / " + pages.toString() + " ) " + Storage.getMsg("history-name")); - for (int i = 0; i <= 44 && iter.hasNext(); i++) { - ItemStack it = iter.next(); - inv.setItem(i, it); - } - inv.setItem(45, lp); - inv.setItem(47, np); - inv.setItem(51, usage); - inv.setItem(49, re); - inv.setItem(53, ex); - his.add(t - 1, inv); - } - } + private static void setItemHis(List nlist, Player player) { + ItemStack lp = new ItemStack(Material.REDSTONE); + ItemMeta lm = lp.getItemMeta(); + lm.setDisplayName(Storage.getMsg("last-page")); + lp.setItemMeta(lm); + ItemStack np = new ItemStack(Material.EMERALD); + ItemMeta nm = np.getItemMeta(); + nm.setDisplayName(Storage.getMsg("next-page")); + np.setItemMeta(nm); + ItemStack usage = new ItemStack(Material.PAPER); + ItemMeta um = usage.getItemMeta(); + um.setDisplayName(Storage.getMsg("to-not-executed")); + usage.setItemMeta(um); + ItemStack re = new ItemStack(Material.BOOK); + ItemMeta rm = re.getItemMeta(); + rm.setDisplayName(Storage.getMsg("refresh")); + re.setItemMeta(rm); + ItemStack ex = new ItemStack(Material.NETHER_STAR); + ItemMeta em = ex.getItemMeta(); + em.setDisplayName(Storage.getMsg("exit")); + ex.setItemMeta(em); + Iterator iter = nlist.iterator(); + int all = nlist.size(); + pages = (((all % 45) == 0) && (all != 0)) ? (all / 45) : (all / 45 + 1); + for (Integer t = 1; t <= pages; t++) { + Inventory inv = Bukkit.createInventory(player, 54, + "¡ìd( " + t.toString() + " / " + pages.toString() + " ) " + Storage.getMsg("history-name")); + for (int i = 0; i <= 44 && iter.hasNext(); i++) { + ItemStack it = iter.next(); + inv.setItem(i, it); + } + inv.setItem(45, lp); + inv.setItem(47, np); + inv.setItem(51, usage); + inv.setItem(49, re); + inv.setItem(53, ex); + his.add(t - 1, inv); + } + } - public static void setItem(List item) { - ItemStack lp = new ItemStack(Material.REDSTONE); - ItemMeta lm = lp.getItemMeta(); - lm.setDisplayName(Storage.getMsg("last-page")); - lp.setItemMeta(lm); - ItemStack np = new ItemStack(Material.EMERALD); - ItemMeta nm = np.getItemMeta(); - nm.setDisplayName(Storage.getMsg("next-page")); - np.setItemMeta(nm); - ItemStack usage = new ItemStack(Material.PAPER); - ItemMeta um = usage.getItemMeta(); - um.setDisplayName(Storage.getMsg("usage-name")); - List lore = Storage.getMsgs("usage-lore"); - um.setLore(lore); - usage.setItemMeta(um); - ItemStack re = new ItemStack(Material.BOOK); - ItemMeta rm = re.getItemMeta(); - rm.setDisplayName(Storage.getMsg("refresh")); - re.setItemMeta(rm); - ItemStack ex = new ItemStack(Material.NETHER_STAR); - ItemMeta em = ex.getItemMeta(); - em.setDisplayName(Storage.getMsg("exit")); - ex.setItemMeta(em); - // add items to bug view - Iterator iter = item.iterator(); - int all = item.size(); - pages = (((all % 45) == 0) && (all != 0)) ? (all / 45) : (all / 45 + 1); - for (Integer t = 1; t <= pages; t++) { - Inventory inv = Bukkit.createInventory(null, 54, - "¡ìd[ " + t.toString() + " / " + pages.toString() + " ] " + Storage.getMsg("gui-name")); - for (int i = 0; i <= 44 && iter.hasNext(); i++) { - ItemStack it = iter.next(); - inv.setItem(i, it); - } - inv.setItem(45, lp); - inv.setItem(47, np); - inv.setItem(51, usage); - inv.setItem(49, re); - inv.setItem(53, ex); - invs.add(t - 1, inv); - } - } + public static void setItem(List item) { + ItemStack lp = new ItemStack(Material.REDSTONE); + ItemMeta lm = lp.getItemMeta(); + lm.setDisplayName(Storage.getMsg("last-page")); + lp.setItemMeta(lm); + ItemStack np = new ItemStack(Material.EMERALD); + ItemMeta nm = np.getItemMeta(); + nm.setDisplayName(Storage.getMsg("next-page")); + np.setItemMeta(nm); + ItemStack usage = new ItemStack(Material.PAPER); + ItemMeta um = usage.getItemMeta(); + um.setDisplayName(Storage.getMsg("usage-name")); + List lore = Storage.getMsgs("usage-lore"); + um.setLore(lore); + usage.setItemMeta(um); + ItemStack re = new ItemStack(Material.BOOK); + ItemMeta rm = re.getItemMeta(); + rm.setDisplayName(Storage.getMsg("refresh")); + re.setItemMeta(rm); + ItemStack ex = new ItemStack(Material.NETHER_STAR); + ItemMeta em = ex.getItemMeta(); + em.setDisplayName(Storage.getMsg("exit")); + ex.setItemMeta(em); + // add items to bug view + Iterator iter = item.iterator(); + int all = item.size(); + pages = (((all % 45) == 0) && (all != 0)) ? (all / 45) : (all / 45 + 1); + for (Integer t = 1; t <= pages; t++) { + Inventory inv = Bukkit.createInventory(null, 54, + "¡ìd[ " + t.toString() + " / " + pages.toString() + " ] " + Storage.getMsg("gui-name")); + for (int i = 0; i <= 44 && iter.hasNext(); i++) { + ItemStack it = iter.next(); + inv.setItem(i, it); + } + inv.setItem(45, lp); + inv.setItem(47, np); + inv.setItem(51, usage); + inv.setItem(49, re); + inv.setItem(53, ex); + invs.add(t - 1, inv); + } + } - /** - * - * @param inv - * this inventory - * @param page - * this page - * @param id - * slot id - * @param click - * click type - */ - public static void click(Inventory inv, Integer page, Integer id, ClickType click, Player player) { - if (inv.getItem(id) != null) { - ItemStack item = inv.getItem(id); - String serial = item.getItemMeta().getDisplayName(); - if (id != 45 && id != 47 && id != 49 && id != 51 && id != 53) { - if (click.isLeftClick() && (!click.isShiftClick())) { - ItemMeta im = item.getItemMeta(); - List lore = im.getLore(); - lore.add(Storage.getMsg("executed")); - item.setItemMeta(im); - inv.clear(id); - inv.setItem(id, item); - Database.qback(serial, player); - Notify.notifyb(serial, Storage.getConfig().getString("auto-sendback-msg"), player); - } - if (click.isRightClick() && (!click.isShiftClick())) { - // need to add a serial to this map - Storage.back.put(player.getUniqueId().toString(), serial); - Storage.send(player, "send-back"); - player.closeInventory(); - } - if (click.isLeftClick() && (click.isShiftClick())) { - ItemMeta im = item.getItemMeta(); - List lore = im.getLore(); - lore.add(Storage.getMsg("executed")); - item.setItemMeta(im); - inv.clear(id); - inv.setItem(id, item); - Database.ignore(serial, player); - } - } else { - if (id == 45) { - if (page != 1) { - open(player, page - 1); - } else { - Storage.send(player, "no-this-page"); - } - } - if (id == 47) { - if (page != pages) { - open(player, page + 1); - } else { - Storage.send(player, "no-this-page"); - } - } - if (id == 49) { - loadInv(); - player.closeInventory(); - open(player, page); - } - if (id == 53) { - player.closeInventory(); - } - } - } - } + /** + * @param inv this inventory + * @param page this page + * @param id slot id + * @param click click type + */ + public static void click(Inventory inv, Integer page, Integer id, ClickType click, Player player) { + if (inv.getItem(id) != null) { + ItemStack item = inv.getItem(id); + String serial = item.getItemMeta().getDisplayName(); + if (id != 45 && id != 47 && id != 49 && id != 51 && id != 53) { + if (click.isLeftClick() && (!click.isShiftClick())) { + ItemMeta im = item.getItemMeta(); + List lore = im.getLore(); + lore.add(Storage.getMsg("executed")); + item.setItemMeta(im); + inv.clear(id); + inv.setItem(id, item); + Database.qback(serial, player); + Notify.notifyb(serial, Storage.getConfig().getString("auto-sendback-msg"), player); + } + if (click.isRightClick() && (!click.isShiftClick())) { + // need to add a serial to this map + Storage.back.put(player.getUniqueId().toString(), serial); + Storage.send(player, "send-back"); + player.closeInventory(); + } + if (click.isLeftClick() && (click.isShiftClick())) { + ItemMeta im = item.getItemMeta(); + List lore = im.getLore(); + lore.add(Storage.getMsg("executed")); + item.setItemMeta(im); + inv.clear(id); + inv.setItem(id, item); + Database.ignore(serial, player); + } + } else { + if (id == 45) { + if (page != 1) { + open(player, page - 1); + } else { + Storage.send(player, "no-this-page"); + } + } + if (id == 47) { + if (!Objects.equals(page, pages)) { + open(player, page + 1); + } else { + Storage.send(player, "no-this-page"); + } + } + if (id == 49) { + loadInv(); + player.closeInventory(); + open(player, page); + } + if (id == 53) { + player.closeInventory(); + } + } + } + } - public static void clickHis(Inventory inv, Integer page, Integer id, ClickType click, Player player) { - if (id >= 0 && id <= 53 && inv.getItem(id) != null) { - if (id == 45) { - if (page != 1) { - openHistory(player, page - 1); - } else { - Storage.send(player, "no-this-page"); - } - } - if (id == 47) { - if (page != pages) { - openHistory(player, page + 1); - } else { - Storage.send(player, "no-this-page"); - } - } - if (id == 49) { - loadHis(player); - player.closeInventory(); - openHistory(player, page); - } - if (id == 51) { - player.closeInventory(); - open(player, 1); - } - if (id == 53) { - player.closeInventory(); - } - } - } + public static void clickHis(Inventory inv, Integer page, Integer id, ClickType click, Player player) { + if (id >= 0 && id <= 53 && inv.getItem(id) != null) { + if (id == 45) { + if (page != 1) { + openHistory(player, page - 1); + } else { + Storage.send(player, "no-this-page"); + } + } + if (id == 47) { + if (!Objects.equals(page, pages)) { + openHistory(player, page + 1); + } else { + Storage.send(player, "no-this-page"); + } + } + if (id == 49) { + loadHis(player); + player.closeInventory(); + openHistory(player, page); + } + if (id == 51) { + player.closeInventory(); + open(player, 1); + } + if (id == 53) { + player.closeInventory(); + } + } + } } diff --git a/src/com/ilummc/bugrepgui/Main.java b/src/com/ilummc/bugrepgui/Main.java index 6ba3328..ae016e6 100644 --- a/src/com/ilummc/bugrepgui/Main.java +++ b/src/com/ilummc/bugrepgui/Main.java @@ -1,9 +1,8 @@ package com.ilummc.bugrepgui; -import org.bukkit.Bukkit; -import org.bukkit.plugin.java.*; - import com.ilummc.bugrepgui.util.UpdateChecker; +import org.bukkit.Bukkit; +import org.bukkit.plugin.java.JavaPlugin; public class Main extends JavaPlugin { @Override @@ -15,8 +14,8 @@ public class Main extends JavaPlugin { Storage.init(this.getConfig(), this.getDataFolder(), "lang_" + lang + ".yml"); getServer().getPluginManager().registerEvents(new EventListener().setAlias(getConfig().getString("alias")), this); - getCommand("bug").setExecutor(new cmdExe()); - getCommand("bugrepgui").setExecutor(new cmdExe()); + getCommand("bug").setExecutor(new Commands()); + getCommand("bugrepgui").setExecutor(new Commands()); if (this.getConfig().getBoolean("check-update")) UpdateChecker.check(this.getDescription().getVersion(), this.getDescription().getWebsite()); } diff --git a/src/com/ilummc/bugrepgui/Notify.java b/src/com/ilummc/bugrepgui/Notify.java index e57af1f..e1a4e02 100644 --- a/src/com/ilummc/bugrepgui/Notify.java +++ b/src/com/ilummc/bugrepgui/Notify.java @@ -23,9 +23,9 @@ public class Notify { public static void notifyb(String serial, String msg, Player exename) { Player player = Database.getRepPlayer(serial); if (player.isOnline()) { - String str = Database.format.replaceAll("%serial%", serial.toString()) + String str = Database.format.replaceAll("%serial%", serial) .replaceAll("%exename%", exename.getDisplayName()).replaceAll("%reply%", msg); - String str2 = Database.format2.replaceAll("%serial%", serial.toString()) + String str2 = Database.format2.replaceAll("%serial%", serial) .replaceAll("%exename%", exename.getDisplayName()).replaceAll("%reply%", msg); String msgs[] = { str, Storage.compile(str2) }; player.sendMessage(msgs); diff --git a/src/com/ilummc/bugrepgui/Stats.java b/src/com/ilummc/bugrepgui/Stats.java index 488147e..20f6d0c 100644 --- a/src/com/ilummc/bugrepgui/Stats.java +++ b/src/com/ilummc/bugrepgui/Stats.java @@ -1,53 +1,55 @@ package com.ilummc.bugrepgui; +import com.ilummc.bugrepgui.stats.Reporter; + import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.TreeSet; -import com.ilummc.bugrepgui.stats.Reporter; - public class Stats { - public static String[] loadTextRep() { - Map res = Database.loadStatsRep(); - Set set = res.keySet(); - Iterator it = set.iterator(); - Set rank = new TreeSet<>(); - while (it.hasNext()) { - String name = it.next(); - Reporter rep = new Reporter(name, res.get(name)); - rank.add(rep); - } - String[] msg = new String[rank.size() + 2]; - msg[0] = Storage.getMsg("rep-rank"); - Iterator its = rank.iterator(); - for (int i = 1; i <= rank.size(); i++) { - Reporter next = its.next(); - msg[i] = next.getName() + " : " + next.getAmount().toString(); - } - Integer all = rank.size(); - msg[all + 1] = Storage.getMsg("rep-stats").replaceAll("%amount%", all.toString()); - return msg; - } - public static String[] loadTextExe() { - Map res = Database.loadStatsExe(); - Set set = res.keySet(); - Iterator it = set.iterator(); - Set rank = new TreeSet<>(); - while (it.hasNext()) { - String name = it.next(); - Reporter rep = new Reporter(name, res.get(name)); - rank.add(rep); - } - String[] msg = new String[rank.size() + 2]; - msg[0] = Storage.getMsg("exe-rank"); - Iterator its = rank.iterator(); - for (int i = 1; i <= rank.size(); i++) { - Reporter next = its.next(); - msg[i] = next.getName() + " : " + next.getAmount().toString(); - } - Integer all = rank.size(); - msg[all + 1] = Storage.getMsg("rep-stats").replaceAll("%amount%", all.toString()); - return msg; - } + + public static String[] loadTextRep() { + Map res = Database.loadStatsRep(); + Set set = res.keySet(); + Iterator it = set.iterator(); + Set rank = new TreeSet<>(); + while (it.hasNext()) { + String name = it.next(); + Reporter rep = new Reporter(name, res.get(name)); + rank.add(rep); + } + String[] msg = new String[rank.size() + 2]; + msg[0] = Storage.getMsg("rep-rank"); + Iterator its = rank.iterator(); + for (int i = 1; i <= rank.size(); i++) { + Reporter next = its.next(); + msg[i] = next.getName() + " : " + next.getAmount().toString(); + } + Integer all = rank.size(); + msg[all + 1] = Storage.getMsg("rep-stats").replaceAll("%amount%", all.toString()); + return msg; + } + + public static String[] loadTextExe() { + Map res = Database.loadStatsExe(); + Set set = res.keySet(); + Iterator it = set.iterator(); + Set rank = new TreeSet<>(); + while (it.hasNext()) { + String name = it.next(); + Reporter rep = new Reporter(name, res.get(name)); + rank.add(rep); + } + String[] msg = new String[rank.size() + 2]; + msg[0] = Storage.getMsg("exe-rank"); + Iterator its = rank.iterator(); + for (int i = 1; i <= rank.size(); i++) { + Reporter next = its.next(); + msg[i] = next.getName() + " : " + next.getAmount().toString(); + } + Integer all = rank.size(); + msg[all + 1] = Storage.getMsg("rep-stats").replaceAll("%amount%", all.toString()); + return msg; + } } diff --git a/src/com/ilummc/bugrepgui/Storage.java b/src/com/ilummc/bugrepgui/Storage.java index 0e1cf14..7524e53 100644 --- a/src/com/ilummc/bugrepgui/Storage.java +++ b/src/com/ilummc/bugrepgui/Storage.java @@ -1,10 +1,5 @@ package com.ilummc.bugrepgui; -import java.io.File; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; @@ -12,132 +7,130 @@ import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; +import java.io.File; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + public class Storage { - private static FileConfiguration configyml; - private static File folder; - static String serial; - static File lang; - static boolean debug; - static String format = "%serial%:\n serial: '#%serial%'\n name: '%player%'\n time: '%time%'\n file: '%path%'\n executed: false\n"; - private static FileConfiguration langyml; - // this is a temporary list for reporters - public static Map map = new HashMap<>(); - // this is a temporary list for ops who send back - public static Map back = new HashMap<>(); - public static void init(FileConfiguration config, File thisfolder, String language) { - configyml = config; - folder = thisfolder; - lang = new File(thisfolder, language); - langyml = YamlConfiguration.loadConfiguration(lang); - debug = configyml.getBoolean("debug"); - Database.connect(); - } + private static FileConfiguration configyml; + private static File folder; + static String serial; + static File lang; + static boolean debug; + static String format = "%serial%:\n serial: '#%serial%'\n name: '%player%'\n time: '%time%'\n file: '%path%'\n executed: false\n"; + private static FileConfiguration langyml; + // this is a temporary list for reporters + public static Map map = new HashMap<>(); + // this is a temporary list for ops who send back + public static Map back = new HashMap<>(); - public static void reload() { - init(configyml, folder, "lang_" + configyml.getString("lang", "en") + ".yml"); - } + public static void init(FileConfiguration config, File thisfolder, String language) { + configyml = config; + folder = thisfolder; + lang = new File(thisfolder, language); + langyml = YamlConfiguration.loadConfiguration(lang); + debug = configyml.getBoolean("debug"); + Database.connect(); + } - public static void putMap(Bug bug) { - Storage.map.put(bug.getRepUUID(), bug); - } + public static void reload() { + init(configyml, folder, "lang_" + configyml.getString("lang", "en") + ".yml"); + } - public static File getFolder() { - return folder; - } + public static void putMap(Bug bug) { + Storage.map.put(bug.getRepUUID(), bug); + } - public static FileConfiguration getConfig() { - return configyml; - } + public static File getFolder() { + return folder; + } - public static FileConfiguration getLang() { - return langyml; - } + public static FileConfiguration getConfig() { + return configyml; + } - public static String compile(String str) { - char[] cha = str.toCharArray(); - for (int i = 0; i < str.length(); i++) { - if (cha[i] == '&') { - if ((cha[i + 1] >= '0' && cha[i + 1] <= '9') || (cha[i + 1] >= 'a' && cha[i + 1] <= 'f')) { - cha[i] = '¡ì'; - } - } - } - return String.valueOf(cha); - } + public static FileConfiguration getLang() { + return langyml; + } - public static String getMsg(String msg) { - String str = langyml.getString(msg, "¡ìePlease check the lang_" + configyml.getString("lang", "xx") + ".yml!!!"); - return compile(str); - } + public static String compile(String str) { + return ChatColor.translateAlternateColorCodes('&', str); + } - public static List getMsgs(String msg) { - List list = langyml.getStringList(msg); - for (int i = 0; i < list.size(); i++) { - list.set(i, compile(list.get(i))); - } - return list; - } + public static String getMsg(String msg) { + String str = langyml.getString(msg, "¡ìePlease check the lang_" + configyml.getString("lang", "xx") + ".yml!!!"); + return compile(str); + } - public static String getPrefix() { - return getMsg("prefix"); - } + public static List getMsgs(String msg) { + List list = langyml.getStringList(msg); + for (int i = 0; i < list.size(); i++) { + list.set(i, compile(list.get(i))); + } + return list; + } - public static void send(Player player, String msg) { - player.sendMessage(getPrefix() + getMsg(msg)); - } + public static String getPrefix() { + return getMsg("prefix"); + } - public static void send(CommandSender player, String msg) { - player.sendMessage(getPrefix() + getMsg(msg)); - } + public static void send(Player player, String msg) { + player.sendMessage(getPrefix() + getMsg(msg)); + } - public static void sends(Player player, String[] msg) { - for (int i = 0; i < msg.length; i++) { - if (msg[i] != null && msg[i] != "") - player.sendMessage(getPrefix() + msg[i]); - } - } + public static void send(CommandSender player, String msg) { + player.sendMessage(getPrefix() + getMsg(msg)); + } - public static void log(String msg) { - Bukkit.getLogger().info( - getLang().getString(getPrefix().replaceAll("¡ì", ""), "[BugRepGUI]") + getMsg(msg).replaceAll("¡ì", "")); - } + public static void sends(Player player, String[] msg) { + for (int i = 0; i < msg.length; i++) { + if (msg[i] != null && msg[i] != "") + player.sendMessage(getPrefix() + msg[i]); + } + } - public static void logExcept(Exception e) { - Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "[BugRepGUI] Err occured: " + e.getMessage()); - if (debug) { - e.printStackTrace(); - } - } + public static void log(String msg) { + Bukkit.getLogger().info( + getLang().getString(getPrefix().replaceAll("¡ì", ""), "[BugRepGUI]") + getMsg(msg).replaceAll("¡ì", "")); + } - public static void getHelp(Player player) { - List helpl = langyml.getStringList("help"); - String[] help = new String[helpl.size()]; - for (int i = 0; i < helpl.size(); i++) { - help[i] = compile(helpl.get(i)); - } - player.sendMessage(help); - } + public static void logExcept(Exception e) { + Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "[BugRepGUI] Err occured: " + e.getMessage()); + if (debug) { + e.printStackTrace(); + } + } - public static void getHelp(CommandSender player) { - List helpl = langyml.getStringList("help"); - String[] help = new String[helpl.size()]; - for (int i = 0; i < helpl.size(); i++) { - help[i] = compile(helpl.get(i)); - } - player.sendMessage(help); - } + public static void getHelp(Player player) { + List helpl = langyml.getStringList("help"); + String[] help = new String[helpl.size()]; + for (int i = 0; i < helpl.size(); i++) { + help[i] = compile(helpl.get(i)); + } + player.sendMessage(help); + } - public static String transfer(String string) { - char[] ch = string.toCharArray(); - StringBuffer out = new StringBuffer(); - for (int i = 0; i < ch.length; i++) { - if (ch[i] == ' ') - out.append("\\s"); - else - out.append(String.valueOf(ch[i])); - } - return out.toString(); - } + public static void getHelp(CommandSender player) { + List helpl = langyml.getStringList("help"); + String[] help = new String[helpl.size()]; + for (int i = 0; i < helpl.size(); i++) { + help[i] = compile(helpl.get(i)); + } + player.sendMessage(help); + } + + public static String transfer(String string) { + char[] ch = string.toCharArray(); + StringBuffer out = new StringBuffer(); + for (int i = 0; i < ch.length; i++) { + if (ch[i] == ' ') + out.append("\\s"); + else + out.append(String.valueOf(ch[i])); + } + return out.toString(); + } } diff --git a/src/com/ilummc/bugrepgui/bungee/GlobalNotify.java b/src/com/ilummc/bugrepgui/bungee/GlobalNotify.java index 02669e9..432b804 100644 --- a/src/com/ilummc/bugrepgui/bungee/GlobalNotify.java +++ b/src/com/ilummc/bugrepgui/bungee/GlobalNotify.java @@ -1,17 +1,12 @@ package com.ilummc.bugrepgui.bungee; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; +import com.ilummc.bugrepgui.Storage; +import net.md_5.bungee.api.connection.ProxiedPlayer; + +import java.sql.*; import java.util.Collection; import java.util.Iterator; -import com.ilummc.bugrepgui.Storage; - -import net.md_5.bungee.api.connection.ProxiedPlayer; - public class GlobalNotify { private static Connection c = null; private static Statement state = null; @@ -146,11 +141,8 @@ public class GlobalNotify { c = DriverManager.getConnection(url, Main.config.getString("mysql-username"), Main.config.getString("mysql-password")); state = c.createStatement(); - } catch (SQLException e) { - Main.printException(e.getMessage()); - return false; - } catch (ClassNotFoundException e) { - Main.printException(e.getMessage()); + } catch (SQLException | ClassNotFoundException e) { + Main.printException(e.getMessage()); return false; } String sql = "CREATE TABLE IF NOT EXISTS br_bug " + "(SERIAL INT PRIMARY KEY AUTO_INCREMENT NOT NULL," diff --git a/src/com/ilummc/bugrepgui/bungee/Main.java b/src/com/ilummc/bugrepgui/bungee/Main.java index d12e881..cb8a13c 100644 --- a/src/com/ilummc/bugrepgui/bungee/Main.java +++ b/src/com/ilummc/bugrepgui/bungee/Main.java @@ -1,84 +1,84 @@ package com.ilummc.bugrepgui.bungee; -import java.io.File; -import java.io.IOException; -import java.nio.file.CopyOption; -import java.nio.file.Files; -import java.util.logging.Logger; - import net.md_5.bungee.api.ProxyServer; 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 java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.util.logging.Logger; + public class Main extends Plugin { - static Logger log; - static File folder; - static Configuration config; - static Configuration lang; - static File cf; - static File lf; - static ProxyServer server; + static Logger log; + static File folder; + static Configuration config; + static Configuration lang; + static File cf; + static File lf; + static ProxyServer server; - public void onEnable() { - this.init(this.getDataFolder(), this.getLogger()); - this.getLogger().info("BungeeCord mode is on!"); - this.getProxy().getPluginManager().registerListener(this, new BungeeListener()); - } + public void onEnable() { + this.init(this.getDataFolder(), this.getLogger()); + this.getLogger().info("BungeeCord mode is on!"); + this.getProxy().getPluginManager().registerListener(this, new BungeeListener()); + } - @Override - public void onDisable() { - try { - ConfigurationProvider.getProvider(YamlConfiguration.class).save(config, cf); - ConfigurationProvider.getProvider(YamlConfiguration.class).save(lang, lf); - } catch (Exception e) { - printException(e.getMessage()); - } - this.getLogger().info("BugRepGUI disabled! Thanks for chosing us!"); - } + @Override + public void onDisable() { + try { + ConfigurationProvider.getProvider(YamlConfiguration.class).save(config, cf); + ConfigurationProvider.getProvider(YamlConfiguration.class).save(lang, lf); + } catch (Exception e) { + printException(e.getMessage()); + } + this.getLogger().info("BugRepGUI disabled! Thanks for chosing us!"); + } - public void init(File f, Logger log) { - if (!this.getDataFolder().exists()) { - this.getDataFolder().mkdir(); - } - Main.log = log; - Main.folder = f; - Main.server = this.getProxy(); - cf = new File(f + "/config.yml"); - try { - if (!cf.exists()) { - Files.copy(getResourceAsStream("config.yml"), cf.toPath(), new CopyOption[0]); - } - reloadConfig(); - lf = new File(f + "/lang_"+config.getString("lang")+".yml"); - if (!lf.exists()) { - Files.copy(getResourceAsStream("lang_" + config.getString("lang") + ".yml"), lf.toPath(), - new CopyOption[0]); - } - reloadLang(); - } catch (Exception e) { - printException(e.getMessage()); - } + public void init(File f, Logger log) { + if (!this.getDataFolder().exists()) { + this.getDataFolder().mkdir(); + } + Main.log = log; + Main.folder = f; + Main.server = this.getProxy(); + cf = new File(f + "/config.yml"); + try { + if (!cf.exists()) { + Files.copy(getResourceAsStream("config.yml"), cf.toPath()); + } + reloadConfig(); + lf = new File(f + "/lang_" + config.getString("lang") + ".yml"); + if (!lf.exists()) { + Files.copy(getResourceAsStream("lang_" + config.getString("lang") + ".yml"), lf.toPath() + ); + } + reloadLang(); + } catch (Exception e) { + printException(e.getMessage()); + } - } + } - private void reloadConfig() { - try { - config = ConfigurationProvider.getProvider(YamlConfiguration.class).load(cf); - } catch (IOException e) { - printException(e.getMessage()); - } - } - private void reloadLang() { - try { - lang = ConfigurationProvider.getProvider(YamlConfiguration.class).load(lf); - } catch (IOException e) { - printException(e.getMessage()); - } - } + private void reloadConfig() { + try { + config = ConfigurationProvider.getProvider(YamlConfiguration.class).load(cf); + } catch (IOException e) { + printException(e.getMessage()); + } + } - public static void printException(String msg) { - log.warning("Error: " + msg); - } + private void reloadLang() { + try { + lang = ConfigurationProvider.getProvider(YamlConfiguration.class).load(lf); + } catch (IOException e) { + printException(e.getMessage()); + } + } + + public static void printException(String msg) { + log.warning("Error: " + msg); + } } diff --git a/src/com/ilummc/bugrepgui/cmdExe.java b/src/com/ilummc/bugrepgui/cmdExe.java deleted file mode 100644 index 3c58cb3..0000000 --- a/src/com/ilummc/bugrepgui/cmdExe.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.ilummc.bugrepgui; - -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -public class cmdExe implements CommandExecutor { - - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (command.getName().equals("report")) { - if (sender instanceof Player) { - if (sender.hasPermission("bugrepgui.report")) { - Bug bug = new Bug((Player) sender); - Storage.putMap(bug); - Storage.send(sender, "input-bug-info"); - return true; - } else { - Storage.send(sender, "no-perm"); - return true; - } - } else { - Storage.send(sender, "must-player-run"); - return true; - } - } else { - if (args.length == 1 && args[0].equalsIgnoreCase("help")) { - Storage.getHelp(sender); - return true; - } - if (args.length == 1 && args[0].equalsIgnoreCase("view")) { - if (sender instanceof Player) { - if (sender.hasPermission("bugrepgui.view")) { - GUI.open((Player) sender, 1); - } else { - Storage.send(sender, "no-perm"); - } - return true; - } else { - Storage.send(sender, "must-player-run"); - } - return true; - } - if (args.length == 2 && args[0].equalsIgnoreCase("view") && args[1].equalsIgnoreCase("history")) { - if (sender instanceof Player) { - if (sender.hasPermission("bugrepgui.view")) { - GUI.openHistory((Player) sender, 1); - } else { - Storage.send(sender, "no-perm"); - } - return true; - } else { - Storage.send(sender, "must-player-run"); - } - } - if (args.length == 1 && args[0].equalsIgnoreCase("report")) { - if (sender instanceof Player) { - if (sender.hasPermission("bugrepgui.report")) { - Bug bug = new Bug((Player) sender); - Storage.putMap(bug); - Storage.send(sender, "input-bug-info"); - return true; - } else { - Storage.send(sender, "no-perm"); - return true; - } - } else { - Storage.send(sender, "must-player-run"); - return true; - } - } - if (args.length == 2 && args[0].equalsIgnoreCase("stats")) { - if (args[1].equalsIgnoreCase("text")) { - if (sender.hasPermission("bugrepgui.stats.text")) { - final CommandSender send = sender; - Thread t = new Thread(new Runnable() { - @Override - public void run() { - send.sendMessage(Stats.loadTextRep()); - try { - Thread.sleep(3000); - Storage.send(send, "wait"); - Thread.sleep(5000); - } catch (InterruptedException e) { - Storage.logExcept(e); - } - send.sendMessage(Stats.loadTextExe()); - } - }); - t.start(); - return true; - } else { - Storage.send(sender, "no-perm"); - return true; - } - } - if (args[1].equalsIgnoreCase("gui")) { - return true; - } - return true; - } - if (args.length == 1 && args[0].equalsIgnoreCase("reload")) { - if (sender.hasPermission("bugrepgui.reload")) { - Storage.reload(); - Storage.send(sender, "reload-suc"); - return true; - } else { - Storage.send(sender, "no-perm"); - } - } - Storage.getHelp(sender); - return true; - } - } -} diff --git a/src/com/ilummc/bugrepgui/util/UpdateChecker.java b/src/com/ilummc/bugrepgui/util/UpdateChecker.java index 4f821dc..cf3bec4 100644 --- a/src/com/ilummc/bugrepgui/util/UpdateChecker.java +++ b/src/com/ilummc/bugrepgui/util/UpdateChecker.java @@ -1,48 +1,42 @@ package com.ilummc.bugrepgui.util; +import com.ilummc.bugrepgui.Storage; +import org.bukkit.Bukkit; + import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; -import org.bukkit.Bukkit; - -import com.ilummc.bugrepgui.Storage; - public class UpdateChecker { public static void check(String version, String web) { final String ver = version; final String webn = web; - Thread t = new Thread(new Runnable() { - @Override - public void run() { - Storage.log("checking-update"); - try { - HttpURLConnection c = (HttpURLConnection) new URL("http://www.spigotmc.org/api/general.php") - .openConnection(); - c.setDoOutput(true); - c.setRequestMethod("POST"); - c.getOutputStream() - .write(("key=98BE0FE67F88AB82B4C197FAF1DC3B69206EFDCC4D3B80FC83A00037510B99B4&resource=35119") - .getBytes("UTF-8")); - String oldVersion = ver; - String newVersion = new BufferedReader(new InputStreamReader(c.getInputStream())).readLine() - .replaceAll("[a-zA-Z ]", ""); - if (newVersion.equals(oldVersion)) { - Storage.log("no-new-version"); - } else { - String[] msg = Storage.getMsg("new-version").replaceAll("%version%", newVersion) - .replaceAll("%website%", webn).split("\\\\n"); - for (int i = 0; i < msg.length; i++) { - msg[i] = Storage.getPrefix() + Storage.compile(msg[i]); - } - Bukkit.getConsoleSender().sendMessage(msg); - } - } catch (Exception e) { - Storage.logExcept(e); - } - } - }); - t.start(); + Thread t = new Thread(() -> { + Storage.log("checking-update"); + try { + HttpURLConnection c = (HttpURLConnection) new URL("http://www.spigotmc.org/api/general.php") + .openConnection(); + c.setDoOutput(true); + c.setRequestMethod("POST"); + c.getOutputStream() + .write(("key=98BE0FE67F88AB82B4C197FAF1DC3B69206EFDCC4D3B80FC83A00037510B99B4&resource=35119") + .getBytes("UTF-8")); + String newVersion = new BufferedReader(new InputStreamReader(c.getInputStream())).readLine(); + if (newVersion.equals(ver)) { + Storage.log("no-new-version"); + } else { + String[] msg = Storage.getMsg("new-version").replaceAll("%version%", newVersion) + .replaceAll("%website%", webn).split("\\\\n"); + for (int i = 0; i < msg.length; i++) { + msg[i] = Storage.getPrefix() + Storage.compile(msg[i]); + } + Bukkit.getConsoleSender().sendMessage(msg); + } + } catch (Exception e) { + Storage.logExcept(e); + } + }); + t.start(); } } diff --git a/src/config.yml b/src/config.yml index 36b596c..1aa9678 100644 --- a/src/config.yml +++ b/src/config.yml @@ -1,27 +1,27 @@ -#BugReportGUI Configuration file -#Google is your friend :) +# BugReportGUI Configuration file +# Google is your friend :) debug: false check-update: true -#This could be sqlite, mysql +# This could be sqlite, mysql database: sqlite -#These are required if database is set to MySQL +# These are required if database is set to MySQL mysql-url: 'localhost' mysql-port: 3306 mysql-username: '' mysql-password: '' mysql-db: '' -########################################################################### -#This controls the date format(such as CST or PST or EST) in the bug view # -# Here is a country list for you :) # -# https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 # -########################################################################### +############################################################################ +# This controls the date format(such as CST or PST or EST) in the bug view # +# Here is a country list for you :) # +# https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 # +############################################################################ locale: 'US' lang: 'en' -#This controls the message when left click a bug +# This controls the message when left click a bug auto-sendback-msg: '&eThanks for your reporting' -#Report Alias +# Report Alias alias: 'r' -#If you use bungeecord, please set this to true and set database to mysql +# If you use bungeecord, please set this to true and set database to mysql use-bungee: false -#This controls the speed of checking sendback (in ms) +# This controls the speed of checking sendback (in ms) check-speed: 2000 \ No newline at end of file diff --git a/src/plugin.yml b/src/plugin.yml index 61b62fe..d89f9bc 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -1,8 +1,8 @@ name: BugRepGUI main: com.ilummc.bugrepgui.Main -version: 1.8 +version: 1.10 author: IzzelAliz -website: https://www.spigotmc.org/resources/bugreportgui-better-than-rating.35119/ +website: https://www.spigotmc.org/resources/35119/ commands: bug: description: /bug help for more help @@ -10,6 +10,9 @@ commands: bugrepgui: description: /bugrepgui for more help usage: /bugrepgui + report: + description: Report a bug + usage: /report permissions: bugrepgui.admin: