команда /alikbanwawe add ник будет добавлять игрока в список который будет распологатся в файлике banwawe.yml
/alikbanwawe list просмотр этого списка
и всо
Плагина напиши на 1.16.5
Вот код плагина, в него добавь то, что я просил сверху (другое не трогай)
package org.dragonsdamage;

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;

import java.util.*;

public class DragonsEffects extends JavaPlugin implements Listener {

    private final Map<UUID, Double> damageReductionMap = new HashMap<>(); // Карта снижения урона
    private final Set<UUID> elytraDisabledPlayers = new HashSet<>(); // Запрещено использовать элитры
    private final Map<UUID, BukkitRunnable> hotbarTasks = new HashMap<>();
    private final Map<UUID, BukkitRunnable> inventoryTasks = new HashMap<>();

    @Override
    public void onEnable() {
        Bukkit.getPluginManager().registerEvents(this, this);
        getLogger().info("DragonsEffects успешно включён!");
    }

    @Override
    public void onDisable() {
        damageReductionMap.clear();
        elytraDisabledPlayers.clear();

        hotbarTasks.values().forEach(BukkitRunnable::cancel);
        hotbarTasks.clear();
        inventoryTasks.values().forEach(BukkitRunnable::cancel);
        inventoryTasks.clear();

        getLogger().info("DragonsEffects успешно выключён.");
    }

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        switch (command.getName().toLowerCase()) {
            case "alekdamage":
                return handleAlekDamage(sender, args);
            case "alekelitri":
                return handleAlekElitri(sender, args);
            case "alekhotbar":
                return handleAlekHotbar(sender, args);
            case "alekinventory":
                return handleAlekInventory(sender, args);
            default:
                sender.sendMessage("§cНеизвестная команда. Проверьте ввод.");
                return false;
        }
    }

    // --- Реализация /alekdamage ---
    private boolean handleAlekDamage(CommandSender sender, String[] args) {
        if (!sender.hasPermission("dragonseffects.damage")) {
            sender.sendMessage("§cУ вас нет прав на выполнение этой команды!");
            return true;
        }

        if (args.length != 3) {
            sender.sendMessage("§cИспользование: /alekdamage <player> <percent> <time>");
            return true;
        }

        Player target = Bukkit.getPlayerExact(args[0]);
        if (target == null) {
            sender.sendMessage("§cИгрок не найден.");
            return true;
        }

        double percent;
        try {
            percent = Double.parseDouble(args[1]);
            if (percent <= 0 || percent > 100) {
                sender.sendMessage("§cПроцент должен быть от 1 до 100.");
                return true;
            }
        } catch (NumberFormatException e) {
            sender.sendMessage("§cПроцент должен быть числом.");
            return true;
        }

        long duration;
        try {
            duration = parseTime(args[2]);
        } catch (IllegalArgumentException e) {
            sender.sendMessage("§c" + e.getMessage());
            return true;
        }

        UUID targetId = target.getUniqueId();
        double reductionFactor = 1 - (percent / 100.0);

        damageReductionMap.put(targetId, reductionFactor);

        new BukkitRunnable() {
            @Override
            public void run() {
                damageReductionMap.remove(targetId); // Убираем эффект после истечения времени
            }
        }.runTaskLater(this, duration);

        sender.sendMessage("§aСнижение урона для игрока " + target.getName() + " активировано на " + args[2] + ".");
        return true;
    }

    @EventHandler
    public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
        if (event.getDamager() instanceof Player) {
            Player attacker = (Player) event.getDamager();
            UUID attackerId = attacker.getUniqueId();

            if (damageReductionMap.containsKey(attackerId)) {
                double reductionFactor = damageReductionMap.get(attackerId);
                event.setDamage(event.getDamage() * reductionFactor);
            }
        }
    }

    // --- Реализация /alekelitri ---
    private boolean handleAlekElitri(CommandSender sender, String[] args) {
        if (!sender.hasPermission("dragonseffects.elitri")) {
            sender.sendMessage("§cУ вас нет прав на выполнение этой команды!");
            return true;
        }

        if (args.length != 2) {
            sender.sendMessage("§cИспользование: /alekelitri <player> <time>");
            return true;
        }

        Player target = Bukkit.getPlayerExact(args[0]);
        if (target == null) {
            sender.sendMessage("§cИгрок не найден.");
            return true;
        }

        long duration;
        try {
            duration = parseTime(args[1]);
        } catch (IllegalArgumentException e) {
            sender.sendMessage("§c" + e.getMessage());
            return true;
        }

        UUID targetId = target.getUniqueId();
        elytraDisabledPlayers.add(targetId);

        new BukkitRunnable() {
            @Override
            public void run() {
                elytraDisabledPlayers.remove(targetId); // Снимаем эффект после времени
            }
        }.runTaskLater(this, duration);

        sender.sendMessage("§aИгрок " + target.getName() + " не может использовать элитры " + args[1] + ".");
        return true;
    }

    @EventHandler
    public void onPlayerMove(PlayerMoveEvent event) {
        Player player = event.getPlayer();
        if (elytraDisabledPlayers.contains(player.getUniqueId())) {
            if (player.isGliding()) {
                player.setGliding(false); // Принудительно отключаем глайд
            }
        }
    }

    // --- Реализация /alekhotbar ---
    private boolean handleAlekHotbar(CommandSender sender, String[] args) {
        if (!sender.hasPermission("dragonseffects.hotbar")) {
            sender.sendMessage("§cУ вас нет прав на выполнение этой команды!");
            return true;
        }

        if (args.length != 2) {
            sender.sendMessage("§cИспользование: /alekhotbar <player> <time>");
            return true;
        }

        Player target = Bukkit.getPlayerExact(args[0]);
        if (target == null) {
            sender.sendMessage("§cИгрок не найден.");
            return true;
        }

        long duration;
        try {
            duration = parseTime(args[1]);
        } catch (IllegalArgumentException e) {
            sender.sendMessage("§c" + e.getMessage());
            return true;
        }

        UUID targetId = target.getUniqueId();

        if (hotbarTasks.containsKey(targetId)) {
            hotbarTasks.get(targetId).cancel();
            hotbarTasks.remove(targetId);
        }

        BukkitRunnable task = new BukkitRunnable() {
            @Override
            public void run() {
                if (target.isOnline()) {
                    randomizeHotbar(target);
                } else {
                    this.cancel();
                }
            }
        };

        task.runTaskTimer(this, 0, 20);
        hotbarTasks.put(targetId, task);

        new BukkitRunnable() {
            @Override
            public void run() {
                if (hotbarTasks.containsKey(targetId)) {
                    hotbarTasks.get(targetId).cancel();
                    hotbarTasks.remove(targetId);
                }
            }
        }.runTaskLater(this, duration);

        sender.sendMessage("§aЭффект перемешивания хотбара активирован для игрока " + target.getName() + " на " + args[1] + ".");
        return true;
    }

    private void randomizeHotbar(Player player) {
        Inventory inventory = player.getInventory();
        ItemStack[] hotbarItems = new ItemStack[9];

        for (int i = 0; i < 9; i++) {
            hotbarItems[i] = inventory.getItem(i);
        }

        List<ItemStack> shuffledItems = Arrays.asList(hotbarItems);
        Collections.shuffle(shuffledItems);

        for (int i = 0; i < 9; i++) {
            inventory.setItem(i, shuffledItems.get(i));
        }

        player.updateInventory();
    }

    // --- Реализация /alekinventory ---
    private boolean handleAlekInventory(CommandSender sender, String[] args) {
        if (!sender.hasPermission("dragonseffects.inventory")) {
            sender.sendMessage("§cУ вас нет прав на выполнение этой команды!");
            return true;
        }

        if (args.length != 2) {
            sender.sendMessage("§cИспользование: /alekinventory <player> <time>");
            return true;
        }

        Player target = Bukkit.getPlayerExact(args[0]);
        if (target == null) {
            sender.sendMessage("§cИгрок не найден.");
            return true;
        }

        long duration;
        try {
            duration = parseTime(args[1]);
        } catch (IllegalArgumentException e) {
            sender.sendMessage("§c" + e.getMessage());
            return true;
        }

        UUID targetId = target.getUniqueId();

        if (inventoryTasks.containsKey(targetId)) {
            inventoryTasks.get(targetId).cancel();
            inventoryTasks.remove(targetId);
        }

        BukkitRunnable task = new BukkitRunnable() {
            @Override
            public void run() {
                if (target.isOnline()) {
                    randomizeInventory(target);
                } else {
                    this.cancel();
                }
            }
        };

        task.runTaskTimer(this, 0, 20);
        inventoryTasks.put(targetId, task);

        new BukkitRunnable() {
            @Override
            public void run() {
                if (inventoryTasks.containsKey(targetId)) {
                    inventoryTasks.get(targetId).cancel();
                    inventoryTasks.remove(targetId);
                }
            }
        }.runTaskLater(this, duration);

        sender.sendMessage("§aЭффект перемешивания инвентаря активирован для игрока " + target.getName() + " на " + args[1] + ".");
        return true;
    }

    private void randomizeInventory(Player player) {
        Inventory inventory = player.getInventory();
        ItemStack[] items = inventory.getContents();

        List<ItemStack> shuffledItems = Arrays.asList(items);
        Collections.shuffle(shuffledItems);

        inventory.setContents(shuffledItems.toArray(new ItemStack[0]));
        player.updateInventory();
    }

    private long parseTime(String time) throws IllegalArgumentException {
        if (time == null || time.trim().isEmpty()) {
            throw new IllegalArgumentException("Параметр времени не может быть пустым.");
        }

        time = time.trim().toLowerCase();

        if (time.endsWith("m")) {
            try {
                return Long.parseLong(time.replace("m", "")) * 60 * 20;
            } catch (NumberFormatException e) {
                throw new IllegalArgumentException("Некорректное значение минут: " + time);
            }
        } else if (time.endsWith("s")) {
            try {
                return Long.parseLong(time.replace("s", "")) * 20;
            } catch (NumberFormatException e) {
                throw new IllegalArgumentException("Некорректное значение секунд: " + time);
            }
        } else {
            throw new IllegalArgumentException("Неверный формат времени. Используйте '10m' или '30s'.");
        }
    }
}


plugin.yml
name: DragonsEffects
version: 1.4
main: org.dragonsdamage.DragonsEffects
api-version: 1.16
description: Плагин для специальных эффектов снижение урона, эффект элитр, изменяющийся хотбар и инвентарь.
commands:
  alekdamage:
    description: Установить снижение урона игрока.
    usage: /alekdamage <player> <percent> <time>
  alekelitri:
    description: Заставить игрока взлетать и падать.
    usage: /alekelitri <player> <time>
  alekhotbar:
    description: Перемешивать хотбар и предотвращать его использование.
    usage: /alekhotbar <player> <time>
  alekinventory:
    description: Перемешивать весь инвентарь указанного игрока.
    usage: /alekinventory <player> <time>
permissions:
  dragonseffects.damage:
    default: op
    description: Позволяет использовать /alekdamage.
  dragonseffects.elitri:
    default: op
    description: Позволяет использовать /alekelitri.
  dragonseffects.hotbar:
    default: op
    description: Позволяет использовать /alekhotbar.
  dragonseffects.inventory:
    default: op
    description: Позволяет использовать /alekinventory.