Commit graph

6399 commits

Author SHA1 Message Date
Lucas Nicodemus
ee40ab0a52
Merge pull request #3031 from PotatoCider/general-devel
Rewrite: Partially fix bed spawning for SSC
2025-03-10 00:24:27 +09:00
Lucas Nicodemus
531ec1376c
Merge branch 'general-devel' into general-devel 2025-03-10 00:20:50 +09:00
Lucas Nicodemus
83db803016
Merge pull request #3060 from Arthri/fix-infinities
Bounce infinite or NaN player, projectile, or item velocity / position
2025-03-10 00:20:09 +09:00
Lucas Nicodemus
25644449e8
Merge branch 'general-devel' into fix-infinities 2025-03-10 00:16:22 +09:00
ohayo
1abb53b22e
Update TShockAPI/TSPlayer.cs
Oops

Co-authored-by: Chris <2648373+QuiCM@users.noreply.github.com>
2025-03-04 21:01:01 +10:00
ohayo
701a7d1ca0
Update TShockAPI/TSPlayer.cs
Co-authored-by: Chris <2648373+QuiCM@users.noreply.github.com>
2025-03-04 21:00:33 +10:00
Lucas Nicodemus
c9cbee104b
Merge pull request #3064 from LaoSparrow/handle-msg-24
fix(GetDataHandlers): handle and ignore `NpcItemStrike(msgid 24)`
2025-03-01 09:21:11 +09:00
LaoSparrow
740c5c9250 fix(GetDataHandlers): handle and ignore NpcItemStrike(msgid 24) 2025-03-01 03:53:13 +08:00
Lucas Nicodemus
8d186bbdcb
Merge pull request #3063 from LaoSparrow/fix-sendtilerecthandler
Fixes related to `SendTileRectHandler`
2025-03-01 04:05:10 +09:00
LaoSparrow
61e574ce72 docs(changelog): update entries 2025-03-01 02:18:20 +08:00
LaoSparrow
28aa3aea48 fix(Bouncer/SendTileRectHandler): tile rect changes not synced between clients && unable to place HatRack 2025-03-01 01:42:18 +08:00
LaoSparrow
1e23785a04 fix(Bouncer/SendTileRectHandler): MatchRemoval incorrect check range 2025-02-28 23:01:40 +08:00
ohayo
98eed425e2 Suppress logging of un-spawnable npcs
Not anything related to the handshake fixes, but still a nice fix which could help server owners deal with mischievous client users.
2025-02-12 21:51:14 +10:00
ohayo
56c5865043 Emergency bug fix for handshake on all/server player
The All Player does not have a valid state and because FinishedHandshake is false by default, they would never get time update packets, etc.
2025-02-11 07:47:14 +10:00
Joseph Goh
836cc33c8d rewrite: bed spawning for SSC 2025-02-10 11:42:36 +08:00
Arthri
64d819bebb Changelog entry 2025-02-08 07:18:06 +00:00
Arthri
2053213558 Bounce infinite or NaN velocity / position 2025-02-08 07:13:03 +00:00
ohayo
6d5fff83cf Prevent blank UUIDs from being banned
This fixes a bug with a bad actor getting banned with a blank client UUID and then preventing anyone from joining the server due to a lack of UUID on the Connect Request ban check.
2025-02-08 14:37:48 +10:00
ohayo
de142e419e I guess update the magic number here too? 2025-02-05 09:37:53 +10:00
ohayo
5a23073db5 Suggestions + fix last missed magic number 2025-02-05 09:33:36 +10:00
ohayo
72f529fcb1 Typo fix 2025-02-04 21:24:44 +10:00
ohayo
ce04d9d173 Remove magic number + Use suggestions by particles
Added a new ClientState enum based on code in Terraria.MessageBuffer.GetData & Terraria.Netplay.InnerClientLoop
2025-02-04 21:06:40 +10:00
ohayo
ff9cb9f858 Change the cast PacketTypes for 74 to its corresponding definition 2025-02-04 12:13:47 +10:00
ohayo
fa3c144274 Add necessary packets to a static hashset for further performance boosts
title
2025-02-04 11:28:09 +10:00
ohayo
52d1840003 Packet filtering for those who never finish the handshake
This also kicks those who never finish handshaking upon chat now. (To free up the resources a bit I guess?)

Before a player finishes the connection handshake, the server will check if it's necessary to send them a packet - it checks against a list of necessary packets like:

