Add the Jail Vote feature back in, with lots of unit testing. Closes #8

This commit is contained in:
graywolf336
2015-02-12 21:29:09 -06:00
parent b23bdaa89b
commit d205a35d0a
19 changed files with 813 additions and 21 deletions

View File

@ -0,0 +1,94 @@
package com.graywolf336.jail.beans;
import java.util.ArrayList;
import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
/**
* Represents a vote to jail someone.
*
* @author graywolf336
* @since 3.0.0
* @version 1.0.0
*/
public class JailVote {
private String name;
private ArrayList<UUID> voters;
private int yes, no;
/**
* Initiates a vote to jail someone, with the vote being for the given player.
*
* @param player the name of the player the vote is for
*/
public JailVote(String player) {
this.name = player;
this.voters = new ArrayList<UUID>();
this.yes = 0;
this.no = 0;
}
/** The name of the player the vote is for. */
public String getPlayerName() {
return this.name;
}
/**
* Gets the player who the vote is for, from the player name.
*
* @return the player who the vote is for to jail
*/
@SuppressWarnings("deprecation")
public Player getPlayer() {
return Bukkit.getPlayer(name);
}
/** Checks if the player with the given id has voted already. */
public boolean hasVoted(UUID id) {
return this.voters.contains(id);
}
/**
* Method to vote yes, providing the uuid of the person doing the voting.
*
* @param id the uuid of the voter
* @return true if it was success, false if they already voted
*/
public boolean voteYes(UUID id) {
if(this.voters.contains(id)) {
return false;
}else {
this.voters.add(id);
this.yes++;
return true;
}
}
/**
* Method to vote no, providing the uuid of the person doing the voting.
*
* @param id the uuid of the voter
* @return true if it was success, false if they already voted
*/
public boolean voteNo(UUID id) {
if(this.voters.contains(id)) {
return false;
}else {
this.voters.add(id);
this.no++;
return true;
}
}
/** Get the amount of yes votes. */
public int getYesVotes() {
return this.yes;
}
/** Get the amount of no votes. */
public int getNoVotes() {
return this.no;
}
}