Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

398
Vistas
¿Cómo puedo denegar a @todos y permitir que el autor vea el canal?

He estado jugando con esto por un tiempo y nunca he creado un canal basado en permisos. Estoy trabajando en una función de ticket para mi bot y parece que no puedo hacer que funcione. La idea es crear un canal con permisos establecidos denominado la etiqueta completa message.author con los permisos establecidos para permitir que el message.author solo vea el canal. Por alguna razón sigo corriendo en un error. ¿Cómo puedo arreglar esto? He definido el rol de todos y el mensaje.autor ya debería estar definido. ¿Me estoy perdiendo de algo?

 if (message.channel.type !== "text") { let active = db.fetch(`support_${message.author.id}`) let guild = client.guilds.cache.get('took out ID') let channel, found = true try { if (active) client.channels.cache.get(active.channelID).guild } catch (e) { found = false; } if(!active || !found) { active = {} let everyoneRole = msg.guild.roles.cache.find(r => r.name === '@everyone'); channel = await guild.channels.create(`${message.author.username}-${message.author.discriminator}`, { parent: 'took out ID', topic: `Support for ${message.author.tag} | ID: ${message.author.id}`, permissionOverwrites: [ { id: everyoneRole.id, deny: ['VIEW_CHANNEL'], id: message.author.id, allow: ['VIEW_CHANNEL'], }, ], })
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Puedes usar roles.everyone que devuelve el rol @everyone del gremio o simplemente usar la ID del gremio . Además, sus sobrescrituras son incorrectas. Debe contener dos objetos; uno que niega vistas para todos y otro que lo permite para el miembro que envió el mensaje.

Cualquiera de estos funcionará:

 let permissionOverwrites = [ { id: message.guild.roles.everyone.id, deny: ['VIEW_CHANNEL'], }, { id: message.author.id, allow: ['VIEW_CHANNEL'], }, ]; let channel = await guild.channels.create( `${message.author.username}-${message.author.discriminator}`, { parent: 'took out ID', topic: `Support for ${message.author.tag} | ID: ${message.author.id}`, permissionOverwrites, }, );

O:

 let permissionOverwrites = [ { id: message.guild.id, deny: ['VIEW_CHANNEL'], }, { id: message.author.id, allow: ['VIEW_CHANNEL'], }, ]; let channel = await guild.channels.create( `${message.author.username}-${message.author.discriminator}`, { parent: 'took out ID', topic: `Support for ${message.author.tag} | ID: ${message.author.id}`, permissionOverwrites, }, );
about 4 years ago · Juan Pablo Isaza Denunciar

0

let everyoneRole = message.guild.id;

El rol de @everyone es el mismo que el del gremio.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda