Posted February 8, 20241 yr I'm modifying the player's max health attribute but it only updates when the player gets damage private static void addMaxHealth(Player player, double value) { player.getAttribute(Attributes.MAX_HEALTH) .addPermanentModifier(new AttributeModifier("health", value, AttributeModifier.Operation.ADDITION)); }
February 11, 20241 yr On 2/8/2024 at 12:04 PM, Jetug said: I'm modifying the player's max health attribute but it only updates when the player gets damage The code works when I try it. From where are you calling it?
February 12, 20241 yr Author 14 hours ago, vemerion said: From where are you calling it? From finishUsingItem() in my item class public ItemStack finishUsingItem(ItemStack stack, Level level, LivingEntity entity) { if (entity instanceof Player player) setAddMaxHealth(player, -10) return super.finishUsingItem(stack, level, entity); } The code works fine only when the value is positive Edited February 12, 20241 yr by Jetug
February 12, 20241 yr 8 hours ago, Jetug said: The code works fine only when the value is positive If you call setHealth() after you changed the attribute it should update immediately, something like this: player.setHealth(Math.min(player.getMaxHealth(), player.getHealth()));
February 12, 20241 yr Author 3 hours ago, vemerion said: If you call setHealth() after you changed the attribute it should update immediately, something like this: player.setHealth(Math.min(player.getMaxHealth(), player.getHealth())); Thanks! It worked
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.