Back
INSTALL.md
markdownINSTALL.md
# Установка ScriptsLab
## Быстрая установка
1. **Остановите сервер**
```bash
stop
```
2. **Замените JAR файл**
- Удалите старый `plugins/ScriptsLab-1.0.0.jar` (если есть)
- Скопируйте новый `target/ScriptsLab-1.0.0.jar` в папку `plugins/`
3. **Запустите сервер**
```bash
start
```
## Проверка установки
После запуска сервера вы должны увидеть в логах:
```
[ScriptsLab] ╔═══════════════════════════════════════╗
[ScriptsLab] ║ ScriptsLab v1.0.0 ║
[ScriptsLab] ║ Your Minecraft Scripting Lab ║
[ScriptsLab] ╚═══════════════════════════════════════╝
[ScriptsLab] ✓ Core services initialized
[ScriptsLab] ✓ Commands registered
[ScriptsLab] ╔═══════════════════════════════════════╗
[ScriptsLab] ║ ScriptsLab - Ready! ║
[ScriptsLab] ╚═══════════════════════════════════════╝
```
## Тестирование
### 1. Проверьте команды
В игре или консоли выполните:
```
/scriptslab info
```
Вы должны увидеть информацию о плагине.
### 2. Проверьте список модулей
```
/module list
```
### 3. Проверьте список скриптов
```
/script list
```
## Структура папок
После первого запуска ScriptsLab создаст следующую структуру:
```
plugins/
└── ScriptsLab/
├── config.yml # Основная конфигурация
├── messages.yml # Сообщения плагина
├── scripts/ # Ваши JavaScript скрипты
│ └── examples/ # Примеры скриптов
├── modules/ # Модули плагина
│ └── demo/ # Демо-модуль
└── data/ # Хранилище данных
```
## Создание первого скрипта
1. Создайте файл `plugins/ScriptsLab/scripts/hello.js`:
```javascript
// Регистрируем команду
plugin.registerCommand('hello', function(sender, args) {
sender.sendMessage('§aПривет, ' + sender.getName() + '!');
});
Console.log('Скрипт hello.js загружен!');
```
2. Перезагрузите скрипты:
```
/script reload
```
3. Используйте команду:
```
/hello
```
## Исправление ошибок
### Ошибка: "Console.log is not defined"
**Решение**: Обновите плагин до последней версии. В новой версии `Console.log()` работает корректно.
### Ошибка: "Script engine not initialized"
**Решение**:
1. Проверьте, что используете Java 17+
2. Убедитесь, что в `config.yml` параметр `scripts.enabled: true`
3. Перезапустите сервер
### Предупреждение: "JVMCI is not enabled"
**Это нормально!** GraalVM работает в режиме интерпретатора. Для лучшей производительности можно:
1. Установить GraalVM JDK
2. Добавить флаг JVM: `-XX:+EnableJVMCI`
Но это не обязательно для работы плагина.
## Конфигурация
### config.yml
Основные настройки:
```yaml
scripts:
enabled: true # Включить скриптовый движок
auto-reload: true # Автоматическая перезагрузка при изменении
timeout: 5000 # Таймаут выполнения скрипта (мс)
max-memory: 128 # Максимальная память на скрипт (МБ)
modules:
auto-load: true # Автозагрузка модулей
enabled-modules: # Список включённых модулей
- demo
storage:
provider: yaml # Провайдер хранилища (yaml/json/sqlite)
cache-enabled: true # Включить кэширование
```
## Обновление
Для обновления плагина:
1. Остановите сервер
2. Сделайте резервную копию папки `plugins/ScriptsLab/`
3. Замените JAR файл
4. Запустите сервер
5. Проверьте логи на наличие ошибок
## Удаление
Для полного удаления плагина:
1. Остановите сервер
2. Удалите `plugins/ScriptsLab-1.0.0.jar`
3. Удалите папку `plugins/ScriptsLab/` (если хотите удалить все данные)
4. Запустите сервер
## Поддержка
- **Документация**: [README.md](README.md)
- **Сборка**: [BUILD.md](BUILD.md)
- **Архитектура**: [ARCHITECTURE.md](ARCHITECTURE.md)
## Требования
- **Сервер**: Paper 1.20.4+ (или Purpur/Pufferfish)
- **Java**: 17 или выше
- **RAM**: Минимум 2GB рекомендуется
- **Диск**: ~50MB для плагина + зависимостей
## Совместимость
✅ **Совместимо с:**
- Paper 1.20.4+
- Purpur 1.20.4+
- Pufferfish 1.20.4+
❌ **Не совместимо с:**
- Spigot (используйте Paper)
- CraftBukkit (используйте Paper)
- Bukkit (используйте Paper)
## Производительность
ScriptsLab оптимизирован для производительности:
- Асинхронная загрузка скриптов
- Кэширование данных
- Ленивая загрузка модулей
- Потокобезопасные операции
**Типичное использование ресурсов:**
- Загрузка: ~3-5 секунд
- Память: ~100-200MB (зависит от количества скриптов)
- CPU: Минимальное влияние
---
**Готово! Теперь вы можете использовать ScriptsLab! 🚀**