Initial commit: Shattered Void MMO foundation
- Complete PostgreSQL database schema with 21+ tables - Express.js server with dual authentication (player/admin) - WebSocket support for real-time features - Comprehensive middleware (auth, validation, logging, security) - Game systems: colonies, resources, fleets, research, factions - Plugin-based combat architecture - Admin panel foundation - Production-ready logging and error handling - Docker support and CI/CD ready - Complete project structure following CLAUDE.md patterns 🤖 Generated with Claude Code (https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
commit
1a60cf55a3
69 changed files with 24471 additions and 0 deletions
48
src/routes/player/index.js
Normal file
48
src/routes/player/index.js
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
/**
|
||||
* Player API routes
|
||||
*/
|
||||
|
||||
const express = require('express');
|
||||
const { authenticateToken, optionalAuth } = require('../../middleware/auth');
|
||||
const { asyncHandler } = require('../../middleware/error-handler');
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
// Import route modules
|
||||
const authRoutes = require('./auth');
|
||||
const profileRoutes = require('./profile');
|
||||
const coloniesRoutes = require('./colonies');
|
||||
const fleetsRoutes = require('./fleets');
|
||||
const researchRoutes = require('./research');
|
||||
const galaxyRoutes = require('./galaxy');
|
||||
const eventsRoutes = require('./events');
|
||||
const notificationsRoutes = require('./notifications');
|
||||
|
||||
// Public routes (no authentication required)
|
||||
router.use('/auth', authRoutes);
|
||||
router.use('/galaxy', optionalAuth('player'), galaxyRoutes);
|
||||
|
||||
// Protected routes (authentication required)
|
||||
router.use('/profile', authenticateToken('player'), profileRoutes);
|
||||
router.use('/colonies', authenticateToken('player'), coloniesRoutes);
|
||||
router.use('/fleets', authenticateToken('player'), fleetsRoutes);
|
||||
router.use('/research', authenticateToken('player'), researchRoutes);
|
||||
router.use('/events', authenticateToken('player'), eventsRoutes);
|
||||
router.use('/notifications', authenticateToken('player'), notificationsRoutes);
|
||||
|
||||
// Player status endpoint
|
||||
router.get('/status', authenticateToken('player'), asyncHandler(async (req, res) => {
|
||||
res.json({
|
||||
status: 'authenticated',
|
||||
player: {
|
||||
id: req.user.id,
|
||||
username: req.user.username,
|
||||
displayName: req.user.display_name,
|
||||
userGroup: req.user.user_group,
|
||||
lastActive: req.user.last_active_at,
|
||||
},
|
||||
timestamp: new Date().toISOString(),
|
||||
});
|
||||
}));
|
||||
|
||||
module.exports = router;
|
||||
Loading…
Add table
Add a link
Reference in a new issue