Basicly implemented Achievements support.
This commit is contained in:
@@ -11,7 +11,10 @@
|
||||
<property name="author" value="sockenklaus" />
|
||||
|
||||
<path id="classpath">
|
||||
<pathelement location="lib/" />
|
||||
<pathelement location="lib/Achievements.jar" />
|
||||
<pathelement location="lib/Stats.jar" />
|
||||
<pathelement location="lib/iConomy.jar" />
|
||||
<pathelement location="bukkit-0.0.1-SNAPSHOT.jar" />
|
||||
</path>
|
||||
|
||||
<buildnumber file=".build.number" />
|
||||
|
||||
@@ -3,10 +3,37 @@
|
||||
*/
|
||||
package de.sockenklaus.XmlStats.Datasource;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.HashMap;
|
||||
|
||||
import com.nidefawl.Achievements.AchPropertiesFile;
|
||||
import com.nidefawl.Achievements.AchievementListData;
|
||||
import com.nidefawl.Achievements.Achievements;
|
||||
import com.nidefawl.Achievements.AchievementsLoader;
|
||||
|
||||
import de.sockenklaus.XmlStats.XmlStats;
|
||||
import de.sockenklaus.XmlStats.XmlStatsRegistry;
|
||||
|
||||
/**
|
||||
* @author socrates
|
||||
*
|
||||
*/
|
||||
public class AchievementsDS extends Datasource {
|
||||
|
||||
|
||||
public HashMap<String, AchievementListData> getAchievementsList(){
|
||||
Achievements ach = (Achievements)XmlStatsRegistry.get("achievements");
|
||||
|
||||
if(XmlStats.checkAchievements()){
|
||||
return ach.achievementList;
|
||||
}
|
||||
else return new HashMap<String, AchievementListData>();
|
||||
//return AchievementsLoader.LoadAchievementsList(ach, ach.getDataFolder().getPath(), getListLocation(ach));
|
||||
}
|
||||
|
||||
/*private String getListLocation(Achievements ach){
|
||||
AchPropertiesFile props = new AchPropertiesFile(new File(ach.getDataFolder(), "achievements.properties"));
|
||||
|
||||
return props.getString("achievements-list", "achievements.txt", "");
|
||||
}*/
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ public class MoneyDS extends Datasource {
|
||||
private Double getBalance(String playerName){
|
||||
Double result = 0.0;
|
||||
|
||||
if (XmlStats.isiConomyHooked()){
|
||||
if (XmlStats.checkiConomy()){
|
||||
if(this.iConomy.hasAccount(playerName)){
|
||||
Account account = this.iConomy.getAccount(playerName);
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@ public class Webserver {
|
||||
|
||||
this.server.createContext("/users.xml", new XmlWorkerUsers());
|
||||
|
||||
if(XmlStats.isStatsHooked()){
|
||||
if(XmlStats.checkStats()){
|
||||
server.createContext("/userstats.xml", new XmlWorkerUserstats());
|
||||
XmlStats.LogInfo("Stats seems to be loaded correctly. Enabling /userstats.xml");
|
||||
}
|
||||
@@ -85,7 +85,7 @@ public class Webserver {
|
||||
XmlStats.LogWarn("Stats not loaded correctly. Disabling /userstats.xml");
|
||||
}
|
||||
|
||||
if (XmlStats.isiConomyHooked()){
|
||||
if (XmlStats.checkiConomy()){
|
||||
server.createContext("/money.xml", new XmlWorkerMoney());
|
||||
XmlStats.LogInfo("iConomy seems to be loaded correctly. Enabling /money.xml.");
|
||||
}
|
||||
@@ -93,7 +93,7 @@ public class Webserver {
|
||||
XmlStats.LogWarn("iConomy not loaded correctly. Disabling /money.xml");
|
||||
}
|
||||
|
||||
if(XmlStats.isAchievementsHooked()){
|
||||
if(XmlStats.checkAchievements()){
|
||||
server.createContext("/achievements.xml", new XmlWorkerAchievements());
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -181,7 +181,7 @@ public class XmlStats extends JavaPlugin {
|
||||
*
|
||||
* @return true, if is stats hooked
|
||||
*/
|
||||
public static boolean isStatsHooked(){
|
||||
public static boolean checkStats(){
|
||||
Stats StatsTemp = (Stats)XmlStatsRegistry.get("stats");
|
||||
|
||||
if (StatsTemp != null){
|
||||
@@ -195,7 +195,7 @@ public class XmlStats extends JavaPlugin {
|
||||
*
|
||||
* @return true, if is i conomy hooked
|
||||
*/
|
||||
public static boolean isiConomyHooked(){
|
||||
public static boolean checkiConomy(){
|
||||
iConomy iConomyTemp = (iConomy)XmlStatsRegistry.get("iconomy");
|
||||
|
||||
if (iConomyTemp != null){
|
||||
@@ -209,8 +209,8 @@ public class XmlStats extends JavaPlugin {
|
||||
*
|
||||
* @return true, if is Achievements hooked
|
||||
*/
|
||||
public static boolean isAchievementsHooked(){
|
||||
Achievements AchievementsTemp = (Achievements)XmlStatsRegistry.get("achievments");
|
||||
public static boolean checkAchievements(){
|
||||
Achievements AchievementsTemp = (Achievements)XmlStatsRegistry.get("achievements");
|
||||
|
||||
if (AchievementsTemp != null){
|
||||
if(AchievementsTemp.getClass().getName().equals("com.nidefawl.Achievements.Achievements") && AchievementsTemp.isEnabled()) return true;
|
||||
|
||||
@@ -3,8 +3,26 @@
|
||||
*/
|
||||
package de.sockenklaus.XmlStats.XmlWorkers;
|
||||
|
||||
import java.io.StringWriter;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import javax.xml.parsers.DocumentBuilder;
|
||||
import javax.xml.parsers.DocumentBuilderFactory;
|
||||
import javax.xml.transform.Transformer;
|
||||
import javax.xml.transform.TransformerFactory;
|
||||
import javax.xml.transform.dom.DOMSource;
|
||||
import javax.xml.transform.stream.StreamResult;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
import com.nidefawl.Achievements.AchievementListData;
|
||||
import com.nidefawl.Stats.Stats;
|
||||
|
||||
import de.sockenklaus.XmlStats.Datasource.AchievementsDS;
|
||||
|
||||
/**
|
||||
* @author socrates
|
||||
@@ -12,13 +30,89 @@ import java.util.Map;
|
||||
*/
|
||||
public class XmlWorkerAchievements extends XmlWorker {
|
||||
|
||||
AchievementsDS achDS;
|
||||
|
||||
public XmlWorkerAchievements(){
|
||||
this.achDS = new AchievementsDS();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getXML(java.util.Map)
|
||||
*/
|
||||
@Override
|
||||
String getXML(Map<String, List<String>> parameters) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
try {
|
||||
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
|
||||
DocumentBuilder builder = factory.newDocumentBuilder();
|
||||
Document doc = builder.newDocument();
|
||||
DOMSource source = new DOMSource(doc);
|
||||
StringWriter writer = new StringWriter();
|
||||
StreamResult result = new StreamResult(writer);
|
||||
TransformerFactory tf = TransformerFactory.newInstance();
|
||||
Transformer transformer = tf.newTransformer();
|
||||
|
||||
HashMap<String, AchievementListData> achList = achDS.getAchievementsList();
|
||||
|
||||
Element root = doc.createElement("achievements");
|
||||
doc.appendChild(root);
|
||||
|
||||
/*
|
||||
* Hier wird das XML aufgebaut
|
||||
*/
|
||||
for(String achName : achList.keySet()){
|
||||
root.appendChild(getAchievement(doc, achList.get(achName)));
|
||||
}
|
||||
|
||||
/*
|
||||
* Hier endet der XML-Aufbau
|
||||
*/
|
||||
|
||||
transformer.transform(source, result);
|
||||
return writer.toString();
|
||||
}
|
||||
|
||||
catch (Exception e){
|
||||
Stats.log.log(Level.SEVERE, "Something went terribly wrong!");
|
||||
Stats.log.log(Level.SEVERE, e.getMessage());
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
private Element getAchievement(Document doc, AchievementListData data){
|
||||
Element elem_ach = doc.createElement("achievement");
|
||||
elem_ach.setAttribute("enabled", String.valueOf(data.isEnabled()));
|
||||
|
||||
Element elem_name = doc.createElement("name");
|
||||
elem_name.setTextContent(data.getName());
|
||||
elem_ach.appendChild(elem_name);
|
||||
|
||||
Element elem_description = doc.createElement("description");
|
||||
elem_description.setTextContent(data.getDescription());
|
||||
elem_ach.appendChild(elem_description);
|
||||
|
||||
Element elem_category = doc.createElement("category");
|
||||
elem_category.setTextContent(data.getCategory());
|
||||
elem_ach.appendChild(elem_category);
|
||||
|
||||
Element elem_stat = doc.createElement("stat");
|
||||
elem_stat.setTextContent(data.getKey());
|
||||
elem_ach.appendChild(elem_stat);
|
||||
|
||||
Element elem_value = doc.createElement("value");
|
||||
elem_value.setTextContent(String.valueOf(data.getValue()));
|
||||
elem_ach.appendChild(elem_value);
|
||||
|
||||
Element elem_maxawards = doc.createElement("maxawards");
|
||||
elem_maxawards.setTextContent(String.valueOf(data.getMaxawards()));
|
||||
elem_ach.appendChild(elem_maxawards);
|
||||
|
||||
Element elem_commands = doc.createElement("commands");
|
||||
elem_commands.setTextContent(data.commands.toString());
|
||||
elem_ach.appendChild(elem_commands);
|
||||
|
||||
return elem_ach;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user