
RegistryEdit
Активный0.0
Установок
Последнее обновление
Версии
RegistryEdit
Эта библиотека предоставляет функционал, который редко бывает необходим, но в некоторых ситуациях оказывается незаменимым - возможность модифицировать элементы реестра во время выполнения программы.
Как использовать
void Initialize() {
...
//Важно: НЕ используйте Registry.register(...) для пользовательских активов!
RegistryEditEvent.EVENT.register(manipulator -> {
// Для нативных элементов Minecraft (Item/Block)
var myCustomItem1 = new Item(new Item.Settings());
manipulator.Redirect(Registries.ITEM, Items.STICK, myCustomItem1);
// ++ Items.STICK = myCustomItem1
// -- Items.STICK = СУЩЕСТВУЮЩИЙ_ЭЛЕМЕНТ
// Для других элементов (любых, при условии что поле статическое и финальное)
var myCustomItem2 = new Item(new Item.Settings());
manipulator.Redirect(MyItems.class, Registries.ITEM, MyItems.CUSTOM_ITEM, myCustomItem2);
// ++ MyItems.CUSTOM_ITEM = myCustomItem2
// -- MyItems.CUSTOM_ITEM = СУЩЕСТВУЮЩИЙ_ЭЛЕМЕНТ
// Для полного удаления элементов (ОЧЕНЬ ОПАСНО! Используйте только если знаете что делаете!)
manipulator.Unregister(Registries.ITEM, Items.ENDER_PEARL);
// Если удаляете блок, убедитесь что заменили связанный с ним BlockItem!
manipulator.Unregister(Registries.BLOCK, Blocks.COBBLESTONE);
manipulator.Redirect(Registries.Item, Items.COBBLESTONE, new Item(new Item.Settings()));
});
...
}
Библиотека работает таким образом, что если вы заменяете элемент в классах Items или Blocks (например, заменяете Items.STICK), изменения автоматически применяются к соответствующим переменным. Для работы с элементами, которые не находятся в этих стандартных классах, вы можете указать свой собственный класс-контейнер.