Spigot Plugin
DungeonCompass
плагин на на майнкрафт Версия: Purpur 1.21.11 не надо создавать для 1.21.1 версия 1.21.11 уже есть что должен делать плагин плагин добавляет новый функционал компасу .Он должен показывать ближайшую структуру данжа из local structure . Как должно работать игрок ерет в руку компас и над полоской опыта появляется что то типа счетчика который показывает расстояния до ближайший структуре .
src/main/java/eu/codexe/dungeoncompass/DungeonCompassPlugin.java
package eu.codexe.dungeoncompass;
import eu.codexe.dungeoncompass.commands.DungeonCompassCommand;
import eu.codexe.dungeoncompass.listeners.CompassListener;
import eu.codexe.dungeoncompass.managers.MessageManager;
import eu.codexe.dungeoncompass.managers.PluginConfig;
import eu.codexe.dungeoncompass.managers.StructureManager;
import eu.codexe.dungeoncompass.storage.MysqlStorage;
import eu.codexe.dungeoncompass.storage.SqliteStorage;
import eu.codexe.dungeoncompass.storage.StorageManager;
import eu.codexe.dungeoncompass.storage.YamlStorage;
import org.bukkit.command.PluginCommand;
import org.bukkit.plugin.java.JavaPlugin;
public final class DungeonCompassPlugin extends JavaPlugin {
private PluginConfig pluginConfig;
private MessageManager messageManager;
private StorageManager storageManager;
private StructureManager structureManager;
@Override
public void onEnable() {
saveDefaultConfig();
saveResourceIfMissing("messages.yml");
pluginConfig = new PluginConfig(this);
messageManager = new MessageManager(this);
storageManager = createStorage();
structureManager = new StructureManager(this, storageManager, pluginConfig, messageManager);
try {
storageManager.initialize();
} catch (Exception exception) {
getLogger().severe("Не удалось открыть хранилище: " + exception.getMessage());
getServer().getPluginManager().disablePlugin(this);
return;
}
CompassListener listener = new CompassListener(this, structureManager, pluginConfig, messageManager);
getServer().getPluginManager().registerEvents(listener, this);
PluginCommand command = getCommand("dungeoncompass");
if (command != null) {
DungeonCompassCommand executor = new DungeonCompassCommand(
this, structureManager, pluginConfig, messageManager);
command.setExecutor(executor);
command.setTabCompleter(executor);
}
listener.start();
getLogger().info("DungeonCompass включён.");
}
@Override
public void onDisable() {
if (storageManager != null) {
try {
storageManager.close();
} catch (Exception exception) {
getLogger().warning("Ошибка закрытия хранилища: " + exception.getMessage());