Pocket Tebex

Pocket Tebex

Código fuente
por procatin0
No disponible
UtilidadesAdministraciónHerramientaspocketmine
405visitas
5descargas
5.0(1)

PocketTebex

Este plugin fue generado con asistencia de inteligencia artificial. Se distribuye bajo la licencia MIT y es de uso completamente libre. No se aceptan donaciones — el único propósito es contribuir a la comunidad de PocketMine-MP y facilitar la integración con Tebex para todos.

Tebex webstore integration plugin for PocketMine-MP (API 5.x).


Requisitos

  • PocketMine-MP 5.0.0 o superior
  • PHP 8.1+ con las extensiones curl, igbinary, pmmpthread
  • Una cuenta activa en Tebex

Instalación

  1. Descarga y descomprime el plugin en la carpeta /plugins de tu servidor.
  2. Reinicia el servidor.
  3. Configura tu secret key (ver abajo).
  4. Listo — el plugin comenzará a procesar comandos automáticamente.

Configuración inicial

Obtener tu Secret Key

  1. Ve a https://creator.tebex.io/game-servers
  2. Haz clic en Edit en el servidor que quieres conectar
  3. Copia el Secret Key que aparece ahí

Método 1 — Desde la consola del servidor

El sistema de Tebex te dará un comando listo para usar. Ejecútalo directamente en la consola del servidor:

tebex secret <tu-secret-key>

Ejemplo:

tebex secret abcdef1234567890abcdef1234567890

Método 2 — Desde el archivo de configuración

Abre plugin_data/PocketTebex/config.yml y establece tu secret:

secret: "tu-secret-key-aqui"

Reinicia el servidor. El plugin validará la clave automáticamente al arrancar.

Comandos

Todos los comandos requieren el permiso pockettebex.admin (por defecto: OP).

ComandoAliasDescripción
/tebex secret <key>—Establece o cambia la secret key
/tebex info—Muestra información de la cuenta y servidor
/tebex refresh/tebex forcecheckFuerza la verificación de comandos pendientes
/tebex sendlink <jugador> <package_id>—Envía un link de compra a un jugador
/tebex ban <usuario> [razón]—Banea a un jugador de la tienda Tebex
/tebex lookup <usuario>—Busca el historial de compras de un jugador
/tebex dropall—Elimina todos los comandos pendientes de la cola

Configuración completa

Archivo: plugin_data/PocketTebex/config.yml

# Tu secret key de Tebex (https://creator.tebex.io/game-servers)
secret: ""

# Número de hilos worker para llamadas a la API (recomendado: 1-4)
worker-limit: 2

# Sub-comandos a deshabilitar en producción
disabled-sub-commands: []

# Permisos adicionales para el ejecutor de comandos de Tebex
# Permite que los comandos ejecutados por Tebex bypassen permisos de otros plugins
# permissions:
#   - myplugin.vip.give
#   - myplugin.command.addtags
permissions: []

Cómo funciona

Comandos Offline

Se ejecutan automáticamente cada 60 segundos. No requieren que el jugador esté conectado. Tebex los envía y el plugin los ejecuta inmediatamente.

Comandos Online

Se ejecutan solo cuando el jugador objetivo está conectado. El plugin:

  1. Detecta cuando un jugador se conecta
  2. Consulta la API de Tebex por comandos pendientes para ese jugador
  3. Ejecuta los comandos si se cumplen las condiciones (delay, slots de inventario)
  4. Respeta estrictamente el intervalo next_check de la API

Sistema de hilos

Las llamadas a la API se ejecutan en hilos separados para no bloquear el servidor principal. Usa un pool de workers con balanceo de carga.

Eventos para desarrolladores

El plugin emite eventos cancelables que otros plugins pueden escuchar:

  • ExecuteOfflineCommandEvent — Se dispara antes de ejecutar un comando offline
  • ExecuteOnlineCommandEvent — Se dispara antes de ejecutar un comando online

Ambos eventos permiten:

  • Cancelar la ejecución del comando
  • Modificar los placeholders ({name}, {id}, {player}, {username})

Placeholders soportados

PlaceholderComandos OfflineComandos Online
{name}Nombre del jugador (entrecomillado)Nombre del jugador en el servidor
{player}Igual que {name}Igual que {name}
{username}Igual que {name}Nombre del jugador en Tebex
{id}UUID del jugadorXUID (Bedrock online) o nombre

Integración para desarrolladores

use pockettebex\event\ExecuteOnlineCommandEvent;

// Cancelar un comando específico
$this->getServer()->getPluginManager()->registerEvents(new class implements \pocketmine\event\Listener {

    /**
     * @priority NORMAL
     */
    public function onOnlineCommand(ExecuteOnlineCommandEvent $event) : void {
        if(str_contains($event->getFinalCommand(), "op ")) {
            $event->cancel(); // Bloquea comandos que dan OP
        }
    }
}, $plugin);

Notas importantes

  • El plugin respeta estrictamente el next_check de Tebex. No hacerlo resultaría en revocación de la secret key o ban de IP.
  • Límite de la API: 500 requests por 5 minutos.
  • /tebex lookup requiere un plan Ultimate o superior en Tebex.
  • El plugin no tiene dependencias de virion — es completamente standalone.

Licencia

MIT License. Uso libre, sin garantías.