这是一个可以为指定物品注册图腾的事件的模组,已在 GitHub 开源。
你可以通过 TotomRegister.register(Item item) 来注册,除此之外,你还可以为指定物品设置触发后的事件以及是否要覆写原事件:
TotemRegister.register(Item totem,BiConsumer<ServerPlayer, ItemStack> runnable);
TotemRegister.register(Item totem,BiConsumer<ServerPlayer, ItemStack> runnable,boolean overwrite);
如果你并不满足于一次仅能够注册一个物品,你还可以通过使用 TotemRegister.register(Class<?> clazz); 来对指定类中所有为 Item 类型的变量进行注册,如:
TotemRegister.register(Items.class);
注意:该函数可能会抛出 InstantiationException 和 IllegalAccessException 异常,请使用 try catch 进行捕捉。