不和谐向消息字符串添加逗号

时间:2019-10-16 23:32:32

标签: javascript discord.js

我有一条命令,它将发送的文本减去/ sendchat部分写入文本文件,当我执行/ sendchat消息时,它添加了一个额外的逗号,因此其输出为“,message”。尝试用输出触发。

我尝试用逗号对其进行另一个拆分,我尝试将逗号放在主拆分中,这样“前缀+“ sendchat”“就好像无论如何都包括带有/ sendchat的整个命令。

if (message.content.split(" ")[0] == prefix + "sendchat") {
    //sendchat command
    message.delete();
    var commandSplit = message.content.split(" ");
    var commandSplitMSG = message.content.split(prefix + "sendchat ");
    var sendChatCommand = commandSplit[0];
    var sendChatMsg = commandSplitMSG;
    if (message.member.roles.find("id", adminRole)) {
      if (sendChatMsg == undefined) {
        message.reply("Please specify a command to send!");
      } else {
        message.reply("Sending the command: " + sendChatMsg);
        fs.appendFile("sendchat.txt", sendChatMsg, err => {
          if (err) throw err;
        });
      }
    }

它应该只发送不带任何命令的命令,我需要能够将字符串作为第二个arg放入其中,因此/ sendchat“ full string”输出应为“ full string”

1 个答案:

答案 0 :(得分:0)

看看您的代码,您似乎正在使用message.content.split(prefix + "sendchat ");。很好,但是当您使用它时,可以直接访问它,但是.split()返回一个array。例如,

"!sendchat hello world".split("!" + "sendchat ")
//["", "hello world"]

看来,您似乎正在将整个数组传递到文件,并且当您执行["", "hello world"].toString()时,将得到",hello world"作为输出。这说明了逗号,因为在将数组附加到文件时将其传递给字符串。

如果您更改

var sendChatMsg = commandSplitMSG;
//Given the example before, ["", "hello world"]

var sendChatMsg = commandSplitMSG[1];
//accessing [1] gets hello world

您应该获得所需的输出。