feat: load storage and disable if not sql

This commit is contained in:
aro 2023-01-30 10:17:57 +01:00
parent eda5b33370
commit b09a09438e
2 changed files with 43 additions and 8 deletions

View file

@ -14,6 +14,7 @@ public class Nicko {
private ConfigurationManager configManager;
private Logger logger;
private File dataFolder;
private boolean bungeecord;
private Configuration config;
private PlayerDataStore dataStore;
@ -66,4 +67,12 @@ public class Nicko {
public void setConfig(Configuration config) {
this.config = config;
}
public boolean isBungeecord() {
return bungeecord;
}
public void setBungeecord(boolean bungeecord) {
this.bungeecord = bungeecord;
}
}

View file

@ -1,6 +1,8 @@
package net.artelnatif.nicko.bungee;
import net.artelnatif.nicko.Nicko;
import net.artelnatif.nicko.bungee.event.UpdateMessageListener;
import net.artelnatif.nicko.storage.sql.SQLStorageProvider;
import net.md_5.bungee.api.plugin.Plugin;
public class NickoBungee extends Plugin {
@ -9,27 +11,51 @@ public class NickoBungee extends Plugin {
public static final String PROXY_FETCH = NICKO_PLUGIN_CHANNEL_BASE + "fetch";
public static final String SERVER_DATA = NICKO_PLUGIN_CHANNEL_BASE + "data";
private final Nicko nicko = new Nicko();
private static NickoBungee plugin;
@Override
public void onEnable() {
plugin = this;
nicko.initBungeecord(this);
getLogger().info("Registering channel...");
getProxy().registerChannel(SERVER_DATA);
getLogger().info("Loading persistence...");
if (!(nicko.getDataStore().getStorage().getProvider() instanceof SQLStorageProvider)) {
getLogger().severe("Nicko does not support local storage in combination with Bungeecord.");
getLogger().severe("The plugin will not continue.");
nicko.getDataStore().getStorage().setError(true);
nicko.setBungeecord(false);
onDisable();
return;
}
getLogger().info("Registering listener...");
getProxy().getPluginManager().registerListener(this, new UpdateMessageListener());
if (!nicko.getDataStore().getStorage().isError()) {
if (!nicko.getDataStore().getStorage().getProvider().init()) {
getLogger().severe("Failed to open persistence!");
getLogger().severe("Player data transfer is disabled.");
nicko.setBungeecord(false);
return;
}
getLogger().info("Nicko (Bungee) has been enabled.");
getLogger().info("Registering channel...");
getProxy().registerChannel(SERVER_DATA);
getLogger().info("Registering listener...");
getProxy().getPluginManager().registerListener(this, new UpdateMessageListener());
getLogger().info("Nicko (Bungee) has been enabled.");
}
}
@Override
public void onDisable() {
getLogger().info("Unregistering channels...");
getProxy().unregisterChannel(PROXY_UPDATE);
if (!nicko.getDataStore().getStorage().isError()) {
getLogger().info("Unregistering channels...");
getProxy().unregisterChannel(PROXY_UPDATE);
getLogger().info("Nicko (Bungee) has been disabled.");
getLogger().info("Nicko (Bungee) has been disabled.");
}
}
public static NickoBungee getInstance() {