AFK Warden

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

En esta página

Configuración

AFK Warden se configura en plugins/AFKWarden/config.yml, que el primer arranque crea con un comentario en cada clave. Los tiempos van en segundos. Editá el archivo y corré /afkwarden reload; no hace falta reiniciar.

Un valor inválido vuelve a su valor por defecto, solo para esa clave, y la consola nombra la clave, el valor que encontró y el que usa en su lugar. Si config.yml no es YAML válido al hacer /afkwarden reload, la consola lo avisa y se siguen usando los ajustes anteriores.

Un config.yml de una versión anterior recibe en el siguiente arranque los ajustes agregados desde entonces, con sus comentarios. Tus valores nunca se cambian.

Tiempos #

ClavePor defectoQué hace
afk-after300Segundos de inactividad antes de que un jugador quede marcado como AFK. Mínimo 10.
kick-after1200Segundos de inactividad antes del kick. Tiene que ser mayor que afk-after. 0 desactiva el kick y el aviso; la marca AFK sigue funcionando.
warn-before-kick60Cuántos segundos antes del kick se avisa al jugador. 0 significa sin aviso. Tiene que ser menor que kick-after.

Bajar kick-after nunca kickea a nadie en el acto: un jugador que ya pasó el valor nuevo recibe primero el aviso, y el kick llega no antes de warn-before-kick después (a lo sumo, un minuto).

Actividad #

ClavePor defectoQué hace
activity-sensitivity10.0Sensibilidad del control de actividad, mayor que 0 y hasta 180. Con valores más bajos cuentan movimientos más chicos. Dejá 10.0 salvo que soporte te pida cambiarlo.
count-chat-as-activitytrueEl chat mantiene activo a un jugador.
count-commands-as-activityfalseLos comandos mantienen activo a un jugador. Desactivado a propósito; el comentario en config.yml explica por qué.

Exenciones #

ClavePor defectoQué hace
exempt-gamemodes[SPECTATOR]Modos de juego en los que nadie queda marcado como AFK ni recibe avisos ni kicks.
exempt-worlds[]Mundos en los que nadie queda marcado como AFK ni recibe avisos ni kicks, por nombre, como [lobby, afk_world].

Los jugadores con el permiso afkwarden.bypass, y los rangos con bypass: true, también están exentos. Nadie más lo está, ni siquiera los operadores.

Anuncios y kicks #

ClavePor defectoQué hace
broadcast-afk-statustrueAvisar a todos cuando un jugador queda AFK y cuando vuelve.
use-titlestrueMostrar también un título en la pantalla del jugador para la marca AFK y el aviso.
commands-on-kick[]Comandos de consola que corren justo antes del kick. %player% se reemplaza por el nombre del jugador. Una línea que falla queda en el log y nunca frena el kick.
commands-on-kick:
  - "say %player% was kicked for being AFK"

Ajustes por rango #

Con LuckPerms instalado, la sección ranks les da ajustes propios a los grupos de LuckPerms. El archivo incluido trae este ejemplo comentado; para usarlo, sacá el # de adelante de las líneas, sin tocar la sangría:

ranks:
  vip:
    afk-after: 600
    kick-after: 2400
  staff:
    bypass: true
  • Las claves son nombres de grupos de LuckPerms. Cada rango acepta afk-after, kick-after, warn-before-kick y bypass; cualquier clave que no pongas usa el valor global. bypass: true significa que nunca queda marcado como AFK, nunca recibe un aviso y nunca recibe un kick.
  • Qué rango se aplica: entre los grupos de un jugador, directos o heredados, solo cuentan los que están en esta lista, y gana el de mayor peso en LuckPerms (lp group <name> setweight <n>; un grupo sin peso cuenta como 0). Si empatan, gana el que aparece primero. Un jugador sin ningún grupo de la lista recibe los valores globales.
  • A cada rango se le aplican las mismas reglas que a las claves globales. Un valor inválido vuelve al valor global de esa clave, y la consola nombra el rango, la clave y los dos valores.
  • Los cambios se aplican solos: los ascensos, los grupos temporales vencidos, los cambios de mundo y /afkwarden reload se toman al instante. /afkwarden status <player> muestra el rango que se aplica, y %afkwarden_rank% también.
  • Free aplica la primera entrada de la sección, en el orden del archivo (una entrada con bypass: true también cuenta), e ignora el resto: los jugadores cuyos rangos están solo entre las entradas ignoradas reciben los valores globales. La consola nombra las entradas ignoradas al arrancar y en cada recarga, y /afkwarden status y /afkwarden license status las muestran. Pro aplica todas las entradas. No se borra nada: con Pro, todas las entradas vuelven a aplicarse.
  • Sin LuckPerms, la sección se ignora, y una línea al arrancar lo avisa.

Staff que nunca debe recibir un kick

