Commit Graph

159 Commits

Author SHA1 Message Date
juanjp600
bfd8bc6b35 Server serialization functions require client 2016-09-07 17:32:20 -03:00
juanjp600
a02931054a Sync sub selection 2016-09-05 17:15:41 -03:00
juanjp600
2116a1a93a Fixed rangeban 2016-09-03 18:15:36 -03:00
juanjp600
6f25bee9e1 Merge remote-tracking branch 'refs/remotes/barotrauma/master'
Conflicts:
	.vs/Subsurface_Solution/v14/.suo
	Subsurface/Barotrauma.csproj
	Subsurface/Properties/AssemblyInfo.cs
	Subsurface/Source/Items/ItemSpawner.cs
	Subsurface/Source/Networking/GameClient.cs
	Subsurface/Source/Networking/GameServer.cs
	Subsurface/Source/Networking/GameServerLogin.cs
2016-09-03 17:54:33 -03:00
juanjp600
d0efbe14f3 Whitelist saving 2016-09-03 17:51:10 -03:00
juanjp600
ef2b0d8721 Whitelist + conflict resolve 2016-09-03 14:57:36 -03:00
juanjp600
4b10ca21c4 Ban before disconnecting client 2016-09-02 22:49:40 -03:00
juanjp600
e3433c725e Server name, message and submarine list syncing 2016-09-02 22:24:14 -03:00
juanjp600
e0b6642767 Minor fixes and tweaks 2016-09-01 22:22:45 -03:00
juanjp600
51dd858af1 Client reads lobby chat from server 2016-09-01 22:05:13 -03:00
juanjp600
028c3a8bc1 Added lobby chat syncing 2016-09-01 20:45:43 -03:00
juanjp600
f845a21de8 Fixed login process
Time to get the lobby working
2016-09-01 13:45:46 -03:00
juanjp600
104ac73b97 Added login process to client
Doesn't work yet, gotta figure this out.
2016-09-01 11:42:21 -03:00
juanjp600
a4a6046013 Fix banned packets being read 2016-08-31 18:49:51 -03:00
juanjp600
f5bd5fe0d3 Extra ban check for data packet type 2016-08-31 18:48:45 -03:00
juanjp600
f3b826a371 Added new function calls in server ReadMessage loop 2016-08-31 18:47:16 -03:00
juanjp600
b9a246ca68 New login process + a little bit of cleanup
No reliability required :) Will get to the client soon
2016-08-31 18:26:17 -03:00
juanjp600
55a2db7c70 Removed more networking code 2016-08-30 21:33:10 -03:00
juanjp600
7bdcc51bae Made game compilable
Networking functionality is fully disabled now.

I think it's time to start rewriting everything. OH BOY
2016-08-30 21:13:36 -03:00
juanjp600
0a0f8e19b4 Merged branch new-netcode into new-netcode 2016-08-30 20:37:12 -03:00
juanjp600
9416eb64d7 Completely destroyed game
Looks like a lot more than just netcode is getting rewritten. Removing coroutines because there are better ways of handling asynchronous tasks, removing filestream because that's to be reimplemented later
2016-08-30 19:59:14 -03:00
juanjp600
37ffd64490 Disabled networkevent
Changing the way each item handles its own network updating
2016-08-30 19:28:32 -03:00
juanjp600
6e83ef7626 Merge remote-tracking branch 'refs/remotes/origin/master'
Conflicts:
	Subsurface/Barotrauma.csproj
	Subsurface/Source/Characters/AI/EnemyAIController.cs
	Subsurface/Source/Characters/AICharacter.cs
	Subsurface/Source/Characters/Character.cs
	Subsurface/Source/Items/Components/DockingPort.cs
	Subsurface/Source/Items/Components/Door.cs
	Subsurface/Source/Items/Item.cs
	Subsurface/Source/Networking/GameClient.cs
	Subsurface/Source/Networking/GameServer.cs
	Subsurface/Source/Physics/PhysicsBody.cs
2016-08-30 18:04:49 -03:00
juanjp600
9c116fc268 Merged branch master into master 2016-08-30 17:36:11 -03:00
juanjp600
52270e3a35 Hacked clients can't send chat messages from other characters anymore
Also added sendername as userdata in chat messages, for now it's not used for anything but we'll probably find something where this is useful
2016-08-30 17:35:58 -03:00
Regalis
2e2043bf7f Chat messages are added to the server log even if the host's character is out of range, message senders are shown in the server log, fixed multi-line log entries overlapping 2016-08-30 19:06:15 +03:00
juanjp600
af220dbc2a Removed Fill/ReadNetworkData
These functions needed to be replaced because they rely heavily on reliability.

Instead, new functions called (Write/Read)Data(Server/Client) will be added. 

