Отладка

Логи являются важнейшей частью, когда речь заходит об отладке вашего сервера и выяснении, что пошло не так. Эта страница покажет основные примеры логов и постарается объяснить, что вам надо сделать, чтобы исправить проблемы во время столкновения с ними.

Контрольный список

Когда вы сталкиваетесь с падением (крашем) или предупреждением — убедитесь, что вы установили SpongeForge или SpongeVanilla правильно. Вот небольшой контрольный список для помощи вам. Если вы не знаете как получить нужную вам информацию — ознакомьтесь с разделом Лог-файлы. Там рассказывается как получить необходимую информацию из ваших журналов (лог-файлов).

  1. Установлена ли Java 8 и использует ли её Sponge?

Для Sponge необходима Java 8. На Java 7 или ниже он будет падать.

  1. Установлена ли рекомендуемая версия Forge?

В большинстве случаев SpongeForge будет работать на версиях Forge старше или новее чем рекомендованная. Однако настоятельно рекомендуется запускать только рекомендуемую версию. Если вы столкнулись с падением сервера и ваши версии не совпадают — исправьте несовпадение и попробуйте ещё раз. Если вы не знаете какая версия Forge вам нужна — ознакомьтесь со статьёй Установка SpongeForge

  1. Существуют ли другие установленные coremods (кроме SpongeForge)?

Некоторые coremods модифицируют Forge, что может сделать невозможным работу SpongeForge. Если у вас установлены coremods и Sponge падает, попробуйте удалить их и проверить снова. Пожалуйста, сообщите о любых несовместимых coremods на GitHub (англ.) или на Форум Sponge (англ.). Это позволит сотрудникам решить эти проблемы как можно скорее.

  1. Все ли ваши плагины собраны на выбранной вами сборке Sponge?

SpongeAPI может иногда изменяться. Если происходит сбой при попытке использовать старые плагины на более новых сборках Sponge, попробуйте понизить версию Sponge или свяжитесь с разработчиком плагина на тему его обновления. Если вы используете более старую версию Sponge — обновите её. Если это не исправит проблему, то свяжитесь с разработчиком плагина и спросите решение.

  1. Определите неисправный плагин

Если проблема не устранена — попытайтесь удалить все плагины и добавляйте их один за другим, перезагружая сервер каждый раз, когда добавляете плагин.

Если вы всё ещё не знаете как и что привело к крашу (падению) обратите внимание на ваш краш-лог. Некоторые распространённые краши и распространённые решения приведены ниже.

Общие предупреждения

Распространённым источником ошибок является несовпадение версий SpongeForge и Forge или SpongeForge и плагинов. Для начала посмотрим на предупреждение, которое выводит нам Forge после краша:

WARNING: coremods are present:
   SpongeForge (sponge-1.8-1521-2.1DEV-750.jar)
Contact their authors BEFORE contacting forge

Это не ошибка, это Forge говорит нам, что Coremod (здесь: SpongeForge) установлен. Forge советует вам обратиться к разработчикам Sponge прежде чем обращаться в поддержку Forge за помощью. Пока не о чем беспокоиться.

Распространённые ошибки

Вот несколько распространённых ошибок и некоторые причины их возникновения.

Примечание

Если вы столкнулись с крашем, ошибкой или какой-либо другой неисправностью не перечисленной тут — пожалуйста, сообщите о ней на Форум Sponge (англ.) или на Github (англ.). Это поможет другим, которые тоже столкнулись с этой ошибкой.

Несоответствие SpongeForge и Forge

[12:59:21] [main/ERROR] [mixin/]: @Mixin target net.minecraftforge.event.world.BlockEvent$NeighborNotifyEvent was not found mixins.forge.core.json:event.block.MixinEventNotifyNeighborBlock

Это распространённый сбой при попытке запустить SpongeForge на несоответствующей сборке Forge. Обратите внимание, что target/Mixin могут различаться. Всегда подбирайте совпадающие сборки Forge и SpongeForge. Если вы не знаете какая версия Forge вам нужна и у вас уже есть сборка SpongeForge, взгляните на статью Установка SpongeForge

Другие распространённые ошибки

Caused by: java.lang.ClassNotFoundException: org.spongepowered.api.event.state.ServerStartedEvent
Caused by: java.lang.NullPointerException

Первая ошибка указывает на то, что Class отсутствует, вторая ошибка это исключение NullPointer, которое указывает на то, что используемый вами плагин пытается использовать отсутствующие параметры. Это происходит когда вы пытаетесь запустить старый плагин на новой версии SpongeForge или SpongeVanilla и наоборот.

java.lang.AbstractMethodError: net.minecraft.entity.player.EntityPlayerMP.getTabList()Lorg/spongepowered/api/entity/living/player/tab/TabList;
at (...)

Ошибка AbstractMethodError возникает, когда плагин пытается вызвать метод, который ещё не реализован. Проверьте, используете ли вы самую последнюю сборку Sponge и обновите, если доступна новая версия. Если проблема не решилась — сообщите нам об этом через систему отслеживания ошибок или на IRC. Вы также можете запросить реализацию отсутствующих функций.

[Server thread/INFO]: Starting minecraft server version 1.8
[Server thread/ERROR]: Encountered an unexpected exception
java.lang.NoClassDefFoundError: org/spongepowered/api/event/game/state/GameStartingServerEvent

Примечание

Прочтите полный образец краш-лога: SpongeForge 575 краш-лог с плагином, собранным под 750

Ошибка NoClassDefFoundError происходит, когда плагин пытается получить доступ к классу, не указаному в classpath. Это происходит, когда изменяется API и вы пытаетесть запустить старый плагин на новой сборке Sponge и наоборот. Всегда старайтесь использовать правильную версию! Либо спросите автора, на какой версии Sponge он собирал плагин или для решения попробуйте обновить/понизить сборку SpongeForge или SpongeVanilla.