Skip to content

Commit 54d3b47

Browse files
committed
调整LifeCycle类名并增加获取实例的方法
1 parent b7e0ad4 commit 54d3b47

File tree

13 files changed

+53
-40
lines changed

13 files changed

+53
-40
lines changed

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

+7-4
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,15 @@
1515
import java.util.List;
1616
import java.util.logging.Logger;
1717

18-
public class MiraiMCPlugin {
19-
public static MiraiMCPlugin INSTANCE;
18+
/**
19+
* MiraiMC 生命周期
20+
*/
21+
public class LifeCycle {
22+
public static LifeCycle INSTANCE;
2023
private static Platform platform;
2124
private Logger logger;
2225

23-
public MiraiMCPlugin(Platform plugin){
26+
public LifeCycle(Platform plugin){
2427
INSTANCE = this;
2528
platform = plugin;
2629
}
@@ -31,7 +34,7 @@ public static Platform getPlatform() {
3134

3235
/**
3336
* 此方法应在插件实例化时调用,用于设置必要的运行环境,此时配置尚未初始化。
34-
* @param logger Logger 实例。由于各平台初始化 Logger 的时机不一,因此需要一个 Logger 来辅助。
37+
* @param logger {@link java.util.logging.Logger} 实例。由于各平台初始化 Logger 的时机不一,因此需要一个 Logger 来辅助。
3538
*/
3639
public void startUp(Logger logger) {
3740
logger.info("Preparing MiraiMC start-up.");

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

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

3+
import me.dreamvoid.miraimc.LifeCycle;
34
import me.dreamvoid.miraimc.MiraiMCConfig;
5+
import me.dreamvoid.miraimc.Platform;
46
import me.dreamvoid.miraimc.internal.database.DatabaseHandler;
57

68
import javax.annotation.Nullable;
@@ -102,4 +104,12 @@ public static UUID getBind(long account) {
102104
throw new RuntimeException("处理数据时出现异常,请检查MiraiMC数据库配置是否正确", e);
103105
}
104106
}
107+
108+
/**
109+
* 获取 MiraiMC 运行时实用方法实例
110+
* @return MiraiMC 运行时实例
111+
*/
112+
public Platform getPlatform(){
113+
return LifeCycle.getPlatform();
114+
}
105115
}

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

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import me.dreamvoid.miraimc.IMiraiAutoLogin;
44
import me.dreamvoid.miraimc.MiraiMCConfig;
5-
import me.dreamvoid.miraimc.MiraiMCPlugin;
5+
import me.dreamvoid.miraimc.LifeCycle;
66
import me.dreamvoid.miraimc.api.MiraiBot;
77
import me.dreamvoid.miraimc.httpapi.MiraiHttpAPI;
88
import me.dreamvoid.miraimc.httpapi.exception.AbnormalStatusException;
@@ -21,12 +21,12 @@
2121
import java.util.NoSuchElementException;
2222

2323
public class MiraiCommand implements ICommandExecutor {
24-
private final IMiraiAutoLogin MiraiAutoLogin = MiraiMCPlugin.getPlatform().getAutoLogin();
24+
private final IMiraiAutoLogin MiraiAutoLogin = LifeCycle.getPlatform().getAutoLogin();
2525

2626
@Override
2727
public boolean onCommand(ICommandSender sender, String[] args) {
2828
if (args.length == 0) {
29-
sender.sendMessage("This server is running "+ MiraiMCPlugin.getPlatform().getPluginName() +" version "+ MiraiMCPlugin.getPlatform().getPluginVersion()+" by "+ MiraiMCPlugin.getPlatform().getAuthors().toString().replace("[","").replace("]",""));
29+
sender.sendMessage("This server is running "+ LifeCycle.getPlatform().getPluginName() +" version "+ LifeCycle.getPlatform().getPluginVersion()+" by "+ LifeCycle.getPlatform().getAuthors().toString().replace("[","").replace("]",""));
3030
if(Utils.isDeveloperMode()) sender.sendMessage("Developer mode is on.");
3131
return false;
3232
}
@@ -35,7 +35,7 @@ public boolean onCommand(ICommandSender sender, String[] args) {
3535
case "login": {
3636
if(sender.hasPermission("miraimc.command.mirai.login")){
3737
if(args.length >= 3) {
38-
MiraiMCPlugin.getPlatform().runTaskAsync(() -> {
38+
LifeCycle.getPlatform().runTaskAsync(() -> {
3939
BotConfiguration.MiraiProtocol Protocol = null;
4040
boolean useHttpApi = false;
4141
if (args.length == 3) {

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

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

3-
import me.dreamvoid.miraimc.MiraiMCPlugin;
3+
import me.dreamvoid.miraimc.LifeCycle;
44
import me.dreamvoid.miraimc.api.MiraiMC;
55
import me.dreamvoid.miraimc.MiraiMCConfig;
66
import me.dreamvoid.miraimc.internal.Utils;
@@ -13,7 +13,7 @@ public class MiraiMcCommand implements ICommandExecutor {
1313
@Override
1414
public boolean onCommand(ICommandSender sender, String[] args) {
1515
if (args.length == 0) {
16-
sender.sendMessage("This server is running "+ MiraiMCPlugin.getPlatform().getPluginName() +" version "+ MiraiMCPlugin.getPlatform().getPluginVersion()+" by "+ MiraiMCPlugin.getPlatform().getAuthors().toString().replace("[","").replace("]",""));
16+
sender.sendMessage("This server is running "+ LifeCycle.getPlatform().getPluginName() +" version "+ LifeCycle.getPlatform().getPluginVersion()+" by "+ LifeCycle.getPlatform().getAuthors().toString().replace("[","").replace("]",""));
1717
if(Utils.isDeveloperMode()) sender.sendMessage("Developer mode is on.");
1818
return false;
1919
}
@@ -37,8 +37,8 @@ public boolean onCommand(ICommandSender sender, String[] args) {
3737
switch (args[1].toLowerCase()) {
3838
case "add": {
3939
if (args.length >= 4) {
40-
MiraiMCPlugin.getPlatform().runTaskAsync(() -> {
41-
UUID uuid = MiraiMCPlugin.getPlatform().getPlayerUUID(args[2]);
40+
LifeCycle.getPlatform().runTaskAsync(() -> {
41+
UUID uuid = LifeCycle.getPlatform().getPlayerUUID(args[2]);
4242
long qqid = Long.parseLong(args[3]);
4343
MiraiMC.addBind(uuid, qqid);
4444
sender.sendMessage("&a已添加绑定!");
@@ -49,8 +49,8 @@ public boolean onCommand(ICommandSender sender, String[] args) {
4949
}
5050
case "removeplayer": {
5151
if (args.length >= 3) {
52-
MiraiMCPlugin.getPlatform().runTaskAsync(() -> {
53-
UUID uuid = MiraiMCPlugin.getPlatform().getPlayerUUID(args[2]);
52+
LifeCycle.getPlatform().runTaskAsync(() -> {
53+
UUID uuid = LifeCycle.getPlatform().getPlayerUUID(args[2]);
5454
MiraiMC.removeBind(uuid);
5555
sender.sendMessage("&a已移除相应绑定!");
5656
});
@@ -60,7 +60,7 @@ public boolean onCommand(ICommandSender sender, String[] args) {
6060
}
6161
case "removeqq": {
6262
if (args.length >= 3) {
63-
MiraiMCPlugin.getPlatform().runTaskAsync(() -> {
63+
LifeCycle.getPlatform().runTaskAsync(() -> {
6464
long qqid = Long.parseLong(args[2]);
6565
MiraiMC.removeBind(qqid);
6666
sender.sendMessage("&a已移除相应绑定!");
@@ -71,8 +71,8 @@ public boolean onCommand(ICommandSender sender, String[] args) {
7171
}
7272
case "getplayer": {
7373
if (args.length >= 3) {
74-
MiraiMCPlugin.getPlatform().runTaskAsync(() -> {
75-
UUID uuid = MiraiMCPlugin.getPlatform().getPlayerUUID(args[2]);
74+
LifeCycle.getPlatform().runTaskAsync(() -> {
75+
UUID uuid = LifeCycle.getPlatform().getPlayerUUID(args[2]);
7676
long qqId = MiraiMC.getBind(uuid);
7777
if (qqId != 0) {
7878
sender.sendMessage("&a绑定的QQ号:" + qqId);
@@ -85,11 +85,11 @@ public boolean onCommand(ICommandSender sender, String[] args) {
8585
}
8686
case "getqq": {
8787
if (args.length >= 3) {
88-
MiraiMCPlugin.getPlatform().runTaskAsync(() -> {
88+
LifeCycle.getPlatform().runTaskAsync(() -> {
8989
long qqid = Long.parseLong(args[2]);
9090
UUID uuid = MiraiMC.getBind(qqid);
9191
if (uuid != null) {
92-
sender.sendMessage("&a绑定的玩家名:" + MiraiMCPlugin.getPlatform().getPlayerName(uuid));
92+
sender.sendMessage("&a绑定的玩家名:" + LifeCycle.getPlatform().getPlayerName(uuid));
9393
} else
9494
sender.sendMessage("&c未找到符合条件的记录!");
9595
});

MiraiMC-Base/src/main/java/me/dreamvoid/miraimc/internal/MiraiEncryptServiceFactory.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import com.google.gson.reflect.TypeToken;
77
import kotlinx.coroutines.CoroutineScope;
88
import me.dreamvoid.miraimc.MiraiMCConfig;
9-
import me.dreamvoid.miraimc.MiraiMCPlugin;
9+
import me.dreamvoid.miraimc.LifeCycle;
1010
import me.dreamvoid.miraimc.internal.encryptservice.UnidbgFetchQsign;
1111
import net.mamoe.mirai.Bot;
1212
import net.mamoe.mirai.internal.spi.EncryptService;
@@ -32,7 +32,7 @@ public static void install(){
3232
MiraiEncryptServiceFactoryKt.install();
3333
config = new File(MiraiMCConfig.PluginDir, "services.json");
3434
if (!config.exists()) {
35-
try (InputStream in = MiraiMCPlugin.class.getResourceAsStream("/services.json")) {
35+
try (InputStream in = LifeCycle.class.getResourceAsStream("/services.json")) {
3636
assert in != null;
3737
Files.copy(in, config.toPath());
3838
} catch (IOException e) {

MiraiMC-Base/src/main/java/me/dreamvoid/miraimc/internal/MiraiLoader.java

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

33
import me.dreamvoid.miraimc.MiraiMCConfig;
4-
import me.dreamvoid.miraimc.MiraiMCPlugin;
4+
import me.dreamvoid.miraimc.LifeCycle;
55
import me.dreamvoid.miraimc.internal.webapi.Info;
66
import me.dreamvoid.miraimc.internal.webapi.Version;
77
import org.eclipse.aether.artifact.DefaultArtifact;
@@ -65,6 +65,6 @@ public static String getStableVersion(String PluginVersion) {
6565
* @param version 版本
6666
*/
6767
public static void loadMiraiCore(String version) throws RuntimeException, IOException, ParserConfigurationException, SAXException {
68-
MiraiMCPlugin.getPlatform().getLibraryLoader().loadLibraryMaven(mavenCentral, new Dependency(new DefaultArtifact("net.mamoe:mirai-core-all:" + (version.equalsIgnoreCase("latest") ? MiraiMCPlugin.getPlatform().getLibraryLoader().getLibraryVersion(mavenCentral, "net.mamoe", "mirai-core-all") : version)), null));
68+
LifeCycle.getPlatform().getLibraryLoader().loadLibraryMaven(mavenCentral, new Dependency(new DefaultArtifact("net.mamoe:mirai-core-all:" + (version.equalsIgnoreCase("latest") ? LifeCycle.getPlatform().getLibraryLoader().getLibraryVersion(mavenCentral, "net.mamoe", "mirai-core-all") : version)), null));
6969
}
7070
}

MiraiMC-Base/src/main/java/me/dreamvoid/miraimc/internal/database/SQLite.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import com.zaxxer.hikari.HikariConfig;
44
import com.zaxxer.hikari.HikariDataSource;
55
import me.dreamvoid.miraimc.MiraiMCConfig;
6-
import me.dreamvoid.miraimc.MiraiMCPlugin;
6+
import me.dreamvoid.miraimc.LifeCycle;
77
import me.dreamvoid.miraimc.internal.Utils;
88
import org.eclipse.aether.artifact.DefaultArtifact;
99
import org.eclipse.aether.graph.Dependency;
@@ -38,7 +38,7 @@ public void initialize() throws ClassNotFoundException {
3838
if(Utils.findClass("org.sqlite.JDBC")){
3939
driver = "org.sqlite.JDBC";
4040
} else {
41-
MiraiMCPlugin.getPlatform().getLibraryLoader().loadLibraryMaven(new RemoteRepository.Builder("central","default", MiraiMCConfig.General.MavenRepoUrl).build(), new Dependency(new DefaultArtifact("org.xerial:sqlite-jdbc:3.36.0.3"), null));
41+
LifeCycle.getPlatform().getLibraryLoader().loadLibraryMaven(new RemoteRepository.Builder("central","default", MiraiMCConfig.General.MavenRepoUrl).build(), new Dependency(new DefaultArtifact("org.xerial:sqlite-jdbc:3.36.0.3"), null));
4242
initialize();
4343
return;
4444
}

MiraiMC-Base/src/main/java/me/dreamvoid/miraimc/internal/encryptservice/UnidbgFetchQsign.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import com.google.gson.reflect.TypeToken;
77
import kotlin.coroutines.CoroutineContext;
88
import kotlinx.coroutines.CoroutineScope;
9-
import me.dreamvoid.miraimc.MiraiMCPlugin;
9+
import me.dreamvoid.miraimc.LifeCycle;
1010
import me.dreamvoid.miraimc.internal.MiraiEncryptServiceFactory;
1111
import me.dreamvoid.miraimc.internal.MiraiEncryptServiceFactoryKt;
1212
import me.dreamvoid.miraimc.internal.Utils;
@@ -101,7 +101,7 @@ public void initialize(@NotNull EncryptServiceContext context) {
101101
String response1 = Utils.Http.get(server + "/destroy?uin=" + uin + "&key=" + key);
102102
DataWrapper body1 = new Gson().fromJson(response1, DataWrapper.class);
103103
logger.info("Bot(" + uin + ") destroy, " + body1.message);
104-
MiraiMCPlugin.getPlatform().cancelTask(taskId);
104+
LifeCycle.getPlatform().cancelTask(taskId);
105105
} catch (Throwable cause) {
106106
logger.warning("Bot(" + uin + ") destroy", cause);
107107
} finally {
@@ -168,7 +168,7 @@ public EncryptService.SignResult qSecurityGetSign(@NotNull EncryptServiceContext
168168
long interval = Long.parseLong(System.getProperty(MiraiEncryptServiceFactory.REQUEST_TOKEN_INTERVAL, "2400000"));
169169
if (interval > 0L) {
170170
final boolean[] firstRun = {true};
171-
taskId = MiraiMCPlugin.getPlatform().runTaskTimerAsync(() -> {
171+
taskId = LifeCycle.getPlatform().runTaskTimerAsync(() -> {
172172
if (interval < 600_000) logger.warning(MiraiEncryptServiceFactory.REQUEST_TOKEN_INTERVAL + "="+ interval +"< 600_000 (ms)");
173173
if (firstRun[0]){
174174
firstRun[0] = false;
@@ -229,7 +229,7 @@ private SignResult sign(long uin, String cmd, int seq, byte[] buffer){
229229
private void callback(long uin, List<RequestCallback> request){
230230
MiraiLogger logger = Bot.getInstance(uin).getLogger();
231231

232-
MiraiMCPlugin.getPlatform().runTaskAsync(() -> {
232+
LifeCycle.getPlatform().runTaskAsync(() -> {
233233
for(RequestCallback callback : request){
234234
logger.verbose("Bot(" + uin + ") sendMessage " + callback.cmd);
235235
//ChannelResult result = MiraiEncryptServiceFactoryKt.channelSendMessage(channel0, "mobileqq.msf.security", callback.cmd, 0, hexToBytes(callback.body));

MiraiMC-Bukkit/src/main/java/me/dreamvoid/miraimc/bukkit/BukkitPlugin.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import me.dreamvoid.miraimc.IMiraiAutoLogin;
44
import me.dreamvoid.miraimc.IMiraiEvent;
5-
import me.dreamvoid.miraimc.MiraiMCPlugin;
5+
import me.dreamvoid.miraimc.LifeCycle;
66
import me.dreamvoid.miraimc.Platform;
77
import me.dreamvoid.miraimc.api.MiraiBot;
88
import me.dreamvoid.miraimc.bukkit.utils.Metrics;
@@ -28,12 +28,12 @@
2828
public class BukkitPlugin extends JavaPlugin implements Platform {
2929
private MiraiEvent MiraiEvent;
3030
private MiraiAutoLogin MiraiAutoLogin;
31-
private final MiraiMCPlugin lifeCycle;
31+
private final LifeCycle lifeCycle;
3232
private final MiraiMCConfig platformConfig;
3333
private final LibraryLoader loader;
3434

3535
public BukkitPlugin(){
36-
lifeCycle = new MiraiMCPlugin(this);
36+
lifeCycle = new LifeCycle(this);
3737
lifeCycle.startUp(getLogger());
3838
platformConfig = new BukkitConfig(this);
3939
loader = new LibraryLoader((URLClassLoader) this.getClassLoader());

MiraiMC-Bungee/src/main/java/me/dreamvoid/miraimc/bungee/BungeePlugin.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@
2222
public class BungeePlugin extends Plugin implements Platform {
2323
private MiraiEvent MiraiEvent;
2424
private MiraiAutoLogin MiraiAutoLogin;
25-
private final MiraiMCPlugin lifeCycle;
25+
private final LifeCycle lifeCycle;
2626
private final MiraiMCConfig platformConfig;
2727
private final LibraryLoader loader;
2828

2929
public BungeePlugin(){
30-
lifeCycle = new MiraiMCPlugin(this);
30+
lifeCycle = new LifeCycle(this);
3131
lifeCycle.startUp(getLogger());
3232
platformConfig = new BungeeConfig(this);
3333
loader = new LibraryLoader((URLClassLoader) this.getClass().getClassLoader());

MiraiMC-Nukkit/src/main/java/me/dreamvoid/miraimc/nukkit/NukkitPlugin.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public class NukkitPlugin extends PluginBase implements Platform {
1919

2020
private MiraiEvent MiraiEvent;
2121
private MiraiAutoLogin MiraiAutoLogin;
22-
private final MiraiMCPlugin lifeCycle;
22+
private final LifeCycle lifeCycle;
2323
private MiraiMCConfig platformConfig;
2424
private Logger NukkitLogger;
2525
private final LibraryLoader loader;
@@ -29,7 +29,7 @@ public static NukkitPlugin getInstance() {
2929
}
3030

3131
public NukkitPlugin(){
32-
lifeCycle = new MiraiMCPlugin(this);
32+
lifeCycle = new LifeCycle(this);
3333
lifeCycle.startUp(new NukkitLogger("MiraiMC-Nukkit", Server.getInstance().getLogger()));
3434
loader = new LibraryLoader((URLClassLoader) this.getClass().getClassLoader());
3535
}

MiraiMC-Sponge/src/main/java/me/dreamvoid/miraimc/sponge/SpongePlugin.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,13 @@
4444
authors = {"DreamVoid"}
4545
)
4646
public class SpongePlugin implements Platform {
47-
private MiraiMCPlugin lifeCycle;
47+
private LifeCycle lifeCycle;
4848
private MiraiMCConfig platformConfig;
4949
private java.util.logging.Logger SpongeLogger;
5050
private final LibraryLoader loader;
5151

5252
public SpongePlugin(){
53-
lifeCycle = new MiraiMCPlugin(this);
53+
lifeCycle = new LifeCycle(this);
5454
lifeCycle.startUp(new SpongeLogger("MiraiMC", LoggerFactory.getLogger("MiraiMC")));
5555
loader = new LibraryLoader((URLClassLoader) getClass().getClassLoader());
5656
}

MiraiMC-Velocity/src/main/java/me/dreamvoid/miraimc/velocity/VelocityPlugin.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
authors = {"DreamVoid"}
4141
)
4242
public class VelocityPlugin implements Platform {
43-
private final MiraiMCPlugin lifeCycle;
43+
private final LifeCycle lifeCycle;
4444
private final MiraiMCConfig platformConfig;
4545
private final java.util.logging.Logger VelocityLogger;
4646
private final LibraryLoader loader;
@@ -53,7 +53,7 @@ public VelocityPlugin(ProxyServer server, Logger logger, @DataDirectory Path dat
5353
this.metricsFactory = metricsFactory;
5454

5555
VelocityLogger = new VelocityLogger("MiraiMC", this);
56-
lifeCycle = new MiraiMCPlugin(this);
56+
lifeCycle = new LifeCycle(this);
5757
lifeCycle.startUp(VelocityLogger);
5858
platformConfig = new VelocityConfig(this);
5959
loader = new LibraryLoader((URLClassLoader) getClass().getClassLoader());

0 commit comments

Comments
 (0)