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

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

Discussion in 'Разработка плагинов для новичков' started by LaoTheLizard, Dec 20, 2014.

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

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

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

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

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

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

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

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

    Trophy Points:
    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 Старожил Девелопер Пользователь

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

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

    Trophy Points:
    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 Старожил Пользователь

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

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

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

    Attached Files:

  10. Shevchik

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

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

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

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

Share This Page