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:
- Proyección del Bounding Box: Calcula la caja de colisión completa del jugador en la posición final:
- Ancho:
X - 0.3hastaX + 0.3 - Profundidad:
Z - 0.3hastaZ + 0.3 - Altura:
YhastaY + 1.8(altura de 2 bloques del jugador)
- Ancho:
- Detección de Bloques Sólidos: Examina cada bloque dentro de ese volumen de colisión.
- 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:
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