Skip to content

Commit d5986a6

Browse files
committed
允许不加载mirai核心启动插件
1 parent adf43d2 commit d5986a6

File tree

4 files changed

+45
-12
lines changed

4 files changed

+45
-12
lines changed

.github/workflows/maven.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ jobs:
1515

1616
steps:
1717
- uses: actions/[email protected]
18-
- name: Set up JDK 8
18+
- name: Set up JDK 21
1919
uses: actions/[email protected]
2020
with:
21-
java-version: '17'
21+
java-version: '21'
2222
distribution: 'zulu'
2323

2424
- name: Update version

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

+10-6
Original file line numberDiff line numberDiff line change
@@ -65,13 +65,17 @@ public void preLoad() throws IOException, ParserConfigurationException, SAXExcep
6565
logger.info("Mirai working dir: " + MiraiMCConfig.General.MiraiWorkingDir);
6666

6767
// 加载 mirai 核心
68-
logger.info("Selected mirai core version: " + MiraiMCConfig.General.MiraiCoreVersion);
69-
if (MiraiMCConfig.General.MiraiCoreVersion.equalsIgnoreCase("latest")) {
70-
MiraiLoader.loadMiraiCore();
71-
} else if (MiraiMCConfig.General.MiraiCoreVersion.equalsIgnoreCase("stable")) {
72-
MiraiLoader.loadMiraiCore(MiraiLoader.getStableVersion(getPlatform().getPluginVersion()));
68+
if(System.getProperty("MiraiMC.do-not-load-mirai-core") == null){
69+
logger.info("Selected mirai core version: " + MiraiMCConfig.General.MiraiCoreVersion);
70+
if (MiraiMCConfig.General.MiraiCoreVersion.equalsIgnoreCase("latest")) {
71+
MiraiLoader.loadMiraiCore();
72+
} else if (MiraiMCConfig.General.MiraiCoreVersion.equalsIgnoreCase("stable")) {
73+
MiraiLoader.loadMiraiCore(MiraiLoader.getStableVersion(getPlatform().getPluginVersion()));
74+
} else {
75+
MiraiLoader.loadMiraiCore(MiraiMCConfig.General.MiraiCoreVersion);
76+
}
7377
} else {
74-
MiraiLoader.loadMiraiCore(MiraiMCConfig.General.MiraiCoreVersion);
78+
logger.info("MiraiMC will not load mirai core, please ensure you have custom mirai core loaded.");
7579
}
7680

7781
// 加载 EncryptService

MiraiMC-Bukkit/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
<dependency>
4040
<groupId>io.papermc.paper</groupId>
4141
<artifactId>paper-api</artifactId>
42-
<version>1.20.1-R0.1-SNAPSHOT</version>
42+
<version>1.20.6-R0.1-SNAPSHOT</version>
4343
<scope>provided</scope>
4444
</dependency>
4545
<dependency>
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package me.dreamvoid.miraimc.paper;
22

3+
import com.google.gson.Gson;
4+
import com.google.gson.JsonSyntaxException;
35
import io.papermc.paper.plugin.loader.PluginClasspathBuilder;
46
import io.papermc.paper.plugin.loader.PluginLoader;
57
import io.papermc.paper.plugin.loader.library.impl.MavenLibraryResolver;
@@ -8,13 +10,40 @@
810
import org.eclipse.aether.repository.RemoteRepository;
911
import org.jetbrains.annotations.NotNull;
1012

13+
import java.io.File;
14+
import java.io.FileNotFoundException;
15+
import java.io.FileReader;
16+
import java.util.HashMap;
17+
import java.util.List;
18+
import java.util.UUID;
19+
1120
@SuppressWarnings("all")
1221
public class PaperPluginLoader implements PluginLoader {
1322
@Override
14-
public void classloader(@NotNull PluginClasspathBuilder pluginClasspathBuilder) {
23+
public void classloader(@NotNull PluginClasspathBuilder builder) {
24+
File dependencies = builder.getContext().getDataDirectory().resolve("dependencies.json").toFile();
25+
HashMap<String, List<String>> map = new HashMap<>();
26+
if(dependencies.exists() && !dependencies.isDirectory()){
27+
try{
28+
map = new Gson().fromJson(new FileReader(dependencies), HashMap.class);
29+
} catch (FileNotFoundException e) {
30+
e.printStackTrace();
31+
} catch (JsonSyntaxException e){
32+
e.printStackTrace();
33+
}
34+
}
1535
MavenLibraryResolver resolver = new MavenLibraryResolver();
36+
37+
for(String s : map.get("repositories")){
38+
resolver.addRepository(new RemoteRepository.Builder(UUID.randomUUID().toString(), "default", s).build());
39+
}
40+
for(String s : map.get("dependencies")){
41+
resolver.addDependency(new Dependency(new DefaultArtifact(s), null));
42+
}
43+
44+
// Remote
1645
resolver.addDependency(new Dependency(new DefaultArtifact("cloud.commandframework:cloud-paper:1.8.3"), null));
17-
resolver.addRepository(new RemoteRepository.Builder("huawei-cloud", "default", "https://repo.huaweicloud.com/repository/maven/").build());
18-
pluginClasspathBuilder.addLibrary(resolver);
46+
resolver.addRepository(new RemoteRepository.Builder("central", "default", System.getProperty("MiraiMC.maven-central-url", "https://repo.huaweicloud.com/repository/maven/")).build());
47+
builder.addLibrary(resolver);
1948
}
2049
}

0 commit comments

Comments
 (0)