P_Randomtp
PluginMIT

P_Randomtp

Plugin de Random Teleport RTP otimizado Optimized Random Teleport RTP plugin

158
Downloads
0
Followers
8 months ago
Updated
📦
1
Versions

📖About P_Randomtp

🌍 P_Randomtp

Plugin de Random Teleport (RTP) otimizado para servidores Paper/Spigot 1.21+.
Permite que jogadores se teleportem para locais aleatórios seguros em um mundo, evitando lag e falhas típicas de plugins de RTP.

✨ Recursos

  • 🔄 Teleporte Aleatório Seguro – evita líquidos, blocos perigosos e tetos do Nether.
  • 🧭 Raio adaptativo – expande automaticamente a área de busca se não encontrar local válido.
  • Busca fatiada por tick – executa tentativas de forma distribuída, sem travar o servidor.
  • 📦 Carregamento assíncrono de chunks – garante RTP rápido mesmo em distâncias grandes.
  • 🛡️ Integração com WorldGuard (opcional) – respeita regiões protegidas.
  • 💰 Integração com Vault (opcional) – cobra valores customizados por mundo.
  • Warmup, cooldown e tiers por permissão – configurações flexíveis para balancear o uso.
  • 🌐 Multi-idioma (pt_br, en_us) – mensagens personalizadas por idioma ou forçadas no config.yml.

📥 Instalação

  1. Baixe o arquivo .jar compilado do plugin.
  2. Coloque em plugins/ no seu servidor Paper 1.21+.
  3. Reinicie o servidor para gerar os arquivos de configuração.
  4. Edite config.yml conforme necessário.
  5. (Opcional) Instale Vault para cobrar por RTP e WorldGuard para respeitar proteções.

⚙️ Configuração

O arquivo config.yml possui várias opções.
Exemplo de configuração otimizada (trecho):

settings:
  cooldown-seconds: 60
  warmup-seconds: 3
  per-tick-attempts: 6
  loaded-chunks-only: false
  allow-chunk-load: true
  async-chunk-loads-parallel: 8
  max-attempts: 120
  adaptive-radius:
    enabled: true
    step-percent: 25
    max-multiplier: 3.0
Permissão Descrição Default
prandomtp.use Permite usar /rtp ✅ todos
prandomtp.bypass Ignora cooldown ❌ apenas OP
prandomtp.free Usa RTP sem custo (Vault) ❌ apenas OP
prandomtp.world.* Permite selecionar qualquer mundo com /rtp ❌ apenas OP
prandomtp.admin Acesso ao /rtp reload ❌ apenas OP
prandomtp.tier.vip Tier customizado (cooldown menor, +raio) ❌ apenas VIP
prandomtp.tier.legend Tier customizado (cooldown muito menor, +raio) ❌ apenas Legend
Comando Uso Descrição
/rtp /rtp Teleporta para um local aleatório no mundo atual
/rtp <mundo> /rtp world_nether Teleporta para outro mundo (se permitido)
/rtp reload /rtp reload Recarrega a configuração e mensagens

🧩 Integrações

  • Vault – cobra valor configurado por mundo (economy.cost.per-world).

  • WorldGuard – impede teleporte em áreas protegidas.

  • bStats – envia métricas anônimas (opcional).

🔌 API Pública (para outros plugins)

  • Interface disponível via ServicesManager:

  • RtpService service = Bukkit.getServicesManager().load(RtpService.class);

  • // Encontrar um local seguro
    Location safe = service.findSafeLocation(player, world);

  • // Solicitar RTP completo (como se fosse /rtp)
    service.requestRtp(player, world);

  • Eventos disponíveis (RtpEvents):

  • WarmupStartEvent

  • WarmupCancelEvent

  • SuccessEvent

  • FailEvent

🚀 Otimização

  • Use allow-chunk-load: true e async-chunk-loads-parallel ajustado conforme o hardware.

  • Ajuste per-tick-attempts (4–8 é ideal).

  • Use adaptive-radius para reduzir falhas em seeds com muitos oceanos.

  • Se for servidor com muito player simultâneo, limite RTPs concorrentes (semáforo global).

❓ FAQ

❓ - O RTP falha em mundos com muito oceano, e agora?

Ative adaptive-radius e aumente max-attempts para permitir expandir além dos oceanos.

❓ - Dá lag quando o jogador usa RTP de 2000 blocos.

Certifique-se de estar no Paper 1.21+ e habilite allow-chunk-load: true. O carregamento é assíncrono, não trava o tick.

