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

Помогите Отловить эвент события консоли

LaoTheLizard

Старожил
Пользователь
Баллы
103
Скачал DynMapAPI, чтобы отловить событие DynmapWebChatEvent. Написал листенер. Из-за него другие листенеры в пределах плагина перестали работать. Как исправить - не знаю. Решил пойти другим путем. Сообщение с карты DynMap видно в консоли. Вот и думаю отловить его оттуда. Только какой эвент слушать - не знаю.
 
Вы хотите запретить писать в чат там, или что?
 
Скачал DynMapAPI, чтобы отловить событие DynmapWebChatEvent. Написал листенер. Из-за него другие листенеры в пределах плагина перестали работать.
Это явно ненормально, и лучше показать код.
 
Просто я написал себе плагин ведения лога чата игры. И хочу, чтобы в лог писалось также сообщение, присланное из веб-интерфейса карты DynMap.

//LOGGING DYNMAP CHAT
@EventHandler
public void onMapChat(DynmapWebChatEvent event){

log.info(event.getEventName());
log.info(event.getMessage());
log.info(event.getName());
log.info(event.getSource());

}

Если я добавляю в плагин такой код (тестовый вариант блока) - он не работает, а остальные листенеры, когда он присутствует, тоже перестают работать. При этом в консоль никаких ошибок не выводится.
 
Просто я написал себе плагин ведения лога чата игры. И хочу, чтобы в лог писалось также сообщение, присланное из веб-интерфейса карты DynMap.

//LOGGING DYNMAP CHAT
@EventHandler
public void onMapChat(DynmapWebChatEvent event){

log.info(event.getEventName());
log.info(event.getMessage());
log.info(event.getName());
log.info(event.getSource());

}

Если я добавляю в плагин такой код (тестовый вариант блока) - он не работает, а остальные листенеры, когда он присутствует, тоже перестают работать. При этом в консоль никаких ошибок не выводится.
А если попробовать создать отдельный класс-листенер, то же самое?
 
А если попробовать создать отдельный класс-листенер, то же самое?
Создал отдельный класс и написал в нем так:
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.dynmap.DynmapWebChatEvent;

public class dmaplistener implements Listener {
@EventHandler
public void onMapChat(DynmapWebChatEvent event){
WebLog.log.info(event.getEventName());
WebLog.log.info(event.getMessage());
WebLog.log.info(event.getName());
WebLog.log.info(event.getSource());
}
}

Старые листенеры заработали. А этот - нет. Я обычно пишу в одном классе всё... Может, я должен был как-то обозначить существование этого класса в главном классе плагина? Или в этом что-то не дописал?
 
Если присмотреться повнимательней в лог то можно увидеть что баккит воет что класс DynmapWebChatEvent не найден. Так что либо ваш плагин грузится до дунмапа, либо у вас на сервер и не дунмапы.
 
Если присмотреться повнимательней в лог то можно увидеть что баккит воет что класс DynmapWebChatEvent не найден. Так что либо ваш плагин грузится до дунмапа, либо у вас на сервер и не дунмапы.

Присмотрелся. Не нашёл.
 

Вложения:

  • latest.zip
    latest.zip
    Размер файла
    3,2 КБ
    Просмотров
    2
Присмотрелся. Не нашёл.
А, так у вас же мод. Вам тогда либо нужен dynmap-cb-bridge, либо подписываться на эвентбас форджа(причём в работоспособности этого варианта я не уверен).
 
У меня и так стоит Dynmap cb bridge. И сама карта работает и доступна через браузер. И через браузер в игру (и из игры в браузер) доходят сообщения чата. И в консоли они видны так: http://pastexen.com/i/jfgQ6Htp42.png
Здесь первая строчка - это, видимо, судя по цветовым значкам, она так выводится в чат игры. Вторая - не знаю, зачем. Так вот, я хотел отлавливать сообщения из веб-интерфейса через эти сообщения. Можно ли их отслеживать?
 

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

Назад
Верх