Skip to content
This repository has been archived by the owner on Apr 12, 2022. It is now read-only.

Commit

Permalink
world.entities tag
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Jan 19, 2017
1 parent 4a584c5 commit 88a5c14
Showing 1 changed file with 22 additions and 0 deletions.
Expand Up @@ -2,10 +2,12 @@

import com.denizenscript.denizen2core.tags.AbstractTagObject;
import com.denizenscript.denizen2core.tags.TagData;
import com.denizenscript.denizen2core.tags.objects.ListTag;
import com.denizenscript.denizen2core.tags.objects.TextTag;
import com.denizenscript.denizen2core.utilities.Action;
import com.denizenscript.denizen2core.utilities.Function2;
import org.spongepowered.api.Sponge;
import org.spongepowered.api.entity.Entity;
import org.spongepowered.api.world.World;

import java.util.HashMap;
Expand Down Expand Up @@ -50,6 +52,26 @@ public World getInternal() {
// @Returns the unique ID of the world.
// -->
handlers.put("uuid", (dat, obj) -> new TextTag(((WorldTag) obj).internal.getUniqueId().toString()));
// <--[tag]
// @Name WorldTag.entities[<EntityTypeTag>]
// @Updated 2017/01/19
// @Group Server Lists
// @ReturnType ListTag
// @Returns a list of all entities in the world, optionally with a specific type only.
// -->
handlers.put("entities", (dat, obj) -> {
ListTag list = new ListTag();
EntityTypeTag requiredTypeTag = null;
if (dat.hasNextModifier()) {
requiredTypeTag = EntityTypeTag.getFor(dat.error, dat.getNextModifier());
}
for (Entity entity : ((WorldTag) obj).getInternal().getEntities()) {
if (requiredTypeTag == null || entity.getType().equals(requiredTypeTag.getInternal())) {
list.getInternal().add(new EntityTag(entity));
}
}
return list;
});
}

public static WorldTag getFor(Action<String> error, String text) {
Expand Down

0 comments on commit 88a5c14

Please sign in to comment.