Commit Graph

36 Commits

Author SHA1 Message Date
Marcel Märtens
0ab7a2543e fix clippy errors 2022-11-28 14:08:11 +01:00
Joshua Yanovski
986d104faa Update Rust toolchain. 2022-09-08 15:43:53 -07:00
Saverio Miroddi
021a8be62e Server: Vacuum database on startup
Runs after the migrations. In some cases, it can reclaim a significant amount of space (reported 30%).
2022-08-17 20:12:20 +02:00
Isidor Nielsen
a685a353cb Shared and persistent waypoints 2022-02-20 10:10:18 +00:00
Sam
7ae8ed09f6 Addressed MR comments. 2022-01-15 21:50:27 -05:00
Sam
4c3771a1a0 Persistence of auxiliary abilities. 2022-01-15 21:42:34 -05:00
Dr. Dystopia
408fe1e6b6 Begin creating character editing 2021-12-13 01:13:33 +01:00
Jonathan Berglin
596307c9b7 Remove unused clippy suppressions 2021-12-05 17:59:02 +00:00
Ben Wallis
01ca6911a9 * Pets are now saved on logout and spawned with the player on login
* Pets now teleport to their owner when they are too far away from them
* Limited the animals that can be tamed to `QuadrupedLow` and `QuadrupedSmall` to prevent players taming overly powerful creatures before the pet feature is further developed
* Added `Pet` component used to store pet information about an entity - currently only used to store the pet's database ID
* Added `pet` database table which stores a pet's `body_id` and `name`, alongside the `character_id` that it belongs to
* Replaced `HomeChunk` component with more flexible `Anchor` component which supports anchoring entities to other entities as well as chunks.
2021-07-28 22:36:41 +00:00
Marcel Märtens
9b3b21f368 fix clippy warnings 2021-07-12 12:09:09 +02:00
Joshua Yanovski
e7587c4d9d Added non-admin moderators and timed bans.
The security model has been updated to reflect this change (for example,
moderators cannot revert a ban by an administrator).  Ban history is
also now recorded in the ban file, and much more information about the
ban is stored (whitelists and administrators also have extra
information).

To support the new information without losing important information,
this commit also introduces a new migration path for editable settings
(both from legacy to the new format, and between versions).  Examples
of how to do this correctly, and migrate to new versions of a settings
file, are in the settings/ subdirectory.

As part of this effort, editable settings have been revamped to
guarantee atomic saves (due to the increased amount of information in
each file), some latent bugs in networking were fixed, and server-cli
has been updated to go through StructOpt for both calls through TUI
and argv, greatly simplifying parsing logic.
2021-05-09 21:19:16 -07:00
Ben Wallis
d7582efad0 Moved character creation to use character_updater instead of character_loader. Changed character_loader to use a read-only database connection. 2021-05-02 16:08:39 +01:00
Samuel Keiffer
435b5d5912 Merge branch 'holychowders/resolve_issue_#978_extract_skillset_into_own_component' into 'master'
Resolve Issue #978 - Extract SkillSet Into Its Own Component

Closes #1065 and #978

See merge request veloren/veloren!2116
2021-04-14 15:35:35 +00:00
holychowders
568a8d9666 Resolve Issue #978 - Extract SkillSet Into Its Own Component 2021-04-14 15:35:34 +00:00
Ben Wallis
d6b3eb3784 Fixed initial creation of saves directory. Added path of old singleplayer saves directory to information logged when it is moved to the new userdata directory 2021-04-14 07:15:51 +01:00
Ben Wallis
1de94a9979 * Replaced diesel with rusqlite and refinery
* Added "migration of migrations" to transfer the data from the __diesel_schema_migrations table to the refinery_schema_history table
* Removed all down migrations as refinery does not support down migrations
* Changed all diesel up migrations to refinery naming format
* Added --sql-log-mode parameter to veloren-server-cli to allow SQL tracing and profiling
* Added /disconnect_all_players admin command
* Added disconnectall CLI command
* Fixes for several potential persistence-related race conditions
2021-04-13 22:05:47 +00:00
Ben Wallis
aef2637288 Refactored loadout to have public functions for each slot instead of requiring callers to use the _INDEX consts 2021-01-08 19:12:09 +00:00
Christof Petig
b56919b123 Make waypoints persistent
Closes #549
2020-11-08 22:15:47 +01: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
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
Ben Wallis
099dfaae9c Added several missing items that didn't exist in any inventories/loadoads on the production server to the item_persistence migration 2020-09-27 14:51:57 +01:00
Ben Wallis
712f2e9c97 * Moved migrations to beginning of server initialisation
* Added migrations for entity ID changes to existing tables
2020-09-17 23:02:14 +00:00
Capucho
6a83da0dfd Force migration text trough tracing 2020-09-01 23:03:33 +02:00
Joshua Yanovski
6d425f125e Fix various migration issues. 2020-08-07 01:35:51 +02:00
Joshua Yanovski
51ff7cded2 Fix corrupted character inventories by adding protection.
This is a temporary bandaid until we move to our new schema, but it
should at least allow people to log in with old characters.
2020-07-20 02:34:43 +02: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
950c62efc6 Suppressed all existing clippy warnings in preparation for fixes as part of #587 2020-06-10 22:01:42 +01:00
Shane Handley
24cdea0a4c Enable WAL and busy_timeout for each sqlite connection to mitigate db locks, 2020-06-07 22:33:48 +10: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
Mckol
fe859fc2e1 VELOREN_SAVES_DIR envar now overrides the server persistence db path 2020-05-15 01:54:14 +02: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
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
Shane Handley
e5853dbdd4 Initial models, migration and client code for stats persistence. 2020-05-13 09:14:08 +10: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