From afa30832d1696329b8488830793bbc3f0b6e0dfa Mon Sep 17 00:00:00 2001 From: Alex 'mcmonkey' Goodwin Date: Tue, 20 Aug 2019 15:18:47 -0700 Subject: [PATCH] add tag server.list_traits --- .../denizen/tags/core/ServerTagBase.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/plugin/src/main/java/com/denizenscript/denizen/tags/core/ServerTagBase.java b/plugin/src/main/java/com/denizenscript/denizen/tags/core/ServerTagBase.java index 8a9feb9aa4..b14a47543f 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/tags/core/ServerTagBase.java +++ b/plugin/src/main/java/com/denizenscript/denizen/tags/core/ServerTagBase.java @@ -40,6 +40,7 @@ import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.command.CommandContext; import net.citizensnpcs.api.npc.NPC; +import net.citizensnpcs.api.trait.TraitInfo; import org.bukkit.*; import org.bukkit.block.Biome; import org.bukkit.block.banner.PatternType; @@ -359,6 +360,21 @@ public void serverTag(ReplaceableTagEvent event) { return; } + // <--[tag] + // @attribute + // @Plugin Citizens + // @returns ListTag + // @description + // Returns a list of all available NPC traits on the server. + // --> + if (attribute.startsWith("list_traits") && Depends.citizens != null) { + ListTag allTraits = new ListTag(); + for (TraitInfo trait : CitizensAPI.getTraitFactory().getRegisteredTraits()) { + allTraits.add(trait.getTraitName()); + } + event.setReplaced(allTraits.getAttribute(attribute.fulfill(1))); + } + // <--[tag] // @attribute // @returns ListTag