blockmine 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/README.md +107 -0
  2. package/backend/cli.js +40 -0
  3. package/backend/nodemon.json +12 -0
  4. package/backend/package-lock.json +2539 -0
  5. package/backend/package.json +34 -0
  6. package/backend/prisma/migrations/20250614085849_add_bot_note/migration.sql +126 -0
  7. package/backend/prisma/migrations/20250614153037_add_plugin_installed_date/migration.sql +27 -0
  8. package/backend/prisma/migrations/migration_lock.toml +3 -0
  9. package/backend/prisma/schema.prisma +138 -0
  10. package/backend/prisma/seed.js +60 -0
  11. package/backend/src/api/routes/bots.js +777 -0
  12. package/backend/src/api/routes/permissions.js +79 -0
  13. package/backend/src/api/routes/plugins.js +110 -0
  14. package/backend/src/api/routes/servers.js +50 -0
  15. package/backend/src/api/routes/settings.js +40 -0
  16. package/backend/src/core/BotManager.js +264 -0
  17. package/backend/src/core/BotProcess.js +233 -0
  18. package/backend/src/core/DependencyService.js +93 -0
  19. package/backend/src/core/MessageQueue.js +126 -0
  20. package/backend/src/core/PermissionManager.js +97 -0
  21. package/backend/src/core/PluginLoader.js +64 -0
  22. package/backend/src/core/PluginManager.js +161 -0
  23. package/backend/src/core/PluginService.js +57 -0
  24. package/backend/src/core/UserService.js +181 -0
  25. package/backend/src/core/commands/ping.js +35 -0
  26. package/backend/src/core/commands/warn.js +40 -0
  27. package/backend/src/core/ipc/PermissionManager.stub.js +24 -0
  28. package/backend/src/core/ipc/UserService.stub.js +31 -0
  29. package/backend/src/core/system/Command.js +53 -0
  30. package/backend/src/core/system/CommandHandler.js +98 -0
  31. package/backend/src/core/system/CommandManager.js +59 -0
  32. package/backend/src/core/system/CommandRegistry.js +21 -0
  33. package/backend/src/core/system/parseArguments.js +43 -0
  34. package/backend/src/real-time/socketHandler.js +31 -0
  35. package/backend/src/server.js +66 -0
  36. package/frontend/dist/apple-touch-icon.png +0 -0
  37. package/frontend/dist/assets/index-B83SHIXE.css +1 -0
  38. package/frontend/dist/assets/index-Dh-PcVh1.js +8179 -0
  39. package/frontend/dist/favicon-96x96.png +0 -0
  40. package/frontend/dist/favicon.ico +0 -0
  41. package/frontend/dist/favicon.svg +3 -0
  42. package/frontend/dist/index.html +51 -0
  43. package/frontend/dist/logo.png +0 -0
  44. package/frontend/dist/logo.svg +178 -0
  45. package/frontend/dist/monacoeditorwork/css.worker.bundle.js +53462 -0
  46. package/frontend/dist/monacoeditorwork/editor.worker.bundle.js +13519 -0
  47. package/frontend/dist/monacoeditorwork/html.worker.bundle.js +29662 -0
  48. package/frontend/dist/monacoeditorwork/json.worker.bundle.js +21320 -0
  49. package/frontend/dist/monacoeditorwork/ts.worker.bundle.js +256353 -0
  50. package/frontend/dist/site.webmanifest +21 -0
  51. package/frontend/dist/vite.svg +1 -0
  52. package/frontend/dist/web-app-manifest-192x192.png +0 -0
  53. package/frontend/dist/web-app-manifest-512x512.png +0 -0
  54. package/frontend/package.json +65 -0
  55. package/image/1.png +0 -0
  56. package/image/2.png +0 -0
  57. package/image/3.png +0 -0
  58. package/image/logo.png +0 -0
  59. package/package.json +27 -0
  60. package/tailwind.config.js +0 -0
  61. package/vite.config.js +0 -0
