From def3102354faa78491bad1e5edbd96fc545e5607 Mon Sep 17 00:00:00 2001 From: Kam Date: Mon, 10 Feb 2025 18:51:21 -0500 Subject: [PATCH] Beta 2.5 --- build.gradle | 2 +- .../controllers/CustomEffectController.java | 70 +++++++++---------- 2 files changed, 33 insertions(+), 39 deletions(-) diff --git a/build.gradle b/build.gradle index a726d1bf7..2e869be71 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ plugins { id 'idea' } -version = "1.9.4-beta2.3" +version = "1.9.4-beta2.5" group= "kamkeel.customnpc-plus" archivesBaseName = "CustomNPC-Plus" diff --git a/src/main/java/noppes/npcs/controllers/CustomEffectController.java b/src/main/java/noppes/npcs/controllers/CustomEffectController.java index c207f447a..0e32ba2e2 100644 --- a/src/main/java/noppes/npcs/controllers/CustomEffectController.java +++ b/src/main/java/noppes/npcs/controllers/CustomEffectController.java @@ -214,36 +214,12 @@ public class CustomEffectController implements ICustomEffectHandler { public Map getPlayerEffects(EntityPlayer player) { UUID playerId = NoppesUtilServer.getUUID(player); - playerEffects.computeIfAbsent(playerId, k -> new ConcurrentHashMap<>()); - return playerEffects.get(playerId); - } - - public void applyEffect(EntityPlayer player, int id) { - CustomEffect parent = get(id); - if (parent != null) { - PlayerEffect playerEffect = new PlayerEffect(id, parent.length, (byte) 1); - applyEffect(player, playerEffect); - } - } - - public void applyEffect(EntityPlayer player, int id, int duration) { - CustomEffect parent = get(id); - if (parent != null) { - PlayerEffect playerEffect = new PlayerEffect(id, duration, (byte) 1); - applyEffect(player, playerEffect); - } - } - - public void applyEffect(EntityPlayer player, PlayerEffect effect) { - if (effect == null) - return; - - CustomEffect parent = get(effect.id); - if (parent != null) { - Map currentEffects = getPlayerEffects(player); - currentEffects.put(new EffectKey(effect.id, effect.index), effect); - parent.onAdded(player, effect); + Map effects = playerEffects.get(playerId); + if (effects == null) { + effects = new ConcurrentHashMap<>(); + playerEffects.put(playerId, effects); } + return effects; } public void removeEffect(EntityPlayer player, PlayerEffect effect, ExpirationType type) { @@ -253,7 +229,7 @@ public class CustomEffectController implements ICustomEffectHandler { Map currentEffects = getPlayerEffects(player); EffectKey key = new EffectKey(effect.id, effect.index); if (currentEffects.containsKey(key)) { - CustomEffect parent = get(effect.id); + CustomEffect parent = get(effect.id, effect.index); if (parent != null) { parent.onRemoved(player, effect, type); } @@ -313,7 +289,7 @@ public class CustomEffectController implements ICustomEffectHandler { public void clearEffects(IPlayer player) { if (player == null || player.getMCEntity() == null) return; - clearEffects(player.getMCEntity()); + clearEffects((EntityPlayer) player); } @Override @@ -355,13 +331,25 @@ public class CustomEffectController implements ICustomEffectHandler { return customEffects.get(customEffect.getID()); } - public void clearEffects(Entity player) { - Map effects = playerEffects.get(NoppesUtilServer.getUUID(player)); + public void clearEffects(EntityPlayer player) { + Map effects = getPlayerEffects(player); if (effects != null) { effects.clear(); } } + public void clearEffect(EntityPlayer player, int id) { + clearEffect(player, id, 0); + } + + public void clearEffect(EntityPlayer player, int id, int index) { + Map effects = getPlayerEffects(player); + if (effects != null) { + effects.remove(new EffectKey(id, index)); + } + } + + public boolean hasEffect(EntityPlayer player, int id) { return hasEffect(player, id, 0); } @@ -384,10 +372,9 @@ public class CustomEffectController implements ICustomEffectHandler { } public void applyEffect(EntityPlayer player, int id, int duration, byte level, int index) { - if (player == null || id <= 0) - return; + if (player == null || id <= 0) return; Map currentEffects = getPlayerEffects(player); - CustomEffect parent = get(id); + CustomEffect parent = get(id, index); if (parent != null) { PlayerEffect playerEffect = new PlayerEffect(id, duration, level); playerEffect.index = index; @@ -396,13 +383,20 @@ public class CustomEffectController implements ICustomEffectHandler { } } + public void removeEffect(EntityPlayer player, int id) { + removeEffect(player, id, 0, ExpirationType.REMOVED); + } + public void removeEffect(EntityPlayer player, int id, ExpirationType type) { removeEffect(player, id, 0, type); } + public void removeEffect(EntityPlayer player, int id, int index) { + removeEffect(player, id, index, ExpirationType.REMOVED); + } + public void removeEffect(EntityPlayer player, int id, int index, ExpirationType type) { - if (player == null || id <= 0) - return; + if (player == null || id <= 0) return; Map currentEffects = getPlayerEffects(player); EffectKey key = new EffectKey(id, index); PlayerEffect effect = currentEffects.get(key);