5391 Commits

Author SHA1 Message Date
Marcel
c5e9267b72 Merge branch 'xMAC94x/small-fixes' into 'master'
apparently span doesnt work for async, so i replaced it by an instrument version

See merge request veloren/veloren!1438
2020-10-14 16:30:16 +00:00
Marcel Märtens
ccd93ee876 apparently span doesnt work for async, so i replaced it by an instrument version 2020-10-14 17:54:01 +02:00
Marcel
7995a0e124 Merge branch 'xMAC94x/netfixB' into 'master'
FIX for hanging participant deletion.

See merge request veloren/veloren!1437
2020-10-14 14:16:38 +00:00
Marcel Märtens
a32ec08f08 FIX for hanging participant deletion.
There is a rare bug that recently got triggered more often with the release of xMAC94x/netfixA
if the bug triggeres, a Participant never gets cleaned up gracefully.

Reason:
When `participant_shutdown_mgr` was called it stopped all managers at once.
Especially stream_close_mgr and send_mgr.
The problem with stream_close_mgr is, it's responsible for gracefully flushing streams when the Participant is dropped locally.
So when it was interupted self.streams where no longer flushed gracefully.
The next problem was with send_mgr.
It is triggering the PrioManager, and the PrioManager is responsible for notifying once a stream is completly flushed.
This lead to the problem, that a stream flush could be requested, but was actually never executed (as send_mgr was already down).

