我试着制作一个字符琐碎机器人,当我写.tc时,它显示了一个随机字符,你必须在15秒内回答这个字符的名字,它的代码在一个名为triviachar.js的文件中,所有的答案变体都作为变量放在一个名为triviacharacterlist.js的js文件中,但是我遇到了一个问题,有些答案变体可以工作,而其他的则不行。这是我甚至遇到过的最奇怪的机器人行为,所以如果您愿意帮助我,这将意味着很多,下面是代码。(我也不太擅长编程)(顺便说一句,我使用的是不和谐的at突击队):
(这些文件中还有更多的代码,但与此类似)
triviachar.js:
run(msg) {
const fivePoint = "Be3 bo6 u have asnwer correct, but u have answer without anime/game name so u get 5 points only lel";
const tenPoint = "Bo3 bo6 u have answer correct with anime/game name so u get 10 points instead pog"
const guessCharacterString = "Guess character bo3"
var characterRandom = Math.floor(Math.random() * 5);
if (characterRandom == 0) {
const iKF = Characters.KiritoVariants;
const triviaKiritoEmbed = new MessageEmbed()
.setColor('#008fff')
.setTitle(guessCharacterString)
.setImage(Characters.CharacterImgs.kiritoimg)
msg.channel.send(triviaKiritoEmbed)
const filterK = m => m.content.includes(iKF.kirito0 || iKF.kirito1 || iKF.kirito2 || iKF.kirito3 || iKF.kirito4 || iKF.kirito5 || iKF.kirito6 || iKF.kirito7 || iKF.kirito8);
msg.channel.awaitMessages(filterK, { max: 1, time: 15000, errors: ['time'] })
.then(collected => {switch(collected.first().content){
case Characters.KiritoVariants.kirito0:
msg.channel.send(fivePoint);
break;
case Characters.KiritoVariants.kirito3:
msg.channel.send(fivePoint);
break;
case Characters.KiritoVariants.kirito6:
msg.channel.send(fivePoint);
break;
case Characters.KiritoVariants.kirito1:
msg.channel.send(tenPoint);
break;
case Characters.KiritoVariants.kirito2:
msg.channel.send(tenPoint);
break;
case Characters.KiritoVariants.kirito4:
msg.channel.send(tenPoint);
break;
case Characters.KiritoVariants.kirito5:
msg.channel.send(tenPoint);
break;
case Characters.KiritoVariants.kirito7:
msg.channel.send(tenPoint);
break;
case Characters.KiritoVariants.kirito8:
msg.channel.send(tenPoint);
break;
}})
.catch(collected => msg.channel.send('too bad u took too long ya 3am'));
}triviacharacterlist.js:
//character images -------------------------------------------------------------------------------------------------------------
const CharacterImgs = {
kiritoimg: "https://i.pinimg.com/originals/05/b8/d9/05b8d9a934b8d831fef385e7f60b5625.jpg",
asunaimg: "https://pm1.narvii.com/6210/87c8712f955134bdbfe4135fbded8366ea21f917_00.jpg",
jojoimg: "https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/f6ec6f25-09b6-414d-aeac-9a7cb7527ee7/dcdtfn4-618039ef-f3ee-4333-90a0-208fb4d0db2d.png?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOiIsImlzcyI6InVybjphcHA6Iiwib2JqIjpbW3sicGF0aCI6IlwvZlwvZjZlYzZmMjUtMDliNi00MTRkLWFlYWMtOWE3Y2I3NTI3ZWU3XC9kY2R0Zm40LTYxODAzOWVmLWYzZWUtNDMzMy05MGEwLTIwOGZiNGQwZGIyZC5wbmcifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6ZmlsZS5kb3dubG9hZCJdfQ.QpJ2Po7ZB8AlZsmtuMH1O6zg7GpGWMo_RW-126L8ftI",
dekuimg: "https://media.discordapp.net/attachments/472313197836107780/606995677737779211/XokvvZc.png",
senkuimg: "https://pm1.narvii.com/7346/a2bb65cfca86e3d2bf85f1b12e2132af3d43f5f6r1-736-1041v2_uhq.jpg"
};
//character names ---------------------------------------------------------------------------------------------------------------
const KiritoVariants = {
kirito0: 'kirito',
kirito1: 'kirito sao',
kirito2: 'kirito sword art online',
kirito3: 'kazuto',
kirito4: 'kazuto sao',
kirito5: 'kazuto sword art online',
kirito6: 'kazuto kirigaya',
kirito7: 'kazuto kirigaya sao',
kirito8: 'kazuto kirigaya sword art online'
};这些都是不和谐的图像:https://i.stack.imgur.com/RkAf6.png https://i.stack.imgur.com/gfBAh.png
发布于 2021-01-27 15:06:15
您的邮件收集器筛选器设置错误。使用||链接变量不会达到您想要使用它的目的。有关更多信息,请查看逻辑或运算符。
简而言之,您的邮件收集器筛选器只收集内容包括iKF.kirito0值的消息。
修复方法是将所有值存储在数组中,并检查消息是否至少包含该数组的一个值。请参阅下面的代码示例。
const possibleAnswers = [iKF.kirito0, iKF.kirito1, iKF.kirito2, etc...];
const filterK = m => possibleAnswers.some(answer => m.content.includes(answer));https://stackoverflow.com/questions/65921040
复制相似问题