Commit Graph

355 Commits

Author SHA1 Message Date
CapsizeGlimmer
5ad212b7ed Add chat types for offline, online. Implement Pfau's fixes 2020-06-27 17:40:03 -04:00
CapsizeGlimmer
b7d7696d89 Implement MR!1043 changes suggested by Imbris 2020-06-27 17:20:26 -04:00
CapsizeGlimmer
289ef5d6b2 Move message processing and chat bubbles to the client 2020-06-27 16:42:26 -04:00
Joshua Barretto
1cca7bf4a8 Fmt, fixed chat-cli problem 2020-06-25 19:50:04 +01:00
Joshua Barretto
d9cd37056d Added settings editing, set_motd command 2020-06-25 18:57:29 +01:00
Joshua Barretto
83a96c24ec Added MOTD on login, MOTD editing 2020-06-25 18:57:26 +01:00
Joshua Barretto
b46e080ade Added server-side maximum view distance setting 2020-06-25 18:46:04 +01:00
Imbris
6501611372 Merge branch 'shandley/character-loading' into 'master'
Move character DB ops off the main thread

See merge request veloren/veloren!1075
2020-06-25 16:16:15 +00:00
Songtronix
f44df23935 feat: add server whitelist 2020-06-24 17:36:19 +02:00
Shane Handley
255ad97289 - Move the remaining character data loading to the message/thread formatharacter list actions
- Handle/notify the client of errors during character load by returning to character select with the error, clean up client and server states
- Add player_uuid check when loading character data.
2020-06-24 11:47:41 +10:00
Shane Handley
38b146d840 Add channel setup for persistence to move character operations off the
main thread.
2020-06-23 21:07:43 +10:00
Marcel Märtens
9485b45e70 switch to tracing stlye and enhance logs with usefull information
- Updated CHANGELOG
- reduce dependencies
- found out that we have alot of duplicate coding... alot...
2020-06-22 09:53:15 +02:00
Kevin Glasson
589254e4ab Convert all other veloren crates to use tracing
- Completely removed both `log` and `pretty_env_logger` and replaced
with `tracing` and `tracing_subscriber` where necessary.

- Converted all `log::info!(...)` et al. statements to just use the
shorthand macro i.e. `info!`. This was mostly to make renaming easier.
2020-06-21 23:19:41 +08:00
Ben Wallis
c1c968f479 Globally suppressed clippy lint option_map_unit_fn for #587 2020-06-14 16:48:07 +00:00
Ben Wallis
950c62efc6 Suppressed all existing clippy warnings in preparation for fixes as part of #587 2020-06-10 22:01:42 +01:00
Marcel Märtens
3324c08640 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
8f65168506 fix workspaces and Cargo dependencies 2020-06-09 01:23:21 +02:00
Marcel Märtens
88f6b36a4e 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
S Handley
b1d191301a 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
CapsizeGlimmer
c65967ccdb Chatting now creates speech bubbles 2020-05-27 13:49:14 +02:00
Imbris
49e2fb80e7 Update stats in a separate thread 2020-05-15 16:03:51 -04:00
Mckol
aa69046055 Changed the default path of persistence database
Now the default is `./saves/`, it's also configurable.
2020-05-14 22:42:44 +02:00
Forest Anderson
acab072a63 Merge branch 'shandley/persistence-stats' into 'master'
Stats Persistence

See merge request veloren/veloren!970
2020-05-13 13:43:22 +00:00
Imbris
8f857e6e11 Fill in entity_count in metrics 2020-05-12 19:44:27 -04:00
Shane Handley
e852e0cfab - 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
0a6f9b860d 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
7c6c9f4302 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
CapsizeGlimmer
7ecea34f85 Server server::cmd depends on common::cmd 2020-05-09 21:50:51 -04:00
S Handley
5a13b54cbf - Load characters after login.
- Make the character screen load with an empty character list from the server, send event to the server for character creation with data, but not yet saving them to the DB.
- Working but messy character saving to DB
- Add the character_data to the client, rather than keep it in the GLobalState.
2020-05-09 15:41:25 +00:00
Joshua Barretto
2a6a19f7ef fmt 2020-04-23 18:19:42 +01:00
Joshua Barretto
44ace13d85 Stopped player spawning underground 2020-04-23 18:19:42 +01:00
Joshua Barretto
982886b3f8 Made players spawn in the nearest town to the centre of the world, delete object.zip 2020-04-23 18:19:41 +01:00
timokoesters
fe2aa7da7b Merge remote-tracking branch 'origin/master' into combat 2020-03-26 23:43:33 +01:00
Songtronix
604a6cf169 feat: log server version 2020-03-26 12:41:30 +01:00
Imbris
3889ec7292 climbing tweaks, fix triple strike overflow, fix Last<CharacterState>
not registered
2020-03-25 02:05:28 -04:00
Imbris
1a484410ca Delete Vel and Ori on the client when they are removed on the server 2020-03-18 17:01:51 -04:00
Imbris
14f0b018fd Add metric for new connection handling time, move StateExt to its own module 2020-03-09 22:39:12 -04:00
Imbris
7132ef4136 Rearrange some operations in the server tick to reduce clientside latency of ServerEvent mediated effects 2020-03-09 22:31:24 -04:00
Imbris
6cc07270ac improve(login): more precise error handling during login 2020-03-08 22:56:59 +01:00
Songtronix
50b845d1c3 :/ and reactivated the password field 2020-03-08 22:34:06 +01:00
Capucho
a3479f6a49 Fixed the bugs in the settings tab and the character button in the escape menu and unpause when there is more than 1 player 2020-03-05 18:55:14 +00:00
S Handley
b0ca85069b Piggyback on the InventoryUpdate events and attach some additional event info so that we can detect why the inventory update was triggered, and emit an associated sfx event that matches it. 2020-03-04 10:09:48 +00:00
Marvin Altemeier
035d74f502 Move ServerEvents into own module 2020-02-18 20:51:10 +01:00
Imbris
177f331259 Fix possession 2020-02-06 17:06:49 -05:00
Marcel Märtens
dae31ae5b6 apply new rustfmt - touching alot of files 2020-02-01 21:39:39 +01:00
Marcel Märtens
dd21235ff8 Apply prefixes to veloren source, espacially comments, so that reformating wont make it unreadable,
especially enumerations and other source code in errosions file
2020-02-01 21:37:36 +01:00
Joshua Barretto
a76740182d Prevent tamed entities constantly trying to 'return home' 2020-01-29 16:37:46 +00:00
Joshua Barretto
faa86226c7 Collars 2020-01-29 12:01:28 +00:00
Joshua Barretto
de96551f65 Resolved pet alignment issues, added ranged aggro 2020-01-27 15:51:07 +00:00
Joshua Barretto
8c7e96e313 Improved waypoint spawn locations, scaled down pathfinding cost 2020-01-26 12:52:32 +00:00