<div align="center">
<img src="proxycore-logo.svg" width="220"/>
<br/><br/>
<img src="
https://capsule-render.vercel.app/a...ilities Plugin&descAlignY=65&descColor=a8b2d8" width="100%"/>
<br/>
[](https://github.com/YesithTK/ProxyCore)
[](https://github.com/YesithTK/ProxyCore)
[](https://adoptium.net/)
[](https://maven.apache.org/)
[](./LICENSE)
[](https://github.com/YesithTK)
<br/>
> **ProxyCore** es un plugin de utilidades de proxy potente, ligero y todo en uno, diseñado para redes **BungeeCord** y **Velocity**.
Más de 20 comandos esenciales, anuncios automáticos, modo de mantenimiento, mensajería privada, herramientas para el personal: todo en un único plugin sin dependencias externas.
<br/>
</div>
---
## Tabla de contenido
- [Características](#-features)
- [Requisitos](#-requisitos)
- [Instalación](#-installation)
- [Comandos](#-comandos)
- [Permisos](#-permisos)
- [Configuración](#-configuration)
- [API](#-api)
- [Hoja de ruta](#-roadmap)
- [Créditos](#-credits)
- [Licencia](#-licencia)
---
## ✨ Características
<div align="center">
| Información de la red | Comunicación | Gestión de jugadores | ⚙️ Administración |
|:---:|:---:|:---:|:---:|
| Buscar jugadores | Anuncios globales | Enviar jugadores entre servidores | Modo de mantenimiento |
| Lista de servidores | Chat del personal | Mover a todos los jugadores a la vez | Alertas de toda la red |
| Estadísticas de red | Mensajes privados | Expulsión desde proxy | Configuración de recarga en caliente |
| Comprobador de ping | Sistema de respuesta | Lista de personal | Visualización del tiempo de actividad |
| Búsqueda de IP | Transmisión con prefijo | Forzar comandos (sudo) | Lista de jugadores por servidor |
</div>
<br/>
- ✅ **Plataforma dual** — Un único código fuente, dos archivos JAR: BungeeCord y Velocity
- ✅ **Cero dependencias** — No se requieren bibliotecas externas en tiempo de ejecución
- ✅ **Recarga en caliente** — Aplica los cambios de configuración sin reiniciar el proxy
- ✅ **Anuncios automáticos** — Mensajes rotativos con un intervalo configurable
- ✅ **Modo de mantenimiento** — Expulsa a los jugadores que no son del personal y bloquea las nuevas incorporaciones.
- ✅ **API para desarrolladores** — Módulo `proxycore-api` limpio para la creación de complementos
- ✅ **Maven de múltiples módulos** — `proxycore-api`, `proxycore-bungeecord`, `proxycore-velocity`
---
## Requisitos
| Requisito | Versión |
|-------------|---------|
| Java | 17 or higher |
| BungeeCord | 1.20+ |
| Velocity | 3.x |
| Maven | 3.8+ *(for building from source)* |
---
## Installation
### Pre-built JAR *(recommended)*
1. Download the correct JAR from [Releases](
https://github.com/YesithTK/ProxyCore/releases):
- `ProxyCore-BungeeCord-1.0.0.jar` → for BungeeCord
- `ProxyCore-Velocity-1.0.0.jar` → for Velocity
2. Drop it into your proxy's `plugins/` folder.
3. Start or restart the proxy.
4. Edit the generated `plugins/ProxyCore/config.yml` and `messages.yml`.
5. Run `/proxyreload` to apply changes without restarting.
### Build from Source
```bash
# Clone the repository
git clone
https://github.com/YesithTK/ProxyCore.git
cd ProxyCore
# Build BungeeCord JAR
mvn clean package -pl proxycore-bungeecord -am
# Build Velocity JAR
mvn clean package -pl proxycore-velocity -am
```
Output JARs:
- `proxycore-bungeecord/target/ProxyCore-BungeeCord-1.0.0.jar`
- `proxycore-velocity/target/ProxyCore-Velocity-1.0.0.jar`
---
## Commands
> **Note:** Velocity command names are prefixed with `v` — e.g. `/glist` → `/vglist`, `/send` → `/vsend`.
### Network Information
| Command | Description | Permission |
|---------|-------------|------------|
| `/find <player>` | Show which server a player is on | `proxycore.find` |
| `/glist` | List all servers with their player counts | `proxycore.glist` |
| `/network` | Display global network stats | `proxycore.network` |
| `/pping [player]` | Check your own or another player's ping | `proxycore.ping` |
| `/pip <player>` | Retrieve a player's IP address *(admin)* | `proxycore.ip` |
### Communication
| Command | Description | Permission |
|---------|-------------|------------|
| `/announce <message>` | Broadcast a global announcement | `proxycore.announce` |
| `/staffchat <message>` | Send a message visible only to staff | `proxycore.staffchat` |
| `/pmsg <player> <message>` | Send a private message across servers | `proxycore.msg` |
| `/reply <message>` | Reply to your last private message | `proxycore.msg` |
| `/pbroadcast <message>` | Network-wide broadcast with custom prefix | `proxycore.broadcast` |
### Player Management
| Command | Description | Permission |
|---------|-------------|------------|
| `/psend <player> <server>` | Move a player to another server | `proxycore.send` |
| `/sendall <server>` | Move all online players to a server | `proxycore.sendall` |
| `/pkick <player> [reason]` | Kick a player from the entire network | `proxycore.kick` |
| `/stafflist` | List all currently online staff members | `proxycore.stafflist` |
| `/psudo <player> <command>` | Force a player to execute a command | `proxycore.sudo` |
### ⚙️ Administration
| Command | Description | Permission |
|---------|-------------|------------|
| `/maintenance <on\|off>` | Toggle maintenance mode on the network | `proxycore.maintenance` |
| `/alert <message>` | Send a highlighted alert box to all players | `proxycore.alert` |
| `/plist <server>` | List all players on a specific server | `proxycore.plist` |
| `/proxyreload` | Reload ProxyCore config without restarting | `proxycore.reload` |
| `/uptime` | Muestra cuánto tiempo lleva funcionando la red | `proxycore.uptime` |
---
## Permisos
| Permiso | Descripción | Predeterminado |
|------------|-------------|---------|
| `proxycore.find` | Usar `/find` | `true` |
| `proxycore.glist` | Utilice `/glist` | `verdadero` |
| `proxycore.network` | Usar `/network` | `true` |
| `proxycore.ping` | Comprobar el ping propio | `true` |
| `proxycore.ping.others` | Comprobar el ping de otros jugadores | `op` |
| `proxycore.ip` | Ver la dirección IP de un jugador | `op` |
| `proxycore.announce` | Enviar anuncios globales | `op` |
| `proxycore.broadcast` | Enviar transmisiones a toda la red | `op` |
| `proxycore.staffchat` | Acceder y leer el chat del personal | `op` |
| `proxycore.msg` | Enviar y recibir mensajes privados | `true` |
| `proxycore.send` | Mover jugadores entre servidores | `op` |
| `proxycore.sendall` | Mover todos los jugadores a un servidor | `op` |
| `proxycore.kick` | Expulsar jugadores de la red | `op` |
| `proxycore.stafflist` | Ver la lista de personal en línea | `true` |
| `proxycore.personal` | Aparecer en `/stafflist` | `op` |
| `proxycore.sudo` | Obligar a los jugadores a ejecutar comandos | `op` |
| `proxycore.maintenance` | Activar/desactivar el modo de mantenimiento | `op` |
| `proxycore.maintenance.bypass` | Unirse a la red durante el mantenimiento | `op` |
| `proxycore.alert` | Enviar mensajes de alerta a toda la red | `op` |
| `proxycore.plist` | Listar jugadores en un servidor específico | `true` |
| `proxycore.reload` | Recargar la configuración del plugin | `op` |
| `proxycore.uptime` | Comprobar el tiempo de actividad de la red | `true` |
---
## ⚙️ Configuración
### `config.yml`
```yaml
# Configuración de ProxyCore — por YesithTK
mantenimiento:
habilitado: falso # Establecer en verdadero para habilitar el mantenimiento al iniciar
anuncios:
habilitado: verdadero
intervalo: 60 # Segundos entre cada anuncio automático
mensajes:
- "¡Bienvenido a la red! Disfrute de su estancia."
- "¡Únete a nuestro Discord para recibir noticias y actualizaciones!"
- "Reporta los errores con /report dentro del juego."
¡Síguenos en las redes sociales para enterarte de eventos y sorteos!
```
### `messages.yml`
```yaml
# Mensajes de ProxyCore: use & para códigos de color
prefijo: "&8[&6ProxyCore&8] &r"
sin permiso: "&cNo tienes permiso para hacer eso."
jugador-no-encontrado: "&cJugador &e%player% &cno encontrado o desconectado."
default-kick-reason: "&cHas sido expulsado de la red."
mantenimiento-expulsión: |-
Mantenimiento del servidor
La red se encuentra actualmente en mantenimiento.
&7Por favor, inténtelo de nuevo más tarde.
find-result: "&a%player% &7 está conectado a &e%server%&7."
prefijo de anuncio: "&8[&6Anuncio&8] &r"
prefijo de difusión: "&8[&4Difusión&8] &r"
```
---
## API
ProxyCore expone un módulo `proxycore-api` limpio para que los desarrolladores puedan crear complementos o integrarse con el plugin sin tener que modificar el código específico de la plataforma.
### Estructura del proyecto
```
ProxyCore/
├── proxycore-api/ ← Interfaces y eventos compartidos
│ └── dev.yesithx.proxycore.api
│ ├── IProxyCorePlugin.java
│ ├── ProxyCoreAPI.java
│ ├── gerente/
│ │ ├── IMessageManager.java
│ │ ├── IMaintenanceManager.java
│ │ └── IAnnounceManager.java
│ ├── comando/
│ │ ├── ProxyCoreCommandSender.java
│ │ └── NetworkPlayer.java
│ └── evento/
│ ├── ProxyCoreEvent.java
│ ├── MaintenanceToggleEvent.java
│ └── NetworkAnnounceEvent.java
├── proxycore-bungeecord/ ← Implementación de BungeeCord
└── proxycore-velocity/ ← Implementación de Velocity
```
### Dependencia de Maven
```xml
<dependencia>
<groupId>dev.yesithx</groupId>
<artifactId>proxycore-api</artifactId>
<version>1.0.0</version>
<scope>proporcionado</scope>
</dependencia>
```
### Ejemplo de uso
```java
importar dev.yesithx.proxycore.api.ProxyCoreAPI;
import dev.yesithx.proxycore.api.IProxyCorePlugin;
// Comprobación de seguridad antes de usar
si (ProxyCoreAPI.isAvailable()) {
IProxyCorePlugin api = ProxyCoreAPI.get();
// Comprobar el modo de mantenimiento
mantenimiento booleano = api.getMaintenanceManager().isEnabled();
// Activar/desactivar el mantenimiento
api.getMaintenanceManager().setEnabled(true);
// Recargar todos los administradores
api.reload();
// Comprobar el programador de anuncios
int intervalo = api.getAnnounceManager().getIntervalSeconds();
}
```
### Interfaces disponibles
| Interfaz | Paquete | Descripción |
|-----------|---------|-------------|
| `IProxyCorePlugin` | `api` | Interfaz base del plugin: acceso a todos los administradores |
| `ProxyCoreAPI` | `api` | Punto de entrada estático para complementos |
| `IMessageManager` | `api.manager` | Mensajería privada entre jugadores |
| `IMaintenanceManager` | `api.manager` | Control del modo de mantenimiento |
| `IAnnounceManager` | `api.manager` | Control del programador de anuncios automáticos |
| `ProxyCoreCommandSender` | `api.command` | Emisor de comandos independiente de la plataforma |
| `NetworkPlayer` | `api.command` | Abstracción de reproductor independiente de la plataforma |
| `ProxyCoreEvent` | `api.event` | Clase base para todos los eventos de ProxyCore |
| `MaintenanceToggleEvent` | `api.event` | Se activa cuando se activa o desactiva el mantenimiento |
| `NetworkAnnounceEvent` | `api.event` | Se activa antes de cada anuncio automático |
---
## ️ Hoja de ruta
| Versión | Característica |
|---------|---------|
| `v1.1.0` | Integración de LuckPerms para la detección de personal basada en permisos |
| `v1.1.0` | Comando `/report` con sistema de notificación al personal |
| `v1.2.0` | Mensajes de entrada/salida configurables por servidor |
| `v1.2.0` | Anuncios de BossBar como alternativa al chat |
| `v1.3.0` | Compatibilidad de MySQL con la persistencia de datos entre reinicios |
| `v1.3.0` | API REST para monitorización de redes externas |
| `v2.0.0` | Compatibilidad total con PlaceholderAPI |
| `v2.0.0` | Compatibilidad con el canal de mensajería del plugin para servidores backend |
---
## Créditos
<div align="center">
| Rol | Nombre |
|------|------|
| Desarrollador y mantenedor | **YesithTK** |
| ️ Arquitectura y Diseño | **YesithTK** |
| Documentación | **YesithTK** |
<br/>
*Creado con ❤️ para la comunidad de la red Minecraft.*
</div>
---
## Licencia
```
Copyright (c) 2026 YesithTK. Todos los derechos reservados.
Este software y su código fuente son propiedad exclusiva de YesithTK.
Ninguna parte de este software puede ser reproducida, distribuida, modificada o utilizada
en cualquier forma sin el permiso previo por escrito del autor.
Copia, bifurcación o redistribución no autorizada de este repositorio,
Está estrictamente prohibido utilizar cualquier medio.
```
---
<div align="center">
<img src=
"
https://capsule-render.vercel.app/a...60,50:16213e,100:1a1a2e&height=100§ion=footer" width="100%"/>
*© 2026 YesithTK — ProxyCore. Todos los derechos reservados.*
</div>