mirror of
https://github.com/mii443/minecraft-scala-plugin-template.git
synced 2025-08-22 07:55:36 +00:00
- Add 'reload' command for quick plugin updates - Plugin files are copied to running server without restart - Manual /reload command required in server console - Safer alternative to full restart for development 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
94 lines
3.0 KiB
Bash
Executable File
94 lines
3.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Minecraft Plugin Development Server Script
|
|
|
|
set -e
|
|
|
|
echo "🎮 Minecraft Plugin Development Server"
|
|
echo "======================================"
|
|
|
|
# Function to build plugin
|
|
build_plugin() {
|
|
echo "📦 Building plugin..."
|
|
sbt clean package
|
|
|
|
# Check if jar exists
|
|
if [ ! -f "target/scala-2.13/minecraft-scala-plugin_2.13-1.0.0.jar" ]; then
|
|
echo "❌ Plugin jar not found! Build failed."
|
|
exit 1
|
|
fi
|
|
|
|
echo "✅ Plugin built successfully!"
|
|
}
|
|
|
|
# Create necessary directories
|
|
mkdir -p server-data server-logs
|
|
|
|
# Start/restart the server
|
|
case "${1:-start}" in
|
|
"start")
|
|
build_plugin
|
|
echo "🚀 Starting development server..."
|
|
docker compose up -d
|
|
echo "✅ Server started! Connect to localhost:25565"
|
|
echo "📜 To view logs: docker compose logs -f"
|
|
echo "🛑 To stop: ./dev-server.sh stop"
|
|
;;
|
|
"stop")
|
|
echo "🛑 Stopping development server..."
|
|
docker compose down
|
|
echo "✅ Server stopped!"
|
|
;;
|
|
"restart")
|
|
echo "🔄 Restarting development server..."
|
|
build_plugin
|
|
docker compose down
|
|
docker compose up -d
|
|
echo "✅ Server restarted!"
|
|
;;
|
|
"logs")
|
|
echo "📜 Showing server logs..."
|
|
docker compose logs -f
|
|
;;
|
|
"console")
|
|
echo "💻 Connecting to server console..."
|
|
docker exec -it minecraft-dev-server /bin/bash
|
|
;;
|
|
"attach")
|
|
echo "📎 Attaching to Minecraft server console..."
|
|
echo "💡 To detach: Press Ctrl+P then Ctrl+Q"
|
|
docker attach minecraft-dev-server
|
|
;;
|
|
"reload")
|
|
echo "🔄 Hot reloading plugin..."
|
|
build_plugin
|
|
echo "📦 Copying plugin to server..."
|
|
docker cp target/scala-2.13/minecraft-scala-plugin_2.13-1.0.0.jar minecraft-dev-server:/minecraft/plugins/minecraft-scala-plugin.jar
|
|
echo "🔌 Reloading plugins in server..."
|
|
docker exec minecraft-dev-server bash -c 'echo "reload" > /tmp/reload_cmd' || echo "⚠️ Use '/reload' command in server console for hot reload"
|
|
echo "✅ Plugin copied! Use '/reload' in server console to apply changes"
|
|
;;
|
|
"rebuild")
|
|
echo "🔨 Rebuilding everything..."
|
|
build_plugin
|
|
docker compose down
|
|
docker compose build --no-cache
|
|
docker compose up -d
|
|
echo "✅ Complete rebuild finished!"
|
|
;;
|
|
*)
|
|
echo "Usage: $0 {start|stop|restart|logs|console|attach|reload|rebuild}"
|
|
echo ""
|
|
echo "Commands:"
|
|
echo " start - Build plugin and start server"
|
|
echo " stop - Stop the server"
|
|
echo " restart - Rebuild plugin and restart server"
|
|
echo " logs - View server logs"
|
|
echo " console - Connect to server console (bash)"
|
|
echo " attach - Attach to Minecraft server console"
|
|
echo " reload - Hot reload plugin (requires manual /reload)"
|
|
echo " rebuild - Complete rebuild (server + plugin)"
|
|
exit 1
|
|
;;
|
|
esac
|