GitHunt
YU

Yupick/mc-simple

Servidor Minecraft Java basado en Paper con sistema RPG, economía integrada y soporte multicliente para Java y Bedrock. Ideal para jugadores que buscan una experiencia inmersiva y divertida en Minecraft.

🎮 Instalador de Servidor Minecraft Paper

Sistema completo para instalar y gestionar un servidor de Minecraft Paper con interfaz de línea de comandos.

📋 Requisitos

Antes de ejecutar el instalador, asegúrate de tener instalados:

# Ubuntu/Debian
sudo apt update
sudo apt install curl jq openjdk-21-jre-headless screen

# O verifica qué tienes instalado
curl --version
jq --version
java --version
screen --version

🚀 Instalación Rápida

  1. Ejecuta el instalador:

    ./install-paper.sh
  2. Sigue el asistente interactivo:

    • Selecciona la versión de Minecraft (desde 1.19 en adelante)
    • Decide si instalar plugins de compatibilidad:
      • ViaVersion: permite que jugadores con versiones anteriores/posteriores se conecten
      • Geyser + Floodgate: permite que jugadores de Bedrock Edition se conecten
  3. El instalador creará:

    • ✅ Carpeta server/ con el servidor
    • ✅ Carpeta server/plugins/ para plugins
    • ✅ Script server/manage-control.sh para gestionar el servidor
    • ✅ Archivos de configuración (eula.txt, server.properties)

🎛️ Gestión del Servidor

Una vez instalado, navega a la carpeta del servidor:

cd server

Comandos Disponibles

# Iniciar el servidor (se ejecuta en segundo plano)
./manage-control.sh start

# Detener el servidor de forma segura
./manage-control.sh stop

# Reiniciar el servidor
./manage-control.sh restart

# Ver los logs en tiempo real
./manage-control.sh logs
# IMPORTANTE: Presiona Ctrl+A y luego D para salir sin cerrar el servidor

# Abrir cliente de consola para enviar comandos
./manage-control.sh console

# Ver estado del servidor
./manage-control.sh status

# Ver ayuda
./manage-control.sh help

💻 Cliente de Consola

El cliente de consola te permite enviar comandos al servidor sin usar un cliente gráfico:

./manage-control.sh console

Una vez dentro:

  • Escribe comandos sin el / inicial
  • Ejemplos:
    minecraft> list
    minecraft> give Player diamond 64
    minecraft> tp Player 0 64 0
    minecraft> say ¡Hola a todos!
    minecraft> weather clear
    
  • Escribe exit o quit para salir (el servidor sigue corriendo)

📊 Características

✨ Servidor

  • Ejecución en segundo plano: El servidor corre continuamente
  • Optimización: Flags de Aikar para mejor rendimiento
  • RAM configurable: 1GB mín, 4GB máx (editable en manage-control.sh)
  • RCON habilitado: Puerto 25575, contraseña: minecraft

🔌 Plugins Opcionales

  1. ViaVersion

    • Permite compatibilidad entre diferentes versiones de Minecraft
    • Los jugadores con versiones anteriores o posteriores pueden conectarse
  2. Geyser + Floodgate

    • Permite que jugadores de Bedrock Edition (consolas, móviles) se conecten
    • Puerto Bedrock predeterminado: 19132 (UDP)

🎮 Gestión Avanzada

  • Logs en tiempo real: Ve qué sucede en el servidor sin interferir
  • Detención segura: Guarda el mundo antes de cerrar
  • Reinicio rápido: Para aplicar cambios de configuración

📝 Configuración

Editar propiedades del servidor

nano server/server.properties

Propiedades importantes:

  • server-port=25565 - Puerto del servidor
  • max-players=20 - Máximo de jugadores
  • gamemode=survival - Modo de juego predeterminado
  • difficulty=easy - Dificultad
  • online-mode=true - Verificación de cuentas de Mojang
  • rcon.password=minecraft - Contraseña RCON

Ajustar RAM del servidor

nano server/manage-control.sh

