- Баллы
- 98
- Ник в Minecraft
- Dymeth
Всем привет.
Если вам скинули ссылку на эту тему - скорее всего, у вас возникла какая-то проблема с вашим сервером. И первым делом для её решения вам необходимо ознакомиться с данной темой - вполне вероятно, что это решит вашу проблему.
Весь форум задолбался объяснять людям, в чём проблема CraftBukkit и Spigot. Некоторые называют CraftBukkit просто ядром Bukkit - для таких товарищей тема тоже будет полезна.
Поэтому настало время для второго акта ненависти в сторону ядер серверов Minecraft. Первый для любителей модов тут.
Я конкретно по пунктам и с доказательствами объясню вам, почему использовать CraftBukkit (Bukkit) и Spigot в 2024 году просто недопустимо. Удивительно, что кому-то приходится до сих пор это объяснять.
Про CraftBukkit и Bukkit.
Начнём с того, что CraftBukkit (он же Bukkit) - это ядро, разработка которого заброшена на версии 1.8, то есть уже 10 лет назад. Команда, разрабатывавшая это ядро, переключилась на Spigot из-за DMCA в 2014 году. Почитать об этом подробней можно тут и тут. Зачем некоторые сервисы предлагают скачивать CraftBukkit - для меня загадка. Использовать это ядро просто бессмысленно. Даже обсуждать этот вопрос смысла нет. Ни один человек в здравом уме не порекомендует вам данное ядро. Многие плагины просто не смогут работать на CraftBukkit.
Ближайший родственник этого ядра - Spigot. О нём и поговорим.
Окей, а что не так со Spigot?
Приготовьтесь, многобукав. Погнали!
Первое. Отсутствие исправлений некоторых дюпов.
Разработчики ядра Spigot отказываются исправлять некоторые дюпы, поскольку считают их геймплейными особенностями игры. Это, конечно, хорошо, но если вы хотите добиться честной игры - Spigot вам не помощник. Запретить некоторые дюпы в конфиге просто-напросто нельзя, поэтому выбора у вас нет. Если вы используете Spigot - вам придётся смириться с дюпом динамита, ковров, ниток и прочими.
На других, более современных ядрах этой проблемы нет - можно разрешить большинство дюпов, которые не влияют на стабильность работы сервера.
Второе. Медленное исправление проблем.
Достаточно просто зайти багтрекер Спигота, чтобы взглянуть, насколько долго исправляются некоторые проблемы.
Приведу личный пример. Я разработчик плагина PhysicsControl. И однажды один из пользователей плагина сообщил мне, что на Spigot не работает часть функционала. Выяснилось, что в очередном обновлении Spigot сломали то, что раньше прекрасно работало. Я написал обращение на багтрекер. Знаете, сколько тот человек ждёт исправления проблемы? Уже полтора года.
Тем времени пользователи альтернативных ядер ждали всего 11 дней.
Но это ещё цветочки. Всё становится куда веселее, когда речь заходит о критических уязвимостях. Так, например, на сегодняшний день в Spigot до сих пор присутствует уязвимость, позволяющая крайне сильно нагружать Spigot-сервера при помощи чита Nocom. В лучшем случае вы будете испытывать просадки TPS, в худшем ваш сервер и вовсе станет недоступен. Для понимания - чит стал известен широкой общественности в 2021 году. То есть на текущий момент критическая проблема не исправлена даже спустя 3 года. Пользователям Spigot остаётся лишь полагаться на лимитеры пакетов в античитах и ViaVersion...
Третье. Оптимизации.
По текущим меркам Spigot довольно плохо оптимизирован.
Для примера - на Spigot крайне неоптимально работает обработка редстоуна. Самое смешное, что главный разработчик Spigot под ником md_5 даже выпустил платный плагин, который исправляет эту проблему. Плагин назывался PandaWire. Что мешало внедрить функционал этого плагина прямо в Спигот? Полагаю, желание заработать на продажах "оптимизитора". Сейчас плагин скрыт по тем или иным причинам, но вы можете проверить мои слова вбив в гугл "md_5 PandaWire" или открыв это.
Речь в этом пункте идёт не только про оптимизиации самого ядра, но и про косвенные проблемы с производительностью. Например, для борьбы с X-Ray Spigot вынуждает использовать плагин Orebfuscator, который потребляет достаточно большое количество ресурсов. На альтернативных ядрах защита от X-Ray вшита в эти самые ядра и работает столь же хорошо, но затрачивает существенно меньше ресурсов сервера - в первую очередь процессора.
Помимо этого, Спигот имеет недостаточно хорошие инструменты для поиска и устранения проблем. Например, он использует устаревшие тайминги. Они недостаточно информативные и не предоставляют полной картины того, что происходит с сервером.
В более современный Paper вшиты тайминги более новой версии, более информативные.
В ещё более современный Purpur и вовсе вшит плагин Spark. Просто зайдя на страницу этого плагина вы уже погрузитесь в совершенно новый мир. Вам повезло, что вы можете поставить этот плагин на Spigot. Но есть вероятность, что после прочтения данной темы это вам уже не понадобится.
Четвёртое. Настройка.
По современным меркам настройка Spigot оставляет желать лучшего. Например, вы не можете по-человечески перевести сообщение о нехватке прав у пользователя. Или ограничить количество принимаемых от игроков пакетов.
Современные ядра имеют гораздо больше полезных и важных настроек.
Пятое. Возможности для разработчиков/программистов плагинов.
Spigot практически остановился в развитии, поэтому есть множество проблем с функционалом.
- Как задать предмету RGB-название?
- Как заставить моба идти в определённую точку?
- Как скрыть конкретного моба некоторым игрокам?
- Как получать информацию о скинах игроков?
- Как получить название/иконку той или иной ачивки?
- Как отслеживать появление любых сущностей в мире, включая вагонетки, сферы опыта, картины и т.д.?
- Как отследить попадание молнии в сущность?
- Как отследить прыжок игрока?
- И ещё много и много действий на сервере...
На ядре Spigot либо никак, либо с большим количеством кода , либо с привлечением второстепенных плагинов, либо с использованием нестабильных NMS и пакетов.
Из-за всех этих ограничений многие (в т.ч. популярные) плагины предупреждают о том, что Spigot не позволяет использовать весь функционал этих плагинов.
Например Essentials: "You are running a server with limited API functionality. EssentialsX will still work, but certain features may be disabled."
Или вот: "WorldEdit works better if you use Paper as your server software."
Ещё пример: "[AdvancedPortals] Paper config not detected, ignoring paper settings"
У более современных ядер гораздо больше функционала.
Шестое. Прочие мелочи.
На Spigot без дополнительных манипуляций у вас в логах на месте цветовых кодов будет мусор, мешающий чтению:

