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