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

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

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

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

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

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

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

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

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

    Trophy Points:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    PlayerCommandPreprocessEvent
     
  4. slavik123123123

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

    Trophy Points:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Не сработает.
     
  5. TheZefirrkka

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

    Trophy Points:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    Почему?
     
  6. slavik123123123

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

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

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

    Trophy Points:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    Code:
       @EventHandler
       public void onInventoryClick(PlayerCommandPreprocessEvent e)
       {
         if (e.getMessage().equalsIgnoreCase("/tps")) {
    //...
     
  8. slavik123123123

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Trophy Points:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    PacketPlayInCustomPayload
    p.s protocollib
    p.s.s
    // 1.10
    Code:
    this.mc.getConnection().sendPacket(new CPacketCustomPayload("MC|AutoCmd", packetbuffer));
    // 1.8.8
    Code:
                    this.mc.getNetHandler().addToSendQueue(new C17PacketCustomPayload("MC|AdvCdm", var2));
     

Share This Page