Commit Graph

5291 Commits

Author SHA1 Message Date
jiminycrick
951acfca21 Add 3rd skill for hammer, bow, and axe minus skillbar UI stuff 2020-10-14 12:50:32 -07:00
Marcel
5bcfb6bd0a 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
ba1299e670 apparently span doesnt work for async, so i replaced it by an instrument version 2020-10-14 17:54:01 +02:00
Marcel
15a96f5812 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
e914c29728 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
663d5aead4 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
24af657fd5 quickfix for closing participants more reliable 2020-10-13 20:06:20 +02:00
Marcel
2246e8b860 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
9af2fcfe46 add more tracing and drop lock earlier 2020-10-13 19:01:53 +02:00
Imbris
f4f2fb9891 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
9e7f521489 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
e72bfc3d2a 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
f1c9b959f4 rename a file, fix error msg, dont spam persistence by default 2020-10-13 00:06:24 +02:00
Marcel
2668731a05 Merge branch 'xMAC94x/netfixA' into 'master'
xmac94x/netfixA

See merge request veloren/veloren!1425
2020-10-12 21:07:00 +00:00
Marcel Märtens
2a7378b4ae 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
55b59fbe07 various small fixes according to the MR 2020-10-12 11:25:20 +02:00
Marcel Märtens
00c66b5b9c remove a Mutex and AtomicBool 2020-10-11 23:02:39 +02:00
Marcel Märtens
ff374eab59 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
e8452fafc6 fix naming, replace NotInGame with CharacterScreen 2020-10-11 22:55:38 +02:00
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
d7a74c0cf1 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
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
Monty Marz
8bd1f763e0 Merge branch 'hotfix-loottables' into 'master'
Hotfix loottables

See merge request veloren/veloren!1431
2020-10-11 16:25:35 +00:00
Monty Marz
e1a77d040d 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
bff5dea16e 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
b9b84d2890 Migrate singleplayer save folders to the new location if they have not already been generated 2020-10-10 20:25:32 -04:00
Imbris
0e4b31fb63 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
fa45edb541 Fix clippy, minor fmt, add TODO comments 2020-10-10 03:01:30 -04:00
Imbris
39f78e9116 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
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
a3ee5a4006 Rename model_col -> highligh_col to better reflect its usage 2020-10-10 02:10:32 -04:00
Imbris
fb2cf1a292 Fix clippy warnings 2020-10-10 02:10:32 -04:00
Imbris
522880a0ab Update CI and docker files to work with changes to data folder structure 2020-10-10 02:10:32 -04:00
Imbris
308cca0dc9 Put server-cli specific settings in their own structure, serde_derive -> serde 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
Imbris
26d59a62fc Downgrade debug -> trace in persistence code 2020-10-10 02:10:32 -04:00
Imbris
66d2d636ee Add server-cli option to disable auth 2020-10-10 02:10:32 -04:00
Imbris
873ea1ec46 Make basic server-cli mode default to not reading input and add interactive option 2020-10-10 02:10:31 -04:00
Imbris
ef74d395a6 Improve figure and sprite highlighting 2020-10-10 02:10:31 -04:00
Imbris
6c43a7cdc5 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
65f16ba4c1 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
2b800a2b63 make clippy happy
Delete glider.ron
2020-10-07 02:23:20 +00:00
Marcel
613b3b103f Merge branch 'undefined' into 'master'
Correction of errors

See merge request veloren/veloren!1421
2020-10-05 22:54:49 +00:00
Marcel
155e14a4bd 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
51459c0733 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
8402f98261 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
e501235265 Loot table fix 2020-10-04 08:52:19 -05:00