get_charset_collate(); $presence_table = $wpdb->prefix . AEROMC_FRIENDS_PRESENCE_TABLE; $friends_table = $wpdb->prefix . AEROMC_FRIENDS_FRIENDS_TABLE; $invites_table = $wpdb->prefix . AEROMC_FRIENDS_INVITES_TABLE; require_once ABSPATH . 'wp-admin/includes/upgrade.php'; // uuid ohne Bindestriche gespeichert (siehe aeromc_friends_normalize_uuid // in includes/routes.php) - vermeidet doppelte Zeilen durch // unterschiedliche Schreibweisen derselben UUID $sql_presence = "CREATE TABLE $presence_table ( uuid varchar(32) NOT NULL, username varchar(32) NOT NULL, instance_name varchar(128) DEFAULT NULL, server_label varchar(128) DEFAULT NULL, mc_version varchar(32) DEFAULT NULL, last_seen datetime NOT NULL, PRIMARY KEY (uuid) ) $charset_collate;"; dbDelta($sql_presence); $sql_friends = "CREATE TABLE $friends_table ( id bigint(20) unsigned NOT NULL AUTO_INCREMENT, uuid_a varchar(32) NOT NULL, uuid_b varchar(32) NOT NULL, status varchar(20) NOT NULL DEFAULT 'pending', created_at datetime NOT NULL, PRIMARY KEY (id), KEY uuid_a (uuid_a), KEY uuid_b (uuid_b) ) $charset_collate;"; dbDelta($sql_friends); // Einladungen "Komm auf meinen Server" - gelten nur ein paar Minuten $sql_invites = "CREATE TABLE $invites_table ( id bigint(20) unsigned NOT NULL AUTO_INCREMENT, from_uuid varchar(32) NOT NULL, to_uuid varchar(32) NOT NULL, server varchar(128) NOT NULL, mc_version varchar(32) DEFAULT NULL, created_at datetime NOT NULL, PRIMARY KEY (id), KEY to_uuid (to_uuid) ) $charset_collate;"; dbDelta($sql_invites); update_option('aeromc_friends_db_version', AEROMC_FRIENDS_VERSION); } register_activation_hook(__FILE__, 'aeromc_friends_install'); // Beim Ersetzen der Plugin-Dateien (Update per Upload) läuft der // Aktivierungs-Hook NICHT erneut - neue Spalten/Tabellen deshalb anlegen, // sobald die gespeicherte DB-Version nicht mehr zur Plugin-Version passt. add_action('plugins_loaded', function () { if (get_option('aeromc_friends_db_version') !== AEROMC_FRIENDS_VERSION) { aeromc_friends_install(); } }); require_once plugin_dir_path(__FILE__) . 'includes/routes.php';