Skip to main content
La versión actual de la API de proveedores es 1. Los nombres de proveedor deben estar en minúsculas, tener como máximo 64 caracteres y contener solo letras, dígitos, _, . o -. Las prioridades deben ser números finitos entre -100000 y 100000.

Registrar un proveedor de servidor

domain es player, inventory, dispatch o actions. El registro debe hacerse desde un recurso externo. Devuelve true si tiene éxito o false más un motivo estable y legible cuando el descriptor es rechazado. Todo descriptor requiere:

Descriptor de jugador

kind puede ser success, error, warning o inform. Trata los tipos desconocidos como informativos.

Descriptor de inventario

AddItem debe devolver exactamente true tras aceptar la operación. Devuelve false si el inventario está lleno, el objeto es desconocido, los metadatos son inválidos o por cualquier otro rechazo.

Descriptor de dispatch

Traduce el kind y el payload neutrales a tu recurso de dispatch. Devuelve false solo cuando el reporte fue rechazado; nil cuenta como aceptado tras un callback correcto.

Descriptor de acciones

Las claves de acción deben empezar por una letra minúscula, contener solo letras minúsculas, dígitos y _, y tener como máximo 64 caracteres. RunAction debe devolver exactamente true tras completar o aceptar la acción; es opcional para un proveedor cuyo SupportedActions esté vacío. Valida source, la distancia a npcCoords, los permisos, los identificadores, las cantidades y todos los params en el servidor. El nombre de la acción no es una autorización. El mismo descriptor declara las observaciones del servidor que la integración puede reportar (consulta Observaciones del servidor):
  • Namespace coincide con ^[a-z][a-z0-9]{1,15}$ y es obligatorio en cuanto Observations no esté vacío. Prefija cada clave en el cable (myserver:item_given), de modo que una clave del servidor nunca coincida con un tipo de evento integrado.
  • Observations asigna hasta 32 claves (^[a-z][a-z0-9_]{0,31}$) a una definición con hasta 8 fields, nombrados como las claves y tipados como string, integer, number o boolean, y una template con al menos uno de los idiomas que ofrece el panel (se usa el idioma del NPC; si no, inglés; si no, el primero declarado). Cada línea tiene como máximo 400 caracteres sin caracteres de control, sus {placeholders} nombran campos declarados y no contiene otras llaves. Una plantilla también se dimensiona por su renderizado en el peor caso — cada aparición de un marcador con el valor más ancho de su campo (64 caracteres para un string, 21 para un number, 17 para un integer, 5 para un boolean) — que debe mantenerse dentro de 912 caracteres.
El recurso aplica todo esto en RegisterProvider: un descriptor que incumple una regla es rechazado con el motivo y no se registra nada.

Anular el registro de un proveedor de servidor

Solo el recurso propietario puede anular el registro de su proveedor. Detener el propietario realiza esta limpieza automáticamente.

Estado del servidor

El resultado contiene:
  • apiVersion y runtimeEpoch;
  • selected, un mapa compacto por dominio;
  • domains, incluyendo para cada uno su ajuste, estado, motivo, proveedor seleccionado y todos los candidatos registrados.
Los estados son selected, disabled, unavailable, ambiguous o degraded. Un fallo en un callback degrada el proveedor seleccionado; un callback correcto posterior limpia el estado de fallo.

Registrar un proveedor de interacción de cliente

Add y Remove son obligatorios. Progress es opcional. Add debe devolver exactamente true cuando el registro tiene éxito. Progress devuelve exactamente true al completarse y false si se cancela o falla. watchedResources enumera las dependencias cuyo inicio/parada debe provocar la reevaluación del proveedor.
El estado de cliente informa de apiVersion, runtimeEpoch, el ajuste, el estado, el motivo y el proveedor seleccionado.

Evento ready

El evento es local y se emite de forma independiente en el servidor y en el cliente tras cada inicio de Humalike. Vuelve a registrar los proveedores de ese lado cuando se dispare.

Siguiente