Skip to content
404-Shad0w edited this page Jun 22, 2025 · 1 revision

RollbackAPI Wiki

Índice

  1. Introducción
  2. Requisitos
  3. Instalación
  4. Registro de la API
  5. Eventos principales
  6. Uso de RollbackStorage
  7. Ejemplos prácticos
  8. Preguntas frecuentes (FAQ)
  9. Contribuciones
  10. Licencia

Introducción

RollbackAPI es una biblioteca para desarrolladores de plugins PocketMine-MP que necesitan gestionar de forma eficiente eventos relacionados con el rollback de objetos e inventarios tras la muerte de un jugador.

La API permite capturar eventos críticos, almacenar datos importantes, y ofrecer un sistema estandarizado para consultarlos o restaurarlos.


Requisitos

  • PHP 8.1 o superior
  • PocketMine-MP 5.x
  • Conocimientos básicos de programación en PHP y plugins PocketMine.

Instalación

  1. Clona o descarga el repositorio de RollbackAPI.
  2. Copia la carpeta RollbackAPI dentro del directorio src/ de tu plugin.
  3. Importa y registra la API en el método onEnable() de tu plugin:
use RollbackAPI\Register;

public function onEnable(): void {
    if (!Register::isRegister()) {
        Register::register();
    }
}

Registro de la API

Para que RollbackAPI funcione correctamente, debes registrar la API con:

Register::register();

Este registro se encarga de iniciar el listener principal para el manejo de eventos.


Eventos principales

RollbackEvent

  • Evento personalizado que se dispara internamente cuando un jugador muere (PlayerDeathEvent).

  • Contiene la información de:

    • Jugador (Player)
    • Ítems perdidos (array)
    • Fecha y hora del evento
    • ID único del rollback (int)

Puedes escuchar este evento en tu plugin para reaccionar o modificar el comportamiento:

use RollbackAPI\events\RollbackEvent;
use pocketmine\event\Listener;
use pocketmine\event\EventPriority;
use pocketmine\event\player\PlayerDeathEvent;

class YourListener implements Listener {
    public function onRollback(RollbackEvent $event): void {
        $player = $event->getPlayer();
        $items = $event->getItems();
        $player->sendMessage("Tus ítems fueron guardados para rollback.");
    }
}

Uso de RollbackStorage

RollbackStorage es la clase responsable del manejo persistente de datos.

Guardar datos

Automático al morir el jugador, pero también disponible para guardar manualmente.

Consultar datos

use RollbackAPI\storages\RollbackStorage;

$data = RollbackStorage::getRollbackData("PlayerName");

if ($data !== null) {
    // Procesar $data['items'], $data['date'], $data['id']
}

Eliminar datos

RollbackStorage::removeRollbackData("PlayerName");

Ejemplos prácticos

Escuchar evento de rollback para notificar jugador

use RollbackAPI\events\RollbackEvent;
use pocketmine\event\Listener;

class MyPluginListener implements Listener {
    public function onRollback(RollbackEvent $event): void {
        $player = $event->getPlayer();
        $player->sendMessage("¡Rollback registrado para ti!");
    }
}

Consultar datos guardados para un jugador

use RollbackAPI\storages\RollbackStorage;

$rollbackData = RollbackStorage::getRollbackData("JugadorEjemplo");

if ($rollbackData !== null) {
    // Por ejemplo, obtener ítems y hacer algo con ellos
    $items = $rollbackData['items'];
}

Preguntas frecuentes (FAQ)

Q: ¿Puedo usar esta API sin registrar Register::register()? A: No. El registro es obligatorio para que el listener principal se active y los eventos funcionen.

Q: ¿Dónde se guardan los datos? A: En un archivo JSON llamado rollback.json dentro de la carpeta de datos de tu plugin.

Q: ¿Puedo modificar el archivo JSON directamente? A: Se recomienda usar los métodos de RollbackStorage para evitar corrupción.


Contribuciones

¡Las contribuciones son bienvenidas! Puedes abrir issues, enviar pull requests o sugerir mejoras vía GitHub.


Licencia

RollbackAPI está bajo la licencia MIT, libre para usar y modificar.