Или же другой пример - плагины в /plugins отображаются в случайном порядке, а не в алфавитном:
И это далеко не все моменты. Опять же, на более современных ядрах всех этих проблем нет.
Почему так получилось?
Команда разработчиков Spigot ушла в команды разработки более перспективных ядер, о которых я расскажу ниже. Главный разработчик - md_5, похоже, не особо замотивирован в развитии Spigot.
Но есть ли преимущества у Spigot?
Есть буквально пара незначительных:
1) Вы можете позволить игрокам использовать баги/дюпы, которые влияют на стабильность сервера. Например, сапрессор. Он вызывает серьёзную ошибку внутри ядра, поэтому альтернативные ядра были вынуждены её исправить без возможности включить этот функционал обратно.
2) Редстоун на Спиготе работает практически идентично с ванильным майнкрафтом (одиночной игрой). Современные альтернативы немного влияют на механику редстоуна, поэтому технически сложные редстоун-схемы работать будут только на Спигот. Пример - фермы нулевого тика.
Но важно понимать, что даже Spigot не даёт полностью ванильного геймплея - подробнее, например, тут.
И ещё кое-что по теме.
Стоят ли эти моменты ваших мучений со Spigot? Вряд ли.
Окей, что делать?
Переходить на более современные ядра.
Если у вас 1.12.2 - вам стоит перейти как минимум на Paper.
На версиях 1.13-1.18.1 безопасны лишь Paper и Patina из-за Log4Shell.
На версии 1.18.2+ есть адекватные форки Paper - например Pufferfish и Purpur.
Подробнее о разнообразии современных ядер можно почитать тут: https://rubukkit.org/threads/176425
Крайне рекомендую вам ознакомиться с этой темой, если вы хотите хоть что-то понимать в серверах Minecraft Java Edition. Это прям самые основы.
Как перейти на Paper, Purpur, Patina, Pufferfish или другие форки?
Вы не поверите, насколько это просто. Всего три простых шага.
1) Сделайте бекап/копию вашего сервера. Вероятнее всего, он вам не понадобится. Но на всякий случай не помешает
2) Замените Spigot.jar или CraftBukkit.jar на джарник нового ядра - Paper.jar/Purpur.jar или другой.
3) Запустите сервер, вновь остановите его и настройте новые появившиеся конфиги в папке сервера - paper.yml/pufferfish.yml/purpur.yml/папка config и прочие. Ориентируйтесь по названию своего нового ядра. Как конкретно настраивать - читайте официальную документацию, ссылки на документацию наиболее распространённых ядер я предоставил, остальное ищите самостоятельно.
А что делать с плагинами?
Ничего. 99.9% плагинов, которые у вас работали на Spigot, будут прекрасно работать на Paper или его форках. Если ВДРУГ случится, то плагин не поддерживает современные ядра - это явный признак, что плагин нужно либо обновить, либо заменить его на более современный аналог.
В моей десятилетней практике я лишь 2 раза сталкивался с тем, что плагины корректно работали на Spigot, но некорректно работали на Paper или его форках.
Короче говоря, просто заменяйте ядро и не парьтесь - всё будет в порядке.
А если меня не убедили доводы?
Окей, вы можете:
1) Ещё раз перечитать всё, что я написал и подумать о том, какие преимущества вы упускаете, используя Spigot или, боже упаси, CraftBukkit
2) Взглянуть на статистику по большому количеству серверов Minecraft: https://bstats.org/global/bukkit
Спойлер: Paper и его форками пользуются в 3 (!!!) раза чаще, чем Spigot. Про CraftBukkit молчу вовсе.
3) Прочитать обсуждения конкретных особенностей и мнения других людей: раз и два
4) Задать вопрос или обсудить свои опасения в этой теме
Либо вы можете просто остаться на Spigot со всеми его недостатками и смириться с тем, что каждый второй на этом форуме первым делом будет просить вас поменять ядро на более современное при каждом удобном случае.
На этом всё. Надеюсь, я помог вам сделать правильный выбор.
Если вам скинули ссылку на эту тему - скорее всего, у вас возникла какая-то проблема с вашим сервером. И первым делом для её решения вам необходимо ознакомиться с данной темой - вполне вероятно, что это решит вашу проблему.
Весь форум задолбался объяснять людям, в чём проблема CraftBukkit и Spigot. Некоторые называют CraftBukkit просто ядром Bukkit - для таких товарищей тема тоже будет полезна.
Поэтому настало время для второго акта ненависти в сторону ядер серверов Minecraft. Первый для любителей модов тут.
Я конкретно по пунктам и с доказательствами объясню вам, почему использовать CraftBukkit (Bukkit) и Spigot в 2024 году просто недопустимо. Удивительно, что кому-то приходится до сих пор это объяснять.
Про CraftBukkit и Bukkit.
Начнём с того, что CraftBukkit (он же Bukkit) - это ядро, разработка которого заброшена на версии 1.8, то есть уже 10 лет назад. Команда, разрабатывавшая это ядро, переключилась на Spigot из-за DMCA в 2014 году. Почитать об этом подробней можно тут и тут. Зачем некоторые сервисы предлагают скачивать CraftBukkit - для меня загадка. Использовать это ядро просто бессмысленно. Даже обсуждать этот вопрос смысла нет. Ни один человек в здравом уме не порекомендует вам данное ядро. Многие плагины просто не смогут работать на CraftBukkit.
Ближайший родственник этого ядра - Spigot. О нём и поговорим.
Окей, а что не так со Spigot?
Приготовьтесь, многобукав. Погнали!
Первое. Отсутствие исправлений некоторых дюпов.
Разработчики ядра Spigot отказываются исправлять некоторые дюпы, поскольку считают их геймплейными особенностями игры. Это, конечно, хорошо, но если вы хотите добиться честной игры - Spigot вам не помощник. Запретить некоторые дюпы в конфиге просто-напросто нельзя, поэтому выбора у вас нет. Если вы используете Spigot - вам придётся смириться с дюпом динамита, ковров, ниток и прочими.
На других, более современных ядрах этой проблемы нет - можно разрешить большинство дюпов, которые не влияют на стабильность работы сервера.
Тут пригодились бы ссылки на отказы команды Spigot фиксить дюпы, а также больше упоминаний конкретных дюпов. Если вы знаете, как это найти - закиньте в комменты, пожалуйста.
Второе. Медленное исправление проблем.
Достаточно просто зайти багтрекер Спигота, чтобы взглянуть, насколько долго исправляются некоторые проблемы.
Приведу личный пример. Я разработчик плагина PhysicsControl. И однажды один из пользователей плагина сообщил мне, что на Spigot не работает часть функционала. Выяснилось, что в очередном обновлении Spigot сломали то, что раньше прекрасно работало. Я написал обращение на багтрекер. Знаете, сколько тот человек ждёт исправления проблемы? Уже полтора года.
Тем времени пользователи альтернативных ядер ждали всего 11 дней.
Но это ещё цветочки. Всё становится куда веселее, когда речь заходит о критических уязвимостях. Так, например, на сегодняшний день в Spigot до сих пор присутствует уязвимость, позволяющая крайне сильно нагружать Spigot-сервера при помощи чита Nocom. В лучшем случае вы будете испытывать просадки TPS, в худшем ваш сервер и вовсе станет недоступен. Для понимания - чит стал известен широкой общественности в 2021 году. То есть на текущий момент критическая проблема не исправлена даже спустя 3 года. Пользователям Spigot остаётся лишь полагаться на лимитеры пакетов в античитах и ViaVersion...
Третье. Оптимизации.
По текущим меркам Spigot довольно плохо оптимизирован.
Для примера - на Spigot крайне неоптимально работает обработка редстоуна. Самое смешное, что главный разработчик Spigot под ником md_5 даже выпустил платный плагин, который исправляет эту проблему. Плагин назывался PandaWire. Что мешало внедрить функционал этого плагина прямо в Спигот? Полагаю, желание заработать на продажах "оптимизитора". Сейчас плагин скрыт по тем или иным причинам, но вы можете проверить мои слова вбив в гугл "md_5 PandaWire" или открыв это.
Речь в этом пункте идёт не только про оптимизиации самого ядра, но и про косвенные проблемы с производительностью. Например, для борьбы с X-Ray Spigot вынуждает использовать плагин Orebfuscator, который потребляет достаточно большое количество ресурсов. На альтернативных ядрах защита от X-Ray вшита в эти самые ядра и работает столь же хорошо, но затрачивает существенно меньше ресурсов сервера - в первую очередь процессора.
Помимо этого, Спигот имеет недостаточно хорошие инструменты для поиска и устранения проблем. Например, он использует устаревшие тайминги. Они недостаточно информативные и не предоставляют полной картины того, что происходит с сервером.
В более современный Paper вшиты тайминги более новой версии, более информативные.
В ещё более современный Purpur и вовсе вшит плагин Spark. Просто зайдя на страницу этого плагина вы уже погрузитесь в совершенно новый мир. Вам повезло, что вы можете поставить этот плагин на Spigot. Но есть вероятность, что после прочтения данной темы это вам уже не понадобится.
Четвёртое. Настройка.
По современным меркам настройка Spigot оставляет желать лучшего. Например, вы не можете по-человечески перевести сообщение о нехватке прав у пользователя. Или ограничить количество принимаемых от игроков пакетов.
Современные ядра имеют гораздо больше полезных и важных настроек.
Пятое. Возможности для разработчиков/программистов плагинов.
Spigot практически остановился в развитии, поэтому есть множество проблем с функционалом.
- Как задать предмету RGB-название?
- Как заставить моба идти в определённую точку?
- Как скрыть конкретного моба некоторым игрокам?
- Как получать информацию о скинах игроков?
- Как получить название/иконку той или иной ачивки?
- Как отслеживать появление любых сущностей в мире, включая вагонетки, сферы опыта, картины и т.д.?
- Как отследить попадание молнии в сущность?
- Как отследить прыжок игрока?
- И ещё много и много действий на сервере...
На ядре Spigot либо никак, либо с большим количеством кода , либо с привлечением второстепенных плагинов, либо с использованием нестабильных NMS и пакетов.
NMS и пакеты меняются от версии к версии. В итоге плагин будет работать на одной лишь версии сервера, пока разработчик явно не добавит поддержку других нужных версий. Если вы решите обновиться на другую версию игры - это станет для вас проблемой.
Из-за всех этих ограничений многие (в т.ч. популярные) плагины предупреждают о том, что Spigot не позволяет использовать весь функционал этих плагинов.
Например Essentials: "You are running a server with limited API functionality. EssentialsX will still work, but certain features may be disabled."
Или вот: "WorldEdit works better if you use Paper as your server software."
Ещё пример: "[AdvancedPortals] Paper config not detected, ignoring paper settings"
У более современных ядер гораздо больше функционала.
Шестое. Прочие мелочи.
На Spigot без дополнительных манипуляций у вас в логах на месте цветовых кодов будет мусор, мешающий чтению:
Или же другой пример - плагины в /plugins отображаются в случайном порядке, а не в алфавитном:
Почему так получилось?
Команда разработчиков Spigot ушла в команды разработки более перспективных ядер, о которых я расскажу ниже. Главный разработчик - md_5, похоже, не особо замотивирован в развитии Spigot.
Но есть ли преимущества у Spigot?
Есть буквально пара незначительных:
1) Вы можете позволить игрокам использовать баги/дюпы, которые влияют на стабильность сервера. Например, сапрессор. Он вызывает серьёзную ошибку внутри ядра, поэтому альтернативные ядра были вынуждены её исправить без возможности включить этот функционал обратно.
2) Редстоун на Спиготе работает практически идентично с ванильным майнкрафтом (одиночной игрой). Современные альтернативы немного влияют на механику редстоуна, поэтому технически сложные редстоун-схемы работать будут только на Спигот. Пример - фермы нулевого тика.
Но важно понимать, что даже Spigot не даёт полностью ванильного геймплея - подробнее, например, тут.
И ещё кое-что по теме.
Стоят ли эти моменты ваших мучений со Spigot? Вряд ли.
Окей, что делать?
Переходить на более современные ядра.
Если у вас 1.12.2 - вам стоит перейти как минимум на Paper.
На версиях 1.13-1.18.1 безопасны лишь Paper и Patina из-за Log4Shell.
На версии 1.18.2+ есть адекватные форки Paper - например Pufferfish и Purpur.
Подробнее о разнообразии современных ядер можно почитать тут: https://rubukkit.org/threads/176425
Крайне рекомендую вам ознакомиться с этой темой, если вы хотите хоть что-то понимать в серверах Minecraft Java Edition. Это прям самые основы.
Как перейти на Paper, Purpur, Patina, Pufferfish или другие форки?
Вы не поверите, насколько это просто. Всего три простых шага.
1) Сделайте бекап/копию вашего сервера. Вероятнее всего, он вам не понадобится. Но на всякий случай не помешает
2) Замените Spigot.jar или CraftBukkit.jar на джарник нового ядра - Paper.jar/Purpur.jar или другой.
3) Запустите сервер, вновь остановите его и настройте новые появившиеся конфиги в папке сервера - paper.yml/pufferfish.yml/purpur.yml/папка config и прочие. Ориентируйтесь по названию своего нового ядра. Как конкретно настраивать - читайте официальную документацию, ссылки на документацию наиболее распространённых ядер я предоставил, остальное ищите самостоятельно.
А что делать с плагинами?
Ничего. 99.9% плагинов, которые у вас работали на Spigot, будут прекрасно работать на Paper или его форках. Если ВДРУГ случится, то плагин не поддерживает современные ядра - это явный признак, что плагин нужно либо обновить, либо заменить его на более современный аналог.
В моей десятилетней практике я лишь 2 раза сталкивался с тем, что плагины корректно работали на Spigot, но некорректно работали на Paper или его форках.
Короче говоря, просто заменяйте ядро и не парьтесь - всё будет в порядке.
А если меня не убедили доводы?
Окей, вы можете:
1) Ещё раз перечитать всё, что я написал и подумать о том, какие преимущества вы упускаете, используя Spigot или, боже упаси, CraftBukkit
2) Взглянуть на статистику по большому количеству серверов Minecraft: https://bstats.org/global/bukkit
Спойлер: Paper и его форками пользуются в 3 (!!!) раза чаще, чем Spigot. Про CraftBukkit молчу вовсе.
3) Прочитать обсуждения конкретных особенностей и мнения других людей: раз и два
4) Задать вопрос или обсудить свои опасения в этой теме
Либо вы можете просто остаться на Spigot со всеми его недостатками и смириться с тем, что каждый второй на этом форуме первым делом будет просить вас поменять ядро на более современное при каждом удобном случае.
На этом всё. Надеюсь, я помог вам сделать правильный выбор.
Последнее редактирование:

