VillagerShopUI/src/main/java/com/alttd/VillagerUI.java

125 lines
4.3 KiB
Java
Raw Normal View History

2021-09-24 23:56:42 +00:00
package com.alttd;
import com.alttd.GUI.GUIListener;
import com.alttd.commands.CommandManager;
import com.alttd.database.Database;
2021-09-24 23:56:42 +00:00
import com.alttd.config.Config;
import com.alttd.config.VillagerConfig;
import com.alttd.config.WorthConfig;
2021-12-31 17:44:32 +00:00
import com.alttd.database.Queries;
2023-01-03 21:51:50 +00:00
import com.alttd.datalock.DataLockAPI;
import com.alttd.events.*;
import com.alttd.logging.LogInOut;
import com.alttd.objects.EconUser;
import com.alttd.util.Logger;
import net.milkbowl.vault.economy.Economy;
2021-11-10 19:29:27 +00:00
import org.bukkit.Bukkit;
import org.bukkit.plugin.RegisteredServiceProvider;
2021-09-24 23:56:42 +00:00
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;
2021-09-24 23:56:42 +00:00
public class VillagerUI extends JavaPlugin {
public static VillagerUI instance;
2021-11-10 19:29:27 +00:00
private Economy economy = null;
private LogInOut logInOut;
2021-09-24 23:56:42 +00:00
public static VillagerUI getInstance() {
return instance;
}
@Override
public void onLoad() {
instance = this;
}
@Override
public void onEnable() {
logInOut = new LogInOut();
2021-09-24 23:56:42 +00:00
registerEvents();
new CommandManager();
Config.reload();
VillagerConfig.reload();
WorthConfig.reload();
2021-11-10 19:29:27 +00:00
if (!setupEconomy())
return;
2021-11-17 18:32:21 +00:00
Database.getDatabase().init();
scheduleTasks();
2023-01-03 21:51:50 +00:00
DataLockAPI dataLockAPI = DataLockAPI.get();
if (dataLockAPI == null) {
Logger.severe("Unable to load datalockapi");
} else if (dataLockAPI.isActiveChannel("villagerui:player-data")) {
Logger.warning("Unable to register aquest channel");
} else {
dataLockAPI.registerChannel("villagerui:player-data");
2022-05-15 20:39:08 +00:00
}
Logger.info("--------------------------------------------------");
Logger.info("Villager UI started");
Logger.info("--------------------------------------------------");
2021-09-24 23:56:42 +00:00
}
2021-12-31 17:44:32 +00:00
@Override
public void onDisable() {
EconUser.getEconUsers().forEach(econUser -> {
if (Config.DEBUG)
Logger.info("Syncing %", econUser.getUuid().toString());
Queries.updateUserPoints(econUser.getUuid(), econUser.getPointsMap());
});
logInOut.run();
2021-12-31 17:44:32 +00:00
}
private void scheduleTasks() {
new BukkitRunnable() {
@Override
public void run() {
2021-12-23 02:14:08 +00:00
if (Config.DEBUG)
Logger.info("Syncing users.");
EconUser.getEconUsers().forEach(econUser -> {
2021-12-31 17:44:32 +00:00
if (econUser == null)
return;
2021-12-23 15:13:17 +00:00
if (Config.DEBUG)
Logger.info("Syncing %", econUser.getUuid().toString());
econUser.removePoints();
econUser.syncPoints();
});
}
2021-12-23 01:18:23 +00:00
}.runTaskTimerAsynchronously(getInstance(), 0L, 10 * 60 * 20L);
logInOut.runTaskTimerAsynchronously(this, 20 * 60 * 5, 20 * 60 * 10);
}
2021-09-24 23:56:42 +00:00
private void registerEvents() {
getServer().getPluginManager().registerEvents(new GUIListener(), this);
2021-12-23 02:15:38 +00:00
getServer().getPluginManager().registerEvents(new VillagerEvents(), this);
getServer().getPluginManager().registerEvents(new LogoutEvent(), this);
getServer().getPluginManager().registerEvents(new LoginEvent(), this);
getServer().getPluginManager().registerEvents(new VehicleEvent(), this);
getServer().getPluginManager().registerEvents(new SpawnShopListener(logInOut), this);
2023-01-03 21:51:50 +00:00
getServer().getPluginManager().registerEvents(new DataLock(), this);
2021-09-24 23:56:42 +00:00
}
2021-11-10 19:29:27 +00:00
public Economy getEconomy() {
if(economy == null)
setupEconomy();
return economy;
}
2021-11-10 19:29:27 +00:00
private boolean setupEconomy() {
if (Bukkit.getPluginManager().getPlugin("Vault") == null) {
this.getLogger().severe("Vault was not found. Please download vault.");
Bukkit.getPluginManager().disablePlugin(this);
return false;
} else {
RegisteredServiceProvider rsp = this.getServer().getServicesManager().getRegistration(Economy.class);
if (rsp == null) {
this.getLogger().severe("Can't find economy! Disabling plugin.");
Bukkit.getPluginManager().disablePlugin(this);
return false;
} else {
this.economy = (Economy)rsp.getProvider();
return this.economy != null;
}
}
}
2021-09-24 23:56:42 +00:00
}