Page 1 of 1

[0.14.3] Commands don't execute when no one is connected

Posted: Sat Sep 03, 2016 10:40 pm
by mickael9
When no one is connected to the server, console commands (either via stdin or RCON) are not handled until someone joins.
Steps to reproduce:

Code: Select all

$ factorio --create /tmp/save.zip
$ factorio -v --start-server /tmp/save.zip
/p
/h
/help
- Server console commands.
/quit - Terminates the server cleanly.
/save <name> - Saves the current game with the specified name.
... time passes ...
... someone joins ...
/admins - Prints a list of game admins.
/ban <player> <reason> - Bans the specified player.
/bans - Prints a list of banned players.
/color <color> - Changes your color. Available colors: black, blue, brown, cyan, gray, green, orange, pink, purple, red, white and yellow.
/c /command <command> - Executes a Lua command (if allowed).
/demote <player> - Demotes the player from admin.
/evolution - Prints info about the alien evolution factor.
/h /help <command> - Prints a list of available commands, the optional argument can specify the command that should be described.
/kick <player> <reason> - Kicks the specified player.
/measured-command <command> - Executes a Lua command (if allowed) and measures time it took.
/p /players - Prints a list of players in the game. (parameter online/o, it prints only players that are online, count/c prints only count)
/promote <player> - Promotes the player to admin.
/r /reply <message> - Replies to the last player that whispered to you.
/t /team Sends a message to all players with the same force.
/time - Prints info about how old the map is.
/unban <player> - Unbans the specified player.
/w /whisper <player> <message> - Sends a message to the specified player.
Players (1):
  mickael9
/admins - Prints a list of game admins.
/ban <player> <reason> - Bans the specified player.
/bans - Prints a list of banned players.
/color <color> - Changes your color. Available colors: black, blue, brown, cyan, gray, green, orange, pink, purple, red, white and yellow.
/c /command <command> - Executes a Lua command (if allowed).
/demote <player> - Demotes the player from admin.
/evolution - Prints info about the alien evolution factor.
/h /help <command> - Prints a list of available commands, the optional argument can specify the command that should be described.
/kick <player> <reason> - Kicks the specified player.
/measured-command <command> - Executes a Lua command (if allowed) and measures time it took.
/p /players - Prints a list of players in the game. (parameter online/o, it prints only players that are online, count/c prints only count)
/promote <player> - Promotes the player to admin.
/r /reply <message> - Replies to the last player that whispered to you.
/t /team Sends a message to all players with the same force.
/time - Prints info about how old the map is.
/unban <player> - Unbans the specified player.
/w /whisper <player> <message> - Sends a message to the specified player.
Interestingly enough, /help is different from /h.
Log file

Re: [0.14.3] Commands don't execute when no one is connected

Posted: Sun Sep 04, 2016 9:31 am
by kovarex
Thanks, I had to fix it (again). The error was related to the fact that we don't store "pending" actions on the server as he has no latency hiding. This means, that we had to look at other place to check whether the server should be updated.

Re: [0.14.3] Commands don't execute when no one is connected

Posted: Sun Sep 04, 2016 2:59 pm
by mickael9
What about /h having different output than /help ? Is this intended or should I make another bug report?

Re: [0.14.3] Commands don't execute when no one is connected

Posted: Sun Sep 04, 2016 4:16 pm
by kovarex
/h and /help should have the same output.

Btw. I changed the output of /help for 0.14.4, so it doesn't spam so much.

Re: [0.14.3] Commands don't execute when no one is connected

Posted: Tue Sep 06, 2016 8:08 pm
by mickael9
kovarex wrote:/h and /help should have the same output.
Ah, you didn't notice? /help adds a prefix that /h does not show.

Code: Select all

/h
Type /h <command> to get details of it.
Available commands are: /admins /ban /bans /color /command /demote /evolution /help /kick /measured-command /players /promote /reply /shout /time /unban /whisper

Code: Select all

/help
- Server console commands.
/quit - Terminates the server cleanly.
/save <name> - Saves the current game with the specified name.

Type /h <command> to get details of it.
Available commands are: /admins /ban /bans /color /command /demote /evolution /help /kick /measured-command /players /promote /reply /shout /time /unban /whisper
Worse, it also happens when giving an argument:

Code: Select all

/h ban
/ban <player> <reason> - Bans the specified player.

Code: Select all

/help ban
- Server console commands.
/quit - Terminates the server cleanly.
/save <name> - Saves the current game with the specified name.

/ban <player> <reason> - Bans the specified player.