81 lines
2.9 KiB
Java
81 lines
2.9 KiB
Java
package com.alttd.fishingevent;
|
|
|
|
import com.alttd.fishingevent.commands.FishCommand;
|
|
import com.alttd.fishingevent.config.Config;
|
|
import com.alttd.fishingevent.config.Fishes;
|
|
import com.alttd.fishingevent.config.Messages;
|
|
import com.alttd.fishingevent.config.NPCLocationConfig;
|
|
import com.alttd.fishingevent.fish_generator.FishGenerator;
|
|
import com.alttd.fishingevent.gui.GUIListener;
|
|
import com.alttd.fishingevent.listeners.CatchFish;
|
|
import com.alttd.fishingevent.npc.NPCManager;
|
|
import com.alttd.fishingevent.objects.RarityManager;
|
|
import com.alttd.fishingevent.points.LoadTask;
|
|
import com.alttd.fishingevent.points.PointsManagement;
|
|
import com.alttd.fishingevent.points.SaveTask;
|
|
import com.alttd.fishingevent.scoreboard.ScoreboardManager;
|
|
import com.alttd.fishingevent.util.Logger;
|
|
import dev.sergiferry.playernpc.api.NPCLib;
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.plugin.PluginManager;
|
|
import org.bukkit.plugin.java.JavaPlugin;
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
public final class FishingEvent extends JavaPlugin {
|
|
|
|
private Logger logger;
|
|
private SaveTask saveTask;
|
|
|
|
@Override
|
|
public void onEnable() {
|
|
this.logger = new Logger(getLogger());
|
|
if (!loadNPCLib()) {
|
|
logger.severe("NPC Lib failed to load, shutting down plugin...");
|
|
Bukkit.getPluginManager().disablePlugin(this);
|
|
return;
|
|
}
|
|
reloadFishConfigs();
|
|
registerEvents(getServer().getPluginManager());
|
|
ScoreboardManager.getInstance();
|
|
if (new LoadTask(PointsManagement.getInstance(), this, logger).loadOldPointsData())
|
|
logger.info("Loaded old points data");
|
|
saveTask = new SaveTask(PointsManagement.getInstance(), this, logger);
|
|
Bukkit.getScheduler().runTaskTimerAsynchronously(this, saveTask,
|
|
TimeUnit.MINUTES.toSeconds(1) * 20,
|
|
TimeUnit.MINUTES.toSeconds(1) * 20);
|
|
registerCommands();
|
|
NPCManager.spawnNPCs(this, logger);
|
|
}
|
|
|
|
private boolean loadNPCLib() {
|
|
NPCLib instance = NPCLib.getInstance();
|
|
if (instance == null)
|
|
return false;
|
|
NPCLib.PluginManager pluginManager = instance.registerPlugin(this);
|
|
return pluginManager != null;
|
|
}
|
|
|
|
@Override
|
|
public void onDisable() {
|
|
saveTask.run();
|
|
}
|
|
|
|
private void registerEvents(@NotNull PluginManager pluginManager) {
|
|
pluginManager.registerEvents(new CatchFish(this, logger, new FishGenerator(new RarityManager(Config.RARITY.RARITY_SET), logger), PointsManagement.getInstance()), this);
|
|
pluginManager.registerEvents(new GUIListener(), this);
|
|
}
|
|
|
|
private void registerCommands() {
|
|
new FishCommand(this, logger);
|
|
}
|
|
|
|
public void reloadFishConfigs() {
|
|
Config.reload(this, logger);
|
|
Fishes.reload(this, logger);
|
|
Messages.reload(this, logger);
|
|
NPCLocationConfig.reload(this, logger);
|
|
}
|
|
}
|