Spigot Plugin

AxiomH

Create a premium Minecraft plugin called **AxiomH**. Platform: - Paper 1.21.4 - 1.21.8 - Java 21 - Folia support - Maven project - No compilation errors - Deliver a fully working .jar This must look and feel like a real premium plugin similar to FancyHolograms. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ MAIN FEATURE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Command: /axiomh create <text> Example: /axiomh create &#91F454&lC&#8FE854&lR&#8EDB54&lA&#8CCF54&lT&#8BC254&lE&#89B654&lS The hologram is created exactly where the player is looking using ray tracing. If looking at a block:

Read the full description

Spawn slightly above that block. If looking into the air: Spawn 5 blocks in front of the player. The hologram never moves after being created. Supports: ✔ Unlimited lines ✔ Unlimited text length ✔ HEX colors ✔ RGB ✔ Legacy colors ✔ MiniMessage ✔ Gradients ✔ Bold ✔ Italic ✔ Underline ✔ Strikethrough ✔ Obfuscated text Black background behind text. Visibility distance: 100 blocks. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ COMMAND SYSTEM ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Create a professional command system exactly like a premium plugin. Base command: /axiomh Subcommands: /axiomh help /axiomh create <text> /axiomh delete <id> /axiomh remove <id> /axiomh edit <id> /axiomh rename <id> <text> /axiomh addline <id> <text> /axiomh removeline <id> <line> /axiomh setline <id> <line> <text> /axiomh move <id> /axiomh teleport <id> /axiomh tp <id> /axiomh list /axiomh nearby /axiomh reload /axiomh info <id> Every command must: ✔ Have permissions ✔ Have tab completion ✔ Have usage messages ✔ Have success messages ✔ Have error messages ✔ Validate arguments ✔ Never throw console errors Example: /axiomh help Shows: ━━━━━━━━━━━━━━━━━━ AxiomH Commands ━━━━━━━━━━━━━━━━━━ /axiomh create <text> Create a hologram. /axiomh delete <id> Delete a hologram. /axiomh edit <id> Open editor GUI. /axiomh move <id> Move hologram. /axiomh tp <id> Teleport to hologram. /axiomh list List all holograms. /axiomh reload Reload configuration. ━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ GUI ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Beautiful modern inventory GUI. Edit: Rename Edit text Add line Remove line Duplicate Delete Animations Visibility Background Preview ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ PERMISSIONS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ axiomh.admin axiomh.help axiomh.create axiomh.delete axiomh.edit axiomh.move axiomh.teleport axiomh.reload axiomh.list ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ PERFORMANCE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Extremely optimized. Support over 10,000 holograms. Chunk loading. Async loading. Async saving. SQLite. Optional MySQL. Memory cache. Zero lag. Folia compatible. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ CONFIG ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ config.yml messages.yml database.yml animations.yml Support hot reload. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ PLUGIN QUALITY ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Write production-quality Java code. Use clean OOP architecture. Split classes correctly. No code duplication. No memory leaks. No deprecated Paper API. No warnings. No placeholder code. No TODOs. Generate a complete premium-quality plugin identical in quality to FancyHolograms, with every command fully functional, a professional help menu, proper permissions, tab completion, configuration files, and build a fully working .jar.

src/main/java/eu/codexe/axiomh/AxiomHPlugin.java
package eu.codexe.axiomh;

import eu.codexe.axiomh.commands.AxiomHCommand;
import eu.codexe.axiomh.gui.HologramEditorGui;
import eu.codexe.axiomh.listeners.PlayerJoinListener;
import eu.codexe.axiomh.managers.ConfigManager;
import eu.codexe.axiomh.managers.HologramManager;
import eu.codexe.axiomh.managers.MessageManager;
import eu.codexe.axiomh.storage.StorageManager;
import eu.codexe.axiomh.storage.StorageType;
import eu.codexe.axiomh.storage.YamlStorage;
import eu.codexe.axiomh.storage.SqliteStorage;
import eu.codexe.axiomh.utils.CommandRegistry;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;

public final class AxiomHPlugin extends JavaPlugin {

    private ConfigManager configManager;
    private MessageManager messageManager;
    private StorageManager storageManager;
    private HologramManager hologramManager;
    private HologramEditorGui editorGui;

    @Override
    public void onEnable() {
        saveDefaultConfig();
        saveResource("database.yml", false);
        saveResource("animations.yml", false);

        this.configManager = new ConfigManager(this);
        this.messageManager = new MessageManager(this);
        this.storageManager = createStorage();
        this.hologramManager = new HologramManager(this, storageManager);
        this.editorGui = new HologramEditorGui(this, hologramManager);

        storageManager.load();
        hologramManager.loadAll();

        AxiomHCommand command = new AxiomHCommand(this, hologramManager, editorGui);
        CommandRegistry.register(this, "axiomh", command);

        Bukkit.getPluginManager().registerEvents(new PlayerJoinListener(hologramManager), this);

        getLogger().info("AxiomH enabled.");
    }

    @Override
    public void onDisable() {
        if (hologramManager != null) {
            hologramManager.shutdown();
        }
        if (storageManager != null) {
            storageManager.shutdown();
        }
    }

    public void reloadAll() {
        reloadConfig();
        configManager.reload();