Могут ли Mojang или Forge переименовать реестр ENCHANTMENTS во что-нибудь другое? Потому что не могу его найти.
Сейчас я пытаюсь создать мод для Minecraft 1.21, который поднимет максимальный уровень каждого зачарования до 255 (или выше, если это позволит мне ). Итак, я попробовал заставить мод пройти через реестр ForgeRegistries.ENCHANTMENTS, только чтобы узнать, что такого реестра не существует ни в ForgeRegistries, ни в BuildingInRegistries, и я не смог найти ответ где-либо в Интернете, так что, если кто-нибудь знает , тогда помогите пожалуйста. Мой код сейчас выглядит так:
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraft.world.item.enchantment.Enchantment;
import net.minecraftforge.registries.ForgeRegistries;
import java.lang.reflect.Field;
@Mod("unlimitedenchants")
public class UncappedEnchantments {
public UncappedEnchantments() {
MinecraftForge.EVENT_BUS.register(this);
}
@SubscribeEvent
public void onCommonSetup(FMLCommonSetupEvent event) {
uncapAllEnchantments();
}
private void uncapAllEnchantments() {
for (Enchantment enchantment : ForgeRegistries.ENCHANTMENTS) {
try {
Field maxLevelField = Enchantment.class.getDeclaredField("maxLevel");
maxLevelField.setAccessible(true); // Allows you to access private fields
maxLevelField.set(enchantment, 255);
} catch (Exception e) {
System.out.println("Error uncapping enchantment: ");
}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... registries