This commit is contained in:
2012-03-04 00:58:19 -08:00
parent fcbfefc035
commit 5f8faa1a87
14 changed files with 527 additions and 0 deletions

8
.classpath Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java"/>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>

23
.project Normal file
View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>ScoreKeeper</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>

View File

@@ -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/<project>=UTF-8

View File

@@ -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

View File

@@ -0,0 +1,5 @@
#Sun Feb 19 04:11:11 PST 2012
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1

12
Readme.txt Normal file
View File

@@ -0,0 +1,12 @@
Commands:
/score-get [playerName] - Displays the player's score.
/score-add [playerName] <amount> - Add amount points to the player's score.
/score-subtract [playerName] <amount> - 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.

46
pom.xml Normal file
View File

@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.majinnaibu.bukkitplugins</groupId>
<artifactId>ScoreKeeper</artifactId>
<packaging>jar</packaging>
<version>0.2-SNAPSHOT</version>
<name>bukkitplugin</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.bukkit</groupId>
<artifactId>bukkit</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>bukkit-repo</id>
<url>http://repo.bukkit.org/artifactory/repo</url>
</repository>
</repositories>
</project>

View File

@@ -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<Player, Integer> _playerScores = new HashMap<Player, Integer>();
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
}
}

View File

@@ -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 + "<playername> <amount>");
}else{
sender.sendMessage(ChatColor.DARK_PURPLE + "Usage" + ChatColor.WHITE + ": /score-add " + ChatColor.YELLOW + "[playername] " + ChatColor.GREEN + "<amount>");
}
}
}

View File

@@ -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;
}
}
}

View File

@@ -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 + "<playername>");
}else{
sender.sendMessage(ChatColor.DARK_PURPLE + "Usage" + ChatColor.WHITE + ": /score-get " + ChatColor.YELLOW + "[playername]");
}
}
}

View File

@@ -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 + "<playername>");
}else{
sender.sendMessage(ChatColor.DARK_PURPLE + "Usage" + ChatColor.WHITE + ": /score-reset " + ChatColor.YELLOW + "[playername]");
}
}
}

View File

@@ -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 + "<playername> <amount>");
}else{
sender.sendMessage(ChatColor.DARK_PURPLE + "Usage" + ChatColor.WHITE + ": /score-subtract " + ChatColor.YELLOW + "[playername] " + ChatColor.GREEN + "<amount>");
}
}
}

View File

@@ -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] <amount>
score-subtract:
description: Subtracts points from the player's score.
usage: /score-subtract [playername] <amount>
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]