Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Essentials API

  • Автор темы Автор темы Tyzun
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Tyzun

Старожил
Баллы
153
Имя в Minecraft
_Tyzun_
Облазил все API в Essentials но не нашел где брать собитие, когда игрок использует табличку(например [Buy] табличку). Можно ли это как-то добыть из Essentials?
 
Вручную попробуй создать. Проверка: если игрок кликает табличку, у которой на первой строке [Buy].
 
Облазил все API в Essentials но не нашел где брать собитие, когда игрок использует табличку(например [Buy] табличку). Можно ли это как-то добыть из Essentials?
А он и не кидает такого эвента. Делай через PlayerInteractEvent
 
А он и не кидает такого эвента. Делай через PlayerInteractEvent
Я делал, но при отмене эвента он не отменяется(с любой табличкой отменяется кроме табличек из Essentials)
Я даже заметил что если запретить через MachineGuard взаимодействовать с табличкой, всеранво Essentials таблички работают, хотя пишет что вам нельзя в этом регионе взаимодействовать с этим. Мне это нужно чтоб игрок немог юзать эти таблички при определенных условиях(но в остальных случаях чтоб можно было это делать)
 
Я делал, но при отмене эвента он не отменяется(с любой табличкой отменяется кроме табличек из Essentials)
Я даже заметил что если запретить через MachineGuard взаимодействовать с табличкой, всеранво Essentials таблички работают, хотя пишет что вам нельзя в этом регионе взаимодействовать с этим. Мне это нужно чтоб игрок немог юзать эти таблички при определенных условиях(но в остальных случаях чтоб можно было это делать)
Попробуй повысить приоритет листенера
 
вот к примеру возьмем вот такой кусок кода:
Код:
 @EventHandler(priority = EventPriority.HIGHEST)
public void sign(PlayerInteractEvent e){
    Player p = e.getPlayer();
    Block b = e.getClickedBlock();
    if(p.getGameMode() == GameMode.CREATIVE){
    if ((b.getType() == Material.SIGN_POST) || (b.getType() == Material.WALL_SIGN)) {
        e.setCancelled(true);
        p.sendMessage("test");
       
      }
    }
}

Сообщение test приходит, но эвент, когда юзаю табличку с любой Essentials командой не отменяется всеравно
 
priority = EventPriority.HIGHEST

ПОоставил самый низкий приоритет и удивляешься почему не работает ещё.
 
вот к примеру возьмем вот такой кусок кода:
Код:
 @EventHandler(priority = EventPriority.HIGHEST)
public void sign(PlayerInteractEvent e){
    Player p = e.getPlayer();
    Block b = e.getClickedBlock();
    if(p.getGameMode() == GameMode.CREATIVE){
    if ((b.getType() == Material.SIGN_POST) || (b.getType() == Material.WALL_SIGN)) {
        e.setCancelled(true);
        p.sendMessage("test");
      
      }
    }
}

Сообщение test приходит, но эвент, когда юзаю табличку с любой Essentials командой не отменяется всеравно
100% вариант через пакеты:lol:
 
хм, high - высоко, все логично!
ну поставил я lowest, результат не изменился.
нашел альтернативное решение
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх