Плагин [FUN/FIX] TrueCommand 1.0 - пишем команду в верной раскладке [1.1 - ∞]

  • Автор темы Автор темы Den_Abr
  • Дата начала Дата начала
Случайно заметил это:
[15:54:58] [Async Chat Thread - #12/INFO]: MrMersik issued server command: ///
[15:54:58] [Async Chat Thread - #12/ERROR]: Could not pass event PlayerCommandPreprocessEvent to TrueCommand v1.0
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[spigot.jar:git-Spigot-078e2f8-7f9fbe5]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-078e2f8-7f9fbe5]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot.jar:git-Spigot-078e2f8-7f9fbe5]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot.jar:git-Spigot-078e2f8-7f9fbe5]
at net.minecraft.server.v1_10_R1.PlayerConnection.handleCommand(PlayerConnection.java:1343) [spigot.jar:git-Spigot-078e2f8-7f9fbe5]
at net.minecraft.server.v1_10_R1.PlayerConnection.chat(PlayerConnection.java:1267) [spigot.jar:git-Spigot-078e2f8-7f9fbe5]
at org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer.chat(CraftPlayer.java:238) [spigot.jar:git-Spigot-078e2f8-7f9fbe5]
at ru.Den_Abr.TrueCommand.TrueCommandPlugin.onChat(TrueCommandPlugin.java:91) [TrueCommand.jar:?]
at sun.reflect.GeneratedMethodAccessor1233.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_101]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_101]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) [spigot.jar:git-Spigot-078e2f8-7f9fbe5]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [spigot.jar:git-Spigot-078e2f8-7f9fbe5]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot.jar:git-Spigot-078e2f8-7f9fbe5]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:484) [spigot.jar:git-Spigot-078e2f8-7f9fbe5]
at net.minecraft.server.v1_10_R1.PlayerConnection.chat(PlayerConnection.java:1273) [spigot.jar:git-Spigot-078e2f8-7f9fbe5]
at net.minecraft.server.v1_10_R1.PlayerConnection.a(PlayerConnection.java:1211) [spigot.jar:git-Spigot-078e2f8-7f9fbe5]
at net.minecraft.server.v1_10_R1.PacketPlayInChat$1.run(PacketPlayInChat.java:39) [spigot.jar:git-Spigot-078e2f8-7f9fbe5]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_101]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_101]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_101]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_101]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_101]
Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
at ru.Den_Abr.TrueCommand.TrueCommandPlugin.onCommandPreprocess(TrueCommandPlugin.java:110) ~[?:?]
at sun.reflect.GeneratedMethodAccessor578.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_101]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_101]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot.jar:git-Spigot-078e2f8-7f9fbe5]
... 22 more
 
Всё супер, нашёл баг. Когда пишу .ыфн привет то есть /say, в чате пишет вместо привет,ghbdtn.А так всё норм!
 
Искал плагин, и нашёл,нооо....
Тема создана 2013,
Сыллка нероботает((
 
Жаль конечно, что плагин более не обновляется. На 1.14.4 вроде норм работает, однако только вот в логах плагин гадит после каждой введенной команды. Вроде и не критично, раз работает, но и неприятно в то же время, что плагин загаживает логи после введенной команды.
 
Жаль конечно, что плагин более не обновляется. На 1.14.4 вроде норм работает, однако только вот в логах плагин гадит после каждой введенной команды. Вроде и не критично, раз работает, но и неприятно в то же время, что плагин загаживает логи после введенной команды.
Ну, если лениво искать кодера - можно воспользоваться каким-нибудь ConsoleSpamFix.
 
Ну, если лениво искать кодера - можно воспользоваться каким-нибудь ConsoleSpamFix.
Тут в принципе не совсем ясно, из-за чего он ошибкой спамит. Единственное, что выяснил - спамит только при попытке написать команду, начиная текст с точки. Если написать, например, /кудщфв, то команду выполнит, и спамить не будет. Причём как фиксить - без понятия. Декомпилировал вот, сижу, а понять причину не могу...
 
Тут в принципе не совсем ясно, из-за чего он ошибкой спамит. Единственное, что выяснил - спамит только при попытке написать команду, начиная текст с точки. Если написать, например, /кудщфв, то команду выполнит, и спамить не будет. Причём как фиксить - без понятия. Декомпилировал вот, сижу, а понять причину не могу...
Не парься. все равно херня. Напишут на украинской клаве и система сломается.
 
Не парься. все равно херня. Напишут на украинской клаве и система сломается.
Ай, пофиг, все равно просто повырезал нерабочий код, хех. Хотя бы от ошибок в консоли избавился. Ибо, как оказалось, он не может на текущем этапе отправлять от лица игрока команду, когда изначально было как обычное сообщение (начиналось с точки, к примеру), и работа с Tab'ом чудит. Поэтому избавился от этого. А что касается украинцев, то тут уже не знаю даже, можно, конечно, и для них фикс запилить в коде 🙂
 

Вложения

  • TC.zip
    TC.zip
    2,8 КБ · Просмотры: 10
Ай, пофиг, все равно просто повырезал нерабочий код, хех. Хотя бы от ошибок в консоли избавился. Ибо, как оказалось, он не может на текущем этапе отправлять от лица игрока команду, когда изначально было как обычное сообщение (начиналось с точки, к примеру), и работа с Tab'ом чудит. Поэтому избавился от этого. А что касается украинцев, то тут уже не знаю даже, можно, конечно, и для них фикс запилить в коде 🙂
А что насчет команд /рщьу? Набранных через открытие чата на клавишу "/", а не "T".
Тобиш тех же ошибочных команд (.рщьу и т.п.), только начинающихся со слеша (/рщьу и т.п.).

Только тут уже надо проверять команду на существование.
Ведь есть русские команды, типа /дом, /бонус и т.д.

Как надо проверять:
1. Реальное существование команды среди зарегистрированных
2. Если не найдена, то проверить еще через CommandPreprocessEvent с приоритетом LOWEST. Если эвент отменился - значит команда существует (просто добавлена алиас-менеджером, например моим любимым BetterAlias'ом)
 
А что насчет команд /рщьу? Набранных через открытие чата на клавишу "/", а не "T".
Тобиш тех же ошибочных команд (.рщьу и т.п.), только начинающихся со слеша (/рщьу и т.п.).

Только тут уже надо проверять команду на существование.
Ведь есть русские команды, типа /дом, /бонус и т.д.

1. Изначально пока что проверка идет именно команд, начинающихся с "/". Начинающиеся с точки пока что не проверяются - ранее используемый код вылетает с ошибкой потока
2. Проверку на существование на тот момент пока не разбирался, поэтому и делал без неё. Была цель под себя сделать рабочую оснастку из имеющегося, но за подсказку благодарю, хотя и полезнее она будет уже другим, нежели мне. Хотя надо будет тоже впиндюрить попробовать (плагин то изначально далеко не мой)
 
Написал свой TrueCommand_1.0.jar на протоколлибе. Должно быть получше чем на ивентах. Не заменяет текст, если на строке нет команды.
 
Назад
Верх Низ