AFK Warden

Marca, avisa y kickea a los jugadores AFK en servidores Paper y Spigot.

En esta página

Comandos y permisos

El comando principal es /afkwarden, y /afkw es su alias corto: funciona en todos los comandos de esta página (/afkw list es lo mismo que /afkwarden list). Si otro plugin registra el mismo nombre, escribí /afkwarden:afkwarden o /afkwarden:afkw. En el juego, escribí los comandos con barra (/afkwarden list); en la consola del servidor, sin ella (afkwarden list).

No hay comandos para jugadores: EssentialsX ya trae /afk, y AFK Warden nunca lo pisa.

Comandos de staff #

Todos los subcomandos necesitan afkwarden.admin y también funcionan desde la consola. /afkwarden a secas muestra la línea de uso. El autocompletado con Tab ofrece los subcomandos, los jugadores conectados para status y los subcomandos de license; nunca sugiere una clave.

ComandoQué hace
/afkwarden status [player]Muestra el estado de un jugador: cuánto tiempo lleva inactivo, si está marcado como AFK, qué entrada de la sección ranks se le aplica (o los ajustes globales) y, si está exento, por qué: el permiso afkwarden.bypass, un rango con bypass: true, su modo de juego o su mundo. En Free con más de una entrada en ranks, también dice qué entrada se aplica y cuáles se ignoran. Sin jugador muestra el tuyo; desde la consola, el jugador es obligatorio.
/afkwarden listLista los jugadores marcados como AFK en este momento, con cuánto tiempo lleva inactivo cada uno.
/afkwarden reloadRecarga config.yml y el archivo de mensajes sin reiniciar. Los contadores de inactividad se conservan y el rango de cada jugador se vuelve a resolver. También se toma un license.key cambiado (primero se libera la activación de la clave anterior), y telemetry.enabled y update-check tienen efecto al instante. Si un archivo no es YAML válido, el comando lo avisa y se siguen usando los valores anteriores.
/afkwarden license [status]Muestra la licencia: el plan (Free, Pro o Pro Lifetime) y su estado (sin clave, válida, gracia sin conexión, rechazada o todavía sin verificar), la clave enmascarada y su tipo, el vencimiento, el último control y el último exitoso, el motivo de un rechazo, el id de instalación de este servidor (Install: y 12 caracteres hexadecimales) y cuántas entradas de ranks están vigentes.
/afkwarden license activate <key>Verifica la clave y, si es aceptada, la convierte en la licencia de este servidor y la guarda en license.key de config.yml (sin tocar los comentarios). La respuesta llega un momento después. Una clave rechazada no cambia nada, y una clave que ya estaba activa acá se libera solo después de que la nueva es aceptada. Mirá Licencias.
/afkwarden license deactivateLibera la activación de este servidor para que la clave se pueda usar en otro servidor, saca license.key de config.yml y vuelve a Free.
/afkwarden telemetryMuestra si el reporte anónimo de uso está activado, adónde va, el id aleatorio del reporte (mandánoslo para que borremos los datos de este servidor), cuándo se envió el último reporte y cómo salió, cuándo toca el próximo, y los datos exactos del último reporte.
afkwarden list
afkwarden status Alex
afkwarden license activate AWPRO-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
afkwarden license
afkwarden telemetry
/afkw status

Bajar kick-after con una recarga no kickea a nadie en el acto: los jugadores que ya pasaron el valor nuevo reciben primero el aviso, y el kick llega no antes de warn-before-kick después. Apagar sync-with-essentials borra todo estado AFK de EssentialsX que AFK Warden haya puesto.

Las claves de licencia quedan fuera del log #

Las claves se enmascaran en cada línea del log. Igual, preferí la consola para license activate: desde el chat, el servidor escribe cada comando en su log antes de que lo vea cualquier plugin. AFK Warden saca esa línea del log cuando el servidor registra con Log4j, como hacen Spigot y Paper, y avisa al arrancar cuando no puede.

Variable de entorno #

VariableQué hace
AW_LICENSE_KEYLa clave de licencia, en lugar de license.key en config.yml; si está definida, tiene prioridad. En ese caso license activate usa la clave solo durante esta ejecución y deja config.yml como está, y license deactivate ignora la variable hasta el próximo reinicio.

Permisos #

En la columna Por defecto, "op" significa que lo tienen los operadores y "nadie", que nadie lo tiene hasta que se lo des.

PermisoQué permitePor defecto
afkwarden.adminTodos los subcomandos de /afkwarden (status, list, reload, license, telemetry), y el aviso de actualización en el chat al entrar.op
afkwarden.bypassNunca queda marcado como AFK, nunca recibe un aviso, nunca recibe un kick, en todos los planes. Al jugador se lo sigue rastreando, así que /afkwarden status funciona con él.nadie

Por defecto nadie está exento, ni siquiera los operadores. essentials.afk.kickexempt no se aplica a AFK Warden, y un rango con bypass: true en la sección ranks de config.yml se comporta exactamente igual que afkwarden.bypass.

Con LuckPerms #

Desde la consola:

lp group staff permission set afkwarden.bypass true
lp group admin permission set afkwarden.admin true

Cuando un jugador pertenece a varios grupos de la lista de ranks, se aplica el de mayor peso en LuckPerms. Para ver o definir el peso de un grupo:

lp group vip info
lp group vip setweight 10

PlaceholderAPI #

Cuando PlaceholderAPI está instalado, el plugin registra por su cuenta la expansión afkwarden, y esta sobrevive a /papi reload.

PlaceholderValorEjemplo
%afkwarden_afk%true cuando el jugador está marcado como AFK; si no, false.false
%afkwarden_idle_seconds%Segundos desde la última vez que el jugador estuvo activo.270
%afkwarden_afk_count%Cuántos jugadores están marcados como AFK en este momento (no necesita jugador).3
%afkwarden_rank%La entrada de ranks que se le aplica al jugador, o none.vip

Para un jugador que no está conectado, los placeholders por jugador quedan vacíos. Para revisar un valor desde la consola, usá el propio comando de PlaceholderAPI:

papi parse Alex %afkwarden_idle_seconds%