From b4dae7de00c29ece660627f55f1cdd48c143c7ce Mon Sep 17 00:00:00 2001 From: SuperRonanCraft Date: Sat, 7 Oct 2023 00:13:56 -0400 Subject: [PATCH] potion effect Async fix --- .../BetterRTP/player/rtp/RTPTeleport.java | 3 ++- .../player/rtp/effects/RTPEffect_Potions.java | 26 +++++++++++-------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPTeleport.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPTeleport.java index 8779b51..687d207 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPTeleport.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPTeleport.java @@ -73,7 +73,8 @@ public class RTPTeleport { //Effects - public void afterTeleport(Player p, Location loc, WorldPlayer wPlayer, int attempts, Location oldLoc, RTP_TYPE type) { //Only a successful rtp should run this OR '/rtp test' + public void afterTeleport(Player p, Location loc, WorldPlayer wPlayer, int attempts, Location oldLoc, RTP_TYPE type) { + //Only a successful rtp should run this OR '/rtp test' effects.getSounds().playTeleport(p); effects.getParticles().display(p); effects.getPotions().giveEffects(p); diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/effects/RTPEffect_Potions.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/effects/RTPEffect_Potions.java index eeea7c5..fdb817f 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/effects/RTPEffect_Potions.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/effects/RTPEffect_Potions.java @@ -2,6 +2,8 @@ package me.SuperRonanCraft.BetterRTP.player.rtp.effects; import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.SuperRonanCraft.BetterRTP.references.file.FileOther; +import me.SuperRonanCraft.BetterRTP.versions.AsyncHandler; +import me.SuperRonanCraft.BetterRTP.versions.FoliaHandler; import org.bukkit.entity.Player; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; @@ -49,18 +51,20 @@ public class RTPEffect_Potions { //Potions AND Invincibility } public void giveEffects(Player p) { - if (invincibleEnabled) - p.setNoDamageTicks(invincibleTime * 20); - if (potionEnabled) { - List effects = new ArrayList<>(); - for (PotionEffectType e : potionEffects.keySet()) { - Integer[] mods = potionEffects.get(e); - int duration = mods[0]; - int amplifier = mods[1]; - effects.add(new PotionEffect(e, duration, amplifier, false, false)); + AsyncHandler.sync(() -> { + if (invincibleEnabled) + p.setNoDamageTicks(invincibleTime * 20); + if (potionEnabled) { + List effects = new ArrayList<>(); + for (PotionEffectType e : potionEffects.keySet()) { + Integer[] mods = potionEffects.get(e); + int duration = mods[0]; + int amplifier = mods[1]; + effects.add(new PotionEffect(e, duration, amplifier, false, false)); + } + p.addPotionEffects(effects); } - p.addPotionEffects(effects); - } + }); } }