Сборки серверов

СливПлатные

Сейчас онлайн

  • Lucifer2033
  • ChildFreak
  • Hayashiga
  • Kir_000
  • foxy_
  • yapponecc
  • Erotoro
  • Eternal
  • adlan
  • Aretox
  • sadolbunov
  • HMESAK
  • abernat
  • Zeldetch
  • Limitely
  • popkaOgyrcaa
  • helovek1337
  • serg_hvh
  • Craka_c_mulo
  • Adolf_Sharky
  • gogonadze
  • postedex
  • Mrtan
  • mishaserv
  • zerosolo
  • zerqaw_
  • arsenbb3
  • Bread.Fedex
  • Jamenson
  • Скай

Проблема с плагином DonateCase

J
Не могу расположить 2 кейса в одном меню. Пытался решить с помощью GPT, помогло от части. С его помощью, я таки расположил 2 кейса в меню, но кнопки кейсов перестали работать. То есть, кейсы находятся в 21 и 23 слоте меню, но когда я навожусь один из двух кейсов, там не появляется информация про него (привилегии, сколько ключей, где покупать и прочее), + к тому же нету отзыва от кнопки (нажимаю и ничего не происходит). Помогите пожалуйста (simple and gold - кейсы, menu - меню в котором они должны находится)(скриншот для того чтобы вы понимали +- как я хочу расположить кейсы
 

Вложения

  • Снимок экрана 2026-04-16 131148.png
    Снимок экрана 2026-04-16 131148.png
    102,3 КБ · Просмотры: 1
  • menu.zip
    3 КБ · Просмотры: 1
  • simple.zip
    4,1 КБ · Просмотры: 0
  • gold.zip
    4,1 КБ · Просмотры: 0
GPT-4o
Похоже, что у вас возникли проблемы с обработкой событий на кнопках в меню. Чтобы помочь вам, мне нужно больше информации о том, как вы реализовали меню и кнопки. Тем не менее, вот общая структура, которая может помочь вам правильно настроить обработку событий для двух кейсов в одном меню.

Пример кода на Java для создания меню с двумя кейсами:

Java:
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

public class CaseMenuPlugin extends JavaPlugin {

    @Override
    public void onEnable() {
        // Ваш код инициализации плагина
    }

    public void openCaseMenu(Player player) {
        Inventory menu = Bukkit.createInventory(null, 27, "Выберите кейс");

        // Создание и добавление первого кейса
        ItemStack case1 = createCaseItem("Кейс 1", "Описание кейса 1");
        menu.setItem(21, case1);

        // Создание и добавление второго кейса
        ItemStack case2 = createCaseItem("Кейс 2", "Описание кейса 2");
        menu.setItem(23, case2);

        player.openInventory(menu);
    }

    private ItemStack createCaseItem(String name, String description) {
        // Создание предмета для кейса
        ItemStack item = new ItemStack(/* ваш материал */);
        // Установка имени и описания предмета
        // ...
        return item;
    }

    // Обработка кликов по предметам в меню
    @Override
    public void onInventoryClick(InventoryClickEvent event) {
        if (event.getInventory().getName().equals("Выберите кейс")) {
            event.setCancelled(true); // Отменяем стандартное поведение

            ItemStack clickedItem = event.getCurrentItem();
            Player player = (Player) event.getWhoClicked();

            if (clickedItem != null) {
                if (clickedItem.isSimilar(createCaseItem("Кейс 1", "Описание кейса 1"))) {
                    // Логика для первого кейса
                    player.sendMessage("Вы выбрали Кейс 1!");
                } else if (clickedItem.isSimilar(createCaseItem("Кейс 2", "Описание кейса 2"))) {
                    // Логика для второго кейса
                    player.sendMessage("Вы выбрали Кейс 2!");
                }
            }
        }
    }
}

Убедитесь, что:

1. Вы правильно обрабатываете события InventoryClickEvent.
2. Вы используете event.setCancelled(true);, чтобы предотвратить закрытие меню при нажатии на кнопки.
3. Сравниваете предметы с помощью метода isSimilar(), чтобы правильно определять, какой кейс был выбран.

Если у вас есть конкретные ошибки или сообщения, пожалуйста, предоставьте их, и я помогу вам более детально.
 
ВерхНиз