mirror of
https://github.com/plexusorg/Module-Guilds.git
synced 2026-06-04 02:36:54 +00:00
Update JdbiGuildRepository.java
This commit is contained in:
@@ -43,7 +43,6 @@ public class JdbiGuildRepository implements GuildRepository
|
||||
this.membersTable = storage.table("members");
|
||||
this.warpsTable = storage.table("warps");
|
||||
this.invitesTable = storage.table("invites");
|
||||
ensureSchema();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -344,175 +343,6 @@ public class JdbiGuildRepository implements GuildRepository
|
||||
return e;
|
||||
}
|
||||
|
||||
private void ensureSchema()
|
||||
{
|
||||
try
|
||||
{
|
||||
jdbi.useHandle(h ->
|
||||
{
|
||||
String productName = h.getConnection().getMetaData().getDatabaseProductName().toLowerCase(Locale.ROOT);
|
||||
schemaStatements(productName).forEach(sql -> h.createUpdate(sql).execute());
|
||||
});
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new IllegalStateException("Failed to create guild tables", e);
|
||||
}
|
||||
}
|
||||
|
||||
private List<String> schemaStatements(String productName)
|
||||
{
|
||||
if (productName.contains("sqlite"))
|
||||
{
|
||||
return List.of(
|
||||
"CREATE TABLE IF NOT EXISTS " + guildsTable + " (" +
|
||||
"guild_uuid VARCHAR(46) NOT NULL PRIMARY KEY, " +
|
||||
"name VARCHAR(64) NOT NULL UNIQUE, " +
|
||||
"prefix VARCHAR(64), " +
|
||||
"owner_uuid VARCHAR(46) NOT NULL, " +
|
||||
"created_at BIGINT NOT NULL, " +
|
||||
"home_world VARCHAR(128), " +
|
||||
"home_x DOUBLE, " +
|
||||
"home_y DOUBLE, " +
|
||||
"home_z DOUBLE, " +
|
||||
"home_yaw FLOAT, " +
|
||||
"home_pitch FLOAT, " +
|
||||
"motd VARCHAR(3000), " +
|
||||
"tag_enabled BOOLEAN NOT NULL DEFAULT 1, " +
|
||||
"is_public BOOLEAN NOT NULL DEFAULT 0" +
|
||||
")",
|
||||
"CREATE TABLE IF NOT EXISTS " + membersTable + " (" +
|
||||
"id INTEGER PRIMARY KEY AUTOINCREMENT, " +
|
||||
"guild_uuid VARCHAR(46) NOT NULL, " +
|
||||
"player_uuid VARCHAR(46) NOT NULL, " +
|
||||
"role VARCHAR(20) NOT NULL, " +
|
||||
"joined_at BIGINT NOT NULL, " +
|
||||
"UNIQUE (guild_uuid, player_uuid)" +
|
||||
")",
|
||||
"CREATE TABLE IF NOT EXISTS " + warpsTable + " (" +
|
||||
"id INTEGER PRIMARY KEY AUTOINCREMENT, " +
|
||||
"guild_uuid VARCHAR(46) NOT NULL, " +
|
||||
"name VARCHAR(16) NOT NULL, " +
|
||||
"world VARCHAR(128) NOT NULL, " +
|
||||
"x DOUBLE NOT NULL, " +
|
||||
"y DOUBLE NOT NULL, " +
|
||||
"z DOUBLE NOT NULL, " +
|
||||
"yaw FLOAT NOT NULL, " +
|
||||
"pitch FLOAT NOT NULL, " +
|
||||
"UNIQUE (guild_uuid, name)" +
|
||||
")",
|
||||
"CREATE TABLE IF NOT EXISTS " + invitesTable + " (" +
|
||||
"id INTEGER PRIMARY KEY AUTOINCREMENT, " +
|
||||
"guild_uuid VARCHAR(46) NOT NULL, " +
|
||||
"inviter_uuid VARCHAR(46) NOT NULL, " +
|
||||
"invitee_uuid VARCHAR(46) NOT NULL, " +
|
||||
"expires_at BIGINT NOT NULL, " +
|
||||
"UNIQUE (guild_uuid, invitee_uuid)" +
|
||||
")"
|
||||
);
|
||||
}
|
||||
if (productName.contains("postgres"))
|
||||
{
|
||||
return List.of(
|
||||
"CREATE TABLE IF NOT EXISTS " + guildsTable + " (" +
|
||||
"guild_uuid VARCHAR(46) NOT NULL PRIMARY KEY, " +
|
||||
"name VARCHAR(64) NOT NULL UNIQUE, " +
|
||||
"prefix VARCHAR(64), " +
|
||||
"owner_uuid VARCHAR(46) NOT NULL, " +
|
||||
"created_at BIGINT NOT NULL, " +
|
||||
"home_world VARCHAR(128), " +
|
||||
"home_x DOUBLE PRECISION, " +
|
||||
"home_y DOUBLE PRECISION, " +
|
||||
"home_z DOUBLE PRECISION, " +
|
||||
"home_yaw REAL, " +
|
||||
"home_pitch REAL, " +
|
||||
"motd VARCHAR(3000), " +
|
||||
"tag_enabled BOOLEAN NOT NULL DEFAULT TRUE, " +
|
||||
"is_public BOOLEAN NOT NULL DEFAULT FALSE" +
|
||||
")",
|
||||
"CREATE TABLE IF NOT EXISTS " + membersTable + " (" +
|
||||
"id BIGSERIAL PRIMARY KEY, " +
|
||||
"guild_uuid VARCHAR(46) NOT NULL, " +
|
||||
"player_uuid VARCHAR(46) NOT NULL, " +
|
||||
"role VARCHAR(20) NOT NULL, " +
|
||||
"joined_at BIGINT NOT NULL, " +
|
||||
"CONSTRAINT uq_members_guild_player UNIQUE (guild_uuid, player_uuid)" +
|
||||
")",
|
||||
"CREATE TABLE IF NOT EXISTS " + warpsTable + " (" +
|
||||
"id BIGSERIAL PRIMARY KEY, " +
|
||||
"guild_uuid VARCHAR(46) NOT NULL, " +
|
||||
"name VARCHAR(16) NOT NULL, " +
|
||||
"world VARCHAR(128) NOT NULL, " +
|
||||
"x DOUBLE PRECISION NOT NULL, " +
|
||||
"y DOUBLE PRECISION NOT NULL, " +
|
||||
"z DOUBLE PRECISION NOT NULL, " +
|
||||
"yaw REAL NOT NULL, " +
|
||||
"pitch REAL NOT NULL, " +
|
||||
"CONSTRAINT uq_warps_guild_name UNIQUE (guild_uuid, name)" +
|
||||
")",
|
||||
"CREATE TABLE IF NOT EXISTS " + invitesTable + " (" +
|
||||
"id BIGSERIAL PRIMARY KEY, " +
|
||||
"guild_uuid VARCHAR(46) NOT NULL, " +
|
||||
"inviter_uuid VARCHAR(46) NOT NULL, " +
|
||||
"invitee_uuid VARCHAR(46) NOT NULL, " +
|
||||
"expires_at BIGINT NOT NULL, " +
|
||||
"CONSTRAINT uq_invites_guild_invitee UNIQUE (guild_uuid, invitee_uuid)" +
|
||||
")"
|
||||
);
|
||||
}
|
||||
return List.of(
|
||||
"CREATE TABLE IF NOT EXISTS " + guildsTable + " (" +
|
||||
"`guild_uuid` VARCHAR(46) NOT NULL, " +
|
||||
"`name` VARCHAR(64) NOT NULL, " +
|
||||
"`prefix` VARCHAR(64), " +
|
||||
"`owner_uuid` VARCHAR(46) NOT NULL, " +
|
||||
"`created_at` BIGINT NOT NULL, " +
|
||||
"`home_world` VARCHAR(128), " +
|
||||
"`home_x` DOUBLE, " +
|
||||
"`home_y` DOUBLE, " +
|
||||
"`home_z` DOUBLE, " +
|
||||
"`home_yaw` FLOAT, " +
|
||||
"`home_pitch` FLOAT, " +
|
||||
"`motd` VARCHAR(3000), " +
|
||||
"`tag_enabled` BOOLEAN NOT NULL DEFAULT TRUE, " +
|
||||
"`is_public` BOOLEAN NOT NULL DEFAULT FALSE, " +
|
||||
"PRIMARY KEY (`guild_uuid`), " +
|
||||
"UNIQUE KEY `uq_guilds_name` (`name`)" +
|
||||
")",
|
||||
"CREATE TABLE IF NOT EXISTS " + membersTable + " (" +
|
||||
"`id` BIGINT NOT NULL AUTO_INCREMENT, " +
|
||||
"`guild_uuid` VARCHAR(46) NOT NULL, " +
|
||||
"`player_uuid` VARCHAR(46) NOT NULL, " +
|
||||
"`role` VARCHAR(20) NOT NULL, " +
|
||||
"`joined_at` BIGINT NOT NULL, " +
|
||||
"PRIMARY KEY (`id`), " +
|
||||
"UNIQUE KEY `uq_members_guild_player` (`guild_uuid`, `player_uuid`)" +
|
||||
")",
|
||||
"CREATE TABLE IF NOT EXISTS " + warpsTable + " (" +
|
||||
"`id` BIGINT NOT NULL AUTO_INCREMENT, " +
|
||||
"`guild_uuid` VARCHAR(46) NOT NULL, " +
|
||||
"`name` VARCHAR(16) NOT NULL, " +
|
||||
"`world` VARCHAR(128) NOT NULL, " +
|
||||
"`x` DOUBLE NOT NULL, " +
|
||||
"`y` DOUBLE NOT NULL, " +
|
||||
"`z` DOUBLE NOT NULL, " +
|
||||
"`yaw` FLOAT NOT NULL, " +
|
||||
"`pitch` FLOAT NOT NULL, " +
|
||||
"PRIMARY KEY (`id`), " +
|
||||
"UNIQUE KEY `uq_warps_guild_name` (`guild_uuid`, `name`)" +
|
||||
")",
|
||||
"CREATE TABLE IF NOT EXISTS " + invitesTable + " (" +
|
||||
"`id` BIGINT NOT NULL AUTO_INCREMENT, " +
|
||||
"`guild_uuid` VARCHAR(46) NOT NULL, " +
|
||||
"`inviter_uuid` VARCHAR(46) NOT NULL, " +
|
||||
"`invitee_uuid` VARCHAR(46) NOT NULL, " +
|
||||
"`expires_at` BIGINT NOT NULL, " +
|
||||
"PRIMARY KEY (`id`), " +
|
||||
"UNIQUE KEY `uq_invites_guild_invitee` (`guild_uuid`, `invitee_uuid`)" +
|
||||
")"
|
||||
);
|
||||
}
|
||||
|
||||
private Guild toGuildBase(GuildEntity entity)
|
||||
{
|
||||
String timezone = Guilds.get().api().configuration().mainConfig().getString("server.timezone", "Etc/UTC");
|
||||
|
||||
Reference in New Issue
Block a user