Clean up some of our messes.

This commit is contained in:
GJ 2014-01-20 13:58:40 -08:00
parent c6ea32f0b0
commit 43e2c813d1
47 changed files with 133 additions and 225 deletions

View File

@ -112,11 +112,7 @@ public abstract class ExperienceCommand implements TabExecutor {
protected abstract void handlePlayerMessageSkill(Player player, int value, SkillType skill);
private boolean validateArguments(CommandSender sender, String skillName, String value) {
if (CommandUtils.isInvalidInteger(sender, value) || (!skillName.equalsIgnoreCase("all") && CommandUtils.isInvalidSkill(sender, skillName))) {
return false;
}
return true;
return !(CommandUtils.isInvalidInteger(sender, value) || (!skillName.equalsIgnoreCase("all") && CommandUtils.isInvalidSkill(sender, skillName)));
}
protected static void handleSenderMessage(CommandSender sender, String playerName, SkillType skill) {

View File

@ -134,11 +134,7 @@ public class SkillresetCommand implements TabExecutor {
}
private boolean validateArguments(CommandSender sender, String skillName) {
if (CommandUtils.isInvalidSkill(sender, skillName) && !skillName.equalsIgnoreCase("all")) {
return false;
}
return true;
return !(CommandUtils.isInvalidSkill(sender, skillName) && !skillName.equalsIgnoreCase("all"));
}
protected static void handleSenderMessage(CommandSender sender, String playerName, SkillType skill) {

View File

@ -1,9 +1,6 @@
package com.gmail.nossr50.commands.party;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.*;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
@ -220,13 +217,7 @@ public class PartyCommand implements TabExecutor {
}
private String[] extractArgs(String[] args) {
String[] newArgs = new String[args.length - 1];
for (int i = 1; i < args.length; i++) {
newArgs[i - 1] = args[i];
}
return newArgs;
return Arrays.copyOfRange(args, 1, args.length - 1);
}
private boolean isItemShareCategory(String category) {

View File

@ -47,7 +47,7 @@ public class PartyInfoCommand implements CommandExecutor {
status.append(LocaleLoader.getString("Commands.Party.Status", party.getName(), LocaleLoader.getString("Party.Status." + (party.isLocked() ? "Locked" : "Unlocked")), party.getLevel()));
if (!party.hasReachedLevelCap()) {
status.append(" (" + party.getXpToLevelPercentage() + ")");
status.append(" (").append(party.getXpToLevelPercentage()).append(")");
}
player.sendMessage(status.toString());
@ -80,11 +80,7 @@ public class PartyInfoCommand implements CommandExecutor {
}
private boolean isUnlockedFeature(Party party, PartyFeature partyFeature) {
if (party.getLevel() < Config.getInstance().getPartyFeatureUnlockLevel(partyFeature)) {
return false;
}
return true;
return party.getLevel() >= Config.getInstance().getPartyFeatureUnlockLevel(partyFeature);
}
private void displayShareModeInfo(Player player, Party party) {

View File

@ -38,7 +38,7 @@ public class PartyItemShareCommand implements CommandExecutor {
return true;
case 3:
boolean toggle = false;
boolean toggle;
if (CommandUtils.shouldEnableToggle(args[2])) {
toggle = true;

View File

@ -93,7 +93,7 @@ public class McrankCommand implements TabExecutor {
}
boolean useBoard = (sender instanceof Player) && (Config.getInstance().getRankUseBoard());
boolean useChat = useBoard ? Config.getInstance().getRankUseChat() : true;
boolean useChat = !useBoard || Config.getInstance().getRankUseChat();
new McrankCommandAsyncTask(playerName, sender, useBoard, useChat).runTaskAsynchronously(mcMMO.p);
}

View File

@ -99,7 +99,7 @@ public class MctopCommand implements TabExecutor {
private void display(int page, SkillType skill, CommandSender sender) {
boolean useBoard = (sender instanceof Player) && (Config.getInstance().getTopUseBoard());
boolean useChat = useBoard ? Config.getInstance().getTopUseChat() : true;
boolean useChat = !useBoard || Config.getInstance().getTopUseChat();
new MctopCommandAsyncTask(page, skill, sender, useBoard, useChat).runTaskAsynchronously(mcMMO.p);
}

View File

@ -4,6 +4,7 @@ import java.text.DecimalFormat;
import java.util.List;
import java.util.Set;
import com.gmail.nossr50.util.Motd;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
@ -87,8 +88,7 @@ public abstract class SkillCommand implements TabExecutor {
player.sendMessage(LocaleLoader.getString("Skills.Header", LocaleLoader.getString("Effects.Effects")));
if (isLucky) {
String perkPrefix = LocaleLoader.getString("MOTD.PerksPrefix");
player.sendMessage(perkPrefix + LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Perks.Lucky.Name"), LocaleLoader.getString("Perks.Lucky.Desc", skillName)));
player.sendMessage(Motd.PERK_PREFIX + LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Perks.Lucky.Name"), LocaleLoader.getString("Perks.Lucky.Desc", skillName)));
}
for (String message : effectMessages) {

View File

@ -56,7 +56,7 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
try {
in = new BufferedReader(new FileReader(usersFilePath));
StringBuilder writer = new StringBuilder();
String line = "";
String line;
while ((line = in.readLine()) != null) {
String[] character = line.split(":");
@ -111,7 +111,7 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
try {
in = new BufferedReader(new FileReader(usersFilePath));
StringBuilder writer = new StringBuilder();
String line = "";
String line;
while ((line = in.readLine()) != null) {
String[] character = line.split(":");
@ -173,7 +173,7 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
try {
in = new BufferedReader(new FileReader(usersFilePath));
StringBuilder writer = new StringBuilder();
String line = "";
String line;
while ((line = in.readLine()) != null) {
// Write out the same file but when we get to the player we want to remove, we skip his line.
@ -390,8 +390,7 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
continue;
}
PlayerProfile p = loadFromLine(character);
return p;
return loadFromLine(character);
}
// Didn't find the player, create a new one
@ -515,7 +514,7 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
synchronized (fileWritingLock) {
try {
in = new BufferedReader(new FileReader(usersFilePath));
String line = "";
String line;
while ((line = in.readLine()) != null) {
String[] data = line.split(":");
@ -594,7 +593,7 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
try {
in = new BufferedReader(new FileReader(usersFilePath));
StringBuilder writer = new StringBuilder();
String line = "";
String line;
HashSet<String> players = new HashSet<String>();
while ((line = in.readLine()) != null) {

View File

@ -195,7 +195,7 @@ public final class SQLDatabaseManager implements DatabaseManager {
if (checkConnected()) {
String query = skill == null ? "taming+mining+woodcutting+repair+unarmed+herbalism+excavation+archery+swords+axes+acrobatics+fishing+alchemy" : skill.name().toLowerCase();
ResultSet resultSet = null;
ResultSet resultSet;
PreparedStatement statement = null;
try {
@ -448,16 +448,16 @@ public final class SQLDatabaseManager implements DatabaseManager {
+ "JOIN " + tablePrefix + "huds h ON (u.id = h.user_id) "
+ "WHERE u.user = ?");
List<String> usernames = getStoredUsers();
ResultSet result = null;
ResultSet resultSet;
int convertedUsers = 0;
long startMillis = System.currentTimeMillis();
for (String playerName : usernames) {
statement.setString(1, playerName);
try {
result = statement.executeQuery();
result.next();
destination.saveUser(loadFromResult(playerName, result));
result.close();
resultSet = statement.executeQuery();
resultSet.next();
destination.saveUser(loadFromResult(playerName, resultSet));
resultSet.close();
}
catch (SQLException e) {
// Ignore
@ -798,7 +798,7 @@ public final class SQLDatabaseManager implements DatabaseManager {
break;
}
ResultSet resultSet = null;
ResultSet resultSet;
HashMap<Integer, ArrayList<String>> rows = new HashMap<Integer, ArrayList<String>>();
PreparedStatement statement = null;
@ -984,7 +984,7 @@ public final class SQLDatabaseManager implements DatabaseManager {
int result = -1;
if (checkConnected()) {
ResultSet resultSet = null;
ResultSet resultSet;
try {
resultSet = statement.executeQuery();

View File

@ -13,4 +13,4 @@ public enum FormulaType {
return UNKNOWN;
}
}
};
}

View File

@ -310,7 +310,7 @@ public class Party {
}
if (!nearMembers.contains(member) && !playerName.equalsIgnoreCase(memberName)) {
memberList.append(ChatColor.ITALIC + "");
memberList.append(ChatColor.ITALIC).append("");
}
memberList.append(memberName).append(ChatColor.RESET).append(" ");

View File

@ -45,10 +45,7 @@ public enum PartyFeature {
return false;
}
if (Permissions.partySubcommand(player, partySubCommandType)) {
return true;
}
return false;
return Permissions.partySubcommand(player, partySubCommandType);
}
}

View File

@ -22,4 +22,4 @@ public enum ShareMode {
return null;
}
}
};
}

View File

@ -725,12 +725,12 @@ public class McMMOPlayer {
switch (mode) {
case ADMIN:
adminChatMode = !adminChatMode;
partyChatMode = adminChatMode ? false : partyChatMode;
partyChatMode = !adminChatMode && partyChatMode;
return;
case PARTY:
partyChatMode = !partyChatMode;
adminChatMode = partyChatMode ? false : adminChatMode;
adminChatMode = !partyChatMode && adminChatMode;
return;
default:

View File

@ -17,4 +17,4 @@ public enum Rarity {
return COMMON;
}
}
};
}

View File

@ -79,7 +79,8 @@ public class MetricsManager {
if (version.contains("-")) {
String majorVersion = version.substring(0, version.indexOf("-"));
String subVersion = "";
String subVersion;
if (isOfficialBuild) {
int startIndex = version.indexOf("-");
if (version.substring(startIndex + 1).contains("-")) {
@ -96,9 +97,6 @@ public class MetricsManager {
version = majorVersion + "~=~" + subVersion;
haveVersionInformation = true;
}
else {
haveVersionInformation = false;
}
if (haveVersionInformation) {
versionDonutGraph.addPlotter(new Metrics.Plotter(version) {

View File

@ -13,9 +13,7 @@ import com.gmail.nossr50.util.Misc;
import com.gmail.nossr50.util.skills.SkillUtils;
public class TeleportationWarmup extends BukkitRunnable {
private static Player teleportingPlayer;
private McMMOPlayer mcMMOPlayer;
private static Player targetPlayer;
private McMMOPlayer mcMMOTarget;
public TeleportationWarmup(McMMOPlayer mcMMOPlayer, McMMOPlayer mcMMOTarget) {
@ -25,12 +23,8 @@ public class TeleportationWarmup extends BukkitRunnable {
@Override
public void run() {
checkPartyTeleport();
}
private void checkPartyTeleport() {
teleportingPlayer = mcMMOPlayer.getPlayer();
targetPlayer = mcMMOTarget.getPlayer();
Player teleportingPlayer = mcMMOPlayer.getPlayer();
Player targetPlayer = mcMMOTarget.getPlayer();
Location previousLocation = mcMMOPlayer.getTeleportCommenceLocation();
Location newLocation = mcMMOPlayer.getPlayer().getLocation();
long recentlyHurt = mcMMOPlayer.getRecentlyHurt();

View File

@ -17,7 +17,6 @@ public class AlchemyBrewCheckTask extends BukkitRunnable {
private Player player;
private Block brewingStand;
private ItemStack[] oldInventory;
private ItemStack[] newInventory;
public AlchemyBrewCheckTask(Player player, BrewingStand brewingStand) {
this.player = player;
@ -27,7 +26,7 @@ public class AlchemyBrewCheckTask extends BukkitRunnable {
@Override
public void run() {
this.newInventory = Arrays.copyOfRange(((BrewingStand) brewingStand.getState()).getInventory().getContents(), 0, 4);
ItemStack[] newInventory = Arrays.copyOfRange(((BrewingStand) brewingStand.getState()).getInventory().getContents(), 0, 4);
if (Alchemy.brewingStandMap.containsKey(brewingStand)) {
if (oldInventory[INGREDIENT_SLOT] == null || newInventory[INGREDIENT_SLOT] == null || !oldInventory[INGREDIENT_SLOT].isSimilar(newInventory[INGREDIENT_SLOT]) || !AlchemyPotionBrewer.isValidBrew(player, newInventory)) {

View File

@ -28,7 +28,7 @@ public class BleedTimerTask extends BukkitRunnable {
continue;
}
int damage = 0;
int damage;
if (entity instanceof Player) {
damage = 1;

View File

@ -1,6 +1,5 @@
package com.gmail.nossr50.skills.herbalism;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@ -134,7 +133,7 @@ public class HerbalismManager extends SkillManager {
Collection<ItemStack> drops = null;
int amount = 1;
int xp = 0;
int xp;
boolean greenTerra = mcMMOPlayer.getAbilityMode(skill.getAbility());
if (ModUtils.isCustomHerbalismBlock(blockState)) {
@ -203,7 +202,7 @@ public class HerbalismManager extends SkillManager {
return false;
}
List<HylianTreasure> treasures = new ArrayList<HylianTreasure>();
List<HylianTreasure> treasures;
switch (blockState.getType()) {
case DEAD_BUSH:

View File

@ -33,15 +33,7 @@ public class Repair {
* @return true if the item is salvageable, false otherwise
*/
public static boolean isSalvageable(ItemStack item) {
if (Config.getInstance().getSalvageTools() && ItemUtils.isMinecraftTool(item)) {
return true;
}
if (Config.getInstance().getSalvageArmor() && !ItemUtils.isChainmailArmor(item) && ItemUtils.isMinecraftArmor(item)) {
return true;
}
return false;
return (Config.getInstance().getSalvageTools() && ItemUtils.isMinecraftTool(item)) || (Config.getInstance().getSalvageArmor() && !ItemUtils.isChainmailArmor(item) && ItemUtils.isMinecraftArmor(item));
}
public static String getAnvilMessage(Material type) {

View File

@ -26,9 +26,7 @@ public class Unarmed {
if (inventory.containsAtLeast(dropStack, 1)) {
int nextSlot = 0;
for (Iterator<ItemStack> iterator = inventory.iterator(); iterator.hasNext();) {
ItemStack itemstack = iterator.next();
for (ItemStack itemstack: inventory) {
if (dropStack.isSimilar(itemstack)) {
int itemAmount = itemstack.getAmount();
int itemMax = itemstack.getMaxStackSize();
@ -71,7 +69,8 @@ public class Unarmed {
nextSlot++;
}
} else if (firstEmpty != -1) {
}
else if (firstEmpty != -1) {
drop.remove();
dropStack.setAmount(dropAmount);
inventory.setItem(firstEmpty, dropStack);

View File

@ -15,10 +15,6 @@ public class LogFilter implements Filter {
@Override
public boolean isLoggable(LogRecord record) {
if (record.getMessage().contains("[Debug]") && !debug) {
return false;
}
return true;
return !(record.getMessage().contains("[Debug]") && !debug);
}
}

View File

@ -96,9 +96,9 @@ public final class MobHealthbarUtils {
double currentHealth = Math.max(entity.getHealth() - damage, 0);
double healthPercentage = (currentHealth / maxHealth) * 100.0D;
int fullDisplay = 0;
int fullDisplay;
ChatColor color = ChatColor.BLACK;
String symbol = "";
String symbol;
switch (profile.getMobHealthbarType()) {
case HEARTS:

View File

@ -12,7 +12,7 @@ import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.util.skills.PerksUtils;
public final class Motd {
private static final String perkPrefix = LocaleLoader.getString("MOTD.PerksPrefix");
public static final String PERK_PREFIX = LocaleLoader.getString("MOTD.PerksPrefix") + " ";
private static final PluginDescriptionFile pluginDescription = mcMMO.p.getDescription();
private Motd() {}
@ -101,7 +101,7 @@ public final class Motd {
if (cooldownReduction > 0.0) {
DecimalFormat percent = new DecimalFormat("##0.00%");
player.sendMessage(perkPrefix + LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Perks.Cooldowns.Name"), LocaleLoader.getString("Perks.Cooldowns.Desc", percent.format(cooldownReduction))));
player.sendMessage(PERK_PREFIX + LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Perks.Cooldowns.Name"), LocaleLoader.getString("Perks.Cooldowns.Desc", percent.format(cooldownReduction))));
}
}
@ -114,7 +114,7 @@ public final class Motd {
int perkAmount = PerksUtils.handleActivationPerks(player, 0, 0);
if (perkAmount > 0) {
player.sendMessage(perkPrefix + LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Perks.ActivationTime.Name"), LocaleLoader.getString("Perks.ActivationTime.Desc", perkAmount)));
player.sendMessage(PERK_PREFIX + LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Perks.ActivationTime.Name"), LocaleLoader.getString("Perks.ActivationTime.Desc", perkAmount)));
}
}
@ -126,7 +126,7 @@ public final class Motd {
public static void displayLuckyPerks(Player player) {
for (SkillType skill : SkillType.values()) {
if (Permissions.lucky(player, skill)) {
player.sendMessage(perkPrefix + LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Perks.Lucky.Name"), LocaleLoader.getString("Perks.Lucky.Desc.Login")));
player.sendMessage(PERK_PREFIX + LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Perks.Lucky.Name"), LocaleLoader.getString("Perks.Lucky.Desc.Login")));
return;
}
}

View File

@ -69,36 +69,6 @@ public class StringUtils {
return prettyString;
}
/**
* Gets the int represented by this string.
*
* @param string The string to parse
* @return the int represented by this string
*/
public static int getInt(String string) {
try {
return Integer.parseInt(string);
}
catch (NumberFormatException nFE) {
return 0;
}
}
/**
* Gets the long represented by this string.
*
* @param string The string to parse
* @return the long represented by this string
*/
public static long getLong(String string) {
try {
return Long.parseLong(string);
}
catch (NumberFormatException nFE) {
return 0;
}
}
/**
* Determine if a string represents an Integer
*

View File

@ -233,17 +233,12 @@ public class HashChunkManager implements ChunkManager {
for (String key : keys) {
String[] info = key.split(",");
if (worldName.equals(info[0])) {
int cx = 0;
int cz = 0;
try {
cx = Integer.parseInt(info[1]);
cz = Integer.parseInt(info[2]);
saveChunk(Integer.parseInt(info[1]), Integer.parseInt(info[2]), world);
}
catch (Exception e) {
continue;
// Ignore
}
saveChunk(cx, cz, world);
}
}
}
@ -261,17 +256,12 @@ public class HashChunkManager implements ChunkManager {
for (String key : keys) {
String[] info = key.split(",");
if (worldName.equals(info[0])) {
int cx = 0;
int cz = 0;
try {
cx = Integer.parseInt(info[1]);
cz = Integer.parseInt(info[2]);
unloadChunk(Integer.parseInt(info[1]), Integer.parseInt(info[2]), world);
}
catch (Exception e) {
continue;
// Ignore
}
unloadChunk(cx, cz, world);
}
}
}

View File

@ -58,11 +58,7 @@ public final class CommandUtils {
}
public static boolean hidden(CommandSender sender, Player target, boolean hasPermission) {
if (sender instanceof Player && !((Player)sender).canSee(target) && !hasPermission) {
return true;
}
return false;
return sender instanceof Player && !((Player) sender).canSee(target) && !hasPermission;
}
public static boolean noConsoleUsage(CommandSender sender) {
@ -195,10 +191,10 @@ public final class CommandUtils {
public static String displaySkill(PlayerProfile profile, SkillType skill) {
if (skill.isChildSkill()) {
return LocaleLoader.getString("Skills.ChildStats", LocaleLoader.getString(StringUtils.getCapitalized(skill.toString()) + ".Listener"), profile.getSkillLevel(skill));
return LocaleLoader.getString("Skills.ChildStats", LocaleLoader.getString(StringUtils.getCapitalized(skill.toString()) + ".Listener"), " ", profile.getSkillLevel(skill));
}
return LocaleLoader.getString("Skills.Stats", LocaleLoader.getString(StringUtils.getCapitalized(skill.toString()) + ".Listener"), profile.getSkillLevel(skill), profile.getSkillXpLevel(skill), profile.getXpToLevel(skill));
return LocaleLoader.getString("Skills.Stats", LocaleLoader.getString(StringUtils.getCapitalized(skill.toString()) + ".Listener"), " ", profile.getSkillLevel(skill), profile.getSkillXpLevel(skill), profile.getXpToLevel(skill));
}
private static void printGroupedSkillData(Player inspect, CommandSender display, String header, List<SkillType> skillGroup) {

View File

@ -402,6 +402,6 @@ public class ScoreboardManager {
}
public static void setRevertTimer(String playerName, int seconds) {
PLAYER_SCOREBOARDS.get(playerName).showBoardAndScheduleRevert(seconds * Misc.TICK_CONVERSION_FACTOR);;
PLAYER_SCOREBOARDS.get(playerName).showBoardAndScheduleRevert(seconds * Misc.TICK_CONVERSION_FACTOR);
}
}

View File

@ -204,7 +204,7 @@ public class SkillUtils {
return (event.getChance() * activationChance) > Misc.getRandom().nextInt(activationChance);
}
public static boolean treasureDropSuccessful(Player player, double dropChance, int activationChance) {;
public static boolean treasureDropSuccessful(Player player, double dropChance, int activationChance) {
SecondaryAbilityWeightedActivationCheckEvent event = new SecondaryAbilityWeightedActivationCheckEvent(player, SecondaryAbility.EXCAVATION_TREASURE_HUNTER, dropChance / activationChance);
mcMMO.p.getServer().getPluginManager().callEvent(event);
return (event.getChance() * activationChance) > (Misc.getRandom().nextDouble() * activationChance);

View File

@ -39,7 +39,7 @@ Axes.Combat.CriticalHit=[[RED]]KRITICK\u00dd Z\u00c1SAH!
Axes.Combat.GI.Proc=[[GREEN]]**\u00daDER VELKOU SILOU**
Axes.Combat.GI.Struck=[[RED]]**ZASAZENI S VYSSIM UCINKEM**
Axes.Combat.SS.Length=[[RED]]Delka trvani Drtice lebek: [[YELLOW]]{0}s
Axes.Effect.0=[[GREEN]]**Drtic lebek byl AKTIVOVAN**\n
Axes.Effect.0=[[GREEN]]**Drtic lebek byl AKTIVOVAN**
Axes.Effect.1=Ud\u011bl AoE zran\u011bn\u00ed
Axes.Effect.2=Kriticky zasah
Axes.Effect.3=Dvojite zraneni

View File

@ -10,7 +10,7 @@ Repair.Effect.4=Super Poravka
Repair.SkillName=POPRAVI
Repair.Arcane.Fail=[[RED]]Arcane Snage Su Napustile Item.
Swords.Combat.Bleeding.Stopped=[[GRAY]]Krvarenje je [[GREEN]]prestalo[[GRAY]]!
Ability.Generic.Template=[[RED]]{0}: [[YELLOW]]{1}\n
Ability.Generic.Template=[[RED]]{0}: [[YELLOW]]{1}
Combat.TouchedFuzzy=[[DARK_RED]]Dodirnuo Fuzzy.Osjetio Fuzzy.
Commands.Party.Kick=[[RED]]Ti Si Bio Izbacen Iz Partyja{0}!
Party.Unlocked=[[GRAY]]Party je otkljucan

View File

@ -8,7 +8,7 @@ Mining.Skillup=[[YELLOW]]Habilidade de minera\u00e7\u00e3o aumentada em {0}. Tot
Repair.Arcane.Fail=[[RED]]O objecto perdeu permanentemente os poderes Arcanos.
Swords.Combat.Bleeding.Stopped=[[GRAY]]A hemorragia [[GREEN]]parou[[GRAY]]!
Swords.Skills.SS.On=[[GREEN]]**ATAQUES SERRILHADOS ACTIVADO**
Woodcutting.SkillName=LENHADOR\n
Woodcutting.SkillName=LENHADOR
Ability.Generic.Template=[[RED]]{0}: [[YELLOW]]{1}
Commands.Invite.Accepted=[[GREEN]]Convite aceite. Tu entraste numa festa {0}
Commands.Party.Kick=[[RED]]Foste expulso da festa {0}!

View File

@ -593,7 +593,7 @@ Guides.Acrobatics.Section.2=[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u8ff4\u907f?\n[YELLO
Guides.Archery.Section.0=[[DARK_AQUA]]\u7bad\u8853:\n[[YELLOW]]\u7bad\u8853\u662f\u7528\u5f13\u5c04\u7bad\u7684\u6280\u80fd.\n[[YELLOW]]\u7bad\u8853\u6709\u5404\u7a2e\u52a0\u4e58\u6548\u679c,\u5982\u52a0\u4e58\u653b\u64ca\n[[YELLOW]]\u6688\u7729\u5c0d\u624b\u7b49\u6548\u679c.\n[[YELLOW]]\u6b64\u5916\u4f60\u4e5f\u6709\u6a5f\u7387\u56de\u6536\u5df2\u7d93\u5c04\u4e2d\u6575\u4eba\u7684\u7bad\n[[YELLOW]] \u4ee5\u4e0a\u6a5f\u7387\u95dc\u4fc2\u5230\u7b49\u7d1a.\n\n[[DARK_AQUA]]\u7372\u53d6\u7d93\u9a57:\n[[YELLOW]]\u8981\u7372\u5f97\u7d93\u9a57\u5fc5\u9808\u7528\u5f13\u5c04\u4e2d\u602a\u7269\u6216\u73a9\u5bb6.
Guides.Archery.Section.1=[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u6280\u8853\u5c04\u64ca?\n[[YELLOW]]\u6280\u8853\u5c04\u64ca\u5c07\u52a0\u4e58\u4f60\u7684\u5c04\u7bad\u57fa\u672c\u653b\u64ca\u529b.\n[[YELLOW]]\u52a0\u4e58\u7684\u7a0b\u5ea6\u95dc\u4fc2\u5230\u4f60\u7684\u7bad\u8853\u7b49\u7d1a.\n[[YELLOW]]\u9810\u8a2d\u72c0\u614b\u4e0b, \u6bcf\u534750\u7d1a\u52a0\u4e5810%\u653b\u64ca\u529b, \n[[YELLOW]]\u6700\u9ad8\u5230200%\u52a0\u4e58.
Guides.Archery.Section.2=[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u6688\u7729\u6548\u679c?\n[[YELLOW]]\u7576\u4f60\u64ca\u4e2d\u76ee\u6a19\u6642\u6709\u88ab\u52d5\u6a5f\u7387\u4f7f\u76ee\u6a19\u6688\u7729.\n[[YELLOW]]\u6688\u7dda\u89f8\u767c\u6642\u5c07\u5f37\u5236\u4f60\u7684\u76ee\u6a19\u5446\u6eef\u4e00\u5c0f\u6bb5\u6642\u9593.\n[[YELLOW]]\u6688\u7729\u6548\u679c\u6709\u52a0\u4e584\u9ede\u50b7\u5bb3(2\u5fc3).
Guides.Archery.Section.3=[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u56de\u6536\u5f13\u7bad?\n[[YELLOW]]\u4f60\u6709\u6a5f\u7387\u5728\u6bba\u6b7b\u602a\u7269\u5f8c\u56de\u6536\u5c04\u51fa\u53bb\u7684\u7bad.\n[[YELLOW]]\u6a5f\u7387\u95dc\u4fc2\u5230\u4f60\u7684\u7bad\u8853\u7b49\u7d1a.\n[[YELLOW]]\u9810\u8a2d\u72c0\u614b\u4e0b,\u6bcf\u5347\u4e00\u7b49\u589e\u52a00.1%\u6a5f\u7387,\n[[YELLOW]]\u7b49\u7d1a\u5230\u90541000\u6642\u5c07\u6709100%\u56de\u6536\u7387.\n
Guides.Archery.Section.3=[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u56de\u6536\u5f13\u7bad?\n[[YELLOW]]\u4f60\u6709\u6a5f\u7387\u5728\u6bba\u6b7b\u602a\u7269\u5f8c\u56de\u6536\u5c04\u51fa\u53bb\u7684\u7bad.\n[[YELLOW]]\u6a5f\u7387\u95dc\u4fc2\u5230\u4f60\u7684\u7bad\u8853\u7b49\u7d1a.\n[[YELLOW]]\u9810\u8a2d\u72c0\u614b\u4e0b,\u6bcf\u5347\u4e00\u7b49\u589e\u52a00.1%\u6a5f\u7387,\n[[YELLOW]]\u7b49\u7d1a\u5230\u90541000\u6642\u5c07\u6709100%\u56de\u6536\u7387.
Guides.Axes.Section.0=[[DARK_AQUA]]\u95dc\u65bc\u65a7\u6280:\n[[YELLOW]]\u6709\u4e86\u65a7\u6280, \u4f60\u5c31\u53ef\u4ee5\u4e0d\u5fc5\u53ea\u662f\u4e82\u63ee\u4e82\u780d\n[[YELLOW]]\u4f60\u53ef\u4ee5\u66f4\u6709\u6548\u5730\u64ca\u6bba\u53ef\u60e1\u7684\u602a\u7269\u5011!\n[[YELLOW]]\u800c\u4e14\u53ef\u4ee5\u5728\u63ee\u64ca\u6642\u70b8\u98db\u6216\u767c\u51fa\u81f4\u547d\u7684\u66b4\u64ca\n[[YELLOW]]\u4ee5\u91cd\u5275 \u5c0d\u624b.\n[[YELLOW]]\u4f60\u7684\u65a7\u982d\u4e5f\u53ef\u4ee5\u6210\u70ba\u4e00\u53f0\u524a\u6728\u6a5f,\n[[YELLOW]]\u91cd\u5275\u5c0d\u624b\u7684\u88dd\u7532,\u96a8\u8457\u64cd\u65a7\u6280\u80fd\u5347\u9ad8\u800c\n[[YELLOW]]\u63d0\u5347\u6548\u679c.\n[[DARK_AQUA]]\u5982\u4f55\u7372\u53d6\u7d93\u9a57:\n[[YELLOW]]\u8981\u7372\u53d6\u7d93\u9a57\u4f60\u5fc5\u9808\u7528\u65a7\u982d\u653b\u64ca\u73a9\u5bb6\u6216\u602a\u7269
Guides.Axes.Section.1=[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u5288\u9871\u65ac?\n[[YELLOW]]\u9019\u662f\u4e00\u500b\u4e3b\u52d5\u6280\u80fd(\u7bc4\u570d\u6280).\n[[YELLOW]]\u9031\u906d\u88ab\u6ce2\u53ca\u7684\u50b7\u5bb3\u70ba\u4e3b\u8981\u76ee\u6a19\u7684\u4e00\u534a\n[[YELLOW]]\u662f\u7528\u4f86\u6e05\u9664\u4e00\u5768\u602a\u7269\u7684\u5fc5\u5099\u7d55\u62db.
Guides.Axes.Section.2=[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u6703\u5fc3\u4e00\u64ca?\n[[YELLOW]]\u6703\u5fc3\u4e00\u64ca\u662f\u4e00\u500b\u53ef\u4ee5\u9020\u6210\u52a0\u4e58\u50b7\u5bb3\u7684\u88ab\u52d5\u6280\u80fd.\n[[YELLOW]]\u9810\u8a2d\u65a7\u6280\u6bcf\u5347\u5169\u7b49,\u53ef\u589e\u52a00.1%\u66b4\u64ca\u7387\n[[YELLOW]]\u5c0d\u602a\u7269\u67092\u500d\u653b\u64ca\u529b\u5c0d\u73a9\u5bb6\u67091.5\u500d.
@ -636,7 +636,7 @@ Guides.Repair.Section.5=[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u56de\u6536?\n[[YELLOW]]
Guides.Swords.Section.0=[[DARK_AQUA]]\u528d\u8853:\n[[YELLOW]]\u528d\u8853\u8b93\u73a9\u5bb6\u5728\u4f7f\u7528\u528d\u6230\u9b25\u6642\u7372\u5f97\u5404\u7a2e\u52a0\u4e58\u6548\u679c.\n\n[[DARK_AQUA]]\u5982\u4f55\u7372\u53d6\u7d93\u9a57:\n[[YELLOW]]\u8981\u7372\u53d6\u7d93\u9a57\u4f60\u5fc5\u9808\u7528\u528d\u653b\u64ca\u73a9\u5bb6\u6216\u602a\u7269.
Guides.Swords.Section.1=[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u5272\u88c2\u65ac?\n[[YELLOW]]\u5272\u88c2\u65ac\u662f\u4e00\u500b\u4e3b\u52d5\u6280\u80fd, \u4f60\u53ef\u4ee5\u5c07\u528d\u62ff\u518d\u624b\u4e0a\u4e26\u6309\u4e0b\u53f3\u9375\u555f\u52d5\u5b83.\n[[YELLOW]]\u9019\u500b\u6280\u80fd\u8b93\u4f60\u767c\u52d5\u7bc4\u570d\u653b\u64ca. \u9019\u500b\u7bc4\u570d\u6280\u80fd\u5c07\u9020\u621025%\u7684\u984d\u5916\u50b7\u5bb3,\n[[YELLOW]]\u4e26\u4e14\u9644\u5e36\u81f3\u5c115\u500bticks\u7684\u653e\u8840\u6548\u679c.
Guides.Swords.Section.2=[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u53cd\u64ca?\n[[YELLOW]]\u53cd\u64ca\u662f\u4e00\u500b\u4e3b\u52d5\u6280\u80fd. \u7576\u683c\u6a94\u602a\u7269\u6240\u9020\u6210\u7684\u50b7\u5bb3\u6642, \u4f60\u6709\u6a5f\u6703\u53cd\u5c04\n[[YELLOW]]50%\u6240\u53d7\u5230\u7684\u50b7\u5bb3.
Guides.Swords.Section.3=[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u653e\u8840?\n[[YELLOW]]\u653e\u8840\u5c07\u9020\u6210\u6575\u4eba\u6bcf\u5169\u79d2\u9418\u53d7\u5230\u50b7\u5bb3. \u76ee\u6a19\u5c07\u6703\u4e0d \u505c\u7684\u6d41\u8840\u76f4\u5230\u6548\u679c\n[[YELLOW]]\u7d50\u675f, \u6216\u662f\u6b7b\u4ea1. \u653e\u8840\u7684\u6642\u9593\u96a8\u8457\u4f60\u7684\u528d\u8853\u7684\u63d0\u6607\u800c\u589e\u52a0.\n
Guides.Swords.Section.3=[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u653e\u8840?\n[[YELLOW]]\u653e\u8840\u5c07\u9020\u6210\u6575\u4eba\u6bcf\u5169\u79d2\u9418\u53d7\u5230\u50b7\u5bb3. \u76ee\u6a19\u5c07\u6703\u4e0d \u505c\u7684\u6d41\u8840\u76f4\u5230\u6548\u679c\n[[YELLOW]]\u7d50\u675f, \u6216\u662f\u6b7b\u4ea1. \u653e\u8840\u7684\u6642\u9593\u96a8\u8457\u4f60\u7684\u528d\u8853\u7684\u63d0\u6607\u800c\u589e\u52a0.
Guides.Smelting.Section.0=\u4e0b\u6b21\u9084\u6709...
Guides.Taming.Section.0=[[DARK_AQUA]]\u99b4\u7378\n[[YELLOW]]\u99b4\u7378\u6280\u80fd\u8b93\u73a9\u5bb6\u80fd\u5728\u7528\u72fc\u6230\u9b25\u6642\n[[YELLOW]]\u6642\u6709\u52a0\u4e58\u6548\u679c.\n\n[[DARK_AQUA]]\u7d93\u9a57\u7372\u53d6:\n[[YELLOW]]\u8981\u7372\u53d6\u7d93\u9a57,\u9808\u8a13\u670d\u72fc\u6216\u8c79\u8c93,\n[[YELLOW]]\u6216\u8207\u4f60\u7684\u72fc\u4e00\u540c\u6230\u9b25.
Guides.Taming.Section.1=[[DARK_AQUA]]\u4ec0\u9ebc\u662f\u91ce\u6027\u547c\u558a?\n[[YELLOW]]\u91ce\u6027\u547c\u558a\u662f\u4e00\u500b\u4e3b\u52d5\u6280\u80fd\u8b93\u4f60\n[[YELLOW]]\u53ef\u4ee5\u53ec\u559a\u4e00\u96bb\u72fc\u6216\u8c79\u8c93,\n[[YELLOW]]\u53ea\u8981\u624b\u630110\u8ddf\u9aa8\u982d\u6216\u751f\u9b5a,\u9ede\u5de6\u9375.