From 77efbe39a9708e210505b4743f9995ebbc564bd1 Mon Sep 17 00:00:00 2001 From: GJ Date: Tue, 17 Apr 2012 10:28:13 -0400 Subject: [PATCH 01/15] Reverted to old locale strings in master - moved to new branch. --- src/main/java/com/gmail/nossr50/Combat.java | 4 +- src/main/java/com/gmail/nossr50/Item.java | 6 +- .../commands/general/InspectCommand.java | 2 +- .../gmail/nossr50/datatypes/AbilityType.java | 86 +- .../com/gmail/nossr50/datatypes/ToolType.java | 12 +- .../nossr50/listeners/mcPlayerListener.java | 6 +- src/main/java/com/gmail/nossr50/mcMMO.java | 24 +- .../java/com/gmail/nossr50/party/Party.java | 4 +- .../gmail/nossr50/runnables/mcBleedTimer.java | 2 +- .../com/gmail/nossr50/skills/Acrobatics.java | 6 +- .../java/com/gmail/nossr50/skills/Axes.java | 6 +- .../com/gmail/nossr50/skills/BlastMining.java | 2 +- .../com/gmail/nossr50/skills/Fishing.java | 2 +- .../java/com/gmail/nossr50/skills/Repair.java | 24 +- .../java/com/gmail/nossr50/skills/Skills.java | 4 +- .../java/com/gmail/nossr50/skills/Swords.java | 6 +- .../java/com/gmail/nossr50/skills/Taming.java | 8 +- .../com/gmail/nossr50/skills/WoodCutting.java | 4 +- .../resources/locale/locale_en_us.properties | 890 ++++++++---------- 19 files changed, 485 insertions(+), 613 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/Combat.java b/src/main/java/com/gmail/nossr50/Combat.java index 8528719d0..a2e533cbd 100644 --- a/src/main/java/com/gmail/nossr50/Combat.java +++ b/src/main/java/com/gmail/nossr50/Combat.java @@ -351,10 +351,10 @@ public class Combat { String message = ""; if (type.equals(SkillType.AXES)) { - message = mcLocale.getString("Axes.Combat.Cleave.Struck"); + message = mcLocale.getString("Axes.HitByCleave"); } else if (type.equals(SkillType.SWORDS)) { - message = mcLocale.getString("Swords.Combat.SS.Struck"); + message = mcLocale.getString("Swords.HitBySerratedStrikes"); } dealDamage(defender, damageAmount, attacker); diff --git a/src/main/java/com/gmail/nossr50/Item.java b/src/main/java/com/gmail/nossr50/Item.java index 1dc461d7d..6f1fd3049 100644 --- a/src/main/java/com/gmail/nossr50/Item.java +++ b/src/main/java/com/gmail/nossr50/Item.java @@ -38,7 +38,7 @@ public class Item { for (int y = 0; block.getY() + y < player.getWorld().getMaxHeight(); y++) { if (!block.getRelative(0, y, 0).getType().equals(Material.AIR)) { - player.sendMessage(mcLocale.getString("Item.ChimaeraWing.Fail")); + player.sendMessage(mcLocale.getString("Item.ChimaeraWingFail")); player.teleport(block.getRelative(0, y - 1, 0).getLocation()); return; } @@ -51,10 +51,10 @@ public class Item { player.teleport(player.getWorld().getSpawnLocation()); } - player.sendMessage(mcLocale.getString("Item.ChimaeraWing.Pass")); + player.sendMessage(mcLocale.getString("Item.ChimaeraWingPass")); } else if (!Skills.cooldownOver(PP.getRecentlyHurt(), 60) && is.getAmount() >= LoadProperties.feathersConsumedByChimaeraWing) { - player.sendMessage(mcLocale.getString("Item.Injured.Wait", new Object[] {Skills.calculateTimeLeft(PP.getRecentlyHurt(), 60)})); + player.sendMessage(mcLocale.getString("Item.InjuredWait", new Object[] {Skills.calculateTimeLeft(PP.getRecentlyHurt(), 60)})); } else if (is.getAmount() <= LoadProperties.feathersConsumedByChimaeraWing) { player.sendMessage(mcLocale.getString("Skills.NeedMore")+ " " + ChatColor.GRAY + m.prettyItemString(LoadProperties.chimaeraId)); diff --git a/src/main/java/com/gmail/nossr50/commands/general/InspectCommand.java b/src/main/java/com/gmail/nossr50/commands/general/InspectCommand.java index 6dfbfd96c..a7c00033b 100644 --- a/src/main/java/com/gmail/nossr50/commands/general/InspectCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/general/InspectCommand.java @@ -48,7 +48,7 @@ public class InspectCommand implements CommandExecutor { CommandHelper.printGatheringSkills(player, sender); CommandHelper.printCombatSkills(player, sender); CommandHelper.printMiscSkills(player, sender); - sender.sendMessage(mcLocale.getString("Commands.PowerLevel", new Object[] { PP.getPowerLevel() })); + sender.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevel", new Object[] { PP.getPowerLevel() })); return true; } diff --git a/src/main/java/com/gmail/nossr50/datatypes/AbilityType.java b/src/main/java/com/gmail/nossr50/datatypes/AbilityType.java index 96b6a7f15..0a4906b35 100644 --- a/src/main/java/com/gmail/nossr50/datatypes/AbilityType.java +++ b/src/main/java/com/gmail/nossr50/datatypes/AbilityType.java @@ -11,77 +11,15 @@ import com.gmail.nossr50.skills.Herbalism; import com.gmail.nossr50.skills.Mining; public enum AbilityType { - BERSERK( - LoadProperties.berserkCooldown, - "Unarmed.Skills.Berserk.On", - "Unarmed.Skills.Berserk.Off", - "Unarmed.Skills.Berserk.Other.On", - "Unarmed.Skills.Berserk.Refresh", - "Unarmed.Skills.Berserk.Other.Off"), - - SUPER_BREAKER( - LoadProperties.superBreakerCooldown, - "Mining.Skills.SuperBreaker.On", - "Mining.Skills.SuperBreaker.Off", - "Mining.Skills.SuperBreaker.Other.On", - "Mining.Skills.SuperBreaker.Refresh", - "Mining.Skills.SuperBreaker.Other.Off"), - - GIGA_DRILL_BREAKER( - LoadProperties.gigaDrillBreakerCooldown, - "Excavation.Skills.GigaDrillBreaker.On", - "Excavation.Skills.GigaDrillBreaker.Off", - "Excavation.Skills.GigaDrillBreaker.Other.On", - "Excavation.Skills.GigaDrillBreaker.Refresh", - "Excavation.Skills.GigaDrillBreaker.Other.Off"), - - GREEN_TERRA( - LoadProperties.greenTerraCooldown, - "Herbalism.Skills.GTe.On", - "Herbalism.Skills.GTe.Off", - "Herbalism.Skills.GTe.Other.On", - "Herbalism.Skills.GTe.Refresh", - "Herbalism.Skills.GTe.Other.Off"), - - SKULL_SPLIITER( - LoadProperties.skullSplitterCooldown, - "Axes.Skills.SS.On", - "Axes.Skills.SS.Off", - "Axes.Skills.SS.Other.On", - "Axes.Skills.SS.Refresh", - "Axes.Skills.SS.Other.Off"), - - TREE_FELLER( - LoadProperties.treeFellerCooldown, - "Woodcutting.Skills.TreeFeller.On", - "Woodcutting.Skills.TreeFeller.Off", - "Woodcutting.Skills.TreeFeller.Other.On", - "Woodcutting.Skills.TreeFeller.Refresh", - "Woodcutting.Skills.TreeFeller.Other.Off"), - - SERRATED_STRIKES( - LoadProperties.serratedStrikeCooldown, - "Swords.Skills.SS.On", - "Swords.Skills.SS.Off", - "Swords.Skills.SS.Other.On", - "Swords.Skills.SS.Refresh", - "Swords.Skills.SS.Other.Off"), - - BLAST_MINING( - LoadProperties.blastMiningCooldown, - null, - null, - "Mining.Blast.Other.On", - "Mining.Blast.Refresh", - null), - - LEAF_BLOWER( - 0, - null, - null, - null, - null, - null); + BERSERK(LoadProperties.berserkCooldown, mcLocale.getString("Skills.BerserkOn"), mcLocale.getString("Skills.BerserkOff"), "Skills.BerserkPlayer", mcLocale.getString("Skills.YourBerserk"), "Skills.BerserkPlayerOff"), + SUPER_BREAKER(LoadProperties.superBreakerCooldown, mcLocale.getString("Skills.SuperBreakerOn"), mcLocale.getString("Skills.SuperBreakerOff"), "Skills.SuperBreakerPlayer", mcLocale.getString("Skills.YourSuperBreaker"), "Skills.SuperBreakerPlayerOff"), + GIGA_DRILL_BREAKER(LoadProperties.gigaDrillBreakerCooldown, mcLocale.getString("Skills.GigaDrillBreakerOn"), mcLocale.getString("Skills.GigaDrillBreakerOff"), "Skills.GigaDrillBreakerPlayer", mcLocale.getString("Skills.YourGigaDrillBreaker"), "Skills.GigaDrillBreakerPlayerOff"), + GREEN_TERRA(LoadProperties.greenTerraCooldown, mcLocale.getString("Skills.GreenTerraOn"), mcLocale.getString("Skills.GreenTerraOff"), "Skills.GreenTerraPlayer", mcLocale.getString("Skills.YourGreenTerra"), mcLocale.getString("Skills.GreenTerraPlayerOff")), + SKULL_SPLIITER(LoadProperties.skullSplitterCooldown, mcLocale.getString("Skills.SkullSplitterOn"), mcLocale.getString("Skills.SkullSplitterOff"), "Skills.SkullSplitterPlayer", mcLocale.getString("Skills.YourSkullSplitter"), "Skills.SkullSplitterPlayerOff"), + TREE_FELLER(LoadProperties.treeFellerCooldown, mcLocale.getString("Skills.TreeFellerOn"), mcLocale.getString("Skills.TreeFellerOff"), "Skills.TreeFellerPlayer", mcLocale.getString("Skills.YourTreeFeller"), "Skills.TreeFellerPlayerOff"), + SERRATED_STRIKES(LoadProperties.skullSplitterCooldown, mcLocale.getString("Skills.SerratedStrikesOn"), mcLocale.getString("Skills.SerratedStrikesOff"), "Skills.SerratedStrikesPlayer", mcLocale.getString("Skills.YourSerratedStrikes"), "Skills.SerratedStrikesPlayerOff"), + BLAST_MINING(LoadProperties.blastMiningCooldown, null, null, "Skills.BlastMiningPlayer", mcLocale.getString("Skills.YourBlastMining"), null), + LEAF_BLOWER(0, null, null, null, null, null); private int cooldown; private String abilityOn; @@ -104,11 +42,11 @@ public enum AbilityType { } public String getAbilityOn() { - return mcLocale.getString(this.abilityOn); + return this.abilityOn; } public String getAbilityOff() { - return mcLocale.getString(this.abilityOff); + return this.abilityOff; } public String getAbilityPlayer(Player player) { @@ -120,7 +58,7 @@ public enum AbilityType { } public String getAbilityRefresh() { - return mcLocale.getString(this.abilityRefresh); + return this.abilityRefresh; } /** diff --git a/src/main/java/com/gmail/nossr50/datatypes/ToolType.java b/src/main/java/com/gmail/nossr50/datatypes/ToolType.java index 50d779908..cf898bba9 100644 --- a/src/main/java/com/gmail/nossr50/datatypes/ToolType.java +++ b/src/main/java/com/gmail/nossr50/datatypes/ToolType.java @@ -7,12 +7,12 @@ import com.gmail.nossr50.ItemChecks; import com.gmail.nossr50.locale.mcLocale; public enum ToolType { - AXE(mcLocale.getString("Axes.Ability.Lower"), mcLocale.getString("Axes.Ability.Ready")), - FISTS(mcLocale.getString("Unarmed.Ability.Lower"), mcLocale.getString("Unarmed.Ability.Ready")), - HOE(mcLocale.getString("Herbalism.Ability.Lower"), mcLocale.getString("Herbalism.Ability.Ready")), - PICKAXE(mcLocale.getString("Mining.Ability.Lower"), mcLocale.getString("Mining.Ability.Ready")), - SHOVEL(mcLocale.getString("Excavation.Ability.Lower"), mcLocale.getString("Excavation.Ability.Ready")), - SWORD(mcLocale.getString("Swords.Ability.Lower"), mcLocale.getString("Swords.Ability.Ready")); + AXE(mcLocale.getString("Skills.LowerAxe"), mcLocale.getString("Skills.ReadyAxe")), + FISTS(mcLocale.getString("Skills.LowerFists"), mcLocale.getString("Skills.ReadyFists")), + HOE(mcLocale.getString("Skills.LowerHoe"), mcLocale.getString("Skills.ReadyHoe")), + PICKAXE(mcLocale.getString("Skills.LowerPickAxe"), mcLocale.getString("Skills.ReadyPickAxe")), + SHOVEL(mcLocale.getString("Skills.LowerShovel"), mcLocale.getString("Skills.ReadyShovel")), + SWORD(mcLocale.getString("Skills.LowerSword"), mcLocale.getString("Skills.ReadySword")); private String lowerTool; private String raiseTool; diff --git a/src/main/java/com/gmail/nossr50/listeners/mcPlayerListener.java b/src/main/java/com/gmail/nossr50/listeners/mcPlayerListener.java index 2c472a148..8b4e16f60 100644 --- a/src/main/java/com/gmail/nossr50/listeners/mcPlayerListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/mcPlayerListener.java @@ -68,7 +68,7 @@ public class mcPlayerListener implements Listener { if (PP.getGodMode()) { if (!mcPermissions.getInstance().mcgod(player)) { PP.toggleGodMode(); - player.sendMessage(mcLocale.getString("Commands.GodMode.Forbidden")); + player.sendMessage(mcLocale.getString("GodMode.Forbidden")); } } @@ -167,8 +167,8 @@ public class mcPlayerListener implements Listener { Player player = event.getPlayer(); if (mcPermissions.getInstance().motd(player) && LoadProperties.enableMotd) { - player.sendMessage(mcLocale.getString("mcMMO.MOTD", new Object[] {plugin.getDescription().getVersion(), "mcmmo"})); - player.sendMessage(mcLocale.getString("mcMMO.Wiki")); + player.sendMessage(mcLocale.getString("mcPlayerListener.MOTD", new Object[] {plugin.getDescription().getVersion(), "mcmmo"})); + player.sendMessage(mcLocale.getString("mcPlayerListener.WIKI")); } //THIS IS VERY BAD WAY TO DO THINGS, NEED BETTER WAY diff --git a/src/main/java/com/gmail/nossr50/mcMMO.java b/src/main/java/com/gmail/nossr50/mcMMO.java index efb99ef2e..f09d04075 100644 --- a/src/main/java/com/gmail/nossr50/mcMMO.java +++ b/src/main/java/com/gmail/nossr50/mcMMO.java @@ -213,18 +213,18 @@ public class mcMMO extends JavaPlugin { //Register aliases with the aliasmap (used in the playercommandpreprocessevent to ugly alias them to actual commands) //Skills commands - aliasMap.put(mcLocale.getString("Acrobatics.SkillName").toLowerCase(), "acrobatics"); - aliasMap.put(mcLocale.getString("Archery.SkillName").toLowerCase(), "archery"); - aliasMap.put(mcLocale.getString("Axes.SkillName").toLowerCase(), "axes"); - aliasMap.put(mcLocale.getString("Excavation.SkillName").toLowerCase(), "excavation"); - aliasMap.put(mcLocale.getString("Fishing.SkillName").toLowerCase(), "fishing"); - aliasMap.put(mcLocale.getString("Herbalism.SkillName").toLowerCase(), "herbalism"); - aliasMap.put(mcLocale.getString("Mining.SkillName").toLowerCase(), "mining"); - aliasMap.put(mcLocale.getString("Repair.SkillName").toLowerCase(), "repair"); - aliasMap.put(mcLocale.getString("Swords.SkillName").toLowerCase(), "swords"); - aliasMap.put(mcLocale.getString("Taming.SkillName").toLowerCase(), "taming"); - aliasMap.put(mcLocale.getString("Unarmed.SkillName").toLowerCase(), "unarmed"); - aliasMap.put(mcLocale.getString("WoodCutting.SkillName").toLowerCase(), "woodcutting"); + aliasMap.put(mcLocale.getString("m.SkillAcrobatics").toLowerCase(), "acrobatics"); + aliasMap.put(mcLocale.getString("m.SkillArchery").toLowerCase(), "archery"); + aliasMap.put(mcLocale.getString("m.SkillAxes").toLowerCase(), "axes"); + aliasMap.put(mcLocale.getString("m.SkillExcavation").toLowerCase(), "excavation"); + aliasMap.put(mcLocale.getString("m.SkillFishing").toLowerCase(), "fishing"); + aliasMap.put(mcLocale.getString("m.SkillHerbalism").toLowerCase(), "herbalism"); + aliasMap.put(mcLocale.getString("m.SkillMining").toLowerCase(), "mining"); + aliasMap.put(mcLocale.getString("m.SkillRepair").toLowerCase(), "repair"); + aliasMap.put(mcLocale.getString("m.SkillSwords").toLowerCase(), "swords"); + aliasMap.put(mcLocale.getString("m.SkillTaming").toLowerCase(), "taming"); + aliasMap.put(mcLocale.getString("m.SkillUnarmed").toLowerCase(), "unarmed"); + aliasMap.put(mcLocale.getString("m.SkillWoodCutting").toLowerCase(), "woodcutting"); //Register commands //Skills commands diff --git a/src/main/java/com/gmail/nossr50/party/Party.java b/src/main/java/com/gmail/nossr50/party/Party.java index 76639221d..94b6904cd 100644 --- a/src/main/java/com/gmail/nossr50/party/Party.java +++ b/src/main/java/com/gmail/nossr50/party/Party.java @@ -239,10 +239,10 @@ public class Party { informPartyMembers(player); if (!invite) { - player.sendMessage(mcLocale.getString("Commands.Party.Join", new Object[]{ newParty })); + player.sendMessage(mcLocale.getString("mcPlayerListener.JoinedParty", new Object[]{ newParty })); } else { - player.sendMessage(mcLocale.getString("Commands.Invite.Accepted", new Object[]{ PP.getParty() })); + player.sendMessage(mcLocale.getString("mcPlayerListener.InviteAccepted", new Object[]{ PP.getParty() })); } } diff --git a/src/main/java/com/gmail/nossr50/runnables/mcBleedTimer.java b/src/main/java/com/gmail/nossr50/runnables/mcBleedTimer.java index 68a27596d..4b671139b 100644 --- a/src/main/java/com/gmail/nossr50/runnables/mcBleedTimer.java +++ b/src/main/java/com/gmail/nossr50/runnables/mcBleedTimer.java @@ -54,7 +54,7 @@ public class mcBleedTimer implements Runnable { PP.decreaseBleedTicks(); if (PP.getBleedTicks() == 0) { - player.sendMessage(mcLocale.getString("Swords.Combat.Bleeding.Stopped")); + player.sendMessage(mcLocale.getString("Swords.StoppedBleeding")); } } } diff --git a/src/main/java/com/gmail/nossr50/skills/Acrobatics.java b/src/main/java/com/gmail/nossr50/skills/Acrobatics.java index f116fd207..205c2ebd5 100644 --- a/src/main/java/com/gmail/nossr50/skills/Acrobatics.java +++ b/src/main/java/com/gmail/nossr50/skills/Acrobatics.java @@ -68,10 +68,10 @@ public class Acrobatics { } if (gracefulRoll) { - player.sendMessage(mcLocale.getString("Acrobatics.Ability.Proc")); + player.sendMessage(mcLocale.getString("Acrobatics.GracefulRoll")); } else { - player.sendMessage(mcLocale.getString("Acrobatics.Roll.Text")); + player.sendMessage(mcLocale.getString("Acrobatics.Roll")); } } } @@ -108,7 +108,7 @@ public class Acrobatics { int skillCheck = m.skillCheck(skillLevel, MAX_BONUS_LEVEL); if (random.nextInt(4000) <= skillCheck && mcPermissions.getInstance().dodge(defender)) { - defender.sendMessage(mcLocale.getString("Acrobatics.Combat.Proc")); + defender.sendMessage(mcLocale.getString("Acrobatics.Dodge")); if (System.currentTimeMillis() >= (5000 + PPd.getRespawnATS()) && defender.getHealth() >= 1) { PPd.addXP(SkillType.ACROBATICS, damage * DODGE_MODIFIER); diff --git a/src/main/java/com/gmail/nossr50/skills/Axes.java b/src/main/java/com/gmail/nossr50/skills/Axes.java index 766ba2d5d..ae4d82013 100644 --- a/src/main/java/com/gmail/nossr50/skills/Axes.java +++ b/src/main/java/com/gmail/nossr50/skills/Axes.java @@ -82,12 +82,12 @@ public class Axes { if (entity instanceof Player){ event.setDamage((int) (damage * PVP_MODIFIER)); Player player = (Player) entity; - player.sendMessage(mcLocale.getString("Axes.Combat.CritStruck")); + player.sendMessage(mcLocale.getString("Axes.HitCritically")); } else { event.setDamage(damage * PVE_MODIFIER); } - attacker.sendMessage(mcLocale.getString("Axes.Combat.CriticalHit")); + attacker.sendMessage(mcLocale.getString("Axes.CriticalHit")); } } @@ -140,7 +140,7 @@ public class Axes { if (random.nextInt(100) <= GREATER_IMPACT_CHANCE) { event.setDamage(event.getDamage() + 2); target.setVelocity(attacker.getLocation().getDirection().normalize().multiply(GREATER_IMPACT_MULTIPLIER)); - attacker.sendMessage(mcLocale.getString("Axes.Combat.GI.Proc")); + attacker.sendMessage(mcLocale.getString("Axes.GreaterImpactOnEnemy")); } } diff --git a/src/main/java/com/gmail/nossr50/skills/BlastMining.java b/src/main/java/com/gmail/nossr50/skills/BlastMining.java index a8bc7f6c8..01964c272 100644 --- a/src/main/java/com/gmail/nossr50/skills/BlastMining.java +++ b/src/main/java/com/gmail/nossr50/skills/BlastMining.java @@ -273,7 +273,7 @@ public class BlastMining { } } - player.sendMessage(mcLocale.getString("Mining.Blast.Boom")); + player.sendMessage(mcLocale.getString("BlastMining.Boom")); /* Create the TNT entity */ TNTPrimed tnt = player.getWorld().spawn(block.getLocation(), TNTPrimed.class); diff --git a/src/main/java/com/gmail/nossr50/skills/Fishing.java b/src/main/java/com/gmail/nossr50/skills/Fishing.java index 8c92c8f9f..96a6203e7 100644 --- a/src/main/java/com/gmail/nossr50/skills/Fishing.java +++ b/src/main/java/com/gmail/nossr50/skills/Fishing.java @@ -97,7 +97,7 @@ public class Fishing { break; } - if (LoadProperties.fishingDrops && rewards.size() > 0) { + if (LoadProperties.fishingDrops) { FishingTreasure treasure = rewards.get(random.nextInt(rewards.size())); if (random.nextDouble() * 100 <= treasure.getDropChance()) { diff --git a/src/main/java/com/gmail/nossr50/skills/Repair.java b/src/main/java/com/gmail/nossr50/skills/Repair.java index b4b5d5e81..95187e73b 100644 --- a/src/main/java/com/gmail/nossr50/skills/Repair.java +++ b/src/main/java/com/gmail/nossr50/skills/Repair.java @@ -102,7 +102,7 @@ public class Repair { } } else { - player.sendMessage(mcLocale.getString("Repair.Skills.FullDurability")); + player.sendMessage(mcLocale.getString("Skills.FullDurability")); } } @@ -189,7 +189,7 @@ public class Repair { for (Enchantment x : enchants.keySet()) { is.removeEnchantment(x); } - player.sendMessage(mcLocale.getString("Repair.Arcane.Lost")); + player.sendMessage(mcLocale.getString("Repair.LostEnchants")); return; } @@ -216,13 +216,13 @@ public class Repair { Map newEnchants = is.getEnchantments(); if (newEnchants.isEmpty()) { - player.sendMessage(mcLocale.getString("Repair.Arcane.Fail")); + player.sendMessage(mcLocale.getString("Repair.ArcaneFailed")); } else if (downgraded || newEnchants.size() < enchants.size()) { - player.sendMessage(mcLocale.getString("Repair.Arcane.Downgrade")); + player.sendMessage(mcLocale.getString("Repair.Downgraded")); } else { - player.sendMessage(mcLocale.getString("Repair.Arcane.Perfect")); + player.sendMessage(mcLocale.getString("Repair.ArcanePerfect")); } } @@ -349,12 +349,12 @@ public class Repair { int skillLevel = Users.getProfile(player).getSkillLevel(SkillType.REPAIR); if (is.getAmount() != 1) { - player.sendMessage(mcLocale.getString("Repair.Skills.StackedItems")); + player.sendMessage(mcLocale.getString("Skills.StackedItems")); } else { if (ItemChecks.isDiamondTool(is) || ItemChecks.isDiamondArmor(is)) { if (skillLevel < LoadProperties.repairdiamondlevel) { - player.sendMessage(mcLocale.getString("Repair.Skills.AdeptDiamond")); + player.sendMessage(mcLocale.getString("Skills.AdeptDiamond")); } else { player.sendMessage(mcLocale.getString("Skills.NeedMore") + " " + ChatColor.BLUE + m.prettyItemString(LoadProperties.rDiamond)); @@ -362,7 +362,7 @@ public class Repair { } else if (ItemChecks.isIronTool(is) || ItemChecks.isIronArmor(is)) { if (skillLevel < LoadProperties.repairIronLevel) { - player.sendMessage(mcLocale.getString("Repair.Skills.AdeptIron")); + player.sendMessage(mcLocale.getString("Skills.AdeptIron")); } else { player.sendMessage(mcLocale.getString("Skills.NeedMore")+ " " + ChatColor.GRAY + m.prettyItemString(LoadProperties.rIron)); @@ -370,7 +370,7 @@ public class Repair { } else if (ItemChecks.isGoldTool(is) || ItemChecks.isGoldArmor(is)) { if (skillLevel < LoadProperties.repairGoldLevel) { - player.sendMessage(mcLocale.getString("Repair.Skills.AdeptGold")); + player.sendMessage(mcLocale.getString("Skills.AdeptGold")); } else { player.sendMessage(mcLocale.getString("Skills.NeedMore") + " " + ChatColor.GOLD + m.prettyItemString(LoadProperties.rGold)); @@ -378,7 +378,7 @@ public class Repair { } else if (ItemChecks.isStoneTool(is)) { if (skillLevel < LoadProperties.repairStoneLevel) { - player.sendMessage(mcLocale.getString("Repair.Skills.AdeptStone")); + player.sendMessage(mcLocale.getString("Skills.AdeptStone")); } else { player.sendMessage(mcLocale.getString("Skills.NeedMore") + " " + ChatColor.GRAY + m.prettyItemString(LoadProperties.rStone)); @@ -408,7 +408,7 @@ public class Repair { int skillLevel = Users.getProfile(player).getSkillLevel(SkillType.REPAIR); if ((skillLevel > MAX_BONUS_LEVEL || random.nextInt(1000) <= skillLevel) && mcPermissions.getInstance().repairBonus(player)) { - player.sendMessage(mcLocale.getString("Repair.Skills.FeltEasy")); + player.sendMessage(mcLocale.getString("Skills.FeltEasy")); return true; } @@ -467,7 +467,7 @@ public class Repair { } } else { - player.sendMessage(mcLocale.getString("Repair.Listener.Anvil")); + player.sendMessage(mcLocale.getString("mcBlockListener.PlacedAnvil")); } PP.togglePlacedAnvil(); diff --git a/src/main/java/com/gmail/nossr50/skills/Skills.java b/src/main/java/com/gmail/nossr50/skills/Skills.java index 9fbb297a5..68909aace 100644 --- a/src/main/java/com/gmail/nossr50/skills/Skills.java +++ b/src/main/java/com/gmail/nossr50/skills/Skills.java @@ -224,11 +224,11 @@ public class Skills { } } else { - player.sendMessage(mcLocale.getString(capitalized + "Skillup", new Object[] {String.valueOf(skillups), PP.getSkillLevel(skillType)})); + player.sendMessage(mcLocale.getString("Skills."+capitalized+"Up", new Object[] {String.valueOf(skillups), PP.getSkillLevel(skillType)})); } } else { - player.sendMessage(mcLocale.getString(capitalized + "Skillup", new Object[] {String.valueOf(skillups), PP.getSkillLevel(skillType)})); + player.sendMessage(mcLocale.getString("Skills."+capitalized+"Up", new Object[] {String.valueOf(skillups), PP.getSkillLevel(skillType)})); } } diff --git a/src/main/java/com/gmail/nossr50/skills/Swords.java b/src/main/java/com/gmail/nossr50/skills/Swords.java index d23894cf5..c68a1fc48 100644 --- a/src/main/java/com/gmail/nossr50/skills/Swords.java +++ b/src/main/java/com/gmail/nossr50/skills/Swords.java @@ -73,7 +73,7 @@ public class Swords { else { mcBleedTimer.add(entity); } - attacker.sendMessage(mcLocale.getString("Swords.Combat.Bleeding")); + attacker.sendMessage(mcLocale.getString("Swords.EnemyBleeding")); } } @@ -104,10 +104,10 @@ public class Swords { if (random.nextInt(2000) <= skillCheck) { Combat.dealDamage((LivingEntity) attacker, event.getDamage() / COUNTER_ATTACK_MODIFIER); - defender.sendMessage(mcLocale.getString("Swords.Combat.Countered")); + defender.sendMessage(mcLocale.getString("Swords.CounterAttacked")); if (attacker instanceof Player) { - ((Player) attacker).sendMessage(mcLocale.getString("Swords.Combat.Counter.Hit")); + ((Player) attacker).sendMessage(mcLocale.getString("Swords.HitByCounterAttack")); } } } diff --git a/src/main/java/com/gmail/nossr50/skills/Taming.java b/src/main/java/com/gmail/nossr50/skills/Taming.java index c809dcdf8..24c762916 100644 --- a/src/main/java/com/gmail/nossr50/skills/Taming.java +++ b/src/main/java/com/gmail/nossr50/skills/Taming.java @@ -154,7 +154,7 @@ public class Taming { } wolf.teleport(master.getLocation()); - master.sendMessage(mcLocale.getString("Taming.Listener.Wolf")); + master.sendMessage(mcLocale.getString("mcEntityListener.WolfComesBack")); } } break; @@ -232,11 +232,11 @@ public class Taming { if (x.getType().equals(type)) { switch (type) { case WOLF: - player.sendMessage(mcLocale.getString("Taming.Summon.Fail.Wolf")); + player.sendMessage(mcLocale.getString("m.TamingSummonWolfFailed")); return; case OCELOT: - player.sendMessage(mcLocale.getString("Taming.Summon.Fail.Ocelot")); + player.sendMessage(mcLocale.getString("m.TamingSummonOcelotFailed")); return; default: @@ -258,7 +258,7 @@ public class Taming { } player.setItemInHand(new ItemStack(summonItem, item.getAmount() - summonAmount)); - player.sendMessage(mcLocale.getString("Taming.Summon.Complete")); + player.sendMessage(mcLocale.getString("m.TamingSummon")); } else { player.sendMessage(mcLocale.getString("Skills.NeedMore")+ " " + ChatColor.GRAY + m.prettyItemString(summonItem.getId())); diff --git a/src/main/java/com/gmail/nossr50/skills/WoodCutting.java b/src/main/java/com/gmail/nossr50/skills/WoodCutting.java index 6efe03403..e0ab7cf13 100644 --- a/src/main/java/com/gmail/nossr50/skills/WoodCutting.java +++ b/src/main/java/com/gmail/nossr50/skills/WoodCutting.java @@ -54,7 +54,7 @@ public class WoodCutting { */ private static void removeBlocks(ArrayList toBeFelled, Player player, PlayerProfile PP) { if (toBeFelled.size() > LoadProperties.treeFellerThreshold) { - player.sendMessage(mcLocale.getString("Woodcutting.Skills.TreeFellerThreshold")); + player.sendMessage(mcLocale.getString("Skills.Woodcutting.TreeFellerThreshold")); return; } @@ -67,7 +67,7 @@ public class WoodCutting { /* This is to prevent using wood axes everytime you tree fell */ if ((inHand.getDurability() + durabilityLoss >= inHand.getType().getMaxDurability()) || inHand.getType().equals(Material.AIR)) { - player.sendMessage(mcLocale.getString("Woodcutting.Skills.TreeFeller.Splinter")); + player.sendMessage(mcLocale.getString("TreeFeller.AxeSplinters")); int health = player.getHealth(); diff --git a/src/main/resources/locale/locale_en_us.properties b/src/main/resources/locale/locale_en_us.properties index 491e16639..9bf29c668 100644 --- a/src/main/resources/locale/locale_en_us.properties +++ b/src/main/resources/locale/locale_en_us.properties @@ -1,425 +1,311 @@ -# en_us locale file v2.0 -# ----------------- -# Setting up a new standard for string names, for easier localization. -# SkillName.SubType.LocalEffect.Increment -# Skill name, such as ACROBATICS, MINING. -# Sub-type, such as EFFECT, ABILITY, COMBAT. -# Local Effect, local text for Skill Name; ROLL, IGNITIONTIME,GRACECHANCE. -# Increment, for multi-line or array-like lists. -# ###### -# -# EXAMPLES: -# -# Acrobatics.Ability.Proc -# Axes.Ability.Refresh.1 -# -# --Shatteredbeam - -# ACROBATICS -Acrobatics.Ability.Proc=[[GREEN]]**Graceful Landing** -Acrobatics.Combat.Proc=[[GREEN]]**Dodged** -Acrobatics.DodgeChance=[[RED]]Dodge Chance: [[YELLOW]]{0}% -Acrobatics.Effect.0=Roll -Acrobatics.Effect.1=Reduces or Negates fall damage -Acrobatics.Effect.2=Graceful Roll -Acrobatics.Effect.3=Twice as effective as a normal Roll -Acrobatics.Effect.4=Dodge -Acrobatics.Effect.5=Reduce fall damage by half -Acrobatics.Listener=Acrobatics: -Acrobatics.Roll.Chance=[[RED]]Roll Chance: [[YELLOW]]{0}% -Acrobatics.Roll.GraceChance=[[RED]]Graceful Roll Chance: [[YELLOW]]{0}% -Acrobatics.Roll.Text=**Rolled** -Acrobatics.SkillName=ACROBATICS -Acrobatics.Skillup=[[YELLOW]]Acrobatics skill increased by {0}. Total ({1}) - -#ARCHERY -Archery.Combat.BonusDamage=[[RED]]Damage+ (Rank{0}): [[YELLOW]]Bonus {0} damage -Archery.Combat.DazeChance=[[RED]]Chance to Daze: [[YELLOW]]{0}% -Archery.Combat.IgnitionTime=[[RED]]Length of Ignition: [[YELLOW]]{0} seconds -Archery.Combat.RetrieveChance=[[RED]]Chance to Retrieve Arrows: [[YELLOW]]{0}% -Archery.Combat.SkillshotBonus=[[RED]]Skill Shot Bonus Damage: [[YELLOW]]{0}% -Archery.Effect.0=Skill Shot -Archery.Effect.1=Increases damage done with bows -Archery.Effect.2=Daze (Players) -Archery.Effect.3=Disorients foes and deals 4 DMG -Archery.Effect.4=Damage+ -Archery.Effect.5=Modifies Damage -Archery.Effect.6=Arrow Retrieval -Archery.Effect.7=Chance to retrieve arrows from corpses -Archery.Listener=Archery: -Archery.SkillName=ARCHERY -Archery.Skillup=[[YELLOW]]Archery skill increased by {0}. Total ({1}) - -# AXES -Axes.Ability.Bonus.0=Axe Mastery -Axes.Ability.Bonus.1=Bonus {0} damage -Axes.Ability.Bonus.2=Impact -Axes.Ability.Bonus.3=Deal {0} bonus DMG to armor -Axes.Ability.Bonus.4=Greater Impact -Axes.Ability.Bonus.5=Deal {0} Bonus DMG to unarmored foes -Axes.Ability.Locked.0=LOCKED UNTIL 500+ SKILL (AXE MASTERY) -Axes.Ability.Lower=[[GRAY]]**YOU LOWER YOUR AXE** -Axes.Ability.Ready=[[GREEN]]**YOU READY YOUR AXE** -Axes.Combat.Cleave.Proc=[[DARK_RED]]Struck by CLEAVE! -Axes.Combat.CritStruck=[[DARK_RED]]You were CRITICALLY hit! -Axes.Combat.CritChance=[[RED]]Chance to critically strike: [[YELLOW]]{0}% -Axes.Combat.CriticalHit=[[RED]]CRITICAL HIT! -Axes.Combat.GI.Proc=[[GREEN]]**STRUCK WITH GREAT FORCE** -Axes.Combat.GI.Struck=[[RED]]**HIT BY GREATER IMPACT** -Axes.Combat.SS.Length=[[RED]]Skull Splitter Length: [[YELLOW]]{0}s -Axes.Effect.0=Skull Splitter (Ability) -Axes.Effect.1=Deal AoE Damage -Axes.Effect.2=Critical Strikes -Axes.Effect.3=Double Damage -Axes.Effect.4=Axe Mastery -Axes.Effect.5=Adds bonus DMG -Axes.Effect.6=Impact -Axes.Effect.7=Strike with enough force to shatter armor -Axes.Effect.8=Greater Impact -Axes.Effect.9=Deal bonus damage to unarmored foes -Axes.Listener=Axes: -Axes.SkillName=AXES -Axes.Skills.SS.Off=[[RED]]**Skull Splitter has worn off** -Axes.Skills.SS.On=[[GREEN]]**Skull Splitter ACTIVATED** -Axes.Skills.SS.Refresh=[[GREEN]]Your [[YELLOW]]Skull Splitter [[GREEN]]ability is refreshed! -Axes.Skills.SS.Other.Off=[[RED]]Skull Splitter[[GREEN]] has worn off for [[YELLOW]]{0} -Axes.Skills.SS.Other.On=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Skull Splitter! -Axes.Skillup=[[YELLOW]]Axes skill increased by {0}. Total ({1}) - -#EXCAVATION -Excavation.Ability.Lower=[[GRAY]]**YOU LOWER YOUR SHOVEL** -Excavation.Ability.Ready=[[GREEN]]**YOU READY YOUR SHOVEL** -Excavation.Effect.0=Giga Drill Breaker (ABILITY) -Excavation.Effect.1=3x Drop Rate, 3x EXP, +Speed -Excavation.Effect.2=Treasure Hunter -Excavation.Effect.3=Ability to dig for treasure -Excavation.Effect.Length=[[RED]]Giga Drill Breaker Length: [[YELLOW]]{0}s -Excavation.Listener=Excavation: -Excavation.SkillName=EXCAVATION -Excavation.Skills.GigaDrillBreaker.Off=[[RED]]**Giga Drill Breaker has worn off** -Excavation.Skills.GigaDrillBreaker.On=[[GREEN]]**GIGA DRILL BREAKER ACTIVATED** -Excavation.Skills.GigaDrillBreaker.Refresh=[[GREEN]]Your [[YELLOW]]Giga Drill Breaker [[GREEN]]ability is refreshed! -Excavation.Skills.GigaDrillBreaker.Other.Off=[[RED]]Giga Drill Breaker[[GREEN]] has worn off for [[YELLOW]]{0} -Excavation.Skills.GigaDrillBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Giga Drill Breaker! -Excavation.Skillup=[[YELLOW]]Excavation skill increased by {0}. Total ({1}) - -#FISHING -Fishing.Ability.Info=[[RED]]Magic Hunter: [[GRAY]] **Improves With Treasure Hunter Rank** -Fishing.Ability.Locked.0=LOCKED UNTIL 150+ SKILL (SHAKE) -Fishing.Ability.Rank=[[RED]]Treasure Hunter Rank: [[YELLOW]]{0}/5 -Fishing.Ability.Shake=[[RED]]Shake: [[YELLOW]]Tear items off mobs, mutilating them in the process ;_; -Fishing.Effect.0=Treasure Hunter (Passive) -Fishing.Effect.1=Fish up misc. objects -Fishing.Effect.2=Magic Hunter -Fishing.Effect.3=Find Enchanted Items -Fishing.Effect.4=Shake (vs. Entities) -Fishing.Effect.5=Shake items off of mobs w/ fishing pole -Fishing.ItemFound=[[GRAY]]Treasure found! -Fishing.Listener=Fishing: -Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch... -Fishing.SkillName=FISHING -Fishing.Skillup=[[YELLOW]]Fishing skill increased by {0}. Total ({1}) - -#HERBALISM -Herbalism.Ability.0=Green Terra (ABILITY) -Herbalism.Ability.1=Spread the Terra, 3x Drops -Herbalism.Ability.2=Green Thumb (Wheat) -Herbalism.Ability.3=Auto-Plants wheat when harvesting -Herbalism.Ability.4=Green Thumb (Cobble/Stone Brick) -Herbalism.Ability.5=Cobblestone/Stone Brick -> Mossy w/ Seeds -Herbalism.Ability.6=Farmer's Diet -Herbalism.Ability.7=Improves hunger restored from farmed foods -Herbalism.Ability.8=Double Drops (All Herbs) -Herbalism.Ability.9=Double the normal loot -Herbalism.Ability.DoubleDropChance=[[RED]]Double Drop Chance: [[YELLOW]]{0}% -Herbalism.Ability.FD=[[RED]]Farmers Diet: [[YELLOW]]Rank {0} -Herbalism.Ability.GTh.Chance=[[RED]]Green Thumb Chance: [[YELLOW]]{0}% -Herbalism.Ability.GTh.Fail=[[RED]]**GREEN THUMB FAIL** -Herbalism.Ability.GTh.Length=[[RED]]Green Terra Length: [[YELLOW]]{0}s -Herbalism.Ability.GTh.Stage=[[RED]]Green Thumb Stage: [[YELLOW]] Wheat grows in stage {0} -Herbalism.Ability.GTh=[[GREEN]]**GREEN THUMB** -Herbalism.Ability.Lower=[[GRAY]]**YOU LOWER YOUR HOE** -Herbalism.Ability.Ready=[[GREEN]]**YOU READY YOUR HOE** -Herbalism.Listener=Herbalism: -Herbalism.SkillName=HERBALISM -Herbalism.Skills.GTe.Off=[[RED]]**Green Terra has worn off** -Herbalism.Skills.GTe.On=[[GREEN]]**GREEN TERRA ACTIVATED** -Herbalism.Skills.GTe.Refresh=[[GREEN]]Your [[YELLOW]]Green Terra [[GREEN]]ability is refreshed! -Herbalism.Skills.GTe.Other.Off=[[RED]]Green Terra[[GREEN]] has worn off for [[YELLOW]]{0} -Herbalism.Skills.GTe.Other.On=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Green Terra! -Herbalism.Skillup=[[YELLOW]]Herbalism skill increased by {0}. Total ({1}) - -#MINING -Mining.Ability.0=Super Breaker (ABILITY) -Mining.Ability.1=Speed+, Triple Drop Chance -Mining.Ability.2=Double Drops -Mining.Ability.3=Double the normal loot -Mining.Ability.4=Blast Mining -Mining.Ability.5=Bonuses to mining with TNT -Mining.Ability.6=Bigger Bombs -Mining.Ability.7=Increases TNT explosion radius -Mining.Ability.8=Demolitions Expertise -Mining.Ability.9=Decreases damage from TNT explosions -Mining.Ability.Length=[[RED]]Super Breaker Length: [[YELLOW]]{0}s -Mining.Ability.Locked.0=LOCKED UNTIL 125+ SKILL (BLAST MINING) -Mining.Ability.Locked.1=LOCKED UNTIL 250+ SKILL (BIGGER BOMBS) -Mining.Ability.Locked.2=LOCKED UNTIL 500+ SKILL (DEMOLITIONS EXPERTISE) -Mining.Ability.Lower=[[GRAY]]**YOU LOWER YOUR PICKAXE** -Mining.Ability.Ready=[[GREEN]]**YOU READY YOUR PICKAXE** -Mining.Effect.Decrease=[[RED]]Demolitions Expert Damage Decrease: [[YELLOW]]{0}% -Mining.Effect.Drop.Chance=[[RED]]Double Drop Chance: [[YELLOW]]{0}% -Mining.Listener=Mining: -Mining.SkillName=MINING -Mining.Skills.SuperBreaker.Off=[[RED]]**Super Breaker has worn off** -Mining.Skills.SuperBreaker.On=[[GREEN]]**SUPER BREAKER ACTIVATED** -Mining.Skills.SuperBreaker.Other.Off=[[RED]]Super Breaker[[GREEN]] has worn off for [[YELLOW]]{0} -Mining.Skills.SuperBreaker.Other.On=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Super Breaker! -Mining.Skills.SuperBreaker.Refresh=[[GREEN]]Your [[YELLOW]]Super Breaker [[GREEN]]ability is refreshed! -Mining.Skillup=[[YELLOW]]Mining skill increased by {0}. Total ({1}) - -#Blast Mining -Mining.Blast.Boom=[[GRAY]]**BOOM** -Mining.Blast.Effect.0=+35% ore yield -Mining.Blast.Effect.1=+40% ore yield -Mining.Blast.Effect.2=+45% ore yield, no debris -Mining.Blast.Effect.3=+50% ore yield, no debris -Mining.Blast.Effect.4=+55% ore yield, no debris, double drops -Mining.Blast.Effect.5=+60% ore yield, no debris, double drops -Mining.Blast.Effect.6=+65% ore yield, no debris, triple drops -Mining.Blast.Effect.7=+70% ore yield, no debris, triple drops -Mining.Blast.Radius.Increase=[[RED]]Blast Radius Increase: [[YELLOW]]+{0} -Mining.Blast.Rank=[[RED]]Blast Mining: [[YELLOW]] Rank {0} [[GRAY]]({1}) -Mining.Blast.Other.On=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Blast Mining! -Mining.Blast.Refresh=[[GREEN]]Your [[YELLOW]]Blast Mining [[GREEN]]ability is refreshed! - -#REPAIR -Repair.Effects.0=Repair -Repair.Effects.1=Repair Iron Tools & Armor -Repair.Effects.2=Repair Mastery -Repair.Effects.3=Increased repair amount -Repair.Effects.4=Super Repair -Repair.Effects.5=Double effectiveness -Repair.Effects.6=Diamond Repair ({0}+ SKILL) -Repair.Effects.7=Repair Diamond Tools & Armor -Repair.Effects.8=Arcane Forging -Repair.Effects.9=Repair magic items -Repair.Listener.Anvil=[[DARK_RED]]You have placed an anvil, anvils can repair tools and armor. -Repair.Listener=Repair: -Repair.SkillName=REPAIR -Repair.Skills.AdeptDiamond=[[DARK_RED]]You're not skilled enough to repair Diamond. -Repair.Skills.AdeptGold=[[DARK_RED]]You're not skilled enough to repair Gold. -Repair.Skills.AdeptIron=[[DARK_RED]]You're not skilled enough to repair Iron. -Repair.Skills.AdeptStone=[[DARK_RED]]You're not skilled enough to repair Stone. -Repair.Skills.FeltEasy=[[GRAY]]That felt easy. -Repair.Skills.FullDurability=[[GRAY]]That is at full durability. -Repair.Skills.Mastery=[[RED]]Repair Mastery: [[YELLOW]]Extra {0}% durability restored -Repair.Skills.StackedItems=[[DARK_RED]]You can't repair stacked items. -Repair.Skills.Super.Chance=[[RED]]Super Repair Chance: [[YELLOW]]{0}% -Repair.Skillup=[[YELLOW]]Repair skill increased by {0}. Total ({1}) - -##Arcane Forging -Repair.Arcane.Chance.Downgrade=[[GRAY]]AF Downgrade Chance: [[YELLOW]]{0}% -Repair.Arcane.Chance.Success=[[GRAY]]AF Success Rate: [[YELLOW]]{0}% -Repair.Arcane.Downgrade=[[RED]]Arcane power has decreased for this item. -Repair.Arcane.Fail=[[RED]]Arcane power has permanently left the item. -Repair.Arcane.Lost=[[RED]]You were not skilled enough to keep any enchantments. -Repair.Arcane.Perfect=[[GREEN]]You have sustained the arcane energies in this item. -Repair.Arcane.Rank=[[RED]]Arcane Forging: [[YELLOW]]Rank {0}/4 - -#SWORDS -Swords.Ability.Lower=[[GRAY]]**YOU LOWER YOUR SWORD** -Swords.Ability.Ready=[[GREEN]]**YOU READY YOUR SWORD** -Swords.Combat.Bleed.Chance=[[RED]]Bleed Chance: [[YELLOW]]{0} % -Swords.Combat.Bleed.Length=[[RED]]Bleed Length: [[YELLOW]]{0} ticks -Swords.Combat.Bleeding.Stopped=[[GRAY]]The bleeding has [[GREEN]]stopped[[GRAY]]! -Swords.Combat.Bleeding=[[GREEN]]**ENEMY BLEEDING** -Swords.Combat.Counter.Chance=[[RED]]Counter Attack Chance: [[YELLOW]]{0}% -Swords.Combat.Counter.Hit=[[DARK_RED]]Hit with a counter-attack! -Swords.Combat.Countered=[[GREEN]]**COUNTER-ATTACKED** -Swords.Combat.Parry.Chance=[[RED]]Parry Chance: [[YELLOW]]{0} % -Swords.Combat.SS.Struck=[[DARK_RED]]Struck by SERRATED STRIKES! -Swords.Effect.0=Counter Attack -Swords.Effect.1=Reflect 50% of damage taken -Swords.Effect.2=Serrated Strikes (ABILITY) -Swords.Effect.3=25% DMG AoE, Bleed+ AoE -Swords.Effect.4=Serrated Strikes Bleed+ -Swords.Effect.5=5 Tick Bleed -Swords.Effect.6=Parrying -Swords.Effect.7=Negates Damage -Swords.Effect.8=Bleed -Swords.Effect.9=Apply a bleed DoT -Swords.Listener=Swords: -Swords.SkillName=SWORDS -Swords.Skills.SS.Off=[[RED]]**Serrated Strikes has worn off** -Swords.Skills.SS.On=[[GREEN]]**SERRATED STRIKES ACTIVATED** -Swords.Skills.SS.Refresh=[[GREEN]]Your [[YELLOW]]Serrated Strikes [[GREEN]]ability is refreshed! -Swords.Skills.SS.Other.Off=[[RED]]Serrated Strikes[[GREEN]] has worn off for [[YELLOW]]{0} -Swords.Skills.SS.Other.On=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Serrated Strikes! -Swords.SkillUp=[[YELLOW]]Swords skill increased by {0}. Total ({1}) -Swords.SS.Length=[[RED]]Serrated Strikes Length: [[YELLOW]]{0}s -Swords.SS.Note=[[GRAY]]NOTE: [[YELLOW]]1 Tick happens every 2 seconds - -#TAMING -Taming.Ability.Bonus.0=Environmentally Aware -Taming.Ability.Bonus.1=Wolves avoid danger -Taming.Ability.Bonus.2=Thick Fur -Taming.Ability.Bonus.3=Halved Damage, Fire Resistance -Taming.Ability.Bonus.4=Shock Proof -Taming.Ability.Bonus.5=Explosives do 1/6 normal damage -Taming.Ability.Bonus.6=Sharpened Claws -Taming.Ability.Bonus.7=+2 Damage -Taming.Ability.Bonus.8=Fast Food Service -Taming.Ability.Bonus.9=50% Chance for heal on attack -Taming.Ability.Locked.0=LOCKED UNTIL 100+ SKILL (ENVIRONMENTALLY AWARE) -Taming.Ability.Locked.1=LOCKED UNTIL 250+ SKILL (THICK FUR) -Taming.Ability.Locked.2=LOCKED UNTIL 500+ SKILL (SHOCK PROOF) -Taming.Ability.Locked.3=LOCKED UNTIL 750+ SKILL (SHARPENED CLAWS) -Taming.Ability.Locked.4=LOCKED UNTIL 50+ SKILL (FAST FOOD SERVICE) -Taming.Combat.Chance.Gore=[[RED]]Gore Chance: [[YELLOW]]{0}% -Taming.Effect.0=Beast Lore -Taming.Effect.1=Bone-whacking inspects wolves/ocelots -Taming.Effect.10=Shock Proof -Taming.Effect.11=Explosive Damage Reduction -Taming.Effect.12=Call of the Wild -Taming.Effect.13=Summon an animal to your side -Taming.Effect.14=[[GRAY]]COTW HOW-TO: Crouch and right click with {0} Bones/Fish in hand -Taming.Effect.15=Fast Food Service -Taming.Effect.16=Chance for wolves to heal on attack -Taming.Effect.2=Gore -Taming.Effect.3=Critical Strike that applies Bleed -Taming.Effect.4=Sharpened Claws -Taming.Effect.5=Damage Bonus -Taming.Effect.6=Environmentally Aware -Taming.Effect.7=Cactus/Lava Phobia, Fall DMG Immune -Taming.Effect.8=Thick Fur -Taming.Effect.9=DMG Reduction, Fire Resistance -Taming.Listener.Wolf=[[DARK_GRAY]]Your wolf scurries back to you... -Taming.Listener=Taming: -Taming.SkillName=TAMING -Taming.Skillup=[[YELLOW]]Taming skill increased by {0}. Total ({1}) -Taming.Summon.Complete=[[GREEN]]Summoning complete -Taming.Summon.Fail.Ocelot=[[RED]]You have too many ocelots nearby to summon any more. -Taming.Summon.Fail.Wolf=[[RED]]You have too many wolves nearby to summon any more. - -#UNARMED -Unarmed.Ability.Beserk.Length=[[RED]]Berserk Length: [[YELLOW]]{0}s -Unarmed.Ability.Bonus.0=Iron Arm Style -Unarmed.Ability.Bonus.1=+{0} DMG Upgrade -Unarmed.Ability.Chance.ArrowDeflect=[[RED]]Arrow Deflect Chance: [[YELLOW]]{0}% -Unarmed.Ability.Chance.Disarm=[[RED]]Disarm Chance: [[YELLOW]]{0}% -Unarmed.Ability.Lower=[[GRAY]]**YOU LOWER YOUR FISTS** -Unarmed.Ability.Ready=[[GREEN]]**YOU READY YOUR FISTS** -Unarmed.Effect.0=Berserk (ABILITY) -Unarmed.Effect.1=+50% DMG, Breaks weak materials -Unarmed.Effect.2=Disarm (Players) -Unarmed.Effect.3=Drops the foes item held in hand -Unarmed.Effect.4=Iron Arm Style -Unarmed.Effect.5=Hardens your arm over time -Unarmed.Effect.6=Arrow Deflect -Unarmed.Effect.7=Deflect arrows -Unarmed.Listener=Unarmed: -Unarmed.SkillName=UNARMED -Unarmed.Skills.Berserk.Off=[[RED]]**Berserk has worn off** -Unarmed.Skills.Berserk.On=[[GREEN]]**BERSERK ACTIVATED** -Unarmed.Skills.Berserk.Other.Off=[[RED]]Berserk[[GREEN]] has worn off for [[YELLOW]]{0} -Unarmed.Skills.Berserk.Other.On=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Berserk! -Unarmed.Skills.Berserk.Refresh=[[GREEN]]Your [[YELLOW]]Berserk [[GREEN]]ability is refreshed! -Unarmed.Skillup=[[YELLOW]]Unarmed skill increased by {0}. Total ({1}) - -#WOODCUTTING -Woodcutting.Ability.0=Leaf Blower -Woodcutting.Ability.1=Blow away leaves -Woodcutting.Ability.Chance.DDrop=[[RED]]Double Drop Chance: [[YELLOW]]{0}% -Woodcutting.Ability.Length=[[RED]]Tree Feller Length: [[YELLOW]]{0}s -Woodcutting.Ability.Locked.0=LOCKED UNTIL 100+ SKILL (LEAF BLOWER) -Woodcutting.Effect.0=Tree Feller (ABILITY) -Woodcutting.Effect.1=Make trees explode -Woodcutting.Effect.2=Leaf Blower -Woodcutting.Effect.3=Blow Away Leaves -Woodcutting.Effect.4=Double Drops -Woodcutting.Effect.5=Double the normal loot -Woodcutting.Listener=Woodcutting: -Woodcutting.SkillName=WOODCUTTING -Woodcutting.Skills.TreeFeller.Off=[[RED]]**Tree Feller has worn off** -Woodcutting.Skills.TreeFeller.On=[[GREEN]]**TREE FELLER ACTIVATED** -Woodcutting.Skills.TreeFeller.Refresh=[[GREEN]]Your [[YELLOW]]Tree Feller [[GREEN]]ability is refreshed! -Woodcutting.Skills.TreeFeller.Other.Off=[[RED]]Tree Feller[[GREEN]] has worn off for [[YELLOW]]{0} -Woodcutting.Skills.TreeFeller.Other.On=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Tree Feller! -Woodcutting.Skills.TreeFeller.Splinter=[[RED]]YOUR AXE SPLINTERS INTO DOZENS OF PIECES! -Woodcutting.Skills.TreeFellerThreshold=[[RED]]That tree is too large! -Woodcutting.Skillup=[[YELLOW]]Woodcutting skill increased by {0}. Total ({1}) - -#ABILITIY -##generic -Ability.Generic.Off=Ability use toggled off -Ability.Generic.On=Ability use toggled on -Ability.Generic.Refresh=[[GREEN]]**ABILITIES REFRESHED!** -Ability.Generic.Template.Lock=[[GRAY]]{0} -Ability.Generic.Template=[[RED]]{0}: [[YELLOW]]{1} - -#COMBAT -Combat.ArrowDeflect=[[WHITE]]**ARROW DEFLECT** -Combat.BeastLore=[[GREEN]]**BEAST LORE** -Combat.BeastLoreHealth=[[DARK_AQUA]]Health ([[GREEN]]{0}[[DARK_AQUA]]/{1}) -Combat.BeastLoreOwner=[[DARK_AQUA]]Owner ([[RED]]{0}[[DARK_AQUA]]) -Combat.BurningArrowHit=[[DARK_RED]]You were struck by a burning arrow! -Combat.Gore=[[GREEN]]**GORED** Combat.Ignition=[[RED]]**IGNITION** -Combat.StruckByGore=[[RED]]**YOU HAVE BEEN GORED** -Combat.TargetDazed=Target was [[DARK_RED]]Dazed +Combat.BurningArrowHit=[[DARK_RED]]You were struck by a burning arrow\! Combat.TouchedFuzzy=[[DARK_RED]]Touched Fuzzy. Felt Dizzy. - -#COMMANDS -##generic +Combat.TargetDazed=Target was [[DARK_RED]]Dazed +Combat.StruckByGore=[[RED]]**STRUCK BY GORE** +Combat.Gore=[[GREEN]]**GORE** +Combat.ArrowDeflect=[[WHITE]]**ARROW DEFLECT** +Item.ChimaeraWingFail=**CHIMAERA WING FAILED\!** +Item.ChimaeraWingPass=**CHIMAERA WING** +Item.InjuredWait=You were injured recently and must wait to use this. [[YELLOW]]({0}s) +m.mccPartyCommands=[[GREEN]]--PARTY COMMANDS-- +m.mccParty=[party name] [[RED]]- Create/Join designated party +m.mccPartyQ=[[RED]]- Leave your current party +m.mccPartyToggle=[[RED]] - Toggle Party Chat +m.mccPartyInvite=[player name] [[RED]]- Send party invite +m.mccPartyAccept=[[RED]]- Accept party invite +m.mccPartyTeleport=[party member name] [[RED]]- Teleport to party member +m.mccOtherCommands=[[GREEN]]--OTHER COMMANDS-- +m.mccStats=- View your mcMMO stats +m.mccLeaderboards=- Leaderboards +m.mccToggleAbility=- Toggle ability activation with right click +m.mccAdminToggle=- Toggle admin chat +m.mccInspect=[playername] [[RED]]- View detailed player info +m.mccMmoedit=[playername] [skill] [newvalue] [[RED]]- Modify target +m.mccMcGod=- God Mode +m.mccSkillInfo=[skillname] [[RED]]- View detailed information about a skill +m.mccModDescription=[[RED]]- Read brief mod description +m.SkillHeader=[[RED]]-----[][[GREEN]]{0}[[RED]][]----- +m.XPGain=[[DARK_GRAY]]XP GAIN: [[WHITE]]{0} +m.EffectsTemplate=[[DARK_AQUA]]{0}: [[GREEN]]{1} +m.AbilityLockTemplate=[[GRAY]]{0} +m.AbilityBonusTemplate=[[RED]]{0}: [[YELLOW]]{1} +m.Effects=EFFECTS +m.YourStats=YOUR STATS +m.SkillTaming=TAMING +m.XPGainTaming=Animal Taming, or combat w/ your wolves +m.EffectsTaming1_0=Beast Lore +m.EffectsTaming2_0=Gore +m.EffectsTaming2_1=Critical Strike that applies Bleed +m.EffectsTaming3_0=Sharpened Claws +m.EffectsTaming3_1=Damage Bonus +m.EffectsTaming4_0=Environmentally Aware +m.EffectsTaming4_1=Cactus/Lava Phobia, Fall DMG Immune +m.EffectsTaming5_0=Thick Fur +m.EffectsTaming5_1=DMG Reduction, Fire Resistance +m.EffectsTaming6_0=Shock Proof +m.EffectsTaming6_1=Explosive Damage Reduction +m.AbilLockTaming1=LOCKED UNTIL 100+ SKILL (ENVIRONMENTALLY AWARE) +m.AbilLockTaming2=LOCKED UNTIL 250+ SKILL (THICK FUR) +m.AbilLockTaming3=LOCKED UNTIL 500+ SKILL (SHOCK PROOF) +m.AbilLockTaming4=LOCKED UNTIL 750+ SKILL (SHARPENED CLAWS) +m.AbilBonusTaming1_0=Environmentally Aware +m.AbilBonusTaming1_1=Wolves avoid danger +m.AbilBonusTaming2_0=Thick Fur +m.AbilBonusTaming2_1=Halved Damage, Fire Resistance +m.AbilBonusTaming3_0=Shock Proof +m.AbilBonusTaming3_1=Explosives do 1/6 normal damage +m.AbilBonusTaming4_0=Sharpened Claws +m.AbilBonusTaming4_1=+2 Damage +m.TamingGoreChance=[[RED]]Gore Chance: [[YELLOW]]{0}% +m.SkillWoodCutting=WOODCUTTING +m.XPGainWoodCutting=Chopping down trees +m.EffectsWoodCutting1_0=Tree Feller (ABILITY) +m.EffectsWoodCutting1_1=Make trees explode +m.EffectsWoodCutting2_0=Leaf Blower +m.EffectsWoodCutting2_1=Blow Away Leaves +m.EffectsWoodCutting3_0=Double Drops +m.EffectsWoodCutting3_1=Double the normal loot +m.AbilLockWoodCutting1=LOCKED UNTIL 100+ SKILL (LEAF BLOWER) +m.AbilBonusWoodCutting1_0=Leaf Blower +m.AbilBonusWoodCutting1_1=Blow away leaves +m.WoodCuttingDoubleDropChance=[[RED]]Double Drop Chance: [[YELLOW]]{0}% +m.WoodCuttingTreeFellerLength=[[RED]]Tree Feller Length: [[YELLOW]]{0}s +m.SkillArchery=ARCHERY +m.XPGainArchery=Attacking Monsters +m.EffectsArchery1_0=Skill Shot +m.EffectsArchery1_1=Increases damage done by Bows +m.EffectsArchery2_0=Daze (Players) +m.EffectsArchery2_1=Disorients foes and deals 4 DMG +m.EffectsArchery3_0=Damage+ +m.EffectsArchery3_1=Modifies Damage +m.EffectsArchery4_0=Arrow Retrieval +m.EffectsArchery4_1=Chance to retrieve arrows from corpses +m.ArcheryDazeChance=[[RED]]Chance to Daze: [[YELLOW]]{0}% +m.ArcheryRetrieveChance=[[RED]]Chance to Retrieve Arrows: [[YELLOW]]{0}% +m.ArcheryIgnitionLength=[[RED]]Length of Ignition: [[YELLOW]]{0} seconds +m.ArcheryDamagePlus=[[RED]]Damage+ (Rank{0}): [[YELLOW]]Bonus {0} damage +m.SkillAxes=AXES +m.XPGainAxes=Attacking Monsters +m.EffectsAxes1_0=Skull Splitter (ABILITY) +m.EffectsAxes1_1=Deal AoE Damage +m.EffectsAxes2_0=Critical Strikes +m.EffectsAxes2_1=Double Damage +m.EffectsAxes3_0=Axe Mastery +m.EffectsAxes3_1=Adds bonus DMG +m.EffectsAxes4_0=Impact +m.EffectsAxes4_1=Strike with enough force to shatter armor +m.EffectsAxes5_0=Greater Impact +m.EffectsAxes5_1=Deal bonus damage to unarmored foes +m.AbilLockAxes1=LOCKED UNTIL 500+ SKILL (AXE MASTERY) +m.AbilBonusAxes1_0=Axe Mastery +m.AbilBonusAxes1_1=Bonus {0} damage +m.AbilBonusAxes2_0=Impact +m.AbilBonusAxes2_1=Deal {0} DMG to armor +m.AbilBonusAxes3_0=Greater Impact +m.AbilBonusAxes3_1=Deal {0} Bonus DMG to the unarmored +m.AxesCritChance=[[RED]]Chance to critically strike: [[YELLOW]]{0}% +m.AxesSkullLength=[[RED]]Skull Splitter Length: [[YELLOW]]{0}s +m.SkillSwords=SWORDS +m.XPGainSwords=Attacking Monsters +m.EffectsSwords1_0=Counter Attack +m.EffectsSwords1_1=Reflect 50% of damage taken +m.EffectsSwords2_0=Serrated Strikes (ABILITY) +m.EffectsSwords2_1=25% DMG AoE, Bleed+ AoE +m.EffectsSwords3_0=Serrated Strikes Bleed+ +m.EffectsSwords3_1=5 Tick Bleed +m.EffectsSwords4_0=Parrying +m.EffectsSwords4_1=Negates Damage +m.EffectsSwords5_0=Bleed +m.EffectsSwords5_1=Apply a bleed DoT +m.SwordsCounterAttChance=[[RED]]Counter Attack Chance: [[YELLOW]]{0}% +m.SwordsBleedLength=[[RED]]Bleed Length: [[YELLOW]]{0} ticks +m.SwordsBleedChance=[[RED]]Bleed Chance: [[YELLOW]]{0} % +m.SwordsParryChance=[[RED]]Parry Chance: [[YELLOW]]{0} % +m.SwordsSSLength=[[RED]]Serrated Strikes Length: [[YELLOW]]{0}s +m.SwordsTickNote=[[GRAY]]NOTE: [[YELLOW]]1 Tick happens every 2 seconds +m.SkillAcrobatics=ACROBATICS +m.XPGainAcrobatics=Falling +m.EffectsAcrobatics1_0=Roll +m.EffectsAcrobatics1_1=Reduces or Negates damage +m.EffectsAcrobatics2_0=Graceful Roll +m.EffectsAcrobatics2_1=Twice as effective as Roll +m.EffectsAcrobatics3_0=Dodge +m.EffectsAcrobatics3_1=Reduce damage by half +m.AcrobaticsRollChance=[[RED]]Roll Chance: [[YELLOW]]{0}% +m.AcrobaticsGracefulRollChance=[[RED]]Graceful Roll Chance: [[YELLOW]]{0}% +m.AcrobaticsDodgeChance=[[RED]]Dodge Chance: [[YELLOW]]{0}% +m.SkillMining=MINING +m.XPGainMining=Mining Stone & Ore +m.EffectsMining1_0=Super Breaker (ABILITY) +m.EffectsMining1_1=Speed+, Triple Drop Chance +m.EffectsMining2_0=Double Drops +m.EffectsMining2_1=Double the normal loot +m.EffectsMining2_0=Double Drops +m.EffectsMining2_1=Double the normal loot +m.MiningDoubleDropChance=[[RED]]Double Drop Chance: [[YELLOW]]{0}% +m.MiningSuperBreakerLength=[[RED]]Super Breaker Length: [[YELLOW]]{0}s +m.SkillRepair=REPAIR +m.XPGainRepair=Repairing +m.EffectsRepair1_0=Repair +m.EffectsRepair1_1=Repair Iron Tools & Armor +m.EffectsRepair2_0=Repair Mastery +m.EffectsRepair2_1=Increased repair amount +m.EffectsRepair3_0=Super Repair +m.EffectsRepair3_1=Double effectiveness +m.EffectsRepair4_0=Diamond Repair ({0}+ SKILL) +m.EffectsRepair4_1=Repair Diamond Tools & Armor +m.RepairRepairMastery=[[RED]]Repair Mastery: [[YELLOW]]Extra {0}% durability restored +m.RepairSuperRepairChance=[[RED]]Super Repair Chance: [[YELLOW]]{0}% +m.SkillUnarmed=UNARMED +m.XPGainUnarmed=Attacking Monsters +m.EffectsUnarmed1_0=Berserk (ABILITY) +m.EffectsUnarmed1_1=+50% DMG, Breaks weak materials +m.EffectsUnarmed2_0=Disarm (Players) +m.EffectsUnarmed2_1=Drops the foes item held in hand +m.EffectsUnarmed3_0=Iron Arm Style +m.EffectsUnarmed3_1=Hardens your arm over time +m.EffectsUnarmed5_0=Arrow Deflect +m.EffectsUnarmed5_1=Deflect arrows +m.AbilBonusUnarmed2_0=Iron Arm Style +m.AbilBonusUnarmed2_1=+{0} DMG Upgrade +m.UnarmedArrowDeflectChance=[[RED]]Arrow Deflect Chance: [[YELLOW]]{0}% +m.UnarmedDisarmChance=[[RED]]Disarm Chance: [[YELLOW]]{0}% +m.UnarmedBerserkLength=[[RED]]Berserk Length: [[YELLOW]]{0}s +m.SkillHerbalism=HERBALISM +m.XPGainHerbalism=Harvesting Herbs +m.EffectsHerbalism1_0=Green Terra (ABILITY) +m.EffectsHerbalism1_1=Spread the Terra, 3x Drops +m.EffectsHerbalism2_0=Green Thumb (Wheat) +m.EffectsHerbalism2_1=Auto-Plants wheat when harvesting +m.EffectsHerbalism3_0=Green Thumb (Cobble/Stone Brick) +m.EffectsHerbalism3_1=Cobblestone/Stone Brick -> Mossy w/ Seeds +m.EffectsHerbalism4_0=Farmer's Diet +m.EffectsHerbalism4_1=Improves hunger restored from herbalist foods +m.EffectsHerbalism5_0=Double Drops (All Herbs) +m.EffectsHerbalism5_1=Double the normal loot +m.HerbalismGreenTerraLength=[[RED]]Green Terra Length: [[YELLOW]]{0}s +m.HerbalismGreenThumbChance=[[RED]]Green Thumb Chance: [[YELLOW]]{0}% +m.HerbalismGreenThumbStage=[[RED]]Green Thumb Stage: [[YELLOW]] Wheat grows in stage {0} +m.HerbalismDoubleDropChance=[[RED]]Double Drop Chance: [[YELLOW]]{0}% +m.HerbalismFoodPlus=[[RED]]Farmers Diet: [[YELLOW]]Rank {0} +m.SkillExcavation=EXCAVATION +m.XPGainExcavation=Digging and finding treasures +m.EffectsExcavation1_0=Giga Drill Breaker (ABILITY) +m.EffectsExcavation1_1=3x Drop Rate, 3x EXP, +Speed +m.EffectsExcavation2_0=Treasure Hunter +m.EffectsExcavation2_1=Ability to dig for treasure +m.ExcavationGigaDrillBreakerLength=[[RED]]Giga Drill Breaker Length: [[YELLOW]]{0}s +mcBlockListener.PlacedAnvil=[[DARK_RED]]You have placed an anvil, anvils can repair tools and armor. +mcEntityListener.WolfComesBack=[[DARK_GRAY]]Your wolf scurries back to you... +mcPlayerListener.AbilitiesOff=Ability use toggled off +mcPlayerListener.AbilitiesOn=Ability use toggled on +mcPlayerListener.AbilitiesRefreshed=[[GREEN]]**ABILITIES REFRESHED\!** +mcPlayerListener.AcrobaticsSkill=Acrobatics: +mcPlayerListener.ArcherySkill=Archery: +mcPlayerListener.AxesSkill=Axes: +mcPlayerListener.ExcavationSkill=Excavation: +mcPlayerListener.GodModeDisabled=[[YELLOW]]mcMMO Godmode Disabled +mcPlayerListener.GodModeEnabled=[[YELLOW]]mcMMO Godmode Enabled +mcPlayerListener.GreenThumb=[[GREEN]]**GREEN THUMB** +mcPlayerListener.GreenThumbFail=[[RED]]**GREEN THUMB FAIL** +mcPlayerListener.HerbalismSkill=Herbalism: +mcPlayerListener.MiningSkill=Mining: +mcPlayerListener.NoPermission=[[DARK_RED]]Insufficient permissions. +mcPlayerListener.NoSkillNote=[[DARK_GRAY]]If you don't have access to a skill it will not be shown here. +mcPlayerListener.NotInParty=[[RED]]You are not in a party. +mcPlayerListener.InviteSuccess=[[GREEN]]Invite sent successfully. +mcPlayerListener.ReceivedInvite1=[[RED]]ALERT: [[GREEN]]You have received a party invite for {0} from {1} +mcPlayerListener.ReceivedInvite2=[[YELLOW]]Type [[GREEN]]/{0}[[YELLOW]] to accept the invite +mcPlayerListener.InviteAccepted=[[GREEN]]Invite Accepted. You have joined party {0} +mcPlayerListener.NoInvites=[[RED]]You have no invites at this time +mcPlayerListener.YouAreInParty=[[GREEN]]You are in party {0} +mcPlayerListener.PartyMembers=[[GREEN]]Party Members +mcPlayerListener.LeftParty=[[RED]]You have left that party +mcPlayerListener.JoinedParty=Joined Party: {0} +mcPlayerListener.PartyChatOn=Party Chat only [[GREEN]]On +mcPlayerListener.PartyChatOff=Party Chat only [[RED]]Off +mcPlayerListener.AdminChatOn=Admin Chat only [[GREEN]]On +mcPlayerListener.AdminChatOff=Admin Chat only [[RED]]Off +mcPlayerListener.MOTD=[[BLUE]]This server is running mcMMO {0} type [[YELLOW]]/{1}[[BLUE]] for help. +mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki +mcPlayerListener.PowerLevel=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0} +mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Leaderboard-- +mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Leaderboard-- +mcPlayerListener.RepairSkill=Repair: +mcPlayerListener.SwordsSkill=Swords: +mcPlayerListener.TamingSkill=Taming: +mcPlayerListener.UnarmedSkill=Unarmed: +mcPlayerListener.WoodcuttingSkill=Woodcutting: +mcPlayerListener.YourStats=[[GREEN]][mcMMO] Stats +Party.InformedOnJoin={0} [[GREEN]] has joined your party +Party.InformedOnQuit={0} [[GREEN]] has left your party +Skills.YourGreenTerra=[[GREEN]]Your [[YELLOW]]Green Terra [[GREEN]]ability is refreshed! +Skills.YourTreeFeller=[[GREEN]]Your [[YELLOW]]Tree Feller [[GREEN]]ability is refreshed! +Skills.YourSuperBreaker=[[GREEN]]Your [[YELLOW]]Super Breaker [[GREEN]]ability is refreshed! +Skills.YourSerratedStrikes=[[GREEN]]Your [[YELLOW]]Serrated Strikes [[GREEN]]ability is refreshed! +Skills.YourBerserk=[[GREEN]]Your [[YELLOW]]Berserk [[GREEN]]ability is refreshed! +Skills.YourSkullSplitter=[[GREEN]]Your [[YELLOW]]Skull Splitter [[GREEN]]ability is refreshed! +Skills.YourGigaDrillBreaker=[[GREEN]]Your [[YELLOW]]Giga Drill Breaker [[GREEN]]ability is refreshed! +Skills.TooTired=[[RED]]You are too tired to use that ability again. +Skills.ReadyHoe=[[GREEN]]**YOU READY YOUR HOE** +Skills.LowerHoe=[[GRAY]]**YOU LOWER YOUR HOE** +Skills.ReadyAxe=[[GREEN]]**YOU READY YOUR AXE** +Skills.LowerAxe=[[GRAY]]**YOU LOWER YOUR AXE** +Skills.ReadyFists=[[GREEN]]**YOU READY YOUR FISTS** +Skills.LowerFists=[[GRAY]]**YOU LOWER YOUR FISTS** +Skills.ReadyPickAxe=[[GREEN]]**YOU READY YOUR PICKAXE** +Skills.LowerPickAxe=[[GRAY]]**YOU LOWER YOUR PICKAXE** +Skills.ReadyShovel=[[GREEN]]**YOU READY YOUR SHOVEL** +Skills.LowerShovel=[[GRAY]]**YOU LOWER YOUR SHOVEL** +Skills.ReadySword=[[GREEN]]**YOU READY YOUR SWORD** +Skills.LowerSword=[[GRAY]]**YOU LOWER YOUR SWORD** +Skills.BerserkOn=[[GREEN]]**BERSERK ACTIVATED** +Skills.BerserkPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Berserk! +Skills.GreenTerraOn=[[GREEN]]**GREEN TERRA ACTIVATED** +Skills.GreenTerraPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Green Terra! +Skills.TreeFellerOn=[[GREEN]]**TREE FELLER ACTIVATED** +Skills.TreeFellerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Tree Feller! +Skills.SuperBreakerOn=[[GREEN]]**SUPER BREAKER ACTIVATED** +Skills.SuperBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Super Breaker! +Skills.SerratedStrikesOn=[[GREEN]]**SERRATED STRIKES ACTIVATED** +Skills.SerratedStrikesPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Serrated Strikes! +Skills.SkullSplitterOn=[[GREEN]]**SKULL SPLITTER ACTIVATED** +Skills.SkullSplitterPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Skull Splitter! +Skills.GigaDrillBreakerOn=[[GREEN]]**GIGA DRILL BREAKER ACTIVATED** +Skills.GigaDrillBreakerPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Giga Drill Breaker! +Skills.GreenTerraOff=[[RED]]**Green Terra has worn off** +Skills.TreeFellerOff=[[RED]]**Tree Feller has worn off** +Skills.SuperBreakerOff=[[RED]]**Super Breaker has worn off** +Skills.SerratedStrikesOff=[[RED]]**Serrated Strikes has worn off** +Skills.BerserkOff=[[RED]]**Berserk has worn off** +Skills.SkullSplitterOff=[[RED]]**Skull Splitter has worn off** +Skills.GigaDrillBreakerOff=[[RED]]**Giga Drill Breaker has worn off** +Skills.TamingUp=[[YELLOW]]Taming skill increased by {0}. Total ({1}) +Skills.AcrobaticsUp=[[YELLOW]]Acrobatics skill increased by {0}. Total ({1}) +Skills.ArcheryUp=[[YELLOW]]Archery skill increased by {0}. Total ({1}) +Skills.SwordsUp=[[YELLOW]]Swords skill increased by {0}. Total ({1}) +Skills.AxesUp=[[YELLOW]]Axes skill increased by {0}. Total ({1}) +Skills.UnarmedUp=[[YELLOW]]Unarmed skill increased by {0}. Total ({1}) +Skills.HerbalismUp=[[YELLOW]]Herbalism skill increased by {0}. Total ({1}) +Skills.MiningUp=[[YELLOW]]Mining skill increased by {0}. Total ({1}) +Skills.WoodcuttingUp=[[YELLOW]]Woodcutting skill increased by {0}. Total ({1}) +Skills.RepairUp=[[YELLOW]]Repair skill increased by {0}. Total ({1}) +Skills.ExcavationUp=[[YELLOW]]Excavation skill increased by {0}. Total ({1}) +Skills.FeltEasy=[[GRAY]]That felt easy. +Skills.StackedItems=[[DARK_RED]]You can't repair stacked items +Skills.NeedMore=[[DARK_RED]]You need more +Skills.AdeptDiamond=[[DARK_RED]]You're not skilled enough to repair Diamond. +Skills.FullDurability=[[GRAY]]That is at full durability. +Skills.Disarmed=[[DARK_RED]]You have been disarmed! +m.LVL=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]]) +Combat.BeastLore=[[GREEN]]**BEAST LORE** +Combat.BeastLoreOwner=[[DARK_AQUA]]Owner ([[RED]]{0}[[DARK_AQUA]]) +Combat.BeastLoreHealth=[[DARK_AQUA]]Health ([[GREEN]]{0}[[DARK_AQUA]]/{1}) mcMMO.Description=[[DARK_AQUA]]About the [[YELLOW]]mcMMO[[DARK_AQUA]] Project:,[[GOLD]]mcMMO is an [[RED]]open source[[GOLD]] RPG mod created in February 2011,[[GOLD]]by [[BLUE]]nossr50[[GOLD]]. The goal is to provide a quality RPG experience.,[[DARK_AQUA]]Tips:,[[GOLD]] - [[GREEN]]Use [[RED]]/mcc[[GREEN]] to see commands,[[GOLD]] - [[GREEN]]Type [[RED]]/SKILLNAME[[GREEN]] to see detailed skill info,[[DARK_AQUA]]Developers:,[[GOLD]] - [[GREEN]]nossr50 [[BLUE]](Project Lead),[[GOLD]] - [[GREEN]]GJ [[BLUE]](Senior Developer),[[GOLD]] - [[GREEN]]NuclearW [[BLUE]](Developer),[[DARK_AQUA]]Useful Links:,[[GOLD]] - [[GREEN]]issues.mcmmo.org[[GOLD]] Bug Reporting,[[GOLD]] - [[GREEN]]#mcmmo @ irc.esper.net[[GOLD]] IRC Chat,[[GOLD]] - [[GREEN]]http://bit.ly/H6XwFb[[GOLD]] Bukkit Forum Thread -Commands.AdminChat.Off=Admin Chat only [[RED]]Off -Commands.AdminChat.On=Admin Chat only [[GREEN]]On -Commands.AdminToggle=- Toggle admin chat -Commands.DoesNotExist= [[RED]]Player does not exist in the database! -Commands.GodMode.Disabled=[[YELLOW]]mcMMO Godmode Disabled -Commands.GodMode.Enabled=[[YELLOW]]mcMMO Godmode Enabled -Commands.GodMode.Forbidden=[mcMMO] God Mode not permitted on this world (See Permissions) -Commands.Inspect=[playername] [[RED]]- View detailed player info -Commands.Invite.Accepted=[[GREEN]]Invite Accepted. You have joined party {0} -Commands.Invite.Success=[[GREEN]]Invite sent successfully. -Commands.Leaderboards=- Leaderboards -Commands.mcgod=- God Mode -Commands.mmoedit=[playername] [skill] [newvalue] [[RED]]- Modify target -Commands.ModDescription=[[RED]]- Read brief mod description -Commands.NoConsole=This command does not support console usage. -Commands.Other=[[GREEN]]--OTHER COMMANDS-- -Commands.Party.Accept=[[RED]]- Accept party invite -Commands.Party.Chat.Off=Party Chat only [[RED]]Off -Commands.Party.Chat.On=Party Chat only [[GREEN]]On -Commands.Party.Commands=[[GREEN]]--PARTY COMMANDS-- -Commands.Party.Invite.0=[[RED]]ALERT: [[GREEN]]You have received a party invite for {0} from {1} -Commands.Party.Invite.0=[[YELLOW]]Type [[GREEN]]/{0}[[YELLOW]] to accept the invite -Commands.Party.Invite=[player name] [[RED]]- Send party invite -Commands.Party.Join=Joined Party: {0} -Commands.Party.Leave=[[RED]]You have left that party -Commands.Party.Members=[[GREEN]]Party Members -Commands.Party.None=[[RED]]You are not in a party. -Commands.Party.Quit=[[RED]]- Leave your current party -Commands.Party.Teleport=[party member name] [[RED]]- Teleport to party member -Commands.Party.Toggle=[[RED]] - Toggle Party Chat -Commands.Party=[party name] [[RED]]- Create/Join designated party -Commands.PowerLevel.Leaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Leaderboard-- -Commands.PowerLevel=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0} -Commands.SkillInfo=[skillname] [[RED]]- View detailed information about a skill -Commands.Stats.Self=YOUR STATS -Commands.Stats=- View your mcMMO stats -Commands.ToggleAbility=- Toggle ability activation with right click -mcMMO.MOTD=[[BLUE]]This server is running mcMMO {0} type [[YELLOW]]/{1}[[BLUE]] for help. -mcMMO.NoInvites=[[RED]]You have no invites at this time -mcMMO.NoPermission=[[DARK_RED]]Insufficient permissions. -mcMMO.NoSkillNote=[[DARK_GRAY]]If you don't have access to a skill it will not be shown here. -mcMMO.Wiki=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki - -##party -Commands.Party.InParty=[[GREEN]]You are in party {0} -Party.CouldNotKick=[[DARK_RED]]Could not kick player {0} -Party.CouldNotSetOwner=[[DARK_RED]]Could not set owner to {0} -Party.Forbidden=[mcMMO] Parties not permitted on this world (See Permissions) +Party.Locked=[[RED]]Party is locked, only party leader may invite. +Party.IsntLocked=[[GRAY]]Party is not locked +Party.Unlocked=[[GRAY]]Party is unlocked Party.Help1=[[RED]]Proper usage is [[YELLOW]]/{0} [[WHITE]][[YELLOW]] or [[WHITE]]'q' [[YELLOW]]to quit Party.Help2=[[RED]]To join a passworded party use [[YELLOW]]/{0} [[WHITE]] Party.Help3=[[RED]]Consult /{0} ? for more information @@ -429,48 +315,103 @@ Party.Help6=[[RED]]To unlock your party use [[YELLOW]]/{0} [[WHITE]]unlock Party.Help7=[[RED]]To password protect your party use [[YELLOW]]/{0} [[WHITE]]password Party.Help8=[[RED]]To kick a player from your party use [[YELLOW]]/{0} [[WHITE]]kick Party.Help9=[[RED]]To transfer ownership of your party use [[YELLOW]]/{0} [[WHITE]]owner -Party.InformedOnJoin={0} [[GREEN]] has joined your party -Party.InformedOnQuit={0} [[GREEN]] has left your party -Party.InvalidName=[[DARK_RED]]That is not a valid party name -Party.IsntLocked=[[GRAY]]Party is not locked -Party.Locked=[[RED]]Party is locked, only party leader may invite. -Party.NotInYourParty=[[DARK_RED]]{0} is not in your party Party.NotOwner=[[DARK_RED]]You are not the party owner +Party.InvalidName=[[DARK_RED]]That is not a valid party name Party.PasswordSet=[[GREEN]]Party password set to {0} -Party.Unlocked=[[GRAY]]Party is unlocked - -##xp -Commands.XPGain.Acrobatics=Falling -Commands.XPGain.Archery=Attacking Monsters -Commands.XPGain.Axes=Attacking Monsters -Commands.XPGain.Excavation=Digging and finding treasures -Commands.XPGain.Fishing=Fishing (Go figure!) -Commands.XPGain.Herbalism=Harvesting Herbs -Commands.XPGain.Mining=Mining Stone & Ore -Commands.XPGain.Repair=Repairing -Commands.XPGain.Swords=Attacking Monsters -Commands.XPGain.Taming=Animal Taming, or combat w/ your wolves -Commands.XPGain.Unarmed=Attacking Monsters -Commands.XPGain.WoodCutting=Chopping down trees -Commands.XPGain=[[DARK_GRAY]]XP GAIN: [[WHITE]]{0} -Commands.xplock.invalid=[[RED]]That is not a valid skillname! Try /xplock mining -Commands.xplock.locked=[[GOLD]]Your XP BAR is now locked to {0}! -Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]! -Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!! +Party.CouldNotKick=[[DARK_RED]]Could not kick player {0} +Party.NotInYourParty=[[DARK_RED]]{0} is not in your party +Party.CouldNotSetOwner=[[DARK_RED]]Could not set owner to {0} Commands.xprate.proper=[[RED]]Proper usage to change the XP rate is /xprate Commands.xprate.proper2=[[RED]]Proper usage to reset the XP rate to default is /xprate reset Commands.xprate.proper3=[[RED]]Please specify true or false to indicate if this is an xp event or not +Commands.xprate.over=[[RED]]mcMMO XP Rate Event is OVER!! Commands.xprate.started=[[GOLD]]XP EVENT FOR mcMMO HAS STARTED! Commands.xprate.started2=[[GOLD]]mcMMO XP RATE IS NOW {0}x! -XPRate.Event= [[GOLD]]mcMMO is currently in an XP rate event! XP rate is {0}x! - -#EFFECTS -##generic -Effects.Effects=EFFECTS -Effects.Level=[[DARK_GRAY]]LVL: [[GREEN]]{0} [[DARK_AQUA]]XP[[YELLOW]]([[GOLD]]{1}[[YELLOW]]/[[GOLD]]{2}[[YELLOW]]) -Effects.Template=[[DARK_AQUA]]{0}: [[GREEN]]{1} - -#GUIDES +Commands.xplock.locked=[[GOLD]]Your XP BAR is now locked to {0}! +Commands.xplock.unlocked=[[GOLD]]Your XP BAR is now [[GREEN]]UNLOCKED[[GOLD]]! +Commands.xplock.invalid=[[RED]]That is not a valid skillname! Try /xplock mining +m.SkillFishing=FISHING +mcPlayerListener.FishingSkill=Fishing: +Skills.FishingUp=[[YELLOW]]Fishing skill increased by {0}. Total ({1}) +Repair.LostEnchants=[[RED]]You were not skilled enough to keep any enchantments. +Repair.ArcanePerfect=[[GREEN]]You have sustained the arcane energies in this item. +Repair.Downgraded=[[RED]]Arcane power has decreased for this item. +Repair.ArcaneFailed=[[RED]]Arcane power has permanently left the item. +m.EffectsRepair5_0=Arcane Forging +m.EffectsRepair5_1=Repair magic items +m.ArcaneForgingRank=[[RED]]Arcane Forging: [[YELLOW]]Rank {0}/4 +m.ArcaneEnchantKeepChance=[[GRAY]]AF Success Rate: [[YELLOW]]{0}% +m.ArcaneEnchantDowngradeChance=[[GRAY]]AF Downgrade Chance: [[YELLOW]]{0}% +Fishing.MagicFound=[[GRAY]]You feel a touch of magic with this catch... +Fishing.ItemFound=[[GRAY]]Treasure found! +m.SkillFishing=FISHING +m.XPGainFishing=Fishing (Go figure!) +m.EffectsFishing1_0=Treasure Hunter (Passive) +m.EffectsFishing1_1=Fish up misc objects +m.EffectsFishing2_0=Magic Hunter +m.EffectsFishing2_1=Find Enchanted Items +m.EffectsFishing3_0=Shake (vs. Entities) +m.EffectsFishing3_1=Shake items off of mobs w/ fishing pole +m.FishingRank=[[RED]]Treasure Hunter Rank: [[YELLOW]]{0}/5 +m.FishingMagicInfo=[[RED]]Magic Hunter: [[GRAY]] **Improves With Treasure Hunter Rank** +m.ShakeInfo=[[RED]]Shake: [[YELLOW]]Tear items off mobs, mutilating them in the process ;_; +m.AbilLockFishing1=LOCKED UNTIL 150+ SKILL (SHAKE) +m.TamingSummon=[[GREEN]]Summoning complete +m.TamingSummonWolfFailed=[[RED]]You have too many wolves nearby to summon any more. +m.TamingSummonOcelotFailed=[[RED]]You have too many ocelots nearby to summon any more. +m.EffectsTaming7_0=Call of the Wild +m.EffectsTaming8_0=Fast Food Service +m.EffectsTaming8_1=Chance for wolves to heal on attack +m.AbilLockTaming5=LOCKED UNTIL 50+ SKILL (FAST FOOD SERVICE) +m.AbilBonusTaming5_0=Fast Food Service +m.AbilBonusTaming5_1=50% Chance for heal on attack +Swords.StoppedBleeding=[[GRAY]]The bleeding has [[GREEN]]stopped[[GRAY]]! +m.EffectsMining3_0=Blast Mining +m.EffectsMining3_1=Bonuses to mining with TNT +m.EffectsMining4_0=Bigger Bombs +m.EffectsMining4_1=Increases TNT explosion radius +m.EffectsMining5_0=Demolitions Expertise +m.EffectsMining5_1=Decreases damage from TNT explosions +m.AbilLockMining1=LOCKED UNTIL 125+ SKILL (BLAST MINING) +m.AbilLockMining2=LOCKED UNTIL 250+ SKILL (BIGGER BOMBS) +m.AbilLockMining3=LOCKED UNTIL 500+ SKILL (DEMOLITIONS EXPERTISE) +m.MiningBiggerBombs=[[RED]]Blast Radius Increase: [[YELLOW]]+{0} +m.MiningDemolitionsExpertDamageDecrease=[[RED]]Demolitions Expert Damage Decrease: [[YELLOW]]{0}% +m.MiningBlastMining=[[RED]]Blast Mining: [[YELLOW]] Rank {0} [[GRAY]]({1}) +m.BlastMining1 = +35% ore yield +m.BlastMining2 = +40% ore yield +m.BlastMining3 = +45% ore yield, no debris +m.BlastMining4 = +50% ore yield, no debris +m.BlastMining5 = +55% ore yield, no debris, double drops +m.BlastMining6 = +60% ore yield, no debris, double drops +m.BlastMining7 = +65% ore yield, no debris, triple drops +m.BlastMining8 = +70% ore yield, no debris, triple drops +Skills.AdeptStone=[[DARK_RED]]You're not skilled enough to repair Stone. +Skills.AdeptIron=[[DARK_RED]]You're not skilled enough to repair Iron. +Skills.AdeptGold=[[DARK_RED]]You're not skilled enough to repair Gold. +Skills.Woodcutting.TreeFellerThreshold=[[RED]]That tree is too large! +Axes.GreaterImpactOnSelf=[[RED]]**HIT BY GREATER IMPACT** +Axes.GreaterImpactOnEnemy=[[GREEN]]**STRUCK WITH GREAT FORCE** +Skills.BerserkPlayerOff=[[RED]]Berserk[[GREEN]] has worn off for [[YELLOW]]{0} +Skills.GreenTerraPlayerOff=[[RED]]Green Terra[[GREEN]] has worn off for [[YELLOW]]{0} +Skills.TreeFellerPlayerOff=[[RED]]Tree Feller[[GREEN]] has worn off for [[YELLOW]]{0} +Skills.SuperBreakerPlayerOff=[[RED]]Super Breaker[[GREEN]] has worn off for [[YELLOW]]{0} +Skills.SkullSplitterPlayerOff=[[RED]]Skull Splitter[[GREEN]] has worn off for [[YELLOW]]{0} +Skills.GigaDrillBreakerPlayerOff=[[RED]]Giga Drill Breaker[[GREEN]] has worn off for [[YELLOW]]{0} +Skills.SerratedStrikesPlayerOff=[[RED]]Serrated Strikes[[GREEN]] has worn off for [[YELLOW]]{0} +Skills.BlastMiningPlayer=[[GREEN]]{0}[[DARK_GREEN]] has used [[RED]]Blast Mining! +Skills.YourBlastMining=[[GREEN]]Your [[YELLOW]]Blast Mining [[GREEN]]ability is refreshed! +TreeFeller.AxeSplinters=[[RED]]YOUR AXE SPLINTERS INTO DOZENS OF PIECES +Acrobatics.GracefulRoll=[[GREEN]]**GRACEFUL ROLL** +Acrobatics.Dodge=[[GREEN]]**DODGE** +Acrobatics.Roll=**ROLL** +Axes.HitCritically=[[DARK_RED]]You were CRITICALLY hit! +Axes.CriticalHit=[[RED]]CRITICAL HIT! +Axes.HitByCleave=[[DARK_RED]]Struck by CLEAVE! +Swords.EnemyBleeding=[[GREEN]]**ENEMY BLEEDING** +Swords.HitBySerratedStrikes=[[DARK_RED]]Struck by SERRATED STRIKES! +Swords.CounterAttacked=[[GREEN]]**COUNTER-ATTACKED** +Swords.HitByCounterAttack=[[DARK_RED]]Hit with a counter-attack! Guides.Acrobatics=[[DARK_AQUA]]About Acrobatics:\n[[YELLOW]]Acrobatics is the art of moving gracefully in mcMMO.\n[[YELLOW]]It provides combat bonuses and environment damage bonuses.\n\n[[DARK_AQUA]]XP GAIN:\n[[YELLOW]]To gain XP in this skill you need to perform a dodge\n[[YELLOW]]in combat or survive falls from heights that damage you.\n\n[[DARK_AQUA]]How does Rolling work?\n[[YELLOW]]You have a passive chance when you take fall damage\n[[YELLOW]]to negate the damage done. You can hold the sneak button to\n[[YELLOW]]double your chances during the fall.\n[[YELLOW]]This triggers a Graceful Roll instead of a standard one.\n[[YELLOW]]Graceful Rolls are like regular rolls but are twice as likely to\n[[YELLOW]]occur and provide more damage safety than regular rolls.\n[[YELLOW]]Rolling chance is tied to your skill level\n[[DARK_AQUA]]How does Dodge work?\n[[YELLOW]]Dodge is a passive chance when you are\n[YELLOW]]injured in combat to halve the damage taken.\n[[YELLOW]]It is tied to your skill level. Guides.Archery=Guide coming soon... Guides.Axes=Guide coming soon... @@ -483,28 +424,21 @@ Guides.Swords=Guide coming soon... Guides.Taming=Guide coming soon... Guides.Unarmed=Guide coming soon... Guides.Woodcutting=Guide coming soon... - -#INSPECT -Inspect.Offline= [[RED]]That player is offline, inspecting offline players is limited to Ops! -Inspect.OfflineStats=mcMMO Stats for Offline Player [[YELLOW]]{0} -Inspect.Stats=[[GREEN]]mcMMO Stats for [[YELLOW]]{0} +GodMode.Forbidden=[mcMMO] God Mode not permitted on this world (See Permissions) +XPRate.Event = [[GOLD]]mcMMO is currently in an XP rate event! XP rate is {0}x! +BlastMining.Boom = [[GRAY]]**BOOM** +Party.Forbidden=[mcMMO] Parties not permitted on this world (See Permissions) +m.EffectsTaming7_1=Summon an animal to your side +m.EffectsTaming7_2=[[GRAY]]COTW HOW-TO: Crouch and right click with {0} Bones/Fish in hand +m.EffectsTaming1_1=Bone-whacking inspects wolves/ocelots +m.SkillStats=[[YELLOW]]{0}[[GREEN]]{1}[[DARK_AQUA]] XP([[GRAY]]{2}[[DARK_AQUA]]/[[GRAY]]{3}[[DARK_AQUA]]) Inspect.TooFar=[[RED]]You are too far away to inspect that player! - -#ITEMS -Item.ChimaeraWing.Fail=**CHIMAERA WING FAILED!** -Item.ChimaeraWing.Pass=**CHIMAERA WING** -Item.Injured.Wait=You were injured recently and must wait to use this. [[YELLOW]]({0}s) - -#SKILLS -Skills.Disarmed=[[DARK_RED]]You have been disarmed! -Skills.Header=[[RED]]-----[][[GREEN]]{0}[[RED]][]----- -Skills.Leaderboard.Listener=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Leaderboard-- -Skills.NeedMore=[[DARK_RED]]You need more -Skills.Stats=[[YELLOW]]{0}[[GREEN]]{1}[[DARK_AQUA]] XP([[GRAY]]{2}[[DARK_AQUA]]/[[GRAY]]{3}[[DARK_AQUA]]) -Skills.TooTired=[[RED]]You are too tired to use that ability again. - -#STATISTICS -Stats.Header.Combat=[[GOLD]]-=COMBAT SKILLS=- -Stats.Header.Gathering=[[GOLD]]-=GATHERING SKILLS=- -Stats.Header.Skills=[[GOLD]]-=MISC SKILLS=- -Stats.Own.Stats=[[GREEN]][mcMMO] Stats \ No newline at end of file +Inspect.Offline = [[RED]]That player is offline, inspecting offline players is limited to Ops! +Commands.DoesNotExist = [[RED]]Player does not exist in the database! +Inspect.Stats=[[GREEN]]mcMMO Stats for [[YELLOW]]{0} +Inspect.OfflineStats=mcMMO Stats for Offline Player [[YELLOW]]{0} +Stats.GatheringHeader=[[GOLD]]-=GATHERING SKILLS=- +Stats.CombatHeader=[[GOLD]]-=COMBAT SKILLS=- +Stats.MiscHeader=[[GOLD]]-=MISC SKILLS=- +m.ArcherySkillShot=[[RED]]Skill Shot Bonus Damage: [[YELLOW]]{0}% +Commands.NoConsole=This command does not support console usage. \ No newline at end of file From 35f62d4e4587023bdbd9bf3d4b49426d5352ab9b Mon Sep 17 00:00:00 2001 From: GJ Date: Tue, 17 Apr 2012 10:42:22 -0400 Subject: [PATCH 02/15] Fixed bug with Nether Wart not awarding XP. --- Changelog.txt | 3 ++- src/main/java/com/gmail/nossr50/skills/Herbalism.java | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Changelog.txt b/Changelog.txt index db865aeb2..b70d03990 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -13,7 +13,8 @@ Version 1.3.06-dev = Fixed bug where Herbalism required double drops permission to give XP = Fixed bug where {0} would be displayed in front of your power level in mcstats = Fixed mmoupdate not being useable from console - = Fixed bug with repairing wooden tools + = Fixed bug with repairing wooden tools + = Fixed bug with Nether Wart not awarding XP ! Changed mcremove to no longer kick players when they are removed from database ! Changed mcremove to work on offline users for FlatFile ! Changed PlayerProfile constructor to always take a boolean diff --git a/src/main/java/com/gmail/nossr50/skills/Herbalism.java b/src/main/java/com/gmail/nossr50/skills/Herbalism.java index 092a94757..9562242a7 100644 --- a/src/main/java/com/gmail/nossr50/skills/Herbalism.java +++ b/src/main/java/com/gmail/nossr50/skills/Herbalism.java @@ -90,6 +90,7 @@ public class Herbalism { case CROPS: case JACK_O_LANTERN: case MELON_BLOCK: + case NETHER_WARTS: case PUMPKIN: case RED_MUSHROOM: case RED_ROSE: From f6a6316b7a62d0f28090bc06a6b87f5cbbc4d7c7 Mon Sep 17 00:00:00 2001 From: GJ Date: Tue, 17 Apr 2012 15:21:23 -0400 Subject: [PATCH 03/15] Fixed bug with fishing treasures throwing an error when treasures list is empty. --- Changelog.txt | 3 ++- src/main/java/com/gmail/nossr50/skills/Fishing.java | 11 ++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index b70d03990..e3958d94c 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -14,7 +14,8 @@ Version 1.3.06-dev = Fixed bug where {0} would be displayed in front of your power level in mcstats = Fixed mmoupdate not being useable from console = Fixed bug with repairing wooden tools - = Fixed bug with Nether Wart not awarding XP + = Fixed bug with Nether Wart not awarding XP + = Fixed bug with fishing treasures when treasures list is empty ! Changed mcremove to no longer kick players when they are removed from database ! Changed mcremove to work on offline users for FlatFile ! Changed PlayerProfile constructor to always take a boolean diff --git a/src/main/java/com/gmail/nossr50/skills/Fishing.java b/src/main/java/com/gmail/nossr50/skills/Fishing.java index 96a6203e7..a74c5e82f 100644 --- a/src/main/java/com/gmail/nossr50/skills/Fishing.java +++ b/src/main/java/com/gmail/nossr50/skills/Fishing.java @@ -98,11 +98,13 @@ public class Fishing { } if (LoadProperties.fishingDrops) { - FishingTreasure treasure = rewards.get(random.nextInt(rewards.size())); + if (rewards.size() > 0) { + FishingTreasure treasure = rewards.get(random.nextInt(rewards.size())); - if (random.nextDouble() * 100 <= treasure.getDropChance()) { - Users.getProfile(player).addXP(SkillType.FISHING, treasure.getXp()); - theCatch.setItemStack(treasure.getDrop()); + if (random.nextDouble() * 100 <= treasure.getDropChance()) { + Users.getProfile(player).addXP(SkillType.FISHING, treasure.getXp()); + theCatch.setItemStack(treasure.getDrop()); + } } } else { @@ -115,7 +117,6 @@ public class Fishing { theCatch.getItemStack().setDurability((short) (random.nextInt(maxDurability))); //Change durability to random value } - m.mcDropItem(player.getLocation(), new ItemStack(Material.RAW_FISH)); //Always drop a fish PP.addXP(SkillType.FISHING, LoadProperties.mfishing); Skills.XpCheckSkill(SkillType.FISHING, player); } From f5ddf1bc0e74a2198d6efe77860631ecb91f5a39 Mon Sep 17 00:00:00 2001 From: GJ Date: Tue, 17 Apr 2012 16:22:57 -0400 Subject: [PATCH 04/15] Fixed bug with only getting one level when there was enough XP for multiple levels. Fixes MCCORE-191 --- Changelog.txt | 6 +++-- .../nossr50/datatypes/PlayerProfile.java | 25 +++++++++++++++++++ .../java/com/gmail/nossr50/skills/Repair.java | 1 + .../java/com/gmail/nossr50/skills/Skills.java | 16 ++++++------ 4 files changed, 37 insertions(+), 11 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index e3958d94c..36cf00037 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -15,14 +15,16 @@ Version 1.3.06-dev = Fixed mmoupdate not being useable from console = Fixed bug with repairing wooden tools = Fixed bug with Nether Wart not awarding XP - = Fixed bug with fishing treasures when treasures list is empty + = Fixed bug with fishing treasures when treasures list is empty + = Fixed bug with only getting one level when there was enough XP for multiple levels. ! Changed mcremove to no longer kick players when they are removed from database ! Changed mcremove to work on offline users for FlatFile ! Changed PlayerProfile constructor to always take a boolean ! Changed getPlayerProfile function to work for online & offline users ! Changed Archery's Daze to deal 4 DMG on proc (2 Hearts) ! Changed /addlevel command to work for offline users - ! Changed party & admin chat handling to be nicer to developers + ! Changed party & admin chat handling to be nicer to developers + ! Changed UpdateXPBar function to hopefully avoid errors Version 1.3.05 + Added Skill Shot to Archery which increases damage dealt by 10% every 50 skill levels (caps at 200%) diff --git a/src/main/java/com/gmail/nossr50/datatypes/PlayerProfile.java b/src/main/java/com/gmail/nossr50/datatypes/PlayerProfile.java index 17d14d8ed..01daf227a 100644 --- a/src/main/java/com/gmail/nossr50/datatypes/PlayerProfile.java +++ b/src/main/java/com/gmail/nossr50/datatypes/PlayerProfile.java @@ -964,6 +964,10 @@ public class PlayerProfile { return skillsXp.get(skillType); } + public void skillUp(SkillType skillType, int newValue) { + skills.put(skillType, skills.get(skillType) + newValue); + } + /** * Adds XP to the player, doesn't calculate for XP Rate * @@ -1038,6 +1042,27 @@ public class PlayerProfile { lastgained = skillType; } + /** + * Remove XP from a skill. + * + * @param skillType Type of skill to modify + * @param xp Amount of xp to remove + */ + public void removeXP(SkillType skillType, int xp) { + if (skillType.equals(SkillType.ALL)) { + for (SkillType skill : SkillType.values()) { + if (skill.equals(SkillType.ALL)) { + continue; + } + + skillsXp.put(skill, skillsXp.get(skill) - xp); + } + } + else { + skillsXp.put(skillType, skillsXp.get(skillType) - xp); + } + } + /** * Modify a skill level. * diff --git a/src/main/java/com/gmail/nossr50/skills/Repair.java b/src/main/java/com/gmail/nossr50/skills/Repair.java index 95187e73b..8a37dd84f 100644 --- a/src/main/java/com/gmail/nossr50/skills/Repair.java +++ b/src/main/java/com/gmail/nossr50/skills/Repair.java @@ -11,6 +11,7 @@ import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.PlayerInventory; + import org.getspout.spoutapi.SpoutManager; import org.getspout.spoutapi.player.SpoutPlayer; diff --git a/src/main/java/com/gmail/nossr50/skills/Skills.java b/src/main/java/com/gmail/nossr50/skills/Skills.java index 68909aace..b918469c8 100644 --- a/src/main/java/com/gmail/nossr50/skills/Skills.java +++ b/src/main/java/com/gmail/nossr50/skills/Skills.java @@ -189,14 +189,13 @@ public class Skills { while (PP.getSkillXpLevel(skillType) >= PP.getXpToLevel(skillType)) { if ((skillType.getMaxLevel() >= PP.getSkillLevel(skillType) + 1) && (m.getPowerLevelCap() >= PP.getPowerLevel() + 1)) { skillups++; - PP.addLevels(skillType, 1); + PP.skillUp(skillType, 1); McMMOPlayerLevelUpEvent eventToFire = new McMMOPlayerLevelUpEvent(player, skillType); Bukkit.getPluginManager().callEvent(eventToFire); } - else { - PP.addLevels(skillType, 0); - } + + PP.removeXP(skillType, PP.getXpToLevel(skillType)); } if (!LoadProperties.useMySQL) { @@ -212,15 +211,14 @@ public class Skills { if (sPlayer.isSpoutCraftEnabled()) { if (LoadProperties.xpbar) { - SpoutStuff.updateXpBar(sPlayer); + SpoutStuff.updateXpBar(player); } SpoutStuff.levelUpNotification(skillType, sPlayer); - + /* Update custom titles */ if(LoadProperties.showPowerLevel) { - sPlayer.setTitle(sPlayer.getName()+ "\n" + ChatColor.YELLOW + "P" + ChatColor.GOLD + "lvl" - + ChatColor.WHITE+"." + ChatColor.GREEN + String.valueOf(PP.getPowerLevel())); + sPlayer.setTitle(sPlayer.getName()+ "\n" + ChatColor.YELLOW + "P" + ChatColor.GOLD + "lvl" + ChatColor.WHITE + "." + ChatColor.GREEN + String.valueOf(PP.getPowerLevel())); } } else { @@ -237,7 +235,7 @@ public class Skills { SpoutPlayer sPlayer = (SpoutPlayer) player; if (sPlayer.isSpoutCraftEnabled()) { if (LoadProperties.xpbar) { - SpoutStuff.updateXpBar(sPlayer); + SpoutStuff.updateXpBar(player); } } } From ea7d1ce0e2f18101dc3413e9da05675548f1d9af Mon Sep 17 00:00:00 2001 From: GJ Date: Tue, 17 Apr 2012 22:17:56 -0400 Subject: [PATCH 05/15] Fixed issue with non-English locales not displaying power level with /mcstats & /inspect --- src/main/resources/locale/locale_de.properties | 2 +- src/main/resources/locale/locale_es_es.properties | 2 +- src/main/resources/locale/locale_fi.properties | 2 +- src/main/resources/locale/locale_fr.properties | 2 +- src/main/resources/locale/locale_it.properties | 2 +- src/main/resources/locale/locale_nl.properties | 2 +- src/main/resources/locale/locale_pl.properties | 2 +- src/main/resources/locale/locale_pt_br.properties | 2 +- src/main/resources/locale/locale_ru.properties | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/resources/locale/locale_de.properties b/src/main/resources/locale/locale_de.properties index b443d2e67..dcfb4e06e 100644 --- a/src/main/resources/locale/locale_de.properties +++ b/src/main/resources/locale/locale_de.properties @@ -227,7 +227,7 @@ mcPlayerListener.AdminChatOn=nur Adminchat [[YELLOW]]an mcPlayerListener.AdminChatOff=nur Adminchat [[RED]]aus mcPlayerListener.MOTD=[[YELLOW]]Auf diesem Server laeuft mcMMO {0}. Hilfe: [[AQUA]]/{1}[[YELLOW]] [[DARK_GRAY]] mcPlayerListener.WIKI=[[AQUA]]http://mcmmo.wikia.com[[YELLOW]] - mcMMO Wiki -mcPlayerListener.PowerLevel=[[DARK_RED]]POWER LEVEL: +mcPlayerListener.PowerLevel=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0} mcPlayerListener.PowerLevelLeaderboard=[[DARK_AQUA]]____ mcMMO[[YELLOW]] Power Level [[DARK_AQUA]]Rangliste ____ mcPlayerListener.SkillLeaderboard=[[DARK_AQUA]]____ mcMMO [[YELLOW]]{0}[[DARK_AQUA]] Rangliste ____ mcPlayerListener.RepairSkill=[[YELLOW]]Reparieren Skill [[DARK_AQUA]](Repair): diff --git a/src/main/resources/locale/locale_es_es.properties b/src/main/resources/locale/locale_es_es.properties index ff8cdc40d..78818f616 100644 --- a/src/main/resources/locale/locale_es_es.properties +++ b/src/main/resources/locale/locale_es_es.properties @@ -228,7 +228,7 @@ mcPlayerListener.AdminChatOn=Solo Chat de Admins [[GREEN]]Activado mcPlayerListener.AdminChatOff=Solo Chat de Admins [[RED]]Desactivado mcPlayerListener.MOTD=[[BLUE]]Este server esta ejecutando mcMMO {0} escribe [[YELLOW]]/{1}[[BLUE]] para obtener ayuda. mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki -mcPlayerListener.PowerLevel=[[DARK_RED]]NIVEL DE PODER: +mcPlayerListener.PowerLevel=[[DARK_RED]]NIVEL DE PODER: [[GREEN]]{0} mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Nivel de Poder [[YELLOW]]Ranking de lideres-- mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Ranking de lideres-- mcPlayerListener.RepairSkill=Reparar: diff --git a/src/main/resources/locale/locale_fi.properties b/src/main/resources/locale/locale_fi.properties index b23d5a30a..9bfba19c3 100644 --- a/src/main/resources/locale/locale_fi.properties +++ b/src/main/resources/locale/locale_fi.properties @@ -228,7 +228,7 @@ mcPlayerListener.AdminChatOn=Vain admin juttelu [[GREEN]]P mcPlayerListener.AdminChatOff=Vain admin juttelu [[RED]]Pois päältä mcPlayerListener.MOTD=[[BLUE]]Tällä serverillä on mcMMO {0} kirjoita [[YELLOW]]/{1}[[BLUE]] apua varten. mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki -mcPlayerListener.PowerLevel=[[DARK_RED]]VOIMATASO: +mcPlayerListener.PowerLevel=[[DARK_RED]]VOIMATASO: [[GREEN]]{0} mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Voimataso [[YELLOW]]Tulostaulukko-- mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Tulostaulukko-- mcPlayerListener.RepairSkill=[[YELLOW]]Korjaus: diff --git a/src/main/resources/locale/locale_fr.properties b/src/main/resources/locale/locale_fr.properties index e555c60a5..f47b38a94 100644 --- a/src/main/resources/locale/locale_fr.properties +++ b/src/main/resources/locale/locale_fr.properties @@ -228,7 +228,7 @@ mcPlayerListener.AdminChatOn=Admin Chat uniquement [[GREEN]]On mcPlayerListener.AdminChatOff=Admin Chat uniquement [[RED]]Off mcPlayerListener.MOTD=[[BLUE]]Ce serveur fonctionne avec mcMMO {0} [[YELLOW]]/{1}[[BLUE]] pour voir l'aide. mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki - [[YELLOW]]Traduit par avalondrey & Misa -mcPlayerListener.PowerLevel=[[DARK_RED]]POWER LEVEL: +mcPlayerListener.PowerLevel=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0} mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Leaderboard-- mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Leaderboard-- mcPlayerListener.RepairSkill=[[YELLOW]]Réparation (/Repair) : diff --git a/src/main/resources/locale/locale_it.properties b/src/main/resources/locale/locale_it.properties index 233f0a884..df15eab3d 100644 --- a/src/main/resources/locale/locale_it.properties +++ b/src/main/resources/locale/locale_it.properties @@ -230,7 +230,7 @@ mcPlayerListener.AdminChatOn=Admin Chat [[GREEN]]Attiva mcPlayerListener.AdminChatOff=Admin Chat [[RED]]Disattiva mcPlayerListener.MOTD=[[BLUE]]Questo server tiene McMmmo {0} scrivi [[YELLOW]]/{1}[[BLUE]] per la lista aiuti. mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki -mcPlayerListener.PowerLevel=[[DARK_RED]]Livello di potenza: +mcPlayerListener.PowerLevel=[[DARK_RED]]Livello di potenza: [[GREEN]]{0} mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Livello di potenza [[YELLOW]]Classifica-- mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Classifica-- mcPlayerListener.RepairSkill=Riparazioni: diff --git a/src/main/resources/locale/locale_nl.properties b/src/main/resources/locale/locale_nl.properties index 8e0b54b90..96526676e 100644 --- a/src/main/resources/locale/locale_nl.properties +++ b/src/main/resources/locale/locale_nl.properties @@ -234,7 +234,7 @@ mcPlayerListener.AdminChatOn=Alleen Admin Chat [[GREEN]]aan mcPlayerListener.AdminChatOff=Alleen Admin Chat [[RED]]uit mcPlayerListener.MOTD=[[BLUE]]Deze server werkt op mcMMO {0} type [[YELLOW]]/{1}[[BLUE]] voor hulp. mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki -mcPlayerListener.PowerLevel=[[DARK_RED]]POWER LEVEL: +mcPlayerListener.PowerLevel=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0} mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Highscore-- mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Highscore-- mcPlayerListener.RepairSkill=Repareren: diff --git a/src/main/resources/locale/locale_pl.properties b/src/main/resources/locale/locale_pl.properties index 3095ac8e3..2fc2e7a80 100644 --- a/src/main/resources/locale/locale_pl.properties +++ b/src/main/resources/locale/locale_pl.properties @@ -228,7 +228,7 @@ mcPlayerListener.AdminChatOn=Chat tylko dla adminow [[GREEN]]WLACZONY mcPlayerListener.AdminChatOff=Chat tylko dla adminow [[RED]]WYLACZONY mcPlayerListener.MOTD=[[BLUE]]Ten server uzywa plugina mcMMO {0} wpisz [[YELLOW]]/{1}[[BLUE]] aby uzyskac pomoc. mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Wiki -mcPlayerListener.PowerLevel=[[DARK_RED]]POZIOM MOCY: +mcPlayerListener.PowerLevel=[[DARK_RED]]POZIOM MOCY: [[GREEN]]{0} mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--Ranking [[BLUE]]poziomu mocy [[YELLOW]]mcMMO-- mcPlayerListener.SkillLeaderboard=[[YELLOW]]--Ranking [[BLUE]]{0}[[YELLOW]] mcMMO-- mcPlayerListener.RepairSkill=Naprawa: diff --git a/src/main/resources/locale/locale_pt_br.properties b/src/main/resources/locale/locale_pt_br.properties index 65887b87d..7c1fb9a03 100644 --- a/src/main/resources/locale/locale_pt_br.properties +++ b/src/main/resources/locale/locale_pt_br.properties @@ -234,7 +234,7 @@ mcPlayerListener.AdminChatOn=Chat do Admin [[GREEN]]On mcPlayerListener.AdminChatOff=Chat do Admin [[RED]]Off mcPlayerListener.MOTD=[[BLUE]]Esse Server está rodando o mcMMO {0} digite [[YELLOW]]/{1}[[BLUE]] para obter ajuda. mcPlayerListener.WIKI=[[BLUE]]Para mais informaçoes - [[GREEN]]http://mcmmo.wikia.com -mcPlayerListener.PowerLevel=[[RED]]NIVEL TOTAL: +mcPlayerListener.PowerLevel=[[RED]]NIVEL TOTAL: [[GREEN]]{0} mcPlayerListener.PowerLevelLeaderboard=[[BLUE]]-Classificaçao - [[GREEN]]Nível - [[WHITE]]Jogador- mcPlayerListener.SkillLeaderboard=[[BLUE]]-Classificaçao em [[GREEN]]{0} mcPlayerListener.RepairSkill=Reparaçao (Repair): diff --git a/src/main/resources/locale/locale_ru.properties b/src/main/resources/locale/locale_ru.properties index cc4dd9b2c..2b1bfdbae 100644 --- a/src/main/resources/locale/locale_ru.properties +++ b/src/main/resources/locale/locale_ru.properties @@ -228,7 +228,7 @@ mcPlayerListener.AdminChatOn= mcPlayerListener.AdminChatOff=Òîëüêî àäìèí ÷àò [[RED]]Âûêëþ÷åíî mcPlayerListener.MOTD=[[BLUE]]Íà ýòîì ñåðâåðå óñòàíîâëåí ïëàãèí McMMO {0} type [[YELLOW]]/{1}[[BLUE]] äëÿ ïîìîùè. mcPlayerListener.WIKI=[[GREEN]]http://mcmmo.wikia.com[[BLUE]] - mcMMO Âèêèïåäèÿ -mcPlayerListener.PowerLevel=[[DARK_RED]]Óðîâåíü óìåíèé: +mcPlayerListener.PowerLevel=[[DARK_RED]]Óðîâåíü óìåíèé: [[GREEN]]{0} mcPlayerListener.PowerLevelLeaderboard=[[YELLOW]]--mcMMO[[BLUE]] Óðîâåíü óìåíèé [[YELLOW]]Äîñêà Ëèäåðîâ-- mcPlayerListener.SkillLeaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Äîñêà Ëèäåðîâ-- mcPlayerListener.RepairSkill=Ïî÷èíêà: From e3e2def809b6cf32f5d865cb207adef82b07d8f5 Mon Sep 17 00:00:00 2001 From: GJ Date: Wed, 18 Apr 2012 08:19:49 -0400 Subject: [PATCH 06/15] Fixed issue with negative XP on level up. --- src/main/java/com/gmail/nossr50/skills/Skills.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/skills/Skills.java b/src/main/java/com/gmail/nossr50/skills/Skills.java index b918469c8..e841f548e 100644 --- a/src/main/java/com/gmail/nossr50/skills/Skills.java +++ b/src/main/java/com/gmail/nossr50/skills/Skills.java @@ -188,14 +188,16 @@ public class Skills { while (PP.getSkillXpLevel(skillType) >= PP.getXpToLevel(skillType)) { if ((skillType.getMaxLevel() >= PP.getSkillLevel(skillType) + 1) && (m.getPowerLevelCap() >= PP.getPowerLevel() + 1)) { + PP.removeXP(skillType, PP.getXpToLevel(skillType)); skillups++; PP.skillUp(skillType, 1); McMMOPlayerLevelUpEvent eventToFire = new McMMOPlayerLevelUpEvent(player, skillType); Bukkit.getPluginManager().callEvent(eventToFire); } - - PP.removeXP(skillType, PP.getXpToLevel(skillType)); + else { + PP.addLevels(skillType, 0); + } } if (!LoadProperties.useMySQL) { From 64871b4c370cf7daaccbcaad1170a85268722803 Mon Sep 17 00:00:00 2001 From: NuclearW Date: Wed, 18 Apr 2012 12:48:23 -0400 Subject: [PATCH 07/15] Fix formatting --- .../com/gmail/nossr50/listeners/mcPlayerListener.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/listeners/mcPlayerListener.java b/src/main/java/com/gmail/nossr50/listeners/mcPlayerListener.java index 8b4e16f60..6ae39a75b 100644 --- a/src/main/java/com/gmail/nossr50/listeners/mcPlayerListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/mcPlayerListener.java @@ -297,7 +297,6 @@ public class mcPlayerListener implements Listener { Set recipients = event.getRecipients(); Set intendedRecipients = new HashSet(); - String header = ""; ChatColor color = null; if (partyChat || adminChat) { @@ -310,7 +309,6 @@ public class mcPlayerListener implements Listener { } color = ChatColor.GREEN; - header = color + "[P] (" + PP.getParty() + ") "; for (Player x : plugin.getServer().getOnlinePlayers()) { if (Party.getInstance().inSameParty(player, x)) { @@ -318,21 +316,21 @@ public class mcPlayerListener implements Listener { } } + event.setFormat(color + "(" + ChatColor.WHITE + "%1$s" + color + ") %2$s"); } if (adminChat) { color = ChatColor.AQUA; - header = color + "[A] "; - for (Player x : plugin.getServer().getOnlinePlayers()) { if (x.isOp() || mcPermissions.getInstance().adminChat(x)) { intendedRecipients.add(x); } } + + event.setFormat(color + "{" + ChatColor.WHITE + "%1$s" + color + "} %2$s"); } recipients.retainAll(intendedRecipients); - event.setFormat(header + "<" + ChatColor.WHITE + "%1$s" + color + "> %2$s"); } } From 7c01fced68a1e7b386abe81b185ec3242ac7ce3e Mon Sep 17 00:00:00 2001 From: NuclearW Date: Wed, 18 Apr 2012 12:49:06 -0400 Subject: [PATCH 08/15] Admin chat dupe fix --- .../java/com/gmail/nossr50/commands/party/ACommand.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/commands/party/ACommand.java b/src/main/java/com/gmail/nossr50/commands/party/ACommand.java index 14ab0c893..e8c9bb9f2 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/ACommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/ACommand.java @@ -54,19 +54,11 @@ public class ACommand implements CommandExecutor { for (int i = 1; i <= args.length - 1; i++) { aMessage = aMessage + " " + args[i]; } - Users.getProfile(player).toggleAdminChat(); player.chat(aMessage); Users.getProfile(player).toggleAdminChat(); - String name = player.getName(); - String aPrefix = ChatColor.AQUA + "{" + ChatColor.WHITE + name + ChatColor.AQUA + "} "; - Bukkit.getLogger().info("[A]<" + name + "> " + aMessage); - for (Player herp : Bukkit.getServer().getOnlinePlayers()) { - if (mcPermissions.getInstance().adminChat(herp) || herp.isOp()) - herp.sendMessage(aPrefix + aMessage); - } return true; } From 54e945bf147aa3b0c3da54d2f95eca3a2b61ee90 Mon Sep 17 00:00:00 2001 From: NuclearW Date: Wed, 18 Apr 2012 13:01:07 -0400 Subject: [PATCH 09/15] Admin and Party chat events --- .../nossr50/commands/party/ACommand.java | 8 +++ .../nossr50/commands/party/PCommand.java | 8 +++ .../events/chat/McMMOAdminChatEvent.java | 62 ++++++++++++++++ .../events/chat/McMMOPartyChatEvent.java | 70 +++++++++++++++++++ .../nossr50/listeners/mcPlayerListener.java | 19 ++++- 5 files changed, 165 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/gmail/nossr50/events/chat/McMMOAdminChatEvent.java create mode 100644 src/main/java/com/gmail/nossr50/events/chat/McMMOPartyChatEvent.java diff --git a/src/main/java/com/gmail/nossr50/commands/party/ACommand.java b/src/main/java/com/gmail/nossr50/commands/party/ACommand.java index e8c9bb9f2..9f4d909de 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/ACommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/ACommand.java @@ -10,6 +10,7 @@ import org.bukkit.entity.Player; import com.gmail.nossr50.Users; import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.events.chat.McMMOAdminChatEvent; import com.gmail.nossr50.locale.mcLocale; public class ACommand implements CommandExecutor { @@ -26,6 +27,13 @@ public class ACommand implements CommandExecutor { aMessage = aMessage + " " + args[i]; } + McMMOAdminChatEvent chatEvent = new McMMOAdminChatEvent("Console", aMessage); + Bukkit.getPluginManager().callEvent(chatEvent); + + if(chatEvent.isCancelled()) return true; + + aMessage = chatEvent.getMessage(); + String aPrefix = ChatColor.AQUA + "{" + ChatColor.WHITE + "*Console*" + ChatColor.AQUA + "} "; Bukkit.getLogger().info("[A]<*Console*> " + aMessage); diff --git a/src/main/java/com/gmail/nossr50/commands/party/PCommand.java b/src/main/java/com/gmail/nossr50/commands/party/PCommand.java index bee20a978..5179adfc2 100644 --- a/src/main/java/com/gmail/nossr50/commands/party/PCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/party/PCommand.java @@ -10,6 +10,7 @@ import org.bukkit.entity.Player; import com.gmail.nossr50.Users; import com.gmail.nossr50.mcPermissions; import com.gmail.nossr50.datatypes.PlayerProfile; +import com.gmail.nossr50.events.chat.McMMOPartyChatEvent; import com.gmail.nossr50.locale.mcLocale; public class PCommand implements CommandExecutor { @@ -27,6 +28,13 @@ public class PCommand implements CommandExecutor { pMessage = pMessage + " " + args[i]; } + McMMOPartyChatEvent chatEvent = new McMMOPartyChatEvent("Console", args[0], pMessage); + Bukkit.getPluginManager().callEvent(chatEvent); + + if(chatEvent.isCancelled()) return true; + + pMessage = chatEvent.getMessage(); + String pPrefix = ChatColor.GREEN + "(" + ChatColor.WHITE + "*Console*" + ChatColor.GREEN + ") "; Bukkit.getLogger().info("[P](" + args[0] + ")" + "<*Console*> " + pMessage); diff --git a/src/main/java/com/gmail/nossr50/events/chat/McMMOAdminChatEvent.java b/src/main/java/com/gmail/nossr50/events/chat/McMMOAdminChatEvent.java new file mode 100644 index 000000000..0c7f86c32 --- /dev/null +++ b/src/main/java/com/gmail/nossr50/events/chat/McMMOAdminChatEvent.java @@ -0,0 +1,62 @@ +package com.gmail.nossr50.events.chat; + +import org.bukkit.event.Cancellable; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +/** + * Called when a chat is sent to the admin chat channel + */ +public class McMMOAdminChatEvent extends Event implements Cancellable { + private boolean cancelled; + private String sender, message; + + public McMMOAdminChatEvent(String sender, String message) { + this.sender = sender; + this.message = message; + } + + /** + * @return String name of the player who sent the chat, or "Console" + */ + public String getSender() { + return sender; + } + + /** + * @return String message that will be sent + */ + public String getMessage() { + return message; + } + + /** + * @param message String message to be sent in chat + */ + public void setMessage(String message) { + this.message = message; + } + + /** Rest of file is required boilerplate for custom events **/ + private static final HandlerList handlers = new HandlerList(); + + @Override + public HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } + + /** Following are required for Cancellable **/ + @Override + public boolean isCancelled() { + return cancelled; + } + + @Override + public void setCancelled(boolean cancelled) { + this.cancelled = cancelled; + } +} diff --git a/src/main/java/com/gmail/nossr50/events/chat/McMMOPartyChatEvent.java b/src/main/java/com/gmail/nossr50/events/chat/McMMOPartyChatEvent.java new file mode 100644 index 000000000..e527233ec --- /dev/null +++ b/src/main/java/com/gmail/nossr50/events/chat/McMMOPartyChatEvent.java @@ -0,0 +1,70 @@ +package com.gmail.nossr50.events.chat; + +import org.bukkit.event.Cancellable; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +/** + * Called when a chat is sent to a party channel + */ +public class McMMOPartyChatEvent extends Event implements Cancellable { + private boolean cancelled; + private String sender, party, message; + + public McMMOPartyChatEvent(String sender, String party, String message) { + this.sender = sender; + this.party = party; + this.message = message; + } + + /** + * @return String name of the player who sent the chat, or "Console" + */ + public String getSender() { + return sender; + } + + /** + * @return String name of the party the message will be sent to + */ + public String getParty() { + return party; + } + + /** + * @return String message that will be sent + */ + public String getMessage() { + return message; + } + + /** + * @param message String message to be sent in chat + */ + public void setMessage(String message) { + this.message = message; + } + + /** Rest of file is required boilerplate for custom events **/ + private static final HandlerList handlers = new HandlerList(); + + @Override + public HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } + + /** Following are required for Cancellable **/ + @Override + public boolean isCancelled() { + return cancelled; + } + + @Override + public void setCancelled(boolean cancelled) { + this.cancelled = cancelled; + } +} diff --git a/src/main/java/com/gmail/nossr50/listeners/mcPlayerListener.java b/src/main/java/com/gmail/nossr50/listeners/mcPlayerListener.java index 6ae39a75b..b1363e2ad 100644 --- a/src/main/java/com/gmail/nossr50/listeners/mcPlayerListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/mcPlayerListener.java @@ -39,6 +39,8 @@ import com.gmail.nossr50.spout.SpoutStuff; import com.gmail.nossr50.datatypes.AbilityType; import com.gmail.nossr50.datatypes.PlayerProfile; import com.gmail.nossr50.datatypes.SkillType; +import com.gmail.nossr50.events.chat.McMMOAdminChatEvent; +import com.gmail.nossr50.events.chat.McMMOPartyChatEvent; import com.gmail.nossr50.locale.mcLocale; import com.gmail.nossr50.party.Party; import com.gmail.nossr50.skills.BlastMining; @@ -300,9 +302,7 @@ public class mcPlayerListener implements Listener { ChatColor color = null; if (partyChat || adminChat) { - if (partyChat) { - if (!PP.inParty()) { player.sendMessage("You're not in a party, type /p to leave party chat mode."); //TODO: Use mcLocale return; @@ -310,6 +310,13 @@ public class mcPlayerListener implements Listener { color = ChatColor.GREEN; + McMMOPartyChatEvent chatEvent = new McMMOPartyChatEvent(player.getName(), PP.getParty(), event.getMessage()); + plugin.getServer().getPluginManager().callEvent(chatEvent); + + if(chatEvent.isCancelled()) return; + + event.setMessage(chatEvent.getMessage()); + for (Player x : plugin.getServer().getOnlinePlayers()) { if (Party.getInstance().inSameParty(player, x)) { intendedRecipients.add(x); @@ -321,6 +328,14 @@ public class mcPlayerListener implements Listener { if (adminChat) { color = ChatColor.AQUA; + + McMMOAdminChatEvent chatEvent = new McMMOAdminChatEvent(player.getName(), event.getMessage()); + plugin.getServer().getPluginManager().callEvent(chatEvent); + + if(chatEvent.isCancelled()) return; + + event.setMessage(chatEvent.getMessage()); + for (Player x : plugin.getServer().getOnlinePlayers()) { if (x.isOp() || mcPermissions.getInstance().adminChat(x)) { intendedRecipients.add(x); From 46648e2547353f13e172d615725e727ad0f52b17 Mon Sep 17 00:00:00 2001 From: NuclearW Date: Wed, 18 Apr 2012 13:18:25 -0400 Subject: [PATCH 10/15] Added ChatAPI Allows an external plugin to send admin and party chat In addition to previous events allows for full control of the chat channels --- .../java/com/gmail/nossr50/api/ChatAPI.java | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 src/main/java/com/gmail/nossr50/api/ChatAPI.java diff --git a/src/main/java/com/gmail/nossr50/api/ChatAPI.java b/src/main/java/com/gmail/nossr50/api/ChatAPI.java new file mode 100644 index 000000000..9c5582f93 --- /dev/null +++ b/src/main/java/com/gmail/nossr50/api/ChatAPI.java @@ -0,0 +1,64 @@ +package com.gmail.nossr50.api; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; + +import com.gmail.nossr50.Users; +import com.gmail.nossr50.mcPermissions; +import com.gmail.nossr50.events.chat.McMMOAdminChatEvent; +import com.gmail.nossr50.events.chat.McMMOPartyChatEvent; + +public class ChatAPI { + /** + * Send a message to all members of a party + *
+ * This function is designed for API usage. + * + * @param sender The name of the sender to display in the chat + * @param party The name of the party to send to + * @param message The message to send + */ + public void sendPartyChat(String sender, String party, String message) { + McMMOPartyChatEvent chatEvent = new McMMOPartyChatEvent(sender, party, message); + Bukkit.getPluginManager().callEvent(chatEvent); + + if(chatEvent.isCancelled()) return; + + String pPrefix = ChatColor.GREEN + "(" + ChatColor.WHITE + chatEvent.getSender() + ChatColor.GREEN + ") "; + + Bukkit.getLogger().info("[P](" + chatEvent.getParty() + ")" + "<" + chatEvent.getSender() + "> " + chatEvent.getMessage()); + + for (Player player : Bukkit.getServer().getOnlinePlayers()) { + if (Users.getProfile(player).inParty()) { + if (Users.getProfile(player).getParty().equalsIgnoreCase(chatEvent.getParty())) { + player.sendMessage(pPrefix + chatEvent.getMessage()); + } + } + } + } + + /** + * Send a message to administrators + *
+ * This function is designed for API usage. + * + * @param sender The name of the sender to display in the chat + * @param message The message to send + */ + public void sendAdminChat(String sender, String message) { + McMMOAdminChatEvent chatEvent = new McMMOAdminChatEvent(sender, message); + Bukkit.getPluginManager().callEvent(chatEvent); + + if(chatEvent.isCancelled()) return; + + String aPrefix = ChatColor.AQUA + "{" + ChatColor.WHITE + chatEvent.getSender() + ChatColor.AQUA + "} "; + + Bukkit.getLogger().info("[A]<" + chatEvent.getSender() + "> " + chatEvent.getMessage()); + + for (Player player : Bukkit.getServer().getOnlinePlayers()) { + if (mcPermissions.getInstance().adminChat(player) || player.isOp()) + player.sendMessage(aPrefix + chatEvent.getMessage()); + } + } +} From b512fe200397d9ba9a632d0a017c366fa318f8fb Mon Sep 17 00:00:00 2001 From: nossr50 Date: Wed, 18 Apr 2012 12:53:02 -0700 Subject: [PATCH 11/15] Made changes to the tree feller threshold --- Changelog.txt | 3 ++- src/main/java/com/gmail/nossr50/skills/WoodCutting.java | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index 36cf00037..6389a4028 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -16,7 +16,8 @@ Version 1.3.06-dev = Fixed bug with repairing wooden tools = Fixed bug with Nether Wart not awarding XP = Fixed bug with fishing treasures when treasures list is empty - = Fixed bug with only getting one level when there was enough XP for multiple levels. + = Fixed bug with only getting one level when there was enough XP for multiple levels. + ! Changed how the tree feller threshold worked for the better ! Changed mcremove to no longer kick players when they are removed from database ! Changed mcremove to work on offline users for FlatFile ! Changed PlayerProfile constructor to always take a boolean diff --git a/src/main/java/com/gmail/nossr50/skills/WoodCutting.java b/src/main/java/com/gmail/nossr50/skills/WoodCutting.java index e0ab7cf13..1197a3873 100644 --- a/src/main/java/com/gmail/nossr50/skills/WoodCutting.java +++ b/src/main/java/com/gmail/nossr50/skills/WoodCutting.java @@ -53,7 +53,7 @@ public class WoodCutting { * @param PP The PlayerProfile of the player */ private static void removeBlocks(ArrayList toBeFelled, Player player, PlayerProfile PP) { - if (toBeFelled.size() > LoadProperties.treeFellerThreshold) { + if (toBeFelled.size() >= LoadProperties.treeFellerThreshold) { player.sendMessage(mcLocale.getString("Skills.Woodcutting.TreeFellerThreshold")); return; } @@ -186,6 +186,10 @@ public class WoodCutting { */ private static void processTreeFelling(Block currentBlock, ArrayList toBeFelled) { Material type = currentBlock.getType(); + + if(toBeFelled.size() >= LoadProperties.treeFellerThreshold) { + return; + } if (type.equals(Material.LOG) || type.equals(Material.LEAVES)) { toBeFelled.add(currentBlock); From c265aad6d7109da86fb9b5c65da02ea61d602a6a Mon Sep 17 00:00:00 2001 From: GJ Date: Wed, 18 Apr 2012 17:01:01 -0400 Subject: [PATCH 12/15] Abstract the chat events a bit. --- .../events/chat/McMMOAdminChatEvent.java | 55 +---------------- .../nossr50/events/chat/McMMOChatEvent.java | 60 +++++++++++++++++++ .../events/chat/McMMOPartyChatEvent.java | 56 +---------------- 3 files changed, 65 insertions(+), 106 deletions(-) create mode 100644 src/main/java/com/gmail/nossr50/events/chat/McMMOChatEvent.java diff --git a/src/main/java/com/gmail/nossr50/events/chat/McMMOAdminChatEvent.java b/src/main/java/com/gmail/nossr50/events/chat/McMMOAdminChatEvent.java index 0c7f86c32..4625a761c 100644 --- a/src/main/java/com/gmail/nossr50/events/chat/McMMOAdminChatEvent.java +++ b/src/main/java/com/gmail/nossr50/events/chat/McMMOAdminChatEvent.java @@ -1,62 +1,11 @@ package com.gmail.nossr50.events.chat; -import org.bukkit.event.Cancellable; -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - /** * Called when a chat is sent to the admin chat channel */ -public class McMMOAdminChatEvent extends Event implements Cancellable { - private boolean cancelled; - private String sender, message; +public class McMMOAdminChatEvent extends McMMOChatEvent{ public McMMOAdminChatEvent(String sender, String message) { - this.sender = sender; - this.message = message; - } - - /** - * @return String name of the player who sent the chat, or "Console" - */ - public String getSender() { - return sender; - } - - /** - * @return String message that will be sent - */ - public String getMessage() { - return message; - } - - /** - * @param message String message to be sent in chat - */ - public void setMessage(String message) { - this.message = message; - } - - /** Rest of file is required boilerplate for custom events **/ - private static final HandlerList handlers = new HandlerList(); - - @Override - public HandlerList getHandlers() { - return handlers; - } - - public static HandlerList getHandlerList() { - return handlers; - } - - /** Following are required for Cancellable **/ - @Override - public boolean isCancelled() { - return cancelled; - } - - @Override - public void setCancelled(boolean cancelled) { - this.cancelled = cancelled; + super(sender, message); } } diff --git a/src/main/java/com/gmail/nossr50/events/chat/McMMOChatEvent.java b/src/main/java/com/gmail/nossr50/events/chat/McMMOChatEvent.java new file mode 100644 index 000000000..fafa6da9f --- /dev/null +++ b/src/main/java/com/gmail/nossr50/events/chat/McMMOChatEvent.java @@ -0,0 +1,60 @@ +package com.gmail.nossr50.events.chat; + +import org.bukkit.event.Cancellable; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +public class McMMOChatEvent extends Event implements Cancellable{ + private boolean cancelled; + private String sender; + private String message; + + public McMMOChatEvent(String sender, String message) { + this.sender = sender; + this.message = message; + } + + /** + * @return String name of the player who sent the chat, or "Console" + */ + public String getSender() { + return sender; + } + + /** + * @return String message that will be sent + */ + public String getMessage() { + return message; + } + + /** + * @param message String message to be sent in chat + */ + public void setMessage(String message) { + this.message = message; + } + + /** Rest of file is required boilerplate for custom events **/ + private static final HandlerList handlers = new HandlerList(); + + @Override + public HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } + + /** Following are required for Cancellable **/ + @Override + public boolean isCancelled() { + return cancelled; + } + + @Override + public void setCancelled(boolean cancelled) { + this.cancelled = cancelled; + } +} diff --git a/src/main/java/com/gmail/nossr50/events/chat/McMMOPartyChatEvent.java b/src/main/java/com/gmail/nossr50/events/chat/McMMOPartyChatEvent.java index e527233ec..112dd24cd 100644 --- a/src/main/java/com/gmail/nossr50/events/chat/McMMOPartyChatEvent.java +++ b/src/main/java/com/gmail/nossr50/events/chat/McMMOPartyChatEvent.java @@ -1,27 +1,14 @@ package com.gmail.nossr50.events.chat; -import org.bukkit.event.Cancellable; -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - /** * Called when a chat is sent to a party channel */ -public class McMMOPartyChatEvent extends Event implements Cancellable { - private boolean cancelled; - private String sender, party, message; +public class McMMOPartyChatEvent extends McMMOChatEvent{ + private String party; public McMMOPartyChatEvent(String sender, String party, String message) { - this.sender = sender; + super(sender, message); this.party = party; - this.message = message; - } - - /** - * @return String name of the player who sent the chat, or "Console" - */ - public String getSender() { - return sender; } /** @@ -30,41 +17,4 @@ public class McMMOPartyChatEvent extends Event implements Cancellable { public String getParty() { return party; } - - /** - * @return String message that will be sent - */ - public String getMessage() { - return message; - } - - /** - * @param message String message to be sent in chat - */ - public void setMessage(String message) { - this.message = message; - } - - /** Rest of file is required boilerplate for custom events **/ - private static final HandlerList handlers = new HandlerList(); - - @Override - public HandlerList getHandlers() { - return handlers; - } - - public static HandlerList getHandlerList() { - return handlers; - } - - /** Following are required for Cancellable **/ - @Override - public boolean isCancelled() { - return cancelled; - } - - @Override - public void setCancelled(boolean cancelled) { - this.cancelled = cancelled; - } } From e3267f2e0cb96d0d9cf2ce1c7d72f30f00243c87 Mon Sep 17 00:00:00 2001 From: GJ Date: Wed, 18 Apr 2012 23:34:46 -0400 Subject: [PATCH 13/15] Added Iron Grip skill to Unarmed which gives players an chance to keep from being disarmed. --- Changelog.txt | 2 ++ src/main/java/com/gmail/nossr50/Combat.java | 2 +- .../java/com/gmail/nossr50/api/ChatAPI.java | 8 +++++-- .../commands/general/MmoeditCommand.java | 2 +- .../com/gmail/nossr50/skills/Unarmed.java | 23 +++++++++++++++++-- 5 files changed, 31 insertions(+), 6 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index 6389a4028..0e1b3b367 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -10,6 +10,8 @@ Key: Version 1.3.06-dev + Added permissions check to skill functions + Added API functions for obtaining offline profiles & profiles via player names + + Added API functions for admin & party chat + + Added Iron Grip skill to Unarmed which gives players an chance to keep from being disarmed. = Fixed bug where Herbalism required double drops permission to give XP = Fixed bug where {0} would be displayed in front of your power level in mcstats = Fixed mmoupdate not being useable from console diff --git a/src/main/java/com/gmail/nossr50/Combat.java b/src/main/java/com/gmail/nossr50/Combat.java index a2e533cbd..d3c2d6be9 100644 --- a/src/main/java/com/gmail/nossr50/Combat.java +++ b/src/main/java/com/gmail/nossr50/Combat.java @@ -100,7 +100,7 @@ public class Combat { } if (targetType.equals(EntityType.PLAYER) && mcPermissions.getInstance().disarm(attacker)) { - Unarmed.disarmProcCheck(PPa, (Player) target); + Unarmed.disarmProcCheck(attacker, (Player) target); } startGainXp(attacker, PPa, target, SkillType.UNARMED, plugin); diff --git a/src/main/java/com/gmail/nossr50/api/ChatAPI.java b/src/main/java/com/gmail/nossr50/api/ChatAPI.java index 9c5582f93..2ce4ce52e 100644 --- a/src/main/java/com/gmail/nossr50/api/ChatAPI.java +++ b/src/main/java/com/gmail/nossr50/api/ChatAPI.java @@ -23,7 +23,9 @@ public class ChatAPI { McMMOPartyChatEvent chatEvent = new McMMOPartyChatEvent(sender, party, message); Bukkit.getPluginManager().callEvent(chatEvent); - if(chatEvent.isCancelled()) return; + if (chatEvent.isCancelled()) { + return; + } String pPrefix = ChatColor.GREEN + "(" + ChatColor.WHITE + chatEvent.getSender() + ChatColor.GREEN + ") "; @@ -50,7 +52,9 @@ public class ChatAPI { McMMOAdminChatEvent chatEvent = new McMMOAdminChatEvent(sender, message); Bukkit.getPluginManager().callEvent(chatEvent); - if(chatEvent.isCancelled()) return; + if (chatEvent.isCancelled()) { + return; + } String aPrefix = ChatColor.AQUA + "{" + ChatColor.WHITE + chatEvent.getSender() + ChatColor.AQUA + "} "; diff --git a/src/main/java/com/gmail/nossr50/commands/general/MmoeditCommand.java b/src/main/java/com/gmail/nossr50/commands/general/MmoeditCommand.java index d8e00aada..9e34a5644 100644 --- a/src/main/java/com/gmail/nossr50/commands/general/MmoeditCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/general/MmoeditCommand.java @@ -30,7 +30,7 @@ public class MmoeditCommand implements CommandExecutor { int newValue; SkillType skill; String skillName; - String usage = ChatColor.RED + "Proper usage is /mmoedit [player] "; //TODO: Needs more locale. + String usage = ChatColor.RED + "Proper usage is /mmoedit [player] "; //TODO: Needs more locale. if (CommandHelper.noCommandPermissions(sender, "mcmmo.tools.mmoedit")) { return true; diff --git a/src/main/java/com/gmail/nossr50/skills/Unarmed.java b/src/main/java/com/gmail/nossr50/skills/Unarmed.java index 0e553a374..ad54f35e1 100644 --- a/src/main/java/com/gmail/nossr50/skills/Unarmed.java +++ b/src/main/java/com/gmail/nossr50/skills/Unarmed.java @@ -2,6 +2,7 @@ package com.gmail.nossr50.skills; import java.util.Random; +import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.entity.EntityDamageByEntityEvent; @@ -43,16 +44,17 @@ public class Unarmed { * @param PPa Profile of the attacking player * @param defender The defending player */ - public static void disarmProcCheck(PlayerProfile PPa, Player defender) { + public static void disarmProcCheck(Player attacker, Player defender) { final int MAX_BONUS_LEVEL = 1000; + PlayerProfile PPa = Users.getProfile(attacker); int skillLevel = PPa.getSkillLevel(SkillType.UNARMED); int skillCheck = m.skillCheck(skillLevel, MAX_BONUS_LEVEL); ItemStack inHand = defender.getItemInHand(); if (!inHand.getType().equals(Material.AIR)) { - if (random.nextInt(3000) <= skillCheck) { + if (random.nextInt(3000) <= skillCheck && ironGrip(defender, attacker)) { defender.sendMessage(mcLocale.getString("Skills.Disarmed")); m.mcDropItem(defender.getLocation(), inHand); @@ -78,4 +80,21 @@ public class Unarmed { defender.sendMessage(mcLocale.getString("Combat.ArrowDeflect")); } } + + public static boolean ironGrip(Player defender, Player attacker) { + final int MAX_BONUS_LEVEL = 1000; + + PlayerProfile PPd = Users.getProfile(defender); + int skillLevel = PPd.getSkillLevel(SkillType.UNARMED); + int skillCheck = m.skillCheck(skillLevel, MAX_BONUS_LEVEL); + + if (random.nextInt(3000) <= skillCheck) { + defender.sendMessage(ChatColor.GREEN + "Your iron grip kept you from being disarmed!"); //TODO: Use locale + attacker.sendMessage(ChatColor.RED + "Your opponent has an iron grip!"); //TODO: Use locale + return true; + } + else { + return false; + } + } } From 4f1ee03fe802d817e06ffa13877a95f5595544e6 Mon Sep 17 00:00:00 2001 From: GJ Date: Thu, 19 Apr 2012 09:32:14 -0400 Subject: [PATCH 14/15] Changed Iron Grip slightly. Tweaked Inspect to prevent same bug with {0} showing up in front of power level. --- .../java/com/gmail/nossr50/commands/general/InspectCommand.java | 2 +- .../java/com/gmail/nossr50/commands/skills/UnarmedCommand.java | 2 +- src/main/java/com/gmail/nossr50/skills/Unarmed.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/commands/general/InspectCommand.java b/src/main/java/com/gmail/nossr50/commands/general/InspectCommand.java index a7c00033b..a638b911a 100644 --- a/src/main/java/com/gmail/nossr50/commands/general/InspectCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/general/InspectCommand.java @@ -48,7 +48,7 @@ public class InspectCommand implements CommandExecutor { CommandHelper.printGatheringSkills(player, sender); CommandHelper.printCombatSkills(player, sender); CommandHelper.printMiscSkills(player, sender); - sender.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevel", new Object[] { PP.getPowerLevel() })); + sender.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevel", new Object[] { String.valueOf(PP.getPowerLevel()) })); return true; } diff --git a/src/main/java/com/gmail/nossr50/commands/skills/UnarmedCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/UnarmedCommand.java index fe46b41a6..389ee90d5 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/UnarmedCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/UnarmedCommand.java @@ -37,7 +37,7 @@ public class UnarmedCommand implements CommandExecutor { percentage = "33.3"; if (PP.getSkillLevel(SkillType.UNARMED) < 1000) - arrowpercentage = String.valueOf(((skillvalue / 1000) * 100) / 2); + arrowpercentage = String.valueOf((skillvalue / 2000) * 100); else arrowpercentage = "50"; diff --git a/src/main/java/com/gmail/nossr50/skills/Unarmed.java b/src/main/java/com/gmail/nossr50/skills/Unarmed.java index ad54f35e1..0fe6fbc6b 100644 --- a/src/main/java/com/gmail/nossr50/skills/Unarmed.java +++ b/src/main/java/com/gmail/nossr50/skills/Unarmed.java @@ -88,7 +88,7 @@ public class Unarmed { int skillLevel = PPd.getSkillLevel(SkillType.UNARMED); int skillCheck = m.skillCheck(skillLevel, MAX_BONUS_LEVEL); - if (random.nextInt(3000) <= skillCheck) { + if (random.nextInt(1000) <= skillCheck) { defender.sendMessage(ChatColor.GREEN + "Your iron grip kept you from being disarmed!"); //TODO: Use locale attacker.sendMessage(ChatColor.RED + "Your opponent has an iron grip!"); //TODO: Use locale return true; From b86d76fcd415357fe1c0222534f99fece15e8aba Mon Sep 17 00:00:00 2001 From: GJ Date: Thu, 19 Apr 2012 12:01:38 -0400 Subject: [PATCH 15/15] Minor tweaks. --- .../java/com/gmail/nossr50/commands/general/InspectCommand.java | 2 +- .../java/com/gmail/nossr50/commands/general/McstatsCommand.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/commands/general/InspectCommand.java b/src/main/java/com/gmail/nossr50/commands/general/InspectCommand.java index a638b911a..a7c00033b 100644 --- a/src/main/java/com/gmail/nossr50/commands/general/InspectCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/general/InspectCommand.java @@ -48,7 +48,7 @@ public class InspectCommand implements CommandExecutor { CommandHelper.printGatheringSkills(player, sender); CommandHelper.printCombatSkills(player, sender); CommandHelper.printMiscSkills(player, sender); - sender.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevel", new Object[] { String.valueOf(PP.getPowerLevel()) })); + sender.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevel", new Object[] { PP.getPowerLevel() })); return true; } diff --git a/src/main/java/com/gmail/nossr50/commands/general/McstatsCommand.java b/src/main/java/com/gmail/nossr50/commands/general/McstatsCommand.java index 070a5b933..8127a7dd7 100644 --- a/src/main/java/com/gmail/nossr50/commands/general/McstatsCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/general/McstatsCommand.java @@ -28,7 +28,7 @@ public class McstatsCommand implements CommandExecutor { CommandHelper.printCombatSkills(player); CommandHelper.printMiscSkills(player); - player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevel", new Object[] { String.valueOf(PP.getPowerLevel()) })); + player.sendMessage(mcLocale.getString("mcPlayerListener.PowerLevel", new Object[] { PP.getPowerLevel() })); return true; }