Solution:
1. when stream_close_mgr is stopped it MUST flush all remaining streams
2. wait for stream_close_mgr to finish before shutting down the send_mgr
3. no longer delete streams when closing the API (this also wasn't tracked in metrics so far)

Additionally i added a dependency, so that the network/examples compile again, fixed some spelling.
I created a `delete_stream` fn that basically just moved the code over.
2020-10-14 15:03:49 +02:00
Marcel
ad6020ca4b Merge branch 'xMAC94x/quick-fix' into 'master'
quickfix for closing participants more reliable

See merge request veloren/veloren!1436
2020-10-13 18:40:59 +00:00
Marcel Märtens
52a2b7416e quickfix for closing participants more reliable 2020-10-13 20:06:20 +02:00
Marcel
53546567c3 Merge branch 'xMAC94x/small-fixes' into 'master'
add more tracing and drop lock earlier

See merge request veloren/veloren!1435
2020-10-13 17:36:25 +00:00
Marcel Märtens
ce8491405f add more tracing and drop lock earlier 2020-10-13 19:01:53 +02:00
Imbris
cc38034d1d Merge branch 'imbris/userdata-fixes' into 'master'
Fix system data folder name, panic when outside the project dir and there is no env var set

See merge request veloren/veloren!1434
2020-10-13 08:00:55 +00:00
Imbris
d824bfaaee Fix system data folder name, panic when outside the project dir and there is no env var set 2020-10-13 02:29:32 -04:00
Marcel
0c7ab6a4c2 Merge branch 'xMAC94x/small-fixes' into 'master'
rename a file, fix error msg, dont spam persistence by default

See merge request veloren/veloren!1433
2020-10-12 23:12:00 +00:00
Marcel Märtens
69b3d8616c rename a file, fix error msg, dont spam persistence by default 2020-10-13 00:06:24 +02:00
Marcel
b5c98a6b47 Merge branch 'xMAC94x/netfixA' into 'master'
xmac94x/netfixA

See merge request veloren/veloren!1425
2020-10-12 21:07:00 +00:00
Enrico Marconi
57ed0b56d9 Fix issue #788
Missing items in the 'require' section are now shown in red.
2020-10-12 17:41:17 +02:00
Marcel Märtens
e8e6e7e49a pack together InGame, CharacterScreen and General variant in a single enum, as requested by zesterer.
His reason to reqeust that is, that there might not be a perfect disctinction in the future.
Now we need to send ServerGeneral over streams and do additional checking at various places to verify that not the wrong variant is send.
2020-10-12 11:27:21 +02:00
Marcel Märtens
67d9be193f various small fixes according to the MR 2020-10-12 11:25:20 +02:00
Marcel Märtens
6b68a2dc39 remove a Mutex and AtomicBool 2020-10-11 23:02:39 +02:00
Marcel Märtens
ebd4ff084a create a ServerMsg and ClientMsg enum and verify the state when in debug mode to benefit from the transition 2020-10-11 22:59:53 +02:00
Marcel Märtens
17bcccbed0 fix naming, replace NotInGame with CharacterScreen 2020-10-11 22:55:38 +02:00
Marcel Märtens
c1b27cc3e1 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
46126b0046 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
cfb3fb5d42 fix voxygen state system. before we had a timing error that we did the next voxygen step before client set in_game which lead us to a disconnect.
now assume in_game is correct in client unless told by server in its answer
2020-10-11 22:49:19 +02:00
Marcel Märtens
877f84757b 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
Monty Marz
9ede33d2e4 Merge branch 'hotfix-loottables' into 'master'
Hotfix loottables

See merge request veloren/veloren!1431
2020-10-11 16:25:35 +00:00
Monty Marz
489f8697e6 loot table adjustments
- decrease blue glider drop rate
- decrease cloth scaprs drop rate from villagers
- add crafting mats to crates instead
2020-10-11 16:25:35 +00:00
Imbris
39d54e0722 Merge branch 'imbris/migrate-singleplayer-save-location' into 'master'
Migrate singleplayer saves folder to the new location if they have not already been generated

See merge request veloren/veloren!1430
2020-10-11 02:05:49 +00:00
Imbris
68096dd24b Migrate singleplayer save folders to the new location if they have not already been generated 2020-10-10 20:25:32 -04:00
Imbris
6789807322 Merge branch 'imbris/random-fixes2' into 'master'
Random fixes 2.0

Closes #774 and #711

See merge request veloren/veloren!1396
2020-10-10 19:46:39 +00:00
Imbris
7211b6a8ad Fix clippy, minor fmt, add TODO comments 2020-10-10 03:01:30 -04:00
Imbris
3ccca6aa17 Remove saves dir env var and setting from server settings and just always use saves as the dir name 2020-10-10 02:15:54 -04:00
Imbris
8ad8864b9b 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
b54aa022d5 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
088b0994f9 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
2e25205b15 Rename model_col -> highligh_col to better reflect its usage 2020-10-10 02:10:32 -04:00
Imbris
35a0787f04 Fix clippy warnings 2020-10-10 02:10:32 -04:00
Imbris
2532603ae8 Update CI and docker files to work with changes to data folder structure 2020-10-10 02:10:32 -04:00
Imbris
26dec245fa Put server-cli specific settings in their own structure, serde_derive -> serde 2020-10-10 02:10:32 -04:00
Imbris
52362cfd08 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
Imbris
7ad7c25cde Downgrade debug -> trace in persistence code 2020-10-10 02:10:32 -04:00
Imbris
62105d654d Add server-cli option to disable auth 2020-10-10 02:10:32 -04:00
Imbris
bbff0932e9 Make basic server-cli mode default to not reading input and add interactive option 2020-10-10 02:10:31 -04:00
Imbris
5856d665e8 Improve figure and sprite highlighting 2020-10-10 02:10:31 -04:00
Imbris
2a99072d21 Change projectiles to not be pushed back by collisions, moved group check into projectile system from physics system 2020-10-10 02:10:31 -04:00
Monty Marz
6429b71f8f Merge branch 'pfau/microscopic-fixes' into 'master'
Lanterns, Gliders, Quality Stat

See merge request veloren/veloren!1400
2020-10-07 02:23:20 +00:00
Monty Marz
d80683bc76 make clippy happy
Delete glider.ron
2020-10-07 02:23:20 +00:00
Marcel
7c198365c7 Merge branch 'undefined' into 'master'
Correction of errors

See merge request veloren/veloren!1421
2020-10-05 22:54:49 +00:00
Marcel
570366f8d2 Merge branch 'xvar/sigint-graceful-shutdown' into 'master'
Implemented graceful shutdown and fixed various TUI bugs

See merge request veloren/veloren!1423
2020-10-04 21:32:26 +00:00
Ben Wallis
cdf9d1b059 Implemented graceful shutdown on SIGUSR1 signal. Added shutdown <seconds> TUI command. Added abortshutdown TUI command. Fixed a bug in TUI that caused a panic on quit in basic mode on windows. 2020-10-04 21:24:45 +01:00
Samuel Keiffer
4cb618b018 Merge branch 'sam/sceptre-loot-fix' into 'master'
Loot table fix

See merge request veloren/veloren!1422
2020-10-04 14:54:35 +00:00
Sam
81fc925071 Loot table fix 2020-10-04 08:52:19 -05:00