Fix max duration for modded items (#660)

This commit is contained in:
IzzelAliz 2022-09-04 15:26:12 +08:00
parent 1df61665ce
commit dbb2358985
No known key found for this signature in database
GPG Key ID: EE50E123A11D8338

View File

@ -36,6 +36,7 @@ import org.bukkit.craftbukkit.v.inventory.CraftMetaSkull;
import org.bukkit.craftbukkit.v.inventory.CraftMetaSpawnEgg;
import org.bukkit.craftbukkit.v.inventory.CraftMetaSuspiciousStew;
import org.bukkit.craftbukkit.v.inventory.CraftMetaTropicalFishBucket;
import org.bukkit.craftbukkit.v.util.CraftMagicNumbers;
import org.bukkit.craftbukkit.v.util.CraftNamespacedKey;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.material.MaterialData;
@ -218,6 +219,13 @@ public abstract class MaterialMixin implements MaterialBridge {
}
}
@Inject(method = "getMaxDurability", cancellable = true, at = @At("HEAD"))
private void arclight$getMaxDurability(CallbackInfoReturnable<Integer> cir) {
if (arclight$spec != null) {
cir.setReturnValue(arclight$spec.maxDurability);
}
}
@Override
public MaterialPropertySpec bridge$getSpec() {
return arclight$spec;
@ -342,6 +350,10 @@ public abstract class MaterialMixin implements MaterialBridge {
if (arclight$spec.blastResistance == null) {
arclight$spec.blastResistance = block != null ? block.getExplosionResistance() : 0;
}
if (arclight$spec.craftingRemainingItem == null) {
// noinspection deprecation
arclight$spec.craftingRemainingItem = item != null && item.hasCraftingRemainingItem() ? CraftMagicNumbers.getMaterial(item.getCraftingRemainingItem()).name() : null;
}
if (arclight$spec.itemMetaType == null) {
arclight$spec.itemMetaType = "UNSPECIFIC";
}