koishi-plugin-cchess 0.0.6 → 0.0.8
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/assets//346/243/213/345/255/220/347/232/256/350/202/244//346/243/213/345/274/210/346/227/240/351/231/220/345/233/276/345/275/242/346/243/213/345/255/220/ba.webp +0 -0
- package/lib/assets//346/243/213/345/255/220/347/232/256/350/202/244//346/243/213/345/274/210/346/227/240/351/231/220/345/233/276/345/275/242/346/243/213/345/255/220/bb.webp +0 -0
- package/lib/assets//346/243/213/345/255/220/347/232/256/350/202/244//346/243/213/345/274/210/346/227/240/351/231/220/345/233/276/345/275/242/346/243/213/345/255/220/bc.webp +0 -0
- package/lib/assets//346/243/213/345/255/220/347/232/256/350/202/244//346/243/213/345/274/210/346/227/240/351/231/220/345/233/276/345/275/242/346/243/213/345/255/220/bk.webp +0 -0
- package/lib/assets//346/243/213/345/255/220/347/232/256/350/202/244//346/243/213/345/274/210/346/227/240/351/231/220/345/233/276/345/275/242/346/243/213/345/255/220/bn.webp +0 -0
- package/lib/assets//346/243/213/345/255/220/347/232/256/350/202/244//346/243/213/345/274/210/346/227/240/351/231/220/345/233/276/345/275/242/346/243/213/345/255/220/bp.webp +0 -0
- package/lib/assets//346/243/213/345/255/220/347/232/256/350/202/244//346/243/213/345/274/210/346/227/240/351/231/220/345/233/276/345/275/242/346/243/213/345/255/220/br.webp +0 -0
- package/lib/assets//346/243/213/345/255/220/347/232/256/350/202/244//346/243/213/345/274/210/346/227/240/351/231/220/345/233/276/345/275/242/346/243/213/345/255/220/wa.webp +0 -0
- package/lib/assets//346/243/213/345/255/220/347/232/256/350/202/244//346/243/213/345/274/210/346/227/240/351/231/220/345/233/276/345/275/242/346/243/213/345/255/220/wb.webp +0 -0
- package/lib/assets//346/243/213/345/255/220/347/232/256/350/202/244//346/243/213/345/274/210/346/227/240/351/231/220/345/233/276/345/275/242/346/243/213/345/255/220/wc.webp +0 -0
- package/lib/assets//346/243/213/345/255/220/347/232/256/350/202/244//346/243/213/345/274/210/346/227/240/351/231/220/345/233/276/345/275/242/346/243/213/345/255/220/wk.webp +0 -0
- package/lib/assets//346/243/213/345/255/220/347/232/256/350/202/244//346/243/213/345/274/210/346/227/240/351/231/220/345/233/276/345/275/242/346/243/213/345/255/220/wn.webp +0 -0
- package/lib/assets//346/243/213/345/255/220/347/232/256/350/202/244//346/243/213/345/274/210/346/227/240/351/231/220/345/233/276/345/275/242/346/243/213/345/255/220/wp.webp +0 -0
- package/lib/assets//346/243/213/345/255/220/347/232/256/350/202/244//346/243/213/345/274/210/346/227/240/351/231/220/345/233/276/345/275/242/346/243/213/345/255/220/wr.webp +0 -0
- package/lib/index.js +21 -1
- package/package.json +2 -2
- package/readme.md +1 -2
package/lib/index.js
CHANGED
|
@@ -54,7 +54,7 @@ exports.inject = {
|
|
|
54
54
|
required: ['database', 'puppeteer', 'canvas'],
|
|
55
55
|
optional: ['markdownToImage'],
|
|
56
56
|
};
|
|
57
|
-
const pieceSkins = ["云库木制棋子", "刘炳森红黑牛角隶书棋子", "木制棋子", "本纹隶书棋子", "银灰将军体棋子", "棋弈无限红绿正棋子", "棋弈无限红绿棋子", "棋天大圣棋子", "棋者象棋棋子", "楷书玉石棋子", "水墨青瓷棋子", "牛皮纸华康金文棋子", "皮卡鱼棋子", "红蓝祥隶棋子", "红黑精典无阴影棋子", "红黑精典棋子", "行书玉石棋子", "象甲棋子", "金属棋子篆体棋子", "镌刻华彩棋子", "鹏飞红黑棋子", "鹏飞经典棋子", "鹏飞绿龙棋子", "龙腾四海棋子"];
|
|
57
|
+
const pieceSkins = ["棋弈无限图形棋子", "云库木制棋子", "刘炳森红黑牛角隶书棋子", "木制棋子", "本纹隶书棋子", "银灰将军体棋子", "棋弈无限红绿正棋子", "棋弈无限红绿棋子", "棋天大圣棋子", "棋者象棋棋子", "楷书玉石棋子", "水墨青瓷棋子", "牛皮纸华康金文棋子", "皮卡鱼棋子", "红蓝祥隶棋子", "红黑精典无阴影棋子", "红黑精典棋子", "行书玉石棋子", "象甲棋子", "金属棋子篆体棋子", "镌刻华彩棋子", "鹏飞红黑棋子", "鹏飞经典棋子", "鹏飞绿龙棋子", "龙腾四海棋子"];
|
|
58
58
|
const boardSkins = ["棋弈无限红绿棋盘", "一鸣惊人棋盘", "三星堆棋盘", "云库木制棋盘", "云心鹤眼棋盘", "兰亭集序无字棋盘", "兰亭集序棋盘", "凤舞九天棋盘", "卯兔添福棋盘", "叱咤风云棋盘", "君临天下棋盘", "壁画古梦棋盘", "大闹天宫棋盘", "天山共色棋盘", "女神之约棋盘", "小吕飞刀棋盘", "山海绘卷棋盘", "护眼绿棋盘", "星河璀璨棋盘", "木制棋盘", "本纹隶书白棋盘", "本纹隶书黑棋盘", "桃花源记棋盘", "棋天大圣棋盘", "棋天无大圣棋盘", "武侠江湖棋盘", "水墨青瓷棋盘", "清悠茶道棋盘", "游园惊梦棋盘", "牛转乾坤棋盘", "玉石太极棋盘", "皓月无痕棋盘", "皮卡鱼棋盘", "盲棋神迹棋盘", "空城计棋盘", "竹波烟雨棋盘", "经典木棋盘棋盘", "绿色棋盘", "象甲2023棋盘", "象甲征程棋盘", "象甲重燃棋盘", "金牛降世棋盘", "金虎贺岁棋盘", "金虎贺岁(王天一签名版)棋盘", "鎏金岁月棋盘", "霸王别姬棋盘", "鸿门宴棋盘", "鹏飞红黑棋盘", "鹏飞经典棋盘", "鹏飞绿龙棋盘", "龙腾天坛棋盘"];
|
|
59
59
|
exports.Config = koishi_1.Schema.object({
|
|
60
60
|
boardSkin: koishi_1.Schema.union(boardSkins).default('象甲2023棋盘').description(`棋盘皮肤。`),
|
|
@@ -107,6 +107,7 @@ function apply(ctx, config) {
|
|
|
107
107
|
enableHint: true,
|
|
108
108
|
};
|
|
109
109
|
const piecesImgResources = loadPiecesImageResources(config.pieceSkin);
|
|
110
|
+
// wj*
|
|
110
111
|
const outerFrameImg = fs.readFileSync(path.join(__dirname, 'assets', '棋盘皮肤', `外框.png`));
|
|
111
112
|
const boardSkinImg = fs.readFileSync(path.join(__dirname, 'assets', '棋盘皮肤', `${config.boardSkin}.webp`));
|
|
112
113
|
const possibleFigureNames = ["将", "士", "象", "车", "马", "炮", "卒", "帅", "仕", "相", "兵"];
|
|
@@ -899,6 +900,7 @@ function apply(ctx, config) {
|
|
|
899
900
|
let { channelId, userId, username } = session;
|
|
900
901
|
await updateNameInPlayerRecord(userId, username);
|
|
901
902
|
if (targetUser) {
|
|
903
|
+
targetUser = await replaceAtTags(session, targetUser);
|
|
902
904
|
const userIdRegex = /<at id="([^"]+)"(?: name="([^"]+)")?\/>/;
|
|
903
905
|
const match = targetUser.match(userIdRegex);
|
|
904
906
|
userId = match?.[1] ?? userId;
|
|
@@ -922,6 +924,24 @@ function apply(ctx, config) {
|
|
|
922
924
|
`);
|
|
923
925
|
});
|
|
924
926
|
// hs*
|
|
927
|
+
async function replaceAtTags(session, content) {
|
|
928
|
+
// 正则表达式用于匹配 at 标签
|
|
929
|
+
const atRegex = /<at id="(\d+)"(?: name="([^"]*)")?\/>/g;
|
|
930
|
+
// 匹配所有 at 标签
|
|
931
|
+
let match;
|
|
932
|
+
while ((match = atRegex.exec(content)) !== null) {
|
|
933
|
+
const userId = match[1];
|
|
934
|
+
const name = match[2];
|
|
935
|
+
// 如果 name 不存在,根据 userId 获取相应的 name
|
|
936
|
+
if (!name) {
|
|
937
|
+
const guildMember = await session.bot.getGuildMember(session.guildId, userId);
|
|
938
|
+
// 替换原始的 at 标签
|
|
939
|
+
const newAtTag = `<at id="${userId}" name="${guildMember.name}"/>`;
|
|
940
|
+
content = content.replace(match[0], newAtTag);
|
|
941
|
+
}
|
|
942
|
+
}
|
|
943
|
+
return content;
|
|
944
|
+
}
|
|
925
945
|
async function updatePlayerRecords(channelId, winSide, loseSide) {
|
|
926
946
|
const winnerPlayerRecords = await ctx.database.get('cchess_gaming_player_records', {
|
|
927
947
|
channelId,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "koishi-plugin-cchess",
|
|
3
3
|
"description": "欢迎来到中国象棋游戏,支持人人/人机对战、纵线/坐标操作方式、编辑棋盘、导入/导出FEN等功能,提供 40+ 棋盘/棋子皮肤及排行榜系统。🎪",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.8",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
7
7
|
"files": [
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"对战"
|
|
46
46
|
],
|
|
47
47
|
"peerDependencies": {
|
|
48
|
-
"koishi": "^4.17.
|
|
48
|
+
"koishi": "^4.17.3"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
51
|
"koishi-plugin-markdown-to-image-service": "^1.1.6",
|
package/readme.md
CHANGED
|
@@ -14,8 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
- 建议自行添加别名,如 `cc` 等更方便的指令。
|
|
16
16
|
- 请安装并启用所需服务,`canvas` 服务可使用 `puppeteer` 提供。
|
|
17
|
-
-
|
|
18
|
-
支持使用中国象棋纵线(炮二平五/炮8平5)和字母坐标(a0a1)进行移动。[了解详情 - 中国象棋着法表示](https://www.xqbase.com/protocol/cchess_move.htm)
|
|
17
|
+
- 支持使用中国象棋纵线(炮二平五/炮8平5)和字母坐标(a0a1)进行移动。[了解详情 - 中国象棋着法表示](https://www.xqbase.com/protocol/cchess_move.htm)
|
|
19
18
|
|
|
20
19
|
## ⚙️ 配置项
|
|
21
20
|
|