Commit Graph

106 Commits

Author SHA1 Message Date
Marcel Märtens
8b40f81ee2 No longer block the main thread for client connections, new clients will be handled by server without waiting.
- Instread we have a dedicated thread that will async wait for new participants to connect and then notify the main thread
- registry no longer sends a view distance with it.
- remove ClientMsg::Command again as it's unused
2020-10-11 22:55:02 +02:00
Marcel Märtens
017e004309 Rename enums to allow a super enum in the future, but i am not yet sure if we want to introduce this yet
```
//This is a helper structure, containing all possible data send over
pub enum ClientMsg {
    Initial(ClientType),
    General(ClientGeneralMsg),
    InGame(ClientInGameMsg),
    NotInGame(ClientNotInGameMsg),
    Register(ClientRegisterMsg),
    Ping(PingMsg)
}
```
2020-10-11 22:49:25 +02:00
Marcel Märtens
b1db5ef488 Redo Network Frontend.
Rather than having a single Stream to handle ALL data, seperate into multiple streams:
 - Ping Stream, for seperate PINGS
 - Register Stream, only used till the client is registered, then no longer used!
 - General Stream, used for msg that can occur always
 - NotInGame Stream, used for everything NOT ingame, e.g. Character Screen
 - InGame Stream, used for all GAME data, players, terrain, entities, etc...

This version does compile, and gets the client registered (with auth too) but doesnt get to the char screen yet.

This fixes also the ignoring messages problem we had, as we are not sending data to the register stream!
This fixes also the problem that the server had to sleep for the Stream Creation, as the Server is now creating the streams and client has to sleep.
2020-10-11 22:49:14 +02:00
Imbris
fa45edb541 Fix clippy, minor fmt, add TODO comments 2020-10-10 03:01:30 -04:00
Imbris
71251ca6a6 Change admins from Vec<String> into Hashset<Uuid>, add commands to server-cli-bin for adding and removing admins 2020-10-10 02:10:32 -04:00
Imbris
ca2bf937e6 Apply saves dir override when loading settings, change whitelist to a HashSet, let admins login even if they are not on the whitelist to reflect the comments in login code 2020-10-10 02:10:32 -04:00
Imbris
83fb26c4f9 Group editable server settings into one struct that is stored in the ecs, don't expose DataDir, use Uuid in the whitelist instead of usernames, replace Banlist record tuple with new type with named fields, remove commented code 2020-10-10 02:10:32 -04:00
Imbris
fb2cf1a292 Fix clippy warnings 2020-10-10 02:10:32 -04:00
Imbris
7c14a3f4a4 New userdata folder that holds voxygen settings and logs and server saves and settings, split up server settings file into parts that are persisted back to their files and parts that are read-only, misc fixes 2020-10-10 02:10:32 -04:00
Joshua Yanovski
938039a56e Remove spurious uses of Vox.
In the process, also try to address a few edge cases related to block
detection, such as adding back previously solid sprites and removing
filters that may be vestiges of earlier logic.
2020-09-26 16:30:40 +02:00
Ben Wallis
712f2e9c97 * Moved migrations to beginning of server initialisation
* Added migrations for entity ID changes to existing tables
2020-09-17 23:02:14 +00:00
Marcel Märtens
cb6fa52eae fix client stats, difference client/player 2020-09-17 00:19:48 +02:00
Marcel Märtens
3c58b64689 add detailed information on state tick timings 2020-09-16 18:24:18 +02:00
Marcel Märtens
184d405f10 Better Metrics for Server
- Player online is now seperated into players connected and disconnected and is event driven
 - Metrics for ChunkGeneration: this is the server side for tracking actuall generation
 - Metrics for Chunk Network Requests
