karin-plugin-teamspeak 1.10.2 → 1.11.4
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/LICENSE +674 -674
- package/README.md +59 -54
- package/config/config/config.d.ts +17 -17
- package/config/config/config.json +18 -18
- package/package.json +75 -66
- package/resources/template/ts3.html +63 -63
- package/lib/apps/command.d.ts +0 -5
- package/lib/apps/command.js +0 -67
- package/lib/apps/ts3.d.ts +0 -23
- package/lib/apps/ts3.js +0 -208
- package/lib/cli/pr.d.ts +0 -2
- package/lib/cli/pr.js +0 -93
- package/lib/index.d.ts +0 -1
- package/lib/index.js +0 -4
- package/lib/utils/config.d.ts +0 -11
- package/lib/utils/config.js +0 -34
- package/lib/utils/dir.d.ts +0 -5
- package/lib/utils/dir.js +0 -9
- package/lib/utils/index.d.ts +0 -2
- package/lib/utils/index.js +0 -2
- package/lib/web.config.d.ts +0 -12
- package/lib/web.config.js +0 -142
package/README.md
CHANGED
|
@@ -1,54 +1,59 @@
|
|
|
1
|
-
# karin-plugin-teamspeak3
|
|
2
|
-
|
|
3
|
-
karin 下的 [teamspeak](https://www.teamspeak.com/zh-CN/) 插件,使用 ts 开发。
|
|
4
|
-
需要搭配 [karin](https://karin.fun/) 使用。
|
|
5
|
-
在用户进入离开 ts 服务器时在群里发送用户进出提示
|
|
6
|
-
也会响应 QQ 群或私聊的 `人数` 命令发送当前服务器内有人在的频道的人数和进入时长
|
|
7
|
-
|
|
8
|
-
# 使用方法
|
|
9
|
-
|
|
10
|
-
1. 安装该插件
|
|
11
|
-
- `包管理器` 可以通过 `pnpm add karin-plugin-teamspeak@latest -w` 安装
|
|
12
|
-
- `使用编译产物` 可以 clone 该仓库的 build 分支 `git clone --depth=1 -b build https://github.com/jacksixth/karin-plugin-teamspeak3.git ./plugins/karin-plugin-teamspeak/`,然后通过运行 `pnpm install --filter=karin-plugin-teamspeak` 安装
|
|
13
|
-
2. 运行 `npx karin .`
|
|
14
|
-
3. 在 karin web 界面的插件页签中配置该插件
|
|
15
|
-
4. 保存配置后查看命令行是否成功连接服务器
|
|
16
|
-
|
|
17
|
-
#
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
频道
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
|
|
1
|
+
# karin-plugin-teamspeak3
|
|
2
|
+
|
|
3
|
+
karin 下的 [teamspeak](https://www.teamspeak.com/zh-CN/) 插件,使用 ts 开发。
|
|
4
|
+
需要搭配 [karin](https://karin.fun/) 使用。
|
|
5
|
+
在用户进入离开 ts 服务器时在群里发送用户进出提示
|
|
6
|
+
也会响应 QQ 群或私聊的 `人数` 命令发送当前服务器内有人在的频道的人数和进入时长
|
|
7
|
+
|
|
8
|
+
# 使用方法
|
|
9
|
+
|
|
10
|
+
1. 安装该插件
|
|
11
|
+
- `包管理器` 可以通过 `pnpm add karin-plugin-teamspeak@latest -w` 安装
|
|
12
|
+
- `使用编译产物` 可以 clone 该仓库的 build 分支 `git clone --depth=1 -b build https://github.com/jacksixth/karin-plugin-teamspeak3.git ./plugins/karin-plugin-teamspeak/`,然后通过运行 `pnpm install --filter=karin-plugin-teamspeak` 安装
|
|
13
|
+
2. 运行 `npx karin .`
|
|
14
|
+
3. 在 karin web 界面的插件页签中配置该插件
|
|
15
|
+
4. 保存配置后查看命令行是否成功连接服务器
|
|
16
|
+
|
|
17
|
+
# 官BOT获取QQ群群号
|
|
18
|
+
- 官BOT无法使用正常的群号,需要使用获取到的群号,获取方法如下:
|
|
19
|
+
- 在需要主动发送消息的群聊中发送 `人数`,触发插件后,在命令行中会打印出该群的群号,复制即可
|
|
20
|
+

|
|
21
|
+
|
|
22
|
+
# 功能
|
|
23
|
+
|
|
24
|
+
1. 监听 ts 服务器用户进入离开事件,在配置的群聊里发送用户进出提示 如:`xxx进入ts`、`xxx离开ts`
|
|
25
|
+
2. 在群聊或私聊发送`人数`时,发送当前服务器内有人在的频道的人数和进入时长 如:
|
|
26
|
+
```
|
|
27
|
+
====服务器名====
|
|
28
|
+
仅展示有人的频道
|
|
29
|
+
当前频道内共有4人
|
|
30
|
+
======
|
|
31
|
+
聊天听歌等待区
|
|
32
|
+
- BOT (29005287:9)
|
|
33
|
+
- xxx (0:4)
|
|
34
|
+
======
|
|
35
|
+
fps2
|
|
36
|
+
- xxx (0:31)
|
|
37
|
+
======
|
|
38
|
+
fps3
|
|
39
|
+
- xxx (96:31)
|
|
40
|
+
======
|
|
41
|
+
```
|
|
42
|
+
3. 可以通过调用接口 `/api/teamspeak/getAllUserList` 来获取当前服务器内所有频道内人数和进入时长包括没人在的频道,返回的数据格式为:
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
{
|
|
46
|
+
name: "配置内的服务器名或host",
|
|
47
|
+
res: {
|
|
48
|
+
频道1:[{
|
|
49
|
+
nickName:"xxx", //昵称
|
|
50
|
+
lastconnected: "YYYY-MM-DD HH:mm:ss", //上次连接进来的时间
|
|
51
|
+
connectTime:"", //已经连接的时间 - 单位分:秒
|
|
52
|
+
},{},...],
|
|
53
|
+
频道2:[{}],
|
|
54
|
+
频道3:[{}],
|
|
55
|
+
...
|
|
56
|
+
},
|
|
57
|
+
count: "频道内总人数"
|
|
58
|
+
}
|
|
59
|
+
```
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
// 定义 config.json 的类型
|
|
2
|
-
export interface Config {
|
|
3
|
-
BOT_SELF_ID: number //当前机器人的QQ号
|
|
4
|
-
//ts的连接信息
|
|
5
|
-
HOST: string //ts3服务器地址
|
|
6
|
-
PROTOCOL: "RAW" | "SSH" //ts3服务器协议 RAW 或是 SSH 一般默认RAW不用改
|
|
7
|
-
QUERY_PORT: number //ts3服务器查询端口
|
|
8
|
-
SERVER_PORT: number //ts3服务器语音端口
|
|
9
|
-
USERNAME: string //ts3服务器admin账号 创建时出现的那个
|
|
10
|
-
PASSWORD: string //ts3服务器admin密码 创建时出现的那个
|
|
11
|
-
NICKNAME: string //连接到ts3服务器使用的用户名 -- 不会显式出现在ts3服务器中可通过查询api查看到
|
|
12
|
-
NOTICE_GROUP_NO: number[] //通知用户进出ts3的群号 可多个
|
|
13
|
-
RECONNECT_TIMER: number //断线重连次数 -1表示将不断尝试
|
|
14
|
-
DIS_NOTIFY_NAME_LIST: string[] //不提醒的昵称列表 可多个 默认不提醒当前加入ts的机器人
|
|
15
|
-
SERVER_NAME: string //展示的服务器名
|
|
16
|
-
ENABLE_CHANNEL_MOVE_NOTIFY: string //是否开启移动频道播报功能 ("true" | "false")
|
|
17
|
-
}
|
|
1
|
+
// 定义 config.json 的类型
|
|
2
|
+
export interface Config {
|
|
3
|
+
BOT_SELF_ID: number //当前机器人的QQ号
|
|
4
|
+
//ts的连接信息
|
|
5
|
+
HOST: string //ts3服务器地址
|
|
6
|
+
PROTOCOL: "RAW" | "SSH" //ts3服务器协议 RAW 或是 SSH 一般默认RAW不用改
|
|
7
|
+
QUERY_PORT: number //ts3服务器查询端口
|
|
8
|
+
SERVER_PORT: number //ts3服务器语音端口
|
|
9
|
+
USERNAME: string //ts3服务器admin账号 创建时出现的那个
|
|
10
|
+
PASSWORD: string //ts3服务器admin密码 创建时出现的那个
|
|
11
|
+
NICKNAME: string //连接到ts3服务器使用的用户名 -- 不会显式出现在ts3服务器中可通过查询api查看到
|
|
12
|
+
NOTICE_GROUP_NO: number[] //通知用户进出ts3的群号 可多个
|
|
13
|
+
RECONNECT_TIMER: number //断线重连次数 -1表示将不断尝试
|
|
14
|
+
DIS_NOTIFY_NAME_LIST: string[] //不提醒的昵称列表 可多个 默认不提醒当前加入ts的机器人
|
|
15
|
+
SERVER_NAME: string //展示的服务器名
|
|
16
|
+
ENABLE_CHANNEL_MOVE_NOTIFY: string //是否开启移动频道播报功能 ("true" | "false")
|
|
17
|
+
}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
{
|
|
2
|
-
"BOT_SELF_ID": 1111111,
|
|
3
|
-
"HOST": "127.0.0.1",
|
|
4
|
-
"PROTOCOL": "RAW",
|
|
5
|
-
"QUERY_PORT": 10011,
|
|
6
|
-
"SERVER_PORT": 9987,
|
|
7
|
-
"USERNAME": "serveradmin",
|
|
8
|
-
"PASSWORD": "abc",
|
|
9
|
-
"NICKNAME": "TESTBOT",
|
|
10
|
-
"NOTICE_GROUP_NO": [
|
|
11
|
-
233333
|
|
12
|
-
],
|
|
13
|
-
"RECONNECT_TIMER": 5,
|
|
14
|
-
"DIS_NOTIFY_NAME_LIST": [
|
|
15
|
-
"TESTBOT"
|
|
16
|
-
],
|
|
17
|
-
"SERVER_NAME": "xxxxxxx",
|
|
18
|
-
"ENABLE_CHANNEL_MOVE_NOTIFY": "true"
|
|
1
|
+
{
|
|
2
|
+
"BOT_SELF_ID": 1111111,
|
|
3
|
+
"HOST": "127.0.0.1",
|
|
4
|
+
"PROTOCOL": "RAW",
|
|
5
|
+
"QUERY_PORT": 10011,
|
|
6
|
+
"SERVER_PORT": 9987,
|
|
7
|
+
"USERNAME": "serveradmin",
|
|
8
|
+
"PASSWORD": "abc",
|
|
9
|
+
"NICKNAME": "TESTBOT",
|
|
10
|
+
"NOTICE_GROUP_NO": [
|
|
11
|
+
233333
|
|
12
|
+
],
|
|
13
|
+
"RECONNECT_TIMER": 5,
|
|
14
|
+
"DIS_NOTIFY_NAME_LIST": [
|
|
15
|
+
"TESTBOT"
|
|
16
|
+
],
|
|
17
|
+
"SERVER_NAME": "xxxxxxx",
|
|
18
|
+
"ENABLE_CHANNEL_MOVE_NOTIFY": "true"
|
|
19
19
|
}
|
package/package.json
CHANGED
|
@@ -1,67 +1,76 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "karin-plugin-teamspeak",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "karin 的 teamspeak 插件",
|
|
5
|
-
"homepage": "https://github.com/jacksixth/karin-plugin-teamspeak3",
|
|
6
|
-
"bugs": {
|
|
7
|
-
"url": "https://github.com/jacksixth/karin-plugin-teamspeak3/issues"
|
|
8
|
-
},
|
|
9
|
-
"repository": {
|
|
10
|
-
"type": "git",
|
|
11
|
-
"url": "git+https://github.com/jacksixth/karin-plugin-teamspeak3.git"
|
|
12
|
-
},
|
|
13
|
-
"keywords": [
|
|
14
|
-
"karin-plugin",
|
|
15
|
-
"teamspeak",
|
|
16
|
-
"karin"
|
|
17
|
-
],
|
|
18
|
-
"license": "GPL-3.0-only",
|
|
19
|
-
"author": "jack",
|
|
20
|
-
"type": "module",
|
|
21
|
-
"main": "lib/index.js",
|
|
22
|
-
"scripts": {
|
|
23
|
-
"build": "tsc --project tsconfig.json && tsc-alias -p tsconfig.json",
|
|
24
|
-
"pub": "npm publish --access public",
|
|
25
|
-
"clean": "npm lib/cli/pr.js clean",
|
|
26
|
-
"pr": "node lib/cli/pr.js"
|
|
27
|
-
},
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
"
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
"
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
"
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
"
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "karin-plugin-teamspeak",
|
|
3
|
+
"version": "1.11.4",
|
|
4
|
+
"description": "karin 的 teamspeak 插件",
|
|
5
|
+
"homepage": "https://github.com/jacksixth/karin-plugin-teamspeak3",
|
|
6
|
+
"bugs": {
|
|
7
|
+
"url": "https://github.com/jacksixth/karin-plugin-teamspeak3/issues"
|
|
8
|
+
},
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/jacksixth/karin-plugin-teamspeak3.git"
|
|
12
|
+
},
|
|
13
|
+
"keywords": [
|
|
14
|
+
"karin-plugin",
|
|
15
|
+
"teamspeak",
|
|
16
|
+
"karin"
|
|
17
|
+
],
|
|
18
|
+
"license": "GPL-3.0-only",
|
|
19
|
+
"author": "jack",
|
|
20
|
+
"type": "module",
|
|
21
|
+
"main": "lib/index.js",
|
|
22
|
+
"scripts": {
|
|
23
|
+
"build": "tsc --project tsconfig.json && tsc-alias -p tsconfig.json",
|
|
24
|
+
"pub": "npm publish --access public",
|
|
25
|
+
"clean": "npm lib/cli/pr.js clean",
|
|
26
|
+
"pr": "node lib/cli/pr.js"
|
|
27
|
+
},
|
|
28
|
+
"devDependencies": {
|
|
29
|
+
"@types/node": "^20.19.43",
|
|
30
|
+
"eslint": "^9.39.4",
|
|
31
|
+
"neostandard": "^0.11.9",
|
|
32
|
+
"node-karin": "latest",
|
|
33
|
+
"tsc-alias": "^1.8.17",
|
|
34
|
+
"tsx": "^3.14.0",
|
|
35
|
+
"typescript": "^5.9.3"
|
|
36
|
+
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"ts3-nodejs-library": "^3.5.3"
|
|
39
|
+
},
|
|
40
|
+
"karin": {
|
|
41
|
+
"apps": [
|
|
42
|
+
"lib/apps"
|
|
43
|
+
],
|
|
44
|
+
"static": [
|
|
45
|
+
"resources"
|
|
46
|
+
],
|
|
47
|
+
"web": "./lib/web.config.js",
|
|
48
|
+
"ts-web": "./src/web.config.ts",
|
|
49
|
+
"files": [
|
|
50
|
+
"config",
|
|
51
|
+
"data",
|
|
52
|
+
"resources"
|
|
53
|
+
],
|
|
54
|
+
"include": [
|
|
55
|
+
"src/**/*"
|
|
56
|
+
],
|
|
57
|
+
"exclude": [
|
|
58
|
+
"lib/**/*",
|
|
59
|
+
"@karinjs/**/*"
|
|
60
|
+
]
|
|
61
|
+
},
|
|
62
|
+
"files": [
|
|
63
|
+
"/lib/**/*.js",
|
|
64
|
+
"/lib/**/*.d.ts",
|
|
65
|
+
"/config/config/*.json",
|
|
66
|
+
"/config/config/*.d.ts",
|
|
67
|
+
"resources",
|
|
68
|
+
"LICENSE",
|
|
69
|
+
"package.json",
|
|
70
|
+
"README.md"
|
|
71
|
+
],
|
|
72
|
+
"publishConfig": {
|
|
73
|
+
"access": "public",
|
|
74
|
+
"registry": "https://registry.npmjs.org"
|
|
75
|
+
}
|
|
67
76
|
}
|
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html>
|
|
3
|
-
|
|
4
|
-
<head>
|
|
5
|
-
<style>
|
|
6
|
-
body {
|
|
7
|
-
overflow: hidden;
|
|
8
|
-
width: 720px;
|
|
9
|
-
height: 720px;
|
|
10
|
-
background-size: cover;
|
|
11
|
-
background-repeat: no-repeat;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.main {
|
|
15
|
-
background: #ffffff;
|
|
16
|
-
min-width: 40%;
|
|
17
|
-
width: max-content;
|
|
18
|
-
max-width: 600px;
|
|
19
|
-
margin: auto;
|
|
20
|
-
border-radius: 5%;
|
|
21
|
-
padding: 12px;
|
|
22
|
-
padding-top: 0;
|
|
23
|
-
max-height: 720px;
|
|
24
|
-
transform: translate(0, 50%);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
h1 {
|
|
28
|
-
text-align: center;
|
|
29
|
-
color: #673AB7;
|
|
30
|
-
margin-bottom: 6px;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.tips {
|
|
34
|
-
color: #9E9E9E;
|
|
35
|
-
font-size: 14px;
|
|
36
|
-
text-align: center;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.count {
|
|
40
|
-
text-align: center;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
.main>ul {
|
|
44
|
-
padding: 0;
|
|
45
|
-
width: 40%;
|
|
46
|
-
margin: auto;
|
|
47
|
-
color: #FF9800;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
li {
|
|
51
|
-
list-style-type: circle;
|
|
52
|
-
color: #3F51B5;
|
|
53
|
-
white-space: nowrap;
|
|
54
|
-
}
|
|
55
|
-
</style>
|
|
56
|
-
</head>
|
|
57
|
-
|
|
58
|
-
<body style="background-image: url('{{@bg}}');">
|
|
59
|
-
<div class="main">
|
|
60
|
-
{{@render}}
|
|
61
|
-
</div>
|
|
62
|
-
</body>
|
|
63
|
-
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<style>
|
|
6
|
+
body {
|
|
7
|
+
overflow: hidden;
|
|
8
|
+
width: 720px;
|
|
9
|
+
height: 720px;
|
|
10
|
+
background-size: cover;
|
|
11
|
+
background-repeat: no-repeat;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.main {
|
|
15
|
+
background: #ffffff;
|
|
16
|
+
min-width: 40%;
|
|
17
|
+
width: max-content;
|
|
18
|
+
max-width: 600px;
|
|
19
|
+
margin: auto;
|
|
20
|
+
border-radius: 5%;
|
|
21
|
+
padding: 12px;
|
|
22
|
+
padding-top: 0;
|
|
23
|
+
max-height: 720px;
|
|
24
|
+
transform: translate(0, 50%);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
h1 {
|
|
28
|
+
text-align: center;
|
|
29
|
+
color: #673AB7;
|
|
30
|
+
margin-bottom: 6px;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.tips {
|
|
34
|
+
color: #9E9E9E;
|
|
35
|
+
font-size: 14px;
|
|
36
|
+
text-align: center;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.count {
|
|
40
|
+
text-align: center;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.main>ul {
|
|
44
|
+
padding: 0;
|
|
45
|
+
width: 40%;
|
|
46
|
+
margin: auto;
|
|
47
|
+
color: #FF9800;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
li {
|
|
51
|
+
list-style-type: circle;
|
|
52
|
+
color: #3F51B5;
|
|
53
|
+
white-space: nowrap;
|
|
54
|
+
}
|
|
55
|
+
</style>
|
|
56
|
+
</head>
|
|
57
|
+
|
|
58
|
+
<body style="background-image: url('{{@bg}}');">
|
|
59
|
+
<div class="main">
|
|
60
|
+
{{@render}}
|
|
61
|
+
</div>
|
|
62
|
+
</body>
|
|
63
|
+
|
|
64
64
|
</html>
|
package/lib/apps/command.d.ts
DELETED
package/lib/apps/command.js
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { dirPath } from "../utils/index.js";
|
|
2
|
-
import { karin, render, common, segment, logger } from "node-karin";
|
|
3
|
-
import teamspeak3 from "./ts3.js";
|
|
4
|
-
const loggerPluginName = logger.chalk.hex("#90CAF9")(" ===== ts3 ===== ");
|
|
5
|
-
/**
|
|
6
|
-
* 渲染ts3服务器内存在用户的列表
|
|
7
|
-
* 触发指令: 人数
|
|
8
|
-
*/
|
|
9
|
-
export const image = karin.command(/^#?人数$/, async (e) => {
|
|
10
|
-
try {
|
|
11
|
-
//默认尝试使用渲染器,调用失败则表示未连接将使用文字形式发送服务器人数
|
|
12
|
-
let usePuppeteer = false;
|
|
13
|
-
// try {
|
|
14
|
-
// render.App()
|
|
15
|
-
// } catch (error) {
|
|
16
|
-
// usePuppeteer = false
|
|
17
|
-
// }
|
|
18
|
-
if (usePuppeteer) {
|
|
19
|
-
const filePath = common.absPath(dirPath + "/resources");
|
|
20
|
-
const bg = filePath + "/image/bg.png";
|
|
21
|
-
const html = filePath + "/template/ts3.html";
|
|
22
|
-
const list = await teamspeak3.getAllChannelList();
|
|
23
|
-
if (list) {
|
|
24
|
-
const img = await render.render({
|
|
25
|
-
name: "ts3",
|
|
26
|
-
file: html,
|
|
27
|
-
data: {
|
|
28
|
-
render: list,
|
|
29
|
-
bg: bg,
|
|
30
|
-
},
|
|
31
|
-
pageGotoParams: {
|
|
32
|
-
waitUntil: "networkidle2",
|
|
33
|
-
},
|
|
34
|
-
});
|
|
35
|
-
await e.reply(segment.image("base64://" + img));
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
await e.reply(segment.text("获取频道列表失败,可能是连接ts3服务器失败"));
|
|
39
|
-
}
|
|
40
|
-
return true;
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
const list = await teamspeak3.getAllChannelList();
|
|
44
|
-
if (list) {
|
|
45
|
-
await e.reply(segment.text(list));
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
await e.reply(segment.text("获取频道列表失败,可能是连接ts3服务器失败"));
|
|
49
|
-
}
|
|
50
|
-
return true;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
catch (error) {
|
|
54
|
-
logger.error(loggerPluginName, error);
|
|
55
|
-
await e.reply(JSON.stringify(error));
|
|
56
|
-
return true;
|
|
57
|
-
}
|
|
58
|
-
}, {
|
|
59
|
-
/** 插件优先级 */
|
|
60
|
-
priority: 9999,
|
|
61
|
-
/** 插件触发是否打印触发日志 */
|
|
62
|
-
log: true,
|
|
63
|
-
/** 插件名称 */
|
|
64
|
-
name: "显示ts服务器内人数",
|
|
65
|
-
/** 谁可以触发这个插件 'all' | 'master' | 'admin' | 'group.owner' | 'group.admin' */
|
|
66
|
-
permission: "all",
|
|
67
|
-
});
|
package/lib/apps/ts3.d.ts
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { Query } from "teamspeak.js";
|
|
2
|
-
declare class ts3 {
|
|
3
|
-
teamspeak: undefined | Query;
|
|
4
|
-
connectTimer: number;
|
|
5
|
-
private isReConnecting;
|
|
6
|
-
init: () => Promise<void>;
|
|
7
|
-
getAllChannelList: () => Promise<string | undefined>;
|
|
8
|
-
quitTs: () => Promise<void>;
|
|
9
|
-
private handelReconnect;
|
|
10
|
-
}
|
|
11
|
-
declare const teamspeak3: ts3;
|
|
12
|
-
export declare const getAllUserList: () => Promise<{
|
|
13
|
-
name: string;
|
|
14
|
-
res: {
|
|
15
|
-
[name: string]: {
|
|
16
|
-
nickName: string;
|
|
17
|
-
lastconnected: string;
|
|
18
|
-
connectTime: string;
|
|
19
|
-
}[];
|
|
20
|
-
};
|
|
21
|
-
count: number;
|
|
22
|
-
} | null>;
|
|
23
|
-
export default teamspeak3;
|