646 Commits

Author SHA1 Message Date
Marcel Märtens
cb03bc61d7 dependency reduction:
- authc no longer uses reqwest
 - image only supports PNG
 - replace routille with tiny_http
 - several other dependencies
 - cargo upgrade
 - following improvement was measured on R7 1700X:
   before:
    - cargo build: 3076.73s user / 4:45 total / 589 dependencies
    - cargo test: 6118.38s user / 7:30 total / 959 dependencies
   after:
    - cargo build: 2680.54s user / 4:05 total / 480 dependencies
    - cargo test: 5351.81s user / 7:04 total / 791 dependencies
 - added xMAC94x to CODEOWNERS for Cargo.toml, he will protect them from now on and hit people with evil looks ;)
2020-06-11 20:55:34 +02:00
Ben Wallis
22bcda3e50 Suppressed all existing clippy warnings in preparation for fixes as part of #587 2020-06-10 22:01:42 +01:00
Marcel Märtens
f2aa103715 Fixing the DEADLOCK in handshake -> channel creation
- this bug was initially called imbris bug, as it happened on his runners and i couldn't reproduce it locally at fist :)
- When in a Handshake a seperate mpsc::Channel was created for (Cid, Frame) transport
  however the protocol could already catch non handshake data any more and push in into this
  mpsc::Channel.
  Then this channel got dropped and a fresh one was created for the network::Channel.
  These droped Frames are ofc a BUG!
  I tried multiple things to solve this:
   - dont create a new mpsc::Channel, but instead bind it to the Protocol itself and always use 1.
     This would work theoretically, but in bParticipant side we are using 1 mpsc::Channel<(Cid, Frame)>
     to handle ALL the network::channel.
     If now ever Protocol would have it's own, and with that every network::Channel had it's own it would no longer work out
     Bad Idea...
   - using the first method but creating the mpsc::Channel inside the scheduler instead protocol neither works, as the
     scheduler doesnt know the remote_pid yet
   - i dont want a hack to say the protocol only listen to 2 messages and then stop no matter what
  So i switched over to the simply method now:
   - Do everything like before with 2 mpsc::Channels
   - after the handshake. close the receiver and listen for all remaining (cid, frame) combinations
   - when starting the channel, reapply them to the new sender/listener combination
   - added tracing
- switched Protocol RwLock to Mutex, as it's only ever 1
- Additionally changed the layout and introduces the c2w_frame_s and w2s_cid_frame_s name schema
- Fixed a bug in scheduler which WOULD cause a DEADLOCK if handshake would fail
- fixd a but in api_send_send_main, i need to store the stream_p otherwise it's immeadiatly closed and a stream_a.send() isn't guaranteed
- add extra test to verify that a send message is received even if the Stream is already closed
- changed OutGoing to Outgoing
- fixed a bug that `metrics.tick()` was never called
- removed 2 unused nightly features and added `deny_code`
2020-06-09 01:24:21 +02:00
Marcel Märtens
a37d8adb5f fix workspaces and Cargo dependencies 2020-06-09 01:23:21 +02:00
Marcel Märtens
fdccee45d4 Differ Metrics to make it easier to implement your own metric coding!
Implement my own metric coding in networking
2020-06-09 01:22:48 +02:00
Shane Handley
bfb3ba113e Enable WAL and busy_timeout for each sqlite connection to mitigate db locks, 2020-06-07 22:33:48 +10:00
S Handley
45949e7577 Update CHANGELOG and a TODO, fix safer deserialisation for inventory
data.
2020-06-04 11:44:33 +00:00
Monty Marz
2ff1edae28 More item drops 2020-06-03 17:59:09 +00:00
S Handley
d0f03fcff4 Make the persistence system code more generic so that it handles all
data associated with a character, rather than individually as we were
planning to do with stats/inv/etc... This removes potential for DB locking when we deal with each individually, and we
should have plenty of room for additional writes within the transaction.
2020-06-01 21:34:52 +00:00
scott-c
b03536bf4a Add character info to /players command 2020-06-01 22:04:44 +08:00
scott-c
d6c6ad144f send level change event for set_level command 2020-06-01 22:04:44 +08:00
scott-c
a895296e0e Add level up network event 2020-06-01 22:04:44 +08:00
scott-c
1d98a0a4ee Add character select network event 2020-06-01 22:04:44 +08:00
scott-c
fd6911eb27 Fix social list having incorrect player count 2020-06-01 22:04:44 +08:00
scott-c
7cf9967e77 Add character name and level to social window 2020-06-01 22:04:44 +08:00
scott-c
41b60d5f34 Restore player alias being displayed in chat 2020-06-01 22:04:44 +08:00
scott-c
035f1ce95e Fix unused variable compiler warning 2020-06-01 21:56:46 +08:00
scott-c
e9b22c890a fix #562 Confusing chat alias 2020-06-01 21:36:39 +08:00
Shane Handley
547a63d8a7 Ensure that the player uuid and character id both match in a character deletion query. 2020-06-01 02:29:05 +10:00
Prashan Dharmasena
1e079f5766 Closes #573. Do not announce alias change for non-body players. 2020-05-29 18:36:52 -07:00
Monty Marz
39df00be50 Added 36 Swords
I added 36 sword models to the code.
2020-05-29 18:23:00 +00:00
Monty Marz
98477a4007 Merge branch '561-info-popup-for-saved-waypoints-only-appear-for-the-second-time-you-visit-one' into 'master'
Resolve "Info popup for saved waypoints only appear for the second time you visit one"