Busca y modifica:

MIN_RAM="1G"    # RAM mínima
MAX_RAM="4G"    # RAM máxima

🔧 Solución de Problemas

El servidor no inicia

# Verifica que Java esté instalado
java --version

# Revisa los logs
cd server
./manage-control.sh logs

Screen no encontrado

sudo apt install screen

Puerto ya en uso

# Verifica qué usa el puerto 25565
sudo lsof -i :25565

# Cambia el puerto en server.properties
nano server/server.properties
# Modifica: server-port=25566

Problemas con Geyser (Bedrock)

  • Asegúrate de que el puerto UDP 19132 esté abierto
  • Verifica la configuración en server/plugins/Geyser-Spigot/config.yml

🌐 Conectarse al Servidor

Java Edition

  1. Abre Minecraft Java Edition
  2. Multijugador → Añadir servidor
  3. Dirección: tu-ip:25565 (o tu puerto configurado)

Bedrock Edition (si Geyser está instalado)

  1. Abre Minecraft Bedrock
  2. Servidores → Añadir servidor
  3. Dirección: tu-ip
  4. Puerto: 19132

📁 Estructura de Archivos

mc-paper/
├── install-paper.sh          # Script de instalación
├── README.md                 # Este archivo
└── server/                   # Carpeta del servidor (creada al instalar)
    ├── paper-X.XX-XXX.jar   # Servidor Paper
    ├── manage-control.sh     # Script de gestión
    ├── eula.txt             # EULA aceptado
    ├── server.properties    # Configuración del servidor
    ├── plugins/             # Carpeta de plugins
    │   ├── ViaVersion.jar   # (opcional)
    │   ├── Geyser-Spigot.jar # (opcional)
    │   └── floodgate-spigot.jar # (opcional)
    ├── world/               # Mundo principal (generado)
    ├── world_nether/        # Nether (generado)
    ├── world_the_end/       # End (generado)
    └── logs/                # Logs del servidor (generado)

🔐 Seguridad

  • Cambia la contraseña de RCON en server.properties
  • Configura el firewall para permitir solo puertos necesarios:
    sudo ufw allow 25565/tcp  # Java
    sudo ufw allow 19132/udp  # Bedrock (si usas Geyser)
  • Habilita whitelist si es un servidor privado:
    ./manage-control.sh console
    minecraft> whitelist on
    minecraft> whitelist add NombreJugador
    

📚 Recursos Útiles

📄 Licencia

Este script es de código abierto. El servidor Paper y los plugins tienen sus propias licencias.


🌿 Flujo de Desarrollo (GitFlow)

Este proyecto usa GitFlow para gestión ordenada de versiones y desarrollo.

📌 Estructura de Ramas

  • main: Código en producción, 100% estable
  • develop: Rama de integración, último código desarrollado
  • feature/*: Nuevas funcionalidades
  • release/*: Preparación de versiones
  • hotfix/*: Correcciones urgentes en producción

🚀 Contribuir

  1. Fork del repositorio
  2. Crear feature branch:
    git checkout develop
    git checkout -b feature/mi-funcionalidad
  3. Commits con convención:
    git commit -m "feat(scope): descripción"
  4. Push y Pull Request:
    git push origin feature/mi-funcionalidad
    Crear PR hacia develop en GitHub

📝 Convención de Commits

  • feat: Nueva funcionalidad
  • fix: Corrección de bug
  • docs: Documentación
  • style: Formato, estilos
  • refactor: Refactorización
  • perf: Mejora de rendimiento
  • test: Tests
  • chore: Mantenimiento, configuración

📦 Versionado

Usamos Semantic Versioning: vMAJOR.MINOR.PATCH

  • MAJOR: Cambios incompatibles
  • MINOR: Nueva funcionalidad compatible
  • PATCH: Correcciones de bugs

Ver CHANGELOG.md para historial completo.


¿Necesitas ayuda? Revisa los logs del servidor con ./manage-control.sh logs o ejecuta ./manage-control.sh status para ver el estado actual.