koishi-plugin-ll-brick 1.0.8 → 1.0.10

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/lib/index.d.ts CHANGED
@@ -27,6 +27,12 @@ export interface Config {
27
27
  reverse: number;
28
28
  specialUser: SpecialUser;
29
29
  adminUsers: string[];
30
+ /** 「拍人」消息顶部图片 URL(需公网可访问;留空则不显示图片) */
31
+ slapImage: string;
32
+ /** 「烧砖」消息顶部图片 URL */
33
+ fireImage: string;
34
+ /** 「签到」消息顶部图片 URL */
35
+ signImage: string;
30
36
  checking: boolean;
31
37
  minGain?: number;
32
38
  maxGain?: number;
package/lib/index.js CHANGED
@@ -37,6 +37,15 @@ exports.Config = koishi_1.Schema.intersect([
37
37
  adminUsers: koishi_1.Schema.array(koishi_1.Schema.string())
38
38
  .default([])
39
39
  .description('管理员 ID 列表(openid):被加入的 ID 可以使用「充值」等管理命令'),
40
+ slapImage: koishi_1.Schema.string()
41
+ .default('https://img3.tofaka.com/autoupload/ontjZmlK09ZHnuFOv9znC7KXl_QqVl-bpSwqP4fJO68/20260624/lOIl/240X240/images.jpg')
42
+ .description('「拍人」消息顶部图片 URL(需公网可访问;留空则不显示图片)'),
43
+ fireImage: koishi_1.Schema.string()
44
+ .default('https://img3.tofaka.com/autoupload/ontjZmlK09ZHnuFOv9znC7KXl_QqVl-bpSwqP4fJO68/20260624/xsnm/447X447/images_%282%29.jpg')
45
+ .description('「烧砖」消息顶部图片 URL(需公网可访问;留空则不显示图片)'),
46
+ signImage: koishi_1.Schema.string()
47
+ .default('https://img3.tofaka.com/autoupload/ontjZmlK09ZHnuFOv9znC7KXl_QqVl-bpSwqP4fJO68/20260624/yNf2/447X447/images_%281%29.jpg')
48
+ .description('「签到」消息顶部图片 URL(需公网可访问;留空则不显示图片)'),
40
49
  }),
41
50
  koishi_1.Schema.object({
42
51
  checking: koishi_1.Schema.boolean()
@@ -79,19 +88,23 @@ function stripMarkdown(md) {
79
88
  function mdCard(lines) {
80
89
  return lines.filter(Boolean).join('\n');
81
90
  }
82
- async function sendQQMarkdown(session, text) {
91
+ async function sendQQMarkdown(session, text, imageUrl, imageSize) {
83
92
  const channelId = session.guildId;
84
93
  const internal = session.bot?.internal;
85
94
  if (!channelId || !internal || typeof internal.sendMessage !== 'function') {
86
95
  return false;
87
96
  }
88
- const plain = stripMarkdown(text) || ' ';
97
+ // 顶部图片:QQ markdown 图片必须带尺寸参数,且需公网可访问 URL
98
+ const md = imageUrl
99
+ ? `![砖头 #${imageSize || 240}px #${imageSize || 240}px](${imageUrl})\n\n${text}`
100
+ : text;
101
+ const plain = stripMarkdown(md) || ' ';
89
102
  try {
90
103
  await internal.sendMessage(channelId, {
91
104
  msg_type: 2,
92
105
  msg_seq: 0,
93
106
  content: plain,
94
- markdown: { content: text },
107
+ markdown: { content: md },
95
108
  });
96
109
  return true;
97
110
  }
@@ -156,14 +169,12 @@ async function apply(ctx, config) {
156
169
  }
157
170
  users[user].burning = true;
158
171
  const startCard = mdCard([
159
- '# 🔥 砖厂开始烧砖啦!',
160
- '---',
161
- '> 🏭 **工作状态**:现在开始烧砖啦!',
162
- `> 💬 **烧砖规则**:群友每发送 **${config.cost}** 条消息,就能成功烧好一块新砖 🧱`,
163
- '> 📢 大家快来水群,给砖窑添把火吧!',
172
+ '🏭 **工作状态**:现在开始烧砖啦!',
173
+ `💬 **烧砖规则**:群友每发送 **${config.cost}** 条消息,就能成功烧好一块新砖 🧱`,
174
+ '📢 大家快来水群,给砖窑添把火吧!',
164
175
  ]);
165
176
  if (session.platform === 'qq') {
166
- await sendQQMarkdown(session, startCard);
177
+ await sendQQMarkdown(session, startCard, config.fireImage, 447);
167
178
  }
168
179
  else {
169
180
  await session.send(startCard);
@@ -181,13 +192,11 @@ async function apply(ctx, config) {
181
192
  }], ["userId", "guildId"]);
182
193
  users[user].burning = false;
183
194
  const fireDone = mdCard([
184
- '# 🎉 砖厂出炉啦!',
185
- '---',
186
- `> 🔨 ${atUser(session, session.userId)} 砖已经烧好啦!`,
187
- '> 📢 快去用 `砖头 拍人` 狠狠地拍一下吧!',
195
+ `🔨 ${atUser(session, session.userId)} 砖已经烧好啦!`,
196
+ '📢 快去用 `砖头 拍人` 狠狠地拍一下吧!',
188
197
  ]);
189
198
  if (session.platform === 'qq') {
190
- await sendQQMarkdown(session, fireDone);
199
+ await sendQQMarkdown(session, fireDone, config.fireImage, 447);
191
200
  }
192
201
  else {
193
202
  await session.send(fireDone);
@@ -239,14 +248,11 @@ async function apply(ctx, config) {
239
248
  if (koishi_1.Random.bool(probability)) {
240
249
  const muteErr = await tryMute(session.userId);
241
250
  const msg = mdCard([
242
- '# 💥 群内突发事件!',
243
- '---',
244
- '> ⚠️ 危险警告:有人动用了板砖!',
245
- `> 🎯 ${atUser(session, targetUserId)} 夺过你的砖头,把你拍晕了 **${muteTime}** 秒 🏏`,
246
- muteErr ? '> ⚠️ 因为我不是群管理员,所以并没什么卵用' : '',
251
+ `${atUser(session, targetUserId)} 夺过你的砖头,把你拍晕了 **${muteTime}** 秒 🏏`,
252
+ muteErr ? '(因为我不是群管理员,所以并没什么卵用)' : '',
247
253
  ]);
248
254
  if (isQQ) {
249
- await sendQQMarkdown(session, msg);
255
+ await sendQQMarkdown(session, msg, config.slapImage);
250
256
  return;
251
257
  }
252
258
  return msg;
@@ -254,14 +260,11 @@ async function apply(ctx, config) {
254
260
  else {
255
261
  const muteErr = await tryMute(targetUserId);
256
262
  const msg = mdCard([
257
- '# 💥 群内突发事件!',
258
- '---',
259
- '> ⚠️ 危险警告:有人动用了板砖!',
260
- `> 🎯 ${atUser(session, targetUserId)} 你被 ${atUser(session, session.userId)} 一砖头拍晕了 **${muteTime}** 秒 🏏`,
261
- muteErr ? '> ⚠️ 因为我不是群管理员,所以并没什么卵用' : '',
263
+ `${atUser(session, targetUserId)} 你被 ${atUser(session, session.userId)} 一砖头拍晕了 **${muteTime}** 秒 🏏`,
264
+ muteErr ? '(因为我不是群管理员,所以并没什么卵用)' : '',
262
265
  ]);
263
266
  if (isQQ) {
264
- await sendQQMarkdown(session, msg);
267
+ await sendQQMarkdown(session, msg, config.slapImage);
265
268
  return;
266
269
  }
267
270
  return msg;
@@ -384,13 +387,11 @@ async function apply(ctx, config) {
384
387
  checkingDay: today
385
388
  });
386
389
  const card = mdCard([
387
- '# 🎡 砖厂打卡成功!',
388
- '---',
389
- `> 😋 辛苦啦!你刚刚搬运获得了 **${brick}** 块砖头 🧱`,
390
- `> 📦 **当前库存**:你现在共有 \`${brick}/${config.maxBrick}\` 块砖头。`,
390
+ `😋 辛苦啦!你刚刚搬运获得了 **${brick}** 块砖头 🧱`,
391
+ `📦 **当前库存**:你现在共有 \`${brick}/${config.maxBrick}\` 块砖头。`,
391
392
  ]);
392
393
  if (session.platform === 'qq') {
393
- await sendQQMarkdown(session, card);
394
+ await sendQQMarkdown(session, card, config.signImage, 447);
394
395
  return;
395
396
  }
396
397
  return card;
@@ -415,13 +416,11 @@ async function apply(ctx, config) {
415
416
  }], ["userId", "guildId"]);
416
417
  const total = userData[0].brick + brick;
417
418
  const card = mdCard([
418
- '# 🎡 砖厂打卡成功!',
419
- '---',
420
- `> 😋 辛苦啦!你刚刚搬运获得了 **${brick}** 块砖头 🧱`,
421
- `> 📦 **当前库存**:你现在共有 \`${total}/${config.maxBrick}\` 块砖头。`,
419
+ `😋 辛苦啦!你刚刚搬运获得了 **${brick}** 块砖头 🧱`,
420
+ `📦 **当前库存**:你现在共有 \`${total}/${config.maxBrick}\` 块砖头。`,
422
421
  ]);
423
422
  if (session.platform === 'qq') {
424
- await sendQQMarkdown(session, card);
423
+ await sendQQMarkdown(session, card, config.signImage, 447);
425
424
  return;
426
425
  }
427
426
  return card;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "koishi-plugin-ll-brick",
3
3
  "description": "砖头拍人插件(克隆自 koishi-plugin-brick),非管理员时会提示",
4
- "version": "1.0.8",
4
+ "version": "1.0.10",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
7
7
  "files": [