gpt4 book ai didi

java - NullPointerException 带有滴答声实体 Minecraft modding 1.8

转载 作者:行者123 更新时间:2023-11-30 07:25:01 26 4
gpt4 key购买 nike

各位编码员大家好,

我正在为 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);

感谢您的帮助。

最佳答案

听起来这个问题可以通过检查BlockPosEntityPlayer是否不为空来解决。如果它们不为空,则运行该方法。如果它们为 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com