L2 ADMIN CORE MERGER v1.3

TopManager

Heir
Customer
Всем привет.

Хочу поделиться небольшим инструментом, который создавался в первую очередь для моего собственного проекта на Lucera, но, возможно, окажется полезным и другим администраторам серверов.

Сразу хочу уточнить важный момент.

Этот инструмент не является автоматическим обновлением Lucera в один клик и не заменяет опыт разработчика. Его основная задача — помочь сравнить две версии сервера, подготовить обновление, показать различия и уменьшить вероятность потерять собственные изменения при переходе на новую ревизию Lucera.

Для опытных разработчиков, которые много лет работают с Lucera, SVN, Git и различными diff-инструментами, программа может показаться не особо необходимой. Когда рука набита и существует собственный отработанный процесс обновления, перестраиваться на новые инструменты бывает сложно и не всегда есть смысл.

Однако начинающим администраторам серверов такой инструмент может значительно облегчить процесс обновления и помочь лучше понять, какие изменения появились в новой версии Lucera.


Основная идея

Со временем любой сервер начинает сильно отличаться от оригинальной Lucera.

Появляются:

  • собственные настройки;
  • изменённые XML-файлы;
  • кастомные NPC;
  • дополнительные сервисы;
  • изменения в базе данных;
  • изменения в scripts.jar;
  • собственные Java-доработки;
  • уникальная игровая логика проекта.
Через некоторое время выходит новая ревизия 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

Логика работы:

  • существующие пользовательские настройки сохраняются;
  • новые параметры из новой 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:
Back
Top