diff --git a/build.xml b/build.xml
index 56ff7eb..5229e4b 100644
--- a/build.xml
+++ b/build.xml
@@ -5,7 +5,7 @@
-
+
diff --git a/src/de/sockenklaus/XmlStats/Objects/Categories.java b/src/de/sockenklaus/XmlStats/Objects/Categories.java
deleted file mode 100644
index e3da7de..0000000
--- a/src/de/sockenklaus/XmlStats/Objects/Categories.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- *
- */
-package de.sockenklaus.XmlStats.Objects;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-/**
- * @author socrates
- *
- */
-public class Categories extends Array {
-
- /**
- * @param tagName
- */
- public Categories() {
- super("categories");
- // TODO Auto-generated constructor stub
- }
-
- /* (non-Javadoc)
- * @see de.sockenklaus.XmlStats.Objects.Array#getXml(org.w3c.dom.Document)
- */
- @Override
- public Element getXml(Document doc) {
- // TODO Auto-generated method stub
- return null;
- }
-
-}
diff --git a/src/de/sockenklaus/XmlStats/Objects/Node.java b/src/de/sockenklaus/XmlStats/Objects/Node.java
index bf324ce..2892d65 100644
--- a/src/de/sockenklaus/XmlStats/Objects/Node.java
+++ b/src/de/sockenklaus/XmlStats/Objects/Node.java
@@ -9,9 +9,6 @@ import java.util.HashMap;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
-import de.sockenklaus.XmlStats.XmlStats;
-
-
/**
* @author socrates
*
@@ -23,7 +20,6 @@ public abstract class Node {
public Node(){
this.attributes = new HashMap();
- XmlStats.LogDebug("Casting the constructor of Node()");
}
public void setAttribute(String name, String value){
@@ -31,7 +27,6 @@ public abstract class Node {
}
public Element getXml(Document doc){
- XmlStats.LogDebug("Casting the first level getXml()");
Element result = doc.createElement(this.tagName);
for(String attrName : this.attributes.keySet()){
diff --git a/src/de/sockenklaus/XmlStats/Objects/Achievement.java b/src/de/sockenklaus/XmlStats/Objects/NodeAchievement.java
similarity index 82%
rename from src/de/sockenklaus/XmlStats/Objects/Achievement.java
rename to src/de/sockenklaus/XmlStats/Objects/NodeAchievement.java
index 6f4b44b..3ee5821 100644
--- a/src/de/sockenklaus/XmlStats/Objects/Achievement.java
+++ b/src/de/sockenklaus/XmlStats/Objects/NodeAchievement.java
@@ -9,13 +9,13 @@ import com.nidefawl.Achievements.AchievementListData;
* @author socrates
*
*/
-public class Achievement extends NodeList {
+public class NodeAchievement extends NodeList {
- public Achievement(){
+ public NodeAchievement(){
super("achievement");
}
- public Achievement(AchievementListData ach){
+ public NodeAchievement(AchievementListData ach){
super("achievement");
this.childNodes.add(new NodeText("name", ach.getName()));
diff --git a/src/de/sockenklaus/XmlStats/Objects/Achievements.java b/src/de/sockenklaus/XmlStats/Objects/NodeAchievements.java
similarity index 71%
rename from src/de/sockenklaus/XmlStats/Objects/Achievements.java
rename to src/de/sockenklaus/XmlStats/Objects/NodeAchievements.java
index adcfb45..770030b 100644
--- a/src/de/sockenklaus/XmlStats/Objects/Achievements.java
+++ b/src/de/sockenklaus/XmlStats/Objects/NodeAchievements.java
@@ -13,16 +13,16 @@ import de.sockenklaus.XmlStats.Datasource.AchievementsDS;
* @author socrates
*
*/
-public class Achievements extends Array {
+public class NodeAchievements extends NodeArray {
- public Achievements(){
+ public NodeAchievements(){
super("achievements");
AchievementsDS ads = new AchievementsDS();
HashMap achList = ads.getAchievementsList();
for(String achName : achList.keySet()){
- this.childNodes.add(new Achievement(achList.get(achName)));
+ this.childNodes.add(new NodeAchievement(achList.get(achName)));
}
}
}
diff --git a/src/de/sockenklaus/XmlStats/Objects/Array.java b/src/de/sockenklaus/XmlStats/Objects/NodeArray.java
similarity index 54%
rename from src/de/sockenklaus/XmlStats/Objects/Array.java
rename to src/de/sockenklaus/XmlStats/Objects/NodeArray.java
index 91fdd46..d9ab104 100644
--- a/src/de/sockenklaus/XmlStats/Objects/Array.java
+++ b/src/de/sockenklaus/XmlStats/Objects/NodeArray.java
@@ -10,20 +10,12 @@ import org.w3c.dom.Element;
* @author socrates
*
*/
-public abstract class Array extends NodeList {
+public abstract class NodeArray extends NodeList {
- public Array(String tagName){
+ public NodeArray(String tagName){
super(tagName);
}
- public int getCountInt(){
- return this.childNodes.size();
- }
-
- public String getCountStr(){
- return String.valueOf(this.childNodes.size());
- }
-
public Element getXml(Document doc){
this.attributes.put("count", String.valueOf(this.childNodes.size()));
diff --git a/src/de/sockenklaus/XmlStats/Objects/NodeCategories.java b/src/de/sockenklaus/XmlStats/Objects/NodeCategories.java
new file mode 100644
index 0000000..da576f4
--- /dev/null
+++ b/src/de/sockenklaus/XmlStats/Objects/NodeCategories.java
@@ -0,0 +1,22 @@
+/**
+ *
+ */
+package de.sockenklaus.XmlStats.Objects;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+/**
+ * @author socrates
+ *
+ */
+public class NodeCategories extends NodeArray {
+
+ /**
+ * @param tagName
+ */
+ public NodeCategories() {
+ super("categories");
+
+ }
+}
diff --git a/src/de/sockenklaus/XmlStats/Objects/NodeCategory.java b/src/de/sockenklaus/XmlStats/Objects/NodeCategory.java
new file mode 100644
index 0000000..8eb4623
--- /dev/null
+++ b/src/de/sockenklaus/XmlStats/Objects/NodeCategory.java
@@ -0,0 +1,21 @@
+/**
+ *
+ */
+package de.sockenklaus.XmlStats.Objects;
+
+/**
+ * @author socrates
+ *
+ */
+public class NodeCategory extends NodeList {
+
+ /**
+ * @param tagName
+ */
+ public NodeCategory(String catName) {
+ super("category");
+
+
+ }
+
+}
diff --git a/src/de/sockenklaus/XmlStats/Objects/Item.java b/src/de/sockenklaus/XmlStats/Objects/NodeItem.java
similarity index 85%
rename from src/de/sockenklaus/XmlStats/Objects/Item.java
rename to src/de/sockenklaus/XmlStats/Objects/NodeItem.java
index c46e02a..92c238d 100644
--- a/src/de/sockenklaus/XmlStats/Objects/Item.java
+++ b/src/de/sockenklaus/XmlStats/Objects/NodeItem.java
@@ -10,7 +10,7 @@ import org.w3c.dom.Element;
* @author socrates
*
*/
-public class Item extends Node {
+public class NodeItem extends Node {
/* (non-Javadoc)
* @see de.sockenklaus.XmlStats.Objects.Elem#getXml(org.w3c.dom.Document)
diff --git a/src/de/sockenklaus/XmlStats/Objects/Items.java b/src/de/sockenklaus/XmlStats/Objects/NodeItems.java
similarity index 82%
rename from src/de/sockenklaus/XmlStats/Objects/Items.java
rename to src/de/sockenklaus/XmlStats/Objects/NodeItems.java
index c1d1c8f..49245c3 100644
--- a/src/de/sockenklaus/XmlStats/Objects/Items.java
+++ b/src/de/sockenklaus/XmlStats/Objects/NodeItems.java
@@ -10,12 +10,12 @@ import org.w3c.dom.Element;
* @author socrates
*
*/
-public class Items extends Array {
+public class NodeItems extends NodeArray {
/**
* @param tagName
*/
- public Items() {
+ public NodeItems() {
super("items");
// TODO Auto-generated constructor stub
}
diff --git a/src/de/sockenklaus/XmlStats/Objects/NodeList.java b/src/de/sockenklaus/XmlStats/Objects/NodeList.java
index 9536755..4c6d465 100644
--- a/src/de/sockenklaus/XmlStats/Objects/NodeList.java
+++ b/src/de/sockenklaus/XmlStats/Objects/NodeList.java
@@ -12,7 +12,7 @@ import org.w3c.dom.Element;
* @author socrates
*
*/
-public abstract class NodeList extends Node {
+public class NodeList extends Node {
protected ArrayList childNodes;
public NodeList(String tagName){
@@ -20,7 +20,7 @@ public abstract class NodeList extends Node {
this.tagName = tagName;
}
- public void addChild(Node child){
+ public void appendChild(Node child){
this.childNodes.add(child);
}
diff --git a/src/de/sockenklaus/XmlStats/Objects/NodeText.java b/src/de/sockenklaus/XmlStats/Objects/NodeText.java
index 86ab25c..f0a63ca 100644
--- a/src/de/sockenklaus/XmlStats/Objects/NodeText.java
+++ b/src/de/sockenklaus/XmlStats/Objects/NodeText.java
@@ -27,6 +27,11 @@ public class NodeText extends Node {
this(tagName);
this.textContent = intContent.toString();
}
+
+ public NodeText(String tagName, Double dblContent){
+ this(tagName);
+ this.textContent = dblContent.toString();
+ }
public Element getXml(Document doc){
Element result = super.getXml(doc);
diff --git a/src/de/sockenklaus/XmlStats/Objects/NodeUser.java b/src/de/sockenklaus/XmlStats/Objects/NodeUser.java
new file mode 100644
index 0000000..87b5484
--- /dev/null
+++ b/src/de/sockenklaus/XmlStats/Objects/NodeUser.java
@@ -0,0 +1,35 @@
+/**
+ *
+ */
+package de.sockenklaus.XmlStats.Objects;
+
+import org.bukkit.Server;
+import org.bukkit.entity.Player;
+
+import de.sockenklaus.XmlStats.XmlStats;
+import de.sockenklaus.XmlStats.XmlStatsRegistry;
+import de.sockenklaus.XmlStats.Datasource.Datasource;
+import de.sockenklaus.XmlStats.Exceptions.XmlStatsException;
+
+/**
+ * @author socrates
+ *
+ */
+public class NodeUser extends NodeList {
+
+ public NodeUser(String name) throws XmlStatsException{
+ super("user");
+ if (Datasource.userExists(name)){
+ Server server = ((XmlStats)XmlStatsRegistry.get("xmlstats")).getServer();
+ Player player = server.getPlayer(name);
+
+ String status = (player != null && player.isOnline()) ?"online":"offline";
+ this.attributes.put("status", status);
+ this.childNodes.add(new NodeText("name", name));
+ }
+ else {
+ throw new XmlStatsException("The given user doesn't exist!");
+ }
+
+ }
+}
diff --git a/src/de/sockenklaus/XmlStats/Objects/NodeUserAchievement.java b/src/de/sockenklaus/XmlStats/Objects/NodeUserAchievement.java
new file mode 100644
index 0000000..3db0925
--- /dev/null
+++ b/src/de/sockenklaus/XmlStats/Objects/NodeUserAchievement.java
@@ -0,0 +1,20 @@
+/**
+*
+*/
+package de.sockenklaus.XmlStats.Objects;
+
+import com.nidefawl.Achievements.Achievement;
+
+/**
+* @author socrates
+*
+*/
+public class NodeUserAchievement extends NodeList {
+
+ public NodeUserAchievement(String paName, Achievement achievement){
+ super("achievement");
+ this.childNodes.add(new NodeText("name", paName));
+ this.childNodes.add(new NodeText("count", achievement.getCount()));
+ }
+}
+
diff --git a/src/de/sockenklaus/XmlStats/Objects/UserAchievements.java b/src/de/sockenklaus/XmlStats/Objects/NodeUserAchievements.java
similarity index 57%
rename from src/de/sockenklaus/XmlStats/Objects/UserAchievements.java
rename to src/de/sockenklaus/XmlStats/Objects/NodeUserAchievements.java
index 624e817..281ba39 100644
--- a/src/de/sockenklaus/XmlStats/Objects/UserAchievements.java
+++ b/src/de/sockenklaus/XmlStats/Objects/NodeUserAchievements.java
@@ -3,12 +3,8 @@
*/
package de.sockenklaus.XmlStats.Objects;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
import com.nidefawl.Achievements.PlayerAchievement;
-import de.sockenklaus.XmlStats.XmlStats;
import de.sockenklaus.XmlStats.Datasource.AchievementsDS;
import de.sockenklaus.XmlStats.Datasource.Datasource;
import de.sockenklaus.XmlStats.Exceptions.XmlStatsException;
@@ -17,18 +13,16 @@ import de.sockenklaus.XmlStats.Exceptions.XmlStatsException;
* @author socrates
*
*/
-public class UserAchievements extends Achievements {
- public UserAchievements(String userName) throws XmlStatsException{
- super();
+public class NodeUserAchievements extends NodeArray {
+ public NodeUserAchievements(String userName) throws XmlStatsException{
+ super("achivements");
AchievementsDS ads = new AchievementsDS();
if (Datasource.userExists(userName)){
- XmlStats.LogDebug("Achievements-const castet... user exists");
PlayerAchievement pa = ads.getUserAchievement(userName);
for(String paName : pa.achievements.keySet()){
- this.childNodes.add(new UserAchievement(paName, pa.get(paName)));
- XmlStats.LogDebug("Added Achievement.");
+ this.childNodes.add(new NodeUserAchievement(paName, pa.get(paName)));
}
}
else throw new XmlStatsException("The given username is not valid.");
diff --git a/src/de/sockenklaus/XmlStats/Objects/NodeUsers.java b/src/de/sockenklaus/XmlStats/Objects/NodeUsers.java
new file mode 100644
index 0000000..537ae75
--- /dev/null
+++ b/src/de/sockenklaus/XmlStats/Objects/NodeUsers.java
@@ -0,0 +1,18 @@
+/**
+ *
+ */
+package de.sockenklaus.XmlStats.Objects;
+
+/**
+ * @author socrates
+ *
+ */
+public class NodeUsers extends NodeArray {
+
+ /**
+ * @param tagName
+ */
+ public NodeUsers() {
+ super("users");
+ }
+}
diff --git a/src/de/sockenklaus/XmlStats/Objects/User.java b/src/de/sockenklaus/XmlStats/Objects/User.java
deleted file mode 100644
index 980b73b..0000000
--- a/src/de/sockenklaus/XmlStats/Objects/User.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
- *
- */
-package de.sockenklaus.XmlStats.Objects;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-/**
- * @author socrates
- *
- */
-public class User extends Node {
-
- private String name;
-
- public User(String name){
- this.name = name;
- }
-
- /* (non-Javadoc)
- * @see de.sockenklaus.XmlStats.Objects.Elem#getXml(org.w3c.dom.Document)
- */
- @Override
- public Element getXml(Document doc) {
- // TODO Auto-generated method stub
- return null;
- }
-
-}
diff --git a/src/de/sockenklaus/XmlStats/Objects/UserAchievement.java b/src/de/sockenklaus/XmlStats/Objects/UserAchievement.java
deleted file mode 100644
index 2a0e0be..0000000
--- a/src/de/sockenklaus/XmlStats/Objects/UserAchievement.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
-*
-*/
-package de.sockenklaus.XmlStats.Objects;
-
-import de.sockenklaus.XmlStats.XmlStats;
-
-/**
-* @author socrates
-*
-*/
-public class UserAchievement extends Achievement {
-
- public UserAchievement(String paName, com.nidefawl.Achievements.Achievement achievement){
- this.childNodes.add(new NodeText("name", paName));
- this.childNodes.add(new NodeText("count", achievement.getCount()));
- XmlStats.LogDebug("UserAchievement-const castet.");
- }
-}
-
diff --git a/src/de/sockenklaus/XmlStats/Objects/Users.java b/src/de/sockenklaus/XmlStats/Objects/Users.java
deleted file mode 100644
index c891112..0000000
--- a/src/de/sockenklaus/XmlStats/Objects/Users.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- *
- */
-package de.sockenklaus.XmlStats.Objects;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-/**
- * @author socrates
- *
- */
-public class Users extends Array {
-
- /**
- * @param tagName
- */
- public Users() {
- super("users");
- // TODO Auto-generated constructor stub
- }
-
- /* (non-Javadoc)
- * @see de.sockenklaus.XmlStats.Objects.Elem#getXml(org.w3c.dom.Document)
- */
- @Override
- public Element getXml(Document doc) {
- // TODO Auto-generated method stub
- return null;
- }
-
-}
diff --git a/src/de/sockenklaus/XmlStats/XmlWorkers/AchievementsList.java b/src/de/sockenklaus/XmlStats/XmlWorkers/AchievementsList.java
index 7c89444..352dc70 100644
--- a/src/de/sockenklaus/XmlStats/XmlWorkers/AchievementsList.java
+++ b/src/de/sockenklaus/XmlStats/XmlWorkers/AchievementsList.java
@@ -8,7 +8,7 @@ import java.util.Map;
import org.w3c.dom.Element;
-import de.sockenklaus.XmlStats.Objects.Achievements;
+import de.sockenklaus.XmlStats.Objects.NodeAchievements;
/**
* @author socrates
@@ -21,7 +21,7 @@ public class AchievementsList extends XmlWorker {
*/
@Override
protected Element getXml(Map> parameters) {
- Achievements ach = new Achievements();
+ NodeAchievements ach = new NodeAchievements();
return ach.getXml(this.doc);
}
diff --git a/src/de/sockenklaus/XmlStats/XmlWorkers/UserAchievements.java b/src/de/sockenklaus/XmlStats/XmlWorkers/UserAchievements.java
index 0705c4b..e063f4b 100644
--- a/src/de/sockenklaus/XmlStats/XmlWorkers/UserAchievements.java
+++ b/src/de/sockenklaus/XmlStats/XmlWorkers/UserAchievements.java
@@ -8,10 +8,11 @@ import java.util.Map;
import org.w3c.dom.Element;
-import com.nidefawl.Achievements.PlayerAchievement;
-
import de.sockenklaus.XmlStats.Datasource.AchievementsDS;
import de.sockenklaus.XmlStats.Exceptions.XmlStatsException;
+import de.sockenklaus.XmlStats.Objects.NodeUser;
+import de.sockenklaus.XmlStats.Objects.NodeUserAchievements;
+import de.sockenklaus.XmlStats.Objects.NodeUsers;
/**
* @author socrates
@@ -46,21 +47,15 @@ public class UserAchievements extends XmlWorker {
*/
@Override
protected Element getUserXml(List userList, Map> parameters) throws XmlStatsException{
-
- Element elem_users = this.doc.createElement("users");
- elem_users.setAttribute("count", String.valueOf(userList.size()));
+ NodeUsers node_users = new NodeUsers();
for(String userName : userList){
- Element elem_player = this.doc.createElement("user");
- elem_player.appendChild(getTextElem("name", userName));
-
- de.sockenklaus.XmlStats.Objects.UserAchievements ua = new de.sockenklaus.XmlStats.Objects.UserAchievements(userName);
- elem_player.appendChild(ua.getXml(this.doc));
-
- elem_users.appendChild(elem_player);
+ NodeUser node_user = new NodeUser(userName);
+ node_user.appendChild(new NodeUserAchievements(userName));
+ node_users.appendChild(node_user);
}
- return elem_users;
+ return node_users.getXml(this.doc);
}
}
diff --git a/src/de/sockenklaus/XmlStats/XmlWorkers/UserBalances.java b/src/de/sockenklaus/XmlStats/XmlWorkers/UserBalances.java
index 7ae2a9a..2866eab 100644
--- a/src/de/sockenklaus/XmlStats/XmlWorkers/UserBalances.java
+++ b/src/de/sockenklaus/XmlStats/XmlWorkers/UserBalances.java
@@ -17,12 +17,14 @@ package de.sockenklaus.XmlStats.XmlWorkers;
import java.util.List;
import java.util.Map;
-import org.w3c.dom.DOMException;
import org.w3c.dom.Element;
-import de.sockenklaus.XmlStats.XmlStats;
import de.sockenklaus.XmlStats.Datasource.BalancesDS;
import de.sockenklaus.XmlStats.Exceptions.XmlStatsException;
+import de.sockenklaus.XmlStats.Objects.NodeList;
+import de.sockenklaus.XmlStats.Objects.NodeText;
+import de.sockenklaus.XmlStats.Objects.NodeUser;
+import de.sockenklaus.XmlStats.Objects.NodeUsers;
// TODO: Auto-generated Javadoc
/**
@@ -39,18 +41,16 @@ public class UserBalances extends XmlWorker {
protected Element getUserXml(List playerList, Map> parameters) throws XmlStatsException {
- Element elem_users = this.doc.createElement("users");
- elem_users.setAttribute("count", String.valueOf(playerList.size()));
-
+ NodeUsers node_users = new NodeUsers();
+
for(String userName : playerList){
- Element elem_user = this.doc.createElement("user");
- elem_user.appendChild(getTextElem("name", userName));
- elem_user.appendChild(getTextElem("balance", String.valueOf(moneyDS.getBalance(userName))));
-
- elem_users.appendChild(elem_user);
+ NodeUser node_user = new NodeUser(userName);
+ node_user.appendChild(new NodeText("balance", moneyDS.getBalance(userName)));
+
+ node_users.appendChild(node_user);
}
- return elem_users;
+ return node_users.getXml(this.doc);
}
/* (non-Javadoc)
@@ -67,24 +67,20 @@ public class UserBalances extends XmlWorker {
*/
@Override
protected Element getSumXml(List userList, Map> parameters) throws XmlStatsException {
-
- Element elem_sum = this.doc.createElement("sum");
- Element elem_users = this.doc.createElement("users");
- elem_users.setAttribute("count", String.valueOf(userList.size()));
- elem_users.setAttribute("type", "name");
- elem_sum.appendChild(elem_users);
+
+ NodeList node_sum = new NodeList("sum");
+ NodeUsers node_users = new NodeUsers();
+
+ node_sum.appendChild(node_users);
for(String userName : userList){
- Element elem_user = this.doc.createElement("user");
- elem_user.appendChild(getTextElem("name", userName));
- elem_users.appendChild(elem_user);
- XmlStats.LogDebug("Got "+userName);
+ NodeUser node_user = new NodeUser(userName);
+ node_users.appendChild(node_user);
}
int sum = moneyDS.getSum(userList);
+ node_sum.appendChild(new NodeText("balance", sum));
- elem_sum.appendChild(getTextElem("balance", String.valueOf(sum)));
-
- return elem_sum;
+ return node_sum.getXml(this.doc);
}
}
diff --git a/src/de/sockenklaus/XmlStats/XmlWorkers/UserList.java b/src/de/sockenklaus/XmlStats/XmlWorkers/UserList.java
index 7a83530..7a825b2 100644
--- a/src/de/sockenklaus/XmlStats/XmlWorkers/UserList.java
+++ b/src/de/sockenklaus/XmlStats/XmlWorkers/UserList.java
@@ -14,16 +14,15 @@
*/
package de.sockenklaus.XmlStats.XmlWorkers;
-import java.util.ArrayList;
import java.util.Map;
import java.util.List;
-import org.bukkit.entity.Player;
import org.w3c.dom.Element;
-import de.sockenklaus.XmlStats.XmlStats;
-import de.sockenklaus.XmlStats.XmlStatsRegistry;
import de.sockenklaus.XmlStats.Datasource.Datasource;
+import de.sockenklaus.XmlStats.Exceptions.XmlStatsException;
+import de.sockenklaus.XmlStats.Objects.NodeUser;
+import de.sockenklaus.XmlStats.Objects.NodeUsers;
// TODO: Auto-generated Javadoc
/**
@@ -35,52 +34,22 @@ public class UserList extends XmlWorker {
* @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getXML(java.util.Map)
*/
@Override
- public Element getXml(Map> parameters) {
+ public Element getXml(Map> parameters) throws XmlStatsException {
- Element elem_users = this.doc.createElement("users");
- elem_users.setAttribute("count", String.valueOf(Datasource.fetchAllPlayers().size()));
-
- /*
- * Get list online player names
- */
- XmlStats pluginTemp= (XmlStats)XmlStatsRegistry.get("xmlstats");
-
- Player[] onlinePlayers = pluginTemp.getServer().getOnlinePlayers();
- List onlinePlayerNames = new ArrayList();
-
- if (onlinePlayers != null){
- for (int i = 0; i < onlinePlayers.length; i++){
- onlinePlayerNames.add(onlinePlayers[i].getName());
- }
- }
- /*
- * Got list of online player names
- */
-
- /*
- * Hier wird das XML aufgebaut
- */
+ NodeUsers node_users = new NodeUsers();
for(String playerName : Datasource.fetchAllPlayers()){
-
- Element elem_player = this.doc.createElement("user");
- elem_player.appendChild(getTextElem("name", playerName));
-
- elem_player.setAttribute("status", onlinePlayerNames.contains(playerName) ? "online":"offline");
-
- elem_users.appendChild(elem_player);
+ node_users.appendChild(new NodeUser(playerName));
}
- /*
- * Hier endet der XML-Aufbau
- */
- return elem_users;
+
+ return node_users.getXml(this.doc);
}
/* (non-Javadoc)
* @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getSumXml(java.util.List, java.util.Map)
*/
@Override
- protected Element getSumXml(List playerList, Map> parameters) {
+ protected Element getSumXml(List playerList, Map> parameters) throws XmlStatsException {
return this.getXml(parameters);
}
@@ -88,7 +57,7 @@ public class UserList extends XmlWorker {
* @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getUserXml(java.util.List, java.util.Map)
*/
@Override
- protected Element getUserXml(List playerList, Map> parameters) {
+ protected Element getUserXml(List playerList, Map> parameters) throws XmlStatsException {
return this.getXml(parameters);
}