9
0
mirror of https://github.com/HibiscusMC/HMCCosmetics.git synced 2025-12-28 19:39:14 +00:00

Fixed issue with not opening wardrobe inventory

This commit is contained in:
Fisher2911
2022-04-03 22:27:08 -04:00
parent 3ed245c95b
commit 0ea5c92d86
5 changed files with 30 additions and 20 deletions

View File

@@ -139,9 +139,9 @@ public class Database {
});
onComplete.accept(new NPCUser(
id,
PlayerArmor.empty(),
new EntityIds(entity.getEntityId(), armorStandId, balloonId, wardrobeViewerId)
id,
PlayerArmor.empty(),
new EntityIds(entity.getEntityId(), armorStandId, balloonId, wardrobeViewerId)
)
);
}

View File

@@ -1,13 +1,16 @@
package io.github.fisher2911.hmccosmetics.listener;
import com.github.retrooper.packetevents.PacketEvents;
import com.github.retrooper.packetevents.event.PacketListenerAbstract;
import com.github.retrooper.packetevents.event.PacketReceiveEvent;
import com.github.retrooper.packetevents.protocol.packettype.PacketType;
import io.github.fisher2911.hmccosmetics.HMCCosmetics;
import io.github.fisher2911.hmccosmetics.user.UserManager;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.player.PlayerInteractEvent;
public class WardrobeListener implements Listener {
@@ -17,18 +20,21 @@ public class WardrobeListener implements Listener {
public WardrobeListener(final HMCCosmetics plugin) {
this.plugin = plugin;
this.userManager = this.plugin.getUserManager();
}
@EventHandler
public void onPunch(final PlayerInteractEvent event) {
final Player player = event.getPlayer();
final Action action = event.getAction();
if (action != Action.LEFT_CLICK_AIR && action != Action.LEFT_CLICK_BLOCK) return;
this.userManager.get(player.getUniqueId()).ifPresent(user -> {
if (!user.getWardrobe().isActive()) return;
this.plugin.getCosmeticsMenu().openDefault(player);
}
);
PacketEvents.getAPI().getEventManager().registerListener(
new PacketListenerAbstract() {
@Override
public void onPacketReceive(PacketReceiveEvent event) {
if (event.getPacketType() != PacketType.Play.Client.ANIMATION) return;
if (!(event.getPlayer() instanceof final Player player)) return;
WardrobeListener.this.userManager.get(player.getUniqueId()).ifPresent(user -> {
if (!user.getWardrobe().isActive()) return;
Bukkit.getScheduler().runTask(plugin, () -> {
WardrobeListener.this.plugin.getCosmeticsMenu().openDefault(player);
});
}
);
}
});
}
@EventHandler

View File

@@ -301,7 +301,7 @@ public class PacketManager {
public static void sendCameraPacket(final int entityId, final Player... sendTo) {
for (final Player p : sendTo) {
PacketEvents.getAPI().getPlayerManager().sendPacketAsync(p, new WrapperPlayServerCamera(entityId));
PacketEvents.getAPI().getPlayerManager().sendPacketSilentlyAsync(p, new WrapperPlayServerCamera(entityId));
}
}

View File

@@ -53,7 +53,7 @@ public class User extends BaseUser<UUID> {
final Player player = this.getPlayer();
if (player == null || player.isDead()) return false;
if (player.getUniqueId().equals(other.getUniqueId()) && this.hidden) return false;
if (this.isWardrobeActive()) return false;
if (this.isWardrobeActive() && !(this instanceof Wardrobe)) return false;
final ItemStack itemStack = player.getInventory().getItemInMainHand();
if (itemStack != null && itemStack.getType() == Material.TRIDENT) {
final ItemMeta itemMeta = itemStack.getItemMeta();

View File

@@ -52,7 +52,11 @@ public class Wardrobe extends User {
() -> {
if (settings.inDistanceOfStatic(viewer.getLocation())) {
this.currentLocation = settings.getWardrobeLocation();
userManager.get(viewer.getUniqueId()).ifPresent(user -> userManager.sendUpdatePacket(user, userManager.getEmptyItemList()));
userManager.get(viewer.getUniqueId()).ifPresent(user -> {
userManager.sendUpdatePacket(user, userManager.getEmptyItemList());
user.despawnAttached();
user.despawnBalloon();
});
PacketManager.sendEntitySpawnPacket(
settings.getViewerLocation(),
this.entityIds.wardrobeViewer(),