Commit Graph

4488 Commits

Author SHA1 Message Date
Marcel Märtens
187ec42aa2 fix Participant shutdown
- we had the problem that Participants couldn't shutdown them self, only by scheduler, which was controlled by api.
  it's needed e.g. to handle the Schudown Frame
 - my initial solution did a full shutdown, which was a problem if in parallel a 2nd shutdown was requested, no possibility of getting the error
 - new solution will only deactivate Participant and Stream. and then still functions correctly, till the api closes the participant and calls the scheduler which then calls the bparticipant again
 - i experimented with a Mutex<oneshot> or 2 and a `select` but it didn't prove that well
 - also adjusted the Error messages to now either Disconnected when gracefully shutdown or ProtocolFailed when some msg couldn't be delivered
  (note later might not be 100% returned correctly yet)
2020-07-13 13:03:30 +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
Marcel Märtens
9d32e3f884 proper voxygen connect and code cleanups:
- voxygen abort when the server has a invalid veloren_network handshake, e.g. by outdated version instead of try again
- rename Network `Address` to `ProtocolAddr` as sugested by zest as it's a combination of Protocol and std::io::Addr
- remove the manual byte arrays in `protocols.rs` with something more nice
2020-07-13 13:03:20 +02:00
Marcel Märtens
041349be48 Switch API to return Participant rather than Arc<Participant>
- API behavior switched!
 - the `Network` no longer holds a copy of participant, thus if the return of `connect` (before `Arc<Participant>, now `Participant`) got dropped, the `Participant::Drop` is triggered!
 - you can close a Participant async via `Particiant::disconnect()`, no more need to know the network at this point
 - the `Network::Drop` will check and drop not yet disconnected Participants.
 - you can compare Participants via PartialEq, if they are true they point to the same endpoint (it checks remote_pid)
   - Note: multiple Participants are only supported in theory, wont work yet

Additionally:
 - fix some `debug!`
 - veloren-client will now drop the participant gracefully on shutdown
 - rename `error` to `debug` when 2 times Bparticipant shutdown is called, as it is to be expected in a async runtime
2020-07-13 13:03:14 +02:00
Marcel Märtens
9ae1d8474f dropping participant on client disconnect clients 2020-07-13 13:03:07 +02:00
Marcel Märtens
8fb445b0e8 better lz4 2020-07-13 13:03:04 +02:00
Marcel Märtens
4cefdcefea zests fix - capitalize first letter 2020-07-13 13:03:01 +02:00
Marcel Märtens
5f902b5eab doing a clean shutdown of the BParticipant once the TCP connection is suddenly interrupted 2020-07-13 13:02:55 +02:00
Marcel
2b13b7d952 Merge branch 'yusdacra/fix-i18n-test' into 'master'
Fix localization test and add translation status percentage

See merge request veloren/veloren!1196
2020-07-13 10:02:00 +00:00
Marcel
2414d5ae5e Merge branch 'gSpera/no_autowalk_after_die' into 'master'
Stopping auto-walk after death: Fixes #607

Closes #607

See merge request veloren/veloren!1197
2020-07-13 08:39:39 +00:00
Marcel Märtens
5d60fb2e1d move i18n test to i18n file to reduce compile time && merge gitlab jobs to only have 1 cargo test job 2020-07-13 09:50:55 +02:00
Marcel
0b66a88ae5 Merge branch 'fexii/unique-keybinds' into 'master'
Highlight keys which are bound to multiple GameInputs and add a Reset to Defaults button

Closes #605

See merge request veloren/veloren!1193
2020-07-12 21:47:10 +00:00
Yusuf Bera Ertan
730a54dad5
localization test: add per file data to overall status, better alignments 2020-07-13 00:40:43 +03:00
Kai
8e523364ac Prevent GameInputs from being bound to multiple keys unless explicitly allowed. Add a Reset to Defaults button for controls. 2020-07-12 11:59:55 -07:00
Yusuf Bera Ertan
95fd89b4f9
add more error messages, add percentage calculation for each i18n file and an overall percentage result 2020-07-12 14:54:03 +03:00
Yusuf Bera Ertan
72ec565678
fix localization test 2020-07-12 05:38:11 +03:00
Marcel
930e0028bc Merge branch 'fexii/freefly-camera' into 'master'
Add freefly camera mode and cycle camera mode keybind

See merge request veloren/veloren!1188
2020-07-11 22:45:02 +00:00
Kai
6b771b8dca Add a clientside check to only allow freefly camera for admins 2020-07-11 13:59:47 -07:00
Kai
738fa34534 Add freefly camera mode and cycle camera mode keybind 2020-07-11 11:39:04 -07:00
Marcel
1e367d6371 Merge branch 'xvar/fix-client-ping-display' into 'master'
Removed rounding from ping delta and added weighted rolling average ping calculation

See merge request veloren/veloren!1194
2020-07-11 16:51:37 +00:00
Marcel
a0b866e97b Merge branch 'xvar/bricked-loadouts-fix' into 'master'
Added migration to fix characters unable to login due to DashMelee ability change

See merge request veloren/veloren!1192
2020-07-11 15:19:53 +00:00
Ben Wallis
7f6c892cf0 Added migration to fix characters unable to login due to DashMelee ability change 2020-07-11 15:42:19 +01:00
Ben Wallis
6ca6e2d646 Removed rounding from ping delta and added weighted rolling average ping calculation 2020-07-11 15:39:31 +01:00
Marcel
72dd2850e3 Merge branch 'ci-strip' into 'master'
remove the strip of the linux binaries in CI, this will prob make it a few MB...

See merge request veloren/veloren!1191
2020-07-10 15:06:58 +00:00
Marcel Märtens
d44128ac7a remove the strip of the linux binaries in CI, this will prob make it a few MB bigger but help to provide a backtrace in case we panic! in our builds or docker server 2020-07-10 16:03:06 +02:00
Songtronix
26d47304e0 Merge branch 'songtronix/fix-singleplayer-loading' into 'master'
fix: show loading screen for singleplayer

See merge request veloren/veloren!1189
2020-07-10 10:14:38 +00:00
Songtronix
728d349c77 fix: show loading screen for singleplayer 2020-07-10 11:05:09 +02:00
Songtronix
cabf7ebd92 Merge branch 'songtronix/fix-specs-idvs' into 'master'
fix: use correct specs(-idvs) versions

See merge request veloren/veloren!1187
2020-07-09 21:08:23 +00:00
Songtronix
5b57072064 fix: use correct specs(-idvs) versions
related to torvus
2020-07-09 19:46:30 +02:00
Joshua Barretto
3239fc1f2f Merge branch 'sam/creature-stats' into 'master'
Creature Specific Stats

See merge request veloren/veloren!1182
2020-07-09 00:04:25 +00:00
Samuel Keiffer
25c28f26d6 Different body types now have different health values and gain different amounts of healths on leveling. 2020-07-09 00:04:25 +00:00
Joshua Barretto
a0df8bee2c Merge branch 'sam/axe-spin-attack' into 'master'
Spin attack for axe

See merge request veloren/veloren!1171
2020-07-08 19:58:41 +00:00
Samuel Keiffer
fe47a14ba5 Spin attack for axe 2020-07-08 19:58:41 +00:00
Marcel
10ba532815 Merge branch 'xvar/preventdatalossfromdeserialization' into 'master'
Removed de-serialization failure tolerance to prevent player inventory/loadout wipes (#659)

See merge request veloren/veloren!1173
2020-07-08 18:26:59 +00:00
Ben Wallis
ddb66ec73b Added CharacterDataError when character list fails to load due to Loadout de-serialization error 2020-07-08 09:34:20 +01:00
Ben Wallis
e83d0abd33 Added migration to create a default inventory and loadout for characters without one 2020-07-08 09:09:48 +01:00
Ben Wallis
3ac18f73ea Removed de-serialization failure tolerance to prevent player inventory/loadout wipes 2020-07-08 09:09:47 +01:00
Marcel
921c8a81d6 Merge branch 'pyrious/fix-character-state-on-inventory-change' into 'master'
Maintain character state when inventory is modified

Closes #602

See merge request veloren/veloren!1180
2020-07-07 23:54:56 +00:00
Giovanni Spera
4232148b83 Stopping auto-walk after death: Fixes #607 2020-07-07 20:56:44 +02:00
Ben Frankel
823141f825 Maintain character state when inventory is modified
If the mainhand slot is swapped out or dropped while the character is
wielding, the character will be set to idle (same behavior). However, if
an item is picked up or used; or a non-mainhand item is dropped; or two
non-mainhand items are swapped; the character state will not be set to
idle (new behavior).

Rationale for keeping the same behavior:

Swapping a weapon out while in a wielding state can put the player in a
barehanded wielding state, which would be inconsistent with the fact
that that state can't be entered by toggling wield while barehanded.

Rationale for setting the new behavior:

Setting character state to idle was originally added because "Interact"
was mapped to right mouse button, so picking up an item with RMB would
also activate secondary attack if the player was wielding during the
interaction. Now the default keybinding for "Interact" is E, so this
isn't a problem unless the player changes their keybinding to RMB.

In addition, setting character state to idle for any inventory
manipulation may cause players to fall out of glider unexpectedly.
2020-07-07 09:43:48 -07:00
Justin Shipsey
e8b4b29d70 Merge branch 'scott-c/1h-fixes' into 'master'
1h fixes

See merge request veloren/veloren!1158
2020-07-07 15:29:33 +00:00
Marcel
258e39f1dc Merge branch 'xMAC94x/specs' into 'master'
fix specs

See merge request veloren/veloren!1179
2020-07-07 13:00:09 +00:00
Marcel Märtens
85a3f8637d fix specs 2020-07-07 14:28:00 +02:00
Marcel
2a0b4c6c92 Merge branch 'xMAC94x/specs' into 'master'
specs back to master

See merge request veloren/veloren!1178
2020-07-07 11:43:31 +00:00
Marcel Märtens
6ddd09b7b6 specs back to master 2020-07-07 12:55:06 +02:00
Marcel
c8fd6f4766 Merge branch 'fix-macos' into 'master'
revert dispatch

See merge request veloren/veloren!1177
2020-07-07 10:09:07 +00:00
Marcel
b85a4493ea revert dispatch 2020-07-07 11:19:38 +02:00
Marcel
55886be42f Merge branch 'xmac94x_song/dependencies' into 'master'
updated dependencies and fixed stuff

See merge request veloren/veloren!1169
2020-07-07 08:31:27 +00:00
Marcel Märtens
c212de00c2 updated dependencies and fixed stuff
- replace serde_derive by feature of serde
   incl. source code modifications to compile
 - reduce futures-timer to "2.0" to be same as async_std
 - update notify
 - removed mio, bincode and lz4 compress in common as networking is now in own crate
   btw there is a better lz4 compress crate, which is newer than 2017
 - update prometheus to 0.9
 - can't update uvth yet due to usues
 - hashbrown to 7.2 to only need a single version
 - libsqlite3 update
 - image didn't change as there is a problem with `image 0.23`
 - switch old directories with newer directories-next
 - no num upgrade as we still depend on num 0.2 anyways
 - rodio and cpal upgrade
 - const-tewaker update
 - dispatch (untested) update
 - git2 update
 - iterations update
2020-07-07 09:43:49 +02:00
Songtronix
1c9ffd6b22 Merge branch 'songtronix/fix-readme' into 'master'
fix(readme): update link to correct book chapter

See merge request veloren/veloren!1176
2020-07-07 07:43:13 +00:00