package me.sashegdev.blackknife; import org.bukkit.plugin.java.JavaPlugin; public class BlackKnifePlugin extends JavaPlugin { private TensionManager tension; private MagicManager magicManager; private MagicListener magicListener; private ChatConfig chatConfig; private ChatHandler chatHandler; private String lang = "ru"; @Override public void onEnable() { saveDefaultConfig(); lang = getConfig().getString("lang", "ru"); tension = new TensionManager(); magicManager = new MagicManager(this); magicListener = new MagicListener(this, magicManager); chatConfig = new ChatConfig(this); chatHandler = new ChatHandler(this, chatConfig); getServer().getPluginManager().registerEvents(tension, this); getServer().getPluginManager().registerEvents(new BlackKnifeListener(this), this); getServer().getPluginManager().registerEvents(new SwoonHandler(this), this); getServer().getPluginManager().registerEvents(new AttackTpListener(tension), this); getServer().getPluginManager().registerEvents(new KnockedHandler(this), this); getServer().getPluginManager().registerEvents(new ParryHandler(this), this); getServer().getPluginManager().registerEvents(magicListener, this); getServer().getPluginManager().registerEvents(chatHandler, this); getServer().getPluginManager().registerEvents(new KillMessageHandler(this), this); getCommand("blackknife").setExecutor(new BlackKnifeCommand(this, chatConfig, chatHandler)); getCommand("magic").setExecutor(new MagicCommand(magicManager, this)); getServer().getScheduler().runTaskTimer(this, () -> tension.tickShield(), 20L, 1L); getLogger().info("BlackKnife 1.0.0 enabled - Paper 1.21.1 lang=" + lang); } public TensionManager getTension() { return tension; } public MagicManager getMagicManager() { return magicManager; } public MagicListener getMagicListener() { return magicListener; } public String getLang() { return lang; } @Override public void onDisable() { getServer().getScheduler().cancelTasks(this); if (tension != null) { tension.hideAll(); for (var p : getServer().getOnlinePlayers()) { var copy = new java.util.ArrayList(); for (var b : p.activeBossBars()) copy.add(b); for (var bar : copy) p.hideBossBar(bar); } } if (magicManager != null) magicManager.saveAll(); int removed = EntityTracker.cleanup(this); getLogger().info("BlackKnife disabled, cleaned " + removed + " entities"); } }