package/README.md ADDED
@@ -0,0 +1,107 @@
1
+ <div align="center">
2
+ <img src="./image/logo.png" alt="BlockMine Logo" width="150">
3
+ <h1>BlockMine</h1>
4
+ <p>
5
+ <strong>Мощная и удобная панель управления для ваших Minecraft-ботов на базе Mineflayer.</strong>
6
+ </p>
7
+ <p>
8
+ <img src="https://img.shields.io/github/stars/mmeerrkkaa/blockmine?style=for-the-badge&logo=github" alt="Stars">
9
+ <img src="https://img.shields.io/github/last-commit/mmeerrkkaa/blockmine?style=for-the-badge&logo=git" alt="Last Commit">
10
+ </p>
11
+ </div>
12
+
13
+ BlockMine — это open-source решение для централизованного управления и автоматизации ботов Minecraft. Запускайте ботов, управляйте ими в реальном времени через удобный веб-интерфейс, расширяйте их возможности с помощью плагинов и настраивайте всё под свои нужды.
14
+
15
+ ---
16
+
17
+
18
+ <table align="center">
19
+ <tr>
20
+ <td align="center">
21
+ <p><strong>Консоль</strong></p>
22
+ <img src="./image/1.png" alt="Скриншот дашборда" width="100%">
23
+ <em>Консоль бота</em>
24
+ </td>
25
+ <td align="center">
26
+ <p><strong>Магазин плагинов</strong></p>
27
+ <img src="./image/2.png" alt="Скриншот магазина плагинов" width="100%">
28
+ <em>Расширяйте возможности с помощью удобного браузера плагинов.</em>
29
+ </td>
30
+ <td align="center">
31
+ <p><strong>Управление</strong></p>
32
+ <img src="./image/3.png" alt="Скриншот страницы управления" width="100%">
33
+ <em>Настраивайте роли, права и так далее</em>
34
+ </td>
35
+ </tr>
36
+ </table>
37
+
38
+ ---
39
+
40
+ ## 🚀 Ключевые возможности
41
+
42
+ * **💻 Современный веб-интерфейс**: Адаптивная панель на React и Tailwind CSS для управления ботами, серверами и плагинами с любого устройства.
43
+ * **🤖 Комплексное управление ботами**:
44
+ * Запуск, остановка и перезапуск ботов в один клик.
45
+ * Интерактивная консоль для каждого бота.
46
+ * Мониторинг ресурсов (CPU/RAM) в реальном времени.
47
+ * Поддержка SOCKS5-прокси для каждого бота индивидуально.
48
+ * **🔌 Мощная система плагинов**:
49
+ * Расширяйте функциональность с помощью плагинов.
50
+ * Встроенный **браузер плагинов** с категориями и поиском.
51
+ * Автоматическая проверка и установка зависимостей.
52
+ * Настройка плагинов через графический интерфейс.
53
+ * **🔐 Гибкая система прав (Permissions)**:
54
+ * Создавайте группы пользователей (`Admin`, `Member` и др.).
55
+ * Настраивайте детальные права доступа к каждой команде.
56
+ * Черный список для пользователей.
57
+ * **⚙️ Умная система команд**:
58
+ * Декларативное создание команд с автоматическим парсингом и валидацией аргументов.
59
+ * Автоматическая генерация сообщений об ошибках и подсказок по использованию.
60
+ * **🔄 Экспорт и импорт**:
61
+ * Создавайте **полные резервные копии** ботов в один ZIP-архив, включая все плагины, их файлы и настройки.
62
+ * Легко переносите ботов между разными установками BlockMine.
63
+ * Настраивайте, какие именно данные экспортировать.
64
+ * **📦 Простая установка**: Запуск всей системы одной командой благодаря `npx`.
65
+
66
+ ## ✨ Быстрый старт с `npx`
67
+
68
+ Это самый простой способ запустить панель у себя на компьютере или сервере. Убедитесь, что у вас установлен **Node.js v18+**.
69
+
70
+ 1. Откройте терминал (командную строку).
71
+ 2. Выполните одну команду:
72
+
73
+ ```bash
74
+ npx blockmine
75
+ ```
76
+ 3. Готово! Скрипт автоматически скачает все необходимое, настроит базу данных и запустит сервер.
77
+
78
+ После успешного запуска вы увидите в консоли:
79
+ ```
80
+ Панель управления доступна по адресу: http://localhost:3001
81
+ ```
82
+ Откройте этот адрес в вашем браузере, чтобы начать работу.
83
+
84
+ ## 🧑‍💻 Для разработчиков и контрибьюторов
85
+
86
+ Если вы хотите внести свой вклад в проект или запустить его в режиме разработки.
87
+
88
+ ### 1. Установка
89
+
90
+ Сначала клонируйте репозиторий и установите все зависимости.
91
+
92
+ ```bash
93
+ # 1. Клонировать репозиторий
94
+ git clone https://github.com/mmeerrkkaa/blockmine.git
95
+ cd blockmine
96
+
97
+ # 2. Установить все зависимости для всех частей проекта (backend, frontend)
98
+ npm install
99
+ ```
100
+
101
+ ### 2. Запуск в режиме разработки
102
+
103
+ Эта команда одновременно запустит бэкенд (`nodemon`) и фронтенд (`vite`) с горячей перезагрузкой.
104
+
105
+ ```bash
106
+ npm run dev
107
+ ```
package/backend/cli.js ADDED
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/env node
2
+ const fs = require('fs');
3
+ const path = require('path');
4
+ const { execSync } = require('child_process');
5
+ const { startServer } = require('./src/server.js');
6
+
7
+ const prismaSchemaPath = path.join(__dirname, 'prisma', 'schema.prisma');
8
+
9
+ function runCommand(command) {
10
+ try {
11
+ console.log(`> ${command}`);
12
+ execSync(command, { stdio: 'inherit', cwd: __dirname });
13
+ } catch (e) {
14
+ console.error(`Команда "${command}" не удалась:`, e);
15
+ process.exit(1);
16
+ }
17
+ }
18
+
19
+ async function main() {
20
+ console.log('Запуск панели управления BlockMine...');
21
+
22
+
23
+ const migrationsPath = path.join(__dirname, 'prisma', 'migrations');
24
+ if (!fs.existsSync(migrationsPath)) {
25
+ console.log('Папка с миграциями не найдена. Создаем первоначальную миграцию...');
26
+ runCommand(`npx prisma migrate dev --name init --schema=${prismaSchemaPath}`);
27
+ console.log('Первоначальная настройка базы данных завершена.');
28
+ } else {
29
+ console.log('Проверка и применение обновлений базы данных...');
30
+ runCommand(`npx prisma migrate deploy --schema=${prismaSchemaPath}`);
31
+ console.log('База данных в актуальном состоянии.');
32
+ }
33
+
34
+ await startServer();
35
+ }
36
+
37
+ main().catch(e => {
38
+ console.error('Критическая ошибка при запуске:', e);
39
+ process.exit(1);
40
+ });
@@ -0,0 +1,12 @@
1
+ {
2
+ "watch": [
3
+ "src/"
4
+ ],
5
+ "ext": "js,mjs,cjs,json",
6
+ "ignore": [
7
+ "storage/",
8
+ "prisma/dev.db",
9
+ "prisma/dev.db-journal"
10
+ ],
11
+ "exec": "node src/server.js"
12
+ }