From 0546f866e4296cf4afd8ca51407895fa6b4bbd3c Mon Sep 17 00:00:00 2001 From: LoJoSho Date: Sat, 26 Nov 2022 12:52:49 -0600 Subject: [PATCH] Remove backpacks if invalid user --- .../listener/PlayerConnectionListener.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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();