diff --git a/src/main/java/com/hibiscusmc/hmccosmetics/HMCCosmeticsPlugin.java b/src/main/java/com/hibiscusmc/hmccosmetics/HMCCosmeticsPlugin.java index 484f023c..08136f1d 100644 --- a/src/main/java/com/hibiscusmc/hmccosmetics/HMCCosmeticsPlugin.java +++ b/src/main/java/com/hibiscusmc/hmccosmetics/HMCCosmeticsPlugin.java @@ -31,8 +31,8 @@ public final class HMCCosmeticsPlugin extends JavaPlugin { instance = this; // File setup + saveDefaultConfig(); if (!getDataFolder().exists()) { - saveDefaultConfig(); saveResource("translations.yml", false); saveResource("messages.yml", false); saveResource("cosmetics/examplecosmetics.yml", false); diff --git a/src/main/java/com/hibiscusmc/hmccosmetics/cosmetic/types/CosmeticBackpackType.java b/src/main/java/com/hibiscusmc/hmccosmetics/cosmetic/types/CosmeticBackpackType.java index e06dfd3b..c0cd0e3a 100644 --- a/src/main/java/com/hibiscusmc/hmccosmetics/cosmetic/types/CosmeticBackpackType.java +++ b/src/main/java/com/hibiscusmc/hmccosmetics/cosmetic/types/CosmeticBackpackType.java @@ -32,9 +32,7 @@ public class CosmeticBackpackType extends Cosmetic { List sendTo = PlayerUtils.getNearbyPlayers(player.getLocation()); Location loc = player.getLocation(); - PacketManager.armorStandMetaPacket(user.getBackpackEntity().getBukkitEntity(), sendTo); - PacketManager.sendRotationPacket(user.getArmorstandId(), loc, false, sendTo); - PacketManager.sendLookPacket(user.getArmorstandId(), loc, sendTo); + user.getBackpackEntity().getBukkitLivingEntity().setRotation(loc.getYaw(), loc.getPitch()); } diff --git a/src/main/java/com/hibiscusmc/hmccosmetics/database/Database.java b/src/main/java/com/hibiscusmc/hmccosmetics/database/Database.java index c8929719..79d5f145 100644 --- a/src/main/java/com/hibiscusmc/hmccosmetics/database/Database.java +++ b/src/main/java/com/hibiscusmc/hmccosmetics/database/Database.java @@ -19,7 +19,7 @@ public class Database { public Database() { String databaseType = DatabaseSettings.getDatabaseType(); switch (databaseType) { - case "INTERNAL_DATA": + case "INTERNAL": data = INTERNAL_DATA; case "MYSQL": data = MYSQL_DATA; diff --git a/src/main/java/com/hibiscusmc/hmccosmetics/entities/InvisibleArmorstand.java b/src/main/java/com/hibiscusmc/hmccosmetics/entities/InvisibleArmorstand.java index 3a10ce33..5a408d04 100644 --- a/src/main/java/com/hibiscusmc/hmccosmetics/entities/InvisibleArmorstand.java +++ b/src/main/java/com/hibiscusmc/hmccosmetics/entities/InvisibleArmorstand.java @@ -16,5 +16,8 @@ public class InvisibleArmorstand extends ArmorStand { this.setPos(loc.getX(), loc.getY(), loc.getZ()); setInvisible(true); setInvulnerable(true); + setMarker(true); + getBukkitLivingEntity().setCollidable(false); + persist = false; } } diff --git a/src/main/java/com/hibiscusmc/hmccosmetics/listener/PlayerConnectionListener.java b/src/main/java/com/hibiscusmc/hmccosmetics/listener/PlayerConnectionListener.java index 39bb98fb..4f6e2a66 100644 --- a/src/main/java/com/hibiscusmc/hmccosmetics/listener/PlayerConnectionListener.java +++ b/src/main/java/com/hibiscusmc/hmccosmetics/listener/PlayerConnectionListener.java @@ -25,4 +25,4 @@ public class PlayerConnectionListener implements Listener { user.despawnBackpack(); CosmeticUsers.removeUser(user.getUniqueId()); } -} +} \ No newline at end of file diff --git a/src/main/java/com/hibiscusmc/hmccosmetics/listener/PlayerGameListener.java b/src/main/java/com/hibiscusmc/hmccosmetics/listener/PlayerGameListener.java index 2eecdc96..3bfa744d 100644 --- a/src/main/java/com/hibiscusmc/hmccosmetics/listener/PlayerGameListener.java +++ b/src/main/java/com/hibiscusmc/hmccosmetics/listener/PlayerGameListener.java @@ -11,18 +11,22 @@ import com.hibiscusmc.hmccosmetics.HMCCosmeticsPlugin; import com.hibiscusmc.hmccosmetics.cosmetic.Cosmetic; import com.hibiscusmc.hmccosmetics.cosmetic.CosmeticSlot; import com.hibiscusmc.hmccosmetics.cosmetic.types.CosmeticArmorType; +import com.hibiscusmc.hmccosmetics.entities.InvisibleArmorstand; import com.hibiscusmc.hmccosmetics.user.CosmeticUser; import com.hibiscusmc.hmccosmetics.user.CosmeticUsers; import com.hibiscusmc.hmccosmetics.util.InventoryUtils; import org.bukkit.Bukkit; import org.bukkit.Material; +import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerTeleportEvent; import org.bukkit.event.player.PlayerToggleSneakEvent; +import org.bukkit.event.world.EntitiesUnloadEvent; import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -78,6 +82,15 @@ public class PlayerGameListener implements Listener { user.updateCosmetic(); } + @EventHandler + public void onPlayerLook(PlayerMoveEvent event) { + CosmeticUser user = CosmeticUsers.getUser(event.getPlayer().getUniqueId()); + + HMCCosmeticsPlugin.getInstance().getLogger().info("PlayerLookEvent"); + + user.updateCosmetic(CosmeticSlot.BACKPACK); + } + private void registerInventoryClickListener() { ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(HMCCosmeticsPlugin.getInstance(), ListenerPriority.NORMAL, PacketType.Play.Client.WINDOW_CLICK) { @Override diff --git a/src/main/java/com/hibiscusmc/hmccosmetics/user/CosmeticUser.java b/src/main/java/com/hibiscusmc/hmccosmetics/user/CosmeticUser.java index 0bd75c8d..d0a78092 100644 --- a/src/main/java/com/hibiscusmc/hmccosmetics/user/CosmeticUser.java +++ b/src/main/java/com/hibiscusmc/hmccosmetics/user/CosmeticUser.java @@ -134,7 +134,7 @@ public class CosmeticUser { ((CraftWorld) player.getWorld()).getHandle().addFreshEntity(invisibleArmorstand, CreatureSpawnEvent.SpawnReason.CUSTOM); PacketManager.armorStandMetaPacket(invisibleArmorstand.getBukkitEntity(), sentTo); - PacketManager.ridingMountPacket(player.getEntityId(), invisibleArmorstand.getId(), sentTo); + //PacketManager.ridingMountPacket(player.getEntityId(), invisibleArmorstand.getId(), sentTo); player.addPassenger(invisibleArmorstand.getBukkitEntity()); diff --git a/src/main/java/com/hibiscusmc/hmccosmetics/util/packets/PacketManager.java b/src/main/java/com/hibiscusmc/hmccosmetics/util/packets/PacketManager.java index a9c54078..1846cdca 100644 --- a/src/main/java/com/hibiscusmc/hmccosmetics/util/packets/PacketManager.java +++ b/src/main/java/com/hibiscusmc/hmccosmetics/util/packets/PacketManager.java @@ -15,6 +15,7 @@ import com.hibiscusmc.hmccosmetics.util.packets.wrappers.WrapperPlayServerPlayer import com.mojang.datafixers.util.Pair; import it.unimi.dsi.fastutil.ints.IntArrayList; import net.minecraft.network.protocol.game.ClientboundGameEventPacket; +import net.minecraft.network.protocol.game.ClientboundRotateHeadPacket; import net.minecraft.network.protocol.game.ClientboundSetEquipmentPacket; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.item.ItemStack; @@ -193,8 +194,8 @@ public class PacketManager extends BasePacket { float pitch = location.getPitch() * ROTATION_FACTOR; PacketContainer packet = new PacketContainer(PacketType.Play.Server.ENTITY_LOOK); packet.getIntegers().write(0, entityId); - packet.getBytes().write(0, (byte) (location.getYaw() * ROTATION_FACTOR)); - packet.getBytes().write(1, (byte) (location.getPitch() * ROTATION_FACTOR)); + packet.getBytes().write(0, (byte) yaw); + packet.getBytes().write(1, (byte) pitch); //Bukkit.getLogger().info("DEBUG: Yaw: " + (location.getYaw() * ROTATION_FACTOR) + " | Original Yaw: " + location.getYaw()); packet.getBooleans().write(0, onGround);