New and Improved Scoreboard System

- Scoreboards now AUTO-UPDATE
 - Scoreboards now COME IN COLOR
 - If you want, they can come in EVERY COLOR (Config setting)
 - Scoreboards can be displayed alongside chat output!
 - Prevention of denial of service to SQL via spamming /mctop using a cooldown
 - Added /mccooldown command to show cooldowns for all available skills
This commit is contained in:
riking
2013-09-11 19:42:27 -07:00
parent 89dabaeb43
commit 95f15e68fe
33 changed files with 1539 additions and 590 deletions

View File

@ -188,11 +188,11 @@ public final class SQLDatabaseManager implements DatabaseManager {
return success;
}
public List<PlayerStat> readLeaderboard(String skillName, int pageNumber, int statsPerPage) {
public List<PlayerStat> readLeaderboard(SkillType skill, int pageNumber, int statsPerPage) {
List<PlayerStat> stats = new ArrayList<PlayerStat>();
if (checkConnected()) {
String query = skillName.equalsIgnoreCase("ALL") ? "taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics+fishing" : skillName;
String query = skill == null ? "taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics+fishing" : skill.name().toLowerCase();
ResultSet resultSet = null;
PreparedStatement statement = null;
@ -230,8 +230,8 @@ public final class SQLDatabaseManager implements DatabaseManager {
return stats;
}
public Map<String, Integer> readRank(String playerName) {
Map<String, Integer> skills = new HashMap<String, Integer>();
public Map<SkillType, Integer> readRank(String playerName) {
Map<SkillType, Integer> skills = new HashMap<SkillType, Integer>();
if (checkConnected()) {
ResultSet resultSet;
@ -262,7 +262,7 @@ public final class SQLDatabaseManager implements DatabaseManager {
while (resultSet.next()) {
if (resultSet.getString("user").equalsIgnoreCase(playerName)) {
skills.put(skillType.name(), rank + resultSet.getRow());
skills.put(skillType, rank + resultSet.getRow());
break;
}
}
@ -299,7 +299,7 @@ public final class SQLDatabaseManager implements DatabaseManager {
while (resultSet.next()) {
if (resultSet.getString("user").equalsIgnoreCase(playerName)) {
skills.put("ALL", rank + resultSet.getRow());
skills.put(null, rank + resultSet.getRow());
break;
}
}