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

Помогите Антигриф плагин

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

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

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

    Баллы:
    66
    Имя в Minecraft:
    Hexerpowers
    Привет народ, делаю антигриферский плагин на свой проект (в качестве обучения программированию).
    Нужно: При взаимодействии игрока с блоком (ПКМ, ЛКМ) определить, какой у него в руке предмет, и в своём ли рг он находится.
    Получаем имя (ИД или бакитовский вариант), true/false по поводу рг. Сравниваем с данными в переменных. Если совпадает - удаляем предмет в руке и выводим сообщение в чат.

    Проблемы следующие:
    1) Нужно сделать конфиг плагина, куда вставлять его метод?
    2) Как получить блок, на который сделал ПКМ игрок? (для ЛКМ евент я знаю).
    3) Как получить имя предмета в руке?
    4) Как удалить предмет в руке?


    Пишу в первый раз, поэтому и такие нубские вопросы. Очень нужно, жду.
    P.S. Понял, что предмет можно взять из использования слота. Но как это сделать?

    Спасибо, всё получилось!
     
    Последнее редактирование: 15 янв 2017
  2. TheZefirrkka

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

    Баллы:
    76
    1. Чё? В главный класс, если я тебя правильно понял
    2. PlayerInteractEvent
    3. p.getItemInHand().getItemMeta().getDisplayName()
    4. p.getInventory().removeItem(ItemStack i); или p.getItemInHand().setAmount() //во втором случае нужно будет делать проверки на кол-во предметов в руке
     
  3. alexandrage

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

    Баллы:
    173
    Код:
        @EventHandler(priority = EventPriority.MONITOR)
        public void on(PlayerInteractEvent e) {
            if(e.isCancelled() && (e.getAction() == Action.LEFT_CLICK_BLOCK || e.getAction() == Action.RIGHT_CLICK_BLOCK)) {
               e.getPlayer().getInventory().setItemInMainHand(new ItemStack((Material.AIR)));
            }
        }
     
    Последнее редактирование: 15 янв 2017

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