Async query

This commit is contained in:
Izzel_Aliz 2018-01-05 13:19:53 +08:00
parent e33c35ce34
commit e1cad8d3df
16 changed files with 655 additions and 677 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
# Created by .ignore support plugin (hsz.mobi)
.gitignore
.idea/

40
pom.xml
View File

@ -19,27 +19,27 @@
</repositories> </repositories>
<build> <build>
<sourceDirectory>src</sourceDirectory> <sourceDirectory>src</sourceDirectory>
<resources> <resources>
<resource> <resource>
<targetPath>.</targetPath> <targetPath>.</targetPath>
<directory>${basedir}/src/</directory> <directory>${basedir}/src/</directory>
</resource> </resource>
</resources> </resources>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version> <version>3.5.1</version>
<executions> <executions>
<execution> <execution>
<id>default-compile</id> <id>default-compile</id>
<phase>compile</phase> <phase>compile</phase>
<goals> <goals>
<goal>compile</goal> <goal>compile</goal>
</goals> </goals>
</execution> </execution>
</executions> </executions>
<configuration> <configuration>
<source>1.8</source> <source>1.8</source>
<target>1.8</target> <target>1.8</target>
@ -57,14 +57,12 @@
<type>jar</type> <type>jar</type>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<!--Spigot API-->
<dependency> <dependency>
<groupId>org.spigotmc</groupId> <groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId> <artifactId>spigot-api</artifactId>
<version>1.8.3-R0.1-SNAPSHOT</version> <version>1.8.3-R0.1-SNAPSHOT</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<!--Bukkit API-->
<dependency> <dependency>
<groupId>org.bukkit</groupId> <groupId>org.bukkit</groupId>
<artifactId>bukkit</artifactId> <artifactId>bukkit</artifactId>

View File

@ -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;
}
}
}

View File

