Commit Graph

10 Commits

Author SHA1 Message Date
hg c5dc9813ec Fix regression deleting expedition from db
Set expedition's instance id NULL instead of deleting it from the
database when instances are deleted. Only expedition functions
should delete expeditions

This fixes a regression caused by removing foreign key constraints

The expedition_details row was being deleted and not the corresponding
expedition_members and expedition_lockouts rows. Any characters inside
the members table could no longer join expeditions
2020-10-07 21:55:28 -04:00
hg db81488f18 Remove fk constraints in expedition tables
Add expedition tables to database schema lists
2020-10-07 21:55:26 -04:00
hg 32c69d235d Remove member history from expeditions
Expedition uuids are now used to check if characters may re-join
2020-10-07 21:55:25 -04:00
hg c7e8182cd2 Store lockouts with source expedition uuid
Add Client::GetLockoutExpeditionUUID quest api

Refactor lockout update methods to take ExpeditionLockoutTimer parameter

Fix updating expedition lockout cache for multiple AddLockout calls

Fix updating lockout duration when replacing a lockout in database

Replace lockout timer inherited flags with expedition uuid comparisons

Remove is_inherited column from expedition_lockouts table
2020-10-07 21:55:25 -04:00
hg 8c12909deb Assign expeditions a uuid 2020-10-07 21:55:25 -04:00
hg a8af2a0216 Remove replay timer argument to CreateExpedition
Breaking change to the current API

has_replay_timer column removed from expedition_details table

This argument is unnecessary and just creates confusion. Expedition
replay timers use a hardcoded name precisely for this purpose and
those lockouts are already being checked on creation requests.
2020-10-07 21:55:25 -04:00
hg c5f473e589 Implement expedition locking
Disables the ability to add new members

Adds Expedition::SetLocked(bool) to quest api

Adds is_locked column to expedition_details db table
2020-10-07 21:55:21 -04:00
hg 11eacf25f0 Make adding replay timers to new members optional
Not all expeditions with a replay timer lockout add it to newly
added members automatically

This adds the Expedition::SetReplayLockoutOnMemberJoin(bool) method
to the quest api so it can be disabled
2020-10-07 21:55:21 -04:00
hg 3bf7ea0d05 Change expedition tables to latin1_swedish_ci
Fixes insertion in MySQL older than 5.7.7 and MariaDB older than 10.2.2
that limit indexes to 767 bytes. This may be a temporary fix until
future refactoring
2020-10-07 21:55:21 -04:00
hg a6f7624b6b Add expeditions sql schema file 2020-10-07 21:55:15 -04:00