[英]Need help for assigning a variable with discord bot command
所以我試圖用 discord.js 構建我自己的不和諧機器人。 我想實現一件非常重要的事情。 我想通過機器人命令重新分配一個變量。 我當前的代碼如下所示:
client.on("message", (msg) => {
if (msg.content.startsWith(config.prefix + "boosting")) {
const embed = new Discord.MessageEmbed()
.setColor("0xd08d11")
.setTitle("**Random Title**")
.setDescription(Some description)
.addFields(
{ name: '\u200B', value: '\u200B' }, //spacer
{ name: "Person 0", value: 'Personvalue', inline: true },
{ name: '\u200B', value: '\u200B' }, //spacer
{ name: 'Price', value: 'Pricevalue', inline: true },
{ name: '\u200B', value: '\u200B' }, //spacer
{ name: 'Person 1', value: '40k', inline: true },
{ name: 'Person 2', value: '40k', inline: true },
{ name: 'Person 3', value: '40k', inline: true },
{ name: 'Person 4', value: '40k', inline: true },
)
.setThumbnail(logo)
.setTimestamp()
.setFooter('created by me or something like that');
client.channels.cache.get(`here_is_my_channel_id`).send(embed);
}
});
client.login(config.token)
好的,現在我可以輸入 .boosting 來從我的機器人獲取嵌入消息,但問題是,我想輸入 .boosting Variable1 Variable2 等等來為嵌入消息的屬性提供新值。 對於屬性,我的意思是諸如描述或字段名稱或值之類的東西。 我試過這樣的事情:
let Variable = "Test";
client.on("message", (msg) => {
if (msg.content.startsWith(config.prefix + "boosting" + " " + Variable)) {
const embed = new Discord.MessageEmbed()
.setColor("0xd08d11")
.setTitle("**Random Title**")
.setDescription(Variable)
.addFields(
{ name: '\u200B', value: '\u200B' }, //spacer
{ name: "Person 0", value: 'Personvalue', inline: true },
{ name: '\u200B', value: '\u200B' }, //spacer
{ name: 'Price', value: 'Pricevalue', inline: true },
{ name: '\u200B', value: '\u200B' }, //spacer
{ name: 'Person 1', value: '40k', inline: true },
{ name: 'Person 2', value: '40k', inline: true },
{ name: 'Person 3', value: '40k', inline: true },
{ name: 'Person 4', value: '40k', inline: true },
)
.setThumbnail(logo)
.setTimestamp()
.setFooter('created by me or something like that');
client.channels.cache.get(`here_is_my_channel_id`).send(embed);
}
});
client.login(config.token)
現在我可以編寫 .boosting Test 並且這個嵌入消息的描述將作為它的價值。 我知道我需要定義變量,但是有沒有可能用 bot 命令重新分配它? 例如,它可以從值“Test”更改為“something”。 感謝每一個幫助!
您可以將消息拆分為一組單詞:
const args = message.content.slice(config.prefix.length).split(/ +/).slice(1)
// example: `.boosting hello people of the world`
// returns: ['hello', 'people', 'of', 'the', 'world']
因此,如果您想獲得第一個參數(單詞),可以使用args[0]
。 對於第二個, args[1]
,依此類推。
您更新了代碼:
client.on("message", (msg) => {
if (msg.content.startsWith(config.prefix + "boosting" + " " + Variable)) {
const args = message.content.slice(config.prefix.length).split(/ +/).slice(1)
const embed = new Discord.MessageEmbed()
.setColor("0xd08d11")
.setTitle("**Random Title**")
.setDescription(args[0])
.addFields(
{ name: '\u200B', value: '\u200B' }, //spacer
{ name: "Person 0", value: 'Personvalue', inline: true },
{ name: '\u200B', value: '\u200B' }, //spacer
{ name: 'Price', value: 'Pricevalue', inline: true },
{ name: '\u200B', value: '\u200B' }, //spacer
{ name: 'Person 1', value: '40k', inline: true },
{ name: 'Person 2', value: '40k', inline: true },
{ name: 'Person 3', value: '40k', inline: true },
{ name: 'Person 4', value: '40k', inline: true },
)
.setThumbnail(logo)
.setTimestamp()
.setFooter('created by me or something like that');
client.channels.cache.get(`here_is_my_channel_id`).send(embed);
}
});
client.login(config.token)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.