- ContinueConnecting (Send User Slot),
- PlayerSpawnSelf (CompleteConnectionAndSpawn),
- WorldInfo (Which the server does a further check if the player is at the appropriate state to be sent the world info)
- Status
- Disconnection
- TileFrameSection & TileSendSection
2025-02-04 11:07:10 +10:00
Luke
677426b746 Merge remote-tracking branch 'upstream/general-devel' into net9-upgrade 2025-02-02 16:43:59 +10:00
Luke
17e37dd8bd Utilise conditional docker base image
windows is no longer part of the 9.0 manifest
2025-02-02 16:36:28 +10:00
ohayo
b5d546a660 Remove debug logging (sorry haha) 2025-02-02 12:41:35 +10:00
ohayo
4f2fff050d Quick bug fix - forgot about respawns + only set handshake once
The connection state should NEVER be set to under 3 if the player is fully connected.
2025-02-02 12:40:04 +10:00
ohayo
4c01740177 Fix handshake stuff part 2
If the player has requested world data before sending the spawn player packet, they should be at state 3, otherwise they should be at state 1 for skipping it. Just check based on that instead.
2025-02-02 12:08:14 +10:00
Lucas Nicodemus
e4e28cb1b5
Version tick: 5.2.2 2025-02-01 22:32:36 +09:00
Lucas Nicodemus
134f80f5b8
Merge commit from fork
Missing ban validation in Connect Request allows TShock ban bypassing
2025-02-01 22:28:55 +09:00
ohayo
ed398430bc Update changelog.md 2025-01-31 10:04:50 +10:00
ohayo
53789b40e4 Prevent further things from clients who dont handshake
- The player will only finish the handshake once they spawn their player, a normal client would always do this eventually.

- They cannot chat, even if they request world data but just not spawn their player.

- Other clients will not be notified of their join/leave in both cases (dont request WD or do but dont spawn)

- And most importantly, they do not show on the in game player list but still show on the server console /playing cmd.
2025-01-31 09:17:26 +10:00
ohayo
d35934b3a2 Check for bans on connection as well as join, etc
Should prevent people from being able to bypass this.
2025-01-30 22:46:13 +10:00
Luke
3e08982e73 Merge branch 'general-devel' into net9-upgrade 2025-01-29 22:03:08 +10:00
Luke
d2030991c4
Update Dockerfile
Co-authored-by: Arthri <41360489+Arthri@users.noreply.github.com>
2025-01-29 07:19:13 +10:00
Lucas Nicodemus
80c29ee081
Merge pull request #2882 from drunderscore/feature/detect-installations-in-client-directory
Detect invalid TShock installations
2025-01-27 22:01:27 +09:00
Lucas Nicodemus
0516428f88
Merge branch 'general-devel' into feature/detect-installations-in-client-directory 2025-01-27 21:56:48 +09:00
Lucas Nicodemus
49b1003eca
Update github actions upload artifact to v4
This is part of #3050, but thinking about this logically, the deprecation of v3 happens in just 3 days, so unless we want to have .NET 9 testing done in the next 3 days (unlikely?), it's not a great idea to let this break.
2025-01-27 21:07:36 +09:00
Lucas Nicodemus
5e4f17b47a
Merge pull request #2960 from AgaSpace/commandhooks
New two hooks PrePlayerCommand and PostPlayerCommand
2025-01-27 10:09:36 +09:00
Lucas Nicodemus
97d88b3b3c
Merge branch 'general-devel' into commandhooks 2025-01-27 10:06:01 +09:00
Lucas Nicodemus
7058a9d61f
Merge pull request #2951 from AgaSpace/group-changes
Group changes
2025-01-27 09:16:28 +09:00
Lucas Nicodemus
fe3644ca80
Merge branch 'general-devel' into group-changes 2025-01-27 09:13:01 +09:00
Lucas Nicodemus
64a4c9c1cd
Merge pull request #2952 from drunderscore/fix/player-data-is-sometimes-not-there
Ensure `TSPlayer.PlayerData` is non-null whilst syncing loadouts
2025-01-27 09:00:47 +09:00
Lucas Nicodemus
3115e1f032
Merge branch 'general-devel' into fix/player-data-is-sometimes-not-there 2025-01-27 08:57:36 +09:00
Lucas Nicodemus
de8a0a634c
Merge pull request #3057 from sgkoishi/pr3057
Detect xterm compatibility to avoid console spam
2025-01-27 08:55:01 +09:00
SGKoishi
605be8f813
Detect xterm compatibility to avoid console spam 2025-01-27 08:11:36 +09:00
Luke
f3e0d04758 Merge remote-tracking branch 'upstream/general-devel' into net9-upgrade 2025-01-26 21:16:51 +10:00
Luke
608111cfb9 Update TerrariaServerAPI 2025-01-26 21:16:04 +10:00