Skip to content

Commit 1a755f8

Browse files
committed
插件全面重写,目前兼容Mirai 2.10
1 parent 1082cff commit 1a755f8

24 files changed

Lines changed: 534 additions & 757 deletions

README.md

Lines changed: 33 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,62 +2,67 @@
22

33
本项目是[Mirai](https://github.com/mamoe/mirai)机器人的插件,使用[RCON](https://wiki.vg/RCON)协议,与Minecraft服务器建立连接,从而在QQ群内执行服务器命令。
44

5-
可以添加多个配置文件,通过多个QQ群管理多个Minecraft服务器
5+
可以添加多个配置文件,通过多个Minecraft服务器
66

77
## 插件用法
88

99
### 安装
1010

11-
下载Release中的jar文件,复制到Mirai的plugins文件夹中;在Mirai控制台中输入`reload`命令,或者重启Mirai,以加载插件。
11+
下载Release中的jar文件,复制到Mirai的plugins文件夹中;重启Mirai,以加载插件。
1212

1313
### Minecraft服务器设置
1414

1515
修改`server.properties`中如下三行:
1616

1717
```
1818
enable-rcon=true
19-
rcon.password=
19+
rcon.password=你的密码
2020
rcon.port=25575
2121
```
2222

2323
`enable-rcon`对应的值改为`true`以启用RCON协议,设置密码`rcon.password`,以及端口`rcon.port`
2424

2525
### 插件设置
2626

27-
1. 在Mirai控制台中输入`rcon add 群号`,添加一个QQ群
28-
2. 修改Mirai目录下`plugins/RCON`文件夹中,以群号为文件名的配置文件。
27+
1. 在Mirai控制台中输入`rcon add 备注`,添加一个Rcon服务器
28+
2. 修改Mirai目录下`data/cn.ltcraft.rcon`文件夹中,以群号为文件名的配置文件。
2929
3. 在Mirai控制台中输入`rcon reload`以加载配置。
3030

3131
配置文件中各项说明如下:
3232

3333
```yaml
34-
# 命令前缀。列表中的任意一项开头的信息会被识别为RCON命令,去掉前缀后发送到Minecraft服务器。
35-
# 比如,在群里发送#list,将执行list指令;发送\help,将执行help指令。
34+
#备注:
35+
remarks: test
36+
#Rcon服务器地址 如:
37+
serverAddress: play.ltcraft.cn
38+
#Rcon服务器端口 如:
39+
serverPort: 19132
40+
#Rcon服务器密码 如:
41+
password: 132456
42+
#执行的前缀,只有开头为以下字符才会被当做命令解析:
3643
prefixes:
37-
- \
38-
- '#'
39-
40-
# Minecraft服务器地址
41-
serverAddr: '127.0.0.1'
42-
43-
# Minecraft RCON协议的端口,与server.properties中的rcon.port一致
44-
serverPort: 25575
45-
46-
# RCON协议的密码,与server.properties中的rcon.password一致
47-
password: 'PaperMC'
48-
49-
# 对应的QQ群号
50-
groupID: 716868667
51-
52-
# 该群中可以执行RCON命令的群成员的QQ号
53-
canPerform:
54-
- 123456
44+
- \
45+
- !
46+
#可执行的用户QQ号:
47+
licensor:
48+
- 2665337794
5549
```
56-
5750
### 使用
5851
59-
在RCON命令前加上配置文件中`prefixes`中的任意一项,发送到QQ群里。比如发送`\list`或者`#list`以显示在线玩家列表。
52+
配置文件`prefixes`中的任意一项,作为前缀发送到QQ群里。比如`\list`或者`!list`以执行list命令。
53+
54+
<i>tip:可以通过不同的前缀管理不同的Minecraft服务器,设为相同的一下管理多个Minecraft服务器。</i>
6055

6156
## 如何构建
57+
打开cmd或者shell
58+
<br />
59+
cd到项目所在目录
60+
<br />
61+
执行:
62+
```
63+
./gradlew clean buildPlugin
64+
```
65+
然后复制 build/mirai/rcon-xxx.jar到你Mirai的plugins下即可
6266
63-
参考:[如何开发Mirai-console插件](https://github.com/mamoe/mirai-console/blob/reborn/PluginDocs/ToStart.MD)
67+
## 详见:
68+
[Mirai开发手册](https://github.com/mamoe/mirai/blob/dev/docs/README.md)

build.gradle.kts

Lines changed: 17 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,87 +1,27 @@
11
plugins {
2-
kotlin("jvm") version "1.3.71"
3-
java
4-
id("com.github.johnrengelman.shadow") version "5.2.0"
5-
}
6-
7-
group = "cn.ltcraft.Rcon.Main"
8-
version = "1.0.0"
9-
10-
repositories {
11-
maven(url = "https://dl.bintray.com/kotlin/kotlin-eap")
12-
maven(url = "https://mirrors.huaweicloud.com/repository/maven")
13-
mavenCentral()
14-
jcenter()
15-
}
16-
17-
val miraiCoreVersion = "0.34.0"
18-
val miraiConsoleVersion = "0.4.7"
19-
20-
dependencies {
21-
compileOnly(kotlin("stdlib-jdk8"))
22-
compileOnly("net.mamoe:mirai-core-jvm:$miraiCoreVersion")
23-
compileOnly("net.mamoe:mirai-console:$miraiConsoleVersion")
24-
25-
testImplementation(kotlin("stdlib-jdk8"))
26-
testImplementation("net.mamoe:mirai-core-jvm:$miraiCoreVersion")
27-
testImplementation("net.mamoe:mirai-core-qqandroid-jvm:$miraiCoreVersion")
28-
testImplementation("net.mamoe:mirai-console:$miraiConsoleVersion")
29-
}
2+
val kotlinVersion = "1.6.20-M1"
3+
kotlin("jvm") version kotlinVersion
4+
kotlin("plugin.serialization") version kotlinVersion
305

31-
java {
32-
sourceCompatibility = JavaVersion.VERSION_1_8
33-
targetCompatibility = JavaVersion.VERSION_1_8
6+
id("net.mamoe.mirai-console") version "2.10.0" // mirai-console version
347
}
358

9+
mirai {
10+
coreVersion = "2.10.0" // mirai-core version
3611

37-
tasks {
38-
compileKotlin {
39-
kotlinOptions.jvmTarget = "1.8"
40-
}
41-
compileTestKotlin {
42-
kotlinOptions.jvmTarget = "1.8"
12+
publishing {
13+
repo = "ltcraft"
14+
packageName = "rcon"
15+
override = true
4316
}
17+
}
4418

45-
val runMiraiConsole by creating(JavaExec::class.java) {
46-
group = "mirai"
47-
dependsOn(shadowJar)
48-
dependsOn(testClasses)
49-
50-
val testConsoleDir = "test"
51-
52-
doFirst {
53-
fun removeOldVersions() {
54-
File("$testConsoleDir/plugins/").walk()
55-
.filter { it.name.matches(Regex("""${project.name}-.*-all.jar""")) }
56-
.forEach {
57-
it.delete()
58-
println("deleting old files: ${it.name}")
59-
}
60-
}
61-
62-
fun copyBuildOutput() {
63-
File("build/libs/").walk()
64-
.filter { it.name.contains("-all") }
65-
.maxBy { it.lastModified() }
66-
?.let {
67-
println("Coping ${it.name}")
68-
it.inputStream()
69-
.transferTo(File("$testConsoleDir/plugins/${it.name}").apply { createNewFile() }
70-
.outputStream())
71-
println("Copied ${it.name}")
72-
}
73-
}
19+
kotlin.sourceSets.all { languageSettings.useExperimentalAnnotation("kotlin.RequiresOptIn") }
7420

75-
workingDir = File(testConsoleDir)
76-
workingDir.mkdir()
77-
File(workingDir, "plugins").mkdir()
78-
removeOldVersions()
79-
copyBuildOutput()
21+
group = "cn.ltcraft.rcon"
22+
version = "2.0.0"
8023

81-
classpath = sourceSets["test"].runtimeClasspath
82-
main = "mirai.RunMirai"
83-
standardInput = System.`in`
84-
args(miraiCoreVersion, miraiConsoleVersion)
85-
}
86-
}
24+
repositories {
25+
mavenLocal()
26+
mavenCentral()
8727
}

gradle/wrapper/gradle-wrapper.jar

5.76 KB
Binary file not shown.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-6.2-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8-bin.zip
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists

settings.gradle.kts

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,10 @@
11
pluginManagement {
2-
resolutionStrategy {
3-
eachPlugin {
4-
when (requested.id.id) {
5-
"com.github.johnrengelman.shadow" -> useModule("com.github.jengelman.gradle.plugins:shadow:${requested.version}")
6-
}
7-
}
8-
}
9-
102
repositories {
11-
maven(url = "https://dl.bintray.com/kotlin/kotlin-eap")
12-
maven(url = "https://mirrors.huaweicloud.com/repository/maven")
13-
mavenCentral()
3+
mavenLocal()
4+
gradlePluginPortal()
145
jcenter()
6+
maven("https://dl.bintray.com/kotlin/kotlin-eap")
157
}
168
}
17-
18-
rootProject.name = "ltcraft"
9+
rootProject.name = "rcon"
1910

src/main/java/cn/ltcraft/Listener.java

Lines changed: 0 additions & 54 deletions
This file was deleted.

0 commit comments

Comments
 (0)