Require: KubeJS Curios
global.items = {
common: {
/** @type {$BiConsumer_<$SlotContext_, import("packages/net/minecraft/world/item/$ItemStack").$ItemStack>} */
update: (slot, stack) => {
if (!stack.hasNBT()) {
stack.nbt = {};
}
stack.nbt.t = !(stack.nbt.getBoolean("t") || false);
},
},
dynamic_attribute_curios: {
/** @type {$Consumer_<$CapabilityCurios$AttributeModificationContext_>} */
modifyAttribute: (ctx) => {
let dayTime = 24000,
living;
if ((living = ctx.slotContext.entity()) != null) {
dayTime = living.level.dayTime();
}
let amount = ((dayTime % 24000) / 24000) * 10;
ctx.modify("minecraft:generic.max_health", "kubejs.dynamic_attribute_curios.luck", amount, "addition");
},
},
};
StartupEvents.registry("item", (event) => {
event
.create("kubejs:dynamic_attribute_curios")
.attachCuriosCapability(
CuriosJSCapabilityBuilder.create()
.modifyAttribute((ctx) => {
global.items.dynamic_attribute_curios.modifyAttribute(ctx);
})
.curioTick((slot, stack) => {
global.items.common.update(slot, stack);
})
)
.texture("minecraft:item/golden_apple")
.tag("curios:ring");
});