package com.alttd.playerutils; import com.alttd.playerutils.commands.PlayerUtilsCommand; import com.alttd.playerutils.commands.playerutils_subcommands.RotateBlock; import com.alttd.playerutils.config.Config; import com.alttd.playerutils.config.KeyStorage; import com.alttd.playerutils.config.Messages; import com.alttd.playerutils.event_listeners.*; import com.alttd.playerutils.util.Logger; import org.bukkit.Bukkit; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; import java.util.concurrent.TimeUnit; public final class PlayerUtils extends JavaPlugin { private Logger logger; private PlayerUtilsCommand playerUtilsCommand; @Override public void onEnable() { this.logger = new Logger(getLogger()); registerCommands(); registerEvents(); reloadConfigs(); registerSchedulers(); } @Override public void onDisable() { KeyStorage.STORAGE.save(); } private void registerCommands() { playerUtilsCommand = new PlayerUtilsCommand(this, logger); } private void registerEvents() { PluginManager pluginManager = getServer().getPluginManager(); pluginManager.registerEvents(new XpBottleEvent(this, logger), this); pluginManager.registerEvents(new TeleportEvent(), this); pluginManager.registerEvents(new GoatHornEvent(logger), this); pluginManager.registerEvents(new LimitArmorStands(this, logger), this); RotateBlockEvent rotateBlockEvent = new RotateBlockEvent(logger); pluginManager.registerEvents(rotateBlockEvent, this); playerUtilsCommand.addSubCommand(new RotateBlock(rotateBlockEvent)); } public void reloadConfigs() { Config.reload(logger); Messages.reload(logger); KeyStorage.reload(logger); } private void registerSchedulers() { Bukkit.getScheduler().runTaskTimerAsynchronously(this, KeyStorage.STORAGE::save, TimeUnit.MINUTES.toSeconds(5) * 20, TimeUnit.MINUTES.toSeconds(5) * 20); } }