#node.js #discord #discord.js
Вопрос:
Я попробовал коды в нескольких открытых запросах на помощь здесь, но не смог получить желаемый результат. Что я хочу, так это, если бот и пользователь находятся на одном сервере, я хочу, чтобы он отправил сообщение на консоль, если нет, я хочу, чтобы он отправил сообщение о том, что это не гвинея.
Я пробовал такой код:
const serverid = "serverid "
const userid = "userid "
const server = client.guilds.cache.get(serverid)
if (server.members.cache.find(userid)) {
console.log("I am on the same server as this user.")
} else return console.log("I am not in the same group as this user!")
но этого не произошло
Ответ №1:
Согласно документации Клиента, client.members
даже не существует. Но, предполагая, что это так, имейте в виду, что боты могут знать только об онлайн-пользователях (или, по крайней мере, о пользователях, которые недавно были в Сети).
Вы можете перебирать гильдии, в которых находится ваш бот, и использовать await guild.members.fetch(userId)
их (см. Это и это). Это даже найдет пользователей в автономном режиме, поэтому в основном позволяет вам проверить, является ли кто-то частью этой гильдии, предполагая, что вы сами в ней участвуете.
Ответ №2:
попробуйте заменить server.members.cache.find(userid)
на server.members.cache.get(userid)
если вы используете идентификатор или просто используйте server.members.cache.find(u => u.id == userid)