1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Инвентари и продажа по клику

Тема в разделе "Разработка плагинов для новичков", создана пользователем Thorgathis, 16 ноя 2021.

Статус темы:
Закрыта.
  1. Автор темы
    Thorgathis

    Thorgathis Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Thorgathis
    Вот такой вопрос хочу что бы игроки моги продовать вещи или покупать иликая но предмету в меню "GUI"

    но у меня не работает код ошибок нет

    код внизу

    Код:
    public void onInv(Player p) {
            Inventory inv = Bukkit.createInventory(null, 54, ChatColor.RED +  "GUI");
          
            ItemStack item1 = new ItemStack(Material.DIAMOND_BLOCK);
            ItemMeta item1Meta = item1.getItemMeta();
            ItemStack item2 = new ItemStack(Material.REDSTONE_BLOCK);
            ItemMeta item2Meta = item2.getItemMeta();
          
            item1Meta.setDisplayName("Survival");
            item1.setItemMeta(item1Meta);
            item2Meta.setDisplayName("Creative");
            item2.setItemMeta(item2Meta);
          
            inv.setItem(3, item1);
            inv.setItem(5, item2);
          
            p.openInventory(inv);
        }
        
        
        
        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
            if(cmd.getName().equalsIgnoreCase("gui")) {
                Player player = (Player) sender;
                    onInv(player);
            }
            return true;
    }
     
  2. LOVEC3327

    LOVEC3327 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
  3. Lemar98

    Lemar98 Активный участник Пользователь

    Баллы:
    76
    А что не работает то?
    Если ты имел ввиду клики, тогда тебе нужно слушать InventoryClickEvent, проверять инвентарь по которому кликают и реализовать логику покупки/продажи
     
  4. Автор темы
    Thorgathis

    Thorgathis Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Thorgathis
    Инвентарь не открывается
     
  5. OJIEKCAHDP

    OJIEKCAHDP Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    OJIEKCAHDP
    Ты скорее всего команду не зарегистрировал
     
  6. Автор темы
    Thorgathis

    Thorgathis Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Thorgathis
    Зарегистрировал сообщение вылетает
     
  7. OJIEKCAHDP

    OJIEKCAHDP Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    OJIEKCAHDP
    Какое сообщение?
     
  8. Автор темы
    Thorgathis

    Thorgathis Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Thorgathis
    p.sendmessage("Открыто меню блоков");
     
  9. Bezobrazie

    Bezobrazie Активный участник Пользователь

    Баллы:
    46
    Имя в Minecraft:
    MySoulIsCry
    Покажи как команду регаешь. предполагаю что тут чтото не так.
    Ты проверяешь саму команду а не аргумент. Так обычно делают если у тебя 1 екзекутор на несколько команд. Чтобы проверить первый аргумент тебе надо if(args[0].equalsIgnoreCase("gui"))
     
  10. OJIEKCAHDP

    OJIEKCAHDP Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    OJIEKCAHDP
    Глупости, commandLabel отвечает за это, а всё что после него уже аргументы. cmd всегда выводит стандарт команду которая в конфиге, a commandLabel ту которую ввёл игрок.
     
  11. Bezobrazie

    Bezobrazie Активный участник Пользователь

    Баллы:
    46
    Имя в Minecraft:
    MySoulIsCry
    Дак он и проверят саму команду а не аргументы к ней. Я и предположил что ошибка тут ибо другого ничего нет.
    cmd.getName() вернет саму команду допустим "ban"
     
  12. OJIEKCAHDP

    OJIEKCAHDP Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    OJIEKCAHDP
    Скорее всего просто не правильно зарегистрировал команду
     
  13. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    У тебя даже в коде такого нету..
     
  14. Автор темы
    Thorgathis

    Thorgathis Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Thorgathis
    проблемму с открытием пофиксил

    Как сделать проверку на клики
     
  15. Bezobrazie

    Bezobrazie Активный участник Пользователь

    Баллы:
    46
    Имя в Minecraft:
    MySoulIsCry
    InventoryClickEvent
     
  16. Автор темы
    Thorgathis

    Thorgathis Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Thorgathis
    я знаю что InventoryClickEvent как мне этто сделать можно плиз пример
     
  17. OJIEKCAHDP

    OJIEKCAHDP Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    OJIEKCAHDP
    Внимание вопрос, что вам из этого всего не понятно?
    upload_2021-11-17_22-10-29.png
     
  18. Автор темы
    Thorgathis

    Thorgathis Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Thorgathis
    то что я пытался сделать так как тут сделано у меня не работало

    код
    InventoryClickEvent
    не скину я его удалил
     
  19. OJIEKCAHDP

    OJIEKCAHDP Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    OJIEKCAHDP
    Тебе бы какой-нибудь туториал по баккит апи посмотреть на ютубчике, совсем ведь ничего не знаешь
    Давай напечатай нам новый код и покажи, будем разбираться
     
  20. Автор темы
    Thorgathis

    Thorgathis Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Thorgathis
    Код:
    public void onClick(InventoryClickEvent e) {
              Player p = (Player) e.getWhoClicked();
            e.getInventory().equals(inv);
            if(e.getCurrentItem().getType() == Material.DIAMOND_BLOCK){
            p.sendMessage("1");
              
            }
        }
     
Статус темы:
Закрыта.

Поделиться этой страницей