He estado intentando crear un hilo público con la biblioteca "discord.js": "^13.1.0" en TypeScript. Estuve buscando y descubrí que los hilos privados requieren un nivel de suscripción premium de discord, pero estoy usando GUILD_PUBLIC_THREAD como tipo de hilo, por lo que el error no debería existir.
Busqué en los documentos la API de discord, discord.js y su guía, pero no encontré nada, aquí está el código para la creación del hilo.
let threadChannel : ThreadChannel = await message.channel.threads.create({ name: `Doubt of ${nick}`, autoArchiveDuration: 10080, type: "GUILD_PUBLIC_THREAD", startMessage: message.id, })y aquí está el error:
DiscordAPIError: Guild premium subscription level too low at RequestHandler.execute (/home/menitox/NeoClocker/node_modules/discord.js/src/rest/RequestHandler.js:298:13) at processTicksAndRejections (node:internal/process/task_queues:96:5) at async RequestHandler.push (/home/menitox/NeoClocker/node_modules/discord.js/src/rest/RequestHandler.js:50:14) at async ThreadManager.create (/home/menitox/NeoClocker/node_modules/discord.js/src/managers/ThreadManager.js:132:18) { method: 'post', path: '/channels/842526064827301909/messages/931311236006686851/threads', code: 20035, httpStatus: 400, requestData: { json: { name: 'Doubt of Pablo Contreras', auto_archive_duration: 10080, type: 11 }, files: [] } }El problema es que intenta configurar autoArchiveDuration en 10080 . Aunque puede establecerlo en 60 , 1440 , 4320 o 10080 ,
4320 solo está disponible en el nivel 1 (cuando el gremio tiene la función THREE_DAY_THREAD_ARCHIVE )10080 solo está disponible en el nivel 2 (cuando el gremio tiene la función SEVEN_DAY_THREAD_ARCHIVE ) Si establece autoArchiveDuration en 60 , 1440 o MAX , su código funcionará bien. MAX se basa en las características de tu gremio.
Otra cosa es que si proporciona la opción startMessage , el tipo de hilo se define automáticamente y no se puede cambiar. El campo de type proporcionado se ignorará, por lo que no es necesario que lo agregue. Su valor predeterminado es GUILD_PUBLIC_THREAD .
let threadChannel: ThreadChannel = await message.channel.threads.create({ name: `Doubt of ${nick}`, autoArchiveDuration: 'MAX', startMessage: message.id, });Supongo que está intentando archivar el hilo después de 7 días. Sin embargo, solo puedes archivar automáticamente hasta 24 horas si el gremio no ha sido impulsado al menos al nivel 1.