Команда от имени консоли

Версия Minecraft
1.7.10
372
0
Пытаюсь написать так команду от имени сервера, но пишет что команда неверная

Код:
MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance();;
 ICommandManager icommandmanager = server.getCommandManager();
 icommandmanager.executeCommand(server, "say Hello world!");
 

tox1cozZ

aka Agravaine
8,456
598
2,892
Я конечно извиняюсь за дикий некропост, но столкнулся с данной проблемой.
Сервер как-то рандомно реагирует, то нормально исполняет команды, то говорит что команды не существует.
Никто не сталкивался?
 
3,005
192
592
А обязательно командой?
Может проще будет написать код, который будет выполняться?
Ну, если в кфг пишется какая команда должна выполняться и не работает только гив, проверяй, что если начало строки с команды начинается с гив, то выполняй не отправку команды, а код из гива напрямую.

P.S. Минус некропостов в том, что если будет лучший ответ, его не получить =/
 

tox1cozZ

aka Agravaine
8,456
598
2,892
Ребят, я понимаю что можно накостылять вот так. Но блин, мне интересно почему такое странное поведение у сервера.
Думал что из бд достаю битые данные, вывел в консоль их, скопировал и ручками выполнил - все пашет. Вообще магия какая-то.

P.S. Минус некропостов в том, что если будет лучший ответ, его не получить =/
Я могу поставить лучший ответ, если что. Не думаю что топикстартер обидится.
 
1,038
57
229
А можно узнать всю цепочку выполнения команды начиная с момента отправки. Начиная с того момента: Кто пишет команду и отправляет?
Сервер не может выполнить команду от своего имени, потому что он не игрок. Команду может запустить только ИГРОК. Мне по крайней мере так и не удалось запустить выполнение консольной команды в момент обработки другой команды.
А вот как предлагали выше: выполнить код команды (вытащив его предварительно в общий класс) - это можно. И это совсем не костыль, это нормальная работа серверного плагина и серверного мода.
 
Последнее редактирование:

tox1cozZ

aka Agravaine
8,456
598
2,892
Ой глупенький, есть интерфейс ICommandSender. Его реализует игрок, СЕРВЕР, командный блок и rcon-консоль.
И это совсем не костыль, это нормальная работа серверного плагина и серверного мода
Я не знаю заранее что исполнять. В базе может лежать как give, так и какой нибудь time set day.
 
7,099
324
1,510
Это вроде везде работает
 
3,005
192
592
Я не знаю заранее что исполнять.
Исполняй всегда от сервера.
Админ будет уже указывать, от кого запускать, если нужно будет от сервера - то просто команду, если от игрока, то есть плагины и sudo, вроде.
 
7,099
324
1,510
Так? MinecraftServer.getServer().getCommandManager().executeCommand(MinecraftServer.getServer(), "say test");
Или как у ТС?
 
Сверху