我正在试着为我的“我的世界”1.12.2模块做一个触达附魔。我有检查结界等级、是否开启等的代码。现在我的问题出在函数上。我不知道如何改变我的触角。我知道有一个属性可以做到这一点,但我不知道如何更改它。有谁可以帮我?这是我到目前为止的代码:
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;
}
}
}基本上,我正在检查结界的等级,然后根据等级增加范围,但它不起作用。有什么想法吗?
发布于 2020-06-06 23:31:09
范围由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());https://stackoverflow.com/questions/62232743
复制相似问题