mioku-plugin-terraria 2.0.1 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/command.ts +1 -1
- package/index.ts +20 -24
- package/package.json +1 -1
package/core/command.ts
CHANGED
package/index.ts
CHANGED
|
@@ -39,18 +39,13 @@ export default definePlugin({
|
|
|
39
39
|
serverManager.startServers(config);
|
|
40
40
|
ctx.logger.info("Terraria 插件已就绪");
|
|
41
41
|
|
|
42
|
-
const requireGroup = (event: any):
|
|
43
|
-
|
|
44
|
-
"group_id" in event && typeof event.group_id === "number"
|
|
45
|
-
? event.group_id
|
|
46
|
-
: undefined;
|
|
47
|
-
return groupId;
|
|
48
|
-
};
|
|
42
|
+
const requireGroup = (event: any): string | undefined =>
|
|
43
|
+
String(event?.group_id ?? "").trim() || undefined;
|
|
49
44
|
|
|
50
45
|
ctx.command({
|
|
51
|
-
name: "
|
|
52
|
-
|
|
53
|
-
|
|
46
|
+
name: "ts 状态",
|
|
47
|
+
prefixes: ["/", "."],
|
|
48
|
+
match: /^ts\s*状态(?:\s|$)/,
|
|
54
49
|
permission: "master",
|
|
55
50
|
description: "查看所有已配置服务器的 WebSocket 连接状态",
|
|
56
51
|
handler: async ({ event }) => {
|
|
@@ -61,12 +56,12 @@ export default definePlugin({
|
|
|
61
56
|
},
|
|
62
57
|
});
|
|
63
58
|
ctx.command({
|
|
64
|
-
name: "
|
|
65
|
-
|
|
66
|
-
|
|
59
|
+
name: "ts 开启同步",
|
|
60
|
+
prefixes: ["/", "."],
|
|
61
|
+
match: /^ts\s*开启同步(?:\s|$)/,
|
|
67
62
|
permission: "master",
|
|
68
63
|
description: "开启指定服务器的群聊消息同步功能",
|
|
69
|
-
usage: "
|
|
64
|
+
usage: ".ts 开启同步 <服务器名称>",
|
|
70
65
|
handler: async ({ event, args }) => {
|
|
71
66
|
if (!requireGroup(event)) return;
|
|
72
67
|
await handleSync(
|
|
@@ -81,12 +76,12 @@ export default definePlugin({
|
|
|
81
76
|
},
|
|
82
77
|
});
|
|
83
78
|
ctx.command({
|
|
84
|
-
name: "
|
|
85
|
-
|
|
86
|
-
|
|
79
|
+
name: "ts 关闭同步",
|
|
80
|
+
prefixes: ["/", "."],
|
|
81
|
+
match: /^ts\s*关闭同步(?:\s|$)/,
|
|
87
82
|
permission: "master",
|
|
88
83
|
description: "关闭指定服务器的群聊消息同步功能",
|
|
89
|
-
usage: "
|
|
84
|
+
usage: ".ts 关闭同步 <服务器名称>",
|
|
90
85
|
handler: async ({ event, args }) => {
|
|
91
86
|
if (!requireGroup(event)) return;
|
|
92
87
|
await handleSync(
|
|
@@ -101,9 +96,9 @@ export default definePlugin({
|
|
|
101
96
|
},
|
|
102
97
|
});
|
|
103
98
|
ctx.command({
|
|
104
|
-
name: "
|
|
105
|
-
|
|
106
|
-
|
|
99
|
+
name: "ts 重连",
|
|
100
|
+
prefixes: ["/", "."],
|
|
101
|
+
match: /^ts\s*重连(?:\s|$)/,
|
|
107
102
|
permission: "master",
|
|
108
103
|
description: "断开并重新建立所有服务器的 WebSocket 连接",
|
|
109
104
|
handler: async ({ event }) => {
|
|
@@ -118,7 +113,7 @@ export default definePlugin({
|
|
|
118
113
|
const groupId = requireGroup(event);
|
|
119
114
|
if (!groupId) return;
|
|
120
115
|
const text = ctx.text(event)?.trim();
|
|
121
|
-
if (text
|
|
116
|
+
if (text && /^[./]ts\b/.test(text)) return;
|
|
122
117
|
await forwardToTerraria(ctx, event, config, configHandler, serverManager);
|
|
123
118
|
});
|
|
124
119
|
|
|
@@ -196,9 +191,10 @@ async function forwardToTerraria(
|
|
|
196
191
|
`[Terraria] 收到群消息 group=${event.group_id} text=${text}`,
|
|
197
192
|
);
|
|
198
193
|
|
|
199
|
-
|
|
194
|
+
const groupId = String(event.group_id ?? "").trim();
|
|
195
|
+
if (!groupId) return;
|
|
200
196
|
|
|
201
|
-
const servers = configHandler.getServersForGroup(
|
|
197
|
+
const servers = configHandler.getServersForGroup(groupId);
|
|
202
198
|
if (servers.length === 0) return;
|
|
203
199
|
|
|
204
200
|
const msgList: QqMessagePart[] = Array.isArray(event.message)
|