mirror of
https://github.com/HibiscusMC/HMCCosmetics.git
synced 2025-12-19 15:09:19 +00:00
fix: hidden backpacks still having armorstands spawned
This commit is contained in:
@@ -340,6 +340,7 @@ public class PlayerGameListener implements Listener {
|
||||
public void onPlayerGamemodeSwitch(PlayerGameModeChangeEvent event) {
|
||||
CosmeticUser user = CosmeticUsers.getUser(event.getPlayer());
|
||||
if (user == null) return;
|
||||
if (user.isInWardrobe()) user.leaveWardrobe(true);
|
||||
|
||||
if (Settings.isDisabledGamemodesEnabled()) {
|
||||
if (Settings.getDisabledGamemodes().contains(event.getNewGameMode().toString())) {
|
||||
|
||||
@@ -209,7 +209,9 @@ public class CosmeticUser {
|
||||
}
|
||||
|
||||
public ItemStack getUserCosmeticItem(CosmeticSlot slot) {
|
||||
return getUserCosmeticItem(getCosmetic(slot));
|
||||
Cosmetic cosmetic = getCosmetic(slot);
|
||||
if (cosmetic == null) return new ItemStack(Material.AIR);
|
||||
return getUserCosmeticItem(cosmetic);
|
||||
}
|
||||
|
||||
public ItemStack getUserCosmeticItem(Cosmetic cosmetic) {
|
||||
@@ -335,7 +337,7 @@ public class CosmeticUser {
|
||||
leaveWardrobe(false);
|
||||
}
|
||||
|
||||
public void leaveWardrobe(boolean disconnecting) {
|
||||
public void leaveWardrobe(boolean ejected) {
|
||||
PlayerWardrobeLeaveEvent event = new PlayerWardrobeLeaveEvent(this);
|
||||
Bukkit.getPluginManager().callEvent(event);
|
||||
if (event.isCancelled()) {
|
||||
@@ -346,7 +348,7 @@ public class CosmeticUser {
|
||||
|
||||
getWardrobeManager().setWardrobeStatus(UserWardrobeManager.WardrobeStatus.STOPPING);
|
||||
|
||||
if (WardrobeSettings.isEnabledTransition() && !disconnecting) {
|
||||
if (WardrobeSettings.isEnabledTransition() && !ejected) {
|
||||
MessagesUtil.sendTitle(
|
||||
getPlayer(),
|
||||
WardrobeSettings.getTransitionText(),
|
||||
@@ -413,6 +415,7 @@ public class CosmeticUser {
|
||||
if (!hasCosmeticInSlot(CosmeticSlot.BACKPACK)) return;
|
||||
final Cosmetic cosmetic = getCosmetic(CosmeticSlot.BACKPACK);
|
||||
despawnBackpack();
|
||||
if (hideCosmetics) return;
|
||||
spawnBackpack((CosmeticBackpackType) cosmetic);
|
||||
MessagesUtil.sendDebugMessages("Respawned Backpack for " + getEntity().getName());
|
||||
}
|
||||
@@ -512,7 +515,7 @@ public class CosmeticUser {
|
||||
getBalloonManager().sendRemoveLeashPacket();
|
||||
}
|
||||
if (hasCosmeticInSlot(CosmeticSlot.BACKPACK)) {
|
||||
userBackpackManager.clearItems();
|
||||
despawnBackpack();
|
||||
}
|
||||
updateCosmetic();
|
||||
MessagesUtil.sendDebugMessages("HideCosmetics");
|
||||
@@ -535,7 +538,8 @@ public class CosmeticUser {
|
||||
List<Player> viewer = HMCCPlayerUtils.getNearbyPlayers(getEntity().getLocation());
|
||||
HMCCPacketManager.sendLeashPacket(getBalloonManager().getPufferfishBalloonId(), getPlayer().getEntityId(), viewer);
|
||||
}
|
||||
if (hasCosmeticInSlot(CosmeticSlot.BACKPACK) && isBackpackSpawned()) {
|
||||
if (hasCosmeticInSlot(CosmeticSlot.BACKPACK)) {
|
||||
if (!isBackpackSpawned()) respawnBackpack();
|
||||
CosmeticBackpackType cosmeticBackpackType = (CosmeticBackpackType) getCosmetic(CosmeticSlot.BACKPACK);
|
||||
ItemStack item = getUserCosmeticItem(cosmeticBackpackType);
|
||||
userBackpackManager.setItem(item);
|
||||
|
||||
@@ -136,9 +136,11 @@ public class UserWardrobeManager {
|
||||
if (user.hasCosmeticInSlot(CosmeticSlot.BACKPACK)) {
|
||||
// Maybe null as backpack maybe despawned before entering
|
||||
if (user.getUserBackpackManager() == null) user.respawnBackpack();
|
||||
user.getUserBackpackManager().getEntityManager().teleport(npcLocation.clone().add(0, 2, 0));
|
||||
PacketManager.equipmentSlotUpdate(user.getUserBackpackManager().getFirstArmorStandId(), EquipmentSlot.HEAD, user.getUserCosmeticItem(user.getCosmetic(CosmeticSlot.BACKPACK)), viewer);
|
||||
HMCCPacketManager.ridingMountPacket(NPC_ID, user.getUserBackpackManager().getFirstArmorStandId(), viewer);
|
||||
if (user.isBackpackSpawned()) {
|
||||
user.getUserBackpackManager().getEntityManager().teleport(npcLocation.clone().add(0, 2, 0));
|
||||
PacketManager.equipmentSlotUpdate(user.getUserBackpackManager().getFirstArmorStandId(), EquipmentSlot.HEAD, user.getUserCosmeticItem(user.getCosmetic(CosmeticSlot.BACKPACK)), viewer);
|
||||
HMCCPacketManager.ridingMountPacket(NPC_ID, user.getUserBackpackManager().getFirstArmorStandId(), viewer);
|
||||
}
|
||||
}
|
||||
|
||||
if (user.hasCosmeticInSlot(CosmeticSlot.BALLOON)) {
|
||||
|
||||
Reference in New Issue
Block a user