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.membersTable = storage.table("members");
|
||||||
this.warpsTable = storage.table("warps");
|
this.warpsTable = storage.table("warps");
|
||||||
this.invitesTable = storage.table("invites");
|
this.invitesTable = storage.table("invites");
|
||||||
ensureSchema();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -344,175 +343,6 @@ public class JdbiGuildRepository implements GuildRepository
|
|||||||
return e;
|
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)
|
private Guild toGuildBase(GuildEntity entity)
|
||||||
{
|
{
|
||||||
String timezone = Guilds.get().api().configuration().mainConfig().getString("server.timezone", "Etc/UTC");
|
String timezone = Guilds.get().api().configuration().mainConfig().getString("server.timezone", "Etc/UTC");
|
||||||
|
|||||||
Reference in New Issue
Block a user