From 4ac770e4e95d44ee7b3e2065cf43db740196600b Mon Sep 17 00:00:00 2001 From: Pascal Koenig Date: Wed, 5 Oct 2011 13:06:54 +0200 Subject: [PATCH] Fixed the commit again... --- .build.number | 4 +- .../XmlStats/Datasource/Datasource.java | 22 +++++-- .../XmlStats/Objects/Achievements.java | 5 +- .../sockenklaus/XmlStats/Objects/Array.java | 14 +++- .../XmlStats/Objects/Categories.java | 12 ++++ src/de/sockenklaus/XmlStats/Objects/Elem.java | 7 ++ .../sockenklaus/XmlStats/Objects/Items.java | 12 +++- .../XmlStats/Objects/UserAchievement.java | 32 +++++++++ .../XmlStats/Objects/UserAchievements.java | 17 +++-- .../sockenklaus/XmlStats/Objects/Users.java | 12 ++++ .../XmlStats/XmlWorkers/AchievementsList.java | 65 +------------------ 11 files changed, 122 insertions(+), 80 deletions(-) create mode 100644 src/de/sockenklaus/XmlStats/Objects/UserAchievement.java diff --git a/.build.number b/.build.number index c2799fb..323e666 100644 --- a/.build.number +++ b/.build.number @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Tue Oct 04 10:43:28 CEST 2011 -build.number=18 +#Wed Oct 05 13:06:09 CEST 2011 +build.number=22 diff --git a/src/de/sockenklaus/XmlStats/Datasource/Datasource.java b/src/de/sockenklaus/XmlStats/Datasource/Datasource.java index 05d26c7..1866108 100644 --- a/src/de/sockenklaus/XmlStats/Datasource/Datasource.java +++ b/src/de/sockenklaus/XmlStats/Datasource/Datasource.java @@ -18,6 +18,10 @@ import java.io.File; import java.util.ArrayList; import java.util.List; +import org.bukkit.World; + +import de.sockenklaus.XmlStats.XmlStats; +import de.sockenklaus.XmlStats.XmlStatsRegistry; import de.sockenklaus.XmlStats.Exceptions.XmlStatsException; // TODO: Auto-generated Javadoc @@ -32,19 +36,25 @@ public abstract class Datasource { * @return the array list */ public static ArrayList fetchAllPlayers(){ - File[] files = new File("world/players").listFiles(); + XmlStats xmlstats = (XmlStats)XmlStatsRegistry.get("xmlstats"); + List worlds = xmlstats.getServer().getWorlds(); ArrayList result = new ArrayList(); - for (int i = 0; i < files.length; i++){ - int whereDot = files[i].getName().lastIndexOf('.'); + for(World world : worlds){ + File[] files = new File(world.getName()+"/players").listFiles(); - if (0 < whereDot && whereDot <= files[i].getName().length() - 2){ - String playerName = files[i].getName().substring(0, whereDot); + for (File file : files){ + int whereDot = file.getName().lastIndexOf('.'); - result.add(playerName); + if (0 < whereDot && whereDot <= file.getName().length() - 2){ + String playerName = file.getName().substring(0, whereDot); + + if(!result.contains(playerName)) result.add(playerName); + } } } + return result; } diff --git a/src/de/sockenklaus/XmlStats/Objects/Achievements.java b/src/de/sockenklaus/XmlStats/Objects/Achievements.java index 9a5a07e..967658d 100644 --- a/src/de/sockenklaus/XmlStats/Objects/Achievements.java +++ b/src/de/sockenklaus/XmlStats/Objects/Achievements.java @@ -18,9 +18,10 @@ import de.sockenklaus.XmlStats.Datasource.AchievementsDS; * */ public class Achievements extends Array { - protected ArrayList childNodes; + //protected ArrayList childNodes; public Achievements(){ + super(); AchievementsDS ads = new AchievementsDS(); HashMap achList = ads.getAchievementsList(); @@ -34,7 +35,7 @@ public class Achievements extends Array { Element result = doc.createElement("achievements"); result.setAttribute("count", this.getCountStr()); - for(Achievement ach : this.childNodes){ + for(Elem ach : this.childNodes){ result.appendChild(ach.getXml(doc)); } diff --git a/src/de/sockenklaus/XmlStats/Objects/Array.java b/src/de/sockenklaus/XmlStats/Objects/Array.java index 180f4c4..722ba4f 100644 --- a/src/de/sockenklaus/XmlStats/Objects/Array.java +++ b/src/de/sockenklaus/XmlStats/Objects/Array.java @@ -5,13 +5,19 @@ package de.sockenklaus.XmlStats.Objects; import java.util.ArrayList; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + /** * @author socrates * */ public abstract class Array { - private ArrayList childNodes; + protected ArrayList childNodes; + protected Array(){ + this.childNodes = new ArrayList(); + } public int getCountInt(){ return this.childNodes.size(); } @@ -19,4 +25,10 @@ public abstract class Array { public String getCountStr(){ return String.valueOf(this.childNodes.size()); } + + /** + * @param doc + * @return + */ + public abstract Element getXml(Document doc); } diff --git a/src/de/sockenklaus/XmlStats/Objects/Categories.java b/src/de/sockenklaus/XmlStats/Objects/Categories.java index 9766c64..558422d 100644 --- a/src/de/sockenklaus/XmlStats/Objects/Categories.java +++ b/src/de/sockenklaus/XmlStats/Objects/Categories.java @@ -3,10 +3,22 @@ */ package de.sockenklaus.XmlStats.Objects; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + /** * @author socrates * */ public class Categories extends Array { + /* (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/Elem.java b/src/de/sockenklaus/XmlStats/Objects/Elem.java index 892027c..ceb648b 100644 --- a/src/de/sockenklaus/XmlStats/Objects/Elem.java +++ b/src/de/sockenklaus/XmlStats/Objects/Elem.java @@ -5,6 +5,7 @@ package de.sockenklaus.XmlStats.Objects; import org.w3c.dom.Document; import org.w3c.dom.Element; +import org.w3c.dom.Node; /** * @author socrates @@ -22,4 +23,10 @@ public abstract class Elem { result.setTextContent(String.valueOf(value)); return result; } + + /** + * @param doc + * @return + */ + public abstract Node getXml(Document doc); } diff --git a/src/de/sockenklaus/XmlStats/Objects/Items.java b/src/de/sockenklaus/XmlStats/Objects/Items.java index a162bd7..fd01266 100644 --- a/src/de/sockenklaus/XmlStats/Objects/Items.java +++ b/src/de/sockenklaus/XmlStats/Objects/Items.java @@ -3,12 +3,22 @@ */ package de.sockenklaus.XmlStats.Objects; -import java.util.ArrayList; +import org.w3c.dom.Document; +import org.w3c.dom.Element; /** * @author socrates * */ public class Items extends Array { + + /* (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/UserAchievement.java b/src/de/sockenklaus/XmlStats/Objects/UserAchievement.java new file mode 100644 index 0000000..633864f --- /dev/null +++ b/src/de/sockenklaus/XmlStats/Objects/UserAchievement.java @@ -0,0 +1,32 @@ +/** +* +*/ +package de.sockenklaus.XmlStats.Objects; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +/** +* @author socrates +* +*/ +public class UserAchievement extends Achievement { + + private String name; + private int count; + + public UserAchievement(String paName, com.nidefawl.Achievements.Achievement achievement){ + this.name = paName; + this.count = achievement.getCount(); + } + + public Element getXml(Document doc){ + Element result = doc.createElement("achievement"); + + result.appendChild(this.addXmlChild("name", this.name, doc)); + result.appendChild(this.addXmlChild("count", this.count, doc)); + + return result; + } +} + diff --git a/src/de/sockenklaus/XmlStats/Objects/UserAchievements.java b/src/de/sockenklaus/XmlStats/Objects/UserAchievements.java index 7697101..de9eebe 100644 --- a/src/de/sockenklaus/XmlStats/Objects/UserAchievements.java +++ b/src/de/sockenklaus/XmlStats/Objects/UserAchievements.java @@ -9,27 +9,32 @@ import org.w3c.dom.Element; import com.nidefawl.Achievements.PlayerAchievement; import de.sockenklaus.XmlStats.Datasource.AchievementsDS; +import de.sockenklaus.XmlStats.Datasource.Datasource; +import de.sockenklaus.XmlStats.Exceptions.XmlStatsException; /** * @author socrates * */ public class UserAchievements extends Achievements { - public UserAchievements(String userName){ + public UserAchievements(String userName) throws XmlStatsException{ AchievementsDS ads = new AchievementsDS(); - PlayerAchievement pa = ads.getUserAchievement(userName); - - for(String paName : pa.achievements.keySet()){ - this.childNodes.add(new UserAchievement(paName, pa.get(paName))); + if (Datasource.userExists(userName)){ + PlayerAchievement pa = ads.getUserAchievement(userName); + + for(String paName : pa.achievements.keySet()){ + this.childNodes.add(new UserAchievement(paName, pa.get(paName))); + } } + else throw new XmlStatsException("The given username is not valid."); } public Element getXml(Document doc){ Element result = doc.createElement("achievements"); result.setAttribute("count", this.getCountStr()); - for(Achievement ach : this.childNodes){ + for(Elem ach : this.childNodes){ result.appendChild(((UserAchievement)ach).getXml(doc)); } diff --git a/src/de/sockenklaus/XmlStats/Objects/Users.java b/src/de/sockenklaus/XmlStats/Objects/Users.java index 30d9827..8c5cae6 100644 --- a/src/de/sockenklaus/XmlStats/Objects/Users.java +++ b/src/de/sockenklaus/XmlStats/Objects/Users.java @@ -3,10 +3,22 @@ */ package de.sockenklaus.XmlStats.Objects; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + /** * @author socrates * */ public class Users extends Array { + /* (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 716461b..7c89444 100644 --- a/src/de/sockenklaus/XmlStats/XmlWorkers/AchievementsList.java +++ b/src/de/sockenklaus/XmlStats/XmlWorkers/AchievementsList.java @@ -3,15 +3,12 @@ */ package de.sockenklaus.XmlStats.XmlWorkers; -import java.util.HashMap; import java.util.List; import java.util.Map; import org.w3c.dom.Element; -import com.nidefawl.Achievements.AchievementListData; - -import de.sockenklaus.XmlStats.Datasource.AchievementsDS; +import de.sockenklaus.XmlStats.Objects.Achievements; /** * @author socrates @@ -24,16 +21,8 @@ public class AchievementsList extends XmlWorker { */ @Override protected Element getXml(Map> parameters) { - HashMap achList = new AchievementsDS().getAchievementsList(); - - Element elem_achs = this.doc.createElement("achievements"); - elem_achs.setAttribute("count", String.valueOf(achList.size())); - - for(String achName : achList.keySet()){ - elem_achs.appendChild(getAchievement(achList.get(achName))); - } - - return elem_achs; + Achievements ach = new Achievements(); + return ach.getXml(this.doc); } /* (non-Javadoc) @@ -51,52 +40,4 @@ public class AchievementsList extends XmlWorker { protected Element getUserXml(List playerList, Map> parameters) { return this.getXml(parameters); } - - private Element getAchievement(AchievementListData data){ - Element elem_ach = this.doc.createElement("achievement"); - elem_ach.setAttribute("enabled", data.isEnabled()?"true":"false"); - -<<<<<<< HEAD - Element elem_achname = this.doc.createElement("name"); - elem_achname.setTextContent(data.getName()); - elem_ach.appendChild(elem_achname); - - Element elem_achdesc = this.doc.createElement("description"); - elem_achdesc.setTextContent(data.getDescription()); - elem_ach.appendChild(elem_achdesc); - - Element elem_category = this.doc.createElement("category"); - elem_category.setTextContent(data.getCategory()); - elem_ach.appendChild(elem_category); - - Element elem_stat = this.doc.createElement("stat"); - elem_stat.setTextContent(data.getKey()); - elem_ach.appendChild(elem_stat); - - Element elem_value = this.doc.createElement("value"); - elem_value.setTextContent(String.valueOf(data.getValue())); - elem_ach.appendChild(elem_value); - - Element elem_maxawards = this.doc.createElement("maxawards"); - elem_maxawards.setTextContent(String.valueOf(data.getMaxawards())); - elem_ach.appendChild(elem_maxawards); - - Element elem_commands = this.doc.createElement("commands"); - elem_commands.setTextContent(data.commands.toString()); - elem_ach.appendChild(elem_commands); - -======= - elem_ach.appendChild(getTextElem("name", data.getName())); - elem_ach.appendChild(getTextElem("description", data.getDescription())); - elem_ach.appendChild(getTextElem("category", data.getCategory())); - elem_ach.appendChild(getTextElem("stat", data.getKey())); - elem_ach.appendChild(getTextElem("value", data.getValue())); - elem_ach.appendChild(getTextElem("maxawards", data.getMaxawards())); - elem_ach.appendChild(getTextElem("commands", data.commands.toString())); - ->>>>>>> parent of 40d9bce... Pushed version to 0.4. Did some work on object based XML generation. - return elem_ach; - - } - }