Cleanup & remove code duplication.

This commit is contained in:
GJ 2013-08-23 14:07:59 -04:00
parent 956bf2d763
commit 23983422e0
4 changed files with 65 additions and 98 deletions

View File

@ -4,7 +4,6 @@ import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.config.Config; import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.datatypes.skills.SkillType; import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.util.HardcoreManager;
import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.Permissions;
public class HardcoreCommand extends HardcoreModeCommand { public class HardcoreCommand extends HardcoreModeCommand {
@ -21,39 +20,26 @@ public class HardcoreCommand extends HardcoreModeCommand {
@Override @Override
protected boolean checkEnabled(String skill) { protected boolean checkEnabled(String skill) {
if (skill.equalsIgnoreCase("ALL")) { if (skill.equalsIgnoreCase("ALL")) {
return !HardcoreManager.getHardcoreStatLossDisabled(); for (SkillType skillType : SkillType.values()) {
if (!skillType.getHardcoreStatLossEnabled()) {
return false;
} }
else { }
return true;
}
return SkillType.getSkill(skill).getHardcoreStatLossEnabled(); return SkillType.getSkill(skill).getHardcoreStatLossEnabled();
} }
}
@Override @Override
protected void enable(String skill) { protected void enable(String skill) {
if (skill.equalsIgnoreCase("ALL")) { toggle(true);
for (SkillType skillType : SkillType.nonChildSkills()) {
Config.getInstance().setHardcoreStatLossEnabled(skillType, true);
}
}
else {
Config.getInstance().setHardcoreStatLossEnabled(SkillType.getSkill(skill), true);
}
mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Hardcore.Mode.Enabled", LocaleLoader.getString("Hardcore.DeathStatLoss.Name"), skill));
} }
@Override @Override
protected void disable(String skill) { protected void disable(String skill) {
if (skill.equalsIgnoreCase("ALL")) { toggle(false);
for (SkillType skillType : SkillType.nonChildSkills()) {
Config.getInstance().setHardcoreStatLossEnabled(skillType, false);
}
}
else {
Config.getInstance().setHardcoreStatLossEnabled(SkillType.getSkill(skill), false);
}
mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Hardcore.Mode.Disabled", LocaleLoader.getString("Hardcore.DeathStatLoss.Name"), skill));
} }
@Override @Override
@ -61,4 +47,17 @@ public class HardcoreCommand extends HardcoreModeCommand {
Config.getInstance().setHardcoreDeathStatPenaltyPercentage(newPercent); Config.getInstance().setHardcoreDeathStatPenaltyPercentage(newPercent);
sender.sendMessage(LocaleLoader.getString("Hardcore.DeathStatLoss.PercentageChanged", percent.format(newPercent / 100D))); sender.sendMessage(LocaleLoader.getString("Hardcore.DeathStatLoss.PercentageChanged", percent.format(newPercent / 100D)));
} }
private void toggle(boolean enable) {
if (skill.equalsIgnoreCase("ALL")) {
for (SkillType skillType : SkillType.nonChildSkills()) {
Config.getInstance().setHardcoreStatLossEnabled(skillType, enable);
}
}
else {
Config.getInstance().setHardcoreStatLossEnabled(SkillType.getSkill(skill), enable);
}
mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Hardcore.Mode." + (enable ? "Enabled" : "Disabled"), LocaleLoader.getString("Hardcore.DeathStatLoss.Name"), skill));
}
} }

View File

@ -4,7 +4,6 @@ import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.config.Config; import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.datatypes.skills.SkillType; import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.util.HardcoreManager;
import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.Permissions;
public class VampirismCommand extends HardcoreModeCommand { public class VampirismCommand extends HardcoreModeCommand {
@ -21,39 +20,26 @@ public class VampirismCommand extends HardcoreModeCommand {
@Override @Override
protected boolean checkEnabled(String skill) { protected boolean checkEnabled(String skill) {
if (skill.equalsIgnoreCase("ALL")) { if (skill.equalsIgnoreCase("ALL")) {
return !HardcoreManager.getHardcoreVampirismDisabled(); for (SkillType skillType : SkillType.values()) {
if (!skillType.getHardcoreVampirismEnabled()) {
return false;
} }
else { }
return true;
}
return SkillType.getSkill(skill).getHardcoreVampirismEnabled(); return SkillType.getSkill(skill).getHardcoreVampirismEnabled();
} }
}
@Override @Override
protected void enable(String skill) { protected void enable(String skill) {
if (skill.equalsIgnoreCase("ALL")) { toggle(true);
for (SkillType skillType : SkillType.nonChildSkills()) {
Config.getInstance().setHardcoreVampirismEnabled(skillType, true);
}
}
else {
Config.getInstance().setHardcoreVampirismEnabled(SkillType.getSkill(skill), true);
}
mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Hardcore.Mode.Enabled", LocaleLoader.getString("Hardcore.Vampirism.Name"), skill));
} }
@Override @Override
protected void disable(String skill) { protected void disable(String skill) {
if (skill.equalsIgnoreCase("ALL")) { toggle(false);
for (SkillType skillType : SkillType.nonChildSkills()) {
Config.getInstance().setHardcoreVampirismEnabled(skillType, false);
}
}
else {
Config.getInstance().setHardcoreVampirismEnabled(SkillType.getSkill(skill), false);
}
mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Hardcore.Mode.Disabled", LocaleLoader.getString("Hardcore.Vampirism.Name"), skill));
} }
@Override @Override
@ -61,4 +47,17 @@ public class VampirismCommand extends HardcoreModeCommand {
Config.getInstance().setHardcoreVampirismStatLeechPercentage(newPercent); Config.getInstance().setHardcoreVampirismStatLeechPercentage(newPercent);
sender.sendMessage(LocaleLoader.getString("Hardcore.Vampirism.PercentageChanged", percent.format(newPercent / 100D))); sender.sendMessage(LocaleLoader.getString("Hardcore.Vampirism.PercentageChanged", percent.format(newPercent / 100D)));
} }
private void toggle(boolean enabled) {
if (skill.equalsIgnoreCase("ALL")) {
for (SkillType skillType : SkillType.nonChildSkills()) {
Config.getInstance().setHardcoreVampirismEnabled(skillType, enabled);
}
}
else {
Config.getInstance().setHardcoreVampirismEnabled(SkillType.getSkill(skill), enabled);
}
mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Hardcore.Mode." + (enabled ? "Enabled" : "Disabled"), LocaleLoader.getString("Hardcore.Vampirism.Name"), skill));
}
} }

