Back

INSTALL.md

markdown
INSTALL.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! 🚀**