From a14b9837a2fc091e45163768353506d9dc08ad36 Mon Sep 17 00:00:00 2001 From: Jeremy Schroeder Date: Sat, 13 Jul 2013 14:36:50 -0400 Subject: [PATCH] Add --- .../denizen/tags/core/UtilTags.java | 96 ++++++++++++++++++- 1 file changed, 91 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/aufdemrand/denizen/tags/core/UtilTags.java b/src/main/java/net/aufdemrand/denizen/tags/core/UtilTags.java index f10216d125..7877756c5e 100644 --- a/src/main/java/net/aufdemrand/denizen/tags/core/UtilTags.java +++ b/src/main/java/net/aufdemrand/denizen/tags/core/UtilTags.java @@ -1,6 +1,7 @@ package net.aufdemrand.denizen.tags.core; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Date; import java.util.Random; import java.util.UUID; @@ -8,18 +9,20 @@ import net.aufdemrand.denizen.Denizen; import net.aufdemrand.denizen.events.ReplaceableTagEvent; import net.aufdemrand.denizen.flags.FlagManager; -import net.aufdemrand.denizen.objects.dNPC; +import net.aufdemrand.denizen.objects.*; import net.aufdemrand.denizen.tags.Attribute; import net.aufdemrand.denizen.utilities.DenizenAPI; import net.aufdemrand.denizen.utilities.Utilities; -import net.aufdemrand.denizen.objects.Element; -import net.aufdemrand.denizen.objects.aH; -import net.aufdemrand.denizen.objects.dList; import net.aufdemrand.denizen.utilities.javaluator.DoubleEvaluator; import net.citizensnpcs.Citizens; +import net.citizensnpcs.api.CitizensAPI; +import net.citizensnpcs.api.npc.NPC; import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.World; +import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -41,6 +44,9 @@ public void serverTags(ReplaceableTagEvent event) { if (!event.matches("server, svr, global")) return; Attribute attribute = new Attribute(event.raw_tag, event.getScriptEntry()).fulfill(1); + // server.flag[...] + // server.flag[...].is_expired + // server.flag[...].size if (attribute.startsWith("flag")) { String flag_name; if (attribute.hasContext(1)) flag_name = attribute.getContext(1); @@ -64,12 +70,92 @@ public void serverTags(ReplaceableTagEvent event) { .getGlobalFlag(flag_name)) .getAttribute(attribute)); else event.setReplaced("null"); + return; } - else if (attribute.startsWith("selected_npc")) { + // server.selected_npc + if (attribute.startsWith("selected_npc")) { event.setReplaced(new dNPC(((Citizens) Bukkit.getPluginManager().getPlugin("Citizens")) .getNPCSelector().getSelected(Bukkit.getConsoleSender())).getAttribute(attribute.fulfill(1))); + return; } + + // server.list_npcs + if (attribute.startsWith("list_npcs")) { + ArrayList npcs = new ArrayList(); + for (NPC npc : CitizensAPI.getNPCRegistry()) + npcs.add(dNPC.mirrorCitizensNPC(npc)); + event.setReplaced(new dList(npcs).getAttribute(attribute.fulfill(1))); + return; + } + + // server.list_worlds + if (attribute.startsWith("list_worlds")) { + ArrayList worlds = new ArrayList(); + for (World world : Bukkit.getWorlds()) + worlds.add(dWorld.mirrorBukkitWorld(world)); + event.setReplaced(new dList(worlds).getAttribute(attribute.fulfill(1))); + return; + } + + // server.list_players + if (attribute.startsWith("list_players")) { + ArrayList players = new ArrayList(); + for (Player player : Bukkit.getOnlinePlayers()) + players.add(dPlayer.mirrorBukkitPlayer(player)); + for (OfflinePlayer player : Bukkit.getOfflinePlayers()) + players.add(dPlayer.mirrorBukkitPlayer(player)); + event.setReplaced(new dList(players).getAttribute(attribute.fulfill(1))); + return; + } + + // server.list_online_players + if (attribute.startsWith("list_online_players")) { + ArrayList players = new ArrayList(); + for (Player player : Bukkit.getOnlinePlayers()) + players.add(dPlayer.mirrorBukkitPlayer(player)); + event.setReplaced(new dList(players).getAttribute(attribute.fulfill(1))); + return; + } + + // server.list_offline_players + if (attribute.startsWith("list_offline_players")) { + ArrayList players = new ArrayList(); + for (OfflinePlayer player : Bukkit.getOfflinePlayers()) + players.add(dPlayer.mirrorBukkitPlayer(player)); + event.setReplaced(new dList(players).getAttribute(attribute.fulfill(1))); + return; + } + + // server.list_ops + if (attribute.startsWith("list_ops")) { + ArrayList players = new ArrayList(); + for (Player player : Bukkit.getOnlinePlayers()) + if (player.isOp()) players.add(dPlayer.mirrorBukkitPlayer(player)); + for (OfflinePlayer player : Bukkit.getOfflinePlayers()) + if (player.isOp()) players.add(dPlayer.mirrorBukkitPlayer(player)); + event.setReplaced(new dList(players).getAttribute(attribute.fulfill(1))); + return; + } + + // server.list_online_ops + if (attribute.startsWith("list_online_ops")) { + ArrayList players = new ArrayList(); + for (Player player : Bukkit.getOnlinePlayers()) + if (player.isOp()) players.add(dPlayer.mirrorBukkitPlayer(player)); + event.setReplaced(new dList(players).getAttribute(attribute.fulfill(1))); + return; + } + + // server.list_offline_ops + if (attribute.startsWith("list_offline_ops")) { + ArrayList players = new ArrayList(); + for (OfflinePlayer player : Bukkit.getOfflinePlayers()) + if (player.isOp()) players.add(dPlayer.mirrorBukkitPlayer(player)); + event.setReplaced(new dList(players).getAttribute(attribute.fulfill(1))); + return; + } + } @EventHandler