试图找出如何增加我在 Minecraft 1.12.2 中的影响 mod

Trying to find out how to increase my reach in a minecraft 1.12.2 mod

我正在尝试为我的 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());