From 5729e287fcf5e38746f9c41fc1896864d462dfaa Mon Sep 17 00:00:00 2001 From: tangXins <147671983+tangXins@users.noreply.github.com> Date: Mon, 1 Jul 2024 11:10:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9Eget.nameList()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 很多时候需要检查武将的id是否是某个id,但是需要检查name,name1,name2,使用一个函数直接进一步到位。 --- noname/get/index.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/noname/get/index.js b/noname/get/index.js index ad801ae903..d3032d11d7 100644 --- a/noname/get/index.js +++ b/noname/get/index.js @@ -19,6 +19,34 @@ export class Get extends GetCompatible { promises = new Promises(); Audio = Audio; + + /** + * nameList用于检查传入的参数中是否包含指定的玩家id。 + * 如果未指定玩家名称,则返回所有玩家id的列表。 + * + * @returns {Array|boolean} 如果未指定特定字符串,则返回玩家id列表; + * 如果指定了特定字符串,并且列表中存在该字符串,则返回true;否则返回false。 + */ + nameList(...arg){ + let player, str; + + // 遍历函数接收的所有参数 + for(let argument of arg) { + // 如果参数是玩家对象,则将其赋值给player变量 + if (get.itemtype(argument) == "player") player = argument; + // 如果参数是字符串,则将其赋值给str变量 + else if (typeof argument == "string") str = argument; + } + + // 如果没有player或指定字符串,直接返回玩家名称列表 + if(!player) return []; + // 将玩家的名称添加到列表中,如果存在多个名称 + const names = ['name', 'name1', 'name2'].filter(prop => player[prop]).map(prop => player[prop]); + if (!str) return names; + // 如果指定了特定字符串,检查列表中是否包含该字符串 + // 如果包含,则返回true;否则返回false + return names.some(name => name.startsWith(str)); + }; /** * 将一个传统格式的character转化为Character对象格式 * @param { Array|Object|import("../library/element/character").Character } data