PLUGINv3.0.2-1.20.1-26.2 · updated 11 sept 2026

BileTools - Prueba Plugins Más Rápido

Sin Valoración
CREATED BYVolmitSoftware7 plugins

GITHUB  •  DOCUMENTATION  •  DISCORD

Resumen - lo que hace BileTools

BileTools observa tu directorio de plugins y gestiona los cambios en el ciclo de vida en tiempo de ejecución, de modo que una reconstrucción se aplique en el servidor en ejecución en lugar de requerir un reinicio.

  • Auto recarga en caliente. Recompila sobre un jar de plugin existente y BileTools detecta el cambio de contenido automáticamente.

  • Hot-drop. Coloca un nuevo jar en el directorio de plugins y se pone en cola para carga en tiempo de ejecución sin un reinicio completo.

  • Auto-descarga. Elimina un jar rastreado y su plugin se descarga.

  • Comandos de ciclo de vida. Cargar, descargar, recargar, instalar y desinstalar manualmente desde el árbol de comandos /bile.

  • Consciente de dependencias. Los plugins dependientes se descargan y recargan alrededor de un reemplazo en lugar de recargar un jar ciegamente.

  • Biblioteca de plugins local. Cada jar que BileTools ve se archiva por versión, y la misma carpeta es la que /bile install lee. La copia de seguridad y la reversión son la misma función.

  • Despliegue remoto. Envía cambios de jar seleccionados a otros servidores configurados a través de una transferencia autenticada, limitada en tamaño y verificada por SHA-256.

Detección, en resumen: un cambio de tamaño o de marca de tiempo solo activa el observador. Un SHA-256 del jar decide si algo realmente se recarga, por lo que un jar que tocaste pero no cambiaste se ignora.

BileTools es una herramienta de desarrollo. Manipula deliberadamente el estado del ciclo de vida del plugin en tiempo de ejecución. Eso es exactamente lo que hace que el ciclo de desarrollo sea rápido, y exactamente por qué pertenece a servidores de desarrollo y prueba. La recarga en caliente no es un sustituto para un reinicio limpio en un servidor en vivo.

Compatibilidad - entornos de ejecución y Java

Un jar cubre los seis entornos de ejecución, Minecraft 1.20.1 hasta la actual 26.x.

  • Paper se carga a través del PluginManager público del servidor.

  • Purpur mismo camino de carga y descarga de la familia Paper.

  • Leaf bifurcación de la familia Paper, tratada como Paper.

  • Folia programación regionalizada, BileTools declara soporte para folia.

  • Canvas bifurcación de Folia, mismas reglas regionalizadas.

  • Spigot se carga a través de plugin.yml; los jars que solo envían paper-plugin.yml son rechazados.

Java: Java 17 para Minecraft 1.20.1+, Java 25 para 26.x+. Coincide con lo que tu servidor ya requiere.

Folia y Canvas: la recarga en caliente en servidores regionalizados es inherentemente más frágil. Un plugin de terceros que no declare soporte para folia puede fallar al ser cargado en caliente.

Comandos y permisos

El comando raíz es \/biletools. Alias: \/bile, \/bi, \/b.

\/bile load <plugin>                    Cargar un jar de plugin desde el directorio de plugins
\/bile unload <plugin>                  Descargar un plugin instalado
\/bile reload <plugin>                  Recargar un plugin instalado
\/bile uninstall <plugin>               Eliminar un jar de plugin del directorio de plugins
\/bile install <plugin> [version=..]    Instalar un plugin desde la biblioteca de BileTools
\/bile library [plugin=..]              Listar plugins de la biblioteca, o versiones de un plugin

Un permiso cubre todo el árbol:

bile.use     Da acceso a BileTools     predeterminado: op

Los comandos manuales siempre omiten los filtros del observador. La autocompletación sugiere plugins instalados, plugins de la biblioteca y versiones almacenadas. Ejecutar solo abre un menú de ayuda paginado con hover y clic.

Los argumentos opcionales deben ser nombrados. Pasarlos posicionalmente falla con "argumento inesperado":

\/bile install MyPlugin                   funciona  (predeterminado a version=latest)
\/bile install MyPlugin version=1.4.2     funciona
\/bile install MyPlugin version=latest    funciona
\/bile install MyPlugin 1.4.2             FALLA
\/bile library                            funciona  (lista todo)
\/bile library plugin=MyPlugin            funciona
\/bile library MyPlugin                   FALLA

Configuración - configuración predeterminada completa config.yml

remote-deploy:
  slave:
    slave-enabled: false
    slave-port: 9876
    slave-payload: pickapassword
  master:
    master-enabled: false
    master-deploy-to:
    - yourserver.com:9876:password
    master-deploy-signatures:
    - MyPlugin
    - AnotherPlugin
  socket-timeout-ms: 15000
  max-transfer-bytes: 268435456
archive-plugins: true
watcher:
  idle-poll-ticks: 20
  active-poll-ticks: 5
  fingerprint-debounce-ticks: 8
  ignore:
  - LuckPerms
  - Vault
  - ProtocolLib
  - packetevents
  - WorldGuard
  - CoreProtect
  - spark
  only: []
  coalesce-window-ticks: 10
observability:
  log-timings: true
lifecycle:
  health-check: true

