> ## Documentation Index
> Fetch the complete documentation index at: https://docs.headlesslabs.xyz/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Jail

> Jail aísla a un miembro con un rol del servidor, guarda sus roles previos y luego intenta restaurar los que sigan disponibles y el bot pueda gestionar. No programa la salida: un moderador debe ejecutar `unjail`.

## Setup, permisos y efectos

`.jail setup` crea o reutiliza el rol `Jailed` y el canal de texto `jail`, guarda la configuración por servidor y activa el módulo. El setup permite al rol Jail entrar al canal y **intenta** negarle acceso en los demás canales; en el canal Jail niega visibilidad a `@everyone` y permite al bot. No agrega automáticamente overwrites para roles de staff. El grupo de prefijo `.jail` exige `Manage Roles` y `Manage Channels` a quien lo ejecuta y al bot; `/jail` está registrado como slash independiente y muestra `Manage Roles` como permiso predeterminado del usuario. Si `/jail` necesita preparar recursos porque Jail está apagado o incompleto, el bot también necesita permisos para crear/sincronizar el rol y el canal. El setup intenta cambiar overwrites de todos los canales y no revierte cambios previos si algunas escrituras fallan.

### `.jail setup`

```headless-command Syntax theme={null}
.jail setup
```

```headless-command Example theme={null}
.jail setup
```

## Aislar a un miembro

`.jail @miembro [razón]` y `/jail member:@miembro reason:...` aplican el rol. El motivo es opcional y, si se omite, se guarda como `No reason provided`. Antes de mover roles, Headless rechaza bots, protege al owner del servidor (salvo que actúe el propio owner) y comprueba que el objetivo esté por debajo de los roles del bot y del moderador. Guarda los IDs de los roles previos y aparte registra cuáles intentará retirar; solo retira roles no administrados que estén por debajo del bot. La entrada persistente se guarda antes de los cambios en Discord, así que un error de permisos puede dejar un registro aunque el castigo no se haya aplicado por completo. Tras aplicar el rol, Headless intenta enviar un DM y crea caso y log; un DM fallido no revierte el castigo.

### `.jail`

```headless-command Syntax theme={null}
.jail [user_query] [reason=No reason provided]
```

```headless-command Example theme={null}
.jail @miembro Acoso
```

### `/jail`

```headless-command Syntax theme={null}
/jail member:<member> [reason:<reason>]
```

```headless-command Example theme={null}
/jail member:@miembro reason:Acoso
```

## Liberar y comprobar el estado

`.unjail @miembro [razón]` o `/unjail member:@miembro reason:...` quitan el rol Jail si está presente y vuelven a asignar roles guardados que todavía existan, no sean administrados y estén por debajo del rol del bot. Los roles que ya no existen o que el bot no puede gestionar se omiten. Si no hay registro previo, puede quitar Jail, pero no tiene roles que restaurar. El registro guardado se elimina solo después de que Discord acepte los cambios; cada liberación genera su propio caso y log. `.jail status` muestra la configuración y hasta ocho miembros activos; `.jail setup` repara o prepara el sistema. El comando raíz `.jail` también puede ejecutar setup automáticamente cuando Jail está apagado antes de mostrar el estado.

### `.jail status`

```headless-command Syntax theme={null}
.jail status
```

```headless-command Example theme={null}
.jail status
```

### `.unjail`

```headless-command Syntax theme={null}
.unjail <user_query> [reason=No reason provided]
```

```headless-command Example theme={null}
.unjail @miembro Apelación aceptada
```

### `/unjail`

```headless-command Syntax theme={null}
/unjail member:<member> [reason:<reason>]
```

```headless-command Example theme={null}
/unjail member:@miembro reason:Apelación aceptada
```

> [!WARNING]
>
> El setup escribe overwrites del rol Jail en los canales del servidor y puede dejar cambios parciales. Además, `.jail @miembro` puede ejecutar setup antes de validar al objetivo si Jail está apagado o carece de recursos. Revisa el estado y los permisos antes de invocarlo; no se restauran roles inexistentes, administrados o que el bot no pueda gestionar.

**Advertencia adicional:**

La excepción para el owner no es simétrica: `.jail` permite ese objetivo cuando quien actúa es el owner del servidor o de Headless, pero el callback de `.unjail` aplica la regla común que bloquea al owner del servidor. Si ocurre, retirar el rol puede requerir una intervención manual autorizada.

**Nota:**

El prefijo puede variar por servidor; los ejemplos usan `.`. Los comandos slash registran Manage Roles como permiso predeterminado del usuario. Para comandos de prefijo, el grupo `.jail` aplica Manage Roles y Manage Channels; `.unjail` requiere Manage Roles. El bot también debe tener los permisos que necesite para las operaciones de roles o canales.

## Pasos

**1. Audita los permisos actuales**

Comprueba la jerarquía del bot y revisa los overwrites del rol Jail en todas las categorías y canales que puedan verse afectados. Define explícitamente qué roles de staff deben conservar acceso al canal Jail; el setup no les concede acceso de staff automáticamente.

**2. Prepara el sistema conscientemente**

Ejecuta `.jail setup` con Manage Roles y Manage Channels tanto para tu cuenta como para Headless. Verifica manualmente el canal, el rol y los overwrites; las fallas de sincronización pueden dejar cambios parciales.

**3. Prueba el ciclo completo**

Usa una cuenta de prueba de menor jerarquía, confirma acceso al canal correcto y luego ejecuta `unjail`. Comprueba qué roles se restauraron y revisa caso y logs.

## Detalles de comandos

> **Comandos registrados**
>
> El grupo de prefijo acepta `.prison` como alias; `.jail setup` también acepta `create`, `repair` y `on`, mientras que `.jail status` acepta `list` e `info`. `.unjail` tiene el alias de prefijo `.free`. Los únicos comandos slash de este flujo son `/jail` y `/unjail`; setup y status no tienen subcomandos slash.

> **Alcance del aislamiento**
>
> Headless no configura una liberación temporizada ni una apelación automática. El rol Jail no puede reaccionar ni crear hilos según el overwrite aplicado. Si hay permisos de canal que no se pudieron cambiar, valida el acceso efectivo antes de depender del aislamiento.

## Páginas relacionadas

* [Configuración de moderación](/docs/security/moderation.md)
* [Casos de moderación](/docs/moderation/cases.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.