diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/listener/PlayerGameListener.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/listener/PlayerGameListener.java index f5fc0af7..740d6248 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/listener/PlayerGameListener.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/listener/PlayerGameListener.java @@ -94,19 +94,17 @@ public class PlayerGameListener implements Listener { Bukkit.getScheduler().runTaskLater(HMCCosmeticsPlugin.getInstance(), () -> { if (user.getEntity() == null || user.isInWardrobe()) return; // fixes disconnecting when in wardrobe (the entity stuff) + if (Settings.getDisabledWorlds().contains(user.getEntity().getLocation().getWorld().getName())) { user.hideCosmetics(CosmeticUser.HiddenReason.WORLD); } else { user.showCosmetics(CosmeticUser.HiddenReason.WORLD); } - if (user.hasCosmeticInSlot(CosmeticSlot.BACKPACK) && user.getUserBackpackManager() != null) { - user.respawnBackpack(); - } - if (user.hasCosmeticInSlot(CosmeticSlot.BALLOON)) { - user.respawnBalloon(); - } + + user.respawnBackpack(); + user.respawnBalloon(); user.updateCosmetic(); - }, 2); + }, 4); if (event.getCause().equals(PlayerTeleportEvent.TeleportCause.NETHER_PORTAL) || event.getCause().equals(PlayerTeleportEvent.TeleportCause.END_PORTAL)) return; } diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/user/manager/UserSearchManager.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/user/manager/UserSearchManager.java index 239fbc95..a5b245f6 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/user/manager/UserSearchManager.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/user/manager/UserSearchManager.java @@ -5,10 +5,12 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.event.player.PlayerTeleportEvent; import java.util.*; @@ -73,7 +75,7 @@ public class UserSearchManager implements Listener { .toList(); } - @EventHandler + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) public void onPlayerMove(PlayerMoveEvent event) { Player player = event.getPlayer(); if (event.hasChangedBlock()) { @@ -81,6 +83,12 @@ public class UserSearchManager implements Listener { } } + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) + public void onPlayerTeleport(PlayerTeleportEvent event) { + Player player = event.getPlayer(); + updatePlayerPosition(player); + } + public void clear() { worldOctrees.clear(); playerPositions.clear();