我正在为Discord创建欢迎/再见消息插件。我添加了自定义单词,但不适用于事件。

这是我的代码:

client.on ('guildMemberAdd', Member => {

  const Database = JSON.parse (fs.readFileSync ('./Bot/Database/Welcome-Bye.json'))
  const customMessage = Database [Member.guild.id].Message
  const Message = new RichEmbed ()
  .setColor (0x00ff00)

  if (customMessage) {
    if (customMessage.includes ('-membertag-')) customMessage.replace ('-membertag-', Member.user.tag)
  }

})


它不是发送成员标签,而是再次发送“ -membertag-”。我怎样才能解决这个问题?

最佳答案

String.prototype.replace()返回一个替换了内容的字符串。它不会直接修改字符串。

如果要保留该字符串的值,则必须再次分配它。

if (customMessage.includes('-membertag-'))
     // assign the new value back to customMessage
     customMessage = customMessage.replace('-membertag-', Member.user.tag);


如果要更改-member-tag-的所有实例,则可以使用正则表达式。

if (customMessage.includes('-membertag-'))
     // find all instances of `-member-tag-` (case insensitive) and replace
     customMessage = customMessage.replace(/-membertag-/gi, Member.user.tag);

10-08 15:49