Changed how heads can be picked up.

This commit is contained in:
Brianna 2019-08-19 13:13:07 -04:00
parent 87d9565818
commit 4526dfe184
3 changed files with 8 additions and 19 deletions

View File

@ -4,7 +4,7 @@ stages:
variables:
name: "EpicHeads"
path: "/builds/$CI_PROJECT_PATH"
version: "3.0.17"
version: "3.0.18"
build:
stage: build

View File

@ -2,7 +2,6 @@ package com.songoda.epicheads.command;
import com.songoda.epicheads.EpicHeads;
import com.songoda.epicheads.command.commands.*;
import com.songoda.epicheads.utils.Methods;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;

View File

@ -6,11 +6,11 @@ import com.songoda.epicheads.utils.Methods;
import com.songoda.epicheads.utils.ServerVersion;
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerPickupItemEvent;
import org.bukkit.event.entity.ItemSpawnEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.metadata.FixedMetadataValue;
import java.util.ArrayList;
import java.util.Optional;
@ -23,15 +23,11 @@ public class ItemListeners implements Listener {
this.plugin = plugin;
}
@EventHandler
public void itemPickupEvent(PlayerPickupItemEvent event) {
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
public void itemSpawnEvent(ItemSpawnEvent event) {
ItemStack item = event.getEntity().getItemStack();
ItemStack item = event.getItem().getItemStack();
if (item.getType() != (plugin.isServerVersionAtLeast(ServerVersion.V1_13) ? Material.PLAYER_HEAD : Material.valueOf("SKULL_ITEM"))
|| event.getItem().hasMetadata("EHE")) return;
event.getItem().removeMetadata("EHE", plugin);
if (item.getType() != (plugin.isServerVersionAtLeast(ServerVersion.V1_13) ? Material.PLAYER_HEAD : Material.valueOf("SKULL_ITEM"))) return;
String encodededStr = Methods.getEncodedTexture(item);
@ -44,17 +40,11 @@ public class ItemListeners implements Listener {
.filter(head -> url.equals(head.getURL())).findFirst();
if (optional.isPresent()) {
event.setCancelled(true);
event.getItem().setMetadata("EHE", new FixedMetadataValue(plugin, true));
ItemStack itemNew = optional.get().asItemStack();
itemNew.setAmount(item.getAmount());
ItemMeta meta = itemNew.getItemMeta();
meta.setLore(new ArrayList<>());
itemNew.setItemMeta(meta);
event.getItem().setItemStack(itemNew);
item.setItemMeta(meta);
}
}