Commit Graph

206 Commits

Author SHA1 Message Date
Robin C. Ladiges f0d837190a only warn about the Discord channel settings when a Token is set
Servers that don't use Discord (default settings) don't need to be warned about not setting Discord channels.
2022-10-10 19:37:37 -06:00
Robin C. Ladiges 122a3cd80d fix: don't output empty player IDs or RemoteEndPoints in the log
Make and use a copy of the RemoteEndPoint at the start of the HandleSocket method.
Because in some cases when the socket is disposed, the RemoteEndPoint inside of it is cleared and isn't available for the following disconnect log entries.
Also: port scanners on the internet don't introduce themselves with a name and ID.

(cherry picked from commit 2f4cd0509a)
2022-10-10 11:13:32 -06:00
Robin C. Ladiges 69cef89953 fix: on reconnect do not disconnect the new client
Currently when a client connects that is already there,
the old socket is closed, and the code tries to reuse the existing client object by exchanging its socket.

Reusing the same client object and just changing its socket does cause issues though with copies of the client in other threads.
In the situations that I could reproduce, it always disconnected both sockets, the old one and then the new one.

Instead I make a copy of the client object, use the new socket, remove the old object and add the new object to the collection.

(cherry picked from commit 9e6c312c8e)
2022-10-10 11:12:28 -06:00
Robin C. Ladiges 6285abfc4e slightly increase docker build
The restore command doesn't need the full source code, but just the .csproj files.

(cherry picked from commit 391d020385)
2022-10-10 11:10:19 -06:00
Robin C. Ladiges 472c8856bc move the client.CurrentCostume update to the PacketHandler and log the packet
(cherry picked from commit 47505dbdd5)
2022-10-10 11:09:39 -06:00
Robin C. Ladiges 53442b598e only start listening for clients once everything is initialized
Otherwise clients might connect to the server before everything is ready for them.
E.g. when restarting the server, the clients will immediately try to reconnect.

Clients might connect before the `PacketHandler` is initialized, which results in some packets not being processed by the server correctly.

Same goes for the commands: Discord might send in commands before all commands were added to the `CommandHandler`.

Without the `ClientJoined` action, clients might even be allowed to connect if they are on the banlist.
(Though without this initialization they or regular clients might be broken in some ways?)

(cherry picked from commit 92e540aaa6)
2022-10-10 11:08:38 -06:00
Robin C. Ladiges 92d4bdd195 better DiscordBot channel exceptions
currently it always outputs `Failed to get log channel \"{Config.CommandChannel}\"` regardless if the error was with the command channel or the log channel.

await Run(); doesn't need to be in a try-catch block, because it has a try-catch block itself in it.
2022-09-07 10:36:57 -06:00
Robin C. Ladiges c41499f953 remove unused label
git cherry-pick accidentially picked up a line from another commit for the JSON API
2022-09-07 10:35:26 -06:00
Robin C. Ladiges 76fc4a80a6 only broadcast the DisconnectPacket if the client was connected
Otherwise port scans, banned players or clients failing to initialize correctly,
will cause the server to send unnecessary packets to all connected clients.

They currently are informed about a disconnect for a client that hasn't even connected correctly.

