0.0.31
This commit is contained in:
parent
bf04318a1f
commit
4d02f482ae
57
bot.js
57
bot.js
@ -372,13 +372,42 @@ bot.hears('🏗️ Предприятия', async (ctx) => {
|
|||||||
if (warehouse) {
|
if (warehouse) {
|
||||||
buttons.push([{ text: '🚛 Управление складом', callback_data: 'manage_warehouse' }]);
|
buttons.push([{ text: '🚛 Управление складом', callback_data: 'manage_warehouse' }]);
|
||||||
} else {
|
} else {
|
||||||
buttons.push([{ text: '🗄️ Построить склад', callback_data: 'open_warehouse' }]);
|
buttons.push([{ text: '🗄️ Построить склад', callback_data: 'buy_warehouse' }]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Возвращаем меню с кнопками
|
// Возвращаем меню с кнопками
|
||||||
return await ctx.reply(message, Markup.inlineKeyboard(buttons).resize());
|
return await ctx.reply(message, Markup.inlineKeyboard(buttons).resize());
|
||||||
});
|
});
|
||||||
|
bot.action('enterprise_menu', async (ctx) => {
|
||||||
|
const user = await UserModel.findByPk(ctx.from.id);
|
||||||
|
const warehouse = await WarehouseModel.findOne({ where: { playerId: user.telegram_id } });
|
||||||
|
|
||||||
|
const enterprises = await EnterpriseModel.findAll({
|
||||||
|
where: { playerId: user.telegram_id }
|
||||||
|
});
|
||||||
|
|
||||||
|
let message = `🏗️ Меню предприятий:\n`;
|
||||||
|
message += `У вас: ${enterprises.length} предприятий.\n`;
|
||||||
|
message += warehouse
|
||||||
|
? `🗄️ Единый склад: Доступен (Ёмкость: ${warehouse.capacity} ед.)\n`
|
||||||
|
: `🗄️ Единый склад: Не построен.\n`;
|
||||||
|
|
||||||
|
const buttons = [];
|
||||||
|
|
||||||
|
// Добавляем кнопки для предприятий
|
||||||
|
buttons.push([{ text: '🏭 Мои предприятия', callback_data: 'my_enterprises' }]);
|
||||||
|
buttons.push([{ text: '🛠️ Построить предприятие', callback_data: 'build_enterprise' }]);
|
||||||
|
|
||||||
|
// Кнопка для управления или постройки склада
|
||||||
|
if (warehouse) {
|
||||||
|
buttons.push([{ text: '🚛 Управление складом', callback_data: 'manage_warehouse' }]);
|
||||||
|
} else {
|
||||||
|
buttons.push([{ text: '🗄️ Построить склад', callback_data: 'buy_warehouse' }]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Возвращаем меню с кнопками
|
||||||
|
return await ctx.editMessageText(message, Markup.inlineKeyboard(buttons).resize());
|
||||||
|
});
|
||||||
|
|
||||||
// Функция для преобразования типа ресурса в эмодзи
|
// Функция для преобразования типа ресурса в эмодзи
|
||||||
function getEnterpriseEmoji(resourceType) {
|
function getEnterpriseEmoji(resourceType) {
|
||||||
@ -414,9 +443,9 @@ bot.action('my_enterprises', async (ctx) => {
|
|||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
|
||||||
buttons.push([{ text: '⬅️ Назад', callback_data: 'back_to_menu' }]);
|
buttons.push([{ text: '⬅️ Назад', callback_data: 'enterprise_menu' }]);
|
||||||
|
|
||||||
return await ctx.reply(message, Markup.inlineKeyboard(buttons).resize());
|
return await ctx.editMessageText(message, Markup.inlineKeyboard(buttons).resize());
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@ -456,7 +485,7 @@ bot.action('build_enterprise', async (ctx) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
message += '\nВыберите тип предприятия:';
|
message += '\nВыберите тип предприятия:';
|
||||||
return await ctx.reply(message, Markup.inlineKeyboard(buttons).resize());
|
return await ctx.editMessageText(message, Markup.inlineKeyboard(buttons).resize());
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Ошибка в build_enterprise:', error);
|
console.error('Ошибка в build_enterprise:', error);
|
||||||
return await ctx.reply('Произошла ошибка при обработке запроса. Попробуйте снова.');
|
return await ctx.reply('Произошла ошибка при обработке запроса. Попробуйте снова.');
|
||||||
@ -489,7 +518,7 @@ bot.action(/build_(wood|coal|oil|metall|gold|diamond)/, async (ctx) => {
|
|||||||
// Снимаем деньги с баланса
|
// Снимаем деньги с баланса
|
||||||
await user.update({ money: user.money - price })
|
await user.update({ money: user.money - price })
|
||||||
|
|
||||||
return await ctx.reply(`Предприятие ${enterprise.name} (ID: ${enterprise.id}) построено!`)
|
return await ctx.editMessageText(`Предприятие ${enterprise.name} (ID: ${enterprise.id}) построено!`)
|
||||||
})
|
})
|
||||||
|
|
||||||
// Функция для расчета стоимости предприятия
|
// Функция для расчета стоимости предприятия
|
||||||
@ -536,7 +565,7 @@ bot.action('buy_warehouse', async (ctx) => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
await user.update({ money: user.money - 500000 })
|
await user.update({ money: user.money - 500000 })
|
||||||
return await ctx.reply(`Вы успешно купили единый склад!`)
|
return await ctx.editMessageText(`Вы успешно купили единый склад!`)
|
||||||
})
|
})
|
||||||
|
|
||||||
// Управление складом
|
// Управление складом
|
||||||
@ -564,7 +593,7 @@ bot.action('manage_warehouse', async (ctx) => {
|
|||||||
[{ text: '🚚 Купить транспорт', callback_data: 'buy_truck' }]
|
[{ text: '🚚 Купить транспорт', callback_data: 'buy_truck' }]
|
||||||
];
|
];
|
||||||
|
|
||||||
return await ctx.reply(message, Markup.inlineKeyboard(buttons).resize());
|
return await ctx.editMessageText(message, Markup.inlineKeyboard(buttons).resize());
|
||||||
});
|
});
|
||||||
|
|
||||||
bot.action('warehouse_management', async (ctx) => {
|
bot.action('warehouse_management', async (ctx) => {
|
||||||
@ -588,7 +617,7 @@ bot.action('warehouse_management', async (ctx) => {
|
|||||||
💰 Золото: ${warehouse.gold || 0}
|
💰 Золото: ${warehouse.gold || 0}
|
||||||
💎 Алмазы: ${warehouse.diamond || 0}
|
💎 Алмазы: ${warehouse.diamond || 0}
|
||||||
`
|
`
|
||||||
return await ctx.reply(message, Markup.inlineKeyboard([
|
return await ctx.editMessageText(message, Markup.inlineKeyboard([
|
||||||
[{ text: 'Управление транспортом', callback_data: 'manage_trucks' }],
|
[{ text: 'Управление транспортом', callback_data: 'manage_trucks' }],
|
||||||
[{ text: 'Продать ресурсы', callback_data: 'sell_from_warehouse' }]
|
[{ text: 'Продать ресурсы', callback_data: 'sell_from_warehouse' }]
|
||||||
]).resize())
|
]).resize())
|
||||||
@ -602,7 +631,7 @@ bot.action(/manage_(\d+)/, async (ctx) => {
|
|||||||
if (!enterprise) return await ctx.reply(`Предприятие не найдено.`)
|
if (!enterprise) return await ctx.reply(`Предприятие не найдено.`)
|
||||||
|
|
||||||
// Логика управления предприятием (например, прокачка или продажа ресурсов)
|
// Логика управления предприятием (например, прокачка или продажа ресурсов)
|
||||||
return await ctx.reply(`Вы управляете предприятием ${enterprise.name} (ID: ${enterprise.id}).`)
|
return await ctx.editMessageText(`Вы управляете предприятием ${enterprise.name} (ID: ${enterprise.id}).`)
|
||||||
})
|
})
|
||||||
bot.action('transfer_resources', async (ctx) => {
|
bot.action('transfer_resources', async (ctx) => {
|
||||||
const user = await UserModel.findByPk(ctx.from.id);
|
const user = await UserModel.findByPk(ctx.from.id);
|
||||||
@ -624,7 +653,7 @@ bot.action('transfer_resources', async (ctx) => {
|
|||||||
return [{ text: `🏭 ${ent.name}`, callback_data: `transfer_from_${ent.id}` }];
|
return [{ text: `🏭 ${ent.name}`, callback_data: `transfer_from_${ent.id}` }];
|
||||||
});
|
});
|
||||||
|
|
||||||
return await ctx.reply(message, Markup.inlineKeyboard(buttons).resize());
|
return await ctx.editMessageText(message, Markup.inlineKeyboard(buttons).resize());
|
||||||
});
|
});
|
||||||
|
|
||||||
// Перевозка с конкретного предприятия
|
// Перевозка с конкретного предприятия
|
||||||
@ -635,7 +664,7 @@ bot.action(/transfer_from_(\d+)/, async (ctx) => {
|
|||||||
|
|
||||||
const enterprise = await EnterpriseModel.findByPk(enterpriseId);
|
const enterprise = await EnterpriseModel.findByPk(enterpriseId);
|
||||||
if (!enterprise) {
|
if (!enterprise) {
|
||||||
return await ctx.reply('Предприятие не найдено.');
|
return await ctx.editMessageText('Предприятие не найдено.');
|
||||||
}
|
}
|
||||||
|
|
||||||
let message = `🚛 Перевозка с предприятия ${enterprise.name}:\n`;
|
let message = `🚛 Перевозка с предприятия ${enterprise.name}:\n`;
|
||||||
@ -685,7 +714,7 @@ bot.action('upgrade_enterprise', async (ctx) => {
|
|||||||
buttons.push({ text: `Прокачать ${enterprise.name}`, callback_data: `upgrade_${enterprise.id}` })
|
buttons.push({ text: `Прокачать ${enterprise.name}`, callback_data: `upgrade_${enterprise.id}` })
|
||||||
})
|
})
|
||||||
|
|
||||||
return await ctx.reply(`Выберите предприятие для прокачки:`, Markup.inlineKeyboard(buttons).resize())
|
return await ctx.editMessageText(`Выберите предприятие для прокачки:`, Markup.inlineKeyboard(buttons).resize())
|
||||||
})
|
})
|
||||||
|
|
||||||
bot.action(/upgrade_(\d+)/, async (ctx) => {
|
bot.action(/upgrade_(\d+)/, async (ctx) => {
|
||||||
@ -709,7 +738,7 @@ bot.action(/upgrade_(\d+)/, async (ctx) => {
|
|||||||
// Снимаем деньги с баланса
|
// Снимаем деньги с баланса
|
||||||
await user.update({ balance: user.balance - upgradeCost })
|
await user.update({ balance: user.balance - upgradeCost })
|
||||||
|
|
||||||
return await ctx.reply(`Предприятие ${enterprise.name} успешно прокачано! Уровень: ${enterprise.level}, Производительность: ${enterprise.efficiency} ед/ч.`)
|
return await ctx.editMessageText(`Предприятие ${enterprise.name} успешно прокачано! Уровень: ${enterprise.level}, Производительность: ${enterprise.efficiency} ед/ч.`)
|
||||||
})
|
})
|
||||||
|
|
||||||
bot.action('sell_resources', async (ctx) => {
|
bot.action('sell_resources', async (ctx) => {
|
||||||
@ -727,7 +756,7 @@ bot.action('sell_resources', async (ctx) => {
|
|||||||
buttons.push({ text: `Продать ресурсы с ${enterprise.name}`, callback_data: `sell_${enterprise.id}` })
|
buttons.push({ text: `Продать ресурсы с ${enterprise.name}`, callback_data: `sell_${enterprise.id}` })
|
||||||
})
|
})
|
||||||
|
|
||||||
return await ctx.reply(`Выберите предприятие для продажи ресурсов:`, Markup.inlineKeyboard(buttons).resize())
|
return await ctx.editMessageText(`Выберите предприятие для продажи ресурсов:`, Markup.inlineKeyboard(buttons).resize())
|
||||||
})
|
})
|
||||||
|
|
||||||
bot.action(/sell_(\d+)/, async (ctx) => {
|
bot.action(/sell_(\d+)/, async (ctx) => {
|
||||||
|
1
db.js
1
db.js
@ -7,7 +7,6 @@ const sequelize = new Sequelize(
|
|||||||
process.env.DB_PASSWORD, // Пароль
|
process.env.DB_PASSWORD, // Пароль
|
||||||
{
|
{
|
||||||
host: process.env.DB_HOST, // Хост
|
host: process.env.DB_HOST, // Хост
|
||||||
port: process.env.DB_PORT, // Порт
|
|
||||||
dialect: 'postgres', // Диалект базы данных
|
dialect: 'postgres', // Диалект базы данных
|
||||||
logging: false, // Отключение логирования запросов в консоль
|
logging: false, // Отключение логирования запросов в консоль
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user