Начинающий разработчик ищет проект для сотрудничества. Готов писать плагины бесплатно

это какой промпт дать надо

“напиши аукцион для люми java пжпжпжпж”

желание обучаться никогда не заостряет нейросети, это просто ■■■■■ от которой ты наоборот деградируешь

1 лайк

ага нейронка писала я сам писал нейронка не сможет 10 ка строк написать кода вот часть кода package com.example.rankkit;

import cn.nukkit.Player;
import cn.nukkit.Server;
import cn.nukkit.command.Command;
import cn.nukkit.command.CommandSender;
import cn.nukkit.form.element.ElementButton;
import cn.nukkit.form.handler.FormResponseHandler;
import cn.nukkit.form.window.FormWindowSimple;
import cn.nukkit.item.Item;
import cn.nukkit.item.enchantment.Enchantment;
import cn.nukkit.nbt.tag.CompoundTag;
import cn.nukkit.potion.Potion;
import cn.nukkit.utils.TextFormat;
import com.chelimus4078.RankManagerNukkitMOT;
import me.iwareq.fakeinventories.FakeInventory;
import cn.nukkit.inventory.InventoryType;
import cn.nukkit.utils.Config;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

public class KitManager extends Command {
private final RankManagerNukkitMOT rankManager;
private final RankKitMain plugin;
private final Config kitsConfig;
private static final Item RED_STAINED_GLASS_PANE = Item.get(Item.STAINED_GLASS_PANE, 14, 1);
private final Map<UUID, String> playerKitContext = new HashMap<>();

private static final String[] KITS = {
        "start", "titan", "olympus", "zeus", "mystic", "legendary", "inferno",
        "cosmic", "earthkeeper", "warlord", "immortal", "celestial", "ares",
        "dstaff", "youtube", "tiktok", "helper", "moder", "sr_moder",
        "admin", "sr_admin", "curator", "manager", "root"
};

public KitManager(RankKitMain plugin, RankManagerNukkitMOT rankManager) {
    super("kit", TextFormat.GREEN + "Выбрать кит", TextFormat.YELLOW + "/kit");
    this.plugin = plugin;
    this.rankManager = rankManager;
    this.kitsConfig = plugin.getKitsConfig();
}

@Override
public boolean execute(CommandSender sender, String commandLabel, String[] args) {
    if (!(sender instanceof Player)) {
        sender.sendMessage(TextFormat.RED + "Эта команда только для игроков.");
        return true;
    }

    Player player = (Player) sender;
    showKitSelectionForm(player);
    return true;
}

private void showKitSelectionForm(Player player) {
    FormWindowSimple form = new FormWindowSimple(TextFormat.AQUA + "Наборы", TextFormat.WHITE + "Выберите кит для просмотра или получения:");
    for (String kit : KITS) {
        form.addButton(new ElementButton(getKitDisplayName(kit)));
    }

    form.addHandler(FormResponseHandler.withoutPlayer(ignored -> {
        if (form.wasClosed()) return;
        int clickedButton = form.getResponse().getClickedButtonId();
        if (clickedButton >= 0 && clickedButton < KITS.length) {
            playerKitContext.put(player.getUniqueId(), KITS[clickedButton]);
            showKitActionForm(player, KITS[clickedButton]);
        }
    }));

    player.showFormWindow(form);
}

private void showKitActionForm(Player player, String kitName) {
    String playerRank = rankManager.getPlayerRank(player);
    if (playerRank == null) {
        playerRank = "player";
    }
    final String finalPlayerRank = playerRank.toLowerCase();
    String playerName = player.getName().toLowerCase();
    
    String kitForRank = getKitForRank(finalPlayerRank);
    boolean canClaim = kitForRank.equals(kitName);
    
    String savedRank = kitsConfig.getString(playerName + "." + kitName + ".rank", "");
    boolean isClaimed = kitsConfig.getBoolean(playerName + "." + kitName + ".claimed", false);
    
    if (!savedRank.equals(finalPlayerRank)) {
        kitsConfig.set(playerName + "." + kitName + ".claimed", false);
        kitsConfig.set(playerName + "." + kitName + ".rank", finalPlayerRank);
        kitsConfig.save();
        isClaimed = false;
    }
    
    final boolean finalIsClaimed = isClaimed;
    
    FormWindowSimple form = new FormWindowSimple(TextFormat.AQUA + "Кит: " + kitName,
            TextFormat.WHITE + "Выберите действие:\n" +
                    (canClaim ? TextFormat.GREEN + "Кит доступен для получения" : TextFormat.RED + "Кит недоступен для вашего ранга") + "\n" +
                    (finalIsClaimed ? TextFormat.RED + "Кит уже получен" : TextFormat.GREEN + "Кит еще не получен"));

    form.addButton(new ElementButton(TextFormat.GREEN + "Посмотреть содержимое"));
    form.addButton(new ElementButton(canClaim && !finalIsClaimed ? TextFormat.YELLOW + "Получить кит" : TextFormat.RED + (finalIsClaimed ? "Уже получен" : "Недоступно")));
    form.addButton(new ElementButton(TextFormat.MATERIAL_NETHERITE + "Назад"));

    form.addHandler(FormResponseHandler.withoutPlayer(ignored -> {
        if (form.wasClosed()) return;
        int clickedButton = form.getResponse().getClickedButtonId();
        String currentKit = playerKitContext.getOrDefault(player.getUniqueId(), kitName);
        if (clickedButton >= 0 && clickedButton <= 2) {
            switch (clickedButton) {
                case 0: 
                    showKitContents(player, currentKit);
                    break;
                case 1: 
                    if (canClaim && !finalIsClaimed) {
                        claimKit(player, currentKit);
                        kitsConfig.set(playerName + "." + currentKit + ".claimed", true);
                        kitsConfig.set(playerName + "." + currentKit + ".rank", finalPlayerRank);
                        kitsConfig.save();
                        player.sendMessage(TextFormat.GREEN + "✔ Кит " + currentKit + " получен!");
                    } else {
                        player.sendMessage(TextFormat.RED + "✘ Вы не можете получить этот кит: " +
                                (finalIsClaimed ? "кит уже получен" : "недостаточно прав"));
                    }
                    break;
                case 2: 
                    showKitSelectionForm(player);
                    break;
            }
        }
        playerKitContext.remove(player.getUniqueId());
    }));

    player.showFormWindow(form);
}

private void showKitContents(Player player, String kitName) {
    switch (kitName.toLowerCase()) {
        case "start":
            populateStartKitContents(player);
            break;
        case "titan":
            populateTitanKitContents(player);
            break;
        case "olympus":
            populateOlympusKitContents(player);
            break;
        case "zeus":
            populateZeusKitContents(player);
            break;
        case "mystic":
            populateMysticKitContents(player);
            break;
        case "legendary":
            populateLegendaryKitContents(player);
            break;
        case "inferno":
            populateInfernoKitContents(player);
            break;
        case "cosmic":
            populateCosmicKitContents(player);
            break;
        case "earthkeeper":
            populateEarthkeeperKitContents(player);
            break;
        case "warlord":
            populateWarlordKitContents(player);
            break;
        case "immortal":
            populateImmortalKitContents(player);
            break;
        case "celestial":
            populateCelestialKitContents(player);
            break;
        case "ares":
            populateAresKitContents(player);
            break;
        case "dstaff":
            populateDstaffKitContents(player);
            break;
        case "youtube":
            populateYoutubeKitContents(player);
            break;
        case "tiktok":
            populateTiktokKitContents(player);
            break;
        case "helper":
            populateHelperKitContents(player);
            break;
        case "moder":
            populateModerKitContents(player);
            break;
        case "sr_moder":
            populateSrModerKitContents(player);
            break;
        case "admin":
            populateAdminKitContents(player);
            break;
        case "sr_admin":
            populateSrAdminKitContents(player);
            break;
        case "curator":
            populateCuratorKitContents(player);
            break;
        case "manager":
            populateManagerKitContents(player);
            break;
        case "root":
            populateRootKitContents(player);
            break;
        default:
            player.sendMessage(TextFormat.RED + "Кит " + kitName + " не найден!");
    }
}


private FakeInventory createKitInventory(Player player, String kitName) {
    FakeInventory chest = new FakeInventory(InventoryType.DOUBLE_CHEST, TextFormat.AQUA + "Кит: " + kitName);

    chest.setDefaultItemHandler((item, event) -> {
        event.setCancelled(true);
        player.sendMessage(TextFormat.YELLOW + "Нельзя взять предметы из просмотра кита!");
    });

    Item glassPane = RED_STAINED_GLASS_PANE.clone();
    glassPane.addEnchantment(Enchantment.getEnchantment(Enchantment.ID_PROTECTION_ALL));
    glassPane.setCustomName(TextFormat.GRAY + "Декорация");
    int[] borderSlots = {9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 28, 37, 46};
    for (int slot : borderSlots) {
        chest.setItem(slot, glassPane);
    }

    Item arrow = Item.get(Item.ARROW, 0, 1).setCustomName(TextFormat.RED + "Назад");
    chest.setItem(53, arrow, (item, event) -> {
        event.setCancelled(true);
        player.removeWindow(chest);
        Server.getInstance().getScheduler().scheduleDelayedTask(plugin, new Runnable() {
            @Override
            public void run() {
                showKitActionForm(player,kitName);
            }
        }, 20); 
    });

    return chest;
}

private void claimKit(Player player, String kitName) {
    switch (kitName.toLowerCase()) {
        case "start":
            kitStart(player);
            break;
        case "titan":
            kitTitan(player);
            break;
        case "olympus":
            kitOlympus(player);
            break;
        case "zeus":
            kitZeus(player);
            break;
        case "mystic":
            kitMystic(player);
            break;
        case "legendary":
            kitLegendary(player);
            break;
        case "inferno":
            kitInferno(player);
            break;
        case "cosmic":
            kitCosmic(player);
            break;
        case "earthkeeper":
            kitEarthkeeper(player);
            break;
        case "warlord":
            kitWarlord(player);
            break;
        case "immortal":
            kitImmortal(player);
            break;
        case "celestial":
            kitCelestial(player);
            break;
        case "ares":
            kitAres(player);
            break;
        case "dstaff":
            kitDstaff(player);
            break;
        case "youtube":
            kitYoutube(player);
            break;
        case "tiktok":
            kitTiktok(player);
            break;
        case "helper":
            kitHelper(player);
            break;
        case "moder":
            kitModer(player);
            break;
        case "sr_moder":
            kitSrModer(player);
            break;
        case "admin":
            kitAdmin(player);
            break;
        case "sr_admin":
            kitSrAdmin(player);
            break;
        case "curator":
            kitCurator(player);
            break;
        case "manager":
            kitManager(player);
            break;
        case "root":
            kitRoot(player);
            break;
        default:
            player.sendMessage(TextFormat.RED + "Кит " + kitName + " не найден!");
    }
}
private int getFreeSlots(Player player) {
    int freeSlots = 0;
    for (int i = 0; i < player.getInventory().getSize(); i++) {
        Item item = player.getInventory().getItem(i);
        if (item == null || item.getId() == Item.AIR) {
            freeSlots++;
        }
    }
    return freeSlots;
}



private String getKitForRank(String rank) {
    switch (rank.toLowerCase()) {
        case "player":
            return "start";
        case "titan":
            return "titan";
        case "olympus":
            return "olympus";
        case "zeus":
            return "zeus";
        case "mystic":
            return "mystic";
        case "legendary":
            return "legendary";
        case "inferno":
            return "inferno";
        case "cosmic":
            return "cosmic";
        case "earthkeeper":
            return "earthkeeper";
        case "warlord":
            return "warlord";
        case "immortal":
            return "immortal";
        case "celestial":
            return "celestial";
        case "ares":
            return "ares";
        case "dstaff":
            return "dstaff";
        case "youtube":
            return "youtube";
        case "tiktok":
            return "tiktok";
        case "helper":
            return "helper";
        case "moder":
            return "moder";
        case "sr_moder":
            return "sr_moder";
        case "admin":
            return "admin";
        case "sr_admin":
            return "sr_admin";
        case "curator":
            return "curator";
        case "manager":
            return "manager";
        case "root":
            return "root";
        default:
            return "start";
    }
}

private String getKitDisplayName(String kitName) {
    switch (kitName.toLowerCase()) {
        case "start":
            return TextFormat.GREEN + "Start";
        case "titan":
            return TextFormat.LIGHT_PURPLE + "Titan";
        case "olympus":
            return TextFormat.BLUE + "Olympus";
        case "zeus":
            return TextFormat.YELLOW + "Zeus";
        case "mystic":
            return TextFormat.AQUA + "Mystic";
        case "legendary":
            return TextFormat.GOLD + "Legendary";
        case "inferno":
            return TextFormat.RED + "Inferno";
        case "cosmic":
            return TextFormat.DARK_PURPLE + "Cosmic";
        case "earthkeeper":
            return TextFormat.GREEN + "Earthkeeper";
        case "warlord":
            return TextFormat.DARK_RED + "Warlord";
        case "immortal":
            return TextFormat.WHITE + "Immortal";
        case "celestial":
            return TextFormat.LIGHT_PURPLE + "Celestial";
        case "ares":
            return TextFormat.DARK_GRAY + "Ares";
        case "dstaff":
            return TextFormat.DARK_AQUA + "Dstaff";
        case "youtube":
            return TextFormat.WHITE + "Youtube";
        case "tiktok":
            return TextFormat.AQUA + "Tiktok";
        case "helper":
            return TextFormat.GREEN + "Helper";
        case "moder":
            return TextFormat.DARK_GREEN + "Moder";
        case "sr_moder":
            return TextFormat.DARK_AQUA + "Sr Moder";
        case "admin":
            return TextFormat.RED + "Admin";
        case "sr_admin":
            return TextFormat.DARK_RED + "Sr Admin";
        case "curator":
            return TextFormat.LIGHT_PURPLE + "Curator";
        case "manager":
            return TextFormat.GOLD + "Manager";
        case "root":
            return TextFormat.DARK_PURPLE + "Root";
        default:
            return kitName;
    }
}

private Item createColoredLeatherArmor(int id, String name, String[] lore, int r, int g, int b) {
    Item item = Item.get(id, 0, 1);
    item.setCustomName(name);
    item.setLore(lore);
    CompoundTag nbt = item.getNamedTag();
    if (nbt == null) {
        nbt = new CompoundTag();
    }
    int color = (r << 16) | (g << 8) | b; 
    nbt.putInt("customColor", color);
    item.setNamedTag(nbt);
    return item;
}

private void populateStartKitContents(Player player) {
    FakeInventory chest = createKitInventory(player, "Стартовый набор");

    // Броня
    Item helmet = createColoredLeatherArmor(
            Item.LEATHER_HELMET,
            TextFormat.BOLD + "" + TextFormat.GOLD + "✧ Красный кожаный шлем",
            new String[]{
                    TextFormat.GREEN + "▪ Броня: " + TextFormat.WHITE + "+1",
                    "",
                    TextFormat.DARK_GRAY + "Базовая защита головы"
            },
            255, 0, 0 
    );

    Item chestplate = createColoredLeatherArmor(
            Item.LEATHER_CHESTPLATE,
            TextFormat.BOLD + "" + TextFormat.GOLD + "✧ Красный кожаный нагрудник",
            new String[]{
                    TextFormat.GREEN + "▪ Броня: " + TextFormat.WHITE + "+3",
                    "",
                    TextFormat.DARK_GRAY + "Защита корпуса"
            },
            255, 0, 0
    );

    Item leggings = createColoredLeatherArmor(
            Item.LEATHER_LEGGINGS,
            TextFormat.BOLD + "" + TextFormat.GOLD + "✧ Красные кожаные штаны",
            new String[]{
                    TextFormat.GREEN + "▪ Броня: " + TextFormat.WHITE + "+2",
                    "",
                    TextFormat.DARK_GRAY + "Защита ног"
            },
            255, 0, 0 
    );

    Item boots = createColoredLeatherArmor(
            Item.LEATHER_BOOTS,
            TextFormat.BOLD + "" + TextFormat.GOLD + "✧ Красные кожаные ботинки",
            new String[]{
                    TextFormat.GREEN + "▪ Броня: " + TextFormat.WHITE + "+1",
                    "",
                    TextFormat.DARK_GRAY + "Защита ступней"
            },
            255, 0, 0 
    );
    
    Item sword = Item.get(Item.STONE_SWORD, 0, 1)
            .setCustomName(TextFormat.BOLD + "" + TextFormat.GOLD + "⚔ Каменный меч")
            .setLore(
                    TextFormat.RED + "▪ Урон: " + TextFormat.WHITE + "5",
                    "",
                    TextFormat.DARK_GRAY + "Основное оружие ближнего боя"
            );

    Item crossbow = Item.get(Item.CROSSBOW, 0, 1)
            .setCustomName(TextFormat.BOLD + "" + TextFormat.GOLD + " Арбалет")
            .setLore(
                    TextFormat.RED + "▪ Урон: " + TextFormat.WHITE + "6-11",
                    TextFormat.GREEN + "▪ Дальность: " + TextFormat.WHITE + "50 блоков",
                    "",
                    TextFormat.DARK_GRAY + "Требует стрелы для стрельбы"
            );
    
    Item pickaxe = Item.get(Item.IRON_PICKAXE, 0, 1)
            .setCustomName(TextFormat.BOLD + "" + TextFormat.GOLD + "\uE157 Железная кирка")
            .setLore(
                    TextFormat.BLUE + "▪ Скорость добычи: " + TextFormat.WHITE + "6",
                    TextFormat.LIGHT_PURPLE + "▪ Удача: " + TextFormat.WHITE + "I",
                    TextFormat.RED + "▪ Урон: " + TextFormat.WHITE + "4",
                    "",
                    TextFormat.DARK_GRAY + "Добывает: уголь, железо, медь",
                    TextFormat.DARK_GRAY + "Ломает: камень, руды"
            );

    Item shovel = Item.get(Item.STONE_SHOVEL, 0, 1)
            .setCustomName(TextFormat.BOLD + "" + TextFormat.GOLD + " Каменная лопата")
            .setLore(
                    TextFormat.BLUE + "▪ Скорость копания: " + TextFormat.WHITE + "5",
                    TextFormat.RED + "▪ Урон: " + TextFormat.WHITE + "2.5",
                    "",
                    TextFormat.DARK_GRAY + "Эффективна против земли, песка, гравия"
            );

    Item axe = Item.get(Item.STONE_AXE, 0, 1)
            .setCustomName(TextFormat.BOLD + "" + TextFormat.GOLD + " Каменный топор")
            .setLore(
                    TextFormat.BLUE + "▪ Скорость рубки: " + TextFormat.WHITE + "4",
                    TextFormat.RED + "▪ Урон: " + TextFormat.WHITE + "4"
            );
    
    Item arrows = Item.get(Item.ARROW, 0, 16).setCustomName(TextFormat.GREEN + "Стрелы (16)");
    Item bread = Item.get(Item.BREAD, 0, 16).setCustomName(TextFormat.GREEN + "Хлеб (16)");
    Item iron = Item.get(Item.IRON_INGOT, 0, 8).setCustomName(TextFormat.GREEN + "Железо (8)");
    Item coal = Item.get(Item.COAL, 0, 8).setCustomName(TextFormat.GREEN + "Уголь (8)");
    
    chest.setItem(18, helmet);
    chest.setItem(27, chestplate);
    chest.setItem(36, leggings);
    chest.setItem(45, boots);

    chest.setItem(0, sword);
    chest.setItem(1, crossbow);
    chest.setItem(2, arrows);
    chest.setItem(3, pickaxe);
    chest.setItem(4, shovel);
    chest.setItem(5, axe);

    chest.setItem(20, bread);
    chest.setItem(21, iron);
    chest.setItem(22, coal);

    player.addWindow(chest);
}

private void kitStart(Player player) {
    Item[] kitItems = new Item[] {
            // Броня
            createColoredLeatherArmor(
                    Item.LEATHER_HELMET,
                    TextFormat.BOLD + "" + TextFormat.GOLD + "✧ Красный кожаный шлем",
                    new String[]{
                            TextFormat.GREEN + "▪ Броня: " + TextFormat.WHITE + "+1",
                            "",
                            TextFormat.DARK_GRAY + "Базовая защита головы"
                    },
                    255, 0, 0 
            ),

            createColoredLeatherArmor(
                    Item.LEATHER_CHESTPLATE,
                    TextFormat.BOLD + "" + TextFormat.GOLD + "✧ Красный кожаный нагрудник",
                    new String[]{
                            TextFormat.GREEN + "▪ Броня: " + TextFormat.WHITE + "+3",
                            "",
                            TextFormat.DARK_GRAY + "Защита корпуса"
                    },
                    255, 0, 0
            ),

            createColoredLeatherArmor(
                    Item.LEATHER_LEGGINGS,
                    TextFormat.BOLD + "" + TextFormat.GOLD + "✧ Красные кожаные штаны",
                    new String[]{
                            TextFormat.GREEN + "▪ Броня: " + TextFormat.WHITE + "+2",
                            "",
                            TextFormat.DARK_GRAY + "Защита ног"
                    },
                    255, 0, 0
            ),

            createColoredLeatherArmor(
                    Item.LEATHER_BOOTS,
                    TextFormat.BOLD + "" + TextFormat.GOLD + "✧ Красные кожаные ботинки",
                    new String[]{
                            TextFormat.GREEN + "▪ Броня: " + TextFormat.WHITE + "+1",
                            "",
                            TextFormat.DARK_GRAY + "Защита ступней"
                    },
                    255, 0, 0
            ),
            
            Item.get(Item.STONE_SWORD, 0, 1)
                    .setCustomName(TextFormat.BOLD + "" + TextFormat.GOLD + "⚔ Каменный меч")
                    .setLore(
                    TextFormat.RED + "▪ Урон: " + TextFormat.WHITE + "5",
                    "",
                    TextFormat.DARK_GRAY + "Основное оружие ближнего боя"
            ),

            Item.get(Item.CROSSBOW, 0, 1)
                    .setCustomName(TextFormat.BOLD + "" + TextFormat.GOLD + " Арбалет")
                    .setLore(
                    TextFormat.RED + "▪ Урон: " + TextFormat.WHITE + "6-11",
                    TextFormat.GREEN + "▪ Дальность: " + TextFormat.WHITE + "50 блоков",
                    "",
                    TextFormat.DARK_GRAY + "Требует стрелы для стрельбы"
            ),
            
            Item.get(Item.IRON_PICKAXE, 0, 1)
                    .setCustomName(TextFormat.BOLD + "" + TextFormat.GOLD + "\uE157 Железная кирка")
                    .setLore(
                    TextFormat.BLUE + "▪ Скорость добычи: " + TextFormat.WHITE + "6",
                    TextFormat.LIGHT_PURPLE + "▪ Удача: " + TextFormat.WHITE + "I",
                    TextFormat.RED + "▪ Урон: " + TextFormat.WHITE + "4",
                    "",
                    TextFormat.DARK_GRAY + "Добывает: уголь, железо, медь",
                    TextFormat.DARK_GRAY + "Ломает: камень, руды"
            ),

            Item.get(Item.STONE_SHOVEL, 0, 1)
                    .setCustomName(TextFormat.BOLD + "" + TextFormat.GOLD + " Каменная лопата")
                    .setLore(
                    TextFormat.BLUE + "▪ Скорость копания: " + TextFormat.WHITE + "5",
                    TextFormat.RED + "▪ Урон: " + TextFormat.WHITE + "2.5",
                    "",
                    TextFormat.DARK_GRAY + "Эффективна против земли, песка, гравия"
            ),

            Item.get(Item.STONE_AXE, 0, 1)
                    .setCustomName(TextFormat.BOLD + "" + TextFormat.GOLD + " Каменный топор")
                    .setLore(
                    TextFormat.BLUE + "▪ Скорость рубки: " + TextFormat.WHITE + "4",
                    TextFormat.RED + "▪ Урон: " + TextFormat.WHITE + "4",
                    "",
                    TextFormat.DARK_GRAY + "Для рубки дерева и как оружие"
            ),
            
            Item.get(Item.ARROW, 0, 16).setCustomName(TextFormat.GREEN + "Стрелы (16)"),
            Item.get(Item.BREAD, 0, 16).setCustomName(TextFormat.GREEN + "Хлеб (16)"),
            Item.get(Item.IRON_INGOT, 0, 8).setCustomName(TextFormat.GREEN + "Железо (8)"),
            Item.get(Item.COAL, 0, 8).setCustomName(TextFormat.GREEN + "Уголь (8)")
    };
    
    int freeSlots = getFreeSlots(player);
    if (freeSlots < kitItems.length) {
        int needed = kitItems.length - freeSlots;
        player.sendMessage(TextFormat.RED + "Ошибка: Недостаточно места в инвентаре!");
        player.sendMessage(TextFormat.YELLOW + "Освободите " + needed + " слотов для получения набора");
        return;
    }
    
    player.getInventory().addItem(kitItems);
    
    player.sendTitle(
            TextFormat.GOLD + "▎ Стартовый набор",
            TextFormat.GREEN + "Успешно выдан!",
            10, 40, 10
    );
    player.sendMessage(TextFormat.GOLD + "► Вы получили стартовый набор!");
}

окей напишу какую экономическую систему использовать?

и тг напиши свой

еще вопрос сделать сортировку типо етсь же сервак LootMC могу примерно такующе сделать аукцион

Я правильно понимаю, что с Генезисом и его плагинами ты дел не имел?

Я его незнаю

Странно, обычно с него все начинают. Всеми любимое ядро на 1.1.5, написанное на php.

Я начал с ядра Nukkit CloudBurst както так назывался

Стоит посмотреть его код?

1 лайк

Думаю, что стоит. Прикоснуться к истории, так сказать.

У меня на нëм сервер 7 лет живëт, если на чрезмерные хотелки игроков класть арбалетный болт, то всë отлично!

да иди ты н#### со своим генезисом

внатуре gpt хахахаха

скажу кратко и обьективно, весь код писал ИИ

1 лайк

@batonka333

интресно, ии реально способен на накките чо то сделать

Пруфы будут?