From 9da5294a6ff05d373e45a4752e7384eecbc42f90 Mon Sep 17 00:00:00 2001 From: mcmonkey Date: Wed, 30 May 2018 06:16:52 -0700 Subject: [PATCH] add a tag way to remove all flags entirely --- .../denizen2sponge/tags/objects/ItemTag.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/denizenscript/denizen2sponge/tags/objects/ItemTag.java b/src/main/java/com/denizenscript/denizen2sponge/tags/objects/ItemTag.java index 6bec9e2..0aa9edc 100644 --- a/src/main/java/com/denizenscript/denizen2sponge/tags/objects/ItemTag.java +++ b/src/main/java/com/denizenscript/denizen2sponge/tags/objects/ItemTag.java @@ -345,11 +345,15 @@ public ItemScript getSourceScript() { // @Updated 2017/02/13 // @Group General Information // @ReturnType ItemTag - // @Returns a copy of the item, with the specified flags removed. + // @Returns a copy of the item, with the specified flags removed. Give no modifier to remove the flag mapping entirely. // --> handlers.put("without_flags", (dat, obj) -> { + ItemStack e = ((ItemTag) obj).internal.copy(); + if (dat.hasNextModifier()) { + e.remove(FlagHelper.FLAGMAP); + return new ItemTag(e); + } MapTag flags; - ItemStack e = ((ItemTag) obj).internal; Optional fm = e.get(FlagHelper.FLAGMAP); if (fm.isPresent()) { flags = new MapTag(fm.get().flags.getInternal()); @@ -361,9 +365,8 @@ public ItemScript getSourceScript() { for (AbstractTagObject k : toRemove.getInternal()) { flags.getInternal().remove(k.toString()); } - ItemStack its = ((ItemTag) obj).internal.copy(); - its.offer(new FlagMapDataImpl(new FlagMap(flags))); - return new ItemTag(its); + e.offer(new FlagMapDataImpl(new FlagMap(flags))); + return new ItemTag(e); }); }