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 +6 -0
- package/lib/index.js +35 -36
- package/package.json +1 -1
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
|
-
|
|
97
|
+
// 顶部图片:QQ markdown 图片必须带尺寸参数,且需公网可访问 URL
|
|
98
|
+
const md = imageUrl
|
|
99
|
+
? `\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:
|
|
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;
|