我正在尝试使我的Minecraft 1.12.2 mod达到魅力。我有用于检查附魔等级,是否开启等的代码。现在我的问题是函数。我不知道该如何改变我的触角。我知道有一个属性可以执行此操作,但是我不知道如何更改它。谁能帮我?到目前为止,这是我的代码:
public static void enchantReachFunction(LivingUpdateEvent event)
{
Object player = event.getEntityLiving();
if(event.getEntityLiving() instanceof EntityLivingBase)
{
EntityLivingBase entityPlayer = (EntityLivingBase)player;
int level = EnchantmentHelper.getEnchantmentLevel(ENCHANT_REACH, entityPlayer.getItemStackFromSlot(EntityEquipmentSlot.CHEST));
if(!entityPlayer.getEntityWorld().isRemote && level == 1)
{
float setBlockReachDistance = 8.0F;
}
else if(!entityPlayer.getEntityWorld().isRemote && level == 2)
{
float setBlockReachDistance = 12.0F;
}
else if(!entityPlayer.getEntityWorld().isRemote && level == 3)
{
float setBlockReachDistance = 16.0F;
}
else
{
float setBlockReachDistance = 4.0F;
}
}
}
基本上,我要检查结界的等级,然后根据等级来增加触及率,但它不起作用。有什么想法吗?
到达率由REACH_DISTANCE
属性确定。您可以这样修改:
EntityPlayer player = Minecraft.getMinecraft().player;
player.getEntityAttribute(EntityPlayer.REACH_DISTANCE).applyModifier(new AttributeModifier(player.getUniqueID(), "custom_reach", setBlockReachDistance, 1));
我假设当您手中拿着附有附魔的工具时,您正在改变他们的覆盖范围。您需要跟踪播放器何时切换到该工具并应用修改器。当他们离开工具时,您需要像这样删除修饰符:
player.getEntityAttribute(EntityPlayer.REACH_DISTANCE).removeModifier(player.getUniqueID());