(cherry picked from commit 4b04a3d5be)
2022-09-07 10:35:26 -06:00
Jack Baron e14616030c move clear task 2022-09-05 18:56:24 -06:00
Jack Baron 24a34c35a1 ignore file not found errors 2022-09-05 18:56:24 -06:00
TheUbMunster 783b876e09 You can run commands in the command channel or log channel 2022-08-22 18:58:42 -06:00
TheUbMunster 4d743b3e1b Made changes for pr, cleaned up formatting 2022-08-22 18:58:42 -06:00
TheUbMunster 67a740dec9 By default bot does not respond to dm with error message 2022-08-22 18:58:42 -06:00
TheUbMunster 4c4ce35f14 Removed some log messages as they would trigger before prefix checking, would start spamming the server if they remained 2022-08-22 18:58:42 -06:00
TheUbMunster 86fb18962f Differentiated command channel and log channel 2022-08-22 18:58:42 -06:00
TheUbMunster 06e3b5d40a Made debug message simpler 2022-08-22 18:58:42 -06:00
TheUbMunster 02f936816c Clarified log message 2022-08-22 18:58:42 -06:00
TheUbMunster 82e94334c9 added log message that prints the channel the command came from and the channel commands are accepted from 2022-08-22 18:58:42 -06:00
TheUbMunster b6e634ada4 changed isPrivate check to type check of "is DiscordDmChannel" 2022-08-22 18:58:42 -06:00
TheUbMunster d828a704c1 Updated with Sanae's no private channel logic.
Behavior: No DM'ing commands under any circumstance
if Config.LogChannel == null, commands can be in any non-private channel
if Config.LogChannel != null, commands can only be in the log channel
2022-08-22 18:58:42 -06:00
TheUbMunster 08d1020770 You can no longer dm a bot for a command (has been tested) 2022-08-22 18:58:42 -06:00
Sanae 9c01f30c5e Add the ability to disable shine sync 2022-08-20 23:31:31 -06:00
Piplup cee8bd580f cleared up some confusion 2022-08-10 15:04:00 -06:00
Piplup fa1db28037 added PersistShines 2022-08-10 15:04:00 -06:00
raym55 c86be55717 PIPERS 2022-08-10 15:03:34 -06:00
Piplup 31361d54ca a little change to the readme 2022-08-02 18:01:59 -06:00
Piplup 427acbcf88 updated readme with tty inputs 2022-08-02 18:01:59 -06:00
Piplup 75eea98d8e added TTY input 2022-08-02 18:01:59 -06:00
Sanae e7a3347a37
Merge pull request #19 from TheUbMunster/restart-command 2022-07-29 13:19:04 -06:00
Sanae fcea1d898e
Merge pull request #22 from TheUbMunster/fix-discord-2000-charlimit 2022-07-29 12:55:50 -06:00
TheUbMunster 8baf75155e removed testing code 2022-07-29 12:55:14 -06:00
TheUbMunster fc2f9b1417 "banning the same person multiple times" should now be fixed 2022-07-29 12:55:14 -06:00
TheUbMunster 33fdd69e15 readded persisten shinies 2022-07-29 12:55:14 -06:00
TheUbMunster 5af8001398 Fixed adding quotes around Ambiguous for "user": , fixed showing correct casing of arguments. 2022-07-29 12:55:14 -06:00
TheUbMunster ba02c88b13 added !* variants for ban, crash, rejoin 2022-07-29 12:55:14 -06:00
TheUbMunster 3b8ba17217 fix #14 2022-07-29 12:55:01 -06:00
TheUbMunster 95c918b5c4 Removed fire-and-forget warnings, null-forgave some metadata. 2022-07-29 12:55:01 -06:00
TheUbMunster 8350133d49 Fixed "Couldn't determine a response for this query" and removed testing command. 2022-07-29 11:16:24 -06:00
TheUbMunster d3b8ede229 Messages are now split up into lengths small enough to not cause the discord bot to throw an exception with too long a message. 2022-07-28 19:16:24 -06:00
TheUbMunster 216db7ba15 Merge branch 'restart-command' of https://github.com/TheUbMunster/SmoOnlineServer into restart-command 2022-07-28 18:00:22 -06:00
TheUbMunster 3a8e7ffb93 Changed "Running (pid)" to "Server Running on (pid)" 2022-07-28 18:00:18 -06:00
TheUbMunster 12c84792e8 Changed "Running (pid)" to "Server Running on (pid)" 2022-07-28 17:57:56 -06:00
TheUbMunster d2c8c8d3cd Fixed race condition with restart to make sure it only happens after the listener closes. 2022-07-28 00:11:40 -06:00
TheUbMunster 068cc7c06d Added restart server command 2022-07-27 23:56:50 -06:00
Sanae 66114bdecb
Always update client's name on connect
Since the client variable would be changed in a reconnect, the name is not set on the old client object.
2022-07-27 14:00:58 -06:00
TheUbMunster db05586dd0 Added quotable arguments, potential fix for ban * not banning anyone. 2022-07-27 12:14:56 -06:00
TheUbMunster d604c59a77 Added quotable arguments, potential fix for ban * not banning anyone. 2022-07-27 12:14:56 -06:00
TheUbMunster 5ca5b10db8 Fixed backwards ternaries in ban, crash, rejoin, 0 arguments no longer valid. 2022-07-27 12:14:56 -06:00
Jack Baron f305c3001b save/load moons from file 2022-07-22 18:56:00 -06:00