feat: BlackKnife DeltaMine v1.0.0 - Paper 1.21.1 SWOON/Stars/Sword/Diamond/Lunge/Snipe/Tri/Overhead + Magic 4commons Parry chat 400words +12h updates

This commit is contained in:
SashegDev
2026-08-27 01:55:05 +03:00
commit 10faf5679f
29 changed files with 2681 additions and 0 deletions
@@ -0,0 +1,52 @@
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;
@Override
public void onEnable() {
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);
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");
}
public TensionManager getTension() { return tension; }
public MagicManager getMagicManager() { return magicManager; }
public MagicListener getMagicListener() { return magicListener; }
@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");
}
}