Separating client and server code into completely separate functions will help ensure that proper security checks are performed.
2016-08-29 20:02:46 -03:00
juanjp600
6bb6f63dd7 Hacked clients can't change their character name
Also made spam filter's aggressiveness consistent
2016-08-29 19:45:21 -03:00
juanjp600
df0b064899 Hacked client can't join full server anymore
Not sure how they can get around lidgren's checking, but this should do the trick
2016-08-29 19:02:37 -03:00
juanjp600
b3f0f71d43 Fixed password storage when it isn't set
Disabled hashing on an empty string
2016-08-29 17:42:37 -03:00
juanjp600
e284ff5f38 Heavier password encryption
I don't think this fixes actual bugs but the encryption seemed kinda weak.
2016-08-29 07:13:19 -03:00
juanjp600
30f550df03 Ingame players can't receive messages from lobby players anymore 2016-08-28 16:46:51 -03:00
juanjp600
378273a0ce Added server options to ingame HUD, fixed ChatSpamSpeed timer reset 2016-08-28 13:05:33 -03:00
Regalis
e715f07922 - spam filter closeFactor works correctly even if the client has sent less than 20 messages, slightly more aggressive filtering
- anti-husk drug
- resized medicine/chemical physics bodies to match the sprites
- damage done to items is determined by the structureDamage value of an attack
2016-08-28 17:29:32 +03:00
Regalis
7e644ebb9d Forgot to commit these 2016-08-28 17:05:39 +03:00
Regalis
fe8cce1723 Using Levenshtein distance to measure the similarity of chat messages, (float)0.0 -> 0.0f 2016-08-28 16:53:24 +03:00
Regalis
e2885a912d Husk infections, manually attacking when controlling a creature 2016-08-28 16:16:02 +03:00
Regalis
3d2d06d2e5 WriteCharacterData/ReadCharacterData methods can be used for any type of character (less duplicate code) 2016-08-26 20:48:57 +03:00
juanjp600
12f849be01 Removed references to reliable sender
Now the game is broken, progress is being made :)
2016-08-25 18:55:32 -03:00
Regalis
712953cc9e WIP client special permissions (kick, ban, end round) 2016-08-24 11:47:46 +03:00
Regalis
dc67eeebd4 Humans can be spawned through console in multiplayer 2016-08-23 14:19:50 +03:00
Regalis
ef0098d52a Anti-gamerfood measures:
- clients don't send server passwords as plaintext: the server sends a nonce which the client encrypt using the password as the key
- IPs are visible in netstats
- amount of client jobpreferences limited to 3 at the servers side
- sanitizing client names
2016-08-19 18:18:07 +03:00
Regalis
7e14ca6186 Possible to use the same sub as the main submarine and the respawn shuttle, fixed duplicate client names in netlobby if reconnecting before the server has disconnected the client, fixed "end round" button not appearing when joining mid-round 2016-08-14 20:13:40 +03:00
Regalis
fbe6c91d67 - previous networkevent of an item isn't overridden if the event is for a different itemcomponent
- batteries are restored to full capacity and all items repaired when resetting the respawn shuttle
- some respawnmanager refactoring (characters/items arent created in WriteNetworkEvent anymore)
- syncing respawnmanager state with clients who join mid-round
- LOS is turned back on when respawning
2016-08-13 18:42:55 +03:00
Regalis
7716b5e9d4 Fixed respawn shuttles with no nav terminal throwing an exception, removing focus from server log searchbar when the log window is closed, clients wait for ongoing file transfers to finish before starting a new one (instead of cancelling) 2016-08-10 19:18:50 +03:00
Regalis
d55926a352 Option to choose which submarine to use as the respawn shuttle, submarines can be given "tags" (atm just shuttle and HideInMenu), separate saving window in sub editor 2016-08-05 14:06:05 +03:00
Regalis
4252f4b9d0 - clients don't spawn character jobitems themselves (item data is written in the StartGame network message)
- after receiving a StartGame message, clients will wait until the game is loaded before reading new messages from the server
- the Item(prefab, position, submarine) constructor uses the position as the center of the item, not as top-left corner
2016-07-29 18:38:42 +03:00
Regalis
357a853342 A bunch of fixes to syncing clients who join mid-round:
- syncing items spawned/removed mid-round
- syncing characters spawned mid-round (through the console or by respawning)
- making sure that item IDs of the spawned characters match
- syncing wall damage
2016-07-25 18:48:48 +03:00
Regalis
8abea5c0c7 - gameServerSettings refactoring: using ObjectProperties for saving/loading instead of doing it manually
- tabs for different types of server settings
- moved banlist to server settings
- option to select autorestart delay
- character name is always the same as client name (less griefing potential)
2016-07-21 21:18:38 +03:00
Regalis
911846acff - submarines send position updates more frequently when they're moving faster
- small AICharacter syncing optimizations
- respawning can be disabled in server setting
- netstats show the total amount of bytes sent for each networkevent type
2016-07-20 17:20:27 +03:00