diff --git a/.classpath b/.classpath
new file mode 100644
index 0000000..8fe0193
--- /dev/null
+++ b/.classpath
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/.project b/.project
new file mode 100644
index 0000000..2a90c04
--- /dev/null
+++ b/.project
@@ -0,0 +1,23 @@
+
+
+ ScoreKeeper
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+ org.eclipse.m2e.core.maven2Nature
+
+
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..f686e69
--- /dev/null
+++ b/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,5 @@
+#Sun Feb 19 04:11:12 PST 2012
+eclipse.preferences.version=1
+encoding//src/main/java=UTF-8
+encoding//src/main/resources=UTF-8
+encoding/=UTF-8
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..b83fc05
--- /dev/null
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,6 @@
+#Sun Feb 19 04:11:12 PST 2012
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..069baa2
--- /dev/null
+++ b/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,5 @@
+#Sun Feb 19 04:11:11 PST 2012
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/Readme.txt b/Readme.txt
new file mode 100644
index 0000000..f6f4713
--- /dev/null
+++ b/Readme.txt
@@ -0,0 +1,12 @@
+Commands:
+/score-get [playerName] - Displays the player's score.
+/score-add [playerName] - Add amount points to the player's score.
+/score-subtract [playerName] - Subtracts amount points from the player's score.
+/score-reset [playerName] - Resets the player's score to 0.
+/score-archive [playerName] - Saves the player's score to a "High Scores" table and resets their current score to 0.
+
+NOTES:
+* All commands will use the executing player in place of [playerName] if it is omitted.
+* Permissions support is coming AFTER I get archive to work.
+* The commands aside from get are intended for admins and whatnot as some other plugin should be using the methods instead of letting player's execute commands.
+
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..0d0cfe9
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,46 @@
+
+
+ 4.0.0
+ com.majinnaibu.bukkitplugins
+ ScoreKeeper
+ jar
+ 0.2-SNAPSHOT
+ bukkitplugin
+ http://maven.apache.org
+
+ UTF-8
+
+
+
+ org.bukkit
+ bukkit
+ 0.0.1-SNAPSHOT
+ jar
+ compile
+
+
+ junit
+ junit
+ 3.8.1
+ test
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 1.6
+ 1.6
+
+
+
+
+
+
+ bukkit-repo
+ http://repo.bukkit.org/artifactory/repo
+
+
+
diff --git a/src/main/java/com/majinnaibu/bukkitplugins/scorekeeper/ScoreKeeperPlugin.java b/src/main/java/com/majinnaibu/bukkitplugins/scorekeeper/ScoreKeeperPlugin.java
new file mode 100644
index 0000000..953283a
--- /dev/null
+++ b/src/main/java/com/majinnaibu/bukkitplugins/scorekeeper/ScoreKeeperPlugin.java
@@ -0,0 +1,65 @@
+package com.majinnaibu.bukkitplugins.scorekeeper;
+
+import java.util.HashMap;
+import java.util.logging.Logger;
+
+import org.bukkit.entity.Player;
+import org.bukkit.plugin.PluginDescriptionFile;
+import org.bukkit.plugin.java.JavaPlugin;
+
+import com.majinnaibu.bukkitplugins.scorekeeper.commands.ScoreAddCommand;
+import com.majinnaibu.bukkitplugins.scorekeeper.commands.ScoreArchiveCommand;
+import com.majinnaibu.bukkitplugins.scorekeeper.commands.ScoreGetCommand;
+import com.majinnaibu.bukkitplugins.scorekeeper.commands.ScoreResetCommand;
+import com.majinnaibu.bukkitplugins.scorekeeper.commands.ScoreSubtractCommand;
+
+public class ScoreKeeperPlugin extends JavaPlugin {
+ private final HashMap _playerScores = new HashMap();
+
+ public final Logger log = Logger.getLogger("Minecraft");
+
+
+ @Override
+ public void onDisable() {
+ //TODO: save score data to file
+ }
+
+ @Override
+ public void onEnable() {
+ //PluginManager pm = getServer().getPluginManager();
+ //pm.registerEvent(Event.Type.BLOCK_PHYSICS, new BlockListener(){}, Priority.Normal, this);
+ getCommand("score-get").setExecutor(new ScoreGetCommand(this));
+ getCommand("score-add").setExecutor(new ScoreAddCommand(this));
+ getCommand("score-subtract").setExecutor(new ScoreSubtractCommand(this));
+ getCommand("score-reset").setExecutor(new ScoreResetCommand(this));
+ getCommand("score-archive").setExecutor(new ScoreArchiveCommand(this));
+
+ //TODO: load score data from file
+
+ PluginDescriptionFile pdFile = this.getDescription();
+ log.info(pdFile.getName() + " version " + pdFile.getVersion() + " is enabled!");
+ }
+
+ public int getPlayerScore(Player player) {
+ if(!_playerScores.containsKey(player)){
+ _playerScores.put(player, 0);
+ }
+
+ return _playerScores.get(player);
+ }
+
+ public void addScore(Player player, int amount) {
+ int score = getPlayerScore(player);
+ _playerScores.put(player, score + amount);
+ }
+
+ public void subtractScore(Player player, int amount) {
+ int score = getPlayerScore(player);
+ _playerScores.put(player, score - amount);
+ }
+
+ public void resetPlayerScore(Player targetPlayer) {
+ // TODO Auto-generated method stub
+
+ }
+}
diff --git a/src/main/java/com/majinnaibu/bukkitplugins/scorekeeper/commands/ScoreAddCommand.java b/src/main/java/com/majinnaibu/bukkitplugins/scorekeeper/commands/ScoreAddCommand.java
new file mode 100644
index 0000000..a275def
--- /dev/null
+++ b/src/main/java/com/majinnaibu/bukkitplugins/scorekeeper/commands/ScoreAddCommand.java
@@ -0,0 +1,75 @@
+package com.majinnaibu.bukkitplugins.scorekeeper.commands;
+
+import org.bukkit.ChatColor;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandExecutor;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+import com.majinnaibu.bukkitplugins.scorekeeper.ScoreKeeperPlugin;
+
+public class ScoreAddCommand implements CommandExecutor {
+ private final ScoreKeeperPlugin _plugin;
+
+ public ScoreAddCommand(ScoreKeeperPlugin scoreKeeperPlugin) {
+ _plugin = scoreKeeperPlugin;
+ }
+
+ @Override
+ public boolean onCommand(
+ CommandSender sender,
+ Command command,
+ String label,
+ String[] split
+ ) {
+ boolean rcon = !(sender instanceof Player);
+ int amount = 0;
+ Player targetPlayer = null;
+
+ if(split.length == 1){
+ if(rcon){
+ echoUsage(sender, rcon);
+ return true;
+ }else{
+ targetPlayer = (Player)sender;
+ try{
+ amount = Integer.parseInt(split[0]);
+ }catch(NumberFormatException ex){
+ echoError(sender, rcon, "amount must be an integer");
+ return true;
+ }
+ }
+ }else if(split.length == 2){
+ targetPlayer = _plugin.getServer().getPlayer(split[0]);
+ if(targetPlayer == null){
+ echoError(sender, rcon, "Can't find a player with that name");
+ return true;
+ }
+
+ try{
+ amount = Integer.parseInt(split[1]);
+ }catch(NumberFormatException ex){
+ echoError(sender, rcon, "amount must be an integer");
+ return true;
+ }
+ }else{
+ echoUsage(sender, rcon);
+ return true;
+ }
+
+ _plugin.addScore(targetPlayer, amount);
+ return true;
+ }
+
+ private void echoError(CommandSender sender, boolean rcon, String string) {
+ sender.sendMessage("[" + ChatColor.RED + "ScoreKeeper" + ChatColor.WHITE + "] " + string);
+ }
+
+ private void echoUsage(CommandSender sender, boolean rcon) {
+ if(rcon){
+ sender.sendMessage(ChatColor.DARK_PURPLE + "Usage" + ChatColor.WHITE + ": score-add " + ChatColor.GREEN + " ");
+ }else{
+ sender.sendMessage(ChatColor.DARK_PURPLE + "Usage" + ChatColor.WHITE + ": /score-add " + ChatColor.YELLOW + "[playername] " + ChatColor.GREEN + "");
+ }
+ }
+}
diff --git a/src/main/java/com/majinnaibu/bukkitplugins/scorekeeper/commands/ScoreArchiveCommand.java b/src/main/java/com/majinnaibu/bukkitplugins/scorekeeper/commands/ScoreArchiveCommand.java
new file mode 100644
index 0000000..1d10ccb
--- /dev/null
+++ b/src/main/java/com/majinnaibu/bukkitplugins/scorekeeper/commands/ScoreArchiveCommand.java
@@ -0,0 +1,36 @@
+package com.majinnaibu.bukkitplugins.scorekeeper.commands;
+
+import org.bukkit.ChatColor;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandExecutor;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+import com.majinnaibu.bukkitplugins.scorekeeper.ScoreKeeperPlugin;
+
+public class ScoreArchiveCommand implements CommandExecutor {
+ private final ScoreKeeperPlugin _plugin;
+
+ public ScoreArchiveCommand(ScoreKeeperPlugin scoreKeeperPlugin) {
+ _plugin = scoreKeeperPlugin;
+ }
+
+ @Override
+ public boolean onCommand(
+ CommandSender sender,
+ Command command,
+ String label,
+ String[] split
+ ) {
+ sender.sendMessage("[" + ChatColor.AQUA + "ScoreKeeper" + ChatColor.WHITE + "] archive command unimplemented ");
+
+ if(sender instanceof Player){
+ Player player = (Player) sender;
+ int score = _plugin.getPlayerScore(player);
+ player.sendMessage("[" + ChatColor.AQUA + "ScoreKeeper" + ChatColor.WHITE + "] Your score is " + ChatColor.GREEN + score);
+ return true;
+ }else{
+ return false;
+ }
+ }
+}
diff --git a/src/main/java/com/majinnaibu/bukkitplugins/scorekeeper/commands/ScoreGetCommand.java b/src/main/java/com/majinnaibu/bukkitplugins/scorekeeper/commands/ScoreGetCommand.java
new file mode 100644
index 0000000..8760191
--- /dev/null
+++ b/src/main/java/com/majinnaibu/bukkitplugins/scorekeeper/commands/ScoreGetCommand.java
@@ -0,0 +1,75 @@
+package com.majinnaibu.bukkitplugins.scorekeeper.commands;
+
+import org.bukkit.ChatColor;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandExecutor;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+import com.majinnaibu.bukkitplugins.scorekeeper.ScoreKeeperPlugin;
+
+public class ScoreGetCommand implements CommandExecutor {
+ private final ScoreKeeperPlugin _plugin;
+
+ public ScoreGetCommand(ScoreKeeperPlugin scoreKeeperPlugin) {
+ _plugin = scoreKeeperPlugin;
+ }
+
+ @Override
+ public boolean onCommand(
+ CommandSender sender,
+ Command command,
+ String label,
+ String[] split
+ ) {
+ boolean rcon = !(sender instanceof Player);
+ Player targetPlayer = null;
+
+ if(split.length == 0){
+ if(!rcon){
+ targetPlayer = (Player)sender;
+ }else{
+ echoUsage(sender, rcon);
+ return true; //false;
+ }
+ }else if(split.length == 1){
+ targetPlayer = _plugin.getServer().getPlayer(split[0]);
+ }else if(split.length > 1){
+ echoUsage(sender, rcon);
+ return true; //false;
+ }
+
+ if(targetPlayer == null){
+ echoError(sender, rcon, "Can't find a player with that name");
+ return true;
+ }
+
+ int score = _plugin.getPlayerScore(targetPlayer);
+
+ if(!rcon){
+ if(sender == targetPlayer){
+ targetPlayer.sendMessage("[" + ChatColor.AQUA + "ScoreKeeper" + ChatColor.WHITE + "] Your score is " + ChatColor.GREEN + score);
+ }else{
+ sender.sendMessage("[" + ChatColor.AQUA + "ScoreKeeper" + ChatColor.WHITE + "] " + targetPlayer.getName() + "'s score is " + ChatColor.GREEN + score);
+ }
+
+ return true;
+ }else{
+ sender.sendMessage("[" + ChatColor.AQUA + "ScoreKeeper" + ChatColor.WHITE + "] " + targetPlayer.getName() + "'s score is " + ChatColor.GREEN + score);
+ return true;
+ }
+ }
+
+ private void echoError(CommandSender sender, boolean rcon, String string) {
+ sender.sendMessage("[" + ChatColor.RED + "ScoreKeeper" + ChatColor.WHITE + "] " + string);
+ }
+
+ private void echoUsage(CommandSender sender, boolean rcon) {
+ if(rcon){
+ sender.sendMessage(ChatColor.DARK_PURPLE + "Usage" + ChatColor.WHITE + ": score-get " + ChatColor.GREEN + "");
+ }else{
+ sender.sendMessage(ChatColor.DARK_PURPLE + "Usage" + ChatColor.WHITE + ": /score-get " + ChatColor.YELLOW + "[playername]");
+ }
+
+ }
+}
diff --git a/src/main/java/com/majinnaibu/bukkitplugins/scorekeeper/commands/ScoreResetCommand.java b/src/main/java/com/majinnaibu/bukkitplugins/scorekeeper/commands/ScoreResetCommand.java
new file mode 100644
index 0000000..169ac40
--- /dev/null
+++ b/src/main/java/com/majinnaibu/bukkitplugins/scorekeeper/commands/ScoreResetCommand.java
@@ -0,0 +1,76 @@
+package com.majinnaibu.bukkitplugins.scorekeeper.commands;
+
+import org.bukkit.ChatColor;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandExecutor;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+import com.majinnaibu.bukkitplugins.scorekeeper.ScoreKeeperPlugin;
+
+public class ScoreResetCommand implements CommandExecutor {
+ private final ScoreKeeperPlugin _plugin;
+
+ public ScoreResetCommand(ScoreKeeperPlugin scoreKeeperPlugin) {
+ _plugin = scoreKeeperPlugin;
+ }
+
+ @Override
+ public boolean onCommand(
+ CommandSender sender,
+ Command command,
+ String label,
+ String[] split
+ ) {
+ sender.sendMessage("[" + ChatColor.AQUA + "ScoreKeeper" + ChatColor.WHITE + "] archive command unimplemented ");
+
+ boolean rcon = !(sender instanceof Player);
+ Player targetPlayer = null;
+
+ if(split.length == 1){
+ if(rcon){
+ echoUsage(sender, rcon);
+ return true;
+ }else{
+ targetPlayer = (Player)sender;
+ try{
+
+ }catch(NumberFormatException ex){
+ echoError(sender, rcon, "amount must be an integer");
+ return true;
+ }
+ }
+ }else if(split.length == 2){
+ targetPlayer = _plugin.getServer().getPlayer(split[0]);
+ if(targetPlayer == null){
+ echoError(sender, rcon, "Can't find a player with that name");
+ return true;
+ }
+
+ try{
+
+ }catch(NumberFormatException ex){
+ echoError(sender, rcon, "amount must be an integer");
+ return true;
+ }
+ }else{
+ echoUsage(sender, rcon);
+ return true;
+ }
+
+ _plugin.resetPlayerScore(targetPlayer);
+ return true;
+ }
+
+ private void echoError(CommandSender sender, boolean rcon, String string) {
+ sender.sendMessage("[" + ChatColor.RED + "ScoreKeeper" + ChatColor.WHITE + "] " + string);
+ }
+
+ private void echoUsage(CommandSender sender, boolean rcon) {
+ if(rcon){
+ sender.sendMessage(ChatColor.DARK_PURPLE + "Usage" + ChatColor.WHITE + ": score-reset " + ChatColor.GREEN + "");
+ }else{
+ sender.sendMessage(ChatColor.DARK_PURPLE + "Usage" + ChatColor.WHITE + ": /score-reset " + ChatColor.YELLOW + "[playername]");
+ }
+ }
+}
diff --git a/src/main/java/com/majinnaibu/bukkitplugins/scorekeeper/commands/ScoreSubtractCommand.java b/src/main/java/com/majinnaibu/bukkitplugins/scorekeeper/commands/ScoreSubtractCommand.java
new file mode 100644
index 0000000..bd97c0d
--- /dev/null
+++ b/src/main/java/com/majinnaibu/bukkitplugins/scorekeeper/commands/ScoreSubtractCommand.java
@@ -0,0 +1,75 @@
+package com.majinnaibu.bukkitplugins.scorekeeper.commands;
+
+import org.bukkit.ChatColor;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandExecutor;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+import com.majinnaibu.bukkitplugins.scorekeeper.ScoreKeeperPlugin;
+
+public class ScoreSubtractCommand implements CommandExecutor {
+ private final ScoreKeeperPlugin _plugin;
+
+ public ScoreSubtractCommand(ScoreKeeperPlugin scoreKeeperPlugin) {
+ _plugin = scoreKeeperPlugin;
+ }
+
+ @Override
+ public boolean onCommand(
+ CommandSender sender,
+ Command command,
+ String label,
+ String[] split
+ ) {
+ boolean rcon = !(sender instanceof Player);
+ int amount = 0;
+ Player targetPlayer = null;
+
+ if(split.length == 1){
+ if(rcon){
+ echoUsage(sender, rcon);
+ return true;
+ }else{
+ targetPlayer = (Player)sender;
+ try{
+ amount=Integer.parseInt(split[0]);
+ }catch(NumberFormatException ex){
+ echoError(sender, rcon, "amount must be an integer");
+ return true;
+ }
+ }
+ }else if(split.length == 2){
+ targetPlayer = _plugin.getServer().getPlayer(split[0]);
+ if(targetPlayer == null){
+ echoError(sender, rcon, "Can't find a player with that name");
+ return true;
+ }
+
+ try{
+ amount = Integer.parseInt(split[1]);
+ }catch(NumberFormatException ex){
+ echoError(sender, rcon, "amount must be an integer");
+ return true;
+ }
+ }else{
+ echoUsage(sender, rcon);
+ return true;
+ }
+
+ _plugin.subtractScore(targetPlayer, amount);
+ return true;
+ }
+
+ private void echoError(CommandSender sender, boolean rcon, String string) {
+ sender.sendMessage("[" + ChatColor.RED + "ScoreKeeper" + ChatColor.WHITE + "] " + string);
+ }
+
+ private void echoUsage(CommandSender sender, boolean rcon) {
+ if(rcon){
+ sender.sendMessage(ChatColor.DARK_PURPLE + "Usage" + ChatColor.WHITE + ": score-subtract " + ChatColor.GREEN + " ");
+ }else{
+ sender.sendMessage(ChatColor.DARK_PURPLE + "Usage" + ChatColor.WHITE + ": /score-subtract " + ChatColor.YELLOW + "[playername] " + ChatColor.GREEN + "");
+ }
+ }
+}
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
new file mode 100644
index 0000000..c894174
--- /dev/null
+++ b/src/main/resources/plugin.yml
@@ -0,0 +1,20 @@
+name: ScoreKeeper
+main: com.majinnaibu.bukkit.plugins.scorekeeper.ScoreKeeperPlugin
+version: 0.0a
+commands:
+ score-get:
+ description: Displays the player's score.
+ usage: /score-get [playername]
+ score-add:
+ description: Adds point to the player's score.
+ usage: /score-add [playername]
+ score-subtract:
+ description: Subtracts points from the player's score.
+ usage: /score-subtract [playername]
+ score-reset:
+ description: Resets the player's score
+ usage: /score-reset [playername]
+ score-archive:
+ description: Archives and resets the player's score
+ usage: /score-archive [playername]
+
\ No newline at end of file