Доброго времени суток!
Захотелось создать своё ядро под свои нужды, а точнее переписать серверный код игры. Без изменения интерфейсов и API. Кто уже таким занимался и может поделиться опытом в этом деле? Как это сделать более правильно с нуля и сохранить работоспособность всех модов на Forge? Как собирать это чудо и развёртывать это на рабочей машине?
Заранее спасибо!
TheAndrey
Редактор учебника
861 62 296
Просто изменяешь всё что не нравится. Должна быть веская причина по которой понадобилось собственное ядро.
MaximPixel
1,560 86 201
EUNNA
GitHub — MohistMC/Mohist: Minecraft Forge Hybrid server implementing the Spigot/Bukkit API, formerly known as Thermos/Cauldron/MCPC+
Minecraft Forge Hybrid server implementing the Spigot/Bukkit API, formerly known as Thermos/Cauldron/MCPC+ — GitHub — MohistMC/Mohist: Minecraft Forge Hybrid server implementing the Spigot/Bukkit A.
Советую тебе начать с просмотра работы другого ядра. А потом методом тестов переписывай. А лучше на котлине пиши ядро
ЛУЧШЕЕ ЯДРО ДЛЯ СЕРВЕРА В МАЙНКРАФТЕ — Bukkit, Spigot, Paper, Tuinity, Yatopia (Ятопия закрыта)
EUNNA
Блин. Не так выразился. Посмотри, как работает мохист и его переписывай под себя. Ибо я ковырял себе на 1.12.2 его.
А лучше Спонж ковырни там он работает на чистом фордже, как я помню
CKATEPTb
GitHub — MohistMC/Mohist: Minecraft Forge Hybrid server implementing the Spigot/Bukkit API, formerly known as Thermos/Cauldron/MCPC+
Minecraft Forge Hybrid server implementing the Spigot/Bukkit API, formerly known as Thermos/Cauldron/MCPC+ — GitHub — MohistMC/Mohist: Minecraft Forge Hybrid server implementing the Spigot/Bukkit A.
Советую тебе начать с просмотра работы другого ядра. А потом методом тестов переписывай. А лучше на котлине пиши ядро
Советую даже не смотреть в сторону MohistMC. Архитектура красивее в ArcLight. На крайний случай можно CatServer, но точно не Mohist. Разработчик Mohist’a сам не понимает что делает. Его шарманка запустилась только потому что когда-то CatServer украл мой код, а он украл код CatServer.
А касательно ТС’а, разве миксины не удовлетворят потребности топика?
JewishCat
CatServer украл мой код
hohserg
7,067 321 1,491
когда-то CatServer украл мой код
А можешь скинуть ссыль на сорцы CatServer, которые были украдены?
Мне прост интересно
Последнее редактирование модератором: 31 Окт 2022
Новая рандомная ава топовая) Ender’sMagic 1.4b — УРААА!))
Таумкрафт 6 — ураа!
Пишу на Scala
Какая ирония: написание тутора позволяет понять тему лучше, чем его чтение
Test BB-code
CKATEPTb
Тут нечего вспоминать. Когда атом закрылся я, привел солянку в рабочее состояние. И мы с тобой лично договаривались, что я не беру код с твоего форка, ты не берешь код с моего форка. Как итог половину твоих коммитов были Ctrl+C, Ctrl+V из моего форка, твое тогдашнее объяснение «по другому там не сделать» расставило все точки.
Очередной раз вспоминать попытки монетизировать проект со стороны Миши и вытеснить мой форк, которые на тот момент так и воссоздали конфликт. Не хочется. Атом проделал огромную работу, которую продолжил Ты и SHADOWDAN, если не ошибаюсь, сделали огромный шаг в сторону гибридов. Но как итог мой форк был более работоспособным из-за вашей попытки монетизации.
CKATEPTb
А можешь скинуть ссыль на сорцы CatServer, которые были украдены?
Мне прост интересно
Тогда исходников не было у CatServer. Они тогда продвигались не как OpenSource продукт. Мой код там был обнаружен Захаром (по моему Zaxxar163 ник в дискорде был), медотом декомпила CatServer. Собственно это было несколько лет назад и я забросил ядро, так как начинал из интереса, чтобы научится чему-то новому. Ко всему прочему конфликт с крупным проектом (уже не помню какой у него проект был, помню что человека звали Миша) который продолжил форк и решил что другие форки помешают монетизации (у нас был прямой разговор на эту тему, по этому я знаю что говорю) тоже внес свою лепту.
JewishCat
найс затираешь)
Johnson
Доброго времени суток!
Захотелось создать своё ядро под свои нужды, а точнее переписать серверный код игры. Без изменения интерфейсов и API. Кто уже таким занимался и может поделиться опытом в этом деле? Как это сделать более правильно с нуля и сохранить работоспособность всех модов на Forge? Как собирать это чудо и развёртывать это на рабочей машине?
Заранее спасибо!
Извини за резкий ответ, но по стилю вопроса я могу судить о не очень большом опыте вопрошающего.
Ядро (с позволения сказать) сервера — это болото. Ты не вывезешь. Вообще мало кто в соло вывезет, не дропнув на полпути.
Предположу, что ты хочешь либо завезти многопоточность, либо защиту, либо монетизацию. Первый вариант ты не сможешь (и я не смогу, потому что нафиг мне эти головняки с синхронизацией и отлов багов?), остальные два варианта делаются миксинами. Они позволяют манипулировать кодом в рантайме, и делать буквально что хочешь (ты можешь переписать метод, добавить свои строки к методу, удалить строки, и т.д.). Этого более, чем достаточно для нужд любого проекта. Пока изучаешь что и куда миксинить — уже и подучишься архитектуре, и, скорее всего, поймешь, что переписывать ядро с ноля, сохраняя поддержку форжа, тебе не надо.
Источник: forum.mcmodding.ru
Переход на Sponge
Статьи в этом разделе призваны помочь владельцам уже существующих серверов перейти с других серверных платформ на Sponge.
- Переход на Sponge
- Migrating from CraftBukkit, Spigot, or Paper
- Migrating from CanaryMod
- Переход с Forge
- Переход со стандартного сервера
Создайте резервную копию файлов вашего сервера перед переходом. В случае, если что-то пойдёт не так, у вас будет резервная копия!
Переход на Sponge
Для перехода на SpongeForge или SpongeVanilla обратите внимание на разделы ниже. Большинство инструкций одинаковы для обеих реализаций, различия указываются ниже.
Migrating from CraftBukkit, Spigot, or Paper
Spigot — модифицированное ответвление CraftBukkit.
Миры
Forge, and thus SpongeForge (and also SpongeVanilla), use the same world structure as vanilla Minecraft. Vanilla Minecraft places the nether (typically world_nether ) and the end (typically world_the_end ) dimensions within the world folder. However, Bukkit and Spigot don’t use this system to save the worlds, thus migration is needed.
SpongeForge и SpongeVanilla обеспечивают полностью автоматизированный процесс по преобразованию миров. Вот как это работает:
- Остановите работу вашего сервера Bukkit или Spigot, после чего создайте резервную копию всех папок.
- Установите SpongeForge или SpongeVanilla в папку, где вы запускали старый сервер, удалите jar-файлы Bukkit или Spigot. Если вы не знаете, как правильно установить SpongeForge или SpongeVanilla, прочтите здесь .
- Запустите сервер Sponge, и программа перехода будет запущена автоматически.
- Программа перехода будет определять папки миров для переноса в параметре world-container файла bukkit.yml . Если этого файла нет (или что-то привело к сбою чтения файла), тогда перенос будет осуществляться из root папки сервера (которая является стандартной для CraftBukkit).
- Now the migration is performed. At this point, worlds are copied over from what we call the world container into the folder defined in the server.properties file via the level-name key. Note that the original files in the world container remain unchanged, a copy is made during migration.
- Bukkit помещает вещи в странные места (со странными именами), поэтому необходимо применить два важных исправления. Запомните, что эти исправления основаны на предположениях (ввиду структуры Bukkit).
- Первое исправление применяется для переименования всех папок, имя которых начинается со значения параметра level-name и заканчивается названием измерения ( _nether / _the_end ), на DIM-1 и DIM1 соответственно.
- Второе исправление предназначено для перемещения данных region из nether/the_end. Bukkit размещает эти данные в DIM-1region и DIM1region , в то время как Vanilla/Forge помещает region в корень структуры папок миров.
Программа перехода не может предоставить все необходимые значения конфигурации. Именно поэтому необходимо некоторые из них изменить вручную, чтобы обеспечить правильную работу мира при загрузке его на SpongeForge или SpongeVanilla. Настоятельно рекомендуется использовать World Management Plugin для установки правильных параметров и загрузки мира.
Как уже отмечалось, нам приходится иметь дело с несколькими предположениями во время миграции вашего мира. Таким образом, Губка не загружает мир напрямую, для обработки необходимо установить плагин.
Если всё прошло успешно, выходные данные, созданные инструментом перехода, должны выглядеть так:
[17:32:29] [Server thread/INFO] [Sponge]: Checking for worlds that need to be migrated. [17:32:29] [Server thread/INFO] [Sponge]: Migrating [world_lol] from [.]. [17:32:29] [Server thread/INFO] [Sponge]: Migrated world [world_lol] from [.] to [.worldworld_lol] [17:32:29] [Server thread/INFO] [Sponge]: Migrating [world_nether] from [.]. [17:32:29] [Server thread/INFO] [Sponge]: Migrated world [world_nether] from [.] to [.worldDIM-1] [17:32:29] [Server thread/INFO] [Sponge]: Migrating [world_the_end] from [.]. [17:32:29] [Server thread/INFO] [Sponge]: Migrated world [world_the_end] from [.] to [.worldDIM1] [17:32:29] [Server thread/INFO] [Sponge]: [3] worlds have been migrated back to Vanilla’s format.
После завершения у вас должна появиться копия мира(ов) в необходимой для Sponge структуре. Если что-то пошло не так, оригинальные файлы мира остаются нетронутыми в исходном месте.
Файлы конфигурации сервера и мира
CraftBukkit и Sponge используют файлы, созданные «ванильным» сервером Minecraft. Таким образом, эти файлы можно повторно использовать в Sponge, если они уже использовались CraftBukkit’ом. Список данных файлов:
- server.properties
- banned-ips.json
- banned-players.json
- ops.json
- usercache.json
- whitelist.json
Также есть файлы, которые использует только CraftBukkit. Их можно спокойно удалить, так как Sponge они не нужны:
- bukkit.yml
- commands.yml
- help.yml
- permissions.yml
Пользователи, переходящие со Spigot, возможно захотят сравнить spigot.yml с global.conf из Sponge. Некоторые параметры в spigot.yml имеют аналоги в global.conf , и вы, если хотите, можете перенести значения присутствующих в обоих файлах параметров.
Плагины
Sponge не имеет встроенной поддержки Bukkit-плагинов. Однако, некоторые участники сообщества переделывают API Bukkit в специальный плагин для Sponge. Это позволит Bukkit-плагинам функционировать на сервере Sponge, но его релиз ещё не намечен.
Ore — это официальный репозиторий Sponge для поиска плагинов. Рекомендуем скачивать все Sponge-плагины из Ore. При поиске замены для Bukkit-плагинов имейте ввиду:
- Не все разработчики с Bukkit’а переносят свои плагины на Sponge. Однако, со временем, кто-то другой сможет создать подходящую замену.
- Не все переносимые на Sponge плагины будут автоматически конвертировать конфигурационные файлы. Разработчики плагинов принимают решение об автоматической конвертации конфигурационных файлов индивидуально.
- Функционал некоторых плагинов, перенесённых с Bukkit, может измениться, даже их структура конфигурации может стать другой.
Migrating from CanaryMod
Миры
Forge, а следовательно и SpongeForge (SpongeVanilla), используют структуру мира обычного Minecraft. В этой структуре измерения Незер (обычно world_nether ) и Энд (обычно world_the_end ) размещаются внутри папки world .
Canary изменяет местоположение измерений Nether и End на местоположение вне папки world . Это следует устранить, если желаете сохранить измерения Nether и End при работе Sponge. Хорошо, что Canary предоставляет простой способ преобразовать миры в структуру, которую использует Sponge, с помощью команды /makevanilla . Результат будет находиться в папке vanilla , если преобразование пройдет успешно.
Файлы конфигурации сервера и мира
Sponge использует много файлов, созданных «ванильным» сервером Minecraft, например, server.properties . Однако, Canary использует только один файл, созданный «ванильным» сервером Minecraft, этот файл — usercache.json . Следовательно, только usercache.json может быть повторно использован в Sponge.
Тем не менее, возможно вручную перенести некоторые файлы конфигурации Canary к их аналогам в Sponge. Список аналогов предоставлен ниже.
Источник: docs.spongepowered.org
Какое ядро лучше для сервера майнкрафт, bukkit или spigot?
Какое ядро лучше для сервера майнкрафт, bukkit или spigot?
Игорь Lada Samara
4 года назад
Bukkit конешно же
anxiety attack
4 года назад
Bukkit бери, на него больше плагинов идёт
4 года назад
Команда майнкрафт не работает
5 месяцев назад
Популярное
Как использовать адский светоч в майнкрафт?
Не могу скачать официальный майнкрафт лаунчер
Minecraft при подключении на сервер выдаёт ошибку: illegal packet received terminating connection Версия 1.16.5
Как узнать, сколько прожито игровых дней в майнкрафте?
Как добавить в приват игрока на анархии? [minecraft
14 ответов
Знатоки майнкрафт, все сюда Ма Макс Паленков
- 3 года назад
- 1 ответ
Знатоки майнкрафт, все сюда — 1 Ма Макс Паленков
- 3 года назад
- 3 ответа
Вопрос по серверу майнкрафт — 7 Ze Zelag YT
- 2 года назад
- 1 ответ
- 3 года назад
- 2 ответа
- 1 год назад
- 2 ответа
Ошибка на сервере майнкрафт Ко Костя Мокан
- 2 года назад
- 2 ответа
Не запускается майнкрафт 1.19.2 в оф лаунчере
5 месяцев назад
Не получается создать скин в Майнкрафт ПЕ
5 месяцев назад
Крашится Minecraft forge
5 месяцев назад
Источник: minecraftru.net