Commit graph

117 commits

Author SHA1 Message Date
James R
8486a9386d serverinfo: enumerate refusereason 2021-05-10 18:10:16 -07:00
James R
22bfc2db78 Refactor HandleConnect refusals
Also removed some version fields from serverconfig_pak and
clientconfig_pak. Client version will be checked with
SRB2APPLICATION and MODVERSION.

Not updating PACKETVERSION because those packets shouldn't
have been packetversion'd in the first place.
2021-05-10 17:50:01 -07:00
Louis-Antoine
50d2c95470 Merge branch 'next' of https://git.do.srb2.org/STJr/SRB2.git into resend-gamestate 2020-10-24 16:21:44 +02:00
Lachlan Wright
92b61aacd8 Merge branch 'name-change-spam' into 'next'
Don't let players change their name more than five times per minute

See merge request STJr/SRB2!1155
2020-09-25 09:36:39 -04:00
Lachlan Wright
86252cbea7 Merge branch 'more-nodes' into 'next'
Increase MAXNETNODES, show more servers in the server browser

See merge request STJr/SRB2!1106
2020-09-25 08:24:16 -04:00
James R
b655fa496e Don't let players change their name more than five times per minute
(ported 17f75903b029bbf01217153dc98009d305137c8f and 11ddcfa9a1f2311ec67377b76ed1160ef14b7f60)
2020-09-22 12:04:28 -07:00
Louis-Antoine
9dd5c11322 Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2.git into resend-gamestate
# Conflicts:
#	src/d_clisrv.c
#	src/d_clisrv.h
#	src/d_net.c
#	src/p_saveg.c
#	src/p_saveg.h
2020-08-13 13:53:10 +02:00
James R
cd30f0e933 Match MAXSERVERLIST to MAXNETNODES, increase MAXNETNODES
Each server in the server list requires a node. It's also MAXNETNODES-1 because
the first node is yourself.

(cherry picked from commit 1484f0484f6c22382b2cae955a93c01f83d54655)
2020-08-08 15:13:21 -07:00
James R
54e446199d Merge remote-tracking branch 'origin/next' into http-mserv 2020-08-08 15:05:03 -07:00
Steel Titanium
e9a03401cb Port netticbuffer from Kart 2020-07-19 15:24:27 -04:00
James R
479bbeacbe Merge remote-tracking branch 'origin/next' into http-mserv 2020-07-11 17:41:46 -07:00
Louis-Antoine
65054bd0aa Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2.git into increase-input-buffer-more 2020-06-21 01:20:39 +02:00
LJ Sonic
7ffee074d8 Merge branch 'next' into 'better-download'
# Conflicts:
#   src/d_clisrv.c
2020-06-10 07:57:49 -04:00
LJ Sonic
715cb857f5 Merge branch 'next' into 'better-download'
# Conflicts:
#   src/sdl/i_system.c
#   src/win32/win_sys.c
2020-06-01 08:16:53 -04:00
LJ Sonic
e2b860dc28 Merge branch 'next' into 'fix-spawn-desynch'
# Conflicts:
#   src/p_map.c
2020-06-01 08:15:02 -04:00
SteelT
1c42102ddb Merge branch 'fix-input-buffer' into 'next'
Allow input buffer to hold more than 64 tics

See merge request STJr/SRB2!950
2020-05-28 11:27:39 -04:00
Louis-Antoine
67eef5a37f Fix potential desynch when a player spawns 2020-05-28 11:03:35 +02:00
SwitchKaze
b37c73b008 Make colors UINT16, increase color freeslots to 1024 2020-05-23 19:35:36 -05:00
Louis-Antoine
bf00955786 Wait for acks before resending file fragments 2020-05-20 16:21:18 +02:00
Louis-Antoine
37d2796b91 Increase the length of the player input buffer even more 2020-05-18 12:35:55 +02:00
Louis-Antoine
56cc5190e5 Allow input buffer to hold more than 64 tics 2020-05-18 11:34:09 +02:00
Louis-Antoine
e49d3d0bb9 Use per-node reference tics in ExpandTics 2020-05-17 20:23:07 +02:00
Louis-Antoine
fc07db26c0 Store starttic as a raw value in PT_SERVERTICS packets
This avoids some desynch issues and is simpler to handle.
Those packets are always big anyway, so the difference is irrelevant.
2020-05-17 20:09:11 +02:00
Louis-Antoine
3c7c758d17 Rewrite file transfer code
This code uses a custom packet acknowledgement system,
which is more suited for file transfer and does not suffer from
the small sender window used by the default acknowledgement system
2020-05-16 22:09:00 +02:00
James R
f9ec2a634c Fix switching the master server 2020-05-13 17:26:34 -07:00
James R
7ebde22b77 Make mod update, room list and server list multithreaded
This took fucking ages and it still fails sometimes in edge cases, but I
don't give a FUCK right now.
2020-05-13 17:24:27 -07:00
Louis-Antoine
9ec4ba3824 Add a minimum delay between connections 2020-04-24 14:05:15 +02:00
James R
536fb1ef2a Merge remote-tracking branch 'origin/master' into next 2020-04-18 17:20:33 -07:00
James R
4214397679 Make the PACKETVERSION rule easier 2020-04-12 17:05:18 -07:00
Louis-Antoine
e3cbdf8fab Use HAVE_BLUA as fuel for my fireplace 2020-03-19 18:36:14 +01:00
LJ Sonic
c43ca31dc2 Merge branch 'increase-input-buffer' into 'next'
Increase the length of the player input buffer

