Docs

Motor Anti-Glitch (RayTracing)

El "pearl glitching" ha sido un problema histórico en servidores competitivos: jugadores que aprovechan bordes de colisión en vallas, losas, puertas abiertas y telarañas para traspasar murallas, colarse en bases enemigas o asfixiarse en bloques.

AerosPearls soluciona esto con un motor matemático de RayTracing por cajas AABB (Axis-Aligned Bounding Box).

Cómo funciona el Motor Anti-Glitch

Cuando una perla impacta y lanza el evento de teletransporte (PlayerTeleportEvent), AerosPearls intercepta las coordenadas antes de que el jugador se mueva:

  1. Proyección del Bounding Box: Calcula la caja de colisión completa del jugador en la posición final:
    • Ancho: X - 0.3 hasta X + 0.3
    • Profundidad: Z - 0.3 hasta Z + 0.3
    • Altura: Y hasta Y + 1.8 (altura de 2 bloques del jugador)
  2. Detección de Bloques Sólidos: Examina cada bloque dentro de ese volumen de colisión.
  3. Cancelación y Reembolso: Si cualquier parte de la caja de colisión colisiona con un bloque sólido no permitido:
    • El teletransporte se cancela inmediatamente.
    • El jugador recibe un mensaje explicativo configurable.
    • La perla se reembolsa automáticamente al inventario del jugador.
    • El tiempo de enfriamiento (cooldown) se reinicia.

Integración con WorldGuard

AerosPearls se conecta dinámicamente con WorldGuard mediante reflexión, ofreciendo compatibilidad transparente tanto con WorldGuard v6 (1.8.8–1.12) como con WorldGuard v7 (1.13+).

Si un jugador intenta lanzar una perla hacia una zona donde la bandera PVP está en DENY o un spawn protegido:

  • El teletransporte se cancela.
  • La perla se le reembolsa.
  • Se previene que los jugadores eludan las barreras de protección de la región.

Configuración

En config.yml:

yaml
options:
  return-pearl-on-blocked: true
  pass-through-if-block-above: true
  disable-pearl-inside-blocks: true
  refund-on-void: true
  cancel-pearl-on-death: true
Anti-Glitch Engine (RayTracing) | AerosPearls Docs