Spigot Plugin

GlacialCrownPlugin

.2. Glacial Crown minecraft:diamond_helmet GLACIAL CROWN SKILLS ➜ 20% Chance to chill enemies ➜ 1st Ability Keybind to create an ice ring that damages opponents [1 heart every tick] , Radius = (6) . Duration = 30 secs . Cooldown of the ability = 1 minute ➜ 2nd Ability on a player to freeze them in place for 15s, Unbreakable #commands command to obtain the glacial crow = [/obtaincrownin crown glacial] (operator olny) command to use the first ability = [/glacial power 1 ] command to use second ability = [/glacial power 2 ] #particles

Read the full description

the player while wearing the glaical crown . make a (white icey particles) type of aura around the player while using the ring ability make a white icy ring shape particles when you freeze a player then make some white icy particles around the player who is freezed

src/main/java/eu/codexe/glacialcrownplugin/GlacialCrownPlugin.java
package eu.codexe.glacialcrownplugin;

import eu.codexe.glacialcrownplugin.commands.GiveCrownCommand;
import eu.codexe.glacialcrownplugin.commands.GlacialCommand;
import eu.codexe.glacialcrownplugin.listeners.CrownParticlesListener;
import eu.codexe.glacialcrownplugin.listeners.FrozenMovementListener;
import eu.codexe.glacialcrownplugin.managers.CrownManager;
import eu.codexe.glacialcrownplugin.managers.EffectManager;
import eu.codexe.glacialcrownplugin.utils.ConfigManager;
import eu.codexe.glacialcrownplugin.utils.MessageManager;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;

import java.util.Objects;

public class GlacialCrownPlugin extends JavaPlugin {

    private ConfigManager configManager;
    private MessageManager messageManager;
    private CrownManager crownManager;
    private EffectManager effectManager;

    @Override
    public void onEnable() {
        saveDefaultConfig();

        this.configManager = new ConfigManager(this);
        this.messageManager = new MessageManager(this);
        this.crownManager = new CrownManager(this, configManager, messageManager);
        this.effectManager = new EffectManager(this, configManager, messageManager, crownManager);

        registerCommands();
        registerListeners();

        Bukkit.getScheduler().runTaskTimer(this, effectManager::tick, 1L, 1L);
    }

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

    private void registerCommands() {
        Objects.requireNonNull(getCommand("obtaincrownin"), "Command obtaincrownin missing from plugin.yml")
                .setExecutor(new GiveCrownCommand(crownManager, messageManager));
        Objects.requireNonNull(getCommand("glacial"), "Command glacial missing from plugin.yml")
                .setExecutor(new GlacialCommand(crownManager, effectManager, messageManager));
    }

    private void registerListeners() {
        Bukkit.getPluginManager().registerEvents(new CrownParticlesListener(crownManager, effectManager), this);
        Bukkit.getPluginManager().registerEvents(new FrozenMovementListener(effectManager, messageManager), this);
    }
}