@ -1,15 +1,12 @@
package com.ilummc.bugrepgui; 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.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import java.sql.*;
import java.util.*;
import java.util.Date;
public class Database { public class Database {
/* /*
* SERIAL REPNAME REPTIME REPMSG EXENAME EXETIME EXEMSG EXECUTED BACK * 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"), c = DriverManager.getConnection(url, Storage.getConfig().getString("mysql-username"),
Storage.getConfig().getString("mysql-password")); Storage.getConfig().getString("mysql-password"));
state = c.createStatement(); state = c.createStatement();
} catch (SQLException e) { } catch (SQLException | ClassNotFoundException e) {
Storage.logExcept(e);
return false;
} catch (ClassNotFoundException e) {
Storage.logExcept(e); Storage.logExcept(e);
return false; return false;
} }

View File

@ -1,20 +1,17 @@
package com.ilummc.bugrepgui; package com.ilummc.bugrepgui;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.player.AsyncPlayerChatEvent; import org.bukkit.event.player.*;
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.inventory.Inventory; import org.bukkit.inventory.Inventory;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class EventListener implements org.bukkit.event.Listener { public class EventListener implements org.bukkit.event.Listener {
String alias; String alias;
public EventListener setAlias(String msg) { public EventListener setAlias(String msg) {
this.alias = msg; this.alias = msg;
@ -38,8 +35,8 @@ public class EventListener implements org.bukkit.event.Listener {
} }
} }
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = false) @EventHandler(priority = EventPriority.HIGHEST)
public void onChat(AsyncPlayerChatEvent evt) { public void onChat(AsyncPlayerChatEvent evt) {
String regex2 = "[^']+"; String regex2 = "[^']+";
Pattern pattern2 = Pattern.compile(regex2); Pattern pattern2 = Pattern.compile(regex2);
Matcher m2 = pattern2.matcher(evt.getMessage()); Matcher m2 = pattern2.matcher(evt.getMessage());
@ -68,8 +65,8 @@ public class EventListener implements org.bukkit.event.Listener {
} }
} }
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = false) @EventHandler(priority = EventPriority.HIGHEST)
public void onMove(PlayerMoveEvent evt) { public void onMove(PlayerMoveEvent evt) {
if (Storage.map.containsKey(evt.getPlayer().getUniqueId().toString())) { if (Storage.map.containsKey(evt.getPlayer().getUniqueId().toString())) {
evt.setCancelled(true); evt.setCancelled(true);
Bug bug = Storage.map.get(evt.getPlayer().getUniqueId().toString()); 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) @EventHandler(priority = EventPriority.HIGHEST)
public void onOffline(PlayerQuitEvent evt) { public void onOffline(PlayerQuitEvent evt) {
if (Storage.map.containsKey(evt.getPlayer().getUniqueId().toString())) { if (Storage.map.containsKey(evt.getPlayer().getUniqueId().toString())) {
Storage.map.remove(evt.getPlayer().getUniqueId().toString()); Storage.map.remove(evt.getPlayer().getUniqueId().toString());
} }
} }
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = false) @EventHandler(priority = EventPriority.HIGHEST)
public void onClick(InventoryClickEvent evt) { public void onClick(InventoryClickEvent evt) {
String regex = "[¡ì[0-9a-fA-f]]*\\u005b\\s[0-9]*\\s/\\s[0-9]*\\s\\u005d\\s*[\\d\\D]*"; String regex = "[¡ì[0-9a-fA-f]]*\\u005b\\s[0-9]*\\s/\\s[0-9]*\\s\\u005d\\s*[\\d\\D]*";
Pattern pattern = Pattern.compile(regex); Pattern pattern = Pattern.compile(regex);
Matcher m = pattern.matcher(evt.getInventory().getTitle()); 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) @EventHandler(priority = EventPriority.HIGHEST)
public void onJoin(PlayerJoinEvent evt) { public void onJoin(PlayerJoinEvent evt) {
Database.check(evt.getPlayer()); Database.check(evt.getPlayer());
} }
} }

View File

@ -1,8 +1,5 @@
package com.ilummc.bugrepgui; package com.ilummc.bugrepgui;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -10,226 +7,235 @@ import org.bukkit.event.inventory.ClickType;
import org.bukkit.inventory.Inventory; import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta; 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 { public class GUI {
static List<Inventory> invs = new ArrayList<>(); private static List<Inventory> invs = new ArrayList<>();
static List<Inventory> his = new ArrayList<>(); private static List<Inventory> his = new ArrayList<>();
static Integer pages; private static Integer pages;
public static void open(Player player, int page) { public static void open(Player player, int page) {
loadInv(); new Thread(() -> {
player.closeInventory(); loadInv();
player.openInventory(invs.get(page - 1)); Bukkit.getScheduler().runTask(JavaPlugin.getPlugin(Main.class), () -> {
} player.closeInventory();
player.openInventory(invs.get(page - 1));
});
}).start();
}
public static void openHistory(Player player, int page) { public static void openHistory(Player player, int page) {
loadHis(player); new Thread(() -> {
player.closeInventory(); loadHis(player);
player.openInventory(his.get(page - 1)); Bukkit.getScheduler().runTask(JavaPlugin.getPlugin(Main.class), () -> {
} player.closeInventory();
player.openInventory(his.get(page - 1));
});
}).start();
}
public static void loadHis(Player player) { public static void loadHis(Player player) {
his = new ArrayList<>(); his = new ArrayList<>();
List<Bug> set = Database.listHis(); List<Bug> set = Database.listHis();
Iterator<Bug> it = set.iterator(); Iterator<Bug> it = set.iterator();
List<ItemStack> nlist = new ArrayList<>(); List<ItemStack> nlist = new ArrayList<>();
while (it.hasNext()) { while (it.hasNext()) {
nlist.add(it.next().toItemExecuted()); nlist.add(it.next().toItemExecuted());
} }
setItemHis(nlist, player); setItemHis(nlist, player);
} }
public static boolean loadInv() { public static boolean loadInv() {
invs = new ArrayList<>(); invs = new ArrayList<>();
List<Bug> set = Database.list(); List<Bug> set = Database.list();
Iterator<Bug> it = set.iterator(); Iterator<Bug> it = set.iterator();
List<ItemStack> nlist = new ArrayList<>(); List<ItemStack> nlist = new ArrayList<>();
while (it.hasNext()) { while (it.hasNext()) {
nlist.add(it.next().toItem()); nlist.add(it.next().toItem());
} }
setItem(nlist); setItem(nlist);
return true; return true;
} }
private static void setItemHis(List<ItemStack> nlist, Player player) { private static void setItemHis(List<ItemStack> nlist, Player player) {
ItemStack lp = new ItemStack(Material.REDSTONE); ItemStack lp = new ItemStack(Material.REDSTONE);
ItemMeta lm = lp.getItemMeta(); ItemMeta lm = lp.getItemMeta();
lm.setDisplayName(Storage.getMsg("last-page")); lm.setDisplayName(Storage.getMsg("last-page"));
lp.setItemMeta(lm); lp.setItemMeta(lm);
ItemStack np = new ItemStack(Material.EMERALD); ItemStack np = new ItemStack(Material.EMERALD);
ItemMeta nm = np.getItemMeta(); ItemMeta nm = np.getItemMeta();
nm.setDisplayName(Storage.getMsg("next-page")); nm.setDisplayName(Storage.getMsg("next-page"));
np.setItemMeta(nm); np.setItemMeta(nm);
ItemStack usage = new ItemStack(Material.PAPER); ItemStack usage = new ItemStack(Material.PAPER);
ItemMeta um = usage.getItemMeta(); ItemMeta um = usage.getItemMeta();
um.setDisplayName(Storage.getMsg("to-not-executed")); um.setDisplayName(Storage.getMsg("to-not-executed"));
usage.setItemMeta(um); usage.setItemMeta(um);
ItemStack re = new ItemStack(Material.BOOK); ItemStack re = new ItemStack(Material.BOOK);
ItemMeta rm = re.getItemMeta(); ItemMeta rm = re.getItemMeta();
rm.setDisplayName(Storage.getMsg("refresh")); rm.setDisplayName(Storage.getMsg("refresh"));
re.setItemMeta(rm); re.setItemMeta(rm);
ItemStack ex = new ItemStack(Material.NETHER_STAR); ItemStack ex = new ItemStack(Material.NETHER_STAR);
ItemMeta em = ex.getItemMeta(); ItemMeta em = ex.getItemMeta();
em.setDisplayName(Storage.getMsg("exit")); em.setDisplayName(Storage.getMsg("exit"));
ex.setItemMeta(em); ex.setItemMeta(em);
Iterator<ItemStack> iter = nlist.iterator(); Iterator<ItemStack> iter = nlist.iterator();
int all = nlist.size(); int all = nlist.size();
pages = (((all % 45) == 0) && (all != 0)) ? (all / 45) : (all / 45 + 1); pages = (((all % 45) == 0) && (all != 0)) ? (all / 45) : (all / 45 + 1);
for (Integer t = 1; t <= pages; t++) { for (Integer t = 1; t <= pages; t++) {
Inventory inv = Bukkit.createInventory(player, 54, Inventory inv = Bukkit.createInventory(player, 54,
"¡ìd( " + t.toString() + " / " + pages.toString() + " ) " + Storage.getMsg("history-name")); "¡ìd( " + t.toString() + " / " + pages.toString() + " ) " + Storage.getMsg("history-name"));
for (int i = 0; i <= 44 && iter.hasNext(); i++) { for (int i = 0; i <= 44 && iter.hasNext(); i++) {
ItemStack it = iter.next(); ItemStack it = iter.next();
inv.setItem(i, it); inv.setItem(i, it);
} }
inv.setItem(45, lp); inv.setItem(45, lp);
inv.setItem(47, np); inv.setItem(47, np);
inv.setItem(51, usage); inv.setItem(51, usage);
inv.setItem(49, re); inv.setItem(49, re);
inv.setItem(53, ex); inv.setItem(53, ex);
his.add(t - 1, inv); his.add(t - 1, inv);
} }
} }
public static void setItem(List<ItemStack> item) { public static void setItem(List<ItemStack> item) {
ItemStack lp = new ItemStack(Material.REDSTONE); ItemStack lp = new ItemStack(Material.REDSTONE);
ItemMeta lm = lp.getItemMeta(); ItemMeta lm = lp.getItemMeta();
lm.setDisplayName(Storage.getMsg("last-page")); lm.setDisplayName(Storage.getMsg("last-page"));
lp.setItemMeta(lm); lp.setItemMeta(lm);
ItemStack np = new ItemStack(Material.EMERALD); ItemStack np = new ItemStack(Material.EMERALD);
ItemMeta nm = np.getItemMeta(); ItemMeta nm = np.getItemMeta();
nm.setDisplayName(Storage.getMsg("next-page")); nm.setDisplayName(Storage.getMsg("next-page"));
np.setItemMeta(nm); np.setItemMeta(nm);
ItemStack usage = new ItemStack(Material.PAPER); ItemStack usage = new ItemStack(Material.PAPER);
ItemMeta um = usage.getItemMeta(); ItemMeta um = usage.getItemMeta();
um.setDisplayName(Storage.getMsg("usage-name")); um.setDisplayName(Storage.getMsg("usage-name"));
List<String> lore = Storage.getMsgs("usage-lore"); List<String> lore = Storage.getMsgs("usage-lore");
um.setLore(lore); um.setLore(lore);
usage.setItemMeta(um); usage.setItemMeta(um);
ItemStack re = new ItemStack(Material.BOOK); ItemStack re = new ItemStack(Material.BOOK);
ItemMeta rm = re.getItemMeta(); ItemMeta rm = re.getItemMeta();
rm.setDisplayName(Storage.getMsg("refresh")); rm.setDisplayName(Storage.getMsg("refresh"));
re.setItemMeta(rm); re.setItemMeta(rm);
ItemStack ex = new ItemStack(Material.NETHER_STAR); ItemStack ex = new ItemStack(Material.NETHER_STAR);
ItemMeta em = ex.getItemMeta(); ItemMeta em = ex.getItemMeta();
em.setDisplayName(Storage.getMsg("exit")); em.setDisplayName(Storage.getMsg("exit"));
ex.setItemMeta(em); ex.setItemMeta(em);
// add items to bug view // add items to bug view
Iterator<ItemStack> iter = item.iterator(); Iterator<ItemStack> iter = item.iterator();
int all = item.size(); int all = item.size();
pages = (((all % 45) == 0) && (all != 0)) ? (all / 45) : (all / 45 + 1); pages = (((all % 45) == 0) && (all != 0)) ? (all / 45) : (all / 45 + 1);
for (Integer t = 1; t <= pages; t++) { for (Integer t = 1; t <= pages; t++) {
Inventory inv = Bukkit.createInventory(null, 54, Inventory inv = Bukkit.createInventory(null, 54,
"¡ìd[ " + t.toString() + " / " + pages.toString() + " ] " + Storage.getMsg("gui-name")); "¡ìd[ " + t.toString() + " / " + pages.toString() + " ] " + Storage.getMsg("gui-name"));
for (int i = 0; i <= 44 && iter.hasNext(); i++) { for (int i = 0; i <= 44 && iter.hasNext(); i++) {
ItemStack it = iter.next(); ItemStack it = iter.next();
inv.setItem(i, it); inv.setItem(i, it);
} }
inv.setItem(45, lp); inv.setItem(45, lp);
inv.setItem(47, np); inv.setItem(47, np);
inv.setItem(51, usage); inv.setItem(51, usage);
inv.setItem(49, re); inv.setItem(49, re);
inv.setItem(53, ex); inv.setItem(53, ex);
invs.add(t - 1, inv); invs.add(t - 1, inv);
} }
} }
/** /**
* * @param inv this inventory
* @param inv * @param page this page
* this inventory * @param id slot id
* @param page * @param click click type
* this page */
* @param id public static void click(Inventory inv, Integer page, Integer id, ClickType click, Player player) {
* slot id if (inv.getItem(id) != null) {
* @param click ItemStack item = inv.getItem(id);
* click type String serial = item.getItemMeta().getDisplayName();
*/ if (id != 45 && id != 47 && id != 49 && id != 51 && id != 53) {
public static void click(Inventory inv, Integer page, Integer id, ClickType click, Player player) { if (click.isLeftClick() && (!click.isShiftClick())) {
if (inv.getItem(id) != null) { ItemMeta im = item.getItemMeta();
ItemStack item = inv.getItem(id); List<String> lore = im.getLore();
String serial = item.getItemMeta().getDisplayName(); lore.add(Storage.getMsg("executed"));
if (id != 45 && id != 47 && id != 49 && id != 51 && id != 53) { item.setItemMeta(im);
if (click.isLeftClick() && (!click.isShiftClick())) { inv.clear(id);
ItemMeta im = item.getItemMeta(); inv.setItem(id, item);
List<String> lore = im.getLore(); Database.qback(serial, player);
lore.add(Storage.getMsg("executed")); Notify.notifyb(serial, Storage.getConfig().getString("auto-sendback-msg"), player);
item.setItemMeta(im); }
inv.clear(id); if (click.isRightClick() && (!click.isShiftClick())) {
inv.setItem(id, item); // need to add a serial to this map
Database.qback(serial, player); Storage.back.put(player.getUniqueId().toString(), serial);
Notify.notifyb(serial, Storage.getConfig().getString("auto-sendback-msg"), player); Storage.send(player, "send-back");
} player.closeInventory();
if (click.isRightClick() && (!click.isShiftClick())) { }
// need to add a serial to this map if (click.isLeftClick() && (click.isShiftClick())) {
Storage.back.put(player.getUniqueId().toString(), serial); ItemMeta im = item.getItemMeta();
Storage.send(player, "send-back"); List<String> lore = im.getLore();
player.closeInventory(); lore.add(Storage.getMsg("executed"));
} item.setItemMeta(im);
if (click.isLeftClick() && (click.isShiftClick())) { inv.clear(id);
ItemMeta im = item.getItemMeta(); inv.setItem(id, item);
List<String> lore = im.getLore(); Database.ignore(serial, player);
lore.add(Storage.getMsg("executed")); }
item.setItemMeta(im); } else {
inv.clear(id); if (id == 45) {
inv.setItem(id, item); if (page != 1) {
Database.ignore(serial, player); open(player, page - 1);
} } else {
} else { Storage.send(player, "no-this-page");
if (id == 45) { }
if (page != 1) { }
open(player, page - 1); if (id == 47) {
} else { if (!Objects.equals(page, pages)) {
Storage.send(player, "no-this-page"); open(player, page + 1);
} } else {
} Storage.send(player, "no-this-page");
if (id == 47) { }
if (page != pages) { }
open(player, page + 1); if (id == 49) {
} else { loadInv();
Storage.send(player, "no-this-page"); player.closeInventory();
} open(player, page);
} }
if (id == 49) { if (id == 53) {
loadInv(); player.closeInventory();
player.closeInventory(); }
open(player, page); }
} }
if (id == 53) { }
player.closeInventory();
}
}
}
}
public static void clickHis(Inventory inv, Integer page, Integer id, ClickType click, Player player) { 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 >= 0 && id <= 53 && inv.getItem(id) != null) {
if (id == 45) { if (id == 45) {
if (page != 1) { if (page != 1) {
openHistory(player, page - 1); openHistory(player, page - 1);
} else { } else {
Storage.send(player, "no-this-page"); Storage.send(player, "no-this-page");
} }
} }
if (id == 47) { if (id == 47) {
if (page != pages) { if (!Objects.equals(page, pages)) {
openHistory(player, page + 1); openHistory(player, page + 1);
} else { } else {
Storage.send(player, "no-this-page"); Storage.send(player, "no-this-page");
} }
} }
if (id == 49) { if (id == 49) {
loadHis(player); loadHis(player);
player.closeInventory(); player.closeInventory();
openHistory(player, page); openHistory(player, page);
} }
if (id == 51) { if (id == 51) {
player.closeInventory(); player.closeInventory();
open(player, 1); open(player, 1);
} }
if (id == 53) { if (id == 53) {
player.closeInventory(); player.closeInventory();
} }
} }
} }
} }