Closes #561

See merge request veloren/veloren!1014
2020-05-29 11:39:12 +00:00
CapsizeGlimmer
2f38332f7d Only NPCs speak when hit. Farm animal alignment changed from NPC to Tame 2020-05-27 13:49:18 +02:00
CapsizeGlimmer
a0628c7a93 NPCs now call for help when you hit them. Redraw speech bubble dark mode. 2020-05-27 13:49:18 +02:00
CapsizeGlimmer
f8ae27c234 Chatting now creates speech bubbles 2020-05-27 13:49:14 +02:00
Justin Shipsey
7bbbf74fc2 orientation animation 2020-05-27 06:41:55 +00:00
Prashan Dharmasena
2fb0964b7c Closes #450: Send update chat message to all clients on successful alias change. 2020-05-26 22:00:47 -07:00
CapsizeGlimmer
9e7d637c8e Waypoint notifications have a 10 second cooldown 2020-05-25 02:56:31 -04:00
Joshua Yanovski
33900fd12b Merge branch 'treeco/new-map' into 'master'
Changed default map and seed, lowered site counts

See merge request veloren/veloren!992
2020-05-21 20:46:54 +00:00
Monty Marz
7a362810ee Pfau/0.6 bg 2020-05-16 12:48:29 +00:00
Marcel Märtens
5e96162ad4 Change the version number to 0.6 2020-05-16 00:50:40 +02:00
Imbris
cb86ca4317 Merge branch 'imbris/stats-updater' into 'master'
Update stats in a separate thread

See merge request veloren/veloren!997
2020-05-15 21:52:40 +00:00
Imbris
353a97accf Wrap updates in transaction 2020-05-15 16:40:06 -04:00
Imbris
1059f20049 Update stats in a separate thread 2020-05-15 16:03:51 -04:00
Joshua Barretto
42e7f99414 Fixed square staircases in dungeons 2020-05-15 18:34:05 +01:00
Joshua Barretto
072bac639f Fixed incorrect giant names 2020-05-15 18:33:34 +01:00
Joshua Barretto
1f99350448 Added dungeon bosses, boss loot, boss arenas 2020-05-15 16:05:50 +01:00
Treeco
e5f638d27c Changed default map and seed, lowered site counts 2020-05-15 11:36:19 +01:00
Shane Handley
3fe0159ab0 Correctly set the exp target for the next level when spawning a character.
Removed the unwrap_or from the update method for stats persistence, and
have a dedicated method for updating single rows with a new connection.
2020-05-15 13:27:26 +10:00
Mckol
a407558669 VELOREN_SAVES_DIR envar now overrides the server persistence db path 2020-05-15 01:54:14 +02:00
Mckol
e73e9354d2 Make singleplayer use voxygen's config path for persistence path. 2020-05-15 01:54:13 +02:00
Mckol
19498758e1 Changed the default path of persistence database
Now the default is `./saves/`, it's also configurable.
2020-05-14 22:42:44 +02:00
CapsizeGlimmer
bb0881253d Popup message when setting waypoint 2020-05-14 16:56:10 +00:00
Forest Anderson
5ea3f19d18 Merge branch 'shandley/persistence-stats' into 'master'
Stats Persistence

See merge request veloren/veloren!970
2020-05-13 13:43:22 +00:00
Shane Handley
71b66350d2 Write stats to the DB when a player disconnects from the server. 2020-05-13 22:08:26 +10:00
Forest Anderson
a6fb1bd37f Merge branch 'imbris/entity_count' into 'master'
Fill in entity_count in metrics

See merge request veloren/veloren!983
2020-05-13 08:13:05 +00:00
Imbris
d587708958 Fill in entity_count in metrics 2020-05-12 19:44:27 -04:00
Shane Handley
d988b34c22 - Update the stats of characters individually, reverting the change with
big combined updates.
- Add a timer to the stats persistence system and change the frequency
that it runs to 10s
- Seperate the loading of character data for the character list during
selection, and the full data we will grab during state creation. Ideally
additional persisted bits can get returned at the same point and added
to the ecs within the same block.
2020-05-13 09:14:09 +10:00
Shane Handley
e2072ddae0 Gather all characters stats in the system, build one big query, rather than per-character queries. 2020-05-13 09:14:08 +10:00
Shane Handley
ceb3e26341 Stats persistence
- Update client code to use persisted stats
- Add a system for stats persistence
- Add a basic scheduler to control duration between execution of
persistence systems
2020-05-13 09:14:08 +10:00