diff --git a/src/main/java/com/hibiscusmc/hmccosmetics/listener/PlayerConnectionListener.java b/src/main/java/com/hibiscusmc/hmccosmetics/listener/PlayerConnectionListener.java index 0d6c2ebf..fd11e95e 100644 --- a/src/main/java/com/hibiscusmc/hmccosmetics/listener/PlayerConnectionListener.java +++ b/src/main/java/com/hibiscusmc/hmccosmetics/listener/PlayerConnectionListener.java @@ -1,8 +1,10 @@ package com.hibiscusmc.hmccosmetics.listener; import com.hibiscusmc.hmccosmetics.database.Database; +import com.hibiscusmc.hmccosmetics.entities.InvisibleArmorstand; import com.hibiscusmc.hmccosmetics.user.CosmeticUser; import com.hibiscusmc.hmccosmetics.user.CosmeticUsers; +import org.bukkit.entity.Entity; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; @@ -20,7 +22,16 @@ public class PlayerConnectionListener implements Listener { @EventHandler public void onPlayerQuit(PlayerQuitEvent event) { CosmeticUser user = CosmeticUsers.getUser(event.getPlayer()); - if (user == null) return; + if (user == null) { // Remove any passengers if a user failed to initialize. Bugs can cause this to happen + if (!event.getPlayer().getPassengers().isEmpty()) { + for (Entity entity : event.getPlayer().getPassengers()) { + if (entity instanceof InvisibleArmorstand) { + ((InvisibleArmorstand) entity).setHealth(0); + entity.remove(); + } + } + } + } if (user.isInWardrobe()) user.leaveWardrobe(); Database.save(user); user.despawnBackpack();