View File

@ -1,9 +1,8 @@
package com.ilummc.bugrepgui; package com.ilummc.bugrepgui;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.*;
import com.ilummc.bugrepgui.util.UpdateChecker; import com.ilummc.bugrepgui.util.UpdateChecker;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin { public class Main extends JavaPlugin {
@Override @Override
@ -15,8 +14,8 @@ public class Main extends JavaPlugin {
Storage.init(this.getConfig(), this.getDataFolder(), "lang_" + lang + ".yml"); Storage.init(this.getConfig(), this.getDataFolder(), "lang_" + lang + ".yml");
getServer().getPluginManager().registerEvents(new EventListener().setAlias(getConfig().getString("alias")), getServer().getPluginManager().registerEvents(new EventListener().setAlias(getConfig().getString("alias")),
this); this);
getCommand("bug").setExecutor(new cmdExe()); getCommand("bug").setExecutor(new Commands());
getCommand("bugrepgui").setExecutor(new cmdExe()); getCommand("bugrepgui").setExecutor(new Commands());
if (this.getConfig().getBoolean("check-update")) if (this.getConfig().getBoolean("check-update"))
UpdateChecker.check(this.getDescription().getVersion(), this.getDescription().getWebsite()); UpdateChecker.check(this.getDescription().getVersion(), this.getDescription().getWebsite());
} }

View File

@ -23,9 +23,9 @@ public class Notify {
public static void notifyb(String serial, String msg, Player exename) { public static void notifyb(String serial, String msg, Player exename) {
Player player = Database.getRepPlayer(serial); Player player = Database.getRepPlayer(serial);
if (player.isOnline()) { 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); .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); .replaceAll("%exename%", exename.getDisplayName()).replaceAll("%reply%", msg);
String msgs[] = { str, Storage.compile(str2) }; String msgs[] = { str, Storage.compile(str2) };
player.sendMessage(msgs); player.sendMessage(msgs);

View File

@ -1,53 +1,55 @@
package com.ilummc.bugrepgui; package com.ilummc.bugrepgui;
import com.ilummc.bugrepgui.stats.Reporter;
import java.util.Iterator; import java.util.Iterator;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.TreeSet; import java.util.TreeSet;
import com.ilummc.bugrepgui.stats.Reporter;
public class Stats { public class Stats {
public static String[] loadTextRep() {
Map<String, Integer> res = Database.loadStatsRep(); public static String[] loadTextRep() {
Set<String> set = res.keySet(); Map<String, Integer> res = Database.loadStatsRep();
Iterator<String> it = set.iterator(); Set<String> set = res.keySet();
Set<Reporter> rank = new TreeSet<>(); Iterator<String> it = set.iterator();
while (it.hasNext()) { Set<Reporter> rank = new TreeSet<>();
String name = it.next(); while (it.hasNext()) {
Reporter rep = new Reporter(name, res.get(name)); String name = it.next();
rank.add(rep); Reporter rep = new Reporter(name, res.get(name));
} rank.add(rep);
String[] msg = new String[rank.size() + 2]; }
msg[0] = Storage.getMsg("rep-rank"); String[] msg = new String[rank.size() + 2];
Iterator<Reporter> its = rank.iterator(); msg[0] = Storage.getMsg("rep-rank");
for (int i = 1; i <= rank.size(); i++) { Iterator<Reporter> its = rank.iterator();
Reporter next = its.next(); for (int i = 1; i <= rank.size(); i++) {
msg[i] = next.getName() + " : " + next.getAmount().toString(); 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()); Integer all = rank.size();
return msg; msg[all + 1] = Storage.getMsg("rep-stats").replaceAll("%amount%", all.toString());
} return msg;
public static String[] loadTextExe() { }
Map<String, Integer> res = Database.loadStatsExe();
Set<String> set = res.keySet(); public static String[] loadTextExe() {
Iterator<String> it = set.iterator(); Map<String, Integer> res = Database.loadStatsExe();
Set<Reporter> rank = new TreeSet<>(); Set<String> set = res.keySet();
while (it.hasNext()) { Iterator<String> it = set.iterator();
String name = it.next(); Set<Reporter> rank = new TreeSet<>();
Reporter rep = new Reporter(name, res.get(name)); while (it.hasNext()) {
rank.add(rep); String name = it.next();
} Reporter rep = new Reporter(name, res.get(name));
String[] msg = new String[rank.size() + 2]; rank.add(rep);
msg[0] = Storage.getMsg("exe-rank"); }
Iterator<Reporter> its = rank.iterator(); String[] msg = new String[rank.size() + 2];
for (int i = 1; i <= rank.size(); i++) { msg[0] = Storage.getMsg("exe-rank");
Reporter next = its.next(); Iterator<Reporter> its = rank.iterator();
msg[i] = next.getName() + " : " + next.getAmount().toString(); for (int i = 1; i <= rank.size(); i++) {
} Reporter next = its.next();
Integer all = rank.size(); msg[i] = next.getName() + " : " + next.getAmount().toString();
msg[all + 1] = Storage.getMsg("rep-stats").replaceAll("%amount%", all.toString()); }
return msg; Integer all = rank.size();
} msg[all + 1] = Storage.getMsg("rep-stats").replaceAll("%amount%", all.toString());
return msg;
}
} }

View File

@ -1,10 +1,5 @@
package com.ilummc.bugrepgui; 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.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -12,132 +7,130 @@ import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Storage { 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<String, Bug> map = new HashMap<>();
// this is a temporary list for ops who send back
public static Map<String, String> back = new HashMap<>();
public static void init(FileConfiguration config, File thisfolder, String language) { private static FileConfiguration configyml;
configyml = config; private static File folder;
folder = thisfolder; static String serial;
lang = new File(thisfolder, language); static File lang;
langyml = YamlConfiguration.loadConfiguration(lang); static boolean debug;
debug = configyml.getBoolean("debug"); static String format = "%serial%:\n serial: '#%serial%'\n name: '%player%'\n time: '%time%'\n file: '%path%'\n executed: false\n";
Database.connect(); private static FileConfiguration langyml;
} // this is a temporary list for reporters
public static Map<String, Bug> map = new HashMap<>();
// this is a temporary list for ops who send back
public static Map<String, String> back = new HashMap<>();
public static void reload() { public static void init(FileConfiguration config, File thisfolder, String language) {
init(configyml, folder, "lang_" + configyml.getString("lang", "en") + ".yml"); 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) { public static void reload() {
Storage.map.put(bug.getRepUUID(), bug); init(configyml, folder, "lang_" + configyml.getString("lang", "en") + ".yml");
} }
public static File getFolder() { public static void putMap(Bug bug) {
return folder; Storage.map.put(bug.getRepUUID(), bug);
} }
public static FileConfiguration getConfig() { public static File getFolder() {
return configyml; return folder;
} }
public static FileConfiguration getLang() { public static FileConfiguration getConfig() {
return langyml; return configyml;
} }
public static String compile(String str) { public static FileConfiguration getLang() {
char[] cha = str.toCharArray(); return langyml;
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 String getMsg(String msg) { public static String compile(String str) {
String str = langyml.getString(msg, "¡ìePlease check the lang_" + configyml.getString("lang", "xx") + ".yml!!!"); return ChatColor.translateAlternateColorCodes('&', str);
return compile(str); }
}
public static List<String> getMsgs(String msg) { public static String getMsg(String msg) {
List<String> list = langyml.getStringList(msg); String str = langyml.getString(msg, "¡ìePlease check the lang_" + configyml.getString("lang", "xx") + ".yml!!!");
for (int i = 0; i < list.size(); i++) { return compile(str);
list.set(i, compile(list.get(i))); }
}
return list;
}
public static String getPrefix() { public static List<String> getMsgs(String msg) {
return getMsg("prefix"); List<String> 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) { public static String getPrefix() {
player.sendMessage(getPrefix() + getMsg(msg)); return getMsg("prefix");
} }
public static void send(CommandSender player, String msg) { public static void send(Player player, String msg) {
player.sendMessage(getPrefix() + getMsg(msg)); player.sendMessage(getPrefix() + getMsg(msg));
} }
public static void sends(Player player, String[] msg) { public static void send(CommandSender player, String msg) {
for (int i = 0; i < msg.length; i++) { player.sendMessage(getPrefix() + getMsg(msg));
if (msg[i] != null && msg[i] != "") }
player.sendMessage(getPrefix() + msg[i]);
}
}
public static void log(String msg) { public static void sends(Player player, String[] msg) {
Bukkit.getLogger().info( for (int i = 0; i < msg.length; i++) {
getLang().getString(getPrefix().replaceAll("¡ì", ""), "[BugRepGUI]") + getMsg(msg).replaceAll("¡ì", "")); if (msg[i] != null && msg[i] != "")
} player.sendMessage(getPrefix() + msg[i]);
}
}
public static void logExcept(Exception e) { public static void log(String msg) {
Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "[BugRepGUI] Err occured: " + e.getMessage()); Bukkit.getLogger().info(
if (debug) { getLang().getString(getPrefix().replaceAll("¡ì", ""), "[BugRepGUI]") + getMsg(msg).replaceAll("¡ì", ""));
e.printStackTrace(); }
}
}
public static void getHelp(Player player) { public static void logExcept(Exception e) {
List<String> helpl = langyml.getStringList("help"); Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "[BugRepGUI] Err occured: " + e.getMessage());
String[] help = new String[helpl.size()]; if (debug) {
for (int i = 0; i < helpl.size(); i++) { e.printStackTrace();
help[i] = compile(helpl.get(i)); }
} }
player.sendMessage(help);
}
public static void getHelp(CommandSender player) { public static void getHelp(Player player) {
List<String> helpl = langyml.getStringList("help"); List<String> helpl = langyml.getStringList("help");
String[] help = new String[helpl.size()]; String[] help = new String[helpl.size()];
for (int i = 0; i < helpl.size(); i++) { for (int i = 0; i < helpl.size(); i++) {
help[i] = compile(helpl.get(i)); help[i] = compile(helpl.get(i));
} }
player.sendMessage(help); player.sendMessage(help);
} }
public static String transfer(String string) { public static void getHelp(CommandSender player) {
char[] ch = string.toCharArray(); List<String> helpl = langyml.getStringList("help");
StringBuffer out = new StringBuffer(); String[] help = new String[helpl.size()];
for (int i = 0; i < ch.length; i++) { for (int i = 0; i < helpl.size(); i++) {
if (ch[i] == ' ') help[i] = compile(helpl.get(i));
out.append("\\s"); }
else player.sendMessage(help);
out.append(String.valueOf(ch[i])); }
}
return out.toString(); 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();
}
} }

View File

@ -1,17 +1,12 @@
package com.ilummc.bugrepgui.bungee; package com.ilummc.bugrepgui.bungee;
import java.sql.Connection; import com.ilummc.bugrepgui.Storage;
import java.sql.DriverManager; import net.md_5.bungee.api.connection.ProxiedPlayer;
import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.*;
import java.sql.Statement;
import java.util.Collection; import java.util.Collection;
import java.util.Iterator; import java.util.Iterator;
import com.ilummc.bugrepgui.Storage;
import net.md_5.bungee.api.connection.ProxiedPlayer;
public class GlobalNotify { public class GlobalNotify {
private static Connection c = null; private static Connection c = null;
private static Statement state = null; private static Statement state = null;
@ -146,11 +141,8 @@ public class GlobalNotify {
c = DriverManager.getConnection(url, Main.config.getString("mysql-username"), c = DriverManager.getConnection(url, Main.config.getString("mysql-username"),
Main.config.getString("mysql-password")); Main.config.getString("mysql-password"));
state = c.createStatement(); state = c.createStatement();
} catch (SQLException e) { } catch (SQLException | ClassNotFoundException e) {
Main.printException(e.getMessage()); Main.printException(e.getMessage());
return false;
} catch (ClassNotFoundException e) {
Main.printException(e.getMessage());
return false; return false;
} }
String sql = "CREATE TABLE IF NOT EXISTS br_bug " + "(SERIAL INT PRIMARY KEY AUTO_INCREMENT NOT NULL," String sql = "CREATE TABLE IF NOT EXISTS br_bug " + "(SERIAL INT PRIMARY KEY AUTO_INCREMENT NOT NULL,"

View File

@ -1,84 +1,84 @@
package com.ilummc.bugrepgui.bungee; 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.ProxyServer;
import net.md_5.bungee.api.plugin.Plugin; import net.md_5.bungee.api.plugin.Plugin;
import net.md_5.bungee.config.Configuration; import net.md_5.bungee.config.Configuration;
import net.md_5.bungee.config.ConfigurationProvider; import net.md_5.bungee.config.ConfigurationProvider;
import net.md_5.bungee.config.YamlConfiguration; 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 { public class Main extends Plugin {
static Logger log; static Logger log;
static File folder; static File folder;
static Configuration config; static Configuration config;
static Configuration lang; static Configuration lang;
static File cf; static File cf;
static File lf; static File lf;
static ProxyServer server; static ProxyServer server;
public void onEnable() { public void onEnable() {
this.init(this.getDataFolder(), this.getLogger()); this.init(this.getDataFolder(), this.getLogger());
this.getLogger().info("BungeeCord mode is on!"); this.getLogger().info("BungeeCord mode is on!");
this.getProxy().getPluginManager().registerListener(this, new BungeeListener()); this.getProxy().getPluginManager().registerListener(this, new BungeeListener());
} }
@Override @Override
public void onDisable() { public void onDisable() {
try { try {
ConfigurationProvider.getProvider(YamlConfiguration.class).save(config, cf); ConfigurationProvider.getProvider(YamlConfiguration.class).save(config, cf);
ConfigurationProvider.getProvider(YamlConfiguration.class).save(lang, lf); ConfigurationProvider.getProvider(YamlConfiguration.class).save(lang, lf);
} catch (Exception e) { } catch (Exception e) {
printException(e.getMessage()); printException(e.getMessage());
} }
this.getLogger().info("BugRepGUI disabled! Thanks for chosing us!"); this.getLogger().info("BugRepGUI disabled! Thanks for chosing us!");
} }
public void init(File f, Logger log) { public void init(File f, Logger log) {
if (!this.getDataFolder().exists()) { if (!this.getDataFolder().exists()) {
this.getDataFolder().mkdir(); this.getDataFolder().mkdir();
} }
Main.log = log; Main.log = log;
Main.folder = f; Main.folder = f;
Main.server = this.getProxy(); Main.server = this.getProxy();
cf = new File(f + "/config.yml"); cf = new File(f + "/config.yml");
try { try {
if (!cf.exists()) { if (!cf.exists()) {
Files.copy(getResourceAsStream("config.yml"), cf.toPath(), new CopyOption[0]); Files.copy(getResourceAsStream("config.yml"), cf.toPath());
} }
reloadConfig(); reloadConfig();
lf = new File(f + "/lang_"+config.getString("lang")+".yml"); lf = new File(f + "/lang_" + config.getString("lang") + ".yml");
if (!lf.exists()) { if (!lf.exists()) {
Files.copy(getResourceAsStream("lang_" + config.getString("lang") + ".yml"), lf.toPath(), Files.copy(getResourceAsStream("lang_" + config.getString("lang") + ".yml"), lf.toPath()
new CopyOption[0]); );
} }
reloadLang(); reloadLang();
} catch (Exception e) { } catch (Exception e) {
printException(e.getMessage()); printException(e.getMessage());
} }
} }
private void reloadConfig() { private void reloadConfig() {
try { try {
config = ConfigurationProvider.getProvider(YamlConfiguration.class).load(cf); config = ConfigurationProvider.getProvider(YamlConfiguration.class).load(cf);
} catch (IOException e) { } catch (IOException e) {
printException(e.getMessage()); printException(e.getMessage());
} }
} }
private void reloadLang() {
try {
lang = ConfigurationProvider.getProvider(YamlConfiguration.class).load(lf);
} catch (IOException e) {
printException(e.getMessage());
}
}
public static void printException(String msg) { private void reloadLang() {
log.warning("Error: " + msg); try {
} lang = ConfigurationProvider.getProvider(YamlConfiguration.class).load(lf);
} catch (IOException e) {
printException(e.getMessage());
}
}
public static void printException(String msg) {
log.warning("Error: " + msg);
}
} }

View File

@ -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;
}
}
}

View File

@ -1,48 +1,42 @@
package com.ilummc.bugrepgui.util; package com.ilummc.bugrepgui.util;
import com.ilummc.bugrepgui.Storage;
import org.bukkit.Bukkit;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.URL; import java.net.URL;
import org.bukkit.Bukkit;
import com.ilummc.bugrepgui.Storage;
public class UpdateChecker { public class UpdateChecker {
public static void check(String version, String web) { public static void check(String version, String web) {
final String ver = version; final String ver = version;
final String webn = web; final String webn = web;
Thread t = new Thread(new Runnable() { Thread t = new Thread(() -> {
@Override Storage.log("checking-update");
public void run() { try {
Storage.log("checking-update"); HttpURLConnection c = (HttpURLConnection) new URL("http://www.spigotmc.org/api/general.php")
try { .openConnection();
HttpURLConnection c = (HttpURLConnection) new URL("http://www.spigotmc.org/api/general.php") c.setDoOutput(true);
.openConnection(); c.setRequestMethod("POST");
c.setDoOutput(true); c.getOutputStream()
c.setRequestMethod("POST"); .write(("key=98BE0FE67F88AB82B4C197FAF1DC3B69206EFDCC4D3B80FC83A00037510B99B4&resource=35119")
c.getOutputStream() .getBytes("UTF-8"));
.write(("key=98BE0FE67F88AB82B4C197FAF1DC3B69206EFDCC4D3B80FC83A00037510B99B4&resource=35119") String newVersion = new BufferedReader(new InputStreamReader(c.getInputStream())).readLine();
.getBytes("UTF-8")); if (newVersion.equals(ver)) {
String oldVersion = ver; Storage.log("no-new-version");
String newVersion = new BufferedReader(new InputStreamReader(c.getInputStream())).readLine() } else {
.replaceAll("[a-zA-Z ]", ""); String[] msg = Storage.getMsg("new-version").replaceAll("%version%", newVersion)
if (newVersion.equals(oldVersion)) { .replaceAll("%website%", webn).split("\\\\n");
Storage.log("no-new-version"); for (int i = 0; i < msg.length; i++) {
} else { msg[i] = Storage.getPrefix() + Storage.compile(msg[i]);
String[] msg = Storage.getMsg("new-version").replaceAll("%version%", newVersion) }
.replaceAll("%website%", webn).split("\\\\n"); Bukkit.getConsoleSender().sendMessage(msg);
for (int i = 0; i < msg.length; i++) { }
msg[i] = Storage.getPrefix() + Storage.compile(msg[i]); } catch (Exception e) {
} Storage.logExcept(e);
Bukkit.getConsoleSender().sendMessage(msg); }
} });
} catch (Exception e) { t.start();
Storage.logExcept(e);
}
}
});
t.start();
} }
} }

View File

@ -1,27 +1,27 @@
#BugReportGUI Configuration file # BugReportGUI Configuration file
#Google is your friend :) # Google is your friend :)
debug: false debug: false
check-update: true check-update: true
#This could be sqlite, mysql # This could be sqlite, mysql
database: sqlite database: sqlite
#These are required if database is set to MySQL # These are required if database is set to MySQL
mysql-url: 'localhost' mysql-url: 'localhost'
mysql-port: 3306 mysql-port: 3306
mysql-username: '' mysql-username: ''
mysql-password: '' mysql-password: ''
mysql-db: '' mysql-db: ''
########################################################################### ############################################################################
#This controls the date format(such as CST or PST or EST) in the bug view # # This controls the date format(such as CST or PST or EST) in the bug view #
# Here is a country list for you :) # # Here is a country list for you :) #
# https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 # # https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 #
########################################################################### ############################################################################
locale: 'US' locale: 'US'
lang: 'en' 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' auto-sendback-msg: '&eThanks for your reporting'
#Report Alias # Report Alias
alias: 'r' 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 use-bungee: false
#This controls the speed of checking sendback (in ms) # This controls the speed of checking sendback (in ms)
check-speed: 2000 check-speed: 2000

View File

@ -1,8 +1,8 @@
name: BugRepGUI name: BugRepGUI
main: com.ilummc.bugrepgui.Main main: com.ilummc.bugrepgui.Main
version: 1.8 version: 1.10
author: IzzelAliz author: IzzelAliz
website: https://www.spigotmc.org/resources/bugreportgui-better-than-rating.35119/ website: https://www.spigotmc.org/resources/35119/
commands: commands:
bug: bug:
description: /bug help for more help description: /bug help for more help
@ -10,6 +10,9 @@ commands:
bugrepgui: bugrepgui:
description: /bugrepgui for more help description: /bugrepgui for more help
usage: /bugrepgui usage: /bugrepgui
report:
description: Report a bug
usage: /report
permissions: permissions:
bugrepgui.admin: bugrepgui.admin: