修复服务端无法启动的bug

This commit is contained in:
17146 2025-04-12 03:48:31 +08:00
parent 2bcefece6a
commit db2320607f
6 changed files with 87 additions and 25 deletions

View file

@ -13,6 +13,8 @@ import net.minecraft.world.item.ArmorMaterial;
import net.minecraft.world.item.Item; import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.component.ItemAttributeModifiers; import net.minecraft.world.item.component.ItemAttributeModifiers;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.api.distmarker.OnlyIn;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import software.bernie.geckolib.animatable.GeoItem; import software.bernie.geckolib.animatable.GeoItem;
import software.bernie.geckolib.animatable.client.GeoRenderProvider; import software.bernie.geckolib.animatable.client.GeoRenderProvider;
@ -27,9 +29,22 @@ import java.util.function.Supplier;
public abstract class BulletResistantArmor extends ArmorItem implements GeoItem { public abstract class BulletResistantArmor extends ArmorItem implements GeoItem {
private final Supplier<GeoArmorRenderer<? extends Item>> renderer;
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
private float bulletResistance = 0.1f;
public BulletResistantArmor(Holder<ArmorMaterial> material, Type type, Properties properties) {
super(material, type, properties);
}
public BulletResistantArmor(Holder<ArmorMaterial> material, Type type, Properties properties, float bulletResistance) {
super(material, type, properties);
this.bulletResistance = bulletResistance;
}
@OnlyIn(Dist.CLIENT)
public abstract Supplier<GeoArmorRenderer<? extends Item>> getRenderer();
@Override @Override
public AnimatableInstanceCache getAnimatableInstanceCache() { public AnimatableInstanceCache getAnimatableInstanceCache() {
return this.cache; return this.cache;
@ -43,7 +58,7 @@ public abstract class BulletResistantArmor extends ArmorItem implements GeoItem
@Override @Override
public <T extends LivingEntity> HumanoidModel<?> getGeoArmorRenderer(T livingEntity, ItemStack itemStack, EquipmentSlot equipmentSlot, HumanoidModel<T> original) { public <T extends LivingEntity> HumanoidModel<?> getGeoArmorRenderer(T livingEntity, ItemStack itemStack, EquipmentSlot equipmentSlot, HumanoidModel<T> original) {
if (this.renderer == null) if (this.renderer == null)
this.renderer = BulletResistantArmor.this.renderer.get(); this.renderer = BulletResistantArmor.this.getRenderer().get();
return this.renderer; return this.renderer;
} }
}); });
@ -53,19 +68,6 @@ public abstract class BulletResistantArmor extends ArmorItem implements GeoItem
public void registerControllers(AnimatableManager.ControllerRegistrar data) { public void registerControllers(AnimatableManager.ControllerRegistrar data) {
} }
private float bulletResistance = 0.1f;
public BulletResistantArmor(Holder<ArmorMaterial> material, Type type, Properties properties, Supplier<GeoArmorRenderer<? extends Item>> renderer) {
super(material, type, properties);
this.renderer = renderer;
}
public BulletResistantArmor(Holder<ArmorMaterial> material, Type type, Properties properties, float bulletResistance, Supplier<GeoArmorRenderer<? extends Item>> renderer) {
super(material, type, properties);
this.bulletResistance = bulletResistance;
this.renderer = renderer;
}
@Override @Override
public @NotNull ItemAttributeModifiers getDefaultAttributeModifiers(@NotNull ItemStack stack) { public @NotNull ItemAttributeModifiers getDefaultAttributeModifiers(@NotNull ItemStack stack) {
var modifiers = super.getDefaultAttributeModifiers(stack); var modifiers = super.getDefaultAttributeModifiers(stack);

View file

@ -2,13 +2,25 @@ package com.atsuishio.superbwarfare.item.armor;
import com.atsuishio.superbwarfare.client.renderer.armor.GeHelmetM35ArmorRenderer; import com.atsuishio.superbwarfare.client.renderer.armor.GeHelmetM35ArmorRenderer;
import com.atsuishio.superbwarfare.init.ModArmorMaterials; import com.atsuishio.superbwarfare.init.ModArmorMaterials;
import net.minecraft.world.item.Item;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.api.distmarker.OnlyIn;
import software.bernie.geckolib.renderer.GeoArmorRenderer;
import java.util.function.Supplier;
public class GeHelmetM35 extends BulletResistantArmor { public class GeHelmetM35 extends BulletResistantArmor {
public GeHelmetM35() { public GeHelmetM35() {
super(ModArmorMaterials.STEEL, super(ModArmorMaterials.STEEL,
Type.HELMET, Type.HELMET,
new Properties().durability(Type.HELMET.getDurability(35)), new Properties().durability(Type.HELMET.getDurability(35))
GeHelmetM35ArmorRenderer::new
); );
} }
@OnlyIn(Dist.CLIENT)
@Override
public Supplier<GeoArmorRenderer<? extends Item>> getRenderer() {
return GeHelmetM35ArmorRenderer::new;
}
} }

View file

@ -2,14 +2,26 @@ package com.atsuishio.superbwarfare.item.armor;
import com.atsuishio.superbwarfare.client.renderer.armor.RuChest6b43ArmorRenderer; import com.atsuishio.superbwarfare.client.renderer.armor.RuChest6b43ArmorRenderer;
import com.atsuishio.superbwarfare.init.ModArmorMaterials; import com.atsuishio.superbwarfare.init.ModArmorMaterials;
import net.minecraft.world.item.Item;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.api.distmarker.OnlyIn;
import software.bernie.geckolib.renderer.GeoArmorRenderer;
import java.util.function.Supplier;
public class RuChest6b43 extends BulletResistantArmor { public class RuChest6b43 extends BulletResistantArmor {
public RuChest6b43() { public RuChest6b43() {
super(ModArmorMaterials.CEMENTED_CARBIDE, super(ModArmorMaterials.CEMENTED_CARBIDE,
Type.CHESTPLATE, Type.CHESTPLATE,
new Properties().durability(Type.CHESTPLATE.getDurability(50)), new Properties().durability(Type.CHESTPLATE.getDurability(50)),
0.5f, 0.5f
RuChest6b43ArmorRenderer::new
); );
} }
@OnlyIn(Dist.CLIENT)
@Override
public Supplier<GeoArmorRenderer<? extends Item>> getRenderer() {
return RuChest6b43ArmorRenderer::new;
}
} }

View file

@ -2,14 +2,26 @@ package com.atsuishio.superbwarfare.item.armor;
import com.atsuishio.superbwarfare.client.renderer.armor.RuHelmet6b47ArmorRenderer; import com.atsuishio.superbwarfare.client.renderer.armor.RuHelmet6b47ArmorRenderer;
import com.atsuishio.superbwarfare.init.ModArmorMaterials; import com.atsuishio.superbwarfare.init.ModArmorMaterials;
import net.minecraft.world.item.Item;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.api.distmarker.OnlyIn;
import software.bernie.geckolib.renderer.GeoArmorRenderer;
import java.util.function.Supplier;
public class RuHelmet6b47 extends BulletResistantArmor { public class RuHelmet6b47 extends BulletResistantArmor {
public RuHelmet6b47() { public RuHelmet6b47() {
super(ModArmorMaterials.CEMENTED_CARBIDE, super(ModArmorMaterials.CEMENTED_CARBIDE,
Type.HELMET, Type.HELMET,
new Properties().durability(Type.HELMET.getDurability(50)), new Properties().durability(Type.HELMET.getDurability(50)),
0.2f, 0.2f
RuHelmet6b47ArmorRenderer::new
); );
} }
@OnlyIn(Dist.CLIENT)
@Override
public Supplier<GeoArmorRenderer<? extends Item>> getRenderer() {
return RuHelmet6b47ArmorRenderer::new;
}
} }

View file

@ -2,14 +2,26 @@ package com.atsuishio.superbwarfare.item.armor;
import com.atsuishio.superbwarfare.client.renderer.armor.UsChestIotvArmorRenderer; import com.atsuishio.superbwarfare.client.renderer.armor.UsChestIotvArmorRenderer;
import com.atsuishio.superbwarfare.init.ModArmorMaterials; import com.atsuishio.superbwarfare.init.ModArmorMaterials;
import net.minecraft.world.item.Item;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.api.distmarker.OnlyIn;
import software.bernie.geckolib.renderer.GeoArmorRenderer;
import java.util.function.Supplier;
public class UsChestIotv extends BulletResistantArmor { public class UsChestIotv extends BulletResistantArmor {
public UsChestIotv() { public UsChestIotv() {
super(ModArmorMaterials.CEMENTED_CARBIDE, super(ModArmorMaterials.CEMENTED_CARBIDE,
Type.CHESTPLATE, Type.CHESTPLATE,
new Properties().durability(Type.CHESTPLATE.getDurability(50)), new Properties().durability(Type.CHESTPLATE.getDurability(50)),
0.5f, 0.5f
UsChestIotvArmorRenderer::new
); );
} }
@OnlyIn(Dist.CLIENT)
@Override
public Supplier<GeoArmorRenderer<? extends Item>> getRenderer() {
return UsChestIotvArmorRenderer::new;
}
} }

View file

@ -2,14 +2,26 @@ package com.atsuishio.superbwarfare.item.armor;
import com.atsuishio.superbwarfare.client.renderer.armor.UsHelmetPastgArmorRenderer; import com.atsuishio.superbwarfare.client.renderer.armor.UsHelmetPastgArmorRenderer;
import com.atsuishio.superbwarfare.init.ModArmorMaterials; import com.atsuishio.superbwarfare.init.ModArmorMaterials;
import net.minecraft.world.item.Item;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.api.distmarker.OnlyIn;
import software.bernie.geckolib.renderer.GeoArmorRenderer;
import java.util.function.Supplier;
public class UsHelmetPastg extends BulletResistantArmor { public class UsHelmetPastg extends BulletResistantArmor {
public UsHelmetPastg() { public UsHelmetPastg() {
super(ModArmorMaterials.CEMENTED_CARBIDE, super(ModArmorMaterials.CEMENTED_CARBIDE,
Type.HELMET, Type.HELMET,
new Properties().durability(Type.HELMET.getDurability(50)), new Properties().durability(Type.HELMET.getDurability(50)),
0.2f, 0.2f
UsHelmetPastgArmorRenderer::new
); );
} }
@OnlyIn(Dist.CLIENT)
@Override
public Supplier<GeoArmorRenderer<? extends Item>> getRenderer() {
return UsHelmetPastgArmorRenderer::new;
}
} }