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

Помогите Как получить предмет игрока в руке

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

  1. Автор темы
    crypt0x

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

    Баллы:
    11
    Имя в Minecraft:
    crypt0x
    В моих планах нужно получит предмет игрока
    ItemStack item = (как получить??)
    If (b равен блоку спавнера) {
    if(item равен DIAMOND_PICKAXE) {
    If (item.getEnchantmentLevel(Enchantment.SILCK_TOUCH) >=2 ) {
    Выпадает спавнер;}

    Как изменить в код JAVA
     
  2. LOVEC3327

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

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

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

    Баллы:
    173
  4. Aquinary

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

    Баллы:
    66
    Имя в Minecraft:
    Aquinary
    Код:
    @EventHandler
     public void onSpawnSilckTouch(PlayerInteractEvent event) {
          if (event.getItem() == DIAMOND_PICKAXE) {
              //
          }
    }
    Это будет срабатывать в том случае, если во время интерактивного взаимодействия с чем-либо (даже с воздухом) у тебя в руках будет кирка. Ну а дальше сам условия про зачарования и прочее ставишь. И это ОБЯЗАТЕЛЬНО должно быть в эвентхандлерах
     
  5. Veyn12

    Veyn12 Активный участник Пользователь Заблокирован

    Баллы:
    76
    Имя в Minecraft:
    Veynique
    Что?? И как у тебя SILK_TOUCH >=2
    Откуда ты шёлковое касание 2 уровня нашёл?)
    PHP:
    player.getItemInHand();
     
    Последнее редактирование: 14 апр 2021
  6. Aquinary

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

    Баллы:
    66
    Имя в Minecraft:
    Aquinary
    Ты же вкурсе, что это уже deprecated-метод?
    getItemInMainHand() тогда уж.
     
  7. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    Смотря на какую версию пишется плагин
     
  8. Aquinary

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

    Баллы:
    66
    Имя в Minecraft:
    Aquinary
    Ах, постоянно забываю, что тут есть динозавры с версиями 1.7.10 (а может даже и ниже) :D
     
  9. alexandrage

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

    Баллы:
    173
    На такие уже никто не пишет.
     
  10. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    Ну я бы не сказал. Иногда встречаются динозавры, которые на 1.8 сидят
     
  11. Автор темы
    crypt0x

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

    Баллы:
    11
    Имя в Minecraft:
    crypt0x
    я на 1.16.5
     
  12. Автор темы
    crypt0x

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

    Баллы:
    11
    Имя в Minecraft:
    crypt0x
    Кастомный чар
     
  13. Veyn12

    Veyn12 Активный участник Пользователь Заблокирован

    Баллы:
    76
    Имя в Minecraft:
    Veynique
    Зачем он? В чем отличии шёлка 1 или 2?)
     
  14. Автор темы
    crypt0x

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

    Баллы:
    11
    Имя в Minecraft:
    crypt0x
    чтоб игрок, покупал кирку на анархии, и благодаря шёлк 2 мог сломать спавнер и плагином выдавался
     
  15. Sergeo

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

    Баллы:
    76
    Имя в Minecraft:
    Solomka
    Не проще делать кастомное имя и уже по нему все проверять? Зачем накладывать чары и т.д? BlockBreakEvent и проверка на блок, который сломал игрок, если у игрока в руке кирка с кастомным именем - выдавай ему в инвентарь спавнер и удаляй кирку из инвентаря. Я думаю, что все понятно
     
  16. Автор темы
    crypt0x

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

    Баллы:
    11
    Имя в Minecraft:
    crypt0x
    а как узнать есть ли у игрока эта кирка?!
     
  17. Sergeo

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

    Баллы:
    76
    Имя в Minecraft:
    Solomka
    За работоспособность не отвечаю))

    Код:
        @EventHandler
    
        public void mainHand(BlockBreakEvent e){
    
            Block b = e.getBlock();
    
            ItemStack block = new ItemStack(b.getType());
            ItemStack spawner = new ItemStack(Material.ТУТСПАВНЕРМОБОВ);
    
            Player p = e.getPlayer();
    
            if(p.getInventory().getItemInMainHand().equals(Тут твой предмет с измененой метой)) {
    
                if (block.equals(spawner)) {
                    b.getDrops().add(spawner);
                    p.getInventory().getItemInMainHand().setAmount(0);
                    p.updateInventory();
                }
            }
        }
    }
     
  18. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    Не, лучше нбт тег накидывать и по нему уже проверять
     

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