【Forge 1.16】如何让定义可以拉的弓

OMYJO


版本信息
你使用的系统:win x64
你用的JDK是: <这里填上你的JDK信息,要带上是否为64位>
你使用的IDE:IntelliJ IDEA
你使用的IDE版本:<请在这里贴入你的IDE版本信息>
Forge版本: forge 1.16.3-34.1.0
Minecraft版本: Minecraft 1.1.6

出错图
<把图片直接拖拽上来>
错误情况简述
1.16版本的Minecraft对弓的“pull”和“pulling”的设置放在了一个@OnlyIn(Dist.CLIENT)
public class ItemModelsProperties 的类中,下面这个代码在其静态初始化块中,
func_239418_a_(Items.BOW, new ResourceLocation(“pulling”), (p_239428_0_, p_239428_1_, p_239428_2_) -> {
return p_239428_2_ != null && p_239428_2_.isHandActive() && p_239428_2_.getActiveItemStack() == p_239428_0_ ? 1.0F : 0.0F;
});
仿照着,我在我自己的弓物品的构造函数中这样写的:
ItemModelsProperties.func_239418_a_(this, new ResourceLocation(“pulling”), (p_239428_0_, p_239428_1_, p_239428_2_) -> {
return p_239428_2_ != null && p_239428_2_.isHandActive() && p_239428_2_.getActiveItemStack() == p_239428_0_ ? 1.0F : 0.0F;
});
这么写之后生成的mod在单机Minecraft中没什么问题,但是放在Forge的Server里就会报错

报错日志

java.lang.NoClassDefFoundError: net/minecraft/item/IItemPropertyGetter

FledgeXu


  1. 这个问题出错的原因很简单,你在物理服务端上引用了一个只在客户端出现的类,自然会出错。
  2. 你这个提问有问题,提问的时候请把类的代码的贴全,而不是像现在这样边说边贴(顺便连markdown都没用,建议学一下,小学生都能学会的东西)还有错误信息要贴全,至少把整个调用栈贴上,而不是只贴一句话。
    Markdown 简明教程
  3. 你需要更新一下mapping文件了,全是srg名字既不方便写代码也不方便debug。

OMYJO


https://boson.v2mcdev.com/item/item-property-override.html
此链接中的内容可以解决问题


system


该主题在最后一个回复创建后7天后自动关闭。不再允许新的回复。