View File

@ -107,24 +107,6 @@ public final class HardcoreManager {
return enabled; return enabled;
} }
/**
* Check if Hardcore Stat Loss is disabled for one or more skill types
*
* @return true if Stat Loss is disabled for one or more skill types
*/
public static boolean getHardcoreStatLossDisabled() {
boolean disabled = false;
for (SkillType skillType : SkillType.nonChildSkills()) {
if (!skillType.getHardcoreStatLossEnabled()) {
disabled = true;
break;
}
}
return disabled;
}
/** /**
* Check if Hardcore Vampirism is enabled for one or more skill types * Check if Hardcore Vampirism is enabled for one or more skill types
* *
@ -142,22 +124,4 @@ public final class HardcoreManager {
return enabled; return enabled;
} }
/**
* Check if Hardcore Vampirism is disabled for one or more skill types
*
* @return true if Vampirism is disabled for one or more skill types
*/
public static boolean getHardcoreVampirismDisabled() {
boolean disabled = false;
for (SkillType skillType : SkillType.nonChildSkills()) {
if (!skillType.getHardcoreVampirismEnabled()) {
disabled = true;
break;
}
}
return disabled;
}
} }

View File

@ -43,25 +43,30 @@ public final class Motd {
* @param player Target player * @param player Target player
*/ */
public static void displayHardcoreSettings(Player player) { public static void displayHardcoreSettings(Player player) {
if (!HardcoreManager.getHardcoreStatLossEnabled() && !HardcoreManager.getHardcoreVampirismEnabled()) { boolean deathStatLossEnabled = HardcoreManager.getHardcoreStatLossEnabled();
boolean vampirismEnabled = HardcoreManager.getHardcoreVampirismEnabled();
if (!deathStatLossEnabled && !vampirismEnabled) {
return; return;
} }
String enabledModes; String statLossInfo = "";
String vampirismInfo = "";
String seperator = "";
if (deathStatLossEnabled) {
statLossInfo = LocaleLoader.getString("Hardcore.DeathStatLoss.Name");
}
if (vampirismEnabled) {
vampirismInfo = LocaleLoader.getString("Hardcore.Vampirism.Name");
}
boolean deathStatLossEnabled = HardcoreManager.getHardcoreStatLossEnabled();
boolean vampirismEnabled = HardcoreManager.getHardcoreVampirismEnabled();
if (deathStatLossEnabled && vampirismEnabled) { if (deathStatLossEnabled && vampirismEnabled) {
enabledModes = LocaleLoader.getString("Hardcore.DeathStatLoss.Name") + " & " + LocaleLoader.getString("Hardcore.Vampirism.Name"); seperator = " & ";
}
else if (deathStatLossEnabled) {
enabledModes = LocaleLoader.getString("Hardcore.DeathStatLoss.Name");
}
else {
enabledModes = LocaleLoader.getString("Hardcore.Vampirism.Name");
} }
player.sendMessage(LocaleLoader.getString("MOTD.Hardcore.Enabled", enabledModes)); player.sendMessage(LocaleLoader.getString("MOTD.Hardcore.Enabled", statLossInfo + seperator + vampirismInfo));
if (deathStatLossEnabled) { if (deathStatLossEnabled) {
player.sendMessage(LocaleLoader.getString("MOTD.Hardcore.DeathStatLoss.Stats", Config.getInstance().getHardcoreDeathStatPenaltyPercentage())); player.sendMessage(LocaleLoader.getString("MOTD.Hardcore.DeathStatLoss.Stats", Config.getInstance().getHardcoreDeathStatPenaltyPercentage()));