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

  • Автор темы Автор темы 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("У вас нет изумруда!");     
             }
            }
 
хз работает или как вроде всё норм,

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


Код:
@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("бла бла бла");
            }
            
            }
                  
            
    }
 
хз работает или как вроде всё норм,

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


Код:
@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("бла бла бла");
            }
       
            }
             
       
    }
У вас обоих одни проблемы.
Держите.
Код:
@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 как скопировал у вас, так и получилось криво оформлено.
 
хз работает или как вроде всё норм,

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


Код:
@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("бла бла бла");
            }
           
            }
                 
           
    }
Ппц ты костыль, не видишь deprecation? В новых версиях метод не работает.
p.getInventiry().getItemIn...Hand();
... - Правая рука - Main
... - Левая рука - Off
 
У вас обоих одни проблемы.
Держите.
Код:
@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 как скопировал у вас, так и получилось криво оформлено.
У тебя тоже костыли. Выше комент.
 
Я хз зач это 3 сообщение, но оно ТСу:
отменить чат евент забыл - event.setCancelled(true);
 
Тема закрыта. Спасибо, многоуважаемые кодеры за вашу помощь! *целую*
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх