Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Помогите с написанием кода.

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

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

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

    Баллы:
    78
    Привет всем обитателям этого сайта, можете помочь с кодом, в общем идея такова:
    Если игрок в транспорте, т.е в вагонетке или лодке(VehicleEnterEvent) - то он не должен открывать сундуки, печи и т.п(InventoryOpenEvent).
     
  2. Хостинг MineCraft
    <
  3. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Код:
    public void onInventoryOpen(InventoryOpenEvent e) {
    // тут как то задали переменную игрока p
    if(p.isInsideVehicle()) {
    e.setCancelled(true);
    p.closeInventory(); // для надёжности
    }
    }
     
    Stalkerdeni971 и seand нравится это.
  4. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    p.closeInventory(); // для надёжности

    От этой надёжности ни холодно не жарко, ибо ты вышлешь пакет закртия раньше открытия.
     
  5. Автор темы
    seand

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

    Баллы:
    78
    К сожалению в игре не работает...
    public void onInventoryOpen(InventoryOpenEvent e) {
    HumanEntity p = e.getPlayer();
    if(p.isInsideVehicle()) {
    e.setCancelled(true);
    p.closeInventory();
    }
    }
     
  6. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Ну а @EventHandler то поставил?
     
    ql_Nik_lp и seand нравится это.
  7. Автор темы
    seand

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

    Баллы:
    78
    Еще вопрос, а как добавить в данный код отправку сообщения игроку который взаимодействует с плагином?Если использовать e.getPlayer().sendMessage то ругается на HumanEntity
     
  8. smilesdc

    smilesdc Няша Модератор

    Баллы:
    153
    Имя в Minecraft:
    smilesdc
    К вопросу выше.
    Код:
    public void onInventoryOpen(InventoryOpenEvent e) {
              final Player p = e.getPlayer();
             
              if(p.isInsideVehicle()) {
                  e.setCancelled(true);
                  p.sendMessage("Айяй");
                  return;
              }
    }
     
  9. _Rufu5_

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

    Баллы:
    48
    Имя в Minecraft:
    _Rufu5_
    Попробуй вместо HumanEntity юзать Player типа
     
  10. shamahn

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

    Баллы:
    78
    Имя в Minecraft:
    shamahn
    Попробуй, вместо InventoryOpenEvent повесить событие на проклик InventoryClickEvent.
     

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