2020-09-16 18:14:04 +02:00
Joshua Yanovski
19485b6a00 Add a DisconnectReason enum. 2020-09-14 08:16:09 +02:00
tylerlowrey
2b0c1e89f3 Refactored kicking the player into its own function + ran fmt on project 2020-09-14 07:54:05 +02:00
tylerlowrey
c3c4b88fe7 Added banlist check to try_login method 2020-09-14 07:52:31 +02:00
Imbris
f39d1e9bb5 Use less verbose span names when the tracy feature is off 2020-09-07 00:59:16 -04:00
Imbris
0683a40741 Use finish_continuous_frame directly 2020-09-06 22:28:14 -04:00
Imbris
63d60c212c Add spans to server systems 2020-09-06 22:28:14 -04:00
Marcel Märtens
961b8a4d7c Implement the Player Timeout as config 2020-09-06 23:34:57 +02:00
TheThirdSpartan
6dbd1bc132 adding feature requested in issue #153 - displaying your alias in game as 'you' 2020-09-06 19:42:32 +00:00
notoria
2be4202d01 Corrected some spelling errors 2020-08-25 12:21:25 +00:00
Marcel Märtens
42141b3aa3 remove some trace! in network which a) was only spam and b) could be replaced by a metric way better.
added a span for disconnecting on the gameserver side. also added more debug! tracing there
Just keeping a trace! all 10000ms active to have a keep alive feeling.
2020-08-21 18:00:14 +02:00
Marcel Märtens
8687740265 fix clippy warnings in new version 2020-08-17 11:10:18 +02:00
Imbris
3a22b3694d New group UI functions 2020-08-08 01:14:19 +02:00
Imbris
d856c20225 Integrate groups with chat groups 2020-08-08 01:12:35 +02:00
lausek
f7a3a622e5 fix #660; Admins should join even if they aren't on whitelist 2020-07-23 17:16:52 +00:00
Imbris
9e880009e0 Loosen in_vd calculation on the server so that it accepts all chunks a client with the specified vd would request 2020-07-17 17:32:31 +01:00
T-Dark0
d5e9e19881 Created banned words file
By default, it's an empty list
2020-07-16 14:05:35 +00:00
Marcel
d5bfae886e Merge branch 'xMAC94x/net-improve' into 'master'
xMac94x/net improve

See merge request veloren/veloren!1162
2020-07-14 14:09:43 +00:00
Marcel Märtens
6db9c6f91b fix a followup bug, after a protocol fail now Participant is closed, including all streams, so we get the stream errors.
We MUST handle them and we are not allowed to act on a stream after it failed, as i am to lazy to change the structure to ensure the client to be imeadiatly dropped i added a AtomicBool to it.
2020-07-13 13:03:35 +02:00
Marcel Märtens
df45d35c0e tcp protocol hardening
- make it harder for the server to crash and also kill invalid sessions properly (instead of waiting for them to close)
 - introduce macros to reduce code duplication
 - added tests to check for valid handshake as well as garbage tcp
2020-07-13 13:03:25 +02:00
Joshua Barretto
23c774c8da Fixed missed VD update bug 2020-07-09 16:54:10 +01:00
Joshua Barretto
bdab3972c2 Fixed view distance bug 2020-07-06 16:36:13 +01:00
Joshua Barretto
a9f862ee95 Fixed multiple char select bug 2020-07-05 18:05:00 +01:00
Marcel
2a7a8b05e6 Merge branch 'network-lockless' into 'master'
Network lockless

See merge request veloren/veloren!1153
2020-07-05 09:17:29 +00:00
Ben Wallis
538598eb08 Refactored Skills/SkillGroups structure and implemented JSON persistence 2020-07-04 15:25:21 +01:00
Marcel Märtens
cbfd398035 remove Mutex in server as Stream is now 'Sync' 2020-07-04 12:31:59 +02:00
Marcel Märtens
15ff58cd6a simple fmt in order to make the replacement commit as simple as possible 2020-07-03 13:11:44 +02:00
Marcel Märtens
4e92c0160e network layer switch, doing the stuff that might confict.
- mostly its the message handling put now in a async wrapper
 - add some fixes to pass without warnings and make clippy happy
 - some network error handling is ignored, this can be improved but is no blocker
2020-07-03 13:11:38 +02:00
Monty Marz
89400264dc Loot ChatType, Update german translation, map zooming 2020-07-01 19:05:44 +00:00
Monty Marz
f3a84e07a7 changed message type for motd 2020-06-28 16:04:55 +02:00
Forest Anderson
48f70bd088 Fixed double login message 2020-06-28 09:47:48 -04:00
Monty Marz
670d9e8736 remove unnecessary conversions to make clippy happy 2020-06-28 15:15:00 +02:00
Forest Anderson
2665159790 Fixing errors after rebase 2020-06-27 19:12:12 -04:00
CapsizeGlimmer
883d9acf30 cargo fmt 2020-06-27 17:43:46 -04:00
CapsizeGlimmer
3d29c3254a Add setting for displaying character names in chat. Placate cargo clippy. 2020-06-27 17:43:46 -04:00
CapsizeGlimmer
59db2fcd3b Admin status added when registering; cargo fmt 2020-06-27 17:43:45 -04:00
CapsizeGlimmer
5ad212b7ed Add chat types for offline, online. Implement Pfau's fixes 2020-06-27 17:40:03 -04:00