diff --git a/.build.number b/.build.number
index f32b18b..fa9d189 100644
--- a/.build.number
+++ b/.build.number
@@ -1,3 +1,3 @@
#Build Number for ANT. Do not edit!
-#Thu Oct 06 22:29:49 CEST 2011
-build.number=43
+#Fri Feb 03 15:11:44 CET 2012
+build.number=69
diff --git a/.classpath b/.classpath
index 13973b9..ebd05a5 100644
--- a/.classpath
+++ b/.classpath
@@ -2,13 +2,9 @@
-
-
-
-
-
-
+
+
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index bdc32a3..174608e 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -1,12 +1,12 @@
-#Sat Aug 27 14:58:29 CEST 2011
+#Fri Feb 03 00:30:05 CET 2012
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/README.md b/README.md
index d5cea27..97ef706 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,8 @@
This plugin for the Bukkit Minecraft Server API ([Homepage](http://bukkit.org) | [Github](https://github.com/Bukkit/Bukkit )) offers the possibility to access some playerstats via xml files. The provided data is basically generated by [Stats](https://github.com/nidefawl/Stats).
+[](https://flattr.com/submit/auto?user_id=socke&url=https://github.com/sockenklaus/XmlStats&title=XmlStats&language=&tags=github&category=software)
+
## Install
To install the plugin, simply place the compiled **XmlStats.jar** in your servers plugin directory and execute the /reload-command on your server. The plugin will create it's config file in the /plugins/XmlStats directory.
diff --git a/build.xml b/build.xml
index 5229e4b..bfcb39a 100644
--- a/build.xml
+++ b/build.xml
@@ -13,9 +13,8 @@
-
-
-
+
+
diff --git a/lib/Register-1.5.jar b/lib/Register.jar
similarity index 100%
rename from lib/Register-1.5.jar
rename to lib/Register.jar
diff --git a/lib/bukkit-0.0.1-SNAPSHOT.jar b/lib/bukkit-1.1-R3.jar
similarity index 50%
rename from lib/bukkit-0.0.1-SNAPSHOT.jar
rename to lib/bukkit-1.1-R3.jar
index da3b9e4..aa26f4f 100644
Binary files a/lib/bukkit-0.0.1-SNAPSHOT.jar and b/lib/bukkit-1.1-R3.jar differ
diff --git a/src/de/sockenklaus/XmlStats/Datasource/BalancesDS.java b/src/de/sockenklaus/XmlStats/Datasource/BalancesDS.java
index 078768c..b951ad9 100644
--- a/src/de/sockenklaus/XmlStats/Datasource/BalancesDS.java
+++ b/src/de/sockenklaus/XmlStats/Datasource/BalancesDS.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) [2011] [Pascal König]
+ * Copyright (C) [2011] [Pascal Koenig]
*
* This program is free software; you can redistribute it and/or modify it under the terms of
* the GNU General Public License as published by the Free Software Foundation; either version
diff --git a/src/de/sockenklaus/XmlStats/Datasource/Datasource.java b/src/de/sockenklaus/XmlStats/Datasource/Datasource.java
index 1866108..1d0e168 100644
--- a/src/de/sockenklaus/XmlStats/Datasource/Datasource.java
+++ b/src/de/sockenklaus/XmlStats/Datasource/Datasource.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) [2011] [Pascal König]
+ * Copyright (C) [2011] [Pascal Koenig]
*
* This program is free software; you can redistribute it and/or modify it under the terms of
* the GNU General Public License as published by the Free Software Foundation; either version
diff --git a/src/de/sockenklaus/XmlStats/Datasource/UsersDS.java b/src/de/sockenklaus/XmlStats/Datasource/UsersDS.java
index 6e59fe2..1fa9394 100644
--- a/src/de/sockenklaus/XmlStats/Datasource/UsersDS.java
+++ b/src/de/sockenklaus/XmlStats/Datasource/UsersDS.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) [2011] [Pascal König]
+ * Copyright (C) [2011] [Pascal Koenig]
*
* This program is free software; you can redistribute it and/or modify it under the terms of
* the GNU General Public License as published by the Free Software Foundation; either version
diff --git a/src/de/sockenklaus/XmlStats/Datasource/UserstatsDS.java b/src/de/sockenklaus/XmlStats/Datasource/UserstatsDS.java
index 4f0231d..7710316 100644
--- a/src/de/sockenklaus/XmlStats/Datasource/UserstatsDS.java
+++ b/src/de/sockenklaus/XmlStats/Datasource/UserstatsDS.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) [2011] [Pascal König]
+ * Copyright (C) [2011] [Pascal Koenig]
*
* This program is free software; you can redistribute it and/or modify it under the terms of
* the GNU General Public License as published by the Free Software Foundation; either version
@@ -18,10 +18,15 @@ import java.io.File;
import java.util.HashMap;
import java.util.List;
-import com.nidefawl.Stats.Stats;
+import terranetworkorg.Stats.Stats;
+import terranetworkorg.Stats.Storage.PlayerCache;
+import terranetworkorg.Stats.Storage.PlayerControl;
+import terranetworkorg.Stats.Storage.PlayerStats;
+
+/*import com.nidefawl.Stats.Stats;
import com.nidefawl.Stats.datasource.Category;
import com.nidefawl.Stats.datasource.PlayerStat;
-import com.nidefawl.Stats.datasource.PlayerStatSQL;
+import com.nidefawl.Stats.datasource.PlayerStatSQL;*/
import de.sockenklaus.XmlStats.XmlStatsRegistry;
@@ -43,46 +48,81 @@ public class UserstatsDS extends Datasource {
return statsPlugin.getDataFolder();
}
- public static HashMap getAddedStats(List playerList){
- HashMap result = new HashMap();
-
+ public static HashMap> getAddedStats(List playerList){
+ HashMap > result = new HashMap>();
+
for(String playerName : playerList){
- PlayerStat player = getPlayerStat(playerName);
+ PlayerCache player = getPlayerCache(playerName);
- for(String catName : player.getCats()){
- Category cat = player.get(catName);
-
- for(String entryName : cat.getEntries()){
- Integer entry = cat.get(entryName);
+ for(PlayerStats ps : player.getStats()){
+ if(!result.containsKey(ps.getCat())){
+ /*
+ * Fall 1:
+ * Result enthaelt schon die Kat nicht
+ */
+ HashMap tmpMap = new HashMap();
+ tmpMap.put(ps.getName(), ps.getValue());
+ result.put(ps.getCat(), tmpMap);
+ }
+ else if(!result.get(ps.getCat()).containsKey(ps.getName())){
+ /*
+ * Fall 2: Result enthaelt Cat aber Stat nicht.
+ */
+ result.get(ps.getCat()).put(ps.getName(), ps.getValue());
+ }
+ else {
+ /*
+ * Fall 3: Es ist beides schon vorhanden
+ */
+ Integer currVal = result.get(ps.getCat()).get(ps.getName());
- if(result.containsKey(catName)){
-
- if(entryName.equals("lastlogin") || entryName.equals("lastlogout")){
- result.get(catName).put(entryName, Math.max(result.get(catName).get(entryName), entry));
- }
- else {
- result.get(catName).add(entryName, entry);
- }
-
+ if(ps.getName().equals("lastlogin") || ps.getName().equals("lastlogout")){
+ result.get(ps.getCat()).put(ps.getName(), Math.max(ps.getValue(), currVal));
}
else {
- Category tempCat = new Category();
- tempCat.add(entryName, entry);
- result.put(catName, tempCat);
+ result.get(ps.getCat()).put(ps.getName(), currVal + ps.getValue());
}
}
}
}
+
+ return result;
+ }
+
+ public static HashMap> getStats(String playerName){
+ HashMap> result = new HashMap>();
+
+ PlayerCache player = getPlayerCache(playerName);
+
+ for(PlayerStats ps : player.getStats()){
+ if(!result.containsKey(ps.getCat())){
+ /*
+ * Fall 1: Result enthaelt die Kategorie nicht.
+ */
+ HashMap tmpMap = new HashMap();
+ tmpMap.put(ps.getName(), ps.getValue());
+ result.put(ps.getCat(), tmpMap);
+ }
+ else if(!result.get(ps.getCat()).containsKey(ps.getName())){
+ /*
+ * Fall 2: Result kennt Kategorie, aber nicht den Stat.
+ */
+ result.get(ps.getCat()).put(ps.getName(), ps.getValue());
+ }
+ else {
+ /*
+ * Fall 3 (sollte nicht auftreten): Result kennt beides schon.
+ * Im Zweifel ueberschreiben...
+ */
+ result.get(ps.getCat()).put(ps.getName(), ps.getValue());
+ }
+ }
return result;
+
}
- public static PlayerStat getPlayerStat(String playerName){
- statsPlugin = (Stats)XmlStatsRegistry.get("stats");
- PlayerStat result = new PlayerStatSQL(playerName, statsPlugin);
-
- result.load();
-
- return result;
+ private static PlayerCache getPlayerCache(String playerName){
+ return PlayerControl.getPlayerCache(playerName);
}
}
diff --git a/src/de/sockenklaus/XmlStats/Objects/NodeCategories.java b/src/de/sockenklaus/XmlStats/Objects/NodeCategories.java
index 2f02487..44a359b 100644
--- a/src/de/sockenklaus/XmlStats/Objects/NodeCategories.java
+++ b/src/de/sockenklaus/XmlStats/Objects/NodeCategories.java
@@ -3,7 +3,7 @@
*/
package de.sockenklaus.XmlStats.Objects;
-import com.nidefawl.Stats.datasource.PlayerStat;
+import java.util.HashMap;
import de.sockenklaus.XmlStats.Datasource.UserstatsDS;
@@ -21,9 +21,9 @@ public class NodeCategories extends NodeArray {
*/
public NodeCategories(String userName) {
this();
- PlayerStat userStat = UserstatsDS.getPlayerStat(userName);
+ HashMap> userStat = UserstatsDS.getStats(userName);
- for(String catName : userStat.getCats()){
+ for(String catName : userStat.keySet()){
NodeCategory node_cat = new NodeCategory(catName, userStat.get(catName));
this.appendChild(node_cat);
}
diff --git a/src/de/sockenklaus/XmlStats/Objects/NodeCategory.java b/src/de/sockenklaus/XmlStats/Objects/NodeCategory.java
index 7fcb6ec..e92fc15 100644
--- a/src/de/sockenklaus/XmlStats/Objects/NodeCategory.java
+++ b/src/de/sockenklaus/XmlStats/Objects/NodeCategory.java
@@ -3,9 +3,7 @@
*/
package de.sockenklaus.XmlStats.Objects;
-import java.util.Arrays;
-
-import com.nidefawl.Stats.datasource.Category;
+import java.util.HashMap;
/**
* @author socrates
@@ -16,14 +14,11 @@ public class NodeCategory extends NodeList {
/**
* @param category
*/
- public NodeCategory(String catName, Category category) {
+ public NodeCategory(String catName, HashMap category) {
super("category");
-
- String[] resolveCats = new String[]{"blockdestroy", "blockcreate", "itemdrop", "itempickup"};
- Boolean resolve = Arrays.asList(resolveCats).contains(catName);
-
+
this.appendChild(new NodeText("name", catName));
- this.appendChild(new NodeItems(category, resolve));
+ this.appendChild(new NodeItems(category));
}
}
diff --git a/src/de/sockenklaus/XmlStats/Objects/NodeItems.java b/src/de/sockenklaus/XmlStats/Objects/NodeItems.java
index 9f5e366..02f3c7c 100644
--- a/src/de/sockenklaus/XmlStats/Objects/NodeItems.java
+++ b/src/de/sockenklaus/XmlStats/Objects/NodeItems.java
@@ -3,12 +3,8 @@
*/
package de.sockenklaus.XmlStats.Objects;
-import java.io.File;
+import java.util.HashMap;
-import com.nidefawl.Stats.ItemResolver.hModItemResolver;
-import com.nidefawl.Stats.datasource.Category;
-
-import de.sockenklaus.XmlStats.Datasource.UserstatsDS;
/**
* @author socrates
@@ -19,18 +15,10 @@ public class NodeItems extends NodeArray {
/**
* @param category
*/
- public NodeItems(Category category, Boolean resolve) {
+ public NodeItems(HashMap category) {
super("items");
-
- hModItemResolver itemResolver = new hModItemResolver(new File(UserstatsDS.getDataFolder(),"items.txt"));
- for(String varName : category.getEntries()){
- NodeItem node_item = new NodeItem(varName, category.get(varName));
-
- if(resolve){
- node_item.setAttribute("id", itemResolver.getItem(varName));
- }
-
+ for(String varName : category.keySet()){
this.appendChild(new NodeItem(varName, category.get(varName)));
}
}
diff --git a/src/de/sockenklaus/XmlStats/Settings.java b/src/de/sockenklaus/XmlStats/Settings.java
index 728e53f..70cde2b 100644
--- a/src/de/sockenklaus/XmlStats/Settings.java
+++ b/src/de/sockenklaus/XmlStats/Settings.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) [2011] [Pascal König]
+ * Copyright (C) [2011] [Pascal Koenig]
*
* This program is free software; you can redistribute it and/or modify it under the terms of
* the GNU General Public License as published by the Free Software Foundation; either version
@@ -15,8 +15,9 @@
package de.sockenklaus.XmlStats;
import java.io.File;
+import java.io.IOException;
-import org.bukkit.util.config.Configuration;
+import org.bukkit.configuration.file.YamlConfiguration;
// TODO: Auto-generated Javadoc
/**
@@ -25,7 +26,7 @@ import org.bukkit.util.config.Configuration;
public class Settings {
private static final String configFilename = "config.yml";
- private Configuration conf;
+ private YamlConfiguration conf;
/**
* Instantiates a new settings.
@@ -35,15 +36,18 @@ public class Settings {
public Settings(XmlStats xmlStats){
File f = new File(xmlStats.getDataFolder(), configFilename);
- conf = new Configuration(f);
if(f.exists()){
- conf.load();
+ conf = YamlConfiguration.loadConfiguration(f);
}
else {
- conf.setProperty("options.webserver-enabled", true);
- conf.setProperty("options.webserver-port", 9123);
- conf.setProperty("options.verbose-enabled", true);
- conf.save();
+ conf.set("options.webserver-enabled", true);
+ conf.set("options.webserver-port", 9123);
+ conf.set("options.verbose-enabled", true);
+ try {
+ conf.save(f);
+ }catch(IOException e){
+ XmlStats.LogError("Something went wrong with the conf-file: "+e.getMessage());
+ }
}
}
@@ -84,7 +88,7 @@ public class Settings {
* @param value the value
*/
public void setProperty(String path, Object value){
- conf.setProperty(path, value);
+ conf.set(path, value);
}
/**
diff --git a/src/de/sockenklaus/XmlStats/Webserver.java b/src/de/sockenklaus/XmlStats/Webserver.java
index 05dd52d..3316194 100644
--- a/src/de/sockenklaus/XmlStats/Webserver.java
+++ b/src/de/sockenklaus/XmlStats/Webserver.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) [2011] [Pascal König]
+ * Copyright (C) [2011] [Pascal Koenig]
*
* This program is free software; you can redistribute it and/or modify it under the terms of
* the GNU General Public License as published by the Free Software Foundation; either version
diff --git a/src/de/sockenklaus/XmlStats/XmlStats.java b/src/de/sockenklaus/XmlStats/XmlStats.java
index 4614997..7798d55 100644
--- a/src/de/sockenklaus/XmlStats/XmlStats.java
+++ b/src/de/sockenklaus/XmlStats/XmlStats.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) [2011] [Pascal König]
+ * Copyright (C) [2011] [Pascal Koenig]
*
* This program is free software; you can redistribute it and/or modify it under the terms of
* the GNU General Public License as published by the Free Software Foundation; either version
@@ -19,13 +19,13 @@ import java.util.logging.Logger;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
-import org.bukkit.event.Event.Priority;
-import org.bukkit.event.Event.Type;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;
+import org.bukkit.event.Event.Priority;
+import org.bukkit.event.Event.Type;
import com.nidefawl.Achievements.Achievements;
-import com.nidefawl.Stats.Stats;
+import terranetworkorg.Stats.Stats;
import com.nijikokun.register.Register;
import com.nijikokun.register.payment.Methods;
@@ -196,9 +196,9 @@ public class XmlStats extends JavaPlugin {
* @return true, if is stats hooked
*/
public boolean checkStats(){
- Plugin StatsTemp = getServer().getPluginManager().getPlugin("Stats");
+ Plugin StatsTemp = getServer().getPluginManager().getPlugin("Stats 2.0");
- if(StatsTemp != null && StatsTemp.getClass().getName().equals("com.nidefawl.Stats.Stats") && StatsTemp.isEnabled()) return true;
+ if(StatsTemp != null && StatsTemp.getClass().getName().equals("terranetworkorg.Stats.Stats") && StatsTemp.isEnabled()) return true;
return false;
}
@@ -260,6 +260,5 @@ public class XmlStats extends JavaPlugin {
XmlStatsServerListener listener = new XmlStatsServerListener(this);
getServer().getPluginManager().registerEvent(Type.PLUGIN_ENABLE, listener, Priority.Monitor, this);
- //getServer().getPluginManager().registerEvent(Type.PLUGIN_DISABLE, listener, Priority.Monitor, this);
}
}
diff --git a/src/de/sockenklaus/XmlStats/XmlWorkers/UserBalances.java b/src/de/sockenklaus/XmlStats/XmlWorkers/UserBalances.java
index 2866eab..c2244c1 100644
--- a/src/de/sockenklaus/XmlStats/XmlWorkers/UserBalances.java
+++ b/src/de/sockenklaus/XmlStats/XmlWorkers/UserBalances.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) [2011] [Pascal König]
+ * Copyright (C) [2011] [Pascal Koenig]
*
* This program is free software; you can redistribute it and/or modify it under the terms of
* the GNU General Public License as published by the Free Software Foundation; either version
diff --git a/src/de/sockenklaus/XmlStats/XmlWorkers/UserList.java b/src/de/sockenklaus/XmlStats/XmlWorkers/UserList.java
index 7a825b2..49f14aa 100644
--- a/src/de/sockenklaus/XmlStats/XmlWorkers/UserList.java
+++ b/src/de/sockenklaus/XmlStats/XmlWorkers/UserList.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) [2011] [Pascal König]
+ * Copyright (C) [2011] [Pascal Koenig]
*
* This program is free software; you can redistribute it and/or modify it under the terms of
* the GNU General Public License as published by the Free Software Foundation; either version
diff --git a/src/de/sockenklaus/XmlStats/XmlWorkers/UserStats.java b/src/de/sockenklaus/XmlStats/XmlWorkers/UserStats.java
index b6055d0..5133b11 100644
--- a/src/de/sockenklaus/XmlStats/XmlWorkers/UserStats.java
+++ b/src/de/sockenklaus/XmlStats/XmlWorkers/UserStats.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) [2011] [Pascal König]
+ * Copyright (C) [2011] [Pascal Koenig]
*
* This program is free software; you can redistribute it and/or modify it under the terms of
* the GNU General Public License as published by the Free Software Foundation; either version
@@ -20,8 +20,6 @@ import java.util.List;
import org.w3c.dom.Element;
-import com.nidefawl.Stats.datasource.Category;
-
import de.sockenklaus.XmlStats.Datasource.UserstatsDS;
import de.sockenklaus.XmlStats.Exceptions.XmlStatsException;
import de.sockenklaus.XmlStats.Objects.NodeCategories;
@@ -59,7 +57,7 @@ public class UserStats extends XmlWorker {
node_users.appendChild(new NodeUser(userName));
}
- HashMap addedStats = UserstatsDS.getAddedStats(playerList);
+ HashMap> addedStats = UserstatsDS.getAddedStats(playerList);
for(String catName : addedStats.keySet()){
NodeCategory node_cat = new NodeCategory(catName, addedStats.get(catName));
diff --git a/src/de/sockenklaus/XmlStats/XmlWorkers/XmlWorker.java b/src/de/sockenklaus/XmlStats/XmlWorkers/XmlWorker.java
index 4a6d369..222e5bc 100644
--- a/src/de/sockenklaus/XmlStats/XmlWorkers/XmlWorker.java
+++ b/src/de/sockenklaus/XmlStats/XmlWorkers/XmlWorker.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) [2011] [Pascal König]
+ * Copyright (C) [2011] [Pascal Koenig]
*
* This program is free software; you can redistribute it and/or modify it under the terms of
* the GNU General Public License as published by the Free Software Foundation; either version