Мод "Властелин колец" для Minecraft вики
Advertisement
© Hummel009, 2023 — 2025

LOTR WikiGen — аддон к моду LOTR, целью которого является вывод всей информации о моде LOTR/GOT-подобной архитектуры в виде файла XML, предназначенного для импорта на MediaWiki. Создатель — Hummel009.

История[]

Изначально, в 2023 году, мод являлся частью мода «Игра престолов», но впоследствии был портирован для LOTR и стал аддоном. В 2024 году вся вики была пересоздана при помощи этого аддона, став полной, актуальной и точной.

Использование[]

Генерация сайта MediaWiki[]

Чтобы сгенерировать первую и основную часть информации, войдите в игру и введите команду "/db xml". Так вы получите файл *.xml в директории игры (.minecraft/hummel/*.xml). Этот файл можно импортировать на MediaWiki. Пример хорошего бесплатного хостинга MediaWiki - Fandom. В итоге будет сгенерировано несколько сотен статей на том языке, который был у вас в игре.

Чтобы статьи заработали и начали отображать информацию, вам нужно скопировать и отредактировать под себя 9 шаблонов MediaWiki:

Не забывайте также и о подшаблонах, которые будут гореть красным цветом. Если у вас возникли вопросы, можете задавать их опытным участникам Википедии - они умеют обращаться с шаблонами.

Дополнение сайта MediaWiki[]

Вторая часть информации - это "/db tables". Так вы получите около 10 файлов в директории игры (.minecraft/hummel/*.txt), их можно использовать как код обычных таблиц в MediaWiki и размещать там, где посчитаете нужным. Главное - не забыть сделать заголовок и завершение таблицы.

Для загрузки изображений примените массовую загрузку ассетов мода.

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

Полезные побочные эффекты[]

Перед тем, как у вас сгенерируется информация, вы получите тонну ошибок, которые указывают на то, что ваш код не идеален. Отлов ошибок производится следующим образом: можно открыть в блокноте каждый из сгенерированных файлов и искать там строки с фрагментами "name", "title", "desc", "info", "null" и т.д. Строки с упомянутыми фрагментами в 90% указывают на баг в коде или отсутствие перевода.

Если же ваши файлы баз данных вовсе не создались, то, возможно, у вас в коде мода кроется NullPointerException. Самое время пройтись по папке .minecraft/logs и посмотреть, какие ошибки выдала команда базы данных.

Для адаптации к сабмодам LOTR необходимо через JD GUI скопировать методы регистрации в файлах LOTREntities и LOTRStructures и вставить их в файл LFGConfig в практически неизменном виде, переименовав методы регистрации на методы получения информации. Затем может потребоваться обновление импортов во всех файлах и запуск.

Архитектура[]

Алгоритмы[]

Генератор состоит из множества независимых модулей, каждый из которых получает свою долю информации и сливает её в общий «котёл» данных, являющийся файлом XML.

На данный момент модулей 60:

  • Mineral-Biomes;
  • Tree-Biomes;
  • Structure-Biomes;
  • Biome-Animals;
  • Biome-Bandits;
  • Biome-ConquestFactions;
  • Biome-InvasionFactions;
  • Biome-Minerals;
  • Biome-Music;
  • Biome-NPCs;
  • Biome-Name;
  • Biome-Rainfall;
  • Biome-Structures;
  • Biome-Temperature;
  • Biome-Trees;
  • Biome-Variants;
  • Biome-VisitAchievement;
  • Biome-Waypoints;
  • Faction-Banners;
  • Faction-Codename;
  • Faction-ConquestBiomes;
  • Faction-Enemies;
  • Faction-Friends;
  • Faction-InvasionBiomes;
  • Faction-NPCs;
  • Faction-Name;
  • Faction-PledgeRank;
  • Faction-Ranks;
  • Faction-Region;
  • Faction-ShieldsCapes;
  • Faction-SpawnBiomes;
  • Faction-WarCrimes;
  • Faction-Waypoints;
  • Entity-BannerBearer;
  • Entity-Biomes;
  • Entity-BuyPools;
  • Entity-Faction;
  • Entity-Farmhand;
  • Entity-Health;
  • Entity-HireAlignment;
  • Entity-HirePrice;
  • Entity-HirePricePledge;
  • Entity-Hireable;
  • Entity-ImmuneToFire;
  • Entity-ImmuneToFrost;
  • Entity-ImmuneToHeat;
  • Entity-KillAchievement;
  • Entity-KillAlignment;
  • Entity-Marriage;
  • Entity-Mercenary;
  • Entity-Owners;
  • Entity-RideableAnimal;
  • Entity-RideableNPC;
  • Entity-SellPools;
  • Entity-SellUnitPools;
  • Entity-Smith;
  • Entity-SpawnsInDarkness;
  • Entity-TargetSeeker;
  • Entity-Tradeable;
  • Entity-UnitTradeable;

В пределах алгоритма[]

Алгоритмы генерации бд-шаблонов состоят из двух частей: сохранение данных в структуру данных и вывод данных в виде шаблона. Структуры данных чаще всего представляют собой хэш-карты, где слева — объект, который должен быть описан, а справа — строка или набор строк, которые его описывают. Например, слева — биом Эребор, а справа — набор руд, которые там появляются.

Структуры данных заполняются, как только первое данное касательно объекта будет получено. Например, как только попадается первая руда в Эреборе, в структуре данных заводится объект «Эребор» и соответствующее ему данное. При получении новых данных они добавляются в уже существующий список. Так у Эребора появляется много руд.

Если данных нет, то и объекта нет. Если в биоме руды не нашлись, то биом не вносится в структуру данных.

Дефолты и преамбулы[]

Чтобы вики не выглядела набором заголовков и списков, есть смысл добавлять преамбулы к каждому списку. Например, объяснять, что Y1 и Y2 в каждом пункте данных о рудах — это высота, от и до которой руда появляется. Преамбулы добавляются во вторых частях алгоритма, где идёт вывод данных в нужном виде.

Важно понимать, что преамбулы должны отличаться для случаев, когда данные есть и когда данных нет. Следуя из раздела выше, данных нет тогда, когда нет объекта, и наоборот. То есть, такой объект попросту не присутствует в шаблоне и информация о нём не выводится.

Чтобы раздел не был и без данных, и без преамбулы, в шаблоны MediaWiki следует проставлять значение default. Оно проставляется между двумя половинами алгоритма — до вывода данных. Пример: все биомы, где не нашлись руды и которые не присутствуют в шаблоне руд, берут значение по умолчанию — «Преамбула «Руд нет»».

Дополнения
Advertisement