- Версия(и) Minecraft
- 1.12.x
СобакаConfig
Аннотация @Config является альтернативой Configuration.
Содержание
Поля класса, помеченного @Config будут преобразованные в свойства конфигурации. Конкретные поля можно помечать для добавления информации, используя подмножество аннотаций, предоставляемых в @Config.
Примечание
Конфигурационные значения enum генерируют комментарий длиной в столько строк, сколько enum имеет значения.
Хорошим примером использования является Forge's Test
Использование @Config
Эта аннотация используется для обозначения класса как контейнера для параметров конфигурации.
Важно
Если вы отключите корневую категорию, это вызовет проблемы, если вы не создадите подкатегории.
Использование @Comment
Добавление этой аннотации к свойству будет добавлять комментарий в конфиге
Пример
Это создало бы следующий конфиг
@name
Позволяет вам давать красивые, читаемые имена вашим свойствам в конфиге
Пример
Это создало бы следующий конфиг
@RangeInt
Позволяет вам задавать пределы в которых могут находить значения свойства типа int
Пример
Это создало бы следующий конфиг
@RangeDouble
Позволяет вам задавать пределы в которых могут находить значения свойства типа double
Пример
Это создало бы следующий конфиг
Примечание
В 1.12.2 не существует @RangedFloat или @RangedLong или любого другого варианта диапазона
@LangKey
Если вы хотите добавить перевод для вашего конфига в меню настроек мода, добавьте к полю конфига @LangKey.
@RequiresMcRestart
Помеченные этой аннотацией свойства будут обновляться только при рестарте игры.
Это также будет требовать рестарт игры, если значение изменяется в меню конфигурации.
Пример
@RequiresWorldRestart
Это заставит мир перезагрузиться, если свойство конфига измениется через меню настроек мода.
Пример
Подкатегории
Подкатегория — это способ группировки определенных (обычно связанных) конфигурационных параметров вместе, и он должен использоваться, чтобы облегчить навигацию по конфигурационному файлу. Чтобы создать подкатегорию нужно сделать объект и добавить его в качестве статического поля в классе родительской категории. Его поля станут свойствами конфигурации в этой подкатегории.
Пример
В конфигурационном файле это сделает следующее
@Ignore
Добавление этой аннотации к свойству в классе конфига приведет к тому, что ConfigManager пропустит его при обработке файла конфигурации
Примечание
Это будет работать только на Forge версии 1.12.2-14.23.1.2602 и позже, так как функция была добавлена в этом обновлении
(Если вам нужно отследить изменение полей конфига, то используйте эти события: Таблица событий - MC Modding Учебник п.п.)
Аннотация @Config является альтернативой Configuration.
Содержание
- Основы
- Использование @Config
- Использование @Comment
- Использование @name
- Использование @RangeInt
- Использование @RangeDouble
- Использование @LangKey
- Использование @RequiresMcRestart
- Использование @RequiresWorldRestart
- Подкатегории
- @Ignore
Поля класса, помеченного @Config будут преобразованные в свойства конфигурации. Конкретные поля можно помечать для добавления информации, используя подмножество аннотаций, предоставляемых в @Config.
Примечание
Конфигурационные значения enum генерируют комментарий длиной в столько строк, сколько enum имеет значения.
Хорошим примером использования является Forge's Test
Использование @Config
Эта аннотация используется для обозначения класса как контейнера для параметров конфигурации.
Код:
Параметр | Тип | Значение по умолчанию | Описание
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;
Код:
# 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;
Код:
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;
Код:
# 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;
Код:
# 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;
Это заставит мир перезагрузиться, если свойство конфига измениется через меню настроек мода.
Пример
Java:
@RequiresWorldRestart
public static boolean someOtherworldlyThing = false;
Подкатегории
Подкатегория — это способ группировки определенных (обычно связанных) конфигурационных параметров вместе, и он должен использоваться, чтобы облегчить навигацию по конфигурационному файлу. Чтобы создать подкатегорию нужно сделать объект и добавить его в качестве статического поля в классе родительской категории. Его поля станут свойствами конфигурации в этой подкатегории.
Пример
Java:
@Config(modid = "modid")
public class Configs {
public static SubCategory subcat = new SubCategory();
public static class SubCategory {
public boolean someBool;
public int relatedInt;
}
}
Код:
subcat {
B:someBool=false
I:relatedInt=0
}
@Ignore
Добавление этой аннотации к свойству в классе конфига приведет к тому, что ConfigManager пропустит его при обработке файла конфигурации
Примечание
Это будет работать только на Forge версии 1.12.2-14.23.1.2602 и позже, так как функция была добавлена в этом обновлении
(Если вам нужно отследить изменение полей конфига, то используйте эти события: Таблица событий - MC Modding Учебник п.п.)