Fix formatting

(cherry picked from commit 4e36073e6e2dc3aeba087d605cef79fc4a8a9779)
This commit is contained in:
TfT_02 2014-04-14 15:11:58 +02:00
parent b204507a82
commit bfebbd0095
2 changed files with 104 additions and 98 deletions

View File

@ -7,7 +7,6 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.scoreboard.DisplaySlot; import org.bukkit.scoreboard.DisplaySlot;
import org.bukkit.scoreboard.Objective; import org.bukkit.scoreboard.Objective;
@ -81,14 +80,16 @@ public class ScoreboardManager {
skillLabelBuilder.put(type, colors.get(i) + type.getName()); skillLabelBuilder.put(type, colors.get(i) + type.getName());
if (type.getAbility() != null) { if (type.getAbility() != null) {
abilityLabelBuilder.put(type.getAbility(),colors.get(i) + type.getAbility().getName()); abilityLabelBuilder.put(type.getAbility(), colors.get(i) + type.getAbility().getName());
if (type == SkillType.MINING) { if (type == SkillType.MINING) {
abilityLabelBuilder.put(AbilityType.BLAST_MINING, colors.get(i) + AbilityType.BLAST_MINING.getName()); abilityLabelBuilder.put(AbilityType.BLAST_MINING, colors.get(i) + AbilityType.BLAST_MINING.getName());
} }
} }
if (++i == colors.size()) i = 0; if (++i == colors.size()) {
i = 0;
}
} }
} }
else { else {
@ -335,7 +336,7 @@ public class ScoreboardManager {
/** /**
* Gets or creates the power level objective on the main scoreboard. * Gets or creates the power level objective on the main scoreboard.
* <p> * <p/>
* If power levels are disabled, the objective is deleted and null is * If power levels are disabled, the objective is deleted and null is
* returned. * returned.
* *

View File

@ -28,7 +28,6 @@ import com.gmail.nossr50.util.scoreboards.ScoreboardManager.SidebarType;
import org.apache.commons.lang.Validate; import org.apache.commons.lang.Validate;
public class ScoreboardWrapper { public class ScoreboardWrapper {
// Initialization variables // Initialization variables
public final String playerName; public final String playerName;
private final Scoreboard scoreboard; private final Scoreboard scoreboard;
@ -69,6 +68,7 @@ public class ScoreboardWrapper {
} }
public BukkitTask updateTask = null; public BukkitTask updateTask = null;
private class ScoreboardQuickUpdate extends BukkitRunnable { private class ScoreboardQuickUpdate extends BukkitRunnable {
@Override @Override
public void run() { public void run() {
@ -78,6 +78,7 @@ public class ScoreboardWrapper {
} }
public BukkitTask revertTask = null; public BukkitTask revertTask = null;
private class ScoreboardChangeTask extends BukkitRunnable { private class ScoreboardChangeTask extends BukkitRunnable {
@Override @Override
public void run() { public void run() {
@ -87,6 +88,7 @@ public class ScoreboardWrapper {
} }
public BukkitTask cooldownTask = null; public BukkitTask cooldownTask = null;
private class ScoreboardCooldownTask extends BukkitRunnable { private class ScoreboardCooldownTask extends BukkitRunnable {
@Override @Override
public void run() { public void run() {
@ -121,7 +123,8 @@ public class ScoreboardWrapper {
try { try {
cooldownTask.cancel(); cooldownTask.cancel();
} }
catch (Throwable ignored) {} catch (Throwable ignored) {
}
cooldownTask = null; cooldownTask = null;
} }
@ -381,7 +384,8 @@ public class ScoreboardWrapper {
try { try {
updateTask.cancel(); updateTask.cancel();
} }
catch (Throwable ignored) {} // catch NullPointerException and IllegalStateException and any Error; don't care catch (Throwable ignored) {
} // catch NullPointerException and IllegalStateException and any Error; don't care
updateTask = null; updateTask = null;
@ -399,124 +403,125 @@ public class ScoreboardWrapper {
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player); McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
switch (sidebarType) { switch (sidebarType) {
case NONE: case NONE:
break; break;
case SKILL_BOARD: case SKILL_BOARD:
Validate.notNull(targetSkill); Validate.notNull(targetSkill);
if (!targetSkill.isChildSkill()) { if (!targetSkill.isChildSkill()) {
int currentXP = mcMMOPlayer.getSkillXpLevel(targetSkill); int currentXP = mcMMOPlayer.getSkillXpLevel(targetSkill);
sidebarObjective.getScore(ScoreboardManager.LABEL_CURRENT_XP).setScore(currentXP); sidebarObjective.getScore(ScoreboardManager.LABEL_CURRENT_XP).setScore(currentXP);
sidebarObjective.getScore(ScoreboardManager.LABEL_REMAINING_XP).setScore(mcMMOPlayer.getXpToLevel(targetSkill) - currentXP); sidebarObjective.getScore(ScoreboardManager.LABEL_REMAINING_XP).setScore(mcMMOPlayer.getXpToLevel(targetSkill) - currentXP);
}
else {
for (SkillType parentSkill : FamilyTree.getParents(targetSkill)) {
sidebarObjective.getScore(ScoreboardManager.skillLabels.get(parentSkill)).setScore(mcMMOPlayer.getSkillLevel(parentSkill));
}
}
sidebarObjective.getScore(ScoreboardManager.LABEL_LEVEL).setScore(mcMMOPlayer.getSkillLevel(targetSkill));
if (targetSkill.getAbility() != null) {
boolean stopUpdating;
if (targetSkill == SkillType.MINING) {
// Special-Case: Mining has two abilities, both with cooldowns
Score cooldownSB = sidebarObjective.getScore(ScoreboardManager.abilityLabelsSkill.get(AbilityType.SUPER_BREAKER));
Score cooldownBM = sidebarObjective.getScore(ScoreboardManager.abilityLabelsSkill.get(AbilityType.BLAST_MINING));
int secondsSB = Math.max(mcMMOPlayer.calculateTimeRemaining(AbilityType.SUPER_BREAKER), 0);
int secondsBM = Math.max(mcMMOPlayer.calculateTimeRemaining(AbilityType.BLAST_MINING), 0);
cooldownSB.setScore(secondsSB);
cooldownBM.setScore(secondsBM);
stopUpdating = (secondsSB == 0 && secondsBM == 0);
} }
else { else {
AbilityType ability = targetSkill.getAbility(); for (SkillType parentSkill : FamilyTree.getParents(targetSkill)) {
Score cooldown = sidebarObjective.getScore(ScoreboardManager.abilityLabelsSkill.get(ability)); sidebarObjective.getScore(ScoreboardManager.skillLabels.get(parentSkill)).setScore(mcMMOPlayer.getSkillLevel(parentSkill));
}
}
sidebarObjective.getScore(ScoreboardManager.LABEL_LEVEL).setScore(mcMMOPlayer.getSkillLevel(targetSkill));
if (targetSkill.getAbility() != null) {
boolean stopUpdating;
if (targetSkill == SkillType.MINING) {
// Special-Case: Mining has two abilities, both with cooldowns
Score cooldownSB = sidebarObjective.getScore(ScoreboardManager.abilityLabelsSkill.get(AbilityType.SUPER_BREAKER));
Score cooldownBM = sidebarObjective.getScore(ScoreboardManager.abilityLabelsSkill.get(AbilityType.BLAST_MINING));
int secondsSB = Math.max(mcMMOPlayer.calculateTimeRemaining(AbilityType.SUPER_BREAKER), 0);
int secondsBM = Math.max(mcMMOPlayer.calculateTimeRemaining(AbilityType.BLAST_MINING), 0);
cooldownSB.setScore(secondsSB);
cooldownBM.setScore(secondsBM);
stopUpdating = (secondsSB == 0 && secondsBM == 0);
}
else {
AbilityType ability = targetSkill.getAbility();
Score cooldown = sidebarObjective.getScore(ScoreboardManager.abilityLabelsSkill.get(ability));
int seconds = Math.max(mcMMOPlayer.calculateTimeRemaining(ability), 0);
cooldown.setScore(seconds);
stopUpdating = seconds == 0;
}
if (stopUpdating) {
stopCooldownUpdating();
}
else {
startCooldownUpdating();
}
}
break;
case COOLDOWNS_BOARD:
boolean anyCooldownsActive = false;
for (AbilityType ability : AbilityType.values()) {
int seconds = Math.max(mcMMOPlayer.calculateTimeRemaining(ability), 0); int seconds = Math.max(mcMMOPlayer.calculateTimeRemaining(ability), 0);
cooldown.setScore(seconds); if (seconds != 0) {
anyCooldownsActive = true;
}
stopUpdating = seconds == 0; sidebarObjective.getScore(ScoreboardManager.abilityLabelsColored.get(ability)).setScore(seconds);
} }
if (stopUpdating) { if (anyCooldownsActive) {
stopCooldownUpdating();
}
else {
startCooldownUpdating(); startCooldownUpdating();
} }
} else {
break; stopCooldownUpdating();
}
break;
case COOLDOWNS_BOARD: case STATS_BOARD:
boolean anyCooldownsActive = false; // Select the profile to read from
PlayerProfile newProfile;
for (AbilityType ability : AbilityType.values()) { if (targetProfile != null) {
int seconds = Math.max(mcMMOPlayer.calculateTimeRemaining(ability), 0); newProfile = targetProfile; // offline
}
if (seconds != 0) { else if (targetPlayer == null) {
anyCooldownsActive = true; newProfile = mcMMOPlayer.getProfile(); // self
}
else {
newProfile = UserManager.getPlayer(targetPlayer).getProfile(); // online
} }
sidebarObjective.getScore(ScoreboardManager.abilityLabelsColored.get(ability)).setScore(seconds); // Calculate power level here
} int powerLevel = 0;
for (SkillType skill : SkillType.values()) { // Include child skills, but not in power level
int level = newProfile.getSkillLevel(skill);
if (anyCooldownsActive) { if (!skill.isChildSkill()) {
startCooldownUpdating(); powerLevel += level;
} }
else {
stopCooldownUpdating();
}
break;
case STATS_BOARD: // TODO: Verify that this is what we want - calculated in power level but not displayed
// Select the profile to read from if (!skill.getPermissions(player)) {
PlayerProfile newProfile; continue;
}
if (targetProfile != null) { sidebarObjective.getScore(ScoreboardManager.skillLabels.get(skill)).setScore(level);
newProfile = targetProfile; // offline
}
else if (targetPlayer == null) {
newProfile = mcMMOPlayer.getProfile(); // self
}
else {
newProfile = UserManager.getPlayer(targetPlayer).getProfile(); // online
}
// Calculate power level here
int powerLevel = 0;
for (SkillType skill : SkillType.values()) { // Include child skills, but not in power level
int level = newProfile.getSkillLevel(skill);
if (!skill.isChildSkill())
powerLevel += level;
// TODO: Verify that this is what we want - calculated in power level but not displayed
if (!skill.getPermissions(player)) {
continue;
} }
sidebarObjective.getScore(ScoreboardManager.skillLabels.get(skill)).setScore(level); sidebarObjective.getScore(ScoreboardManager.LABEL_POWER_LEVEL).setScore(powerLevel);
} break;
sidebarObjective.getScore(ScoreboardManager.LABEL_POWER_LEVEL).setScore(powerLevel); case RANK_BOARD:
break; case TOP_BOARD:
case RANK_BOARD:
case TOP_BOARD:
/* /*
* @see #acceptRankData(Map<SkillType, Integer> rank) * @see #acceptRankData(Map<SkillType, Integer> rank)
* @see #acceptLeaderboardData(List<PlayerStat> stats) * @see #acceptLeaderboardData(List<PlayerStat> stats)
*/ */
break; break;
default: default:
break; break;
} }
} }