From 76fca7681554d3aa678aacc92c1a83241ee39f66 Mon Sep 17 00:00:00 2001 From: HeroBrineGoat <76707404+MasterOfTheFish@users.noreply.github.com> Date: Thu, 9 Dec 2021 18:23:29 -0500 Subject: [PATCH] Bug with hat being removed on death should be fixed --- .idea/hotswap_agent.xml | 6 ++++ .idea/modules/HMCCosmetics.test.iml | 3 ++ build.gradle | 2 -- .../fisher2911/hmccosmetics/HMCCosmetics.java | 6 ++-- .../listener/RespawnListener.java | 33 +++++++++++++++++++ .../hmccosmetics/message/Adventure.java | 1 - .../fisher2911/hmccosmetics/user/User.java | 14 ++++---- 7 files changed, 53 insertions(+), 12 deletions(-) create mode 100644 .idea/hotswap_agent.xml create mode 100644 src/main/java/io/github/fisher2911/hmccosmetics/listener/RespawnListener.java diff --git a/.idea/hotswap_agent.xml b/.idea/hotswap_agent.xml new file mode 100644 index 00000000..119f6201 --- /dev/null +++ b/.idea/hotswap_agent.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/modules/HMCCosmetics.test.iml b/.idea/modules/HMCCosmetics.test.iml index c4622759..a1e06243 100644 --- a/.idea/modules/HMCCosmetics.test.iml +++ b/.idea/modules/HMCCosmetics.test.iml @@ -9,4 +9,7 @@ + + \ No newline at end of file diff --git a/build.gradle b/build.gradle index 95d8d559..700ef245 100644 --- a/build.gradle +++ b/build.gradle @@ -12,9 +12,7 @@ repositories { maven { url = 'https://papermc.io/repo/repository/maven-public/' } maven { url = 'https://repo.mattstudios.me/artifactory/public/' } maven { url = 'https://jitpack.io' } - maven { url = 'https://repo.extendedclip.com/content/repositories/placeholderapi/' } maven { url = 'https://repo.leonardobishop.com/releases/' } - maven { url = 'https://jitpack.io' } maven { url = 'https://repo.dmulloy2.net/repository/public/' } } diff --git a/src/main/java/io/github/fisher2911/hmccosmetics/HMCCosmetics.java b/src/main/java/io/github/fisher2911/hmccosmetics/HMCCosmetics.java index a01e93c6..a0fda8ae 100644 --- a/src/main/java/io/github/fisher2911/hmccosmetics/HMCCosmetics.java +++ b/src/main/java/io/github/fisher2911/hmccosmetics/HMCCosmetics.java @@ -1,13 +1,14 @@ package io.github.fisher2911.hmccosmetics; -import com.comphenix.protocol.ProtocolLib; import com.comphenix.protocol.ProtocolLibrary; import com.comphenix.protocol.ProtocolManager; + import io.github.fisher2911.hmccosmetics.command.CosmeticsCommand; import io.github.fisher2911.hmccosmetics.gui.ArmorItem; import io.github.fisher2911.hmccosmetics.gui.CosmeticsMenu; import io.github.fisher2911.hmccosmetics.listener.ClickListener; import io.github.fisher2911.hmccosmetics.listener.JoinListener; +import io.github.fisher2911.hmccosmetics.listener.RespawnListener; import io.github.fisher2911.hmccosmetics.listener.TeleportListener; import io.github.fisher2911.hmccosmetics.message.MessageHandler; import io.github.fisher2911.hmccosmetics.message.Messages; @@ -51,7 +52,8 @@ public class HMCCosmetics extends JavaPlugin { private void registerListeners() { List.of(new JoinListener(this), new ClickListener(this), - new TeleportListener(this)). + new TeleportListener(this), + new RespawnListener(this)). forEach(listener -> this.getServer().getPluginManager().registerEvents(listener, this) ); diff --git a/src/main/java/io/github/fisher2911/hmccosmetics/listener/RespawnListener.java b/src/main/java/io/github/fisher2911/hmccosmetics/listener/RespawnListener.java new file mode 100644 index 00000000..cc6581e4 --- /dev/null +++ b/src/main/java/io/github/fisher2911/hmccosmetics/listener/RespawnListener.java @@ -0,0 +1,33 @@ +package io.github.fisher2911.hmccosmetics.listener; + +import io.github.fisher2911.hmccosmetics.HMCCosmetics; +import io.github.fisher2911.hmccosmetics.user.User; +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.player.PlayerRespawnEvent; + +import java.util.Optional; + +public class RespawnListener implements Listener { + + private final HMCCosmetics plugin; + private final UserManager userManager; + + public RespawnListener(final HMCCosmetics plugin) { + this.plugin = plugin; + this.userManager = this.plugin.getUserManager(); + } + + @EventHandler + public void onPlayerRespawn(final PlayerRespawnEvent event) { + Bukkit.getScheduler().runTaskLater(this.plugin, () -> { + final Player player = event.getPlayer(); + final Optional optionalUser = this.userManager.get(player.getUniqueId()); + + optionalUser.ifPresent(user -> user.setHat(user.getPlayerArmor().getHat(), this.userManager)); + }, 1); + } +} diff --git a/src/main/java/io/github/fisher2911/hmccosmetics/message/Adventure.java b/src/main/java/io/github/fisher2911/hmccosmetics/message/Adventure.java index df99386e..2c8982fb 100644 --- a/src/main/java/io/github/fisher2911/hmccosmetics/message/Adventure.java +++ b/src/main/java/io/github/fisher2911/hmccosmetics/message/Adventure.java @@ -20,5 +20,4 @@ public class Adventure { TransformationType.COLOR ).build()) .build(); - } diff --git a/src/main/java/io/github/fisher2911/hmccosmetics/user/User.java b/src/main/java/io/github/fisher2911/hmccosmetics/user/User.java index 5249bb1b..b20605e0 100644 --- a/src/main/java/io/github/fisher2911/hmccosmetics/user/User.java +++ b/src/main/java/io/github/fisher2911/hmccosmetics/user/User.java @@ -102,12 +102,12 @@ public class User { if (hat.getId().equals(this.playerArmor.getHat().getId())) { this.setHat(new ArmorItem( - new ItemStack(Material.AIR), - "", - new ArrayList<>(), - "", - ArmorItem.Type.HAT - ), + new ItemStack(Material.AIR), + "", + new ArrayList<>(), + "", + ArmorItem.Type.HAT + ), userManager); messageHandler.sendMessage( @@ -136,7 +136,7 @@ public class User { // teleports armor stand to the correct position public void updateArmorStand() { final ArmorItem backpackArmorItem = this.playerArmor.getBackpack(); - if (backpackArmorItem == null ) { + if (backpackArmorItem == null) { this.despawnAttached(); return; }