Saltar al contenido principal

Persistable

Persistable gestiona el almacenamiento de datos no estructurados asociados a un elemento de la escena.

static use(name: string): Persistable

Devuelve una instancia de Persistable conectada a un objeto específico de la escena para operaciones de persistencia.

Parámetros:

  • name: El nombre del objeto a asociar con este almacenamiento persistente.

Ejemplo:

    const store = Persistable.use('player');

inspect(): Promise<any>

Devuelve el estado actual de todos los datos persistidos.

Retorna:

  • Una promesa que se resuelve con los datos del objeto, o null en caso de fallo.

Ejemplo:

    const data = await store.inspect();
console.log(data);

get(key: string, defaultValue?: any): Promise<any>

Obtiene un valor del almacenamiento persistente por su clave.

Parámetros:

  • key: El nombre de la propiedad a recuperar.
  • defaultValue (opcional): El valor por defecto si no se encuentra la propiedad o ocurre un error.

Ejemplo:

    const score = await store.get('score', 0);

set(key: string, value: any): Promise<any>

Almacena un valor bajo la clave dada, reemplazando cualquier valor existente.

Parámetros:

  • key: El nombre de la propiedad a establecer.
  • value: El valor a almacenar.

Retorna:

  • Una promesa que se resuelve con los datos actualizados del objeto, o null en caso de fallo.

Ejemplo:

    await store.set('score', 100);

delete(key: string): Promise<any>

Elimina un par clave–valor específico del almacenamiento persistente.

Parámetros:

  • key: El nombre de la propiedad a eliminar.

Ejemplo:

    await store.delete('score');

clear(): Promise<boolean>

Elimina todos los datos almacenados asociados al objeto conectado, restableciéndolo a un objeto vacío.

Retorna:

  • Una promesa que se resuelve en true en caso de éxito, false en caso de fallo.

Ejemplo:

    await store.clear();

inc(key: string, value: number): Promise<any>

Incrementa un valor numérico almacenado en la cantidad especificada.

Parámetros:

  • key: La clave del valor numérico a incrementar.
  • value: La cantidad a sumar.

Ejemplo:

    await store.inc('score', 10);

mult(key: string, value: number): Promise<any>

Multiplica un valor numérico almacenado por el factor dado.

Parámetros:

  • key: La clave del valor numérico a multiplicar.
  • value: El multiplicador.

Ejemplo:

    await store.mult('score', 2);

arrPush(key: string, item: any): Promise<any>

Agrega un elemento al final de un arreglo en el almacenamiento persistente.

Parámetros:

  • key: El nombre de la propiedad del arreglo.
  • item: El elemento a añadir.

Ejemplo:

    await store.arrPush('items', 'sword');

arrInsertAt(key: string, index: number, item: any): Promise<any>

Inserta un elemento en una posición específica de un arreglo almacenado.

Parámetros:

  • key: El nombre de la propiedad del arreglo.
  • index: La posición en la que insertar el elemento.
  • item: El elemento a insertar.

Ejemplo:

    await store.arrInsertAt('items', 1, 'shield');

arrPull(key: string, value: any): Promise<any>

Elimina todas las ocurrencias de un valor en el arreglo del almacenamiento persistente.

Parámetros:

  • key: El nombre de la propiedad del arreglo.
  • value: El valor a eliminar del arreglo.

Ejemplo:

    await store.arrPull('items', 'sword');

arrPullAt(key: string, index: number): Promise<any>

Elimina un elemento en un índice específico de un arreglo almacenado.

Parámetros:

  • key: El nombre de la propiedad del arreglo.
  • index: La posición del elemento a eliminar.

Ejemplo:

    await store.arrPullAt('items', 0);

lock(timeoutInMilliseconds: number): Promise<boolean>

Bloquea el objeto persistente para evitar otras operaciones durante una duración determinada.

Parámetros:

  • timeoutInMilliseconds: Duración en milisegundos para mantener el bloqueo.

Ejemplo:

    await store.lock(5000);

unlock(): Promise<boolean>

Desbloquea manualmente el objeto persistente, habilitando más operaciones.

Ejemplo:

    await store.unlock();

ttl(timestampInMilliseconds: number): Promise<boolean>

Establece un tiempo de vida (TTL) para los datos almacenados.

Parámetros:

  • timestampInMilliseconds: Una marca de tiempo Unix (en milisegundos) después de la cual los datos deben expirar.

Ejemplo:

    await store.ttl(Date.now() + 3600000); // expira en 1 hora

drop(): Promise<boolean>

Elimina completamente el objeto persistente del almacenamiento; todos los datos se perderán de forma irreversible.

Ejemplo:

    await store.drop();