Skip to content

Commit c3695ae

Browse files
committed
重构插件配置
1 parent 98ab15b commit c3695ae

File tree

36 files changed

+670
-534
lines changed

36 files changed

+670
-534
lines changed

MiraiMC-Base/src/main/java/me/dreamvoid/miraimc/LifeCycle.java

+16-15
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import me.dreamvoid.miraimc.api.MiraiBot;
44
import me.dreamvoid.miraimc.internal.*;
5+
import me.dreamvoid.miraimc.internal.config.PluginConfig;
56
import me.dreamvoid.miraimc.internal.database.DatabaseHandler;
67
import me.dreamvoid.miraimc.internal.database.MySQL;
78
import me.dreamvoid.miraimc.internal.database.SQLite;
@@ -60,29 +61,29 @@ public void preLoad() throws IOException, ParserConfigurationException, SAXExcep
6061

6162
// 加载配置
6263
logger.info("Loading config.");
63-
platform.getPluginConfig().loadConfig();
64-
if(platform.getPluginVersion().contains("dev-") && MiraiMCConfig.General.MiraiCoreVersion.equalsIgnoreCase("stable")) {
65-
MiraiMCConfig.General.MiraiCoreVersion = "latest"; // Fix dev version
64+
PluginConfig.reloadConfig();
65+
if(platform.getPluginVersion().contains("dev-") && PluginConfig.General.MiraiCoreVersion.equalsIgnoreCase("stable")) {
66+
PluginConfig.General.MiraiCoreVersion = "latest"; // Fix dev version
6667
}
6768

68-
logger.info("Mirai working dir: " + MiraiMCConfig.General.MiraiWorkingDir);
69+
logger.info("Mirai working dir: " + PluginConfig.General.MiraiWorkingDir);
6970

7071
// 加载 mirai 核心
7172
if(System.getProperty("MiraiMC.do-not-load-mirai-core") == null){
72-
logger.info("Selected mirai core version: " + MiraiMCConfig.General.MiraiCoreVersion);
73-
if (MiraiMCConfig.General.MiraiCoreVersion.equalsIgnoreCase("latest")) {
73+
logger.info("Selected mirai core version: " + PluginConfig.General.MiraiCoreVersion);
74+
if (PluginConfig.General.MiraiCoreVersion.equalsIgnoreCase("latest")) {
7475
MiraiLoader.loadMiraiCore();
75-
} else if (MiraiMCConfig.General.MiraiCoreVersion.equalsIgnoreCase("stable")) {
76+
} else if (PluginConfig.General.MiraiCoreVersion.equalsIgnoreCase("stable")) {
7677
MiraiLoader.loadMiraiCore(MiraiLoader.getStableVersion(getPlatform().getPluginVersion()));
7778
} else {
78-
MiraiLoader.loadMiraiCore(MiraiMCConfig.General.MiraiCoreVersion);
79+
MiraiLoader.loadMiraiCore(PluginConfig.General.MiraiCoreVersion);
7980
}
8081
} else {
8182
logger.info("MiraiMC will not load mirai core, please ensure you have custom mirai core loaded.");
8283
}
8384

8485
// 加载 EncryptService
85-
if(MiraiMCConfig.Bot.RegisterEncryptService){
86+
if(PluginConfig.Bot.RegisterEncryptService){
8687
logger.info("Registering Mirai Encrypt Service.");
8788
try{
8889
MiraiEncryptServiceFactory.install();
@@ -94,14 +95,14 @@ public void preLoad() throws IOException, ParserConfigurationException, SAXExcep
9495
}
9596

9697
// 加载来自 cssxsh 的 fix-protocol-version
97-
if(MiraiMCConfig.Bot.UpdateProtocolVersion){
98+
if(PluginConfig.Bot.UpdateProtocolVersion){
9899
logger.info("Updating mirai protocol version. (Author: cssxsh)");
99100

100101
logger.info("协议版本检查更新...");
101102
try {
102103
FixProtocolVersion.update();
103104
for (BotConfiguration.MiraiProtocol protocol : BotConfiguration.MiraiProtocol.values()) {
104-
File file = new File(new File(MiraiMCConfig.PluginDir, "protocol"), protocol.name().toLowerCase() + ".json");
105+
File file = new File(new File(PluginConfig.PluginDir, "protocol"), protocol.name().toLowerCase() + ".json");
105106
if (file.exists()) {
106107
logger.info(protocol + " load from " + file.toPath().toUri());
107108
FixProtocolVersion.load(protocol);
@@ -127,7 +128,7 @@ public void postLoad() {
127128

128129
// 数据库
129130
try {
130-
switch (MiraiMCConfig.Database.Type.toLowerCase()){
131+
switch (PluginConfig.Database.Type.toLowerCase()){
131132
case "sqlite":
132133
default: {
133134
logger.info("Initializing SQLite database.");
@@ -155,7 +156,7 @@ public void postLoad() {
155156
platform.getAutoLogin().doStartUpAutoLogin();
156157

157158
// 安全警告
158-
if(!(MiraiMCConfig.General.DisableSafeWarningMessage)){
159+
if(!(PluginConfig.General.DisableSafeWarningMessage)){
159160
logger.warning("确保您正在使用开源的 MiraiMC 插件,未知来源的插件可能会盗取您的账号!");
160161
logger.warning("请始终从 GitHub 或作者指定的其他途径下载插件: https://github.com/DreamVoid/MiraiMC");
161162
}
@@ -164,7 +165,7 @@ public void postLoad() {
164165
platform.runTaskLaterAsync(() -> {
165166
try {
166167
List<String> announcement = Info.init().announcement;
167-
if(announcement != null && announcement.size() != 0){
168+
if(announcement != null && !announcement.isEmpty()){
168169
logger.info("========== [ MiraiMC 公告版 ] ==========");
169170
announcement.forEach(logger::info);
170171
logger.info("=======================================");
@@ -173,7 +174,7 @@ public void postLoad() {
173174
}, 40);
174175

175176
// 检查更新
176-
if(MiraiMCConfig.General.CheckUpdate && !platform.getPluginVersion().contains("dev")){
177+
if(PluginConfig.General.CheckUpdate && !platform.getPluginVersion().contains("dev")){
177178
platform.runTaskAsync(() -> {
178179
logger.info("正在检查更新...");
179180
try {

MiraiMC-Base/src/main/java/me/dreamvoid/miraimc/MiraiMCConfig.java

-82
This file was deleted.

MiraiMC-Base/src/main/java/me/dreamvoid/miraimc/Platform.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package me.dreamvoid.miraimc;
22

3+
import me.dreamvoid.miraimc.internal.config.PluginConfig;
34
import me.dreamvoid.miraimc.internal.loader.LibraryLoader;
45

56
import java.util.List;
@@ -33,7 +34,7 @@ public interface Platform {
3334

3435
IMiraiEvent getMiraiEvent();
3536

36-
MiraiMCConfig getPluginConfig();
37+
PluginConfig getPluginConfig();
3738

3839
LibraryLoader getLibraryLoader();
3940
}

MiraiMC-Base/src/main/java/me/dreamvoid/miraimc/api/MiraiBot.java

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package me.dreamvoid.miraimc.api;
22

3-
import me.dreamvoid.miraimc.MiraiMCConfig;
43
import me.dreamvoid.miraimc.api.bot.MiraiFriend;
54
import me.dreamvoid.miraimc.api.bot.MiraiFriendGroup;
65
import me.dreamvoid.miraimc.api.bot.MiraiGroup;
76
import me.dreamvoid.miraimc.api.bot.MiraiOtherClient;
87
import me.dreamvoid.miraimc.internal.MiraiLoginSolver;
98
import me.dreamvoid.miraimc.internal.Utils;
9+
import me.dreamvoid.miraimc.internal.config.PluginConfig;
1010
import net.mamoe.mirai.Bot;
1111
import net.mamoe.mirai.BotFactory;
1212
import net.mamoe.mirai.auth.BotAuthorization;
@@ -343,21 +343,21 @@ private static void loginCore(long account, byte[] password, BotConfiguration.Mi
343343
fileBasedDeviceInfo();
344344

345345
// 是否关闭日志输出(不建议开发者关闭)。如果不关闭,是否使用Bukkit的Logger接管Mirai的Logger
346-
if(MiraiMCConfig.Bot.DisableNetworkLogs) {
346+
if(PluginConfig.Bot.DisableNetworkLogs) {
347347
noNetworkLog();
348-
} else if(MiraiMCConfig.Bot.UseMinecraftLogger.NetworkLogs) {
348+
} else if(PluginConfig.Bot.UseMinecraftLogger.NetworkLogs) {
349349
setNetworkLoggerSupplier(bot -> LoggerAdapters.asMiraiLogger(logger));
350350
}
351-
if(MiraiMCConfig.Bot.DisableBotLogs) {
351+
if(PluginConfig.Bot.DisableBotLogs) {
352352
noBotLog();
353-
} else if(MiraiMCConfig.Bot.UseMinecraftLogger.BotLogs) {
353+
} else if(PluginConfig.Bot.UseMinecraftLogger.BotLogs) {
354354
setBotLoggerSupplier(bot -> LoggerAdapters.asMiraiLogger(logger));
355355
}
356356

357357
// 是否使用缓存——对于开发者,请启用;对于用户,请禁用。详见 https://github.com/mamoe/mirai/blob/dev/docs/Bots.md#%E5%90%AF%E7%94%A8%E5%88%97%E8%A1%A8%E7%BC%93%E5%AD%98
358-
getContactListCache().setFriendListCacheEnabled(MiraiMCConfig.Bot.ContactCache.EnableFriendListCache);
359-
getContactListCache().setGroupMemberListCacheEnabled(MiraiMCConfig.Bot.ContactCache.EnableGroupMemberListCache);
360-
getContactListCache().setSaveIntervalMillis(MiraiMCConfig.Bot.ContactCache.SaveIntervalMillis);
358+
getContactListCache().setFriendListCacheEnabled(PluginConfig.Bot.ContactCache.EnableFriendListCache);
359+
getContactListCache().setGroupMemberListCacheEnabled(PluginConfig.Bot.ContactCache.EnableGroupMemberListCache);
360+
getContactListCache().setSaveIntervalMillis(PluginConfig.Bot.ContactCache.SaveIntervalMillis);
361361

362362
// 使用自己的验证解决器
363363
setLoginSolver(new MiraiLoginSolver());

MiraiMC-Base/src/main/java/me/dreamvoid/miraimc/api/MiraiMC.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package me.dreamvoid.miraimc.api;
22

3-
import me.dreamvoid.miraimc.MiraiMCConfig;
3+
import me.dreamvoid.miraimc.internal.config.PluginConfig;
44
import me.dreamvoid.miraimc.internal.database.DatabaseHandler;
55

66
import javax.annotation.Nullable;
@@ -13,7 +13,7 @@
1313
*/
1414
@SuppressWarnings("unused")
1515
public class MiraiMC {
16-
private static final String prefix = MiraiMCConfig.Database.Settings.Prefix;
16+
private static final String prefix = PluginConfig.Database.Settings.Prefix;
1717

1818
static {
1919
try {

MiraiMC-Base/src/main/java/me/dreamvoid/miraimc/commands/MiraiCommand.java

+8-8
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
import me.dreamvoid.miraimc.IMiraiAutoLogin;
44
import me.dreamvoid.miraimc.LifeCycle;
5-
import me.dreamvoid.miraimc.MiraiMCConfig;
65
import me.dreamvoid.miraimc.api.MiraiBot;
76
import me.dreamvoid.miraimc.httpapi.MiraiHttpAPI;
87
import me.dreamvoid.miraimc.httpapi.exception.AbnormalStatusException;
98
import me.dreamvoid.miraimc.internal.MiraiLoader;
109
import me.dreamvoid.miraimc.internal.Utils;
10+
import me.dreamvoid.miraimc.internal.config.PluginConfig;
1111
import net.mamoe.mirai.Bot;
1212
import net.mamoe.mirai.utils.BotConfiguration;
1313

@@ -52,8 +52,8 @@ public boolean onCommand(ICommandSender sender, String[] args) {
5252
if(!useHttpApi){
5353
MiraiBot.doBotLogin(Long.parseLong(args[1]),args[2], Protocol);
5454
} else {
55-
if(MiraiMCConfig.General.EnableHttpApi) {
56-
MiraiHttpAPI httpAPI = new MiraiHttpAPI(MiraiMCConfig.HttpApi.Url);
55+
if(PluginConfig.General.EnableHttpApi) {
56+
MiraiHttpAPI httpAPI = new MiraiHttpAPI(PluginConfig.HttpApi.Url);
5757
httpAPI.bind(httpAPI.verify(args[2]).session, Long.parseLong(args[1]));
5858
sender.sendMessage("&a" + args[1] + " HTTP-API登录成功!");
5959
} else sender.sendMessage("&c此服务器没有启用HTTP-API模式,请检查配置文件!");
@@ -79,9 +79,9 @@ public boolean onCommand(ICommandSender sender, String[] args) {
7979
MiraiBot.getBot(Long.parseLong(args[1])).close();
8080
sender.sendMessage( "&a已退出指定机器人!");
8181
} catch (NoSuchElementException e){
82-
if(MiraiMCConfig.General.EnableHttpApi && MiraiHttpAPI.Bots.containsKey(Long.parseLong(args[1]))){
82+
if(PluginConfig.General.EnableHttpApi && MiraiHttpAPI.Bots.containsKey(Long.parseLong(args[1]))){
8383
try {
84-
new MiraiHttpAPI(MiraiMCConfig.HttpApi.Url).release(MiraiHttpAPI.Bots.get(Long.parseLong(args[1])),Long.parseLong(args[1]));
84+
new MiraiHttpAPI(PluginConfig.HttpApi.Url).release(MiraiHttpAPI.Bots.get(Long.parseLong(args[1])),Long.parseLong(args[1]));
8585
sender.sendMessage( "&a已退出指定机器人!");
8686
} catch (IOException ex) {
8787
Utils.getLogger().warning("退出机器人时出现异常,原因: " + ex);
@@ -115,7 +115,7 @@ public boolean onCommand(ICommandSender sender, String[] args) {
115115
try {
116116
MiraiBot.getBot(Long.parseLong(args[1])).getGroup(Long.parseLong(args[2])).sendMessageMirai(text);
117117
} catch (NoSuchElementException e){
118-
if(MiraiMCConfig.General.EnableHttpApi && MiraiHttpAPI.Bots.containsKey(Long.parseLong(args[1]))){
118+
if(PluginConfig.General.EnableHttpApi && MiraiHttpAPI.Bots.containsKey(Long.parseLong(args[1]))){
119119
try {
120120
MiraiHttpAPI.INSTANCE.sendGroupMessage(MiraiHttpAPI.Bots.get(Long.parseLong(args[1])), Long.parseLong(args[2]), text);
121121
} catch (IOException ex) {
@@ -145,7 +145,7 @@ public boolean onCommand(ICommandSender sender, String[] args) {
145145
try {
146146
MiraiBot.getBot(Long.parseLong(args[1])).getFriend(Long.parseLong(args[2])).sendMessageMirai(text);
147147
} catch (NoSuchElementException e){
148-
if(MiraiMCConfig.General.EnableHttpApi && MiraiHttpAPI.Bots.containsKey(Long.parseLong(args[1]))){
148+
if(PluginConfig.General.EnableHttpApi && MiraiHttpAPI.Bots.containsKey(Long.parseLong(args[1]))){
149149
try {
150150
MiraiHttpAPI.INSTANCE.sendGroupMessage(MiraiHttpAPI.Bots.get(Long.parseLong(args[1])), Long.parseLong(args[2]), text);
151151
} catch (IOException ex) {
@@ -258,7 +258,7 @@ public boolean onCommand(ICommandSender sender, String[] args) {
258258
case "uploadimage":{
259259
if(sender.hasPermission("miraimc.command.mirai.uploadimage")) {
260260
if (args.length >= 3) {
261-
File ImageDir = new File(MiraiMCConfig.PluginDir, "images");
261+
File ImageDir = new File(PluginConfig.PluginDir, "images");
262262
if(!ImageDir.exists() && !ImageDir.mkdir()) sender.sendMessage("&c图片文件夹创建失败,是否有目录的读写权限?");
263263
File image = new File(ImageDir, args[2]);
264264

MiraiMC-Base/src/main/java/me/dreamvoid/miraimc/commands/MiraiMcCommand.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
import me.dreamvoid.miraimc.LifeCycle;
44
import me.dreamvoid.miraimc.api.MiraiMC;
5-
import me.dreamvoid.miraimc.MiraiMCConfig;
65
import me.dreamvoid.miraimc.internal.Utils;
6+
import me.dreamvoid.miraimc.internal.config.PluginConfig;
77

88
import java.io.IOException;
99
import java.util.Arrays;
@@ -22,7 +22,7 @@ public boolean onCommand(ICommandSender sender, String[] args) {
2222
case "reload": {
2323
if(sender.hasPermission("miraimc.command.miraimc.reload")){
2424
try {
25-
MiraiMCConfig.reloadConfig();
25+
PluginConfig.reloadConfig();
2626
sender.sendMessage("&a配置文件已经重新加载,部分配置可能需要重新启动服务器才能生效!");
2727
} catch (IOException e) {
2828
Utils.getLogger().warning("加载配置文件时出现问题,原因:"+e);

0 commit comments

Comments
 (0)