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

Помогите Чат забирает вещь, но не отправляет сообщение

Тема в разделе "Разработка плагинов для новичков", создана пользователем clysic, 12 июл 2019.

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

    clysic Новичок Пользователь

    Баллы:
    11
    В общем, я делаю чат за вещь, то есть начинаю писать с "*", и у меня должен забираться определённый ресурс, а если ресурса нет, то сообщение в чат не отправляется. Проблема заключается в том, что без ресурса в чат сообщение отправляется, но при этом он и говорит, что без ресурса низя, но сообщение отправил... Кхм, надеюсь понятно. Прикрепляю код:
    Код:
    public void onChat (AsyncPlayerChatEvent e) {
            
            if (e.getMessage().startsWith("*")) {
                if (e.getPlayer().getInventory().contains(Material.EMERALD)) {
                  e.getPlayer().getInventory().removeItem(new ItemStack[]{new ItemStack(Material.EMERALD)}); }
            } else {
                     e.getPlayer().sendMessage("У вас нет изумруда!");     
                 }
                }
     
  2. Автор темы
    clysic

    clysic Новичок Пользователь

    Баллы:
    11
    PS
    Если что, то только учусь, поэтому, прошу вас, не нападать :с
     
  3. Kloper

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

    Баллы:
    76
    Имя в Minecraft:
    f3azzy
    хз работает или как вроде всё норм,

    p.s сам только учусь, так что не ругай :DDD


    Код:
    @SuppressWarnings("deprecation")
        @EventHandler
      public void onChat (AsyncPlayerChatEvent e) {
            
            Player p = e.getPlayer();
            if (e.getMessage().startsWith("*")) {
                    
                if(p.getInventory().getItemInHand().getType() != Material.EMERALD) { // если в руке не изумруд то происходит то что ниже.
                    p.sendMessage("Возьми в руку Эмеральд!");
                    
                }
                
                if(p.getInventory().getItemInHand().getType() == Material.EMERALD) { // если изумруд то так же происходит то что ниже.
                      
                    e.getPlayer().getInventory().removeItem(new ItemStack(new ItemStack(Material.EMERALD)));
                
                    p.sendMessage("бла бла бла");
                }
                
                }
                      
                
        }
     
  4. MurlikMurlik

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

    Баллы:
    96
    У вас обоих одни проблемы.
    Держите.
    Код:
    @SuppressWarnings("deprecation")
        @EventHandler
      public void onChat (AsyncPlayerChatEvent e) {
      
            Player p = e.getPlayer();
            if (e.getMessage().startsWith("*")) {
              
               if(p.getInventory().getItemInHand().getType() != Material.EMERALD) {
                    p.sendMessage("Возьми в руку Эмеральд!");
              
               }
               else {
                    e.getPlayer().getInventory().removeItem(Material.EMERALD);
          
                    p.sendMessage("text");
               }
          
            }
        }
    p.s как скопировал у вас, так и получилось криво оформлено.
     
  5. TheSkiffSailor

    TheSkiffSailor Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    TheSkiffSailor
    Ппц ты костыль, не видишь deprecation? В новых версиях метод не работает.
    p.getInventiry().getItemIn...Hand();
    ... - Правая рука - Main
    ... - Левая рука - Off
     
  6. TheSkiffSailor

    TheSkiffSailor Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    TheSkiffSailor
    У тебя тоже костыли. Выше комент.
     
  7. TheSkiffSailor

    TheSkiffSailor Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    TheSkiffSailor
    Я хз зач это 3 сообщение, но оно ТСу:
    отменить чат евент забыл - event.setCancelled(true);
     
  8. Автор темы
    clysic

    clysic Новичок Пользователь

    Баллы:
    11
    Тема закрыта. Спасибо, многоуважаемые кодеры за вашу помощь! *целую*
     
Статус темы:
Закрыта.

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