作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
各位编码员大家好,
我正在为 Minecraft 1.8 编写一个 mod,并且在我的 throwable 中遇到了令人讨厌的 NullPointerException
。在下面的代码中,EntityThrowable
使用外部类来获取抛出时会发生的结果,并且传递的 BlockPos
来自 getBlockPos()
方法。该位置被传递到外部类,并在其中转换为 x、y 和 z 坐标。但是,每当我抛出可抛出对象时,它都会抛出这些坐标的异常。
这个问题和什么是 NullPointerException 的问题之间的区别在于,我从 mov.getBlockPos()
(从 MovingObjectPosition
>) 未知。 MovingObjectPosition
从随机类中分配 BlockPos 的坐标,Throwable 的编码器获取结果。我正在使用外部类(class)的结果。这些整数结果会导致游戏因未知坐标而崩溃。如果您知道如何获取可抛出的结束位置,我们将不胜感激。
代码如下:
可抛出:
@Override
protected void onImpact(MovingObjectPosition mov) {
LuckyPotionItems lpi = new LuckyPotionItems();
EntityPlayer player = this.getThrower() instanceof EntityPlayer ? (EntityPlayer) this.getThrower() : null;
if(!worldObj.isRemote)
lpi.chooseUnluckyDrink(worldObj, player, mov.getBlockPos());
this.setDead();
}
外部类:
public void chooseUnluckyDrink(World w, EntityPlayer p, BlockPos pos){
Random r = w.rand;
int number = r.nextInt(13);
int x = pos.getX();
int y = pos.getY();
int z = pos.getZ();
System.out.println("Unlucky Number = " + number);
感谢您的帮助。
最佳答案
听起来这个问题可以通过检查BlockPos
和EntityPlayer
是否不为空来解决。如果它们不为空,则运行该方法。如果它们为 null,则只需阻止该方法运行即可。
@Override
protected void onImpact(MovingObjectPosition mov) {
LuckyPotionItems lpi = new LuckyPotionItems();
EntityPlayer player = this.getThrower() instanceof EntityPlayer ? (EntityPlayer) this.getThrower() : null;
if(mov.getBlockPos() != null && player != null) {
if(!worldObj.isRemote)
lpi.chooseUnluckyDrink(worldObj, player, mov.getBlockPos());
this.setDead();
}
}
关于java - NullPointerException 带有滴答声实体 Minecraft modding 1.8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36928198/
我是一名优秀的程序员,十分优秀!