Essentia/plugin/src/main/java/com/alttd/essentia/EssentiaPlugin.java
2024-07-28 12:52:55 +02:00

91 lines
3.2 KiB
Java

package com.alttd.essentia;
import com.alttd.essentia.commands.admin.*;
import com.alttd.essentia.commands.player.*;
import com.alttd.essentia.configuration.Config;
import com.alttd.essentia.listeners.PlayerListener;
import com.alttd.essentia.storage.StorageManager;
import com.alttd.essentia.storage.StorageProvider;
import com.alttd.essentia.storage.StorageType;
import com.alttd.essentia.user.EssentiaUserManager;
import com.alttd.essentia.api.user.UserManager;
import lombok.Getter;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
public class EssentiaPlugin extends JavaPlugin implements EssentiaAPI {
@Getter
private static EssentiaPlugin instance;
@Getter
private UserManager userManager;
@Getter
private StorageProvider storageProvider;
@Override
public void onLoad() {
instance = this;
EssentiaAPI.Provider.register(instance);
}
@Override
public void onEnable() {
loadConfiguration();
loadCommands();
loadEventListeners();
loadManagers();
loadStorageProvider();
}
@Override
public void onDisable() {
getServer().getScheduler().cancelTasks(this);
userManager().saveAllUsers();
storageProvider().disable();
}
public void loadConfiguration() {
Config.init();
}
void loadCommands() {
getCommand("essentia").setExecutor(new EssentiaCommand(this));
getCommand("teleportaccept").setExecutor(new TeleportAcceptCommand(this));
getCommand("teleportdeny").setExecutor(new TeleportDenyCommand(this));
getCommand("teleportrequest").setExecutor(new TeleportRequestCommand(this));
getCommand("teleportrequesthere").setExecutor(new TeleportRequestHereCommand(this));
getCommand("teleporttoggle").setExecutor(new TeleportToggleCommand(this));
getCommand("clearinventory").setExecutor(new ClearInventoryCommand(this));
getCommand("home").setExecutor(new HomeCommand(this));
getCommand("homes").setExecutor(new HomeListCommand(this));
getCommand("sethome").setExecutor(new SetHomeCommand(this));
getCommand("deletehome").setExecutor(new DelHomeCommand(this));
getCommand("back").setExecutor(new BackCommand(this));
getCommand("deathback").setExecutor(new DeathBackCommand(this));
getCommand("fly").setExecutor(new FlyCommand(this));
getCommand("gamemode").setExecutor(new GamemodeCommand(this));
getCommand("heal").setExecutor(new HealCommand(this));
getCommand("feed").setExecutor(new FeedCommand(this));
getCommand("enchant").setExecutor(new EnchantCommand(this));
getCommand("spawn").setExecutor(new SpawnCommand(this));
}
void loadEventListeners() {
final PluginManager pluginManager = getServer().getPluginManager();
pluginManager.registerEvents(new PlayerListener(this), this);
}
void loadManagers() {
userManager = new EssentiaUserManager(this);
}
void loadStorageProvider() {
StorageManager storageManager = new StorageManager(this);
storageProvider = storageManager.storageProvider(StorageType.valueOf(Config.STORAGE_TYPE.toUpperCase()));
storageProvider.startAutoSaving();
}
}