如何从嵌入中排除 `+` 前缀
How to exclude the `+` prefix from embedding
我为我的 discord 创建了一个建议功能,用户可以说 +suggest
(建议),它会自动 post 到另一个频道。
有些事情我需要帮助:
- 将 'Suggested made by USER' 放入标题而不是单独的行中。
- 当它提出建议时,我不希望它在开头说
+suggest
。
这是我的嵌入代码:
module.exports.run = async (bot, message, args) => {
let suggestembed = new Discord.RichEmbed()
.addField("Suggestion made by:", message.author)
.addField("Suggestion:", message.content)
.setTimestamp()
这是它的外观图片:
要处理 +suggest 出现的问题,您可以将消息与其前缀分开。
const args = message.content.slice(1).trim().split(/ +/g);
let suggestion = args.slice(0).join(" ");
您可以在说明中设置它,而不是使用字段。像这样:
let suggestembed = new Discord.RichEmbed()
.setDescription(`**Suggestion made by:** ${message.author}\n**Suggestion:** ${suggestion}`)
.setTimestamp()
我现在无法测试它,它应该可以工作。如果有任何问题,请告诉我。
1
RichEmbed.addField()
接受两个参数:标题和内容。通过使用 .addField("Suggestion made by:", message.author)
,您将标题设置为 "Suggestion made by:"
,将内容设置为 message.author
。要将所有内容放在一行中,您可以执行 .addField("Suggestion made by:" + message.author, '')
这会将标题设置为您想要的内容,并将内容留空。你也可以把它放在内容参数中,但注意标题不能为空。如果是,它将 return 出错。
解法:
module.exports.run = async (bot, message, args) => {
let suggestembed = new Discord.RichEmbed()
.addField("Suggestion made by:" + message.author, '')
.addField("Suggestion:", message.content)
.setTimestamp();
或
module.exports.run = async (bot, message, args) => {
let suggestembed = new Discord.RichEmbed()
.addField("MyTitle", "Suggestion made by" + message.author)
.addField("Suggestion:", message.content)
.setTimestamp();
2
您可以使用多种方法删除前缀。这里有一些。
- 使用前缀拆分字符串:
message.content.split("+suggest")[1]
- 使用
str.substr()
切掉前缀:message.content.substr("+suggest".length)
- 使用
str.substring()
切掉前缀:message.content.substring("+suggest".length)
- 使用
str.slice()
切掉前缀:message.content.slice("+suggest".length)
希望对您有所帮助!
我为我的 discord 创建了一个建议功能,用户可以说 +suggest
(建议),它会自动 post 到另一个频道。
有些事情我需要帮助:
- 将 'Suggested made by USER' 放入标题而不是单独的行中。
- 当它提出建议时,我不希望它在开头说
+suggest
。
这是我的嵌入代码:
module.exports.run = async (bot, message, args) => {
let suggestembed = new Discord.RichEmbed()
.addField("Suggestion made by:", message.author)
.addField("Suggestion:", message.content)
.setTimestamp()
这是它的外观图片:
要处理 +suggest 出现的问题,您可以将消息与其前缀分开。
const args = message.content.slice(1).trim().split(/ +/g);
let suggestion = args.slice(0).join(" ");
您可以在说明中设置它,而不是使用字段。像这样:
let suggestembed = new Discord.RichEmbed()
.setDescription(`**Suggestion made by:** ${message.author}\n**Suggestion:** ${suggestion}`)
.setTimestamp()
我现在无法测试它,它应该可以工作。如果有任何问题,请告诉我。
1
RichEmbed.addField()
接受两个参数:标题和内容。通过使用 .addField("Suggestion made by:", message.author)
,您将标题设置为 "Suggestion made by:"
,将内容设置为 message.author
。要将所有内容放在一行中,您可以执行 .addField("Suggestion made by:" + message.author, '')
这会将标题设置为您想要的内容,并将内容留空。你也可以把它放在内容参数中,但注意标题不能为空。如果是,它将 return 出错。
解法:
module.exports.run = async (bot, message, args) => {
let suggestembed = new Discord.RichEmbed()
.addField("Suggestion made by:" + message.author, '')
.addField("Suggestion:", message.content)
.setTimestamp();
或
module.exports.run = async (bot, message, args) => {
let suggestembed = new Discord.RichEmbed()
.addField("MyTitle", "Suggestion made by" + message.author)
.addField("Suggestion:", message.content)
.setTimestamp();
2
您可以使用多种方法删除前缀。这里有一些。
- 使用前缀拆分字符串:
message.content.split("+suggest")[1]
- 使用
str.substr()
切掉前缀:message.content.substr("+suggest".length)
- 使用
str.substring()
切掉前缀:message.content.substring("+suggest".length)
- 使用
str.slice()
切掉前缀:message.content.slice("+suggest".length)
希望对您有所帮助!