mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2024-12-22 13:33:35 +00:00
a60865cd19
* simplify leaderboard code, fully abstract database * update exception catching * update exception catching and sql references, remove ugc from gamemessages fix deleting model remove unrelated changes Update GameMessages.cpp * remove ugc from gamemessages * Update GameMessages.cpp * Update Leaderboard.cpp * bug fixes * fix racing leaderboard * remove extra stuff * update * add sqlite * use a default for optimizations * update sqlite * Fix limits on update and delete * fix bugs * use definition to switch between databases * add switch for different backends * fix include guard and includes * always build both * add mysql if block * Update Database.cpp * add new options and add check to prevent overriding mysql * correct config names * Update README.md * Update README.md * merge to 1 sql file for sqlite database * move to sqlite folder * add back mysql migrations * Update README.md * add migration to correct the folder name or mysql * yes aron * updates * Update CMakeLists.txt * dont use paths at all, add where check to only update if folder name still exist check also doesnt check for slashes and assumes one will be there since it will be. * default dont auto create account for releases we can change this flag * default 0 * add times played query * fix leaderboard not incrementing on a not better score * add env vars with defaults for docker * use an "enum" * default to mariadb * Update .env.example
153 lines
4.8 KiB
SQL
153 lines
4.8 KiB
SQL
CREATE TABLE IF NOT EXISTS accounts (
|
|
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
name VARCHAR(35) NOT NULL UNIQUE,
|
|
password TEXT NOT NULL,
|
|
gm_level INT UNSIGNED NOT NULL DEFAULT 0,
|
|
locked BOOLEAN NOT NULL DEFAULT FALSE,
|
|
banned BOOLEAN NOT NULL DEFAULT FALSE,
|
|
play_key_id INT NOT NULL DEFAULT 0,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP(),
|
|
mute_expire BIGINT UNSIGNED NOT NULL DEFAULT 0
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS charinfo (
|
|
id BIGINT NOT NULL PRIMARY KEY,
|
|
account_id INT NOT NULL REFERENCES accounts(id),
|
|
name VARCHAR(35) NOT NULL,
|
|
pending_name VARCHAR(35) NOT NULL,
|
|
needs_rename BOOLEAN NOT NULL DEFAULT FALSE,
|
|
prop_clone_id BIGINT UNSIGNED AUTO_INCREMENT UNIQUE,
|
|
last_login BIGINT UNSIGNED NOT NULL DEFAULT 0,
|
|
permission_map BIGINT UNSIGNED NOT NULL DEFAULT 0
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS charxml (
|
|
id BIGINT NOT NULL PRIMARY KEY REFERENCES charinfo(id),
|
|
xml_data LONGTEXT NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS command_log (
|
|
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
character_id BIGINT NOT NULL REFERENCES charinfo(id),
|
|
command VARCHAR(256) NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS friends (
|
|
player_id BIGINT NOT NULL REFERENCES charinfo(id),
|
|
friend_id BIGINT NOT NULL REFERENCES charinfo(id),
|
|
best_friend BOOLEAN NOT NULL DEFAULT FALSE,
|
|
|
|
PRIMARY KEY (player_id, friend_id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS leaderboard (
|
|
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
game_id INT UNSIGNED NOT NULL DEFAULT 0,
|
|
last_played TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP(),
|
|
character_id BIGINT NOT NULL REFERENCES charinfo(id),
|
|
time BIGINT UNSIGNED NOT NULL,
|
|
score BIGINT UNSIGNED NOT NULL DEFAULT 0
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS mail (
|
|
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
sender_id INT NOT NULL DEFAULT 0,
|
|
sender_name VARCHAR(35) NOT NULL DEFAULT '',
|
|
receiver_id BIGINT NOT NULL REFERENCES charinfo(id),
|
|
receiver_name VARCHAR(35) NOT NULL,
|
|
time_sent BIGINT UNSIGNED NOT NULL,
|
|
subject TEXT NOT NULL,
|
|
body TEXT NOT NULL,
|
|
attachment_id BIGINT NOT NULL DEFAULT 0,
|
|
attachment_lot INT NOT NULL DEFAULT 0,
|
|
attachment_subkey BIGINT NOT NULL DEFAULT 0,
|
|
attachment_count INT NOT NULL DEFAULT 0,
|
|
was_read BOOLEAN NOT NULL DEFAULT FALSE
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS object_id_tracker (
|
|
last_object_id BIGINT UNSIGNED NOT NULL DEFAULT 0 PRIMARY KEY
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS pet_names (
|
|
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
pet_name TEXT NOT NULL,
|
|
approved INT UNSIGNED NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS play_keys (
|
|
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
key_string CHAR(19) NOT NULL UNIQUE,
|
|
key_uses INT NOT NULL DEFAULT 1,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP(),
|
|
active BOOLEAN NOT NULL DEFAULT TRUE
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS properties (
|
|
id BIGINT NOT NULL PRIMARY KEY,
|
|
owner_id BIGINT NOT NULL REFERENCES charinfo(id),
|
|
template_id INT UNSIGNED NOT NULL,
|
|
clone_id BIGINT UNSIGNED REFERENCES charinfo(prop_clone_id),
|
|
name TEXT NOT NULL,
|
|
description TEXT NOT NULL,
|
|
rent_amount INT NOT NULL,
|
|
rent_due BIGINT NOT NULL,
|
|
privacy_option INT NOT NULL,
|
|
mod_approved BOOLEAN NOT NULL DEFAULT FALSE,
|
|
last_updated BIGINT NOT NULL,
|
|
time_claimed BIGINT NOT NULL,
|
|
rejection_reason TEXT NOT NULL,
|
|
reputation BIGINT UNSIGNED NOT NULL,
|
|
zone_id INT NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS ugc (
|
|
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
account_id INT NOT NULL REFERENCES accounts(id),
|
|
character_id BIGINT NOT NULL REFERENCES charinfo(id),
|
|
is_optimized BOOLEAN NOT NULL DEFAULT FALSE,
|
|
lxfml MEDIUMBLOB NOT NULL,
|
|
bake_ao BOOLEAN NOT NULL DEFAULT FALSE,
|
|
filename TEXT NOT NULL DEFAULT ('')
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS properties_contents (
|
|
id BIGINT NOT NULL PRIMARY KEY,
|
|
property_id BIGINT NOT NULL REFERENCES properties(id),
|
|
ugc_id INT NULL REFERENCES ugc(id),
|
|
lot INT NOT NULL,
|
|
x FLOAT NOT NULL,
|
|
y FLOAT NOT NULL,
|
|
z FLOAT NOT NULL,
|
|
rx FLOAT NOT NULL,
|
|
ry FLOAT NOT NULL,
|
|
rz FLOAT NOT NULL,
|
|
rw FLOAT NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS activity_log (
|
|
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
character_id BIGINT NOT NULL REFERENCES charinfo(id),
|
|
activity INT NOT NULL,
|
|
time BIGINT UNSIGNED NOT NULL,
|
|
map_id INT NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS bug_reports (
|
|
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
body TEXT NOT NULL,
|
|
client_version TEXT NOT NULL,
|
|
other_player_id TEXT NOT NULL,
|
|
selection TEXT NOT NULL,
|
|
submitted TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP()
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS servers (
|
|
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
name TEXT NOT NULL,
|
|
ip TEXT NOT NULL,
|
|
port INT NOT NULL,
|
|
state INT NOT NULL,
|
|
version INT NOT NULL DEFAULT 0
|
|
);
|