在文本通道中随机选择用户
Posted
技术标签:
【中文标题】在文本通道中随机选择用户【英文标题】:Randomly choosing a user in a text channel 【发布时间】:2020-07-28 19:10:48 【问题描述】:我使用 discord.js 制作了一个不和谐机器人,它有一些有用的命令。我想再添加一个,它会从我使用该命令的文本频道中随机标记一个人。例如,如果我在#test123 频道中使用该命令,它将标记一个具有 test123 作为角色的随机人。
【问题讨论】:
你必须展示你试图让它工作的东西 【参考方案1】:这仅适用于 Discord.js v12/v13:
const Client = require('discord.js')
const client = new Client()
client.on('message', async (author, channel, content, guild) =>
if (
// author of message is a bot
author.bot ||
// message is in a DM
!guild ||
// message doesn't start with #
!content.startsWith('#')
) return
// gets rid of the #
const name = content.slice(1)
try
// uncomment this out if you don't want people to be able to do this with @everyone
// the backslash stops the bot from pinging everyone
// if (name === '@everyone') return await channel.send("You can't do this with \\@everyone!")
const role = guild.roles.cache.find(r => r.name === name)
if (!role) return await channel.send(`$name is not a valid role!`)
if (!role.members.size) return await channel.send(`There are no members with the role $role.`)
// discord.js automatically tags/mentions a member if it is converted to a string
await channel.send(`$role.members.random()`)
catch (error)
// you could also send a message or something
console.error(error)
)
client.login('your token')
对于 v11 只需替换
const role = guild.roles.cache.find(r => r.name === name)
与
const role = guild.roles.find(r => r.name === name)
【讨论】:
以上是关于在文本通道中随机选择用户的主要内容,如果未能解决你的问题,请参考以下文章
.NET C# - 文本文件中的随机访问 - 没有简单的方法?
如何使用 pyspark 从 python 列表中选择随机文本值?