mirror of
https://github.com/ColdeZhang/Dominion.git
synced 2024-10-19 03:26:40 +08:00
修改dto代码适配新数据库工具库
This commit is contained in:
parent
03cb1af603
commit
7a6798bed1
2
pom.xml
2
pom.xml
@ -82,7 +82,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.lunadeer</groupId>
|
<groupId>cn.lunadeer</groupId>
|
||||||
<artifactId>MinecraftPluginUtils</artifactId>
|
<artifactId>MinecraftPluginUtils</artifactId>
|
||||||
<version>1.3.3-SNAPSHOT</version>
|
<version>1.3.4-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.github.BlueMap-Minecraft</groupId>
|
<groupId>com.github.BlueMap-Minecraft</groupId>
|
||||||
|
@ -6,6 +6,8 @@ import cn.lunadeer.dominion.events.SelectPointEvents;
|
|||||||
import cn.lunadeer.dominion.managers.ConfigManager;
|
import cn.lunadeer.dominion.managers.ConfigManager;
|
||||||
import cn.lunadeer.dominion.managers.DatabaseTables;
|
import cn.lunadeer.dominion.managers.DatabaseTables;
|
||||||
import cn.lunadeer.minecraftpluginutils.*;
|
import cn.lunadeer.minecraftpluginutils.*;
|
||||||
|
import cn.lunadeer.minecraftpluginutils.databse.DatabaseManager;
|
||||||
|
import cn.lunadeer.minecraftpluginutils.databse.DatabaseType;
|
||||||
import cn.lunadeer.minecraftpluginutils.scui.CuiManager;
|
import cn.lunadeer.minecraftpluginutils.scui.CuiManager;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
@ -26,8 +28,8 @@ public final class Dominion extends JavaPlugin {
|
|||||||
new XLogger(this);
|
new XLogger(this);
|
||||||
config = new ConfigManager(this);
|
config = new ConfigManager(this);
|
||||||
XLogger.setDebug(config.isDebug());
|
XLogger.setDebug(config.isDebug());
|
||||||
database = new DatabaseManager(this,
|
new DatabaseManager(this,
|
||||||
DatabaseManager.TYPE.valueOf(config.getDbType().toUpperCase()),
|
DatabaseType.valueOf(config.getDbType().toUpperCase()),
|
||||||
config.getDbHost(),
|
config.getDbHost(),
|
||||||
config.getDbPort(),
|
config.getDbPort(),
|
||||||
config.getDbName(),
|
config.getDbName(),
|
||||||
@ -74,12 +76,11 @@ public final class Dominion extends JavaPlugin {
|
|||||||
@Override
|
@Override
|
||||||
public void onDisable() {
|
public void onDisable() {
|
||||||
// Plugin shutdown logic
|
// Plugin shutdown logic
|
||||||
database.close();
|
DatabaseManager.instance.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Dominion instance;
|
public static Dominion instance;
|
||||||
public static ConfigManager config;
|
public static ConfigManager config;
|
||||||
public static DatabaseManager database;
|
|
||||||
public static Map<UUID, Map<Integer, Location>> pointsSelect = new HashMap<>();
|
public static Map<UUID, Map<Integer, Location>> pointsSelect = new HashMap<>();
|
||||||
private GiteaReleaseCheck giteaReleaseCheck;
|
private GiteaReleaseCheck giteaReleaseCheck;
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ package cn.lunadeer.dominion.dtos;
|
|||||||
import cn.lunadeer.dominion.Cache;
|
import cn.lunadeer.dominion.Cache;
|
||||||
import cn.lunadeer.dominion.Dominion;
|
import cn.lunadeer.dominion.Dominion;
|
||||||
import cn.lunadeer.minecraftpluginutils.XLogger;
|
import cn.lunadeer.minecraftpluginutils.XLogger;
|
||||||
|
import cn.lunadeer.minecraftpluginutils.databse.DatabaseManager;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
|
|
||||||
@ -15,7 +16,7 @@ import java.util.List;
|
|||||||
public class DominionDTO {
|
public class DominionDTO {
|
||||||
private static List<DominionDTO> query(String sql, Object... args) {
|
private static List<DominionDTO> query(String sql, Object... args) {
|
||||||
List<DominionDTO> dominions = new ArrayList<>();
|
List<DominionDTO> dominions = new ArrayList<>();
|
||||||
try (ResultSet rs = Dominion.database.query(sql, args)) {
|
try (ResultSet rs = DatabaseManager.instance.query(sql, args)) {
|
||||||
if (sql.contains("UPDATE") || sql.contains("DELETE") || sql.contains("INSERT")) {
|
if (sql.contains("UPDATE") || sql.contains("DELETE") || sql.contains("INSERT")) {
|
||||||
// 如果是更新操作,重新加载缓存
|
// 如果是更新操作,重新加载缓存
|
||||||
Cache.instance.loadDominions();
|
Cache.instance.loadDominions();
|
||||||
|
@ -1,119 +1,159 @@
|
|||||||
package cn.lunadeer.dominion.managers;
|
package cn.lunadeer.dominion.managers;
|
||||||
|
|
||||||
import cn.lunadeer.dominion.Dominion;
|
|
||||||
import cn.lunadeer.dominion.dtos.Flag;
|
import cn.lunadeer.dominion.dtos.Flag;
|
||||||
|
import cn.lunadeer.minecraftpluginutils.databse.Field;
|
||||||
|
import cn.lunadeer.minecraftpluginutils.databse.FieldType;
|
||||||
|
import cn.lunadeer.minecraftpluginutils.databse.TableColumn;
|
||||||
|
import cn.lunadeer.minecraftpluginutils.databse.syntax.AddColumn;
|
||||||
|
import cn.lunadeer.minecraftpluginutils.databse.syntax.CreateTable;
|
||||||
|
import cn.lunadeer.minecraftpluginutils.databse.syntax.InsertRow;
|
||||||
|
|
||||||
public class DatabaseTables {
|
public class DatabaseTables {
|
||||||
public static void migrate() {
|
public static void migrate() {
|
||||||
String sql = "";
|
|
||||||
|
|
||||||
// player name
|
// player name
|
||||||
Dominion.database.createTableIfNotExists(
|
TableColumn player_name_id = new TableColumn("id", FieldType.INT, true, true, true, true, null);
|
||||||
"player_name",
|
TableColumn player_name_uuid = new TableColumn("uuid", FieldType.STRING, false, false, true, true, null);
|
||||||
new String[]{"id", "uuid", "last_known_name", "last_join_at"},
|
TableColumn player_name_last_known_name = new TableColumn("last_known_name", FieldType.STRING, false, false, true, false, null);
|
||||||
new String[]{"SERIAL PRIMARY KEY", "VARCHAR(36) NOT NULL UNIQUE", "TEXT NOT NULL", "TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP"},
|
TableColumn player_name_last_join_at = new TableColumn("last_join_at", FieldType.DATETIME, false, false, true, false, "CURRENT_TIMESTAMP");
|
||||||
null
|
CreateTable player_name = new CreateTable().ifNotExists();
|
||||||
);
|
player_name.table("player_name")
|
||||||
|
.field(player_name_id)
|
||||||
|
.field(player_name_uuid)
|
||||||
|
.field(player_name_last_known_name)
|
||||||
|
.field(player_name_last_join_at);
|
||||||
|
player_name.execute();
|
||||||
|
|
||||||
// dominion table
|
// dominion table
|
||||||
Dominion.database.createTableIfNotExists(
|
TableColumn dominion_id = new TableColumn("id", FieldType.INT, true, true, true, true, null);
|
||||||
"dominion",
|
TableColumn dominion_owner = new TableColumn("owner", FieldType.STRING, false, false, true, false, null);
|
||||||
new String[]{"id",
|
TableColumn dominion_name = new TableColumn("name", FieldType.STRING, false, false, true, false, null);
|
||||||
"owner",
|
TableColumn dominion_world = new TableColumn("world", FieldType.STRING, false, false, true, false, null);
|
||||||
"name",
|
TableColumn dominion_x1 = new TableColumn("x1", FieldType.INT, false, false, true, false, null);
|
||||||
"world",
|
TableColumn dominion_y1 = new TableColumn("y1", FieldType.INT, false, false, true, false, null);
|
||||||
"x1", "y1", "z1", "x2", "y2", "z2",
|
TableColumn dominion_z1 = new TableColumn("z1", FieldType.INT, false, false, true, false, null);
|
||||||
"parent_dom_id",
|
TableColumn dominion_x2 = new TableColumn("x2", FieldType.INT, false, false, true, false, null);
|
||||||
"join_message",
|
TableColumn dominion_y2 = new TableColumn("y2", FieldType.INT, false, false, true, false, null);
|
||||||
"leave_message"},
|
TableColumn dominion_z2 = new TableColumn("z2", FieldType.INT, false, false, true, false, null);
|
||||||
new String[]{
|
TableColumn dominion_parent_dom_id = new TableColumn("parent_dom_id", FieldType.INT, false, false, true, false, -1);
|
||||||
"SERIAL PRIMARY KEY",
|
TableColumn dominion_join_message = new TableColumn("join_message", FieldType.STRING, false, false, true, false, "'欢迎'");
|
||||||
"VARCHAR(36) NOT NULL",
|
TableColumn dominion_leave_message = new TableColumn("leave_message", FieldType.STRING, false, false, true, false, "'再见'");
|
||||||
"TEXT NOT NULL UNIQUE",
|
CreateTable.ForeignKey dominion_owner_fk = new CreateTable.ForeignKey(dominion_owner, "player_name", player_name_uuid, true);
|
||||||
"TEXT NOT NULL", "INT NOT NULL", "INT NOT NULL", "INT NOT NULL", "INT NOT NULL", "INT NOT NULL", "INT NOT NULL",
|
CreateTable.ForeignKey dominion_parent_dom_id_fk = new CreateTable.ForeignKey(dominion_parent_dom_id, "dominion", dominion_id, true);
|
||||||
"INT NOT NULL DEFAULT -1",
|
CreateTable dominion = new CreateTable().ifNotExists();
|
||||||
"TEXT NOT NULL DEFAULT '欢迎'",
|
dominion.table("dominion")
|
||||||
"TEXT NOT NULL DEFAULT '再见'"},
|
.field(dominion_id)
|
||||||
new String[]{
|
.field(dominion_owner)
|
||||||
"FOREIGN KEY (owner) REFERENCES player_name(uuid) ON DELETE CASCADE",
|
.field(dominion_name)
|
||||||
"FOREIGN KEY (parent_dom_id) REFERENCES dominion(id) ON DELETE CASCADE"
|
.field(dominion_world)
|
||||||
}
|
.field(dominion_x1)
|
||||||
);
|
.field(dominion_y1)
|
||||||
|
.field(dominion_z1)
|
||||||
|
.field(dominion_x2)
|
||||||
|
.field(dominion_y2)
|
||||||
|
.field(dominion_z2)
|
||||||
|
.field(dominion_parent_dom_id)
|
||||||
|
.field(dominion_join_message)
|
||||||
|
.field(dominion_leave_message)
|
||||||
|
.foreignKey(dominion_owner_fk)
|
||||||
|
.foreignKey(dominion_parent_dom_id_fk);
|
||||||
|
dominion.execute();
|
||||||
|
|
||||||
// player privilege
|
// player privilege
|
||||||
Dominion.database.createTableIfNotExists(
|
TableColumn player_privilege_id = new TableColumn("id", FieldType.INT, true, true, true, true, null);
|
||||||
"player_privilege",
|
TableColumn player_privilege_player_uuid = new TableColumn("player_uuid", FieldType.STRING, false, false, true, false, null);
|
||||||
new String[]{"id", "player_uuid", "dom_id", "admin"},
|
TableColumn player_privilege_dom_id = new TableColumn("dom_id", FieldType.INT, false, false, true, false, null);
|
||||||
new String[]{"SERIAL PRIMARY KEY", "VARCHAR(36) NOT NULL", "INT NOT NULL", "BOOLEAN NOT NULL DEFAULT FALSE"},
|
TableColumn player_privilege_admin = new TableColumn("admin", FieldType.BOOLEAN, false, false, true, false, false);
|
||||||
new String[]{
|
CreateTable.ForeignKey player_privilege_player_uuid_fk = new CreateTable.ForeignKey(player_privilege_player_uuid, "player_name", player_name_uuid, true);
|
||||||
"UNIQUE (player_uuid, dom_id)",
|
CreateTable.ForeignKey player_privilege_dom_id_fk = new CreateTable.ForeignKey(player_privilege_dom_id, "dominion", dominion_id, true);
|
||||||
"FOREIGN KEY (player_uuid) REFERENCES player_name(uuid) ON DELETE CASCADE",
|
CreateTable player_privilege = new CreateTable().ifNotExists();
|
||||||
"FOREIGN KEY (dom_id) REFERENCES dominion(id) ON DELETE CASCADE"
|
player_privilege.table("player_privilege")
|
||||||
}
|
.field(player_privilege_id)
|
||||||
);
|
.field(player_privilege_player_uuid)
|
||||||
|
.field(player_privilege_dom_id)
|
||||||
|
.field(player_privilege_admin)
|
||||||
|
.foreignKey(player_privilege_player_uuid_fk)
|
||||||
|
.foreignKey(player_privilege_dom_id_fk)
|
||||||
|
.unique(player_privilege_player_uuid, player_privilege_dom_id);
|
||||||
|
player_name.execute();
|
||||||
|
|
||||||
Dominion.database.insertRowIfNotExists("player_name",
|
// server root player name
|
||||||
new String[]{"id", "uuid", "last_known_name"},
|
Field server_player_name_id_field = new Field("id", -1);
|
||||||
new String[]{"-1", "00000000-0000-0000-0000-000000000000", "server"},
|
Field server_player_name_uuid_field = new Field("uuid", "00000000-0000-0000-0000-000000000000");
|
||||||
0
|
Field server_player_name_last_known_name_field = new Field("last_known_name", "server");
|
||||||
);
|
InsertRow insert_server_player_name = new InsertRow().table("player_name").onConflictDoNothing(server_player_name_id_field)
|
||||||
|
.field(server_player_name_id_field)
|
||||||
|
.field(server_player_name_uuid_field)
|
||||||
|
.field(server_player_name_last_known_name_field);
|
||||||
|
insert_server_player_name.execute();
|
||||||
|
|
||||||
Dominion.database.insertRowIfNotExists("dominion",
|
// server root dominion
|
||||||
new String[]{
|
Field server_dom_id_field = new Field("id", -1);
|
||||||
"id",
|
Field server_dom_owner_field = new Field("owner", "00000000-0000-0000-0000-000000000000");
|
||||||
"owner",
|
Field server_dom_name_field = new Field("name", "根领地");
|
||||||
"name",
|
Field server_dom_world_field = new Field("world", "all");
|
||||||
"world",
|
Field server_dom_x1_field = new Field("x1", -2147483648);
|
||||||
"x1", "y1", "z1", "x2", "y2", "z2",
|
Field server_dom_y1_field = new Field("y1", -2147483648);
|
||||||
"parent_dom_id",
|
Field server_dom_z1_field = new Field("z1", -2147483648);
|
||||||
"join_message",
|
Field server_dom_x2_field = new Field("x2", 2147483647);
|
||||||
"leave_message"},
|
Field server_dom_y2_field = new Field("y2", 2147483647);
|
||||||
new String[]{
|
Field server_dom_z2_field = new Field("z2", 2147483647);
|
||||||
"-1",
|
Field server_dom_parent_dom_id_field = new Field("parent_dom_id", -1);
|
||||||
"00000000-0000-0000-0000-000000000000",
|
Field server_dom_join_message_field = new Field("join_message", "欢迎");
|
||||||
"根领地",
|
Field server_dom_leave_message_field = new Field("leave_message", "再见");
|
||||||
"all",
|
InsertRow insert_server_dom = new InsertRow().table("dominion").onConflictDoNothing(server_dom_id_field)
|
||||||
"-2147483648", "-2147483648", "-2147483648",
|
.field(server_dom_id_field)
|
||||||
"2147483647", "2147483647", "2147483647",
|
.field(server_dom_owner_field)
|
||||||
"-1",
|
.field(server_dom_name_field)
|
||||||
"欢迎",
|
.field(server_dom_world_field)
|
||||||
"再见"},
|
.field(server_dom_x1_field)
|
||||||
0
|
.field(server_dom_y1_field)
|
||||||
);
|
.field(server_dom_z1_field)
|
||||||
|
.field(server_dom_x2_field)
|
||||||
|
.field(server_dom_y2_field)
|
||||||
|
.field(server_dom_z2_field)
|
||||||
|
.field(server_dom_parent_dom_id_field)
|
||||||
|
.field(server_dom_join_message_field)
|
||||||
|
.field(server_dom_leave_message_field);
|
||||||
|
insert_server_dom.execute();
|
||||||
|
|
||||||
for (Flag flag : Flag.getAllDominionFlags()) {
|
for (Flag flag : Flag.getAllDominionFlags()) {
|
||||||
Dominion.database.addColumnIfNotExists("dominion",
|
TableColumn column = new TableColumn(flag.getFlagName(), FieldType.BOOLEAN, false, false, true, false, flag.getDefaultValue());
|
||||||
flag.getFlagName(),
|
new AddColumn(column).table("dominion").ifNotExists().execute();
|
||||||
"BOOLEAN NOT NULL DEFAULT " + flag.getDefaultValue());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Flag flag : Flag.getAllPrivilegeFlags()) {
|
for (Flag flag : Flag.getAllPrivilegeFlags()) {
|
||||||
Dominion.database.addColumnIfNotExists("player_privilege",
|
TableColumn column = new TableColumn(flag.getFlagName(), FieldType.BOOLEAN, false, false, true, false, flag.getDefaultValue());
|
||||||
flag.getFlagName(),
|
new AddColumn(column).table("player_privilege").ifNotExists().execute();
|
||||||
"BOOLEAN NOT NULL DEFAULT " + flag.getDefaultValue());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 1.18.0
|
// 1.18.0
|
||||||
Dominion.database.addColumnIfNotExists("dominion", "tp_location", "TEXT NOT NULL DEFAULT 'default'");
|
TableColumn dominion_tp_location = new TableColumn("tp_location", FieldType.STRING, false, false, true, false, "'default'");
|
||||||
|
new AddColumn(dominion_tp_location).table("dominion").ifNotExists().execute();
|
||||||
|
|
||||||
// 1.31.0
|
// 1.31.0
|
||||||
Dominion.database.createTableIfNotExists(
|
TableColumn privilege_template_id = new TableColumn("id", FieldType.INT, true, true, true, true, null);
|
||||||
"privilege_template",
|
TableColumn privilege_template_creator = new TableColumn("creator", FieldType.STRING, false, false, true, false, null);
|
||||||
new String[]{"id", "creator", "name", "admin"},
|
TableColumn privilege_template_name = new TableColumn("name", FieldType.STRING, false, false, true, false, null);
|
||||||
new String[]{"SERIAL PRIMARY KEY", "VARCHAR(36) NOT NULL", "TEXT NOT NULL", "BOOLEAN NOT NULL DEFAULT FALSE"},
|
TableColumn privilege_template_admin = new TableColumn("admin", FieldType.BOOLEAN, false, false, true, false, false);
|
||||||
new String[]{
|
CreateTable.ForeignKey privilege_template_creator_fk = new CreateTable.ForeignKey(privilege_template_creator, "player_name", player_name_uuid, true);
|
||||||
"UNIQUE (creator, name)",
|
CreateTable privilege_template = new CreateTable().ifNotExists();
|
||||||
"FOREIGN KEY (creator) REFERENCES player_name(uuid) ON DELETE CASCADE"
|
privilege_template.table("privilege_template")
|
||||||
}
|
.field(privilege_template_id)
|
||||||
);
|
.field(privilege_template_creator)
|
||||||
|
.field(privilege_template_name)
|
||||||
|
.field(privilege_template_admin)
|
||||||
|
.foreignKey(privilege_template_creator_fk)
|
||||||
|
.unique(privilege_template_creator, privilege_template_name);
|
||||||
|
privilege_template.execute();
|
||||||
|
|
||||||
|
|
||||||
for (Flag flag : Flag.getAllPrivilegeFlags()) {
|
for (Flag flag : Flag.getAllPrivilegeFlags()) {
|
||||||
Dominion.database.addColumnIfNotExists("privilege_template",
|
TableColumn column = new TableColumn(flag.getFlagName(), FieldType.BOOLEAN, false, false, true, false, flag.getDefaultValue());
|
||||||
flag.getFlagName(),
|
new AddColumn(column).table("privilege_template").ifNotExists().execute();
|
||||||
"BOOLEAN NOT NULL DEFAULT " + flag.getDefaultValue());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 1.31.6
|
// 1.31.6
|
||||||
Dominion.database.addColumnIfNotExists("dominion", "color", "TEXT NOT NULL DEFAULT '#00BFFF'");
|
TableColumn dominion_color = new TableColumn("color", FieldType.STRING, false, false, true, false, "'#00BFFF'");
|
||||||
|
new AddColumn(dominion_color).table("dominion").ifNotExists().execute();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user