mirror of
https://github.com/alexcrea/CustomAnvil.git
synced 2026-06-24 00:26:16 +02:00
Fixed strange issue related to item meta.
Added more verbose debug log.
This commit is contained in:
parent
1eac81aef6
commit
c7fee98d44
6 changed files with 23 additions and 21 deletions
|
|
@ -90,17 +90,15 @@ public abstract class WrappedEnchantment {
|
|||
/**
|
||||
* Force add an enchantment at the provided level.
|
||||
* @param item The item to set the enchantment level.
|
||||
* @param meta Meta of the provided item. It can be changed, but will not be set on the item.
|
||||
* @param level The level to set the enchantment to.
|
||||
*/
|
||||
public abstract void addEnchantmentUnsafe(@NotNull ItemStack item, @NotNull ItemMeta meta, int level);
|
||||
public abstract void addEnchantmentUnsafe(@NotNull ItemStack item, int level);
|
||||
|
||||
/**
|
||||
* Remove this enchantment from the provided ItemStack.
|
||||
* @param item The item to remove the enchantment.
|
||||
* @param meta Meta of the provided item. It can be changed, but will not be set on the item.
|
||||
*/
|
||||
public abstract void removeFrom(@NotNull ItemStack item, @NotNull ItemMeta meta);
|
||||
public abstract void removeFrom(@NotNull ItemStack item);
|
||||
|
||||
// Static functions
|
||||
|
||||
|
|
@ -109,13 +107,10 @@ public abstract class WrappedEnchantment {
|
|||
* @param item Item to be cleared from enchantments.
|
||||
*/
|
||||
public static void clearEnchants(@NotNull ItemStack item){ //TODO faster method to clear vanilla enchantment
|
||||
ItemMeta meta = item.getItemMeta();
|
||||
if(meta == null) return;
|
||||
|
||||
for (WrappedEnchantment enchant : getEnchants(item).keySet()) {
|
||||
enchant.removeFrom(item, meta);
|
||||
enchant.removeFrom(item);
|
||||
}
|
||||
item.setItemMeta(meta);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -46,11 +46,13 @@ public class VanillaEnchant extends WrappedEnchantment {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void addEnchantmentUnsafe(@NotNull ItemStack item, @NotNull ItemMeta meta, int level) {
|
||||
public void addEnchantmentUnsafe(@NotNull ItemStack item, int level) {
|
||||
if (isEnchantedBook(item)) {
|
||||
EnchantmentStorageMeta bookMeta = ((EnchantmentStorageMeta)meta);
|
||||
EnchantmentStorageMeta bookMeta = ((EnchantmentStorageMeta)item.getItemMeta());
|
||||
|
||||
assert bookMeta != null;
|
||||
bookMeta.addStoredEnchant(this.enchantment, level, true);
|
||||
item.setItemMeta(bookMeta);
|
||||
} else {
|
||||
item.addUnsafeEnchantment(this.enchantment, level);
|
||||
}
|
||||
|
|
@ -58,13 +60,16 @@ public class VanillaEnchant extends WrappedEnchantment {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void removeFrom(@NotNull ItemStack item, @NotNull ItemMeta meta) {
|
||||
public void removeFrom(@NotNull ItemStack item) {
|
||||
if (ItemUtil.INSTANCE.isEnchantedBook(item)) {
|
||||
EnchantmentStorageMeta bookMeta = ((EnchantmentStorageMeta)meta);
|
||||
EnchantmentStorageMeta bookMeta = ((EnchantmentStorageMeta)item.getItemMeta());
|
||||
|
||||
assert bookMeta != null;
|
||||
bookMeta.removeStoredEnchant(this.enchantment);
|
||||
item.setItemMeta(bookMeta);
|
||||
}else{
|
||||
item.removeEnchantment(this.enchantment);
|
||||
}
|
||||
item.removeEnchantment(this.enchantment);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue