Перейти к содержимому

Безопасная batch registration addon content

✅ Source verified 🧰 Creator helper

Регистрировать двадцать объектов по одному — много boilerplate и легко пропустить partial failure.

Creator API Political World даёт helpers:

RegisterIdeologies(...)
RegisterGovernments(...)
RegisterActions(...)
RegisterRarePoliticalEvents(...)

Проверенный source возвращает:

public sealed class BatchRegistrationResult
{
public int Requested;
public int Registered;
public List<string> FailedIds;
public bool AllSucceeded { get; }
}
var result = PoliticalWorldAPI.RegisterIdeologies(
AddonId,
new[]
{
ideologyA,
ideologyB,
ideologyC
}
);
if (!result.AllSucceeded)
{
foreach (string failedId in result.FailedIds)
{
LogWarning("Failed ideology: " + failedId);
}
}

Один failed item не превращается в exception, который отменяет все предыдущие success.

Для каждого definition:

Requested++
try registration
success → Registered++
failure → FailedIds.Add(id)

Thrown exception считается failure конкретного item.

Автор должен различать:

requested 20
registered 19
failed 1

и:

register everything returned false

Первый вариант даёт полезную диагностику.

Проверенный helper не откатывает уже зарегистрированный content, если более поздний definition не прошёл.

Поэтому:

AllSucceeded == false

может означать, что большая часть content уже успешно зарегистрирована.

Если нужны all-or-nothing semantics, сначала валидируйте весь набор или делайте explicit rollback через поддерживаемые API.

Failed content ID:

YourName.MyAddon.technocracy

намного полезнее:

item 17

Stable IDs удобно искать в логах человеку и ИИ.

Bulk creator API должен возвращать structured partial result:

  • requested;
  • successful;
  • failed stable IDs;
  • при возможности diagnostic codes/reasons.

Так большие content packs намного легче поддерживать.