Всем привет.
Хочу поделиться небольшим инструментом, который создавался в первую очередь для моего собственного проекта на Lucera, но, возможно, окажется полезным и другим администраторам серверов.
Сразу хочу уточнить важный момент.
Этот инструмент не является автоматическим обновлением Lucera в один клик и не заменяет опыт разработчика. Его основная задача — помочь сравнить две версии сервера, подготовить обновление, показать различия и уменьшить вероятность потерять собственные изменения при переходе на новую ревизию Lucera.
Для опытных разработчиков, которые много лет работают с Lucera, SVN, Git и различными diff-инструментами, программа может показаться не особо необходимой. Когда рука набита и существует собственный отработанный процесс обновления, перестраиваться на новые инструменты бывает сложно и не всегда есть смысл.
Однако начинающим администраторам серверов такой инструмент может значительно облегчить процесс обновления и помочь лучше понять, какие изменения появились в новой версии Lucera.
Основная идея
Со временем любой сервер начинает сильно отличаться от оригинальной Lucera.
Появляются:
Возникает вопрос:
Как получить новые улучшения Lucera и при этом не потерять собственный проект?
Именно для решения этой задачи и создан данный инструмент.
Основной режим сравнения
Используются две папки:
01_MY_GS
02_NEW_LUCERA_CORE
01_MY_GS
Сюда помещается текущий рабочий сервер.
Он считается главным источником пользовательских настроек и изменений.
02_NEW_LUCERA_CORE
Сюда помещается новая чистая версия Lucera.
После запуска создаётся:
03_RESULT_MERGED_GS
где формируется результат сравнения.
Работа с конфигами
Поддерживаются:
.properties
.ini
.conf
.cfg
Логика работы:
Работа с XML
Поддерживается базовое сравнение XML-файлов по:
id
name
key
Новые элементы могут быть добавлены в результат автоматически.
При обнаружении конфликтов информация выводится в отчёт для последующей ручной проверки.
Рекомендуется всегда просматривать отчёт перед использованием результата.
Работа с JAR
По умолчанию программа не выполняет автоматическое обновление JAR-файлов.
Это сделано специально для безопасности проекта.
Под автоматическое обновление не попадают:
server.jar
scripts.jar
и любые другие JAR-файлы.
Для JAR-файлов используется режим анализа и формирования отчётов.
JAR REPORT
Для JAR создаётся отдельный набор отчётов:
jar_report.html
jar_report.md
jar_report.json
Отчёты помогают увидеть:
JAR CUSTOM OVERLAY
Дополнительный режим для опытных пользователей.
Позволяет использовать новый JAR как основу и при необходимости переносить поверх него заранее выбранные пользовательские классы.
Важно понимать:
Это не интеллектуальное объединение Java-кода.
Это инструмент для контролируемого переноса заранее выбранных классов и ресурсов.
Перед использованием рекомендуется хорошо понимать последствия замены классов.
JAR SMART PATCH
Наиболее безопасный режим работы с пользовательскими Java-доработками.
Основная идея:
Новый Lucera-код остаётся основой.
Пользователь переносит только необходимые изменения.
Компилируются только выбранные Java-файлы.
В новый scripts.jar добавляются только выбранные скомпилированные классы.
Важно понимать:
Программа не пишет Java-код автоматически и не переносит пользовательскую логику самостоятельно.
Она помогает:
Отчёты
Программа формирует:
report.html
report.md
report.json
Отдельно:
jar_report.html
jar_report.md
jar_report.json
И отдельно для Smart Patch:
smart_patch_report.html
smart_patch_report.md
smart_patch_report.json
Важное предупреждение
Несмотря на наличие различных проверок и механизмов безопасности, данная программа не гарантирует корректность обновления любого проекта.
Каждый сервер уникален и может содержать собственные доработки.
Поэтому настоятельно рекомендуется:
Заключение
Цель проекта — не заменить разработчика и не автоматизировать обновление Lucera полностью.
Цель проекта — помочь администраторам лучше видеть различия между версиями, подготовить обновление и уменьшить вероятность потерять собственные изменения при переходе на новую ревизию Lucera.
Надеюсь, инструмент окажется полезным для начинающих администраторов и владельцев серверов.
Если найдёте ошибки, захотите предложить новые функции или улучшения — буду рад любой обратной связи.
Хочу поделиться небольшим инструментом, который создавался в первую очередь для моего собственного проекта на Lucera, но, возможно, окажется полезным и другим администраторам серверов.
Сразу хочу уточнить важный момент.
Этот инструмент не является автоматическим обновлением Lucera в один клик и не заменяет опыт разработчика. Его основная задача — помочь сравнить две версии сервера, подготовить обновление, показать различия и уменьшить вероятность потерять собственные изменения при переходе на новую ревизию Lucera.
Для опытных разработчиков, которые много лет работают с Lucera, SVN, Git и различными diff-инструментами, программа может показаться не особо необходимой. Когда рука набита и существует собственный отработанный процесс обновления, перестраиваться на новые инструменты бывает сложно и не всегда есть смысл.
Однако начинающим администраторам серверов такой инструмент может значительно облегчить процесс обновления и помочь лучше понять, какие изменения появились в новой версии Lucera.
Основная идея
Со временем любой сервер начинает сильно отличаться от оригинальной Lucera.
Появляются:
- собственные настройки;
- изменённые XML-файлы;
- кастомные NPC;
- дополнительные сервисы;
- изменения в базе данных;
- изменения в scripts.jar;
- собственные Java-доработки;
- уникальная игровая логика проекта.
Возникает вопрос:
Как получить новые улучшения Lucera и при этом не потерять собственный проект?
Именно для решения этой задачи и создан данный инструмент.
Основной режим сравнения
Используются две папки:
01_MY_GS
02_NEW_LUCERA_CORE
01_MY_GS
Сюда помещается текущий рабочий сервер.
Он считается главным источником пользовательских настроек и изменений.
02_NEW_LUCERA_CORE
Сюда помещается новая чистая версия Lucera.
После запуска создаётся:
03_RESULT_MERGED_GS
где формируется результат сравнения.
Работа с конфигами
Поддерживаются:
.properties
.ini
.conf
.cfg
Логика работы:
- существующие пользовательские настройки сохраняются;
- новые параметры из новой Lucera добавляются;
- различия отображаются в отчётах.
Работа с XML
Поддерживается базовое сравнение XML-файлов по:
id
name
key
Новые элементы могут быть добавлены в результат автоматически.
При обнаружении конфликтов информация выводится в отчёт для последующей ручной проверки.
Рекомендуется всегда просматривать отчёт перед использованием результата.
Работа с JAR
По умолчанию программа не выполняет автоматическое обновление JAR-файлов.
Это сделано специально для безопасности проекта.
Под автоматическое обновление не попадают:
server.jar
scripts.jar
и любые другие JAR-файлы.
Для JAR-файлов используется режим анализа и формирования отчётов.
JAR REPORT
Для JAR создаётся отдельный набор отчётов:
jar_report.html
jar_report.md
jar_report.json
Отчёты помогают увидеть:
- различия между версиями;
- новые классы;
- изменённые классы;
- потенциально важные зоны проекта.
JAR CUSTOM OVERLAY
Дополнительный режим для опытных пользователей.
Позволяет использовать новый JAR как основу и при необходимости переносить поверх него заранее выбранные пользовательские классы.
Важно понимать:
Это не интеллектуальное объединение Java-кода.
Это инструмент для контролируемого переноса заранее выбранных классов и ресурсов.
Перед использованием рекомендуется хорошо понимать последствия замены классов.
JAR SMART PATCH
Наиболее безопасный режим работы с пользовательскими Java-доработками.
Основная идея:
Новый Lucera-код остаётся основой.
Пользователь переносит только необходимые изменения.
Компилируются только выбранные Java-файлы.
В новый scripts.jar добавляются только выбранные скомпилированные классы.
Важно понимать:
Программа не пишет Java-код автоматически и не переносит пользовательскую логику самостоятельно.
Она помогает:
- подготовить рабочую область;
- сравнить старые и новые исходники;
- показать различия;
- проверить наличие пользовательских токенов и изменений;
- скомпилировать выбранные файлы;
- собрать результат.
Отчёты
Программа формирует:
report.html
report.md
report.json
Отдельно:
jar_report.html
jar_report.md
jar_report.json
И отдельно для Smart Patch:
smart_patch_report.html
smart_patch_report.md
smart_patch_report.json
Важное предупреждение
Несмотря на наличие различных проверок и механизмов безопасности, данная программа не гарантирует корректность обновления любого проекта.
Каждый сервер уникален и может содержать собственные доработки.
Поэтому настоятельно рекомендуется:
- работать только с копией сервера;
- никогда не выполнять первое обновление сразу на боевом сервере;
- всегда иметь полный backup файлов сервера;
- всегда иметь резервную копию базы данных;
- всегда тестировать результат локально перед переносом на production.
Заключение
Цель проекта — не заменить разработчика и не автоматизировать обновление Lucera полностью.
Цель проекта — помочь администраторам лучше видеть различия между версиями, подготовить обновление и уменьшить вероятность потерять собственные изменения при переходе на новую ревизию Lucera.
Надеюсь, инструмент окажется полезным для начинающих администраторов и владельцев серверов.
Если найдёте ошибки, захотите предложить новые функции или улучшения — буду рад любой обратной связи.
Attachments
Last edited: