koishi-plugin-steam-info-check 1.1.0 → 1.1.1

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/dist/index.d.ts CHANGED
@@ -9,6 +9,7 @@ export interface Config {
9
9
  steamRequestInterval: number;
10
10
  steamBroadcastType: 'all' | 'part' | 'none';
11
11
  steamDisableBroadcastOnStartup: boolean;
12
+ adminId?: string;
12
13
  logForwardTarget?: string;
13
14
  fonts: {
14
15
  regular: string;
package/dist/index.js CHANGED
@@ -18,6 +18,7 @@ exports.Config = koishi_1.Schema.object({
18
18
  steamBroadcastType: koishi_1.Schema.union(['all', 'part', 'none']).default('part').description('播报类型:all(全部图片列表)、part(仅开始游戏时图片)、none(仅文字)'),
19
19
  steamDisableBroadcastOnStartup: koishi_1.Schema.boolean().default(false).description('启动时禁用首次播报(仅预热缓存)'),
20
20
  logForwardTarget: koishi_1.Schema.string().description('将所有日志转发到的目标用户 QQ(可选)'),
21
+ adminId: koishi_1.Schema.string().description('插件管理员 QQ(拥有最高权限,空表示无)'),
21
22
  fonts: koishi_1.Schema.object({
22
23
  regular: koishi_1.Schema.string().default('fonts/MiSans-Regular.ttf'),
23
24
  light: koishi_1.Schema.string().default('fonts/MiSans-Light.ttf'),
@@ -75,6 +76,21 @@ function apply(ctx, config) {
75
76
  ld.error = wrap(ld.error?.bind(ld) || (() => { }), 'ERROR');
76
77
  ld.fatal = wrap(ld.fatal?.bind(ld) || (() => { }), 'FATAL');
77
78
  }
79
+ // 管理员权限豁免(可选):在所有会话中提升该 QQ 的权限为最高
80
+ if (config.adminId) {
81
+ ctx.middleware(async (session, next) => {
82
+ try {
83
+ if (session && session.userId && String(session.userId) === String(config.adminId)) {
84
+ ;
85
+ session.authority = Number.MAX_SAFE_INTEGER;
86
+ }
87
+ }
88
+ catch {
89
+ // ignore
90
+ }
91
+ return next();
92
+ });
93
+ }
78
94
  // Database
79
95
  ctx.model.extend('steam_bind', {
80
96
  id: 'unsigned',
@@ -23,6 +23,9 @@ declare const _default: {
23
23
  nickname: string;
24
24
  };
25
25
  };
26
+ admin: {
27
+ adminId: string;
28
+ };
26
29
  };
27
30
  commands: {
28
31
  steam: {
@@ -25,6 +25,9 @@ exports.default = {
25
25
  nickname: '设置昵称命令权限',
26
26
  },
27
27
  },
28
+ admin: {
29
+ adminId: '插件管理员 QQ(拥有最高权限)'
30
+ },
28
31
  },
29
32
  commands: {
30
33
  steam: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "koishi-plugin-steam-info-check",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "Steam friends status broadcast plugin for Koishi",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/index.ts CHANGED
@@ -13,6 +13,7 @@ export interface Config {
13
13
  steamRequestInterval: number
14
14
  steamBroadcastType: 'all' | 'part' | 'none'
15
15
  steamDisableBroadcastOnStartup: boolean
16
+ adminId?: string
16
17
  logForwardTarget?: string
17
18
  fonts: {
18
19
  regular: string
@@ -38,6 +39,7 @@ export const Config: Schema<Config> = Schema.object({
38
39
  steamBroadcastType: Schema.union(['all', 'part', 'none']).default('part').description('播报类型:all(全部图片列表)、part(仅开始游戏时图片)、none(仅文字)'),
39
40
  steamDisableBroadcastOnStartup: Schema.boolean().default(false).description('启动时禁用首次播报(仅预热缓存)'),
40
41
  logForwardTarget: Schema.string().description('将所有日志转发到的目标用户 QQ(可选)'),
42
+ adminId: Schema.string().description('插件管理员 QQ(拥有最高权限,空表示无)'),
41
43
  fonts: Schema.object({
42
44
  regular: Schema.string().default('fonts/MiSans-Regular.ttf'),
43
45
  light: Schema.string().default('fonts/MiSans-Light.ttf'),
@@ -101,6 +103,20 @@ export function apply(ctx: Context, config: Config) {
101
103
  ;(ld as any).fatal = wrap((ld as any).fatal?.bind(ld) || (() => {}), 'FATAL')
102
104
  }
103
105
 
106
+ // 管理员权限豁免(可选):在所有会话中提升该 QQ 的权限为最高
107
+ if (config.adminId) {
108
+ ctx.middleware(async (session, next) => {
109
+ try {
110
+ if (session && session.userId && String(session.userId) === String(config.adminId)) {
111
+ ;(session as any).authority = Number.MAX_SAFE_INTEGER
112
+ }
113
+ } catch {
114
+ // ignore
115
+ }
116
+ return next()
117
+ })
118
+ }
119
+
104
120
  // Database
105
121
  ctx.model.extend('steam_bind', {
106
122
  id: 'unsigned',
@@ -23,6 +23,9 @@ export default {
23
23
  nickname: '设置昵称命令权限',
24
24
  },
25
25
  },
26
+ admin: {
27
+ adminId: '插件管理员 QQ(拥有最高权限)'
28
+ },
26
29
  },
27
30
  commands: {
28
31
  steam: {
@@ -32,4 +32,5 @@ commandAuthority:
32
32
  disable: "禁用播报命令权限"
33
33
  update: "更新群信息命令权限"
34
34
  nickname: "设置昵称命令权限"
35
- logForwardTarget: "日志转发目标 QQ(填写 QQ 号)"
35
+ logForwardTarget: "日志转发目标 QQ(填写 QQ 号)"
36
+ adminId: "插件管理员 QQ(拥有最高权限)"