在 Discord 客户端上检测用户是否存在 (Discord.js)
Detecting if User Exists on the Discord Client (Discord.js)
我一直在尝试检测 Discord 客户端本身是否存在用户...我使用了这个:
var user_id;
//on message and after assigning user_id
if(client.users.cache.get(user_id) !== undefined) {
//checks if user does exist on the client and does action (it always thinks it's undefined for some reason)
}
你能帮帮我吗?感谢您的帮助...
谢谢,
Rako 游戏
欢迎来到 SO!这就是我如何做到的。 UserManager#Cache
is a collection, so you can use 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
我一直在尝试检测 Discord 客户端本身是否存在用户...我使用了这个:
var user_id;
//on message and after assigning user_id
if(client.users.cache.get(user_id) !== undefined) {
//checks if user does exist on the client and does action (it always thinks it's undefined for some reason)
}
你能帮帮我吗?感谢您的帮助...
谢谢, Rako 游戏
欢迎来到 SO!这就是我如何做到的。 UserManager#Cache
is a collection, so you can use 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