public override TemplateObject Handle(TagData data) { OfflinePlayerTag ptag = OfflinePlayerTag.For(Utilities.StringToULong(data.GetModifier(0))); if (ptag == null) { return(new TextTag("&{NULL}").Handle(data.Shrink())); } return(ptag.Handle(data.Shrink())); }
public override TemplateObject Handle(TagData data) { data.Shrink(); if (data.Remaining == 0) { return(new TextTag(ToString())); } switch (data[0]) { // <--[tag] // @Name ServerTag.item_assets // @Group Server Information // @ReturnType ListTag // @Returns a list of all item assets in the game. // --> case "item_assets": { List <TemplateObject> items = new List <TemplateObject>(); foreach (ItemAsset it in ItemAssetTag.Items) { items.Add(new ItemAssetTag(it)); } return(new ListTag(items).Handle(data.Shrink())); } // <--[tag] // @Name ServerTag.online_players // @Group Server Information // @ReturnType ListTag // @Returns a list of all online players. // --> case "online_players": { List <TemplateObject> players = new List <TemplateObject>(); foreach (SteamPlayer player in Provider.clients) { players.Add(new PlayerTag(player)); } return(new ListTag(players).Handle(data.Shrink())); } // <--[tag] // @Name ServerTag.offline_players // @Group Server Information // @ReturnType ListTag // @Returns a list of all offline players. // @Other This specifically excludes any online players. // --> case "offline_players": { List <TemplateObject> players = new List <TemplateObject>(); foreach (string playerFolder in ReadWrite.getFolders(ServerSavedata.directory + "/" + Provider.serverID + "/Players")) { string[] split = playerFolder.Substring(playerFolder.LastIndexOf('\\') + 1).Split('_'); if (split.Length == 2) { ulong steamID = Utilities.StringToULong(split[0]); bool online = false; foreach (SteamPlayer onlinePlayer in Provider.clients) { if (onlinePlayer.playerID.steamID.m_SteamID == steamID) { online = true; break; } } if (!online) { OfflinePlayerTag player = OfflinePlayerTag.For(Utilities.StringToULong(split[0]), Utilities.StringToByte(split[1])); if (player != null) { players.Add(player); } } } } return(new ListTag(players).Handle(data.Shrink())); } default: return(new TextTag(ToString()).Handle(data)); } }