Skip to content

Commit

Permalink
getFlagTracker: differentiate command vs tag
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Feb 25, 2021
1 parent a6fbdac commit 3c0543d
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 5 deletions.
Expand Up @@ -36,7 +36,7 @@ public static <T extends FlaggableObject> void registerFlagHandlers(ObjectTagPro
// See <@link language flag system>.
// -->
processor.registerTag("flag", (attribute, object) -> {
AbstractFlagTracker tracker = object.getFlagTracker();
AbstractFlagTracker tracker = object.getFlagTrackerForTag();
if (tracker == null) {
attribute.echoError("Cannot read flag tag for '" + object + "': " + object.getReasonNotFlaggable());
return null;
Expand All @@ -52,7 +52,7 @@ public static <T extends FlaggableObject> void registerFlagHandlers(ObjectTagPro
// See <@link language flag system>.
// -->
processor.registerTag("has_flag", (attribute, object) -> {
AbstractFlagTracker tracker = object.getFlagTracker();
AbstractFlagTracker tracker = object.getFlagTrackerForTag();
if (tracker == null) {
attribute.echoError("Cannot read has_flag tag for '" + object + "': " + object.getReasonNotFlaggable());
return null;
Expand All @@ -68,7 +68,7 @@ public static <T extends FlaggableObject> void registerFlagHandlers(ObjectTagPro
// See <@link language flag system>.
// -->
processor.registerTag("flag_expiration", (attribute, object) -> {
AbstractFlagTracker tracker = object.getFlagTracker();
AbstractFlagTracker tracker = object.getFlagTrackerForTag();
if (tracker == null) {
attribute.echoError("Cannot read flag_expiration tag for '" + object + "': " + object.getReasonNotFlaggable());
return null;
Expand All @@ -85,7 +85,7 @@ public static <T extends FlaggableObject> void registerFlagHandlers(ObjectTagPro
// See <@link language flag system>.
// -->
processor.registerTag("list_flags", (attribute, object) -> {
AbstractFlagTracker tracker = object.getFlagTracker();
AbstractFlagTracker tracker = object.getFlagTrackerForTag();
if (tracker == null) {
attribute.echoError("Cannot read list_flags tag for '" + object + "': " + object.getReasonNotFlaggable());
return null;
Expand All @@ -102,7 +102,7 @@ public static <T extends FlaggableObject> void registerFlagHandlers(ObjectTagPro
// See <@link language flag system>.
// -->
processor.registerTag("flag_map", (attribute, object) -> {
AbstractFlagTracker tracker = object.getFlagTracker();
AbstractFlagTracker tracker = object.getFlagTrackerForTag();
if (tracker == null) {
attribute.echoError("Cannot read flag_map tag for '" + object + "': " + object.getReasonNotFlaggable());
return null;
Expand Down
Expand Up @@ -6,6 +6,10 @@ public interface FlaggableObject extends ObjectTag {

AbstractFlagTracker getFlagTracker();

default AbstractFlagTracker getFlagTrackerForTag() {
return getFlagTracker();
}

void reapplyTracker(AbstractFlagTracker tracker);

default String getReasonNotFlaggable() {
Expand Down
Expand Up @@ -48,6 +48,7 @@ public FlagCommand() {
// - NPCTag (Citizens), which will store data in the Citizens saves file as the 'denizen_flags' trait.
// - EntityTag, which will store data in the entity's NBT in the world file.
// - LocationTag, for block flags, which will store data in the chunk file.
// - ChunkTag, for block flags, which will store data in the chunk file.
// - ItemTag, which will store data in the item's NBT.
// - WorldTag, which will store in the world folder in a file named 'denizen_flags.dat', like "server/world/denizen_flags.dat".
// - InventoryTag, when noted, will store in the notes save file.
Expand Down

0 comments on commit 3c0543d

Please sign in to comment.