Files
DeltaMine/src/main/java/me/sashegdev/blackknife/BlackKnifePlugin.java
T

58 lines
2.7 KiB
Java

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<net.kyori.adventure.bossbar.BossBar>();
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");
}
}