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

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

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

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

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

    Баллы:
    103
    Skype:
    sgp_the_controller
    Скачал DynMapAPI, чтобы отловить событие DynmapWebChatEvent. Написал листенер. Из-за него другие листенеры в пределах плагина перестали работать. Как исправить - не знаю. Решил пойти другим путем. Сообщение с карты DynMap видно в консоли. Вот и думаю отловить его оттуда. Только какой эвент слушать - не знаю.
     
  2. Хостинг MineCraft
    <
  3. ql_Nik_lp

    ql_Nik_lp Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    Вы хотите запретить писать в чат там, или что?
     
  4. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Это явно ненормально, и лучше показать код.
     
  5. Автор темы
    LaoTheLizard

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

    Баллы:
    103
    Skype:
    sgp_the_controller
    Просто я написал себе плагин ведения лога чата игры. И хочу, чтобы в лог писалось также сообщение, присланное из веб-интерфейса карты 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());

    }

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

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    А если попробовать создать отдельный класс-листенер, то же самое?
     
  7. Автор темы
    LaoTheLizard

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

    Баллы:
    103
    Skype:
    sgp_the_controller
    Создал отдельный класс и написал в нем так:
    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());
    }
    }

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

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Если присмотреться повнимательней в лог то можно увидеть что баккит воет что класс DynmapWebChatEvent не найден. Так что либо ваш плагин грузится до дунмапа, либо у вас на сервер и не дунмапы.
     
  9. Автор темы
    LaoTheLizard

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

    Баллы:
    103
    Skype:
    sgp_the_controller
    Присмотрелся. Не нашёл.
     

    Вложения:

    • latest.zip
      Размер файла:
      3,2 КБ
      Просмотров:
      1
  10. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    А, так у вас же мод. Вам тогда либо нужен dynmap-cb-bridge, либо подписываться на эвентбас форджа(причём в работоспособности этого варианта я не уверен).
     
  11. Автор темы
    LaoTheLizard

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

    Баллы:
    103
    Skype:
    sgp_the_controller
    У меня и так стоит Dynmap cb bridge. И сама карта работает и доступна через браузер. И через браузер в игру (и из игры в браузер) доходят сообщения чата. И в консоли они видны так: http://pastexen.com/i/jfgQ6Htp42.png
    Здесь первая строчка - это, видимо, судя по цветовым значкам, она так выводится в чат игры. Вторая - не знаю, зачем. Так вот, я хотел отлавливать сообщения из веб-интерфейса через эти сообщения. Можно ли их отслеживать?
     

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