@@ -43,7 +43,6 @@ public JdbiGuildRepository(ModuleStorage storage)
4343 this .membersTable = storage .table ("members" );
4444 this .warpsTable = storage .table ("warps" );
4545 this .invitesTable = storage .table ("invites" );
46- ensureSchema ();
4746 }
4847
4948 @ Override
@@ -344,175 +343,6 @@ private static GuildInviteEntity inviteMapRow(java.sql.ResultSet rs) throws java
344343 return e ;
345344 }
346345
347- private void ensureSchema ()
348- {
349- try
350- {
351- jdbi .useHandle (h ->
352- {
353- String productName = h .getConnection ().getMetaData ().getDatabaseProductName ().toLowerCase (Locale .ROOT );
354- schemaStatements (productName ).forEach (sql -> h .createUpdate (sql ).execute ());
355- });
356- }
357- catch (Exception e )
358- {
359- throw new IllegalStateException ("Failed to create guild tables" , e );
360- }
361- }
362-
363- private List <String > schemaStatements (String productName )
364- {
365- if (productName .contains ("sqlite" ))
366- {
367- return List .of (
368- "CREATE TABLE IF NOT EXISTS " + guildsTable + " (" +
369- "guild_uuid VARCHAR(46) NOT NULL PRIMARY KEY, " +
370- "name VARCHAR(64) NOT NULL UNIQUE, " +
371- "prefix VARCHAR(64), " +
372- "owner_uuid VARCHAR(46) NOT NULL, " +
373- "created_at BIGINT NOT NULL, " +
374- "home_world VARCHAR(128), " +
375- "home_x DOUBLE, " +
376- "home_y DOUBLE, " +
377- "home_z DOUBLE, " +
378- "home_yaw FLOAT, " +
379- "home_pitch FLOAT, " +
380- "motd VARCHAR(3000), " +
381- "tag_enabled BOOLEAN NOT NULL DEFAULT 1, " +
382- "is_public BOOLEAN NOT NULL DEFAULT 0" +
383- ")" ,
384- "CREATE TABLE IF NOT EXISTS " + membersTable + " (" +
385- "id INTEGER PRIMARY KEY AUTOINCREMENT, " +
386- "guild_uuid VARCHAR(46) NOT NULL, " +
387- "player_uuid VARCHAR(46) NOT NULL, " +
388- "role VARCHAR(20) NOT NULL, " +
389- "joined_at BIGINT NOT NULL, " +
390- "UNIQUE (guild_uuid, player_uuid)" +
391- ")" ,
392- "CREATE TABLE IF NOT EXISTS " + warpsTable + " (" +
393- "id INTEGER PRIMARY KEY AUTOINCREMENT, " +
394- "guild_uuid VARCHAR(46) NOT NULL, " +
395- "name VARCHAR(16) NOT NULL, " +
396- "world VARCHAR(128) NOT NULL, " +
397- "x DOUBLE NOT NULL, " +
398- "y DOUBLE NOT NULL, " +
399- "z DOUBLE NOT NULL, " +
400- "yaw FLOAT NOT NULL, " +
401- "pitch FLOAT NOT NULL, " +
402- "UNIQUE (guild_uuid, name)" +
403- ")" ,
404- "CREATE TABLE IF NOT EXISTS " + invitesTable + " (" +
405- "id INTEGER PRIMARY KEY AUTOINCREMENT, " +
406- "guild_uuid VARCHAR(46) NOT NULL, " +
407- "inviter_uuid VARCHAR(46) NOT NULL, " +
408- "invitee_uuid VARCHAR(46) NOT NULL, " +
409- "expires_at BIGINT NOT NULL, " +
410- "UNIQUE (guild_uuid, invitee_uuid)" +
411- ")"
412- );
413- }
414- if (productName .contains ("postgres" ))
415- {
416- return List .of (
417- "CREATE TABLE IF NOT EXISTS " + guildsTable + " (" +
418- "guild_uuid VARCHAR(46) NOT NULL PRIMARY KEY, " +
419- "name VARCHAR(64) NOT NULL UNIQUE, " +
420- "prefix VARCHAR(64), " +
421- "owner_uuid VARCHAR(46) NOT NULL, " +
422- "created_at BIGINT NOT NULL, " +
423- "home_world VARCHAR(128), " +
424- "home_x DOUBLE PRECISION, " +
425- "home_y DOUBLE PRECISION, " +
426- "home_z DOUBLE PRECISION, " +
427- "home_yaw REAL, " +
428- "home_pitch REAL, " +
429- "motd VARCHAR(3000), " +
430- "tag_enabled BOOLEAN NOT NULL DEFAULT TRUE, " +
431- "is_public BOOLEAN NOT NULL DEFAULT FALSE" +
432- ")" ,
433- "CREATE TABLE IF NOT EXISTS " + membersTable + " (" +
434- "id BIGSERIAL PRIMARY KEY, " +
435- "guild_uuid VARCHAR(46) NOT NULL, " +
436- "player_uuid VARCHAR(46) NOT NULL, " +
437- "role VARCHAR(20) NOT NULL, " +
438- "joined_at BIGINT NOT NULL, " +
439- "CONSTRAINT uq_members_guild_player UNIQUE (guild_uuid, player_uuid)" +
440- ")" ,
441- "CREATE TABLE IF NOT EXISTS " + warpsTable + " (" +
442- "id BIGSERIAL PRIMARY KEY, " +
443- "guild_uuid VARCHAR(46) NOT NULL, " +
444- "name VARCHAR(16) NOT NULL, " +
445- "world VARCHAR(128) NOT NULL, " +
446- "x DOUBLE PRECISION NOT NULL, " +
447- "y DOUBLE PRECISION NOT NULL, " +
448- "z DOUBLE PRECISION NOT NULL, " +
449- "yaw REAL NOT NULL, " +
450- "pitch REAL NOT NULL, " +
451- "CONSTRAINT uq_warps_guild_name UNIQUE (guild_uuid, name)" +
452- ")" ,
453- "CREATE TABLE IF NOT EXISTS " + invitesTable + " (" +
454- "id BIGSERIAL PRIMARY KEY, " +
455- "guild_uuid VARCHAR(46) NOT NULL, " +
456- "inviter_uuid VARCHAR(46) NOT NULL, " +
457- "invitee_uuid VARCHAR(46) NOT NULL, " +
458- "expires_at BIGINT NOT NULL, " +
459- "CONSTRAINT uq_invites_guild_invitee UNIQUE (guild_uuid, invitee_uuid)" +
460- ")"
461- );
462- }
463- return List .of (
464- "CREATE TABLE IF NOT EXISTS " + guildsTable + " (" +
465- "`guild_uuid` VARCHAR(46) NOT NULL, " +
466- "`name` VARCHAR(64) NOT NULL, " +
467- "`prefix` VARCHAR(64), " +
468- "`owner_uuid` VARCHAR(46) NOT NULL, " +
469- "`created_at` BIGINT NOT NULL, " +
470- "`home_world` VARCHAR(128), " +
471- "`home_x` DOUBLE, " +
472- "`home_y` DOUBLE, " +
473- "`home_z` DOUBLE, " +
474- "`home_yaw` FLOAT, " +
475- "`home_pitch` FLOAT, " +
476- "`motd` VARCHAR(3000), " +
477- "`tag_enabled` BOOLEAN NOT NULL DEFAULT TRUE, " +
478- "`is_public` BOOLEAN NOT NULL DEFAULT FALSE, " +
479- "PRIMARY KEY (`guild_uuid`), " +
480- "UNIQUE KEY `uq_guilds_name` (`name`)" +
481- ")" ,
482- "CREATE TABLE IF NOT EXISTS " + membersTable + " (" +
483- "`id` BIGINT NOT NULL AUTO_INCREMENT, " +
484- "`guild_uuid` VARCHAR(46) NOT NULL, " +
485- "`player_uuid` VARCHAR(46) NOT NULL, " +
486- "`role` VARCHAR(20) NOT NULL, " +
487- "`joined_at` BIGINT NOT NULL, " +
488- "PRIMARY KEY (`id`), " +
489- "UNIQUE KEY `uq_members_guild_player` (`guild_uuid`, `player_uuid`)" +
490- ")" ,
491- "CREATE TABLE IF NOT EXISTS " + warpsTable + " (" +
492- "`id` BIGINT NOT NULL AUTO_INCREMENT, " +
493- "`guild_uuid` VARCHAR(46) NOT NULL, " +
494- "`name` VARCHAR(16) NOT NULL, " +
495- "`world` VARCHAR(128) NOT NULL, " +
496- "`x` DOUBLE NOT NULL, " +
497- "`y` DOUBLE NOT NULL, " +
498- "`z` DOUBLE NOT NULL, " +
499- "`yaw` FLOAT NOT NULL, " +
500- "`pitch` FLOAT NOT NULL, " +
501- "PRIMARY KEY (`id`), " +
502- "UNIQUE KEY `uq_warps_guild_name` (`guild_uuid`, `name`)" +
503- ")" ,
504- "CREATE TABLE IF NOT EXISTS " + invitesTable + " (" +
505- "`id` BIGINT NOT NULL AUTO_INCREMENT, " +
506- "`guild_uuid` VARCHAR(46) NOT NULL, " +
507- "`inviter_uuid` VARCHAR(46) NOT NULL, " +
508- "`invitee_uuid` VARCHAR(46) NOT NULL, " +
509- "`expires_at` BIGINT NOT NULL, " +
510- "PRIMARY KEY (`id`), " +
511- "UNIQUE KEY `uq_invites_guild_invitee` (`guild_uuid`, `invitee_uuid`)" +
512- ")"
513- );
514- }
515-
516346 private Guild toGuildBase (GuildEntity entity )
517347 {
518348 String timezone = Guilds .get ().api ().configuration ().mainConfig ().getString ("server.timezone" , "Etc/UTC" );
0 commit comments