Только робохомячек пишется на js. Но и на python не составит труда написать данный код.
@client.command() #
async def report(stx):
thhchannel = stx.message.channel
ttttt = client.get_channel(703596631261577262) # канал, где данная команда будет работать.
if thhchannel == ttttt: #Если сообщение написано в данном канале, выполняется код.
await stx.channel.purge(limit = 1)
author = stx.message.author
guild = stx.message.guild
creport = discord.utils.get(stx.guild.categories, name = 'report') #название категории, где будет создаваться тема.
await guild.create_text_channel(f'ticket {author.name}', overwrites = None, category = creport, reason = 'Создание нового тикета.')
server = client.get_guild(703596629814673428) # ID сервера.
for channel in server.channels:
if channel.name == f'ticket {author.name}':
break
await channel.set_permissions(author, read_messages = True, send_messages = True) #установка прав создателю репорта.
spekmoder = discord.utils.get(stx.guild.roles, id = 738136827956953279) # Человек из модерации.
await channel.set_permissions(spekmoder, read_messages = True, send_messages = True)
alluser = discord.utils.get(stx.guild.roles, id = 703596629814673428) # everyone.
await channel.set_permissions(alluser, read_messages = False, send_messages = False)
else: # Если команда !report не в том канале, ничего не происходит.
channel = ctx.message.channel(703596631261577262)
await stx.send('1')
Команда на закрытие репорта так же не сложна. Попросту нужно у упомянутого человека поставить другие права и отправить какое либо сообщение об закрытие репорта в лс или же в сам тикет, думаю проблем не составит.
Привет с аризоны :)