Иконка ресурса

Перевод Аннотации конфигурации

Версия(и) Minecraft
1.12+
Источник
https://mcforge.readthedocs.io/en/latest/config/annotations/
СобакаConfig

Аннотация @Config является альтернативой Configuration.​

Содержание
  • Основы​
  • Использование @Config​
  • Использование @Comment​
  • Использование @Name​
  • Использование @RangeInt​
  • Использование @RangeDouble​
  • Использование @LangKey​
  • Использование @RequiresMcRestart​
  • Использование @RequiresWorldRestart​
  • Подкатегории​
  • @Ignore​
Основы
Поля класса, помеченного @Config будут преобразованные в свойства конфигурации. Конкретные поля можно помечать для добавления информации, используя подмножество аннотаций, предоставляемых в @Config.​

Примечание
Конфигурационные значения enum генерируют комментарий длиной в столько строк, сколько enum имеет значения.

Хорошим примером использования является Forge's Test

Использование @Config
Эта аннотация используется для обозначения класса как контейнера для параметров конфигурации.​

Аннотация имеет 4 параметра:
Параметр  |  Тип     |  Значение по умолчанию  |  Описание
modid     |  String  |  N/A                    |  Идентификатор мода связанного с этим конфигом
name      |  String  |  modid                  |  Имя для файла конфига
type      |  Type    |  Type.INSTANCE          |  Сейчас имеется только один вариант значения, в будущем че-то еще сделают
category  |  String  |  "general"              |  Категория корневого элемента. Если пустая строка, то корневая категория отключена.
Важно
Если вы отключите корневую категорию, это вызовет проблемы, если вы не создадите подкатегории.

Использование @Comment
Добавление этой аннотации к свойству будет добавлять комментарий в конфиге​

Аннотация имеет следующие параметры:
Параметр  |  Тип              |  Значение по умолчанию  |  Описание
value     |  String[]/String  |  N/A                    |  Множество строк комментариев, либо одна строка
Пример
Java:
@Comment({
  "You can add comments using this",
  "and if you supply an array it will be multi-line"
})
public static boolean doTheThing = true;
Это создало бы следующий конфиг
cfg:
# You can add comments using this
# and if you supply an array it will be multi-line
B:doTheThing=true
@Name
Позволяет вам давать красивые, читаемые имена вашим свойствам в конфиге​

Аннотация имеет следующие параметры:
Параметр  |  Тип                  |  Значение по умолчанию  |  Описание
value     |  String               |  N/A
Пример
Java:
@Name("FE/T for the thing")
public static int thingFE = 50;
Это создало бы следующий конфиг
cfg:
I:"FE/T for the thing"=50
@RangeInt
Позволяет вам задавать пределы в которых могут находить значения свойства типа int​

Аннотация имеет следующие параметры:
Параметр  |  Тип                  |  Значение по умолчанию  |  Описание
min       |  int                  |  Integer.MIN_VALUE
max       |  int                  |  Integer.MAX_VALUE
Пример
Java:
@RangeInt(min = 0)
public static int thingFECapped = 50;
Это создало бы следующий конфиг
cfg:
# Min: 0
# Max: 2147483647
I:thingFECapped=50
@RangeDouble
Позволяет вам задавать пределы в которых могут находить значения свойства типа double​

Аннотация имеет следующие параметры:
Параметр  |  Тип     |  Значение по умолчанию  |  Описание
min       |  double  |  Double.MIN_VALUE
max       |  double  |  Double.MAX_VALUE
Пример
Java:
@RangeDouble(min = 0, max = Math.PI)
public static double chanceToDrop = 2;
Это создало бы следующий конфиг
cfg:
# Min: 0.0
# Max: 3.141592653589793
D:chanceToDrop=2.0
Примечание
В 1.12.2 не существует @RangedFloat или @RangedLong или любого другого варианта диапазона

@LangKey
Если вы хотите добавить перевод для вашего конфига в меню настроек мода, добавьте к полю конфига @LangKey.​

Аннотация имеет следующие параметры:
Параметр  |  Тип        |  Значение по умолчанию  |  Описание
value     |  String     |  N/A
@RequiresMcRestart
Помеченные этой аннотацией свойства будут обновляться только при рестарте игры.​
Это также будет требовать рестарт игры, если значение изменяется в меню конфигурации.​

Пример
Java:
@RequiresMcRestart


public static boolean overlayEnabled = false;
@RequiresWorldRestart
Это заставит мир перезагрузиться, если свойство конфига измениется через меню настроек мода.​

Пример
Java:
@RequiresWorldRestart


public static boolean someOtherworldlyThing = false;
Подкатегории
Подкатегория — это способ группировки определенных (обычно связанных) конфигурационных параметров вместе, и он должен использоваться, чтобы облегчить навигацию по конфигурационному файлу. Чтобы создать подкатегорию нужно сделать объект и добавить его в качестве статического поля в классе родительской категории. Его поля станут свойствами конфигурации в этой подкатегории.​

Пример
Java:
@Config(modid = "modid")

public class Configs {
  public static SubCategory subcat = new SubCategory();

  private static class SubCategory {
    public boolean someBool;

    public int relatedInt;
  }
}
В конфигурационном файле это сделает следующее
cfg:
subcat {
  B:someBool=false

  I:relatedInt=0
}
@Ignore
Добавление этой аннотации к свойству в классе конфига приведет к тому, что ConfigManager пропустит его при обработке файла конфигурации

Примечание
Это будет работать только на Forge версии 1.12.2-14.23.1.2602 и позже, так как функция была добавлена в этом обновлении
Автор
hohserg1
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Другие ресурсы пользователя hohserg1

Сверху