80 Commits

Author SHA1 Message Date
13e9723626 implement custom `SUE` command for handling api 2025-03-17 14:01:03 -07:00
b378ff2689 Merge pull request 'Buddy Precense Reporting' (#3) from buddy-precense into main
Reviewed-on: https://gitea.milenia.local.alanmoon.net/Moonbase/sodoff-mmo/pulls/3
2025-03-07 18:16:13 -08:00
12981bfa61 Merge pull request 'Messaging Extension Endpoints' (#2) from messaging into main
Reviewed-on: https://gitea.milenia.local.alanmoon.net/Moonbase/sodoff-mmo/pulls/2
2025-03-07 18:16:02 -08:00
a7aae8763e Merge pull request 'Moderation Commands' (#1) from moderation-commands into main
Reviewed-on: https://gitea.milenia.local.alanmoon.net/Moonbase/sodoff-mmo/pulls/1
2025-03-07 18:15:42 -08:00
6060d0ddbf implement buddy precense reporting 2025-03-07 17:47:17 -08:00
bea782504e add support for messaging 2025-03-03 17:01:42 -08:00
aa85aeab32 add exception handling to `ApiWebService`
improve ``BanCommand`` API response handling
2025-03-02 15:54:49 -08:00
1edbbde74c rework `BanCommand` to take in a user id of someone in the room instead of a full guid
edit comment at ``ApiUrl`` in appsettings.json
2025-03-02 15:17:55 -08:00
53db86f3c7 implement `ApiWebService`
change ``ChatMessageHandler`` and ``BanCommand`` to use it
2025-03-02 14:52:58 -08:00
e1c19b792c require authentication
send ``SMF`` if chat ban is detected
2025-02-27 18:57:30 -08:00
998efe5624 add `UserBanType` schema from API
modify ``ChatMessageHandler.Chat`` to check for bans before sending out message
2025-02-27 18:00:46 -08:00
86b9d39266 implement `BanCommand` 2025-02-27 17:39:39 -08:00
Robert Paciorek
783d02d4b2 exploits protection bugfixes 2025-01-04 22:33:25 +00:00
Hipposgrumm
158ac4ee21
Support for Math Blaster Ambassador Funzones (#5)
Added ambassador support (for Math Blaster).
Tons of config options too.

* Moved ambassador room controlling to seperate class.
* More changes to appease the Pull Request.
2024-12-30 10:54:53 +01:00
Hipposgrumm
c06cfb4d17
Support for Eat My Dust (#4)
* Support for Eat My Dust
Zombie Alert manager is stubbed.
Added helpers to allow for weapon MMO.
PlayerData for Eat My Dust

* Zombie Alert Added
* Fix Zombie Alert Timing
* Honestly should probably catch this exception [null room in PM handler]. I foresee it occurring very commonly. While it shouldn't halt the server (except in visual studio debug), it's annoying to see.
2024-12-29 17:05:32 +01:00
Robert Paciorek
d2a11b04e2 bugfix for event version of battle ships 2024-10-12 11:11:11 +00:00
rpaciorek
7d96a03042
implement JL (Join LIMBO) command
Join Limbo command based on Alan Moon PR

---------

Co-authored-by: Alan Moon <alanmoonbase2004@gmail.com>
2024-08-19 21:19:48 +02:00
Robert Paciorek
7321b95821 room alerts configuration via appsettings.json
thanks to HaiFire for alert config for SS
2024-08-12 15:39:40 +00:00
Hipposgrumm
883214cb57 Disabled Joining Ongoing Alerts (#4)
Ongoing alerts will no longer be sent when a player joins that room.
Code for the functionality remains in case there is want to re-enable it (assuming it gets fixed).
2024-08-12 10:19:46 +00:00
Hipposgrumm
65eeb7dd53 Added support for Red Alert and Disco Alert (#3)
Revamped entire room Alerts system.
Merged RoomWithAlert into Room (as part of the revamp).

This added support for Red Alert and Disco Alert.
This meant that I had to revamp the room alerts system to allow for multiple alerts per room.
Events hopefully shouldn't overlap each other in the same room.
An extra feature is that an alert will start for a player that has just entered the room (with a duration reduced based on when the alert initially started). I shoved this functionality's working into SetUserVariablesHandler on line 30. This feature doesn't seem to work when leaving a non-MMO rooms such as minigames (may be related to missed JL command).
2024-08-12 10:19:46 +00:00
Robert Paciorek
518c01c43f add support for dance alert 2024-08-12 10:19:41 +00:00
Robert Paciorek
0f161d899c fixes for SuperSecret
- added logout handler
- support for api 0.x (MID as string)
- support for using SUV insted of SPV
- use zoneName from login request when no roomName in join room request
2024-04-22 02:48:37 +00:00
Robert Paciorek
7288957a78 add EventName settings variable 2024-04-10 20:47:37 +00:00
Robert Paciorek
dcb0644af4 add Optional Authentication mode
this allow run managment command (after authentication) on open mmo servers (with player from external api servers)
2024-04-09 16:53:17 +00:00
Spirtix
87a199fc19 ManagementCommands: list and disable all chats 2024-04-08 21:40:38 +02:00
Robert Paciorek
80b8874d50 fix SPV CUP sending condition 2024-04-07 17:05:13 +00:00
Spirtix
ac2b8d72ff fix management command condition 2024-04-07 17:12:09 +02:00
Spirtix
b3724d9882 correct SPV CUP type 2024-04-07 16:50:37 +02:00
Spirtix
4cf58fd1db fix room send concurrency 2024-04-07 16:41:55 +02:00
Spirtix
c60fe8a2fa Revert "use ReaderWriterLockSlim for lock Room.clients"
This reverts commit a4039451f30ef2c1bb90b7ca47b42ba4a3076de6.
2024-04-07 16:40:34 +02:00
Spirtix
90457b6c78 chat commands 2024-04-07 15:42:36 +02:00
Spirtix
854d1c0b0a management commands 2024-04-07 15:42:28 +02:00
Robert Paciorek
146b366e44 fix Public Message, add option to disable Events
- Position info and Boxes on races works (thanks to Public Message fix)
2024-04-07 15:42:25 +02:00
Robert Paciorek
8ca7b51161 rework PlayerData, SUV and SPV handlers 2024-04-07 15:42:25 +02:00
Robert Paciorek
a4039451f3 use ReaderWriterLockSlim for lock Room.clients 2024-04-07 15:42:25 +02:00
Robert Paciorek
d0c1839b11 use async handlers, add delay in PingHandler
client do NOT like ping < 16ms (considers it to be zero and this disables updates to other players' positions) ... so add some delay in PNG handler
2024-04-07 15:42:25 +02:00
Robert Paciorek
04b906b21c add "JO" handler, fix "NT" value, support for WoJS
- add "JO" handler (private room join, like farm)
- "NT" param should be Unix timestamp in milliseconds
- "MBF" is not used by some games (e.g. WoJS)
2024-04-07 15:42:25 +02:00
Spirtix
a03f6b8dc0 user authentication 2024-04-07 15:42:21 +02:00
Robert Paciorek
08b74957a8 use MMOServer in appsettings.json for config
and improved run.sh
2024-03-28 10:40:54 +00:00
Robert Paciorek
82e83722da fix client stay in room and add Room.Send
- fix client stay in room:
  - replace Client.JoinRoom and Client.LeaveRoom by Client.SetRoom
  - do not call Client.LeaveRoom / Client.SetRoom(null) for SheduleDisconnect cases
    (only quietly remove client from room and the rest do in disconnect realisation)
- add Room.Send for send message to all clients in room
  - replace Room.Client sending loops by calls Room.Send
2024-03-24 21:29:57 +00:00
Robert Paciorek
fa0870784a add run.sh/bat, simplify/update docker config, ...
- add run.sh and run.bat
- change docker config
  - by default include source in docker image for simple debug (can be disabled via uncoment section in Dockerfile)
  - add docker-compose.yml
- change default time to start first battle event after server start (login first player) to 3 minutes
2024-03-19 20:45:56 +00:00
Robert Paciorek
445d032a74 bugfix in JoinRoom 2024-03-16 20:11:33 +00:00
Robert Paciorek
83e56f745d fix possible race condition in JoinRoom 2024-03-09 19:05:03 +00:00
Robert Paciorek
6a34677ab2 keep some PlayerData while changing room
this is needed when several players are joined in a short time to fix race condition
(to fix missing players in race lobby room)
2024-03-09 17:05:56 +00:00
Robert Paciorek
13248e70c3 add main lobby countdown 2024-03-07 01:29:56 +00:00
Robert Paciorek
cf41c0175a fix race condition issues - WorldEvent and others 2024-03-06 12:18:44 +00:00
Robert Paciorek
c909d07462 code quality fixes 2024-03-02 11:29:40 +00:00
Robert Paciorek
f1865bd4a3 bugfix 2024-03-02 00:04:22 +00:00
Robert Paciorek
c35226cc4e fix lobby players list and racing room management 2024-03-01 23:27:17 +00:00
Robert Paciorek
aa373cd2a9 support for Thunder Run Racing 2024-03-01 02:42:13 +00:00