69 lines
2.8 KiB
JavaScript
69 lines
2.8 KiB
JavaScript
require('dotenv').config();
|
|
|
|
const sequelize = require('./db'); // Подключение базы данных
|
|
|
|
// Настраиваем глобальные переменные (опционально)
|
|
global.path = require('path');
|
|
global.config = require('./config'); // Конфигурация
|
|
global.database = sequelize; // База данных
|
|
global.utils = require('./utils');
|
|
const express = require('express');
|
|
const { UserModel, CharacterModel, BusinessModel, EnterpriseModel } = global.config;
|
|
const app = express();
|
|
|
|
app.use(express.static('public')); // Для выдачи HTML и статики
|
|
|
|
// Эндпоинт для получения всех данных игрока
|
|
app.get('/player/:id', async (req, res) => {
|
|
const playerId = req.params.id;
|
|
|
|
try {
|
|
const user = await UserModel.findOne({ where: { telegram_id: req.params.id } });
|
|
const character = await CharacterModel.findOne({ where: { telegram_id: playerId } });
|
|
let business = await BusinessModel.findOne({ where: { owner: playerId } })
|
|
if(business === null){
|
|
business = await BusinessModel.findOne( {where: { owner: user.business.id} } )
|
|
}
|
|
const enterprises = await EnterpriseModel.findAll({ where: { playerId } });
|
|
|
|
if (!user || !character) {
|
|
return res.status(404).json({ error: "Игрок не найден." });
|
|
}
|
|
|
|
res.json({
|
|
user: {
|
|
username: user.username,
|
|
telegramID: user.telegram_id,
|
|
name: user.name,
|
|
status: user.status,
|
|
profileLevel: user.level,
|
|
characterLevel: character.level,
|
|
profileExp: user.exp,
|
|
characterExp: character.exp,
|
|
profileExpToUp: global.config.expToUp[user.level],
|
|
characterExpToUp: global.config.expToUp[character.level],
|
|
hp: character.hp,
|
|
maxHp: character.max_hp,
|
|
stamina: character.stamina,
|
|
maxStamina: character.max_stamina,
|
|
force: character.force,
|
|
intelligence: character.intelligence,
|
|
resilience: character.resilience,
|
|
endurance: character.endurance,
|
|
money: global.utils.spaces(user.money),
|
|
dirtymoney: global.utils.spaces(character.dirtymoney),
|
|
},
|
|
business: business || { name: "Отсутствует", balance: 0, materials: 0, users: [] },
|
|
enterprises: enterprises || [],
|
|
});
|
|
} catch (err) {
|
|
console.error(err);
|
|
res.status(500).json({ error: 'Ошибка сервера' });
|
|
}
|
|
});
|
|
|
|
|
|
// Запуск сервера
|
|
const PORT = process.env.PORT || 3000;
|
|
app.listen(PORT, () => console.log(`Сервер запущен на порту ${PORT}`));
|