Posted February 24, 20205 yr I have added a custom shield to the game which extends the ShieldItem class. Blocking works, switching between the two models using overrides works but I can't seem to get durability for this item to work. Here is the custom shield item class: package me.crimsondawn45.survivaladditions.object.item; import me.crimsondawn45.survivaladditions.util.SAregistries; import net.minecraft.block.DispenserBlock; import net.minecraft.item.ArmorItem; import net.minecraft.item.Item; import net.minecraft.item.ShieldItem; public class SAshieldItem extends ShieldItem { public SAshieldItem(Item.Properties builder) { super(builder); this.addPropertyOverride(SAregistries.resLoc("blocking"), (item, world, entity) -> { return entity != null && entity.isHandActive() && entity.getActiveItemStack() == item ? 1.0F : 0.0F; }); DispenserBlock.registerDispenseBehavior(this, ArmorItem.DISPENSER_BEHAVIOR); } } And here is the instance I am passing into the .registerAll method: SAitems.wooden_shield = new SAshieldItem(new Item.Properties().group(ITEM).maxStackSize(1).maxDamage(100)).setRegistryName(resLoc("wooden_shield")), I have tried using ".defaultMaxDamage()" in the properties bulder and passing in durability directly in the item class using "getMaxUses()"
September 21, 20205 yr Try creating an @SubsribeEvent for LivingAttackEvent. (I personally have not been able to get this working) You would also have to set .DefaultMaxDamage() in the builder properties.
September 21, 20205 yr In 1.15 at least you can override the isShield() method in your shield class, which should allow the shield to take damage when blocking with it.
September 21, 20204 yr wow worked instantly (for 1.15.2) Edited September 22, 20204 yr by someRandomKid
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.