❓ - Como adicionar mais idiomas?

Crie arquivos em plugins/P_Randomtp/idiomas/ com o código da língua, ex.: es_es.yml.

❓ - Posso desativar RTP em mundos específicos?

Sim, configure worlds..allow: false no config.yml.

📊 bStats

👨‍💻 Autor

  • Desenvolvido por Pedro. Sugestões, bugs ou PRs são bem-vindos!

🌍 P_Randomtp

An optimized Random Teleport (RTP) plugin for Paper/Spigot 1.21+ servers.
Allows players to safely teleport to random locations in a world, avoiding lag and common RTP plugin issues.


✨ Features

  • 🔄 Safe Random Teleport – avoids liquids, dangerous blocks, and Nether ceilings.
  • 🧭 Adaptive radius – automatically expands the search area if no valid spot is found.
  • Per-tick sliced search – spreads attempts across ticks to avoid server freezes.
  • 📦 Asynchronous chunk loading – ensures fast RTP even at large distances.
  • 🛡️ WorldGuard integration (optional) – respects protected regions.
  • 💰 Vault integration (optional) – charge custom prices per world.
  • Warmup, cooldown, and permission tiers – flexible settings to balance usage.
  • 🌐 Multi-language (pt_br, en_us) – customizable messages per language or forced in config.yml.

📥 Installation

  1. Download the compiled .jar file of the plugin.
  2. Place it inside the plugins/ folder of your Paper 1.21+ server.
  3. Restart the server to generate the configuration files.
  4. Edit config.yml as needed.
  5. (Optional) Install Vault to charge for RTP and WorldGuard to respect protections.

⚙️ Configuration

The config.yml file contains several options.
Example of an optimized setup (snippet):

settings:
  cooldown-seconds: 60
  warmup-seconds: 3
  per-tick-attempts: 6
  loaded-chunks-only: false
  allow-chunk-load: true
  async-chunk-loads-parallel: 8
  max-attempts: 120
  adaptive-radius:
    enabled: true
    step-percent: 25
    max-multiplier: 3.0

🔑 Permissions

Permission Description Default
prandomtp.use Allows using /rtp ✅ everyone
prandomtp.bypass Ignores cooldown ❌ OP only
prandomtp.free RTP without cost (Vault) ❌ OP only
prandomtp.world.* Allows teleporting to any world with /rtp ❌ OP only
prandomtp.admin Access to /rtp reload ❌ OP only
prandomtp.tier.vip Custom tier (shorter cooldown, larger radius) ❌ VIP only
prandomtp.tier.legend Custom tier (much shorter cooldown, big radius) ❌ Legend

⌨️ Commands

Command Usage Description
/rtp /rtp Teleports to a random location in the current world
/rtp <world> /rtp world_nether Teleports to another world (if allowed)
/rtp reload /rtp reload Reloads configuration and messages

🧩 Integrations

  • Vault – charges configured cost per world (economy.cost.per-world).
  • WorldGuard – prevents teleportation into protected regions.
  • bStats – sends anonymous metrics (optional).

🔌 Public API (for other plugins)

Available through ServicesManager:

RtpService service = Bukkit.getServicesManager().load(RtpService.class);

// Find a safe location
Location safe = service.findSafeLocation(player, world);

// Request a full RTP (same as /rtp)
service.requestRtp(player, world);

📡 Events (RtpEvents)

  • WarmupStartEvent
  • WarmupCancelEvent
  • SuccessEvent
  • FailEvent

🚀 Optimization

  • Use allow-chunk-load: true and tune async-chunk-loads-parallel according to your hardware.
  • Adjust per-tick-attempts (4–8 is ideal).
  • Use adaptive-radius to reduce failures on seeds with large oceans.
  • For high player count servers, limit concurrent RTPs (global semaphore).

❓ FAQ

❓ RTP fails in worlds with too many oceans, what now?

Enable adaptive-radius and increase max-attempts to expand beyond oceans.

❓ There's lag when players RTP 2000+ blocks away.

Make sure you are on Paper 1.21+ and enable allow-chunk-load: true.
Loading is asynchronous and will not freeze the main tick.

❓ How to add more languages?

Create files in plugins/P_Randomtp/languages/ with the language code, e.g. es_es.yml.

❓ Can I disable RTP in specific worlds?

Yes, set worlds.<name>.allow: false in config.yml.


📊 bStats

(Optional) Anonymous metrics are collected via bStats.


👨‍💻 Author

  • Developed by Pedro. Suggestions, bug reports, and PRs are welcome!