mirror of
https://github.com/HibiscusMC/HMCCosmetics.git
synced 2025-12-29 03:49:19 +00:00
fixed armor showing in emotes
This commit is contained in:
@@ -14,7 +14,10 @@ import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.EquipmentSlot;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
@@ -40,6 +43,10 @@ public class UserEmoteModel extends PlayerModel {
|
||||
// Add config option that either allows player to move or forces them into a spot.
|
||||
Player player = user.getPlayer();
|
||||
List<Player> viewer = List.of(user.getPlayer());
|
||||
List<Player> outsideViewers = PacketManager.getViewers(player.getLocation());
|
||||
outsideViewers.remove(player);
|
||||
|
||||
PacketManager.equipmentSlotUpdate(player, true, outsideViewers);
|
||||
|
||||
Location newLocation = player.getLocation().clone();
|
||||
newLocation.setPitch(0);
|
||||
@@ -83,17 +90,22 @@ public class UserEmoteModel extends PlayerModel {
|
||||
despawn();
|
||||
Bukkit.getScheduler().runTask(HMCCosmeticsPlugin.getInstance(), () -> {
|
||||
if (user.getPlayer() == null) return;
|
||||
Player player = user.getPlayer();
|
||||
List<Player> viewer = List.of(user.getPlayer());
|
||||
if (viewer == null) return;
|
||||
int entityId = user.getPlayer().getEntityId();
|
||||
List<Player> outsideViewers = PacketManager.getViewers(player.getLocation());
|
||||
outsideViewers.remove(player);
|
||||
|
||||
int entityId = player.getEntityId();
|
||||
PacketManager.sendCameraPacket(entityId, viewer);
|
||||
PacketManager.sendEntityDestroyPacket(armorstandId, viewer);
|
||||
if (this.originalGamemode != null) {
|
||||
PacketManager.gamemodeChangePacket(user.getPlayer(), ServerUtils.convertGamemode(this.originalGamemode));
|
||||
user.getPlayer().setGameMode(this.originalGamemode);
|
||||
PacketManager.gamemodeChangePacket(player, ServerUtils.convertGamemode(this.originalGamemode));
|
||||
player.setGameMode(this.originalGamemode);
|
||||
}
|
||||
|
||||
if (user.getPlayer() != null) user.getPlayer().setInvisible(false);
|
||||
if (user.getPlayer() != null) player.setInvisible(false);
|
||||
PacketManager.equipmentSlotUpdate(player, false, outsideViewers);
|
||||
user.showPlayer();
|
||||
user.showCosmetics();
|
||||
});
|
||||
|
||||
@@ -16,9 +16,12 @@ import com.hibiscusmc.hmccosmetics.util.packets.wrappers.WrapperPlayServerPlayer
|
||||
import com.hibiscusmc.hmccosmetics.util.packets.wrappers.WrapperPlayServerRelEntityMove;
|
||||
import it.unimi.dsi.fastutil.ints.IntArrayList;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.EquipmentSlot;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
@@ -69,6 +72,17 @@ public class PacketManager extends BasePacket {
|
||||
for (Player p : sendTo) sendPacket(p, packet);
|
||||
}
|
||||
|
||||
public static void equipmentSlotUpdate(
|
||||
Player player,
|
||||
boolean empty,
|
||||
List<Player> sendTo
|
||||
) {
|
||||
for (EquipmentSlot slot : EquipmentSlot.values()) {
|
||||
ItemStack item = player.getInventory().getItem(slot);
|
||||
if (empty) item = new ItemStack(Material.AIR);
|
||||
NMSHandlers.getHandler().equipmentSlotUpdate(player.getEntityId(), slot, item, sendTo);
|
||||
}
|
||||
}
|
||||
public static void equipmentSlotUpdate(
|
||||
Player player,
|
||||
CosmeticSlot cosmetic,
|
||||
|
||||
Reference in New Issue
Block a user