gpt4 book ai didi

javascript - 提及在机器人状态中具有特定 Angular 色的用户

转载 作者:行者123 更新时间:2023-12-05 03:28:29 26 4
gpt4 key购买 nike

Sooo,大家好,这是我第一次在 StackOverflow 上发帖。不管怎样,最近我开始学习 discord.js,我设法在 v12 中创建了一个自动更改状态的小机器人。这是代码:

setInterval(() => {
const statuses = [
`user 1`,
`user 2`,
`user 3...`
]

const status = statuses[Math.floor(Math.random() * statuses.length)]
client.user.setActivity(status, { type: "WATCHING" })
}, 5000)

关键是让某些成员的用户名出现在机器人状态中,如果服务器只有少数这些“特殊”成员,这真的很好,但现在我的服务器变大了,我希望机器人针对一个特定的 Angular 色并列出所有具有该“特殊” Angular 色的成员:)请帮助我,提前谢谢

所以在 Elitezen 试图帮助我之后,我这样做了:

我在准备就绪时在客户端中添加了异步:

client.on("ready", async () => {
const guild = client.guilds.cache.get("SERVER_ID");

我添加了你的代码:

const role = guild.roles.cache.get('SERVER_ID');

await guild.members.fetch();

setInterval(() => {
const statuses = Array
.from(role.members.cache.values())
.map(member => member.displayName);

const status = statuses[Math.floor(Math.random() * statuses.length)]
client.user.setActivity(status, { type: "WATCHING" })
}, 5000)

现在我遇到了这个错误:类型错误:无法读取未定义的属性“值”

最佳答案

使用 RoleManager#get()RoleManager#find() 定位所需 Angular 色的示例

const role = <Guild>.roles.cache.find(r => r.name == 'role name');
// Or
const role = <Guild>.roles.cache.get('role id');

要获得担任此 Angular 色的所有成员,首先获取公会的所有成员,然后根据集合的值构造一个数组。

然后将成员数组映射到他们的显示名称(或用户的用户名)

如果要获取所有成员,请确保已启用公会成员的意图。

await <Guild>.members.fetch();

setInterval(() => {
const statuses = Array
.from(role.members.values());
.map(member => member.displayName);

const status = statuses[Math.floor(Math.random() * statuses.length)]
client.user.setActivity(status, { type: "WATCHING" })
}, 5000)

关于javascript - 提及在机器人状态中具有特定 Angular 色的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71251484/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com