我想使用!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的通道
答案 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'