不创建频道

时间:2019-09-07 12:19:01

标签: node.js discord.js

我想使用!test epicchannel(epicchannel是通道的名称,例如,如果我想使用!test infinite,它将创建一个名为testing-infinite的通道),但是它不起作用。它只是创建了一个名为testing-test的频道

我尝试使用message.content.startsWith,但是如果执行此操作,则什么也不会发生。

const Discord = require("discord.js");
const client = new Discord.Client();
const prefix = '!';

client.on("message", async message => {


    if(message.content.startsWith === '!test') {
        if(message.author.id === '560761436058550273') {
            const args = message.content.slice(prefix.length).trim().split(/ +/g);

        message.guild.createChannel(`testing-${args}`).then(channel => {    
            channel.setTopic(`Today we will test: ${args}`)
        })
        }else{  
            if(!message.author.id === '560761436058550273') {   
                return;
            }
        }


}
});
client.login('login is here');

没有错误,我只希望它使用!test infinite创建一个名为testing-infinite的通道

2 个答案:

答案 0 :(得分:0)

只需更改

const args = message.content.slice(prefix.length).trim().split(/ +/g);

const [_, args] = message.content.trim().split(' ')

这样,我们在修剪消息后将其按空格分割,然后通过执行一些数组destructuring assignment将第二部分实际保存在args变量中。

答案 1 :(得分:0)

args是一个数组,只需将testing-args[1]连接起来即可得到所需的名称:

rodrigo:~:node
> const prefix = '!';
undefined
> var message = { content:'!test epicchannel'}
undefined
> message
{ content: '!test epicchannel' }
> const args = message.content.slice(prefix.length).trim().split(/ +/g);
undefined
> args
[ 'test', 'epicchannel' ]
> var channelName = `testing-${args[1]}`;
undefined
> channelName
'testing-epicchannel'