Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6231f9bf2d | ||
|
|
5a007d02f9 | ||
|
|
8be79fadc6 | ||
|
|
969b763e63 | ||
|
|
6c245b7503 | ||
|
|
65cc053677 | ||
|
|
9b2a10d6b3 | ||
|
|
ecefa61b53 | ||
|
|
d9414e7d49 | ||
|
|
e1ba7c60e7 | ||
|
|
379e9fb591 | ||
|
|
a022c05ee6 | ||
|
|
4ac770e4e9 | ||
|
|
4270515f8c | ||
|
|
5c8a6b1865 | ||
|
|
95443bad58 | ||
|
|
ebc3e3d1fc | ||
|
|
40d9bceeb1 | ||
|
|
a2b31e14fc |
@@ -1,3 +1,3 @@
|
||||
#Build Number for ANT. Do not edit!
|
||||
#Tue Oct 04 10:39:20 CEST 2011
|
||||
build.number=52
|
||||
#Fri Feb 03 16:29:04 CET 2012
|
||||
build.number=72
|
||||
|
||||
@@ -2,13 +2,9 @@
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="lib" path="lib/Stats.jar"/>
|
||||
<classpathentry kind="lib" path="lib/bukkit-0.0.1-SNAPSHOT.jar">
|
||||
<attributes>
|
||||
<attribute name="javadoc_location" value="http://jd.bukkit.org/apidocs/"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="lib" path="lib/Achievements.jar"/>
|
||||
<classpathentry kind="lib" path="lib/Register-1.5.jar"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry kind="lib" path="lib/bukkit-1.1-R3.jar"/>
|
||||
<classpathentry kind="lib" path="lib/Register.jar"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
# XmlStats v0.3
|
||||
# XmlStats v0.4
|
||||
|
||||
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.
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<property name="dist" value="dist" />
|
||||
<property name="src" value="src" />
|
||||
<property name="name" value="XmlStats" />
|
||||
<property name="version" value="0.3" />
|
||||
<property name="version" value="0.4" />
|
||||
<property name="package" value="de/sockenklaus/XmlStats" />
|
||||
<property name="resources" value="resources" />
|
||||
<property name="author" value="sockenklaus" />
|
||||
@@ -13,9 +13,8 @@
|
||||
<path id="classpath">
|
||||
<pathelement location="lib/Achievements.jar" />
|
||||
<pathelement location="lib/Stats.jar" />
|
||||
<pathelement location="lib/iConomy.jar" />
|
||||
<pathelement location="lib/bukkit-0.0.1-SNAPSHOT.jar" />
|
||||
<pathelement location="lib/Register-1.5.jar" />
|
||||
<pathelement location="lib/bukkit-1.1-R3.jar" />
|
||||
<pathelement location="lib/Register.jar" />
|
||||
</path>
|
||||
|
||||
<buildnumber file=".build.number" />
|
||||
|
||||
Binary file not shown.
BIN
lib/Stats.jar
BIN
lib/Stats.jar
Binary file not shown.
Binary file not shown.
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) [2011] [Pascal K<EFBFBD>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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) [2011] [Pascal K<EFBFBD>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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) [2011] [Pascal K<EFBFBD>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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) [2011] [Pascal K<EFBFBD>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;
|
||||
|
||||
@@ -31,65 +36,51 @@ import de.sockenklaus.XmlStats.XmlStatsRegistry;
|
||||
*/
|
||||
public class UserstatsDS extends Datasource {
|
||||
|
||||
private Stats statsPlugin;
|
||||
|
||||
/**
|
||||
* Instantiates a new stats ds.
|
||||
*/
|
||||
public UserstatsDS() {
|
||||
this.statsPlugin = (Stats)XmlStatsRegistry.get("stats");
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the plugin.
|
||||
*
|
||||
* @return the plugin
|
||||
*/
|
||||
// public Stats getPlugin() {
|
||||
// return this.statsPlugin;
|
||||
//}
|
||||
private static Stats statsPlugin;
|
||||
|
||||
/**
|
||||
* Gets the data folder.
|
||||
*
|
||||
* @return the data folder
|
||||
*/
|
||||
public File getDataFolder(){
|
||||
return this.statsPlugin.getDataFolder();
|
||||
public static File getDataFolder(){
|
||||
statsPlugin = (Stats)XmlStatsRegistry.get("stats");
|
||||
return statsPlugin.getDataFolder();
|
||||
}
|
||||
|
||||
public HashMap<String, HashMap<String, Integer>> getAddedStats(List<String> playerList){
|
||||
public static HashMap<String, HashMap<String, Integer>> getAddedStats(List<String> playerList){
|
||||
HashMap <String, HashMap<String, Integer>> result = new HashMap<String, HashMap<String, Integer>>();
|
||||
|
||||
for(String playerName : playerList){
|
||||
PlayerStat player = this.getPlayerStat(playerName);
|
||||
PlayerCache player = getPlayerCache(playerName);
|
||||
|
||||
for(String catName : player.getCats()){
|
||||
Category cat = player.get(catName);
|
||||
for(PlayerStats ps : player.getStats()){
|
||||
if(!result.containsKey(ps.getCat())){
|
||||
/*
|
||||
* Fall 1:
|
||||
* Result enthaelt schon die Kat nicht
|
||||
*/
|
||||
HashMap<String, Integer> tmpMap = new HashMap<String, Integer>();
|
||||
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());
|
||||
|
||||
for(String entryName : cat.getEntries()){
|
||||
Integer entry = cat.get(entryName);
|
||||
|
||||
if(result.containsKey(catName)){
|
||||
if(result.get(catName).containsKey(entryName)){
|
||||
|
||||
if(entryName.equals("lastlogin") || entryName.equals("lastlogout")){
|
||||
result.get(catName).put(entryName, Math.max(result.get(catName).get(entryName), entry));
|
||||
}
|
||||
else {
|
||||
Integer tempInt = result.get(catName).get(entryName) + entry;
|
||||
result.get(catName).put(entryName, tempInt);
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
result.get(catName).put(entryName, entry);
|
||||
}
|
||||
if(ps.getName().equals("lastlogin") || ps.getName().equals("lastlogout")){
|
||||
result.get(ps.getCat()).put(ps.getName(), Math.max(ps.getValue(), currVal));
|
||||
}
|
||||
else {
|
||||
HashMap<String, Integer> tempMap = new HashMap<String, Integer>();
|
||||
tempMap.put(entryName, entry);
|
||||
result.put(catName, tempMap);
|
||||
result.get(ps.getCat()).put(ps.getName(), currVal + ps.getValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -98,11 +89,40 @@ public class UserstatsDS extends Datasource {
|
||||
return result;
|
||||
}
|
||||
|
||||
public PlayerStat getPlayerStat(String playerName){
|
||||
PlayerStat result = new PlayerStatSQL(playerName, this.statsPlugin);
|
||||
public static HashMap<String, HashMap<String, Integer>> getStats(String playerName){
|
||||
HashMap<String, HashMap<String, Integer>> result = new HashMap<String, HashMap<String, Integer>>();
|
||||
|
||||
result.load();
|
||||
PlayerCache player = getPlayerCache(playerName);
|
||||
|
||||
for(PlayerStats ps : player.getStats()){
|
||||
if(!result.containsKey(ps.getCat())){
|
||||
/*
|
||||
* Fall 1: Result enthaelt die Kategorie nicht.
|
||||
*/
|
||||
HashMap<String, Integer> tmpMap = new HashMap<String, Integer>();
|
||||
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;
|
||||
|
||||
}
|
||||
|
||||
private static PlayerCache getPlayerCache(String playerName){
|
||||
return PlayerControl.getPlayerCache(playerName);
|
||||
}
|
||||
}
|
||||
|
||||
47
src/de/sockenklaus/XmlStats/Objects/Node.java
Normal file
47
src/de/sockenklaus/XmlStats/Objects/Node.java
Normal file
@@ -0,0 +1,47 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package de.sockenklaus.XmlStats.Objects;
|
||||
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
/**
|
||||
* @author socrates
|
||||
*
|
||||
*/
|
||||
public abstract class Node {
|
||||
|
||||
protected String tagName;
|
||||
protected HashMap<String, String> attributes;
|
||||
|
||||
public Node(){
|
||||
this.attributes = new HashMap<String, String>();
|
||||
}
|
||||
|
||||
public void setAttribute(String name, String value){
|
||||
this.attributes.put(name, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param name
|
||||
* @param item
|
||||
*/
|
||||
public void setAttribute(String name, Integer value) {
|
||||
this.setAttribute(name, value.toString());
|
||||
|
||||
}
|
||||
|
||||
public Element getXml(Document doc){
|
||||
Element result = doc.createElement(this.tagName);
|
||||
|
||||
for(String attrName : this.attributes.keySet()){
|
||||
result.setAttribute(attrName, this.attributes.get(attrName));
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
30
src/de/sockenklaus/XmlStats/Objects/NodeAchievement.java
Normal file
30
src/de/sockenklaus/XmlStats/Objects/NodeAchievement.java
Normal file
@@ -0,0 +1,30 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package de.sockenklaus.XmlStats.Objects;
|
||||
|
||||
import com.nidefawl.Achievements.AchievementListData;
|
||||
|
||||
/**
|
||||
* @author socrates
|
||||
*
|
||||
*/
|
||||
public class NodeAchievement extends NodeList {
|
||||
|
||||
public NodeAchievement(){
|
||||
super("achievement");
|
||||
}
|
||||
|
||||
public NodeAchievement(AchievementListData ach){
|
||||
super("achievement");
|
||||
|
||||
this.childNodes.add(new NodeText("name", ach.getName()));
|
||||
this.childNodes.add(new NodeText("description", ach.getDescription()));
|
||||
this.childNodes.add(new NodeText("category", ach.getCategory()));
|
||||
this.childNodes.add(new NodeText("stat", ach.getKey()));
|
||||
this.childNodes.add(new NodeText("value", ach.getValue()));
|
||||
this.childNodes.add(new NodeText("maxawards", ach.getMaxawards()));
|
||||
this.childNodes.add(new NodeText("commands", ach.commands.toString()));
|
||||
this.attributes.put("enabled", String.valueOf(ach.isEnabled()));
|
||||
}
|
||||
}
|
||||
28
src/de/sockenklaus/XmlStats/Objects/NodeAchievements.java
Normal file
28
src/de/sockenklaus/XmlStats/Objects/NodeAchievements.java
Normal file
@@ -0,0 +1,28 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package de.sockenklaus.XmlStats.Objects;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import com.nidefawl.Achievements.AchievementListData;
|
||||
|
||||
import de.sockenklaus.XmlStats.Datasource.AchievementsDS;
|
||||
|
||||
/**
|
||||
* @author socrates
|
||||
*
|
||||
*/
|
||||
public class NodeAchievements extends NodeArray {
|
||||
|
||||
public NodeAchievements(){
|
||||
super("achievements");
|
||||
AchievementsDS ads = new AchievementsDS();
|
||||
|
||||
HashMap<String, AchievementListData> achList = ads.getAchievementsList();
|
||||
|
||||
for(String achName : achList.keySet()){
|
||||
this.childNodes.add(new NodeAchievement(achList.get(achName)));
|
||||
}
|
||||
}
|
||||
}
|
||||
24
src/de/sockenklaus/XmlStats/Objects/NodeArray.java
Normal file
24
src/de/sockenklaus/XmlStats/Objects/NodeArray.java
Normal file
@@ -0,0 +1,24 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package de.sockenklaus.XmlStats.Objects;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
/**
|
||||
* @author socrates
|
||||
*
|
||||
*/
|
||||
public abstract class NodeArray extends NodeList {
|
||||
|
||||
public NodeArray(String tagName){
|
||||
super(tagName);
|
||||
}
|
||||
|
||||
public Element getXml(Document doc){
|
||||
this.attributes.put("count", String.valueOf(this.childNodes.size()));
|
||||
|
||||
return super.getXml(doc);
|
||||
}
|
||||
}
|
||||
31
src/de/sockenklaus/XmlStats/Objects/NodeCategories.java
Normal file
31
src/de/sockenklaus/XmlStats/Objects/NodeCategories.java
Normal file
@@ -0,0 +1,31 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package de.sockenklaus.XmlStats.Objects;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import de.sockenklaus.XmlStats.Datasource.UserstatsDS;
|
||||
|
||||
/**
|
||||
* @author socrates
|
||||
*
|
||||
*/
|
||||
public class NodeCategories extends NodeArray {
|
||||
|
||||
public NodeCategories(){
|
||||
super("categories");
|
||||
}
|
||||
/**
|
||||
* @param tagName
|
||||
*/
|
||||
public NodeCategories(String userName) {
|
||||
this();
|
||||
HashMap<String, HashMap<String, Integer>> userStat = UserstatsDS.getStats(userName);
|
||||
|
||||
for(String catName : userStat.keySet()){
|
||||
NodeCategory node_cat = new NodeCategory(catName, userStat.get(catName));
|
||||
this.appendChild(node_cat);
|
||||
}
|
||||
}
|
||||
}
|
||||
24
src/de/sockenklaus/XmlStats/Objects/NodeCategory.java
Normal file
24
src/de/sockenklaus/XmlStats/Objects/NodeCategory.java
Normal file
@@ -0,0 +1,24 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package de.sockenklaus.XmlStats.Objects;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
/**
|
||||
* @author socrates
|
||||
*
|
||||
*/
|
||||
public class NodeCategory extends NodeList {
|
||||
|
||||
/**
|
||||
* @param category
|
||||
*/
|
||||
public NodeCategory(String catName, HashMap<String, Integer> category) {
|
||||
super("category");
|
||||
|
||||
this.appendChild(new NodeText("name", catName));
|
||||
this.appendChild(new NodeItems(category));
|
||||
}
|
||||
|
||||
}
|
||||
22
src/de/sockenklaus/XmlStats/Objects/NodeItem.java
Normal file
22
src/de/sockenklaus/XmlStats/Objects/NodeItem.java
Normal file
@@ -0,0 +1,22 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package de.sockenklaus.XmlStats.Objects;
|
||||
|
||||
/**
|
||||
* @author socrates
|
||||
*
|
||||
*/
|
||||
public class NodeItem extends NodeList {
|
||||
|
||||
/**
|
||||
* @param varName
|
||||
* @param i
|
||||
*/
|
||||
public NodeItem(String varName, int value) {
|
||||
super("item");
|
||||
|
||||
this.appendChild(new NodeText("name", varName));
|
||||
this.appendChild(new NodeText("value", value));
|
||||
}
|
||||
}
|
||||
25
src/de/sockenklaus/XmlStats/Objects/NodeItems.java
Normal file
25
src/de/sockenklaus/XmlStats/Objects/NodeItems.java
Normal file
@@ -0,0 +1,25 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package de.sockenklaus.XmlStats.Objects;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
|
||||
/**
|
||||
* @author socrates
|
||||
*
|
||||
*/
|
||||
public class NodeItems extends NodeArray {
|
||||
|
||||
/**
|
||||
* @param category
|
||||
*/
|
||||
public NodeItems(HashMap<String, Integer> category) {
|
||||
super("items");
|
||||
|
||||
for(String varName : category.keySet()){
|
||||
this.appendChild(new NodeItem(varName, category.get(varName)));
|
||||
}
|
||||
}
|
||||
}
|
||||
36
src/de/sockenklaus/XmlStats/Objects/NodeList.java
Normal file
36
src/de/sockenklaus/XmlStats/Objects/NodeList.java
Normal file
@@ -0,0 +1,36 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package de.sockenklaus.XmlStats.Objects;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
/**
|
||||
* @author socrates
|
||||
*
|
||||
*/
|
||||
public class NodeList extends Node {
|
||||
protected ArrayList<Node> childNodes;
|
||||
|
||||
public NodeList(String tagName){
|
||||
this.childNodes = new ArrayList<Node>();
|
||||
this.tagName = tagName;
|
||||
}
|
||||
|
||||
public void appendChild(Node child){
|
||||
this.childNodes.add(child);
|
||||
}
|
||||
|
||||
public Element getXml(Document doc){
|
||||
Element result = super.getXml(doc);
|
||||
|
||||
for(Node node : this.childNodes){
|
||||
result.appendChild(node.getXml(doc));
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
43
src/de/sockenklaus/XmlStats/Objects/NodeText.java
Normal file
43
src/de/sockenklaus/XmlStats/Objects/NodeText.java
Normal file
@@ -0,0 +1,43 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package de.sockenklaus.XmlStats.Objects;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
/**
|
||||
* @author socrates
|
||||
*
|
||||
*/
|
||||
public class NodeText extends Node {
|
||||
|
||||
protected String textContent;
|
||||
|
||||
public NodeText(String tagName){
|
||||
this.tagName = tagName;
|
||||
}
|
||||
|
||||
public NodeText(String tagName, String textContent){
|
||||
this(tagName);
|
||||
this.textContent = textContent;
|
||||
}
|
||||
|
||||
public NodeText(String tagName, Integer intContent) {
|
||||
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);
|
||||
|
||||
if (!this.textContent.isEmpty()) result.setTextContent(this.textContent);
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
35
src/de/sockenklaus/XmlStats/Objects/NodeUser.java
Normal file
35
src/de/sockenklaus/XmlStats/Objects/NodeUser.java
Normal file
@@ -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!");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
20
src/de/sockenklaus/XmlStats/Objects/NodeUserAchievement.java
Normal file
20
src/de/sockenklaus/XmlStats/Objects/NodeUserAchievement.java
Normal file
@@ -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()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package de.sockenklaus.XmlStats.Objects;
|
||||
|
||||
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 NodeUserAchievements extends NodeArray {
|
||||
public NodeUserAchievements(String userName) throws XmlStatsException{
|
||||
super("achivements");
|
||||
AchievementsDS ads = new AchievementsDS();
|
||||
|
||||
if (Datasource.userExists(userName)){
|
||||
PlayerAchievement pa = ads.getUserAchievement(userName);
|
||||
|
||||
for(String paName : pa.achievements.keySet()){
|
||||
this.childNodes.add(new NodeUserAchievement(paName, pa.get(paName)));
|
||||
}
|
||||
}
|
||||
else throw new XmlStatsException("The given username is not valid.");
|
||||
}
|
||||
}
|
||||
20
src/de/sockenklaus/XmlStats/Objects/NodeUsers.java
Normal file
20
src/de/sockenklaus/XmlStats/Objects/NodeUsers.java
Normal file
@@ -0,0 +1,20 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package de.sockenklaus.XmlStats.Objects;
|
||||
|
||||
/**
|
||||
* @author socrates
|
||||
*
|
||||
*/
|
||||
public class NodeUsers extends NodeArray {
|
||||
|
||||
/**
|
||||
* @param tagName
|
||||
*/
|
||||
public NodeUsers() {
|
||||
super("users");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) [2011] [Pascal K<EFBFBD>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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) [2011] [Pascal K<EFBFBD>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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) [2011] [Pascal K<EFBFBD>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,11 @@ 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 com.nidefawl.Achievements.Achievements;
|
||||
import com.nidefawl.Stats.Stats;
|
||||
import terranetworkorg.Stats.Stats;
|
||||
import com.nijikokun.register.Register;
|
||||
import com.nijikokun.register.payment.Methods;
|
||||
|
||||
@@ -177,8 +175,10 @@ public class XmlStats extends JavaPlugin {
|
||||
}
|
||||
|
||||
protected void hookStats(){
|
||||
Plugin StatsTemp = getServer().getPluginManager().getPlugin("Stats");
|
||||
Plugin StatsTemp = getServer().getPluginManager().getPlugin("Stats 2.0");
|
||||
LogDebug("Got Plugin \"Stats 2.0\"");
|
||||
Webserver webserver = (Webserver)XmlStatsRegistry.get("webserver");
|
||||
LogDebug("Got webserver-object");
|
||||
|
||||
if(this.checkStats()){
|
||||
XmlStatsRegistry.put("stats", (Stats)StatsTemp);
|
||||
@@ -196,9 +196,15 @@ public class XmlStats extends JavaPlugin {
|
||||
* @return true, if is stats hooked
|
||||
*/
|
||||
public boolean checkStats(){
|
||||
Plugin StatsTemp = getServer().getPluginManager().getPlugin("Stats");
|
||||
LogDebug("Stats 2.0? Are you there?");
|
||||
Plugin StatsTemp = getServer().getPluginManager().getPlugin("Stats 2.0");
|
||||
LogDebug("Got object \"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()){
|
||||
LogDebug("terranetworkorg.Stats.Stats is enabled.");
|
||||
return true;
|
||||
}
|
||||
LogDebug("terranetworkorg.Stats.Stats is not enabled.");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -254,12 +260,14 @@ public class XmlStats extends JavaPlugin {
|
||||
protected void reload() {
|
||||
this.onDisable();
|
||||
this.onEnable();
|
||||
|
||||
}
|
||||
private void registerEvents(){
|
||||
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);
|
||||
private void registerEvents(){
|
||||
LogDebug("Trying to register ServerListener");
|
||||
XmlStatsServerListener listener = new XmlStatsServerListener(this);
|
||||
LogDebug("Listener-object created.");
|
||||
|
||||
getServer().getPluginManager().registerEvents(listener, this);
|
||||
LogDebug("Event registered.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,15 +3,16 @@
|
||||
*/
|
||||
package de.sockenklaus.XmlStats;
|
||||
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.server.PluginDisableEvent;
|
||||
import org.bukkit.event.server.PluginEnableEvent;
|
||||
import org.bukkit.event.server.ServerListener;
|
||||
|
||||
/**
|
||||
* @author socrates
|
||||
*
|
||||
*/
|
||||
public class XmlStatsServerListener extends ServerListener {
|
||||
public class XmlStatsServerListener implements Listener {
|
||||
private XmlStats plugin;
|
||||
|
||||
public XmlStatsServerListener(XmlStats plugin){
|
||||
@@ -40,8 +41,12 @@ public class XmlStatsServerListener extends ServerListener {
|
||||
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPluginEnable(PluginEnableEvent event){
|
||||
if(this.identifyPlugin(event, "stats")){
|
||||
XmlStats.LogDebug("onPluginEnable fired");
|
||||
|
||||
if(this.identifyPlugin(event, "stats 2.0")){
|
||||
XmlStats.LogDebug("Stats 2.0 fired the event");
|
||||
this.plugin.hookStats();
|
||||
}
|
||||
if(this.identifyPlugin(event, "achievements")){
|
||||
|
||||
@@ -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.NodeAchievements;
|
||||
|
||||
/**
|
||||
* @author socrates
|
||||
@@ -24,16 +21,8 @@ public class AchievementsList extends XmlWorker {
|
||||
*/
|
||||
@Override
|
||||
protected Element getXml(Map<String, List<String>> parameters) {
|
||||
HashMap<String, AchievementListData> 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;
|
||||
NodeAchievements ach = new NodeAchievements();
|
||||
return ach.getXml(this.doc);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
@@ -51,41 +40,4 @@ public class AchievementsList extends XmlWorker {
|
||||
protected Element getUserXml(List<String> playerList, Map<String, List<String>> 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");
|
||||
|
||||
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);
|
||||
|
||||
return elem_ach;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
@@ -33,27 +34,6 @@ public class UserAchievements extends XmlWorker {
|
||||
throw new XmlStatsException("No data provided with this query!");
|
||||
}
|
||||
|
||||
private Element getUserAchievement(String userName){
|
||||
Element elem_player = this.doc.createElement("user");
|
||||
elem_player.appendChild(getTextElem("name", userName));
|
||||
|
||||
PlayerAchievement pa = achDS.getUserAchievement(userName);
|
||||
|
||||
Element elem_achs = this.doc.createElement("achievements");
|
||||
elem_achs.setAttribute("count", String.valueOf(pa.achievements.size()));
|
||||
|
||||
for(String achName : pa.achievements.keySet()){
|
||||
Element elem_ach = this.doc.createElement("achievement");
|
||||
elem_ach.appendChild(getTextElem("name", achName));
|
||||
elem_ach.appendChild(getTextElem("count", pa.achievements.get(achName).getCount()));
|
||||
|
||||
elem_achs.appendChild(elem_ach);
|
||||
}
|
||||
elem_player.appendChild(elem_achs);
|
||||
|
||||
return elem_player;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getSumXml(java.util.List, java.util.Map)
|
||||
*/
|
||||
@@ -66,16 +46,16 @@ public class UserAchievements extends XmlWorker {
|
||||
* @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getUserXml(java.util.List, java.util.Map)
|
||||
*/
|
||||
@Override
|
||||
protected Element getUserXml(List<String> userList, Map<String, List<String>> parameters) {
|
||||
Element elem_users = this.doc.createElement("users");
|
||||
elem_users.setAttribute("count", String.valueOf(userList.size()));
|
||||
protected Element getUserXml(List<String> userList, Map<String, List<String>> parameters) throws XmlStatsException{
|
||||
NodeUsers node_users = new NodeUsers();
|
||||
|
||||
for(String userName : userList){
|
||||
|
||||
elem_users.appendChild(this.getUserAchievement(userName));
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) [2011] [Pascal K<EFBFBD>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
|
||||
@@ -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<String> playerList, Map<String, List<String>> 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))));
|
||||
NodeUser node_user = new NodeUser(userName);
|
||||
node_user.appendChild(new NodeText("balance", moneyDS.getBalance(userName)));
|
||||
|
||||
elem_users.appendChild(elem_user);
|
||||
node_users.appendChild(node_user);
|
||||
}
|
||||
|
||||
return elem_users;
|
||||
return node_users.getXml(this.doc);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
@@ -68,23 +68,19 @@ public class UserBalances extends XmlWorker {
|
||||
@Override
|
||||
protected Element getSumXml(List<String> userList, Map<String, List<String>> 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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) [2011] [Pascal K<EFBFBD>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
|
||||
@@ -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<String, List<String>> parameters) {
|
||||
public Element getXml(Map<String, List<String>> 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<String> onlinePlayerNames = new ArrayList<String>();
|
||||
|
||||
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<String> playerList, Map<String, List<String>> parameters) {
|
||||
protected Element getSumXml(List<String> playerList, Map<String, List<String>> 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<String> playerList, Map<String, List<String>> parameters) {
|
||||
protected Element getUserXml(List<String> playerList, Map<String, List<String>> parameters) throws XmlStatsException {
|
||||
return this.getXml(parameters);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) [2011] [Pascal K<EFBFBD>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
|
||||
@@ -14,20 +14,19 @@
|
||||
*/
|
||||
package de.sockenklaus.XmlStats.XmlWorkers;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.List;
|
||||
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
import com.nidefawl.Stats.ItemResolver.hModItemResolver;
|
||||
import com.nidefawl.Stats.datasource.Category;
|
||||
import com.nidefawl.Stats.datasource.PlayerStat;
|
||||
|
||||
import de.sockenklaus.XmlStats.Datasource.UserstatsDS;
|
||||
import de.sockenklaus.XmlStats.Exceptions.XmlStatsException;
|
||||
import de.sockenklaus.XmlStats.Objects.NodeCategories;
|
||||
import de.sockenklaus.XmlStats.Objects.NodeCategory;
|
||||
import de.sockenklaus.XmlStats.Objects.NodeList;
|
||||
import de.sockenklaus.XmlStats.Objects.NodeUser;
|
||||
import de.sockenklaus.XmlStats.Objects.NodeUsers;
|
||||
|
||||
// TODO: Auto-generated Javadoc
|
||||
/**
|
||||
@@ -35,19 +34,6 @@ import de.sockenklaus.XmlStats.Exceptions.XmlStatsException;
|
||||
*/
|
||||
public class UserStats extends XmlWorker {
|
||||
|
||||
/** The stats ds. */
|
||||
private UserstatsDS statsDS;
|
||||
private hModItemResolver itemResolver;
|
||||
private String[] resolveCats;
|
||||
|
||||
/**
|
||||
* Instantiates a new xml worker userstats.
|
||||
*/
|
||||
public UserStats(){
|
||||
this.statsDS = new UserstatsDS();
|
||||
itemResolver = new hModItemResolver(new File(statsDS.getDataFolder(),"items.txt"));
|
||||
resolveCats = new String[]{"blockdestroy", "blockcreate", "itemdrop", "itempickup"};
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getXML(java.util.Map)
|
||||
@@ -56,134 +42,52 @@ public class UserStats extends XmlWorker {
|
||||
throw new XmlStatsException("No data provided with this query!");
|
||||
}
|
||||
|
||||
/**
|
||||
* Build a XML subtree for the given player.
|
||||
*
|
||||
* @param playerName the player name
|
||||
* @return Returns a XML subtree for the given playerName.
|
||||
* @paramthis.doc thethis.doc
|
||||
*/
|
||||
private Element getUserElement(String playerName){
|
||||
PlayerStat player_stats = statsDS.getPlayerStat(playerName);
|
||||
|
||||
Element elem_player = this.doc.createElement("user");
|
||||
Element elem_cats = this.doc.createElement("categories");
|
||||
elem_cats.setAttribute("count", String.valueOf(player_stats.getCats().size()));
|
||||
|
||||
elem_player.appendChild(getTextElem("name", playerName));
|
||||
elem_player.appendChild(elem_cats);
|
||||
|
||||
for(String catName : player_stats.getCats()){
|
||||
Category cat = player_stats.get(catName);
|
||||
Element elem_cat = this.doc.createElement("category");
|
||||
Element elem_items = this.doc.createElement("items");
|
||||
elem_items.setAttribute("count", String.valueOf(cat.stats.size()));
|
||||
|
||||
elem_cat.appendChild(getTextElem("name", catName));
|
||||
elem_cat.appendChild(elem_items);
|
||||
elem_cats.appendChild(elem_cat);
|
||||
|
||||
for(String valName : cat.stats.keySet()){
|
||||
Element elem_item = getItemElem(valName, cat.get(valName));
|
||||
|
||||
if(Arrays.asList(resolveCats).contains(catName)){
|
||||
elem_item.setAttribute("id", String.valueOf(itemResolver.getItem(valName)));
|
||||
}
|
||||
|
||||
elem_items.appendChild(elem_item);
|
||||
}
|
||||
}
|
||||
return elem_player;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the added up stats element.
|
||||
*
|
||||
* @return the added up stats element
|
||||
*/
|
||||
private Element getAddedUpStatsElement(List<String> playerList){
|
||||
HashMap<String, HashMap<String, Integer>> addedStats = statsDS.getAddedStats(playerList);
|
||||
Element elem_stats = this.doc.createElement("stats");
|
||||
Element elem_cats = this.doc.createElement("categories");
|
||||
elem_cats.setAttribute("count", String.valueOf(addedStats.size()));
|
||||
|
||||
elem_stats.appendChild(elem_cats);
|
||||
|
||||
for (String catName : addedStats.keySet()){
|
||||
Element elem_cat = this.doc.createElement("category");
|
||||
Element elem_items = this.doc.createElement("items");
|
||||
elem_items.setAttribute("count", String.valueOf(addedStats.get(catName).size()));
|
||||
|
||||
elem_cat.appendChild(getTextElem("name", catName));
|
||||
elem_cat.appendChild(elem_items);
|
||||
elem_cats.appendChild(elem_cat);
|
||||
|
||||
for(String entryName : addedStats.get(catName).keySet()){
|
||||
Element elem_item = this.getItemElem(entryName, addedStats.get(catName).get(entryName));
|
||||
|
||||
if(Arrays.asList(resolveCats).contains(catName)){
|
||||
elem_item.setAttribute("id", String.valueOf(itemResolver.getItem(entryName)));
|
||||
}
|
||||
|
||||
elem_items.appendChild(elem_item);
|
||||
}
|
||||
elem_cat.appendChild(elem_items);
|
||||
}
|
||||
|
||||
return elem_stats;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the item elem.
|
||||
*
|
||||
* @param key the key
|
||||
* @param value the value
|
||||
* @return the item elem
|
||||
*/
|
||||
private Element getItemElem(String key, int value){
|
||||
Element elem_item = this.doc.createElement("item");
|
||||
|
||||
elem_item.appendChild(getTextElem("name", key));
|
||||
elem_item.appendChild(getTextElem("value", String.valueOf(value)));
|
||||
|
||||
return elem_item;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getSumXml(java.util.List, java.util.Map)
|
||||
*/
|
||||
@Override
|
||||
protected Element getSumXml(List<String> playerList, Map<String, List<String>> parameters) {
|
||||
Element elem_sum = this.doc.createElement("sum");
|
||||
Element elem_users = this.doc.createElement("users");
|
||||
elem_users.setAttribute("count", String.valueOf(playerList.size()));
|
||||
protected Element getSumXml(List<String> playerList, Map<String, List<String>> parameters) throws XmlStatsException {
|
||||
NodeList node_sum = new NodeList("sum");
|
||||
NodeList node_stats = new NodeList("stats");
|
||||
NodeUsers node_users = new NodeUsers();
|
||||
NodeCategories node_cats = new NodeCategories();
|
||||
|
||||
for (String userName : playerList){
|
||||
Element elem_user = this.doc.createElement("user");
|
||||
elem_user.appendChild(getTextElem("name", userName));
|
||||
|
||||
elem_users.appendChild(elem_user);
|
||||
for(String userName : playerList){
|
||||
node_users.appendChild(new NodeUser(userName));
|
||||
}
|
||||
|
||||
elem_sum.appendChild(elem_users);
|
||||
elem_sum.appendChild(this.getAddedUpStatsElement(playerList));
|
||||
HashMap<String, HashMap<String, Integer>> addedStats = UserstatsDS.getAddedStats(playerList);
|
||||
|
||||
return elem_sum;
|
||||
for(String catName : addedStats.keySet()){
|
||||
NodeCategory node_cat = new NodeCategory(catName, addedStats.get(catName));
|
||||
|
||||
node_cats.appendChild(node_cat);
|
||||
}
|
||||
|
||||
node_sum.appendChild(node_users);
|
||||
node_stats.appendChild(node_cats);
|
||||
node_sum.appendChild(node_stats);
|
||||
|
||||
return node_sum.getXml(this.doc);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see de.sockenklaus.XmlStats.XmlWorkers.XmlWorker#getUserXml(java.util.List, java.util.Map)
|
||||
*/
|
||||
@Override
|
||||
protected Element getUserXml(List<String> playerList, Map<String, List<String>> parameters) {
|
||||
Element elem_users = this.doc.createElement("users");
|
||||
elem_users.setAttribute("count", String.valueOf(playerList.size()));
|
||||
protected Element getUserXml(List<String> playerList, Map<String, List<String>> parameters) throws XmlStatsException {
|
||||
NodeUsers node_users = new NodeUsers();
|
||||
|
||||
for(String playerName : playerList){
|
||||
elem_users.appendChild(this.getUserElement(playerName));
|
||||
for(String userName : playerList){
|
||||
NodeUser node_user = new NodeUser(userName);
|
||||
NodeCategories node_cats = new NodeCategories(userName);
|
||||
|
||||
node_user.appendChild(node_cats);
|
||||
node_users.appendChild(node_user);
|
||||
}
|
||||
|
||||
return elem_users;
|
||||
return node_users.getXml(this.doc);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) [2011] [Pascal K<EFBFBD>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
|
||||
|
||||
Reference in New Issue
Block a user