P_RandomtpСкачать
ВЕРСИИ (1)
release
P_Randomtp 1.5.0
1.5.025 авг. 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!