問(wèn)題描述
我創(chuàng)造了一個(gè)真心話大冒險(xiǎn)的機(jī)器人.我的前綴是 + 現(xiàn)在我想向它添加一條錯(cuò)誤消息.我有兩個(gè)變量t".d"如果有人鍵入 +something which does not match my variable to send a Message that Invalid Command +help for Help"你們能幫幫我嗎?
I Create a Truth and dare Bot. My Prefix is + Now I want to add an error message to it. I have two variables "t" "d" If anyone types +something which does not match my variable to send a Message that "Invalid Command +help for Help" Can you guys help me?
const Discord = require('discord.js');
const client = new Discord.Client();
const keepAlive = require("./server")
const prefix = "+";
// ======== Ready Log ========
client.on ("ready", () => {
console.log('The Bot Is Ready!');
client.user.setPresence({
status: 'ONLINE', // Can Be ONLINE, DND, IDLE, INVISBLE
activity: {
name: 'Truth Or Dare | +help',
type: 'PLAYING', // Can Be WHATCHING, LISTENING
}
})
});
// ======== Code ========
client.on('message', message => {
const help = new Discord.MessageEmbed()
.setColor('#72dfa3')
.setTitle(`Truth Or Dare`)
.addFields(
{ name: '``+help``', value: 'For help'},
{ name: '``+t``', value: 'For Truth'},
{ name: '``+d``', value: 'For Your Dare'},
{ name: '``Created By``', value: 'AlpHa Coder [Labib Khan]'},
)
.setTimestamp()
.setFooter(`${message.author.username}`, message.author.displayAvatarURL());
if (message.content === `${prefix}help`) {
message.channel.send(help);
}
});
// ========= Truth =========
client.on('message', message => {
const t = [
"If you could be invisible, what is the first thing you would do?",
"What's the strangest dream you've ever had?",
"What are the top three things you look for in a boyfriend/girlfriend?",
"What is your worst habit?",
"How many stuffed animals do you own?",
"What is your biggest insecurity?"
]
const truth = t[Math.floor(Math.random() * t.length)];
if (message.content === `${prefix}t`) {
message.channel.send(truth);
}
});
// ========= Dare =========
client.on('message', message => {
const d = [
"Do a free-style rap for the next minute.",
"Let another person post a status on your behalf.",
"Hand over your phone to another player who can send a single text saying anything they want to anyone they want.",
"Let the other players go through your phone for one minute.",
"Smell another player's armpit",
"Smell another player's barefoot.",
"Tell everyone your honest opinion of the person who sent this command."
]
const dare = d[Math.floor(Math.random() * d.length)];
if (message.content === `${prefix}d`) {
message.channel.send(dare);
}
});
const token = process.env.TOKEN;
keepAlive()
client.login(token);
請(qǐng)解釋清楚,以便我理解.提前謝謝
Please explain clearly so that I can understand. Advance Thank you
推薦答案
不要使用單獨(dú)的 message
事件處理程序,使用一個(gè).您可以通過(guò)使用 來(lái)利用它if else 鏈.您正在嘗試通過(guò)鏈匹配命令,如果未找到匹配項(xiàng),則在 else
中(意味著鏈中的每個(gè)先前檢查都失敗)您回復(fù)用戶說(shuō):
Don't use separate message
event handlers, use one. You can take advantage of that by using if else chain. You are trying to match the command through the chain, if no match was found, in else
(meaning every previous check in the chain failed) you reply to the user by saying:
命令無(wú)效,請(qǐng)鍵入 +help
尋求幫助.".
"Invalid command, type +help
for help.".
還要檢查開(kāi)頭的前綴.如果沒(méi)有前綴,則從函數(shù)返回.這樣你就不必在匹配消息內(nèi)容時(shí)將其寫(xiě)入 if 語(yǔ)句.
Also check for the prefix at the beginning. If there is no prefix, return from the function. That way you don't have to write it to the if statements when matching the message content.
// Array of possible truth replies
const t = [
"If you could be invisible, what is the first thing you would do?",
"What's the strangest dream you've ever had?",
"What are the top three things you look for in a boyfriend/girlfriend?",
"What is your worst habit?",
"How many stuffed animals do you own?",
"What is your biggest insecurity?"
];
// Array of possible dare replies
const d = [
"Do a free-style rap for the next minute.",
"Let another person post a status on your behalf.",
"Hand over your phone to another player who can send a single text saying anything they want to anyone they want.",
"Let the other players go through your phone for one minute.",
"Smell another player's armpit",
"Smell another player's barefoot.",
"Tell everyone your honest opinion of the person who sent this command."
];
// Handle all commands here
client.on('message', message => {
// Don't reply to itself
if (message.author.id === client.user.id) return;
// If there is no + (prefix) at the beginning of the message, exit function
if (!message.content.startsWith(prefix)) return;
// Remove the prefix from the message -> our command
const command = message.content.substring(prefix.length);
// Match the command
if (command === "t") { // Truth
const truth = t[Math.floor(Math.random() * t.length)];
message.channel.send(truth);
} else if (command === "d") { // Dare
const dare = d[Math.floor(Math.random() * d.length)];
message.channel.send(dare);
} else if (command === "help") { // Help
const help = new Discord.MessageEmbed()
.setColor('#72dfa3')
.setTitle(`Truth Or Dare`)
.addFields(
{ name: '``+help``', value: 'For help' },
{ name: '``+t``', value: 'For Truth' },
{ name: '``+d``', value: 'For Your Dare' },
{ name: '``Created By``', value: 'AlpHa Coder [Labib Khan]' },
)
.setTimestamp()
.setFooter(`${message.author.username}`, message.author.displayAvatarURL());
message.channel.send(help);
} else { // No match found, invalid command
message.channel.send("Invalid command, type `+help` for help.");
}
});
這篇關(guān)于如何在 Discord.js 中添加錯(cuò)誤消息?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!