Merge pull request #59

Fixes some bugs
This commit is contained in:
Will FP 2021-09-09 12:41:01 +01:00 committed by GitHub
commit 74c019ebb8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 7 deletions

View File

@ -55,6 +55,10 @@ public class Necrotic extends EcoEnchant {
return;
}
if (!event.getEntity().getMetadata("eco-target").isEmpty()) {
return;
}
ItemStack item = new ItemStack(Material.WITHER_SKELETON_SKULL, 1);
new DropQueue(player)

View File

@ -5,7 +5,7 @@ import com.willfp.ecoenchants.enchantments.EcoEnchants;
import com.willfp.ecoenchants.enchantments.meta.EnchantmentType;
import com.willfp.ecoenchants.enchantments.util.EnchantChecks;
import com.willfp.ecoenchants.enchantments.util.EnchantmentUtils;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
@ -97,9 +97,10 @@ public class Soulbound extends EcoEnchant {
player.setMetadata("soulbound-items", this.getPlugin().getMetadataValueFactory().create(soulboundItems));
}
public boolean hasEmptyInventory(@NotNull final Player player) {
public boolean hasSoulboundItems(@NotNull final Player player) {
final NamespacedKey soulbound = this.getPlugin().getNamespacedKeyFactory().create("soulbound");
for (ItemStack itemStack : player.getInventory().getContents()) {
if (itemStack != null && itemStack.getType() != Material.AIR) {
if (itemStack != null && itemStack.getItemMeta().getPersistentDataContainer().has(soulbound, PersistentDataType.INTEGER)) {
return false;
}
}
@ -110,8 +111,8 @@ public class Soulbound extends EcoEnchant {
public void onSoulboundRespawn(@NotNull final PlayerRespawnEvent event) {
Player player = event.getPlayer();
this.getPlugin().getScheduler().runLater(() -> {
if (!hasEmptyInventory(player)) {
this.getPlugin().getScheduler().run(() -> {
if (!hasSoulboundItems(player)) {
return;
}
@ -137,11 +138,12 @@ public class Soulbound extends EcoEnchant {
}
player.removeMetadata("soulbound-items", this.getPlugin());
}, 1);
});
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onDeath(@NotNull final PlayerDeathEvent event) {
event.getDrops().removeIf(itemStack -> itemStack.getItemMeta().getPersistentDataContainer().has(this.getPlugin().getNamespacedKeyFactory().create("soulbound"), PersistentDataType.INTEGER));
final NamespacedKey soulbound = this.getPlugin().getNamespacedKeyFactory().create("soulbound");
event.getDrops().removeIf(itemStack -> itemStack.getItemMeta().getPersistentDataContainer().has(soulbound, PersistentDataType.INTEGER));
}
}