mirror of
https://github.com/CarmJos/ScriptItems
synced 2024-09-19 21:35:50 +00:00
添加log数据库相关配置
This commit is contained in:
parent
2f76db122c
commit
3d62bad0c4
@ -8,7 +8,6 @@ import cc.carm.plugin.itemcommands.manager.ConfigManager;
|
||||
import cc.carm.plugin.itemcommands.util.JarResourceUtils;
|
||||
import org.bstats.bukkit.Metrics;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
@ -21,27 +20,6 @@ public class Main extends EasyPlugin {
|
||||
instance = this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 注册监听器
|
||||
*
|
||||
* @param listener 监听器
|
||||
*/
|
||||
public static void regListener(Listener listener) {
|
||||
Bukkit.getPluginManager().registerEvents(listener, getInstance());
|
||||
}
|
||||
|
||||
public static void info(String... messages) {
|
||||
getInstance().log(messages);
|
||||
}
|
||||
|
||||
public static void severe(String... messages) {
|
||||
getInstance().error(messages);
|
||||
}
|
||||
|
||||
public static void debugging(String... messages) {
|
||||
getInstance().debug(messages);
|
||||
}
|
||||
|
||||
public static Main getInstance() {
|
||||
return instance;
|
||||
}
|
||||
@ -75,7 +53,7 @@ public class Main extends EasyPlugin {
|
||||
@Override
|
||||
protected void shutdown() {
|
||||
|
||||
info("卸载监听器...");
|
||||
log("卸载监听器...");
|
||||
Bukkit.getServicesManager().unregisterAll(this);
|
||||
|
||||
}
|
||||
@ -89,4 +67,17 @@ public class Main extends EasyPlugin {
|
||||
public void outputInfo() {
|
||||
Optional.ofNullable(JarResourceUtils.readResource(this.getResource("PLUGIN_INFO"))).ifPresent(this::log);
|
||||
}
|
||||
|
||||
|
||||
public static void info(String... messages) {
|
||||
getInstance().log(messages);
|
||||
}
|
||||
|
||||
public static void severe(String... messages) {
|
||||
getInstance().error(messages);
|
||||
}
|
||||
|
||||
public static void debugging(String... messages) {
|
||||
getInstance().debug(messages);
|
||||
}
|
||||
}
|
||||
|
@ -16,8 +16,8 @@ public class PluginConfig {
|
||||
"check-update", Boolean.class, true
|
||||
);
|
||||
|
||||
public static final ConfigValue<String> STORAGE_METHOD = new ConfigValue<>(
|
||||
"storage.method", String.class, "YAML"
|
||||
public static final ConfigValue<Boolean> LOG_STORAGE = new ConfigValue<>(
|
||||
"log-storage.enable", Boolean.class, true
|
||||
);
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,49 @@
|
||||
package cc.carm.plugin.itemcommands.database;
|
||||
|
||||
import cc.carm.lib.easyplugin.configuration.values.ConfigValue;
|
||||
|
||||
public class DBConfiguration {
|
||||
|
||||
protected static final ConfigValue<String> DRIVER_NAME = new ConfigValue<>(
|
||||
"log-storage.database.driver", String.class,
|
||||
"com.mysql.cj.jdbc.Driver"
|
||||
);
|
||||
|
||||
protected static final ConfigValue<String> HOST = new ConfigValue<>(
|
||||
"log-storage.database.host", String.class,
|
||||
"127.0.0.1"
|
||||
);
|
||||
|
||||
protected static final ConfigValue<Integer> PORT = new ConfigValue<>(
|
||||
"log-storage.database.port", Integer.class,
|
||||
3306
|
||||
);
|
||||
|
||||
protected static final ConfigValue<String> DATABASE = new ConfigValue<>(
|
||||
"log-storage.database.database", String.class,
|
||||
"minecraft"
|
||||
);
|
||||
|
||||
protected static final ConfigValue<String> USERNAME = new ConfigValue<>(
|
||||
"log-storage.database.username", String.class,
|
||||
"root"
|
||||
);
|
||||
|
||||
protected static final ConfigValue<String> PASSWORD = new ConfigValue<>(
|
||||
"log-storage.database.password", String.class,
|
||||
"password"
|
||||
);
|
||||
|
||||
protected static final ConfigValue<String> EXTRA_SETTINGS = new ConfigValue<>(
|
||||
"log-storage.database.extra", String.class,
|
||||
"?useSSL=false"
|
||||
);
|
||||
|
||||
protected static String buildJDBC() {
|
||||
return String.format("jdbc:mysql://%s:%s/%s%s",
|
||||
HOST.get(), PORT.get(), DATABASE.get(), EXTRA_SETTINGS.get()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
package cc.carm.plugin.itemcommands.database;
|
||||
|
||||
import cc.carm.lib.easyplugin.configuration.values.ConfigValue;
|
||||
|
||||
public class DBTables {
|
||||
|
||||
public static class LogTable {
|
||||
|
||||
protected static final ConfigValue<String> TABLE_NAME = new ConfigValue<>(
|
||||
"log-storage.database.table-name", String.class,
|
||||
"log_item_commands"
|
||||
);
|
||||
|
||||
protected static final String[] TABLE_COLUMNS = new String[]{
|
||||
"`uuid` VARCHAR(36) NOT NULL PRIMARY KEY COMMENT '用户UUID'", // 用户的UUID
|
||||
"`time` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '用户在线秒数'",// 用户在线时间(秒)
|
||||
"`update` DATETIME NOT NULL " +
|
||||
"DEFAULT CURRENT_TIMESTAMP " +
|
||||
"ON UPDATE CURRENT_TIMESTAMP " +
|
||||
" COMMENT '最后更新时间'"
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
package cc.carm.plugin.itemcommands.database;
|
||||
|
||||
import cc.carm.lib.easysql.EasySQL;
|
||||
import cc.carm.lib.easysql.api.SQLManager;
|
||||
import cc.carm.plugin.itemcommands.Main;
|
||||
|
||||
import java.sql.SQLException;
|
||||
|
||||
public class DataManager {
|
||||
private SQLManager sqlManager;
|
||||
|
||||
public boolean initialize() {
|
||||
try {
|
||||
Main.info(" 尝试连接到数据库...");
|
||||
this.sqlManager = EasySQL.createManager(
|
||||
DBConfiguration.DRIVER_NAME.get(), DBConfiguration.buildJDBC(),
|
||||
DBConfiguration.USERNAME.get(), DBConfiguration.PASSWORD.get()
|
||||
);
|
||||
this.sqlManager.setDebugMode(() -> Main.getInstance().isDebugging());
|
||||
} catch (Exception exception) {
|
||||
Main.severe("无法连接到数据库,请检查配置文件。");
|
||||
exception.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
Main.info(" 创建插件记录所需表...");
|
||||
getSQLManager().createTable(DBTables.LogTable.TABLE_NAME.get())
|
||||
.setColumns(DBTables.LogTable.TABLE_COLUMNS)
|
||||
.build().execute();
|
||||
|
||||
} catch (SQLException exception) {
|
||||
Main.severe("无法创建插件所需的表,请检查数据库权限。");
|
||||
exception.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public void shutdown() {
|
||||
Main.info(" 关闭数据库连接...");
|
||||
EasySQL.shutdownManager(getSQLManager());
|
||||
this.sqlManager = null;
|
||||
}
|
||||
|
||||
public SQLManager getSQLManager() {
|
||||
return sqlManager;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -15,7 +15,7 @@ metrics: true
|
||||
# 检查更新为异步操作,绝不会影响性能与使用体验。
|
||||
check-update: true
|
||||
|
||||
log-stroage:
|
||||
log-storage:
|
||||
# 是否启用日志记录存储
|
||||
# 可用于追踪物品的发放、领取情况与执行记录。
|
||||
enable: true
|
||||
@ -32,3 +32,4 @@ log-stroage:
|
||||
password: "password"
|
||||
extra: "?useSSL=false"
|
||||
# 插件相关表的名称
|
||||
table-name: "log_item_commands"
|
Loading…
Reference in New Issue
Block a user