From fcbae02a4b9b796a9f0cd0f59446ae4e525da8b5 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Thu, 27 Aug 2020 14:16:09 +0200 Subject: [PATCH] Fixs #2208 --- CHANGELOG.md | 1 + .../implementation/items/medical/MedicalSupply.java | 6 ++++++ .../slimefun4/implementation/items/medical/Medicine.java | 7 +++++++ .../slimefun4/implementation/items/medical/Vitamins.java | 9 +++++++-- .../implementation/items/weapons/VampireBlade.java | 8 +++++--- 5 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/medical/MedicalSupply.java diff --git a/CHANGELOG.md b/CHANGELOG.md index f6c743540..1795ed27d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -83,6 +83,7 @@ * Fixed #2243 * Fixed #2249 * Fixed #1022 +* Fixed #2208 ## Release Candidate 15 (01 Aug 2020) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/medical/MedicalSupply.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/medical/MedicalSupply.java new file mode 100644 index 000000000..fc543480f --- /dev/null +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/medical/MedicalSupply.java @@ -0,0 +1,6 @@ +package io.github.thebusybiscuit.slimefun4.implementation.items.medical; + + +public interface MedicalSupply { + +} diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Medicine.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Medicine.java index 8d42e4b7e..ec9a4c856 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Medicine.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Medicine.java @@ -1,5 +1,6 @@ package io.github.thebusybiscuit.slimefun4.implementation.items.medical; +import org.bukkit.attribute.Attribute; import org.bukkit.inventory.ItemStack; import org.bukkit.potion.PotionEffectType; @@ -11,6 +12,8 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class Medicine extends SimpleSlimefunItem { + private static final double HEALING_AMOUNT = 8.0; + public Medicine(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { super(category, item, recipeType, recipe); } @@ -26,6 +29,10 @@ public class Medicine extends SimpleSlimefunItem { if (p.hasPotionEffect(PotionEffectType.CONFUSION)) p.removePotionEffect(PotionEffectType.CONFUSION); if (p.hasPotionEffect(PotionEffectType.BLINDNESS)) p.removePotionEffect(PotionEffectType.BLINDNESS); + double health = p.getHealth() + HEALING_AMOUNT; + double maxHealth = p.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue(); + p.setHealth(Math.min(health, maxHealth)); + p.setFireTicks(0); }; } diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Vitamins.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Vitamins.java index 2b7240427..42280e205 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Vitamins.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/medical/Vitamins.java @@ -2,9 +2,9 @@ package io.github.thebusybiscuit.slimefun4.implementation.items.medical; import org.bukkit.GameMode; import org.bukkit.Sound; +import org.bukkit.attribute.Attribute; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; -import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils; @@ -16,6 +16,8 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class Vitamins extends SimpleSlimefunItem { + private static final double HEALING_AMOUNT = 8.0; + public Vitamins(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { super(category, item, recipeType, recipe); } @@ -40,7 +42,10 @@ public class Vitamins extends SimpleSlimefunItem { if (p.hasPotionEffect(PotionEffectType.BLINDNESS)) p.removePotionEffect(PotionEffectType.BLINDNESS); p.setFireTicks(0); - p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 1, 2)); + + double health = p.getHealth() + HEALING_AMOUNT; + double maxHealth = p.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue(); + p.setHealth(Math.min(health, maxHealth)); e.cancel(); }; diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/weapons/VampireBlade.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/weapons/VampireBlade.java index 56c3c0770..72d101fa6 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/weapons/VampireBlade.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/weapons/VampireBlade.java @@ -1,11 +1,10 @@ package io.github.thebusybiscuit.slimefun4.implementation.items.weapons; import org.bukkit.Sound; +import org.bukkit.attribute.Attribute; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; -import org.bukkit.potion.PotionEffect; -import org.bukkit.potion.PotionEffectType; import io.github.thebusybiscuit.slimefun4.api.items.ItemSetting; import io.github.thebusybiscuit.slimefun4.implementation.listeners.VampireBladeListener; @@ -25,6 +24,7 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; */ public class VampireBlade extends SlimefunItem { + private static final double HEALING_AMOUNT = 4.0; private final ItemSetting chance = new ItemSetting<>("chance", 45); public VampireBlade(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { @@ -44,7 +44,9 @@ public class VampireBlade extends SlimefunItem { public void heal(Player p) { p.playSound(p.getLocation(), Sound.ENTITY_ARROW_HIT_PLAYER, 0.7F, 0.7F); - p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 1, 1)); + double health = p.getHealth() + HEALING_AMOUNT; + double maxHealth = p.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue(); + p.setHealth(Math.min(health, maxHealth)); } }