Во-первых, вы хотели бы изменить код для определения аргументов в этом случае на const channel = args.shift();
, который будет возвращать первый элемент в массиве args [].
Затем вы можете определить канал, на который пользователь хочет отправить сообщение, с помощью message.guild.channels[channel].send(sayMessage);
(я думаю).
Все вместе, ваш код будет:
if(command === "say") {
const channel = args.shift();
const sayMessage = args.join(" ");
message.delete().catch(O_o=>{});
message.guild.channels[channel].send(sayMessage);
}
Поскольку я не могу проверить это прямо сейчас, я не знаю наверняка, сработает ли это, но это стоит попробовать! Если ты хочешь, я могу проверить это для тебя, как только смогу.
EDIT:
Я протестировал и исправил код, надеюсь, комментарии, которые я написал, достаточно объяснительны.
const channel = args.shift().slice(2,-1); // this is due to how channel mentions work in discord (they are sent to clients as <#462650628376625169>, this cuts off the first <# and the finishing >)
const sayMessage = args.join(` `);
message.delete(); // you may want to add a catch() here, i didn't because my bot requires permissions to be added to a server
client.channels.get(channel).send(sayMessage); // client here may need to be replaced with bot, or app, or whatever you're using - client.channels returns a collection, which we use get() to find an item in
Просто чтобы прояснить, этот код должен находиться внутри вашего блока if (command === "say")
.