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:
@@ -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)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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(),
|
||||
|
||||
Reference in New Issue
Block a user