Lo que hace cada opción

  • watcher.ignore Nombres de plugins que se omitirán en la recarga, descarga y recarga automáticas. Los predeterminados son cosas que generalmente son peligrosas o inútiles para recargar automáticamente en una caja de desarrollo.

  • watcher.only Cuando esta lista no está vacía, solo estos plugins son gestionados automáticamente. Útil cuando estás desarrollando activamente uno o dos proyectos en un servidor ocupado.

  • watcher.active-poll-ticks / idle-poll-ticks Con qué frecuencia el observador escanea mientras llegan cambios, versus una vez que el directorio se ha estabilizado.

  • watcher.fingerprint-debounce-ticks Cuánto tiempo debe mantenerse estable la huella digital de un jar antes de que comience el trabajo del ciclo de vida. Esto es lo que detiene los jars a medio escribir de ser cargados.

  • watcher.coalesce-window-ticks Agrupa escrituras de jars cercanas en un flush de recarga ordenado por dependencias, de modo que una construcción de múltiples módulos no desencadene cinco recargas separadas.

  • archive-plugins Archiva cada jar de plugin en la carpeta de la biblioteca antes de que sea reemplazado.

  • lifecycle.health-check Después de una carga o recarga, verifica que el plugin esté realmente registrado y habilitado. Una operación fallida marca el plugin como sucio y pausa las recargas automáticas para él.

  • observability.log-timings Registra los tiempos por fase (descarga, dependientes, carga, salud) para cada operación.

Biblioteca de plugins y reversión

plugins/BileTools/library/<PluginName>/<version>.jar

Con archive-plugins activado, cada jar de plugin que BileTools ve se copia aquí antes de ser reemplazado. Eso significa que la biblioteca también funciona como un historial de reversión, \/bile library lista lo que tienes, y \/bile install <plugin> version=<version> coloca cualquiera de ellos de vuelta en el servidor en ejecución.

Despliegue remoto

Opcional. Permite a un servidor maestro enviar cambios de jar seleccionados a uno o más servidores esclavos.

  • En cada servidor receptor: establece remote-deploy.slave.slave-enabled: true, elige un puerto y establece slave-payload a una contraseña compartida.

  • En el servidor emisor: establece remote-deploy.master.master-enabled: true, lista cada objetivo en master-deploy-to en la forma a continuación, y lista qué plugins enviar en master-deploy-signatures.

master-deploy-to:
- host:port:password

Las transferencias llegan en un archivo temporal .part y solo se promueven después de que la contraseña, el nombre del archivo, el tamaño de la transferencia y SHA-256 verifiquen. Los nombres de archivo son sanitizados y cualquier ruta que escape la carpeta de plugins es rechazada. Los predeterminados son un límite de 256 MB y un tiempo de espera de socket de 15 segundos.

Idiomas - todos los 17 códigos de idioma

El inglés se selecciona por defecto. Para cambiar, establece locale en plugins/BileTools/language.yml:

locale: en_US

de_DE    Alemán (Alemania)
es_ES    Español (España)
fi_FI    Finés (Finlandia)
fr_FR    Francés (Francia)
he_IL    Hebreo (Israel)
it_IT    Italiano (Italia)
ja-JP    Japonés (Japón)
ko_KR    Coreano (Corea del Sur)
lt_LT    Lituano (Lituania)
nl_NL    Neerlandés (Países Bajos)
pl_PL    Polaco (Polonia)
pt_PT    Portugués (Portugal)
ru_RU    Ruso (Rusia)
tr_TR    Turco (Turquía)
vi_VI    Vietnamita (Vietnam)
zh_CN    Chino (Simplificado)
zh_TW    Chino (Tradicional)

También puedes sobrescribir líneas individuales sin tocar los paquetes. Cualquier cosa que agregues bajo una sección de messages: en language.yml gana; todo lo que dejes fuera vuelve al idioma seleccionado, luego al inglés. El archivo se carga en caliente al guardar.

Cómo se ejecuta realmente una recarga

recarga en caliente, recarga, instalación, desinstalación, despliegue remoto: pasa por una cola serializada con claves de deduplicación, en un hilo de operaciones de plugins dedicado. Las mutaciones del ciclo de vida siempre se ejecutan en el hilo global o principal.

detectar -> estabilizar -> huella digital -> cola -> descargar -> cargar -> dependientes -> verificación de salud

Los plugins que implementan el contrato ReloadAware de VolmLib reciben un callback de HOT_RELOAD o HOT_UNLOAD antes de que sus tareas sean canceladas y los oyentes desmontados, para que puedan drenar el trabajo en curso mientras su programador aún está vivo.

Descargar limpia el plugin del gráfico de comandos en vivo, servicios, canales de mensajería y tablas de búsqueda antes de cerrar su cargador de clases, que es por qué los comandos y la autocompletación vuelven correctos en lugar de medio conectados.

Las esperas del ciclo de vida llevan un tiempo de espera explícito. Una operación atascada se presenta como un fallo y marca el plugin como sucio en lugar de bloquear la cola. Activa observability.log-timings para ver los tiempos por fase para cada operación.

Límites conocidos de la recarga en caliente

No todos los plugins pueden ser recargados en caliente de manera limpia, y BileTools no finge lo contrario. Cosas que generalmente no sobreviven a una recarga de clase:

  • Estado estático campos mantenidos a través de una recarga de clase.

  • Hilos en segundo plano trabajo iniciado fuera del programador del plugin.

  • Recursos nativos cualquier cosa vinculada fuera de la JVM.

  • Conexiones externas sockets y grupos con su propia vida útil.

  • Internos específicos del plugin cachés y registros que poseen otros plugins.

Mantén plugins críticos u oscuros en la lista de ignorados, activa los registros de tiempo mientras iteras, y cuando el estado no pueda ser reconstruido de manera segura, reinicia el servidor.

BileTools - Prueba Plugins Más RápidoFREE

¿Listo para crear algo increíble?

Únete a la comunidad de MCModels y comienza a construir tus proyectos soñados hoy.