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

Срабатывание кода на все команды

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

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

    OcelotJungle Активный участник

    Баллы:
    61
    Имя в Minecraft:
    OcelotJungle
    Мне нужно, чтобы мой код срабатывал не только при выполнении команды из моего плагина, но и когда выполняется ванильная команда. Как я могу это сделать?

    Вообще, мне нужно отслеживать срабатывания КБ на сервере и менять в них одну команду на другую. Была идея использовать ChunkLoadEvent и циклом перебрать все блоки во всём чанке, но там свои проблемы и я решил поискать другой способ.

    Например, из Кб выполняется команда /tps, срабатывает мой плагин и переписывает команду.
     
  2. Хостинг MineCraft
    <
  3. TheZefirrkka

    TheZefirrkka Активный участник Пользователь

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    PlayerCommandPreprocessEvent
     
  4. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Не сработает.
     
  5. TheZefirrkka

    TheZefirrkka Активный участник Пользователь

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    Почему?
     
  6. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Ну а ты подумай почему.
     
  7. TheZefirrkka

    TheZefirrkka Активный участник Пользователь

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    Код:
       @EventHandler
       public void onInventoryClick(PlayerCommandPreprocessEvent e)
       {
         if (e.getMessage().equalsIgnoreCase("/tps")) {
    //...
     
  8. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Не сработает. КБ не игрок.
     
  9. Автор темы
    OcelotJungle

    OcelotJungle Активный участник

    Баллы:
    61
    Имя в Minecraft:
    OcelotJungle
    Мне нужно срабатывание на выполнение команды из КБ. Такое событие есть?
     
  10. AtomicInteger

    AtomicInteger Активный участник Пользователь

    Баллы:
    46
    Вот тут, в разделе command-block-overrides сказано что можно перезаписывать команды командного блока, но так как BukkitAPI "не имеет власти" над кодом Mojang'a, то результат они не гарантируют.
     
  11. Автор темы
    OcelotJungle

    OcelotJungle Активный участник

    Баллы:
    61
    Имя в Minecraft:
    OcelotJungle
    Нет, это не то. Нужно переписать именно те команды, которые введены в КБ в игре.
     
  12. Sonicxd2

    Sonicxd2 Активный участник Пользователь

    Баллы:
    76
    Евент использования редстоуна на блоке: BlockRedstoneEvent
     
  13. Автор темы
    OcelotJungle

    OcelotJungle Активный участник

    Баллы:
    61
    Имя в Minecraft:
    OcelotJungle
    Пробовал, но он не реагирует на срабатывание Цепочных КБ. Реагирует на Импульсный и первый Цепочный, остальные игнорируются.
     
  14. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    ну можно попробовать ConsoleCommandEvent[DOUBLEPOST=1480684566,1480684360][/DOUBLEPOST]ServerCommandEvent*
     
  15. Автор темы
    OcelotJungle

    OcelotJungle Активный участник

    Баллы:
    61
    Имя в Minecraft:
    OcelotJungle
    Увы, срабатывает только из консоли.
     
  16. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    PacketPlayInCustomPayload
    p.s protocollib
    p.s.s
    // 1.10
    Код:
    this.mc.getConnection().sendPacket(new CPacketCustomPayload("MC|AutoCmd", packetbuffer));
    // 1.8.8
    Код:
                    this.mc.getNetHandler().addToSendQueue(new C17PacketCustomPayload("MC|AdvCdm", var2));
     

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