COWMODSКаталог модов
P_Randomtp

ВЕРСИИ (1)

release

P_Randomtp 1.5.0

1.5.0
25 авг. 2025 г.263Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8bukkit, paper, spigot
Скачать
Что нового
# 🌍 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`](./src/main/resources/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.<nome>.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`](./src/main/resources/config.yml) file contains several options. Example of an optimized setup (snippet): ```yaml 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**: ```java 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!