如何实现Discord机器人单个命令随机返回多个响应?
解决Discord机器人单命令随机返回多响应的问题
问题根源
你写的message.channel.send("Si", "No")存在参数使用错误:Discord.js的send方法只会处理第一个传入的字符串参数,后续参数会被直接忽略,所以机器人只会固定回复"Si"。
正确实现方案
把所有需要随机返回的响应存入数组,通过随机索引选取其中一项发送即可:
if(command === 'caracola'){ // 定义所有可选回复 const responses = ["Si", "No"]; // 生成0到数组长度-1之间的随机整数索引 const randomIndex = Math.floor(Math.random() * responses.length); // 发送随机选中的回复 message.channel.send(responses[randomIndex]); }
如果后续需要新增更多回复,直接往responses数组里添加元素就行,比如:
const responses = ["Si", "No", "Tal vez", "Quizás"];
这样每次触发caracola命令时,机器人都会随机返回数组中的某一项内容。
内容的提问来源于stack exchange,提问作者Gampie Pymie
相关产品推荐
相关产品推荐

