Java 在Minecraft 1.12.2中,制作一套护甲可以提高生命值,作为套装加成

Java 在Minecraft 1.12.2中,制作一套护甲可以提高生命值,作为套装加成,java,minecraft-forge,Java,Minecraft Forge,我试着让玩家在穿戴全套特定盔甲时获得药剂效果。在某种程度上,我做到了这一点,但还没有完全做到。当全集开启时,玩家获得多个效果,包括生命值提升5和再生1。问题是,由于我是如何编码的,玩家的每一个滴答声都会得到和失去效果,这通常不是问题;但这使得健康促进毫无用处。为了解决这个问题,我用Max_Health属性替换了Health Boost效果。如果我这样做,玩家确实获得了生命值,但他们获得了太多;他们的最大生命值无限增加。此外,再生似乎出现故障-玩家恢复健康的速度太快。我给他们再生1,似乎他们有再生

我试着让玩家在穿戴全套特定盔甲时获得药剂效果。在某种程度上,我做到了这一点,但还没有完全做到。当全集开启时,玩家获得多个效果,包括生命值提升5和再生1。问题是,由于我是如何编码的,玩家的每一个滴答声都会得到和失去效果,这通常不是问题;但这使得健康促进毫无用处。为了解决这个问题,我用Max_Health属性替换了Health Boost效果。如果我这样做,玩家确实获得了生命值,但他们获得了太多;他们的最大生命值无限增加。此外,再生似乎出现故障-玩家恢复健康的速度太快。我给他们再生1,似乎他们有再生50。很可能我做了一件非常愚蠢的事,只是没有注意到。。。有什么想法吗

@Override
    public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack) 
    {
        if(player.inventory.armorItemInSlot(3) != null && player.inventory.armorItemInSlot(3).getItem() == ModItems.COLORITE_HELMET)
        {
            if(player.inventory.armorItemInSlot(2) != null && player.inventory.armorItemInSlot(2).getItem() == ModItems.COLORITE_CHESTPLATE)
            {
                if(player.inventory.armorItemInSlot(1) != null && player.inventory.armorItemInSlot(1).getItem() == ModItems.COLORITE_LEGGINGS)
                {
                    if(player.inventory.armorItemInSlot(0) != null && player.inventory.armorItemInSlot(0).getItem() == ModItems.COLORITE_BOOTS)
                    {
                        player.addPotionEffect(new PotionEffect(MobEffects.NIGHT_VISION, (52 * 7 * 24 * 60 * 60 * 20), 0, false, true)); //Ruby
                        player.addPotionEffect(new PotionEffect(MobEffects.FIRE_RESISTANCE, (52 * 7 * 24 * 60 * 60 * 20), 0, false, true)); //Amber
                        player.addPotionEffect(new PotionEffect(MobEffects.HASTE, (52 * 7 * 24 * 60 * 60 * 20), 2, false, true)); //Topaz
                        player.addPotionEffect(new PotionEffect(MobEffects.JUMP_BOOST, (52 * 7 * 24 * 60 * 60 * 20), 4, false, true)); //Malachite
                        player.addPotionEffect(new PotionEffect(MobEffects.SPEED, (52 * 7 * 24 * 60 * 60 * 20), 4, false, true)); //Kyanite
                        player.addPotionEffect(new PotionEffect(MobEffects.WATER_BREATHING, (52 * 7 * 24 * 60 * 60 * 20), 0, false, true)); //Aquamarine
                        player.addPotionEffect(new PotionEffect(MobEffects.RESISTANCE, (52 * 7 * 24 * 60 * 60 * 20), 0, false, true)); //Sapphire
                        player.addPotionEffect(new PotionEffect(MobEffects.REGENERATION, (52 * 7 * 24 * 60 * 60 * 20), 0, false, true)); //Amethyst
                        if(maxHealth < 40.0D)
                        {
                            player.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).applyModifier(new AttributeModifier("HEALTH_BOOST", 20.0D, 1)); //Colorite or progressive - to be decided
                        }
                    }
                }
            }
        }
@覆盖
Armortick上的公共无效(世界世界、EntityPlayer、ItemStack ItemStack)
{
if(player.inventory.armoritemslot(3)!=null&&player.inventory.armoritemslot(3.getItem()==ModItems.COLORITE\u头盔)
{
if(player.inventory.armoritemslot(2)!=null&&player.inventory.armoritemslot(2.getItem()==ModItems.COLORITE\u胸板)
{
if(player.inventory.armoritemslot(1)!=null&&player.inventory.armoritemslot(1.getItem()==ModItems.COLORITE_紧身裤)
{
if(player.inventory.armoritemslot(0)!=null&&player.inventory.armoritemslot(0.getItem()==ModItems.COLORITE_)
{
player.addPotioneEffect(新的PotioneEffect(MobEffects.NIGHT_VISION,(52*7*24*60*60*20),0,false,true));//Ruby
player.addPotioneEffect(新PotioneEffect(mobeeffects.FIRE_RESISTANCE,(52*7*24*60*60*20),0,false,true));//琥珀色
player.addPotioneEffect(新的PotioneEffect(mobeeffects.HASTE,(52*7*24*60*60*20),2,假,真));//黄玉
player.addPotionEffect(新的PotionEffect(mobeeffects.JUMP_BOOST,(52*7*24*60*60*20),4,false,true));//孔雀石
player.addPotioneEffect(新的PotioneEffect(MobEffects.SPEED,(52*7*24*60*60*20),4,false,true));//蓝晶石
player.addPotioneEffect(新PotioneEffect(mobeeffects.WATER_呼吸,(52*7*24*60*60*20),0,假,真));//海蓝宝石
player.addPotioneEffect(新的PotioneEffect(MobEffects.RESISTANCE,(52*7*24*60*60*20),0,false,true));//Sapphire
player.addPotioneEffect(新的PotioneEffect(MobEffects.REGENERATION,(52*7*24*60*60*20),0,false,true));//紫水晶
如果(最大健康度<40.0D)
{
player.getEntityAttribute(SharedMonsAttributes.MAX_HEALTH).applyModifier(新属性修改器(“HEALTH_BOOST”,20.0D,1));//彩色或渐进式-待定
}
}
}
}
}
注意:我给玩家一年的效果,因为在这几行之后,我有一种方法可以移除任何一件盔甲的效果