Dales el permiso afkwarden.bypass en vez de un rango con bypass: true: el permiso funciona en todos los planes, sea cual sea el orden de tus rangos.

EssentialsX #

ClavePor defectoQué hace
sync-with-essentialstruePasarle el estado AFK a EssentialsX cuando está instalado: el indicador AFK de la tab list, sleep-ignores-afk-players, disable-item-pickup-while-afk y %essentials_afk% siguen a AFK Warden.

Essentials tiene que dejar de decidir el AFK por su cuenta; si no, los dos plugins no coinciden. En plugins/Essentials/config.yml:

auto-afk: -1
auto-afk-timeout: -1        # en versiones viejas de EssentialsX se llama auto-afk-kick
cancel-afk-on-move: false
cancel-afk-on-interact: false
cancel-afk-on-fish: false   # no existe en versiones viejas de EssentialsX
cancel-afk-on-chat: true
broadcast-afk-message: false

Después corré ess reload en la consola.

  • cancel-afk-on-chat queda activado, así un jugador que escribió /afk a mano puede volver escribiendo en el chat. broadcast-afk-message: false evita un segundo anuncio de "volvió": AFK Warden hace el suyo.
  • AFK Warden nunca pisa un /afk manual: solo borra el estado AFK de Essentials que puso él mismo.
  • Cuando el plugin se desactiva, o una recarga apaga sync-with-essentials, se borra todo estado AFK de Essentials que haya puesto AFK Warden, así nadie queda trabado como AFK.
  • Son compatibles EssentialsX 2.18 y las versiones más nuevas. Sin EssentialsX no cambia nada, salvo que no hay indicador en la tab list.

Mensajes #

ClavePor defectoQué hace
languageenen o es: qué messages_<language>.yml usa el plugin.

Todos los textos en pantalla están en plugins/AFKWarden/messages_en.yml y messages_es.yml, en formato MiniMessage: colores con nombre y hexadecimales (<red>, <#ff8800>), degradados, negrita y cursiva, tanto en Spigot como en Paper.

afk-enter: "<prefix><yellow>You are now AFK."
kick-warning: "<prefix><red>You will be kicked for inactivity in <time>."
  • Poné un mensaje en "" para desactivarlo: no se envía nada, ni siquiera una línea vacía.
  • Una clave que borres vuelve al texto incluido.
  • Las etiquetas de click y de hover se aceptan pero no tienen efecto, y la pantalla de kick muestra los colores hexadecimales como el más cercano de los 16 colores estándar.
  • Cada archivo lista arriba los placeholders que acepta, como <player> y <time>.

Consola y actualizaciones #

ClavePor defectoQué hace
bannertrueMostrar el banner de AFK Warden en la consola cuando arranca el plugin. false muestra solo su última línea (versión, plan y sitio web).
update-checktruePreguntarle a Modrinth si hay una versión nueva poco después de arrancar y después una vez por día, y avisarlo en la consola y, cuando entran, al staff con afkwarden.admin. Nunca se descarga ni se instala nada. false desactiva el chequeo.

Licencia #

ClavePor defectoQué hace
license.key""Tu clave Pro. Vacía significa Free. afkwarden license activate <key> la guarda acá, sin tocar los comentarios.

La variable de entorno AW_LICENSE_KEY, si está definida, tiene prioridad sobre license.key (práctico en paneles de hosting). Mirá Licencias y pago.

Estadísticas de uso #

ClavePor defectoQué hace
telemetry.enabledtrueNos manda un pequeño reporte anónimo de uso alrededor de un minuto después de arrancar y después una vez por hora: versiones, cantidad de jugadores (solo números), cuántos rangos hay configurados y cuántos se aplican, si se usan LuckPerms, EssentialsX y PlaceholderAPI, el idioma y el plan de la licencia; nunca nombres de jugadores, UUID ni direcciones IP. false no manda nada, en Free y en Pro.

/afkwarden telemetry muestra los datos exactos del último reporte y su id de reporte. Qué guardamos y por cuánto tiempo: política de privacidad.

Archivos #

Todo lo que guarda AFK Warden está en plugins/AFKWarden/:

ArchivoQué guarda
config.ymlLos ajustes de esta página.
messages_en.yml, messages_es.ymlLos textos en pantalla.
install.propertiesIdentificadores aleatorios de esta instalación. No lo compartas.
license.jsonCon una clave de la tienda: el resultado del último control de licencia, sellado contra ediciones.

Recargar #

/afkwarden reload vuelve a leer config.yml y el archivo de mensajes y los aplica sin reiniciar. Los contadores de inactividad se conservan, así nadie arranca de cero, 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 alguno de los dos archivos no es YAML válido, el comando lo avisa y se siguen usando los ajustes y los mensajes anteriores.

Nunca uses el /reload del propio servidor. Para actualizar el plugin, reiniciá el servidor.