удалено

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

MCosmos

Активный участник
Пользователь
Баллы
76
удалено
 
Последнее редактирование:
Код:
            Bukkit.getPluginManager().registerEvents(new dev(), this);

Код:
    @EventHandler
    public void OnPlayerAttack(EntityDamageByEntityEvent e) {
        if(e.getEntity() instanceof Player && e.getDamager() instanceof Player) {
            Bukkit.dispatchCommand(Bukkit.getConsoleSender(),"kick "+e.getEntity().getName()+" был кикнут администратором");
          e.getDamager().sendMessage(ChatColor.YELLOW + "Вы успешно кикнули данного игрока");
          e.setCancelled(true);
    }
Сделай переменную и меняй её после того, как событие случилось. Также в евенте сделай проверку на стандартное значение переменной
 
Код:
            Bukkit.getPluginManager().registerEvents(new dev(), this);

Код:
    @EventHandler
    public void OnPlayerAttack(EntityDamageByEntityEvent e) {
        if(e.getEntity() instanceof Player && e.getDamager() instanceof Player) {
            Bukkit.dispatchCommand(Bukkit.getConsoleSender(),"kick "+e.getEntity().getName()+" был кикнут администратором");
          e.getDamager().sendMessage(ChatColor.YELLOW + "Вы успешно кикнули данного игрока");
          e.setCancelled(true);
    }
Ну и где он повторяется у тебя? Этот ивент работает только при дамаге ентити.
 
Код:
            Bukkit.getPluginManager().registerEvents(new dev(), this);

Код:
    @EventHandler
    public void OnPlayerAttack(EntityDamageByEntityEvent e) {
        if(e.getEntity() instanceof Player && e.getDamager() instanceof Player) {
            Bukkit.dispatchCommand(Bukkit.getConsoleSender(),"kick "+e.getEntity().getName()+" был кикнут администратором");
          e.getDamager().sendMessage(ChatColor.YELLOW + "Вы успешно кикнули данного игрока");
          e.setCancelled(true);
    }
И не используй dispatchCommand, если есть метод уже, костыли
 
Короче мне надо чтобы можно было включать и выключать функцию кика при ударе
Так создай статический булеан и делай по нему проверку.
PHP:
public static boolean kickAttack = false;
PHP:
    @EventHandler
    void onDamageByEntity(EntityDamageByEntityEvent e) {
        if (kickAttack) {
            //TODO
        }
    }
И потом просто при необходимости переключай на true/false в своей команде.
 
Я в этом не шарю, но есть идеи как это сделать. Надо завести переменную flag, и поместить код в твоем ивенте в if который выполняется если значение переменной flag истинно. Это конечно не сложно, а вот где эта переменная должна быть, чтобы к ней обращаться, ну и изменять ее. Создаешь какой-нибудь класс classFlag и в нем делаешь статическое поле со значением переменной flag
 
Да когда писал увидел твоей сообщение) Действительно зачем создавать другой класс, можно сразу в этом
 
Смотри вот как я могу сделать чтобы командой можно менять с true на false?
private static boolean flag = false;

public static void toggle() {
flag = !flag;
}

Вставляй это в команду и вызывай метод toggle(), а в слушателе поставь проверку.
 
c
private static boolean flag = false;

public static void toggle() {
flag = !flag;
}

Вставляй это в команду и вызывай метод toggle(), а в слушателе поставь проверку.
Могу сейчас ошибаться, а перед названием поля тут не нужно писать имя класса?
 
c

Могу сейчас ошибаться, а перед названием поля тут не нужно писать имя класса?
Вероятно ты путаешь присвоение значений и создание переменной. При создании переменной нужно явно указывать его тип, что и было показано в моем примере выше, когда я создал статический булиан... это же основы java..
 
Появилась проблема - мне надо чтобы при вводе команды вызывался ивент. Но находится обработчик команды не в главном классе.
Используй код который я дал выше.
Добавь в обработчик ивента условие
if (flag) {
//выполняется нужное действие
}

В команду или меню добавь
flag = !flag;

Если тебе нужно вызывать методы с главного класса, то создай конструктор в слушателе и передай ссылку на главный класс или создай статический метод который ссылается на этот класс.
 
Тебе только это поможет. Иди для начала основы яп изучи, а потом уже делай плагины.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх