koishi-plugin-starfx-bot 0.4.2 → 0.5.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/assets/bangborder/ag.png +0 -0
- package/assets/bangborder/card-1-cool.png +0 -0
- package/assets/bangborder/card-1-happy.png +0 -0
- package/assets/bangborder/card-1-powerful.png +0 -0
- package/assets/bangborder/card-1-pure.png +0 -0
- package/assets/bangborder/card-2.png +0 -0
- package/assets/bangborder/card-3.png +0 -0
- package/assets/bangborder/card-4.png +0 -0
- package/assets/bangborder/card-5.png +0 -0
- package/assets/bangborder/color_star.png +0 -0
- package/assets/bangborder/cool.png +0 -0
- package/assets/bangborder/go.png +0 -0
- package/assets/bangborder/happy.png +0 -0
- package/assets/bangborder/hhw.png +0 -0
- package/assets/bangborder/mnk.png +0 -0
- package/assets/bangborder/normal_star.png +0 -0
- package/assets/bangborder/powerful.png +0 -0
- package/assets/bangborder/pp.png +0 -0
- package/assets/bangborder/ppp.png +0 -0
- package/assets/bangborder/pure.png +0 -0
- package/assets/bangborder/r.png +0 -0
- package/assets/bangborder/ras.png +0 -0
- package/lib/index.d.ts +13 -3
- package/lib/index.js +169 -56
- package/package.json +2 -1
- package/readme.md +2 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/lib/index.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export declare let assetsDir: string;
|
|
|
5
5
|
export interface Config {
|
|
6
6
|
openLock: boolean;
|
|
7
7
|
openSold: boolean;
|
|
8
|
+
bangdreamBorder: boolean;
|
|
8
9
|
atNotSay: boolean;
|
|
9
10
|
atNotSayOther: boolean;
|
|
10
11
|
atNotSayProperty: number;
|
|
@@ -15,6 +16,7 @@ export interface Config {
|
|
|
15
16
|
export declare const Config: Schema<Schemastery.ObjectS<{
|
|
16
17
|
openLock: Schema<boolean, boolean>;
|
|
17
18
|
openSold: Schema<boolean, boolean>;
|
|
19
|
+
bangdreamBorder: Schema<boolean, boolean>;
|
|
18
20
|
atNotSay: Schema<boolean, boolean>;
|
|
19
21
|
atNotSayProperty: Schema<number, number>;
|
|
20
22
|
atNotSayOther: Schema<boolean, boolean>;
|
|
@@ -24,6 +26,7 @@ export declare const Config: Schema<Schemastery.ObjectS<{
|
|
|
24
26
|
}>, {
|
|
25
27
|
openLock: boolean;
|
|
26
28
|
openSold: boolean;
|
|
29
|
+
bangdreamBorder: boolean;
|
|
27
30
|
atNotSay: boolean;
|
|
28
31
|
atNotSayProperty: number;
|
|
29
32
|
atNotSayOther: boolean;
|
|
@@ -33,11 +36,18 @@ export declare const Config: Schema<Schemastery.ObjectS<{
|
|
|
33
36
|
} & import("cosmokit").Dict>;
|
|
34
37
|
export declare const usage = "<h5>StarFreedomX\u7684\u81EA\u7528\u63D2\u4EF6 \u653E\u4E86\u4E00\u4E9B\u5C0F\u529F\u80FD</h5>\n ";
|
|
35
38
|
export declare function apply(ctx: Context, cfg: Config): void;
|
|
36
|
-
export declare function getImageSrc(session: Session, param: string): Promise<
|
|
37
|
-
export declare function
|
|
39
|
+
export declare function getImageSrc(session: Session, param: string): Promise<string>;
|
|
40
|
+
export declare function handleBanGDreamConfig(ctx: Context, options: any): Promise<{
|
|
41
|
+
color: string;
|
|
42
|
+
band: string;
|
|
43
|
+
starType: string;
|
|
44
|
+
starNum: number;
|
|
45
|
+
border: string;
|
|
46
|
+
}>;
|
|
47
|
+
export declare function drawLock(ctx: Context, baseImage: string): Promise<"发生错误" | "输入无效" | h>;
|
|
38
48
|
/**
|
|
39
49
|
* "卖掉了"绘图函数
|
|
40
50
|
* @param ctx
|
|
41
51
|
* @param baseImage
|
|
42
52
|
*/
|
|
43
|
-
export declare function drawSold(ctx: Context, baseImage: string): Promise<
|
|
53
|
+
export declare function drawSold(ctx: Context, baseImage: string): Promise<"发生错误" | "输入无效" | h>;
|
package/lib/index.js
CHANGED
|
@@ -47,6 +47,7 @@ __export(src_exports, {
|
|
|
47
47
|
drawLock: () => drawLock,
|
|
48
48
|
drawSold: () => drawSold,
|
|
49
49
|
getImageSrc: () => getImageSrc,
|
|
50
|
+
handleBanGDreamConfig: () => handleBanGDreamConfig,
|
|
50
51
|
name: () => name,
|
|
51
52
|
usage: () => usage
|
|
52
53
|
});
|
|
@@ -54,6 +55,7 @@ module.exports = __toCommonJS(src_exports);
|
|
|
54
55
|
var import_koishi = require("koishi");
|
|
55
56
|
var import_sharp = __toESM(require("sharp"));
|
|
56
57
|
var fs = __toESM(require("fs"));
|
|
58
|
+
var import_jimp = require("jimp");
|
|
57
59
|
var name = "starfx-bot";
|
|
58
60
|
var baseDir;
|
|
59
61
|
var assetsDir;
|
|
@@ -61,6 +63,7 @@ var Config = import_koishi.Schema.intersect([
|
|
|
61
63
|
import_koishi.Schema.object({
|
|
62
64
|
openLock: import_koishi.Schema.boolean().default(true).description("开启明日方舟封印功能"),
|
|
63
65
|
openSold: import_koishi.Schema.boolean().default(true).description('开启闲鱼"卖掉了"功能'),
|
|
66
|
+
bangdreamBorder: import_koishi.Schema.boolean().default(true).description("开启BanG Dream!边框功能"),
|
|
64
67
|
atNotSay: import_koishi.Schema.boolean().default(true).description("开启‘艾特我又不说话’功能"),
|
|
65
68
|
atNotSayProperty: import_koishi.Schema.number().role("slider").min(0).max(1).step(0.01).default(0.5).description("'艾特我又不说话'回复概率"),
|
|
66
69
|
atNotSayOther: import_koishi.Schema.boolean().default(true).description("开启‘艾特他又不说话’功能"),
|
|
@@ -75,70 +78,47 @@ function apply(ctx, cfg) {
|
|
|
75
78
|
ctx.i18n.define("zh-CN", require_zh_CN());
|
|
76
79
|
baseDir = ctx.baseDir;
|
|
77
80
|
assetsDir = `${ctx.baseDir}/data/starfx-bot/assets`;
|
|
78
|
-
initAssets(
|
|
79
|
-
initAssets("sold.png");
|
|
81
|
+
initAssets();
|
|
80
82
|
if (cfg.openLock) {
|
|
81
83
|
ctx.command("封印 [param]").action(async ({ session }, param) => {
|
|
82
|
-
console.log("elements");
|
|
83
|
-
console.log(session.elements);
|
|
84
|
-
console.log("quote");
|
|
85
|
-
console.log(session.quote);
|
|
86
|
-
console.log("param");
|
|
87
|
-
console.log(param);
|
|
88
84
|
return await drawLock(ctx, await getImageSrc(session, param));
|
|
89
85
|
});
|
|
90
86
|
}
|
|
91
87
|
if (cfg.openSold) {
|
|
92
88
|
ctx.command("卖掉了 [param]").action(async ({ session }, param) => {
|
|
93
|
-
console.log("elements");
|
|
94
|
-
console.log(session.elements);
|
|
95
|
-
console.log("quote");
|
|
96
|
-
console.log(session.quote);
|
|
97
|
-
console.log("param");
|
|
98
|
-
console.log(param);
|
|
99
89
|
return await drawSold(ctx, await getImageSrc(session, param));
|
|
100
90
|
});
|
|
101
91
|
}
|
|
92
|
+
if (cfg.bangdreamBorder) {
|
|
93
|
+
ctx.command("bangdreamborder [param]").alias("bdbd").option("starNum", "-n <starNum: number>").option("color", "-c <color: string>").option("train", "-t <train: string>").option("band", "-b <band: string>").action(async ({ session, options }, param) => {
|
|
94
|
+
session.send("图片处理中请稍等...");
|
|
95
|
+
console.log(param);
|
|
96
|
+
const drawConfig = await handleBanGDreamConfig(ctx, options);
|
|
97
|
+
const imageBase64 = await drawBanGDream(await getImageSrc(session, param), drawConfig);
|
|
98
|
+
return import_koishi.h.image(imageBase64);
|
|
99
|
+
});
|
|
100
|
+
}
|
|
102
101
|
ctx.middleware(async (session, next) => {
|
|
103
102
|
const elements = session.elements;
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
if (elements[0].attrs.id === session.selfId) {
|
|
108
|
-
if (cfg.atNotSay) {
|
|
109
|
-
if (import_koishi.Random.bool(cfg.atNotSayProperty)) {
|
|
110
|
-
await session.send(session.text("middleware.messages.atNotReply"));
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
} else {
|
|
114
|
-
if (cfg.atNotSayOther) {
|
|
115
|
-
if (import_koishi.Random.bool(cfg.atNotSayOtherProperty)) {
|
|
116
|
-
await session.send(session.text("middleware.messages.atNotReplyOther"));
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
if (cfg.replyBot !== "关闭") {
|
|
123
|
-
const bots = ["bot", "机器人", "Bot", "BOT", "机器人!", "机器人!", "人机"];
|
|
124
|
-
const texts = elements?.filter((e) => e.type === "text").map((e) => e?.attrs?.content?.trim());
|
|
125
|
-
const ats = elements?.filter((e) => e.type === "at").map((e) => e?.attrs?.id);
|
|
126
|
-
const mentionedBot = texts?.some((t) => bots.includes(t));
|
|
127
|
-
const atMe = ats?.includes(session.selfId);
|
|
128
|
-
if (elements?.length === 1 && mentionedBot && cfg.replyBot === "无需at" || elements?.length === 2 && mentionedBot && atMe) {
|
|
129
|
-
await session.send(session.text("middleware.messages.notBot"));
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
if (cfg.iLoveYou) {
|
|
133
|
-
if (elements?.length === 2 && elements.some((e) => e.type === "at" && e?.attrs?.id === session.selfId) && elements.some((e) => e.type === "text" && e?.attrs?.content?.trim() === session.text("middleware.messages.loveMessage"))) {
|
|
134
|
-
await session.send(session.text("middleware.messages.iLoveU", {
|
|
135
|
-
at: import_koishi.h.at(session.userId),
|
|
136
|
-
quote: import_koishi.h.quote(session.messageId)
|
|
137
|
-
}));
|
|
138
|
-
}
|
|
139
|
-
}
|
|
103
|
+
await atNotSayReply(cfg, session, elements);
|
|
104
|
+
await replyBot(cfg, session, elements);
|
|
105
|
+
await iLoveYou(cfg, session, elements);
|
|
140
106
|
return next();
|
|
141
107
|
});
|
|
108
|
+
function initAssets() {
|
|
109
|
+
const fromUrl = `${__dirname}/../assets`;
|
|
110
|
+
assetsDir = `${ctx.baseDir}/data/starfx-bot/assets`;
|
|
111
|
+
if (!fs.existsSync(fromUrl)) return;
|
|
112
|
+
if (!fs.readdirSync(fromUrl)?.length) return;
|
|
113
|
+
if (!fs.existsSync(assetsDir)) {
|
|
114
|
+
fs.mkdirSync(assetsDir, { recursive: true });
|
|
115
|
+
}
|
|
116
|
+
fs.cpSync(fromUrl, assetsDir, { recursive: true, force: true });
|
|
117
|
+
if (process.env.NODE_ENV !== "development") {
|
|
118
|
+
fs.rmSync(fromUrl, { recursive: true });
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
__name(initAssets, "initAssets");
|
|
142
122
|
}
|
|
143
123
|
__name(apply, "apply");
|
|
144
124
|
async function getImageSrc(session, param) {
|
|
@@ -168,14 +148,63 @@ async function getImageSrc(session, param) {
|
|
|
168
148
|
return "";
|
|
169
149
|
}
|
|
170
150
|
__name(getImageSrc, "getImageSrc");
|
|
171
|
-
function
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
151
|
+
async function handleBanGDreamConfig(ctx, options) {
|
|
152
|
+
const types = {
|
|
153
|
+
cool: ["cool", "blue", "蓝", "蓝色"],
|
|
154
|
+
powerful: ["powerful", "red", "红", "红色"],
|
|
155
|
+
peer: ["peer", "green", "绿", "绿色"],
|
|
156
|
+
happy: ["happy", "orange", "橙", "橙色"]
|
|
157
|
+
};
|
|
158
|
+
const bands = {
|
|
159
|
+
ppp: ["ppp", "Poppin'Party", "破琵琶", "步品破茶", "poppin", "popipa", "poppinparty", "ポピパ"],
|
|
160
|
+
ag: ["ag", "Afterglow", "夕阳红", "悪蓋愚狼"],
|
|
161
|
+
pp: ["pp", "Pastel*Palettes", "Pastel*Palettes", "PastelPalettes", "怕死怕累", "pastel", "palettes", "pasupare", "パスパレ", "破巣照破烈斗"],
|
|
162
|
+
hhw: ["hhw", "ハロー、ハッピーワールド!", "Hello,HappyWorld!", "helloHappyWorld", "ハロハピ", "Hello,HappyWorld!", "harohapi", "破狼法被威悪怒", "儿歌团", "好好玩"],
|
|
163
|
+
r: ["r", "Roselia", "露世里恶", "萝", "露世裏悪", "ロゼリア", "r组", "相声团", "相声组"],
|
|
164
|
+
ras: ["ras", "RaiseASuilen", "raise", "suilen", "ラス", "零図悪酔恋", "睡莲", "麗厨唖睡蓮", "睡蓮"],
|
|
165
|
+
mnk: ["mnk", "モニカ", "蝶团", "蝶", "Morfonica", "毛二力", "monika", "monica"],
|
|
166
|
+
go: ["go", "MyGO!!!!!", "MyGO!!!!!", "mygo", "我去!!!!!", "我去!!!!!", "我去", "卖狗"]
|
|
167
|
+
};
|
|
168
|
+
const trains = {
|
|
169
|
+
"color_star": ["花后", "1", "彩", "true"],
|
|
170
|
+
"normal_star": ["花前", "0", "false"]
|
|
171
|
+
};
|
|
172
|
+
const drawConfig = {
|
|
173
|
+
color: "",
|
|
174
|
+
band: "",
|
|
175
|
+
starType: "",
|
|
176
|
+
starNum: 0,
|
|
177
|
+
border: ""
|
|
178
|
+
};
|
|
179
|
+
if (options.color) {
|
|
180
|
+
for (const [type, aliases] of Object.entries(types)) {
|
|
181
|
+
if (aliases.includes(options.color.toLowerCase())) {
|
|
182
|
+
drawConfig.color = type;
|
|
183
|
+
break;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
176
186
|
}
|
|
187
|
+
if (options.band) {
|
|
188
|
+
for (const [band, aliases] of Object.entries(bands)) {
|
|
189
|
+
if (aliases.includes(options.band.toLowerCase())) {
|
|
190
|
+
drawConfig.band = band;
|
|
191
|
+
break;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
const starNum = options.starNum ? parseInt(options.starNum) : 0;
|
|
196
|
+
drawConfig.starNum = starNum > 0 && starNum < 10 ? starNum : 0;
|
|
197
|
+
if (drawConfig.starType) {
|
|
198
|
+
for (const [train, aliases] of Object.entries(trains)) {
|
|
199
|
+
if (aliases.includes(options.color.toLowerCase())) {
|
|
200
|
+
drawConfig.starType = train;
|
|
201
|
+
break;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return drawConfig;
|
|
177
206
|
}
|
|
178
|
-
__name(
|
|
207
|
+
__name(handleBanGDreamConfig, "handleBanGDreamConfig");
|
|
179
208
|
async function drawLock(ctx, baseImage) {
|
|
180
209
|
const image = await getImageFromUrl(ctx, baseImage);
|
|
181
210
|
if (image === -1) {
|
|
@@ -245,6 +274,89 @@ async function getImageFromUrl(ctx, url) {
|
|
|
245
274
|
return image;
|
|
246
275
|
}
|
|
247
276
|
__name(getImageFromUrl, "getImageFromUrl");
|
|
277
|
+
async function atNotSayReply(cfg, session, elements) {
|
|
278
|
+
if ((cfg.atNotSay || cfg.atNotSayOther) && elements.length === 1 && elements[0].type === "at") {
|
|
279
|
+
const isAtSelf = elements[0].attrs.id === session.selfId;
|
|
280
|
+
if (isAtSelf && cfg.atNotSay && import_koishi.Random.bool(cfg.atNotSayProperty)) {
|
|
281
|
+
await session.send(session.text("middleware.messages.atNotReply"));
|
|
282
|
+
} else if (!isAtSelf && cfg.atNotSayOther && import_koishi.Random.bool(cfg.atNotSayOtherProperty)) {
|
|
283
|
+
await session.send(session.text("middleware.messages.atNotReplyOther"));
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
__name(atNotSayReply, "atNotSayReply");
|
|
288
|
+
async function replyBot(cfg, session, elements) {
|
|
289
|
+
if (cfg.replyBot !== "关闭") {
|
|
290
|
+
const bots = ["bot", "机器人", "Bot", "BOT", "机器人!", "机器人!", "人机"];
|
|
291
|
+
const texts = elements?.filter((e) => e.type === "text").map((e) => e?.attrs?.content?.trim());
|
|
292
|
+
const ats = elements?.filter((e) => e.type === "at").map((e) => e?.attrs?.id);
|
|
293
|
+
const mentionedBot = texts?.some((t) => bots.includes(t));
|
|
294
|
+
const atMe = ats?.includes(session.selfId);
|
|
295
|
+
if (elements?.length === 1 && mentionedBot && cfg.replyBot === "无需at" || elements?.length === 2 && mentionedBot && atMe) {
|
|
296
|
+
await session.send(session.text("middleware.messages.notBot"));
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
__name(replyBot, "replyBot");
|
|
301
|
+
async function iLoveYou(cfg, session, elements) {
|
|
302
|
+
if (cfg.iLoveYou) {
|
|
303
|
+
const hasAtMe = elements?.some((e) => e.type === "at" && e?.attrs?.id === session.selfId);
|
|
304
|
+
const hasLoveMessage = elements?.some(
|
|
305
|
+
(e) => e.type === "text" && e?.attrs?.content?.trim() === session.text("middleware.messages.loveMessage")
|
|
306
|
+
);
|
|
307
|
+
if (elements?.length === 2 && hasAtMe && hasLoveMessage) {
|
|
308
|
+
await session.send(session.text("middleware.messages.iLoveU", {
|
|
309
|
+
at: import_koishi.h.at(session.userId),
|
|
310
|
+
quote: import_koishi.h.quote(session.messageId)
|
|
311
|
+
}));
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
__name(iLoveYou, "iLoveYou");
|
|
316
|
+
async function drawBanGDream(avatar, inputOptions) {
|
|
317
|
+
if (!avatar) {
|
|
318
|
+
return "";
|
|
319
|
+
}
|
|
320
|
+
const colors = ["cool", "pure", "happy", "powerful"];
|
|
321
|
+
const bands = ["ppp", "ag", "pp", "r", "hhw", "ras", "mnk", "go"];
|
|
322
|
+
const starTypes = ["normal_star", "color_star"];
|
|
323
|
+
const starNums = [1, 2, 3, 4, 5];
|
|
324
|
+
const options = {
|
|
325
|
+
color: inputOptions.color || import_koishi.Random.pick(colors),
|
|
326
|
+
band: inputOptions.band || import_koishi.Random.pick(bands),
|
|
327
|
+
starNum: inputOptions.starNum || import_koishi.Random.pick(starNums),
|
|
328
|
+
starType: inputOptions.starType || "",
|
|
329
|
+
border: inputOptions.border || ""
|
|
330
|
+
};
|
|
331
|
+
options.starType ||= options.starNum < 3 ? starTypes[0] : import_koishi.Random.pick(starTypes);
|
|
332
|
+
options.border ||= `card-${starNums.includes(options.starNum) ? options.starNum : 5}${options.starNum == 1 ? `-${options.color}` : ""}`;
|
|
333
|
+
const [image, colorImage, bandImage, starImage, borderImage] = await Promise.all([
|
|
334
|
+
import_jimp.Jimp.read(avatar),
|
|
335
|
+
import_jimp.Jimp.read(`${assetsDir}/bangborder/${options.color}.png`),
|
|
336
|
+
import_jimp.Jimp.read(`${assetsDir}/bangborder/${options.band}.png`),
|
|
337
|
+
import_jimp.Jimp.read(`${assetsDir}/bangborder/${options.starType}.png`),
|
|
338
|
+
import_jimp.Jimp.read(`${assetsDir}/bangborder/${options.border}.png`)
|
|
339
|
+
]);
|
|
340
|
+
const zoom = 2;
|
|
341
|
+
image.cover({ w: 500 * zoom, h: 500 * zoom });
|
|
342
|
+
borderImage.cover({ w: 500 * zoom, h: 500 * zoom });
|
|
343
|
+
image.composite(borderImage);
|
|
344
|
+
colorImage.cover({ w: 130 * zoom, h: 130 * zoom });
|
|
345
|
+
image.composite(colorImage, image.width - colorImage.width - 3 * zoom, 5.5);
|
|
346
|
+
bandImage.width > bandImage.height ? bandImage.resize({ w: 120 * zoom }) : bandImage.resize({ h: 120 * zoom });
|
|
347
|
+
image.composite(bandImage, 15 * zoom, 15 * zoom);
|
|
348
|
+
starImage.resize({ w: 90 * zoom });
|
|
349
|
+
const step = 60 * zoom;
|
|
350
|
+
let hei = 410 * zoom;
|
|
351
|
+
let times = options.starNum;
|
|
352
|
+
while (times > 0) {
|
|
353
|
+
image.composite(starImage, 10 * zoom, hei);
|
|
354
|
+
hei -= step;
|
|
355
|
+
times--;
|
|
356
|
+
}
|
|
357
|
+
return `data:image/png;base64,${(await image.getBuffer("image/jpeg")).toString("base64")}`;
|
|
358
|
+
}
|
|
359
|
+
__name(drawBanGDream, "drawBanGDream");
|
|
248
360
|
// Annotate the CommonJS export names for ESM import in node:
|
|
249
361
|
0 && (module.exports = {
|
|
250
362
|
Config,
|
|
@@ -254,6 +366,7 @@ __name(getImageFromUrl, "getImageFromUrl");
|
|
|
254
366
|
drawLock,
|
|
255
367
|
drawSold,
|
|
256
368
|
getImageSrc,
|
|
369
|
+
handleBanGDreamConfig,
|
|
257
370
|
name,
|
|
258
371
|
usage
|
|
259
372
|
});
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"contributors": [
|
|
5
5
|
"StarFreedomX <starfreedomx@outlook.com>"
|
|
6
6
|
],
|
|
7
|
-
"version": "0.
|
|
7
|
+
"version": "0.5.1",
|
|
8
8
|
"main": "lib/index.js",
|
|
9
9
|
"typings": "lib/index.d.ts",
|
|
10
10
|
"files": [
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
"koishi": "^4.18.7"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
+
"jimp": "^1.6.0",
|
|
39
40
|
"sharp": "^0.34.1"
|
|
40
41
|
}
|
|
41
42
|
}
|