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

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

Discussion in 'Разработка плагинов для новичков' started by Slorikworld, Jan 15, 2017.

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

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

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

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


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

    Спасибо, всё получилось!
     
    Last edited: Jan 15, 2017
  2. Хостинг MineCraft
    <
  3. TheZefirrkka

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

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

    alexandrage Администратор

    Trophy Points:
    173
    Skype:
    alexandr0116
    Code:
        @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)));
            }
        }
     
    Last edited: Jan 15, 2017

Share This Page