Создание тикета лучше реализовать отправкой сообщения в лс боту, чтобы у него не было никаких ограничений на отправку сообщений в ответ. Принятие сообщений как с лс, так и с тикета происходит через событие
messageCreate
. Для тикета нужен интент
GuildMessages
, а для лс нужен
DirectMessages
и
партиал Channel
. При первой отправке сообщения боту (создание тикета) бот создает канал и записывает, например, в бд id пользователя и канала тикета, чтобы связать их и использовать в дальнейшем. При получении сообщения из лс бот должен получить id тикета по id пользователя и перенаправить сообщение в тикет, ну и наоборот.