## Major Features Added - **🎛️ Complete Admin Dashboard**: Real-time player monitoring with detailed stats - **👥 Player Management**: Individual and mass player kicking with proper notifications - **🎯 Global Round Control**: Advance/retreat rounds across all rooms simultaneously - **⏸️ Game Control**: Pause/resume games from admin interface - **🔔 Client Notifications**: Players receive alerts for kicks and round changes ## Technical Improvements - **🏗️ Official Colyseus API**: Replaced global variable hacks with `matchMaker.query()` and `matchMaker.remoteRoomCall()` - **📡 Proper Client Communication**: Implemented broadcast messages for `adminKicked`, `gamePaused`, `gameResumed`, `roundChanged` - **🎮 Enhanced GameRoom Methods**: Added `pauseGame()`, `resumeGame()`, `advanceRound()`, `previousRound()`, `_forceClientDisconnect()`, `_forceDisconnectAllClients()`, `getInspectData()` ## UI/UX Enhancements - **📊 Detailed Player Info**: Name, room, role, producer type, and current tokens (🦃☕🌽) - **🚫 Proper Kick Notifications**: Clients auto-redirect to home with clear messaging - **🎨 Improved Admin Interface**: Better organized controls for non-technical commentators - **📱 Responsive Design**: Works well on different screen sizes ## Bug Fixes - **🔧 Fixed Admin Service URLs**: Now correctly calls Colyseus server (port 2567) instead of admin server (port 3001) - **✅ Mass Kick Notifications**: All players receive proper notifications when expelled en masse - **🔄 Auto-redirect**: Kicked clients properly return to home screen ## Architecture - **🏗️ Clean API Design**: All admin endpoints use official Colyseus patterns - **🔒 Type Safety**: Maintained TypeScript sync between server and clients - **📦 Microservices Ready**: Separated concerns between game server and admin interface **Breaking Changes:** None - fully backward compatible **Migration:** No migration needed
39 lines
1.0 KiB
JSON
39 lines
1.0 KiB
JSON
{
|
|
"name": "snatchgame-admin",
|
|
"version": "0.0.8-alpha",
|
|
"description": "SnatchGame admin dashboard server",
|
|
"main": "server.js",
|
|
"scripts": {
|
|
"dev": "npm run generate-types && vite",
|
|
"build": "npm run generate-types && vue-tsc && vite build",
|
|
"preview": "vite preview",
|
|
"serve": "PORT=3002 nodemon server.js",
|
|
"start": "NODE_ENV=production node server.js",
|
|
"generate-types": "cd ../server && npx schema-codegen src/rooms/GameRoom.ts --ts --output ../admin/src/types/",
|
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
},
|
|
"keywords": [
|
|
"express",
|
|
"vue",
|
|
"admin",
|
|
"dashboard"
|
|
],
|
|
"author": "",
|
|
"license": "ISC",
|
|
"dependencies": {
|
|
"@vitejs/plugin-vue": "^6.0.0",
|
|
"@vue/tsconfig": "^0.7.0",
|
|
"colyseus.js": "^0.16.19",
|
|
"dotenv": "^16.0.0",
|
|
"express": "^4.18.0",
|
|
"typescript": "^5.8.3",
|
|
"vite": "^7.0.0",
|
|
"vue": "^3.5.17"
|
|
},
|
|
"devDependencies": {
|
|
"@types/express": "^4.17.0",
|
|
"@types/node": "^20.0.0",
|
|
"nodemon": "^3.1.10",
|
|
"vue-tsc": "^3.0.1"
|
|
}
|
|
} |