Да, вы можете создать канал в категории. 2-й параметр функции CreateTextChannelAsync
(включая CreateAudioChannelAsyn c) позволяет вам установить CategoryId.
Вам потребуется получить идентификатор ulong для категории, который вы можете получить из Guild.CategoryChannels. Затем вы можете передать этот идентификатор во второй параметр, чтобы присвоить каналу эту категорию.
// in using statements area
using System.Linq;
public Task ExecuteCommand(BotMessageInformation botMessageInfo)
{
return Task.Run(
async
()
=>
{
ulong messageChannelId = botMessageInfo.Message.Channel.Id;
var textChannel = botMessageInfo.Client
.GetChannel(messageChannelId) as SocketTextChannel;
string textChannelName = textChannel.Name;
// ulong textChannelCategory = textChannel.CategoryId;
await textChannel.DeleteAsync();
var guild = botMessageInfo.Client.GetGuild(botMessageInfo.GuildId);
var categoryId = guild.CategoryChannels.First(c => c.Name == "Name of Category").Id;
await guild.CreateTextChannelAsync(textChannelName, tcp => tcp.CategoryId = categoryId);
});
}