9
0
mirror of https://github.com/HibiscusMC/HMCCosmetics.git synced 2025-12-21 16:09:27 +00:00

Fixed issue with hat disappearing when closing the inventory

This commit is contained in:
HeroBrineGoat
2022-01-23 20:13:29 -05:00
parent af05a83451
commit 20efcb0b36
5 changed files with 18 additions and 7 deletions

View File

@@ -149,7 +149,7 @@ public class CosmeticsCommand extends CommandBase {
try { try {
final ArmorItem.Type type = ArmorItem.Type.valueOf(typeString.toUpperCase()); final ArmorItem.Type type = ArmorItem.Type.valueOf(typeString.toUpperCase());
final Message setMessage = Messages.getSetMessage(type); final Message setMessage = Messages.getRemovedMessage(type);
final Message setOtherMessage = Messages.getSetOtherMessage(type); final Message setOtherMessage = Messages.getSetOtherMessage(type);
this.userManager.removeItem(user, type); this.userManager.removeItem(user, type);
this.messageHandler.sendMessage( this.messageHandler.sendMessage(

View File

@@ -36,6 +36,12 @@ import java.util.stream.Collectors;
public class ItemSerializer implements TypeSerializer<GuiItem> { public class ItemSerializer implements TypeSerializer<GuiItem> {
private static final HMCCosmetics plugin;
static {
plugin = HMCCosmetics.getPlugin(HMCCosmetics.class);
}
public static final ItemSerializer INSTANCE = new ItemSerializer(); public static final ItemSerializer INSTANCE = new ItemSerializer();
private static final String MATERIAL = "material"; private static final String MATERIAL = "material";
@@ -221,10 +227,7 @@ public class ItemSerializer implements TypeSerializer<GuiItem> {
return new ArmorItem( return new ArmorItem(
itemStack, itemStack,
event -> { event -> plugin.getCosmeticsMenu().openMenu(openMenu, event.getWhoClicked()),
final HMCCosmetics plugin = HMCCosmetics.getPlugin(HMCCosmetics.class);
plugin.getCosmeticsMenu().openMenu(openMenu, event.getWhoClicked());
},
Utils.replaceIfNull(idNode.getString(), ""), Utils.replaceIfNull(idNode.getString(), ""),
lockedLore, lockedLore,
permission, permission,
@@ -237,7 +240,6 @@ public class ItemSerializer implements TypeSerializer<GuiItem> {
return dev.triumphteam.gui.builder.item.ItemBuilder.from( return dev.triumphteam.gui.builder.item.ItemBuilder.from(
itemStack). itemStack).
asGuiItem(event -> { asGuiItem(event -> {
final HMCCosmetics plugin = HMCCosmetics.getPlugin(HMCCosmetics.class);
plugin.getCosmeticsMenu().openMenu(openMenu, event.getWhoClicked()); plugin.getCosmeticsMenu().openMenu(openMenu, event.getWhoClicked());
}); });
} }

View File

@@ -1,5 +1,6 @@
package io.github.fisher2911.hmccosmetics.gui; package io.github.fisher2911.hmccosmetics.gui;
import com.comphenix.net.bytebuddy.jar.asm.Type;
import dev.triumphteam.gui.components.GuiAction; import dev.triumphteam.gui.components.GuiAction;
import dev.triumphteam.gui.guis.Gui; import dev.triumphteam.gui.guis.Gui;
import dev.triumphteam.gui.guis.GuiItem; import dev.triumphteam.gui.guis.GuiItem;

View File

@@ -14,6 +14,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.block.Action; import org.bukkit.event.block.Action;
import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryCloseEvent;
import org.bukkit.event.inventory.InventoryDragEvent; import org.bukkit.event.inventory.InventoryDragEvent;
import org.bukkit.event.inventory.InventoryInteractEvent; import org.bukkit.event.inventory.InventoryInteractEvent;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
@@ -66,6 +67,12 @@ public class ClickListener implements Listener {
this.doRunnable(optionalUser.get()); this.doRunnable(optionalUser.get());
} }
@EventHandler
public void onInventoryClose(final InventoryCloseEvent event) {
final HumanEntity player = event.getPlayer();
this.userManager.get(player.getUniqueId()).ifPresent(this::doRunnable);
}
private void fixInventory(final Player player, final Set<Integer> slotsClicked, final Inventory inventory) { private void fixInventory(final Player player, final Set<Integer> slotsClicked, final Inventory inventory) {
final Optional<User> optionalUser = this.userManager.get(player.getUniqueId()); final Optional<User> optionalUser = this.userManager.get(player.getUniqueId());
@@ -78,6 +85,7 @@ public class ClickListener implements Listener {
for (int i : slotsClicked) { for (int i : slotsClicked) {
if (this.equipmentSlots.contains(i)) { if (this.equipmentSlots.contains(i)) {
this.doRunnable(user); this.doRunnable(user);
break;
} }
} }
} }

View File

@@ -37,7 +37,7 @@ items:
id: backpack id: backpack
3: 3:
material: END_ROD material: END_ROD
name: "<blue>Backpack" name: "<blue>Off Hand"
lore: lore:
- "" - ""
- "<gray>Enabled: <#6D9DC5>%enabled%" - "<gray>Enabled: <#6D9DC5>%enabled%"