1 回答
TA贡献1799条经验 获得超6个赞
欢迎来到SO!我就是这样做的。UserManager#Cache
是一个集合,因此您可以用来Collection#has
检查您要查找的内容是否存在。演示:
const userId = "000000000000000000";
const exists = client.users.cache.has(userId);
console.log(exists); // true or false
// Advice to stop making cringe code --no worries, we've all been there before ;)
if (exists) doSomething(); // And not: if (exists === true), although it still can be used in other places
if (!exists) do SomethingElse(); // And definitely not: if (exists === false)
当然,这将在缓存中进行搜索,因此如果用户在您的机器人启动时从未执行过任何操作,则它将无法工作。要获取并测试用户是否存在UserManager#fetch
:
const exists = await client.users.fetch(userId); // Warning: await here. To be used in async functions, or to be replaced by .then()
// Here, the user is cached
console.log(exists); // undefined or User; can be check as in the snippet above. You can still wrap 'exists' with Boolean() if you feel more comfortable having boolean values
添加回答
举报