diff --git a/pom.xml b/pom.xml
index ad9b606..fdc5768 100644
--- a/pom.xml
+++ b/pom.xml
@@ -112,6 +112,7 @@
maven-shade-plugin
3.0.0
+ false
org.mcstats.*:*
diff --git a/src/main/gg/frog/mc/permissionstime/PluginMain.java b/src/main/gg/frog/mc/permissionstime/PluginMain.java
index c60c79b..63fa94e 100644
--- a/src/main/gg/frog/mc/permissionstime/PluginMain.java
+++ b/src/main/gg/frog/mc/permissionstime/PluginMain.java
@@ -4,6 +4,7 @@ import java.util.Locale;
import java.util.logging.Logger;
import org.bukkit.Bukkit;
+import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.java.JavaPlugin;
import org.mcstats.Metrics;
@@ -12,16 +13,20 @@ import gg.frog.mc.permissionstime.config.ConfigManager;
import gg.frog.mc.permissionstime.config.PluginCfg;
import gg.frog.mc.permissionstime.listener.TheListener;
import gg.frog.mc.permissionstime.utils.StrUtil;
+import lib.PatPeter.SQLibrary.SQLite;
+import net.milkbowl.vault.permission.Permission;
public class PluginMain extends JavaPlugin {
public static String PLUGIN_NAME;
public static String PLUGIN_VERSION;
public static String PLUGIN_NAME_LOWER_CASE;
+ public static final String DEPEND_PLUGIN = "SQLibrary,Vault";
public static Logger LOG = Logger.getLogger("Minecraft");
- private static PluginMain pm = null;
- private ConfigManager cm = null;
+ public static PluginMain pm = null;
+ public static ConfigManager cm = null;
+ public static Permission permission = null;
public PluginMain() {
PLUGIN_NAME = getDescription().getName();
@@ -40,8 +45,6 @@ public class PluginMain extends JavaPlugin {
getServer().getConsoleSender().sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + " author:GeekFrog QQ:324747460"));
getServer().getConsoleSender().sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + " https://github.com/geekfrog/PermissionsTime/ "));
getServer().getConsoleSender().sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX));
- registerListeners();
- registerCommands();
getServer().getConsoleSender().sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + "==============================="));
if (PluginCfg.IS_METRICS) {
try {
@@ -55,6 +58,9 @@ public class PluginMain extends JavaPlugin {
public void run() {
if (!checkPluginDepends()) {
getServer().getPluginManager().disablePlugin(pm);
+ } else {
+ registerListeners();
+ registerCommands();
}
}
}, 0L, 432000L);
@@ -86,13 +92,21 @@ public class PluginMain extends JavaPlugin {
private boolean checkPluginDepends() {
boolean needDepend = false;
- for(String name : getDescription().getSoftDepend()){
- if(getServer().getPluginManager().getPlugin(name) == null){
+ for (String name : DEPEND_PLUGIN.split(",")) {
+ if (getServer().getPluginManager().getPlugin(name) == null) {
getServer().getConsoleSender().sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + "Need depend plugins : " + name));
needDepend = true;
}
}
- if(needDepend){
+ if (!setupPermissions()) {
+ getServer().getConsoleSender().sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + "Cann't hook vault permission"));
+ needDepend = true;
+ }
+ if (!setupDatabase()) {
+ getServer().getConsoleSender().sendMessage(StrUtil.messageFormat(PluginCfg.PLUGIN_PREFIX + "Cann't setup database"));
+ needDepend = true;
+ }
+ if (needDepend) {
return false;
}
return true;
@@ -104,4 +118,26 @@ public class PluginMain extends JavaPlugin {
getServer().getServicesManager().unregisterAll(this);
Bukkit.getScheduler().cancelTasks(this);
}
+
+ private boolean setupPermissions() {
+ RegisteredServiceProvider permissionProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.permission.Permission.class);
+ if (permissionProvider != null) {
+ permission = permissionProvider.getProvider();
+ }
+ return (permission != null);
+ }
+
+ private boolean setupDatabase() {
+ try {
+ SQLite sql = new SQLite(Logger.getLogger("Minecraft"), "[" + PLUGIN_NAME + "] ", this.getDataFolder().getAbsolutePath(), PLUGIN_NAME, ".sqlite");
+ if(!sql.isOpen()){
+ sql.open();
+ }
+ sql.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ return true;
+ }
}