Skip to content

Commit e223bf8

Browse files
authored
Merge pull request #11 from RedStarMC/dev
Dev
2 parents de70d44 + 2ff9e5d commit e223bf8

File tree

7 files changed

+119
-17
lines changed

7 files changed

+119
-17
lines changed

build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ repositories {
2323
dependencies {
2424
compileOnly "org.spigotmc:spigot-api:1.19.4-R0.1-SNAPSHOT"
2525
compileOnly 'com.comphenix.protocol:ProtocolLib:5.1.0'
26+
compileOnly 'org.jetbrains:annotations:23.0.0'
2627
implementation ('cc.carm.lib:easysql-hikaricp:0.4.7')
2728
}
2829

src/main/java/top/redstarmc/plugin/redstarlib/RedStarLib.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public void onEnable() {
3030
instance = this;
3131
loadManager();
3232

33-
loggerManager.info("a");
33+
loggerManager.debugDataBase("a");
3434

3535
}
3636

@@ -44,7 +44,7 @@ public void loadManager() {
4444
configManager = new ImplConfigManager();
4545
configManager.init();
4646

47-
loggerManager = new ImplLoggerManager(INFO_PREFIX);
47+
loggerManager = new ImplLoggerManager(INFO_PREFIX, true);
4848

4949
serverManager = new ImplServerManager(INFO_PREFIX);
5050
}
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
package top.redstarmc.plugin.redstarlib.database;
2+
3+
import cc.carm.lib.easysql.api.SQLAction;
4+
import cc.carm.lib.easysql.api.SQLQuery;
5+
import cc.carm.lib.easysql.api.function.SQLDebugHandler;
6+
import org.jetbrains.annotations.NotNull;
7+
import org.jetbrains.annotations.Nullable;
8+
import top.redstarmc.plugin.redstarlib.manager.LoggerManager;
9+
10+
import java.util.List;
11+
import java.util.concurrent.TimeUnit;
12+
13+
/**
14+
* <h1>EasySQL 的 DebugHandler 预设模块</h1>
15+
* 重写了该模块,以便通过插件输出。
16+
* 可直接使用本类,或继承后使用
17+
* {@link cc.carm.lib.easysql.api.SQLManager#setDebugHandler(SQLDebugHandler)}
18+
*
19+
* 将 "SQLDebugHandler" 替换为 "CustomDebugHandler"
20+
*/
21+
public abstract class CustomDebugHandler implements SQLDebugHandler {
22+
23+
public CustomDebugHandler(LoggerManager loggerManager){
24+
this.loggerManager = loggerManager;
25+
}
26+
27+
LoggerManager loggerManager;
28+
29+
@Override
30+
public void beforeExecute(@NotNull SQLAction<?> action, @NotNull List<@Nullable Object[]> params) {
31+
loggerManager.debugDataBase("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
32+
loggerManager.debugDataBase("┣# ActionUUID: {}", action.getActionUUID());
33+
loggerManager.debugDataBase("┣# ActionType: " + action.getClass().getSimpleName());
34+
if (action.getSQLContents().size() == 1) {
35+
loggerManager.debugDataBase("┣# SQLContent: " + action.getSQLContents().get(0));
36+
} else {
37+
loggerManager.debugDataBase("┣# SQLContents: ");
38+
int i = 0;
39+
for (String sqlContent : action.getSQLContents()) {
40+
loggerManager.debugDataBase("┃ - [{}] {}", ++i, sqlContent);
41+
}
42+
}
43+
if (params.size() == 1) {
44+
Object[] param = params.get(0);
45+
if (param != null) {
46+
loggerManager.debugDataBase("┣# SQLParam: " + parseParams(param));
47+
}
48+
} else if (params.size() > 1) {
49+
loggerManager.debugDataBase("┣# SQLParams: ");
50+
int i = 0;
51+
for (Object[] param : params) {
52+
loggerManager.debugDataBase("┃ - [{}] {}", ++i, parseParams(param));
53+
}
54+
}
55+
loggerManager.debugDataBase("┣# CreateTime: " + action.getCreateTime(TimeUnit.MILLISECONDS));
56+
loggerManager.debugDataBase("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
57+
}
58+
59+
@Override
60+
public void afterQuery(@NotNull SQLQuery query, long executeNanoTime, long closeNanoTime) {
61+
loggerManager.debugDataBase("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
62+
loggerManager.debugDataBase("┣# ActionUUID: {}", query.getAction().getActionUUID());
63+
loggerManager.debugDataBase("┣# SQLContent: " + query.getSQLContent());
64+
loggerManager.debugDataBase("┣# CloseTime: {} (cost {} ms)",
65+
TimeUnit.NANOSECONDS.toMillis(closeNanoTime),
66+
((double) (closeNanoTime - executeNanoTime) / 1000000)
67+
);
68+
loggerManager.debugDataBase("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
69+
}
70+
71+
}

src/main/java/top/redstarmc/plugin/redstarlib/impl/ImplLoggerManager.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44

55
public class ImplLoggerManager extends LoggerManager {
66

7-
8-
public ImplLoggerManager(String INFO_PREFIX) {
9-
super(INFO_PREFIX);
7+
public ImplLoggerManager(String INFO_PREFIX, boolean debugMode) {
8+
super(INFO_PREFIX, debugMode);
109
}
1110
}

src/main/java/top/redstarmc/plugin/redstarlib/manager/ConfigurationManager.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public ConfigurationManager(ConfigurationManager manager){
3636
}
3737

3838
/**
39-
* <h2>初始化文件</h2>
39+
* <h2>创建文件</h2>
4040
* 如果没有这个文件就自动创建,并返回 {@link YamlConfiguration} 配置文件,方便操作
4141
* @return 读取到的 {@link YamlConfiguration} 配置文件
4242
*/
@@ -65,6 +65,11 @@ public void saveMapConfig(Map<String, Object> configMap){
6565
save();
6666
}
6767

68+
public void saveJarConfig(String fileName){
69+
70+
71+
}
72+
6873
/**
6974
* <h2>从内存中保存 {@link YamlConfiguration} 格式文件</h2>
7075
*/

src/main/java/top/redstarmc/plugin/redstarlib/manager/LoggerManager.java

Lines changed: 36 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,19 @@ public abstract class LoggerManager {
77

88
public String INFO_PREFIX;
99

10-
public LoggerManager(String INFO_PREFIX) {
10+
public boolean debugMode;
11+
12+
public LoggerManager(String INFO_PREFIX, boolean debugMode) {
1113
this.INFO_PREFIX = INFO_PREFIX;
14+
this.debugMode = debugMode;
1215
}
1316

14-
public boolean debugMode;
1517

1618
/**
1719
* <h2>发送插件普通信息</h2>
1820
* @param messages 字符串
1921
*/
20-
public final void info(String... messages) {
22+
public void info(String... messages) {
2123
if (messages == null) return;
2224
for (String message : messages) {
2325
if (message == null) continue;
@@ -30,7 +32,7 @@ public final void info(String... messages) {
3032
* @param messages 字符串
3133
* @param objects 传入的格式化内容
3234
*/
33-
public final void info(String messages,Object... objects) {
35+
public void info(String messages, Object... objects) {
3436
if (messages == null) return;
3537
Bukkit.getConsoleSender().sendMessage(INFO_PREFIX + "§a[INFO] §r" + toStrings.format(messages,objects) + "§r");
3638
}
@@ -39,7 +41,7 @@ public final void info(String messages,Object... objects) {
3941
* <h2>发送插件警告信息</h2>
4042
* @param messages 字符串
4143
*/
42-
public final void warn(String... messages) {
44+
public void warn(String... messages) {
4345
if (messages == null) return;
4446
for (String message : messages) {
4547
if (message == null) continue;
@@ -51,7 +53,7 @@ public final void warn(String... messages) {
5153
* <h2>发送插件错误信息</h2>
5254
* @param messages 字符串
5355
*/
54-
public final void error(String... messages) {
56+
public void error(String... messages) {
5557
if (messages == null) return;
5658
for (String message : messages) {
5759
if (message == null) continue;
@@ -63,7 +65,7 @@ public final void error(String... messages) {
6365
* <h2>发送插件debug信息</h2>
6466
* @param messages 字符串
6567
*/
66-
public final void debug(String... messages) {
68+
public void debug(String... messages) {
6769
if (messages == null) return;
6870
if (isDebugMode()) {
6971
for (String message : messages) {
@@ -77,7 +79,7 @@ public final void debug(String... messages) {
7779
* <h2>发送插件debug堆栈</h2>
7880
* @param e 堆栈
7981
*/
80-
public final void debug(Throwable e) {
82+
public void debug(Throwable e) {
8183
if (e == null) return;
8284
if (isDebugMode())
8385
e.printStackTrace();
@@ -88,16 +90,40 @@ public final void debug(Throwable e) {
8890
* @param e 堆栈
8991
* @param msg 字符串
9092
*/
91-
public final void debug(String msg, Throwable e) {
93+
public void debug(String msg, Throwable e) {
9294
if (msg == null || e == null) return;
9395
if (isDebugMode()) {
9496
debug(msg);
9597
debug(e);
9698
}
9799
}
98100

101+
/**
102+
* <h2>发送插件 数据库 debug信息</h2>
103+
* @param messages 字符串
104+
*/
105+
public void debugDataBase(String messages, Object... objects) {
106+
if (messages == null) return;
107+
if (isDebugMode()) {
108+
Bukkit.getConsoleSender().sendMessage(INFO_PREFIX + "§6[DEBUG DB] §r" + toStrings.format(messages,objects) + "§r");
109+
}
110+
}
99111

100-
112+
/**
113+
* 抛出错误堆栈和错误信息
114+
* @param throwable 堆栈
115+
* @param messages 信息
116+
*/
117+
public void crash(Throwable throwable, String... messages){
118+
for (String message : messages) {
119+
if (message == null) continue;
120+
Bukkit.getConsoleSender().sendMessage(INFO_PREFIX + "§c[ERROR] §r" + message + "§r");
121+
}
122+
Bukkit.getConsoleSender().sendMessage(INFO_PREFIX + "§c[ERROR] §r" + "抛出错误信息 ->" + "§r");
123+
Bukkit.getConsoleSender().sendMessage(INFO_PREFIX + "§c[ERROR] §r" + throwable.getMessage() + "§r");
124+
Bukkit.getConsoleSender().sendMessage(INFO_PREFIX + "§c[ERROR] §r" + "抛出错误堆栈 ->" + "§r");
125+
throwable.printStackTrace();
126+
}
101127

102128
public String getINFO_PREFIX() {
103129
return INFO_PREFIX;

src/main/java/top/redstarmc/plugin/redstarlib/utils/toStrings.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
public class toStrings {
66

77
/**
8-
* 字符串按照 slf 方式进行格式化返回
8+
* 字符串按照 slf4j 方式进行格式化返回
99
* @return 格式化后的字符串
1010
*/
1111
public static String format(String format, Object... params) {

0 commit comments

Comments
 (0)