58 lines
2.7 KiB
Java
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");
|
|
}
|
|
}
|