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

Помогите Убрать предмет при клике.

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

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

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

    Баллы:
    76
    Имя в Minecraft:
    DJhunter
    Выдаю предмет при входе Potato. Хочу чтоб при нажатии на Patota выдавалась пожаренная картошка, а эта исчезала, но чет оно вообще не работает... Юзаю PaperSpigot
    Код:
    public void gift(PlayerInteractEvent e) {
    Action a = e.getAction();
    if(a != Action.RIGHT_CLICK_BLOCK && a != Action.RIGHT_CLICK_AIR) return;
    Player p = e.getPlayer();
    ItemStack item = p.getInventory().getItemInMainHand();
    if (item.getType() != Material.POTATO) return;
    p.getInventory().setItem(p.getInventory().firstEmpty(), new ItemStack(Material.BAKED_POTATO));
    p.playSound(p.getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 1, 1);
    }
     
    Последнее редактирование: 25 авг 2021
  2. Veyn12

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

    Баллы:
    76
    Имя в Minecraft:
    Veynique
    Немного не понял, у тебя картошка обычная не исчезает же?
    Или вообще ничего не работает? Ни появляется, ни исчезает?
     
  3. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    PHP:
    @EventHandler
    public void onInteract(PlayerInteractEvent e) {
        if (
    e.getAction() != Action.RIGHT_CLICK_BLOCK && e.getAction() != Action.RIGHT_CLICK_AIR) return;
        
    Player player e.getPlayer();
        if (
    player.getInventory().getItemInMainHand().getType() != Material.POTATO) return;
        
    int count player.getInventory().getItemInMainHand().getAmount();
        if (
    count == 1) {
            
    player.getInventory().setItemInMainHand(new ItemStack(Material.BAKED_POTATO));
        } else {
            
    player.getInventory().addItem(new ItemStack(Material.BAKED_POTATO));
            
    player.getInventory().getItemInMainHand().setAmount(count 1);
        }
    }
     
  4. Автор темы
    DJhunter

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

    Баллы:
    76
    Имя в Minecraft:
    DJhunter
    Дай бог здоровья
     
  5. Автор темы
    DJhunter

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

    Баллы:
    76
    Имя в Minecraft:
    DJhunter
    Хотя щас попробовал добавить, не хочет забирать предмет и давать новый. Использую Spigot 1.15.2 и JavaSE 1.8
     
  6. Автор темы
    DJhunter

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

    Баллы:
    76
    Имя в Minecraft:
    DJhunter
    при заходе обычная появляется, кликаю по ней и ничего не происходит.
     
  7. imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Без креатива тестируешь? Не забыл зарегистрировать слушатель?
     
  8. Автор темы
    DJhunter

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

    Баллы:
    76
    Имя в Minecraft:
    DJhunter
    Ты про implements Listener? Если это, то сделал.
     
  9. Veyn12

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

    Баллы:
    76
    Имя в Minecraft:
    Veynique
    @EventHandler?
     
  10. Автор темы
    DJhunter

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

    Баллы:
    76
    Имя в Minecraft:
    DJhunter
  11. imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Bukkit.getPluginManager().registerEvents(...)
     
  12. Автор темы
    DJhunter

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

    Баллы:
    76
    Имя в Minecraft:
    DJhunter
    Я дико прошу прощения, но куда мне это ставить?
     
  13. LOVEC3327

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

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    onEnable
     
  14. Автор темы
    DJhunter

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

    Баллы:
    76
    Имя в Minecraft:
    DJhunter
    А почему картошка выдается, там же тоже я использую ивент или все не так работает?
     
  15. Автор темы
    DJhunter

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

    Баллы:
    76
    Имя в Minecraft:
    DJhunter
    https://imgur.com/FqXKONi
    Не работает...
     
  16. alexandrage

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

    Баллы:
    173
    Так ты нигде не удаляешь-заменяешь предмет из MainHand
    Ты просто добавляешь предмет в инвентарь и все.
     
  17. Автор темы
    DJhunter

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

    Баллы:
    76
    Имя в Minecraft:
    DJhunter
     
  18. Автор темы
    DJhunter

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

    Баллы:
    76
    Имя в Minecraft:
    DJhunter
    Код:
    @EventHandler
    public void gift(PlayerInteractEvent e) {
    Action a = e.getAction();
    if(a != Action.RIGHT_CLICK_BLOCK && a != Action.RIGHT_CLICK_AIR) return;
    Player p = e.getPlayer();
    ItemStack item = p.getInventory().getItemInMainHand();
    if (!(item.getType().equals(Material.POTATO)))return;
    int held = p.getInventory().getHeldItemSlot();
    p.getInventory().clear(held);
    p.getInventory().setItem(held, new ItemStack(Material.BAKED_POTATO));
    p.playSound(p.getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 1, 1);
    }
    p.getInventory().clear(held); Я делаю же
     
  19. alexandrage

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

    Баллы:
    173
    Тяжелый случай.
    p.getInventory().setItemInMainHand(new ItemStack(Material.BAKED_POTATO));
     
  20. Автор темы
    DJhunter

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

    Баллы:
    76
    Имя в Minecraft:
    DJhunter
    Т.е это:
    p.getInventory().setItem(held, new ItemStack(Material.BAKED_POTATO));
    Заменить на это: p.getInventory().setItemInMainHand(new ItemStack(Material.BAKED_POTATO));
     
Статус темы:
Закрыта.

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