See merge request STJr/SRB2!835
2020-03-18 09:49:14 -04:00
LJ Sonic
0a54c40ff4 Merge branch 'fix-playernode-crash' into 'next'
Fix buffer overrun with players with no associated node

See merge request STJr/SRB2!810
2020-03-15 15:36:45 -04:00
Louis-Antoine
04a1f479be Increase the length of the player input buffer 2020-03-02 15:36:28 +01:00
LJ Sonic
60cd6fe986 Merge branch 'next' into 'resend-gamestate'
# Conflicts:
#   src/d_clisrv.c
2020-03-01 12:35:53 -05:00
LJ Sonic
2cace6e147 Merge branch 'lua-io' into 'next'
Support for Lua's I/O library

See merge request STJr/SRB2!727
2020-03-01 11:12:45 -05:00
Louis-Antoine
846560910d Obliterate resynch
Okay, more precisely this substitutes the old resynch with
the newly added gamestate resend code.
2020-03-01 03:22:47 +01:00
Louis-Antoine
29d8389461 Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2.git into resend-gamestate 2020-02-29 13:43:47 +01:00
Louis-Antoine
4f7591a044 Rename packet 2020-02-29 13:40:15 +01:00
Louis-Antoine
af9164f336 Improve join refusal handling 2020-02-22 02:17:21 +01:00
James R
7060083db5 Update copyright year to 2020 2020-02-19 14:08:45 -08:00
Louis-Antoine
12959ff4a9 Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2.git into lua-io 2020-02-19 22:40:54 +01:00
Louis-Antoine
d02c4c0cc7 Add "resendgamestate" command 2020-01-31 15:57:04 +01:00
Louis-Antoine
014b93406e Store most data in gamestate instead of server config packet 2020-01-31 15:29:22 +01:00
Louis-Antoine
e8760fe5dd Update Lua I/O support to 2.2 2020-01-22 23:08:57 +01:00
Louis-Antoine
f209721ded Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2.git into keep-body
# Conflicts:
#	src/g_game.c
#	src/p_setup.c
2020-01-22 03:57:22 +01:00
Louis-Antoine
d374bf4f9b Let clients rejoin the server without losing their status
This is accomplished by simply preserving
the player's body after disconnecting.

Bodies will despawn after the number of minutes
specified by the "rejointimeout" console variable (float).
A value of 0 disables the feature completely.

Clients rejoining are identified by their IP address,
and may rejoin even if the server is full or joins are disabled,
for as long as their body remains.

From a technical standpoint, when the user disconnects,
the player they were controlling does not leave,
the underlying player_t just keeps working normally,
except it does not receive any input anymore.
When the user reconnects, they are simply "relinked"
to their player_t.

Those "soulless" players can be identified through
their "quittime" field, which is the number of tics
elapsed since the user disconnected, or zero
if still connected. "quittime" is exposed to Lua.
2020-01-22 03:05:08 +01:00
James R
339ceafdf0 Remove adminplayer from SERVERINFO (PACKETVERSION 2) 2020-01-12 20:21:35 -08:00
James R
2b95ea0135 Merge remote-tracking branch 'origin/master' into next 2020-01-12 14:17:52 -08:00
Louis-Antoine
e9108de365 Replace all instances of XD_KICK with a SendKick function 2020-01-12 19:43:04 +01:00
Louis-Antoine
5b34923352 Fix node numbers being used in place of player numbers 2020-01-12 18:34:08 +01:00