ProxyCore icon

ProxyCore -----

Plugin to Proxy



<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/>

[![Versión]( https://img.shields.io/badge/versio...white)](https://github.com/YesithTK/ProxyCore)
[![Plataforma]( https://img.shields.io/badge/platfo...white)](https://github.com/YesithTK/ProxyCore)
[![Java]( https://img.shields.io/badge/java-1...enjdk&logoColor=white)](https://adoptium.net/)
[![Build]( https://img.shields.io/badge/build-...n&logoColor=white)](https://maven.apache.org/)
[![Licencia]( https://img.shields.io/badge/licens...adge&logo=gitbook&logoColor=white)](./LICENSE)
[![Autor]( https://img.shields.io/badge/author...logoColor=white)](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>
Resource Information
Author:
----------
Total Downloads: 22
First Release: Apr 25, 2026
Last Update: Apr 25, 2026
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings