Async query
This commit is contained in:
parent
e33c35ce34
commit
e1cad8d3df
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
# Created by .ignore support plugin (hsz.mobi)
|
||||
.gitignore
|
||||
.idea/
|
||||
40
pom.xml
40
pom.xml
@ -19,27 +19,27 @@
|
||||
</repositories>
|
||||
|
||||
<build>
|
||||
<sourceDirectory>src</sourceDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<targetPath>.</targetPath>
|
||||
<directory>${basedir}/src/</directory>
|
||||
</resource>
|
||||
</resources>
|
||||
<sourceDirectory>src</sourceDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<targetPath>.</targetPath>
|
||||
<directory>${basedir}/src/</directory>
|
||||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.5.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>default-compile</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>compile</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<execution>
|
||||
<id>default-compile</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>compile</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<source>1.8</source>
|
||||
<target>1.8</target>
|
||||
@ -57,14 +57,12 @@
|
||||
<type>jar</type>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<!--Spigot API-->
|
||||
<dependency>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot-api</artifactId>
|
||||
<version>1.8.3-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot-api</artifactId>
|
||||
<version>1.8.3-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<!--Bukkit API-->
|
||||
<dependency>
|
||||
<groupId>org.bukkit</groupId>
|
||||
<artifactId>bukkit</artifactId>
|
||||
|
||||
113
src/com/ilummc/bugrepgui/Commands.java
Normal file
113
src/com/ilummc/bugrepgui/Commands.java
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
@ -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<Inventory> invs = new ArrayList<>();
|
||||
static List<Inventory> his = new ArrayList<>();
|
||||
static Integer pages;
|
||||
private static List<Inventory> invs = new ArrayList<>();
|
||||
private static List<Inventory> 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<Bug> set = Database.listHis();
|
||||
Iterator<Bug> it = set.iterator();
|
||||
List<ItemStack> nlist = new ArrayList<>();
|
||||
while (it.hasNext()) {
|
||||
nlist.add(it.next().toItemExecuted());
|
||||
}
|
||||
setItemHis(nlist, player);
|
||||
}
|
||||
public static void loadHis(Player player) {
|
||||
his = new ArrayList<>();
|
||||
List<Bug> set = Database.listHis();
|
||||
Iterator<Bug> it = set.iterator();
|
||||
List<ItemStack> nlist = new ArrayList<>();
|
||||
while (it.hasNext()) {
|
||||
nlist.add(it.next().toItemExecuted());
|
||||
}
|
||||
setItemHis(nlist, player);
|
||||
}
|
||||
|
||||
public static boolean loadInv() {
|
||||
invs = new ArrayList<>();
|
||||
List<Bug> set = Database.list();
|
||||
Iterator<Bug> it = set.iterator();
|
||||
List<ItemStack> nlist = new ArrayList<>();
|
||||
while (it.hasNext()) {
|
||||
nlist.add(it.next().toItem());
|
||||
}
|
||||
setItem(nlist);
|
||||
return true;
|
||||
}
|
||||
public static boolean loadInv() {
|
||||
invs = new ArrayList<>();
|
||||
List<Bug> set = Database.list();
|
||||
Iterator<Bug> it = set.iterator();
|
||||
List<ItemStack> nlist = new ArrayList<>();
|
||||
while (it.hasNext()) {
|
||||
nlist.add(it.next().toItem());
|
||||
}
|
||||
setItem(nlist);
|
||||
return true;
|
||||
}
|
||||
|
||||
private static void setItemHis(List<ItemStack> 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<ItemStack> 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<ItemStack> 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<ItemStack> 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<ItemStack> 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<String> 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<ItemStack> 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<ItemStack> 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<String> 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<ItemStack> 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<String> 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<String> 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<String> 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<String> 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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());
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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<String, Integer> res = Database.loadStatsRep();
|
||||
Set<String> set = res.keySet();
|
||||
Iterator<String> it = set.iterator();
|
||||
Set<Reporter> 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<Reporter> 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<String, Integer> res = Database.loadStatsExe();
|
||||
Set<String> set = res.keySet();
|
||||
Iterator<String> it = set.iterator();
|
||||
Set<Reporter> 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<Reporter> 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<String, Integer> res = Database.loadStatsRep();
|
||||
Set<String> set = res.keySet();
|
||||
Iterator<String> it = set.iterator();
|
||||
Set<Reporter> 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<Reporter> 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<String, Integer> res = Database.loadStatsExe();
|
||||
Set<String> set = res.keySet();
|
||||
Iterator<String> it = set.iterator();
|
||||
Set<Reporter> 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<Reporter> 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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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<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) {
|
||||
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<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() {
|
||||
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<String> getMsgs(String msg) {
|
||||
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 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<String> getMsgs(String msg) {
|
||||
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) {
|
||||
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<String> 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<String> 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<String> 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<String> 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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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,"
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
@ -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:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user