Решение проблем
🔧 Решение проблем
Руководство по устранению распространённых проблем с ScriptsLab.
Общие проблемы
Плагин не загружается
Симптомы: Плагин не отображается в списке /plugins
Причины:
- Неправильная версия сервера
- Конфликт с другим плагином
- Ошибка в JAR файле
Решения:
-
Проверьте версию сервера
/versionДолжна быть Paper 1.20.4+ илиSpigot 1.20.4+
-
Проверьте логи
logs/latest.logИщите ошибки при загрузке
-
Удалите плагины Отключите другие плагины и проверьте загрузку
Ошибка "Java version not supported"
Симптомы:
[ScriptsLab] ERROR: Java 17 required
Решение:
# Linux - Проверьте версию Java
java -version
# Установите Java 17
sudo apt install openjdk-17-jdk
Проверка в startup скрипте:
#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
java -Xmx4G -Xms2G -jar paper.jar --nogui
Ошибка "Plugin does not support this server type"
Симптомы:
[ScriptsLab] ERROR: Plugin requires Paper
Решение:
- Используйте Paper, Spigot или Pufferfish
- CraftBukkit не поддерживается!
Проблемы со скриптами
Скрипт не загружается
Симптомы: Команда из скрипта не работает
Диагностика:
-
Проверьте загрузку скриптов
/script list -
Проверьте логи
logs/latest.logИщите ошибки JavaScript
-
Включите debug режим
# config.yml general: debug: true
Распространённые причины:
| Ошибка | Причина | Решение |
|---|---|---|
ReferenceError | Не-defined переменная | Проверьте имя переменной |
SyntaxError | Ошибка синтаксиса | Проверьте скобки и запятые |
TypeError | Неверный тип | Проверьте вызов метода |
Ошибка "timeout" при выполнении
Симптомы:
[ScriptsLab] ERROR: Script execution timeout
Решение:
-
Увеличьте таймаут в
config.yml:scripts: timeout: 10000 # 10 секунд -
Оптимизируйте скрипт
- Избегайте бесконечных циклов
- Используйте асинхронные операции
Скрипт вызывает лаги сервера
Симптомы: Сервер тормозит после загрузки скрипта
Решение:
-
Проверьте циклы
// Плохо while (true) { // Бесконечный цикл! } // Хорошо Scheduler.runTimer(function() { // Код }, 0, 20); -
ИспользуйтеrunLater вместопрямых вызовов
// Плохо - блокирует сервер heavyFunction(); // Хорошо - выполняется асинхронно Scheduler.runLater(function() { heavyFunction(); }, 0); -
Ограничьте частоту выполнения
// Запускайте не чаще 1 раза в секунду Scheduler.runTimer(function() { // Код }, 0, 20);
Проблемы с памятью
OutOfMemoryError
Симптомы:
java.lang.OutOfMemoryError: Java heap space
Решение:
-
Увеличьте память в startup скрипте:
java -Xmx6G -Xms4G -jar paper.jar --nogui -
Уменьшите max-memory в config.yml:
scripts: max-memory: 64 -
Проверьте утечки памяти
- Удаляйте слушатели событий при выгрузке скрипта
- Отменяйте задачи планировщика
Проблемы с правами
Нет доступа к команде
Симптомы: You don't have permission to do that!
Решение:
-
Проверьте право
# В config.yml permissions permissions: scriptslab.use: true -
Добавьте право игроку
# LuckPerms lp user NickName permission set scriptslab.heal true -
Добавьте право в группу
# PermissionsEx groups: player: permissions: - scriptslab.heal
Проблемы с командами
Команда не найдена
Симптомы: Unknown command
Решение:
-
Проверьте список команд
/script list -
Перезагрузите скрипты
/script reload -
Проверьте название команды
// Регистрация Commands.register('hello', function(...) {...}); // Вызов /hello // Не /heallo
Команда работает только для игроков
Симптомы: Only players can use this command
Решение:
Commands.register('mycommand', function(sender, args) {
// Проверка на игрока (уже есть)
if (!sender.isPlayer()) {
sender.sendMessage('§cOnly for players!');
return;
}
// Ваш код
});
Проблемы с событиями
Событие не срабатывает
Симптомы: Обработчик события не выполняется
Диагностика:
-
Проверьте имя события
// Правильно Events.on('PlayerJoinEvent', function(event) {...}); // Неправильно Events.on('PlayerJoin', function(event) {...}); -
Проверьте отмену события
event.setCancelled(true); -
Включите debug
Events.on('PlayerJoinEvent', function(event) { Console.debug('Событие сработало!'); });
Проблемы с предметами
Кастомный предмет не создаётся
Симптомы: Команда получения предмета не работает
Решение:
-
ПроверьтеMaterial
// Правильно Material.DIAMOND_SWORD // Неправильно Material.Diamond_Sword -
Проверьте ItemMeta
var meta = item.getItemMeta(); if (meta) { // Код } -
Проверьте логи
Console.log('Создание предмета...'); // Добавьте логирование
Проблемы с хранением
Данные не сохраняются
Симптомы: После перезагрузки данные теряются
Решение:
-
Проверьте вызов save
Storage.save('key', value); // Сохранить // И загрузку Storage.load('key').then(function(value) { Console.log(value); }); -
Проверьтеconfig.yml
storage: provider: yaml auto-save: true
Проблемы с GraalVM
GraalVM не загружается
Симптомы:
[ScriptsLab] ERROR: Failed to initialize GraalVM
Решение:
-
Проверьте JAR файл
- Убедитесь, что используете правильный JAR
- Попробуйте пересобрать
-
ПроверьтеJava
- Нужен Java 17+
- Убедитесь, что JAVA_HOME указан правильно
Логирование проблем
Как получить полезную информацию
-
Включите debug режим:
general: debug: true -
Проверьте логи:
logs/latest.log -
Используйте Console.log:
Console.log('Отладка: ' + variable); Console.debug('Debug: ' + variable);
Команды диагностики
| Команда | Описание |
|---|---|
/scriptslab info | Информация о плагине |
/script list | Список скриптов |
/script reload | Перезагрузить скрипты |
/module list | Список модулей |
Получение помощи
Где искать помощь
- Логи сервера -
logs/latest.log - GitHub Issues - сообщить об ошибке
- Discord - сообщество
При сообщении об ошибке
Укажите:
- Версию ScriptsLab
- Версию сервера (Paper/Spigot)
- Версию Java (
java -version) - Лог ошибки
- Шаги воспроизведения
Следующие шаги
| Шаг | Описание |
|---|---|
| FAQ | Часто задаваемые вопросы |
| Script API | Полный API |
| Examples | Примеры |
🔧 Troubleshooting (English)
Guide to resolving common ScriptsLab issues.
General Issues
Plugin Not Loading
Symptoms: Plugin doesn't appear in /plugins list
Causes:
- Wrong server version
- Conflict with another plugin
- Corrupted JAR file
Solutions:
-
Check server version
/versionMust be Paper 1.20.4+ or Spigot 1.20.4+
-
Check logs
logs/latest.logLook for loading errors
-
Remove other plugins Disable other plugins and check loading
Error "Java version not supported"
Symptoms:
[ScriptsLab] ERROR: Java 17 required
Solution:
# Linux - Check Java version
java -version
# Install Java 17
sudo apt install openjdk-17-jdk
Check in startup script:
#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
java -Xmx4G -Xms2G -jar paper.jar --nogui
Error "Plugin does not support this server type"
Symptoms:
[ScriptsLab] ERROR: Plugin requires Paper
Solution:
- Use Paper, Spigot, or Pufferfish
- CraftBukkit is NOT supported!
Script Issues
Script Not Loading
Symptoms: Command from script doesn't work
Diagnostics:
-
Check script loading
/script list -
Check logs
logs/latest.logLook for JavaScript errors
-
Enable debug mode
# config.yml general: debug: true
Common Causes:
| Error | Cause | Solution |
|---|---|---|
ReferenceError | Undefined variable | Check variable name |
SyntaxError | Syntax error | Check brackets and commas |
TypeError | Wrong type | Check method call |
"timeout" Error During Execution
Symptoms:
[ScriptsLab] ERROR: Script execution timeout
Solution:
-
Increase timeout in
config.yml:scripts: timeout: 10000 # 10 seconds -
Optimize script
- Avoid infinite loops
- Use asynchronous operations
Script Causes Server Lag
Symptoms: Server slows down after loading script
Solution:
-
Check loops
// Bad while (true) { // Infinite loop! } // Good Scheduler.runTimer(function() { // Code }, 0, 20); -
Use runLater instead of direct calls
// Bad - blocks server heavyFunction(); // Good - executes asynchronously Scheduler.runLater(function() { heavyFunction(); }, 0); -
Limit execution frequency
// Run no more than once per second Scheduler.runTimer(function() { // Code }, 0, 20);
Memory Issues
OutOfMemoryError
Symptoms:
java.lang.OutOfMemoryError: Java heap space
Solution:
-
Increase memory in startup script:
java -Xmx6G -Xms4G -jar paper.jar --nogui -
Decrease max-memory in config.yml:
scripts: max-memory: 64 -
Check for memory leaks
- Remove event listeners on script unload
- Cancel scheduler tasks
Permission Issues
No Access to Command
Symptoms: You don't have permission to do that!
Solution:
-
Check permission
# In config.yml permissions permissions: scriptslab.use: true -
Add permission to player
# LuckPerms lp user NickName permission set scriptslab.heal true -
Add permission to group
# PermissionsEx groups: player: permissions: - scriptslab.heal
Command Issues
Command Not Found
Symptoms: Unknown command
Solution:
-
Check command list
/script list -
Reload scripts
/script reload -
Check command name
// Registration Commands.register('hello', function(...) {...}); // Call /hello // Not /heallo
Command Works Only for Players
Symptoms: Only players can use this command
Solution:
Commands.register('mycommand', function(sender, args) {
// Player check (already there)
if (!sender.isPlayer()) {
sender.sendMessage('§cOnly for players!');
return;
}
// Your code
});
Event Issues
Event Not Triggering
Symptoms: Event handler doesn't execute
Diagnostics:
-
Check event name
// Correct Events.on('PlayerJoinEvent', function(event) {...}); // Incorrect Events.on('PlayerJoin', function(event) {...}); -
Check event cancellation
event.setCancelled(true); -
Enable debug
Events.on('PlayerJoinEvent', function(event) { Console.debug('Event triggered!'); });
Item Issues
Custom Item Not Creating
Symptoms: Item get command doesn't work
Solution:
-
Check Material
// Correct Material.DIAMOND_SWORD // Incorrect Material.Diamond_Sword -
Check ItemMeta
var meta = item.getItemMeta(); if (meta) { // Code } -
Check logs
Console.log('Creating item...'); // Add logging
Storage Issues
Data Not Saving
Symptoms: Data lost after restart
Solution:
-
Check save call
Storage.save('key', value); // Save // And load Storage.load('key').then(function(value) { Console.log(value); }); -
Check config.yml
storage: provider: yaml auto-save: true
GraalVM Issues
GraalVM Not Loading
Symptoms:
[ScriptsLab] ERROR: Failed to initialize GraalVM
Solution:
-
Check JAR file
- Make sure you're using the correct JAR
- Try rebuilding
-
Check Java
- Need Java 17+
- Make sure JAVA_HOME is set correctly
Logging Issues
How to Get Useful Information
-
Enable debug mode:
general: debug: true -
Check logs:
logs/latest.log -
Use Console.log:
Console.log('Debug: ' + variable); Console.debug('Debug: ' + variable);
Diagnostic Commands
| Command | Description |
|---|---|
/scriptslab info | Plugin information |
/script list | Script list |
/script reload | Reload scripts |
/module list | Module list |
Getting Help
Where to Find Help
- Server logs -
logs/latest.log - GitHub Issues - report a bug
- Discord - community
When Reporting a Bug
Specify:
- ScriptsLab version
- Server version (Paper/Spigot)
- Java version (
java -version) - Error log
- Reproduction steps
Next Steps
| Step | Description |
|---|---|
| FAQ | Frequently asked questions |
| Script API | Full API |
| Examples | Examples |