mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-20 03:35:51 +00:00
fix: add enchant item check in filter
This commit is contained in:
parent
a94567333a
commit
48165dd138
@ -12,6 +12,7 @@ import javax.annotation.Nullable;
|
|||||||
import javax.annotation.ParametersAreNonnullByDefault;
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
|
|
||||||
import org.apache.commons.lang.Validate;
|
import org.apache.commons.lang.Validate;
|
||||||
|
import org.bukkit.Material;
|
||||||
import org.bukkit.enchantments.Enchantment;
|
import org.bukkit.enchantments.Enchantment;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
@ -70,7 +71,7 @@ public class MagicianTalisman extends Talisman {
|
|||||||
|
|
||||||
// @formatter:off
|
// @formatter:off
|
||||||
List<TalismanEnchantment> enabled = enchantments.stream()
|
List<TalismanEnchantment> enabled = enchantments.stream()
|
||||||
.filter(e -> e.getEnchantment().canEnchantItem(item))
|
.filter(e -> item.getType() == Material.BOOK || e.getEnchantment().canEnchantItem(item))
|
||||||
.filter(e -> hasConflicts(existingEnchantments, e))
|
.filter(e -> hasConflicts(existingEnchantments, e))
|
||||||
.filter(TalismanEnchantment::getValue)
|
.filter(TalismanEnchantment::getValue)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
@ -239,6 +239,10 @@ public class TalismanListener implements Listener {
|
|||||||
TalismanEnchantment enchantment = talisman.getRandomEnchantment(e.getItem(), enchantments.keySet());
|
TalismanEnchantment enchantment = talisman.getRandomEnchantment(e.getItem(), enchantments.keySet());
|
||||||
|
|
||||||
if (enchantment != null) {
|
if (enchantment != null) {
|
||||||
|
/*
|
||||||
|
* Fix #2679
|
||||||
|
* By default, Bukkit doesn't allow book enchant any type enchantment.
|
||||||
|
*/
|
||||||
if (e.getItem().getType() == Material.BOOK) {
|
if (e.getItem().getType() == Material.BOOK) {
|
||||||
e.getItem().addUnsafeEnchantment(enchantment.getEnchantment(), enchantment.getLevel());
|
e.getItem().addUnsafeEnchantment(enchantment.getEnchantment(), enchantment.getLevel());
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user