From dba9dab985755c669e6921923bb667086121c906 Mon Sep 17 00:00:00 2001 From: Ali Moghnieh Date: Sat, 18 Jun 2016 18:33:51 +0100 Subject: [PATCH 01/28] Make UserBalanceUpdateEvent's new balance mutable. This commit makes it reliable to modify user balance from within events. --- Essentials/src/com/earth2me/essentials/User.java | 12 ++++++++---- .../net/ess3/api/events/UserBalanceUpdateEvent.java | 9 ++++++++- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java index 2697eae68..b178851af 100644 --- a/Essentials/src/com/earth2me/essentials/User.java +++ b/Essentials/src/com/earth2me/essentials/User.java @@ -375,6 +375,11 @@ public class User extends UserData implements Comparable, IMessageRecipien return; } final BigDecimal oldBalance = _getMoney(); + + UserBalanceUpdateEvent updateEvent = new UserBalanceUpdateEvent(this.getBase(), oldBalance, value); + ess.getServer().getPluginManager().callEvent(updateEvent); + BigDecimal newBalance = updateEvent.getNewBalance(); + if (Methods.hasMethod()) { try { final Method method = Methods.getMethod(); @@ -382,13 +387,12 @@ public class User extends UserData implements Comparable, IMessageRecipien throw new Exception(); } final Method.MethodAccount account = Methods.getMethod().getAccount(this.getName()); - account.set(value.doubleValue()); + account.set(newBalance.doubleValue()); } catch (Exception ex) { } } - super.setMoney(value, true); - ess.getServer().getPluginManager().callEvent(new UserBalanceUpdateEvent(this.getBase(), oldBalance, value)); - Trade.log("Update", "Set", "API", getName(), new Trade(value, ess), null, null, null, ess); + super.setMoney(newBalance, true); + Trade.log("Update", "Set", "API", getName(), new Trade(newBalance, ess), null, null, null, ess); } public void updateMoneyCache(final BigDecimal value) { diff --git a/Essentials/src/net/ess3/api/events/UserBalanceUpdateEvent.java b/Essentials/src/net/ess3/api/events/UserBalanceUpdateEvent.java index 7dd0c30f8..39be63557 100644 --- a/Essentials/src/net/ess3/api/events/UserBalanceUpdateEvent.java +++ b/Essentials/src/net/ess3/api/events/UserBalanceUpdateEvent.java @@ -1,5 +1,7 @@ package net.ess3.api.events; +import com.google.common.base.Preconditions; + import org.bukkit.entity.Player; import org.bukkit.event.Event; import org.bukkit.event.HandlerList; @@ -11,7 +13,7 @@ public class UserBalanceUpdateEvent extends Event { private static final HandlerList handlers = new HandlerList(); private final Player player; private final BigDecimal originalBalance; - private final BigDecimal balance; + private BigDecimal balance; public UserBalanceUpdateEvent(Player player, BigDecimal originalBalance, BigDecimal balance) { this.player = player; @@ -35,6 +37,11 @@ public class UserBalanceUpdateEvent extends Event { public BigDecimal getNewBalance() { return balance; } + + public void setNewBalance(BigDecimal newBalance) { + Preconditions.checkNotNull(newBalance, "newBalance cannot be null."); + this.balance = newBalance; + } public BigDecimal getOldBalance() { return originalBalance; From a267fb16b89b4d97510b83fbc6dd08f73905b5b9 Mon Sep 17 00:00:00 2001 From: Ali Moghnieh Date: Sun, 19 Jun 2016 03:33:48 +0100 Subject: [PATCH 02/28] Ignore flight check on spectator mode. If a player is in Spectator mode, we should not interfere with their flight. This is an extension to the already existing creative mode check. --- .../src/com/earth2me/essentials/EssentialsPlayerListener.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index c3b3ee259..a51daa968 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -408,7 +408,9 @@ public class EssentialsPlayerListener implements Listener { @EventHandler(priority = EventPriority.NORMAL) public void onPlayerChangedWorldFlyReset(final PlayerChangedWorldEvent event) { final User user = ess.getUser(event.getPlayer()); - if (user.getBase().getGameMode() != GameMode.CREATIVE && !user.isAuthorized("essentials.fly")) { + if (user.getBase().getGameMode() != GameMode.CREATIVE + && user.getBase().getGameMode() != GameMode.SPECTATOR + && !user.isAuthorized("essentials.fly")) { user.getBase().setFallDistance(0f); user.getBase().setAllowFlight(false); } From 282ec81af14a0566187f9015f7b1745971f11685 Mon Sep 17 00:00:00 2001 From: Ali Moghnieh Date: Sun, 19 Jun 2016 20:03:54 +0100 Subject: [PATCH 03/28] Implement configurable currency formatting. This commit enables users of different countries around the world to configure currency formatting displayed to users in a familiar manner. Prior to this commit US formatting (symbols) was forced upon users. This is now configurable via locale values e.g. en-US, de, fr-ch. This commit adds two new configurations: - currency-format - currency-symbol-format-locale One method ISettings#getCurrencyFormat() --- .../com/earth2me/essentials/ISettings.java | 3 + .../src/com/earth2me/essentials/Settings.java | 56 +++++++++++++++++++ .../earth2me/essentials/utils/NumberUtil.java | 3 + Essentials/src/config.yml | 13 +++++ 4 files changed, 75 insertions(+) diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java index c736ad5c2..d84c5a92a 100644 --- a/Essentials/src/com/earth2me/essentials/ISettings.java +++ b/Essentials/src/com/earth2me/essentials/ISettings.java @@ -8,6 +8,7 @@ import org.bukkit.configuration.ConfigurationSection; import org.bukkit.event.EventPriority; import java.math.BigDecimal; +import java.text.NumberFormat; import java.util.List; import java.util.Map; import java.util.Set; @@ -243,4 +244,6 @@ public interface ISettings extends IConf { boolean isSendFlyEnableOnJoin(); boolean isWorldTimePermissions(); + + NumberFormat getCurrencyFormat(); } diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index 413809e26..94532c27d 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -6,6 +6,8 @@ import com.earth2me.essentials.signs.Signs; import com.earth2me.essentials.textreader.IText; import com.earth2me.essentials.textreader.SimpleTextInput; import com.earth2me.essentials.utils.FormatUtil; +import com.earth2me.essentials.utils.NumberUtil; + import net.ess3.api.IEssentials; import org.bukkit.ChatColor; import org.bukkit.configuration.ConfigurationSection; @@ -14,13 +16,22 @@ import org.bukkit.event.EventPriority; import org.bukkit.inventory.ItemStack; import java.io.File; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; import java.math.BigDecimal; +import java.math.RoundingMode; +import java.text.DecimalFormat; +import java.text.DecimalFormatSymbols; +import java.text.NumberFormat; import java.util.*; +import java.util.Locale.Category; import java.util.logging.Level; import java.util.logging.Logger; import static com.earth2me.essentials.I18n.tl; +import com.google.common.base.Preconditions; + public class Settings implements net.ess3.api.ISettings { private final transient EssentialsConf config; @@ -532,6 +543,8 @@ public class Settings implements net.ess3.api.ISettings { customQuitMessage = _getCustomQuitMessage(); isCustomQuitMessage = !customQuitMessage.equals("none"); muteCommands = _getMuteCommands(); + + currencyFormat = _getCurrencyFormat(); } private List itemSpawnBl = new ArrayList(); @@ -1163,4 +1176,47 @@ public class Settings implements net.ess3.api.ISettings { public boolean isWorldTimePermissions() { return config.getBoolean("world-time-permissions", false); } + + private NumberFormat currencyFormat; + + private NumberFormat _getCurrencyFormat() { + String currencyFormatString = config.getString("currency-format", "#,##0.00"); + + String symbolLocaleString = config.getString("currency-symbol-format-locale"); + DecimalFormatSymbols decimalFormatSymbols; + if (symbolLocaleString != null) { + decimalFormatSymbols = DecimalFormatSymbols.getInstance(Locale.forLanguageTag(symbolLocaleString)); + } else { + // Fallback to the JVM's default locale + decimalFormatSymbols = DecimalFormatSymbols.getInstance(); + } + + DecimalFormat currencyFormat = new DecimalFormat(currencyFormatString, decimalFormatSymbols); + currencyFormat.setRoundingMode(RoundingMode.FLOOR); + + // Updates NumberUtil#PRETTY_FORMAT field so that all of Essentials + // can follow a single format. + try { + Field field = NumberUtil.class.getDeclaredField("PRETTY_FORMAT"); + field.setAccessible(true); + Field modifiersField = Field.class.getDeclaredField("modifiers"); + modifiersField.setAccessible(true); + modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL); + field.set(null, currencyFormat); + modifiersField.setAccessible(false); + field.setAccessible(false); + } catch (NoSuchFieldException | IllegalAccessException e) { + ess.getLogger().severe("Failed to apply custom currency format: " + e.getMessage()); + if (isDebug()) { + e.printStackTrace(); + } + } + + return currencyFormat; + } + + @Override + public NumberFormat getCurrencyFormat() { + return this.currencyFormat; + } } diff --git a/Essentials/src/com/earth2me/essentials/utils/NumberUtil.java b/Essentials/src/com/earth2me/essentials/utils/NumberUtil.java index a9c7d9f75..55f0fa943 100644 --- a/Essentials/src/com/earth2me/essentials/utils/NumberUtil.java +++ b/Essentials/src/com/earth2me/essentials/utils/NumberUtil.java @@ -15,6 +15,9 @@ import static com.earth2me.essentials.I18n.tl; public class NumberUtil { static DecimalFormat twoDPlaces = new DecimalFormat("#,###.##"); static DecimalFormat currencyFormat = new DecimalFormat("#0.00", DecimalFormatSymbols.getInstance(Locale.US)); + + // This field is likely to be modified in com.earth2me.essentials.Settings when loading currency format. + // This ensures that we can supply a constant formatting. static final NumberFormat PRETTY_FORMAT = NumberFormat.getInstance(Locale.US); static { diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml index 5004d8360..e6af2ee0c 100644 --- a/Essentials/src/config.yml +++ b/Essentials/src/config.yml @@ -560,6 +560,19 @@ use-bukkit-permissions: false # Minimum acceptable amount to be used in /pay. minimum-pay-amount: 0.001 +# The format of currency, excluding symbols. See currency-sumbol-format-locale for symbol configuration. +# +# "#,##0.00" is how the majority of countries display currency. +#currency-format: "#,##0.00" + +# Format currency symbols. Some locales use , and . interchangeably. +# Some formats do not display properly in-game due to faulty Minecraft font rendering. +# +# For 1.234,50 use de-DE +# For 1,234.50 use en-US +# For 1'234,50 use fr-ch +#currency-symbol-format-locale: en-US + ############################################################ # +------------------------------------------------------+ # # | EssentialsHelp | # From b673630a7e692782784817e339a407eaa993aaa4 Mon Sep 17 00:00:00 2001 From: Ali Moghnieh Date: Sun, 19 Jun 2016 21:07:45 +0100 Subject: [PATCH 04/28] Implement spawn-on-join configuration. Admins can now specify whether all joining players should be teleported to the user's group spawn when joining the server. Players can be assigned the essentials.spawn-on-join.exempt permission to become exempt from this feature. --- .../com/earth2me/essentials/ISettings.java | 2 ++ .../src/com/earth2me/essentials/Settings.java | 5 +++++ Essentials/src/config.yml | 3 +++ .../spawn/EssentialsSpawnPlayerListener.java | 20 ++++++++++++++++++- EssentialsSpawn/src/plugin.yml | 6 +++++- 5 files changed, 34 insertions(+), 2 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java index c736ad5c2..34b56094d 100644 --- a/Essentials/src/com/earth2me/essentials/ISettings.java +++ b/Essentials/src/com/earth2me/essentials/ISettings.java @@ -243,4 +243,6 @@ public interface ISettings extends IConf { boolean isSendFlyEnableOnJoin(); boolean isWorldTimePermissions(); + + boolean isSpawnOnJoin(); } diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index 413809e26..4ae59a067 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -1163,4 +1163,9 @@ public class Settings implements net.ess3.api.ISettings { public boolean isWorldTimePermissions() { return config.getBoolean("world-time-permissions", false); } + + @Override + public boolean isSpawnOnJoin() { + return config.getBoolean("spawn-on-join", false); + } } diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml index 5004d8360..a0101c18e 100644 --- a/Essentials/src/config.yml +++ b/Essentials/src/config.yml @@ -801,4 +801,7 @@ respawn-listener-priority: high # When users die, should they respawn at their first home or bed, instead of the spawnpoint? respawn-at-home: false +# Teleport all joining players to the spawnpoint +spawn-on-join: false + # End of file <-- No seriously, you're done with configuration. diff --git a/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java b/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java index 7553f095d..db929674a 100644 --- a/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java +++ b/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java @@ -68,9 +68,27 @@ public class EssentialsSpawnPlayerListener implements Listener { }); } - public void delayedJoin(Player player) { + public void delayedJoin(final Player player) { if (player.hasPlayedBefore()) { LOGGER.log(Level.FINE, "Old player join"); + + if (ess.getSettings().isSpawnOnJoin()) { + final User user = ess.getUser(player); + if (!user.isAuthorized("essentials.spawn-on-join.exempt")) { + ess.scheduleSyncDelayedTask(new Runnable() { + @Override + public void run() { + Location spawn = spawns.getSpawn(user.getGroup()); + try { + user.getTeleport().now(spawn, false, TeleportCause.PLUGIN); + } catch (Exception e) { + ess.showError(user.getSource(), e, "spawn-on-join"); + } + } + }); + } + } + return; } diff --git a/EssentialsSpawn/src/plugin.yml b/EssentialsSpawn/src/plugin.yml index 7e9bf3b26..79d37e669 100644 --- a/EssentialsSpawn/src/plugin.yml +++ b/EssentialsSpawn/src/plugin.yml @@ -15,4 +15,8 @@ commands: spawn: description: Teleport to the spawnpoint. usage: / [player] - aliases: [espawn] \ No newline at end of file + aliases: [espawn] +permissions: + essentials.spawn-on-join.exempt: + default: false + description: "Bypass spawn teleportation on join when spawn-on-join is true." From dabcb510342c52485f40b9f0a943f35debe5f14c Mon Sep 17 00:00:00 2001 From: Ali Moghnieh Date: Fri, 24 Jun 2016 11:24:54 +0100 Subject: [PATCH 05/28] Allow colour codes in nickname-prefix. --- Essentials/src/com/earth2me/essentials/User.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java index b178851af..d8d8e09fd 100644 --- a/Essentials/src/com/earth2me/essentials/User.java +++ b/Essentials/src/com/earth2me/essentials/User.java @@ -256,7 +256,7 @@ public class User extends UserData implements Comparable, IMessageRecipien } else if (nick.equalsIgnoreCase(getName())) { nickname = nick; } else { - nickname = ess.getSettings().getNicknamePrefix() + nick; + nickname = FormatUtil.replaceFormat(ess.getSettings().getNicknamePrefix()) + nick; suffix = "§r"; } From 5cbcd7469b601152aba9d91a6c568a23f6bd902c Mon Sep 17 00:00:00 2001 From: vemacs Date: Sat, 25 Jun 2016 09:47:06 -0600 Subject: [PATCH 06/28] Nullcheck user iteration in EssentialsTimer (fixes #675) --- .../src/com/earth2me/essentials/EssentialsTimer.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsTimer.java b/Essentials/src/com/earth2me/essentials/EssentialsTimer.java index d742a259a..6e56ab918 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsTimer.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsTimer.java @@ -9,9 +9,9 @@ import java.util.logging.Level; public class EssentialsTimer implements Runnable { private final transient IEssentials ess; - private final transient Set onlineUsers = new HashSet(); + private final transient Set onlineUsers = new HashSet<>(); // Field is necessary for hidden users private transient long lastPoll = System.nanoTime(); - private final LinkedList history = new LinkedList(); + private final LinkedList history = new LinkedList<>(); private int skip1 = 0; private int skip2 = 0; private final long maxTime = 10 * 1000000; @@ -76,6 +76,11 @@ public class EssentialsTimer implements Runnable { } } final User user = ess.getUser(iterator.next()); + // Not sure why this would happen, but it does + if (user == null) { + iterator.remove(); + continue; + } if (user.getLastOnlineActivity() < currentTime && user.getLastOnlineActivity() > user.getLastLogout()) { if (!user.isHidden()) { user.setLastLogout(user.getLastOnlineActivity()); From 0a563b91a2ffe003ce8827ea36908f2ad6d33eda Mon Sep 17 00:00:00 2001 From: Ali Moghnieh Date: Sun, 26 Jun 2016 15:21:35 +0100 Subject: [PATCH 07/28] Create teleport-to-center configuration option. This option toggles whether essentials should rounds all teleportations off to the center of the block. --- .../com/earth2me/essentials/ISettings.java | 2 ++ .../src/com/earth2me/essentials/Settings.java | 5 +++++ .../src/com/earth2me/essentials/Teleport.java | 9 ++++++--- .../essentials/utils/LocationUtil.java | 19 ++++++++++++++++++- Essentials/src/config.yml | 3 +++ 5 files changed, 34 insertions(+), 4 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java index 34b56094d..441ea45dc 100644 --- a/Essentials/src/com/earth2me/essentials/ISettings.java +++ b/Essentials/src/com/earth2me/essentials/ISettings.java @@ -245,4 +245,6 @@ public interface ISettings extends IConf { boolean isWorldTimePermissions(); boolean isSpawnOnJoin(); + + boolean isTeleportToCenterLocation(); } diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index 4ae59a067..f34a75507 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -1168,4 +1168,9 @@ public class Settings implements net.ess3.api.ISettings { public boolean isSpawnOnJoin() { return config.getBoolean("spawn-on-join", false); } + + @Override + public boolean isTeleportToCenterLocation() { + return config.getBoolean("teleport-to-center", true); + } } diff --git a/Essentials/src/com/earth2me/essentials/Teleport.java b/Essentials/src/com/earth2me/essentials/Teleport.java index 4c04aaee8..f68e283c3 100644 --- a/Essentials/src/com/earth2me/essentials/Teleport.java +++ b/Essentials/src/com/earth2me/essentials/Teleport.java @@ -117,7 +117,7 @@ public class Teleport implements net.ess3.api.ITeleport { protected void now(IUser teleportee, ITarget target, TeleportCause cause) throws Exception { cancel(false); teleportee.setLastLocation(); - final Location loc = target.getLocation(); + Location loc = target.getLocation(); if (LocationUtil.isBlockUnsafeForUser(teleportee, loc.getWorld(), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ())) { if (ess.getSettings().isTeleportSafetyEnabled()) { @@ -127,7 +127,7 @@ public class Teleport implements net.ess3.api.ITeleport { if (ess.getSettings().isForceDisableTeleportSafety()) { teleportee.getBase().teleport(loc, cause); } else { - teleportee.getBase().teleport(LocationUtil.getSafeDestination(teleportee, loc), cause); + teleportee.getBase().teleport(LocationUtil.getSafeDestination(ess, teleportee, loc), cause); } } else { throw new Exception(tl("unsafeTeleportDestination", loc.getWorld().getName(), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ())); @@ -139,7 +139,10 @@ public class Teleport implements net.ess3.api.ITeleport { if (ess.getSettings().isForceDisableTeleportSafety()) { teleportee.getBase().teleport(loc, cause); } else { - teleportee.getBase().teleport(LocationUtil.getRoundedDestination(loc), cause); + if (ess.getSettings().isTeleportToCenterLocation()) { + loc = LocationUtil.getRoundedDestination(loc); + } + teleportee.getBase().teleport(loc, cause); } } } diff --git a/Essentials/src/com/earth2me/essentials/utils/LocationUtil.java b/Essentials/src/com/earth2me/essentials/utils/LocationUtil.java index f0239d2d4..0a9e043b9 100644 --- a/Essentials/src/com/earth2me/essentials/utils/LocationUtil.java +++ b/Essentials/src/com/earth2me/essentials/utils/LocationUtil.java @@ -13,6 +13,9 @@ import java.util.*; import static com.earth2me.essentials.I18n.tl; +import com.earth2me.essentials.Essentials; +import com.earth2me.essentials.IEssentials; + public class LocationUtil { // The player can stand inside these materials @@ -261,12 +264,26 @@ public class LocationUtil { return new Location(world, x + 0.5, y, z + 0.5, loc.getYaw(), loc.getPitch()); } + /** + * @deprecated Use {@link #getSafeDestination(IEssentials, IUser, Location)} + */ + @Deprecated public static Location getSafeDestination(final IUser user, final Location loc) throws Exception { + return getSafeDestination(null, user, loc); + } + + public static Location getSafeDestination(final IEssentials ess, final IUser user, final Location loc) throws Exception { if (user.getBase().isOnline() && loc.getWorld().equals(user.getBase().getWorld()) && (user.getBase().getGameMode() == GameMode.CREATIVE || user.isGodModeEnabled()) && user.getBase().getAllowFlight()) { if (shouldFly(loc)) { user.getBase().setFlying(true); } - return getRoundedDestination(loc); + // ess can be null if old deprecated method is calling it. + System.out.println((ess == null) + " " + ess.getSettings().isTeleportToCenterLocation()); + if (ess == null || ess.getSettings().isTeleportToCenterLocation()) { + return getRoundedDestination(loc); + } else { + return loc; + } } return getSafeDestination(loc); } diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml index a0101c18e..1967fb9fa 100644 --- a/Essentials/src/config.yml +++ b/Essentials/src/config.yml @@ -64,6 +64,9 @@ teleport-delay: 0 # This will also prevent the player attacking other players. teleport-invulnerability: 4 +# Whether to make all teleportations go to the center of the block; where the x and z coordinates decimal become .5 +teleport-to-center: true + # The delay, in seconds, required between /heal or /feed attempts. heal-cooldown: 60 From ebe6abd885090ec453921ca8b2490bd9e62c1b95 Mon Sep 17 00:00:00 2001 From: Ali Moghnieh Date: Sun, 26 Jun 2016 15:25:52 +0100 Subject: [PATCH 08/28] Make `/tp` parse arguments as double instead of integer. --- .../essentials/commands/Commandtp.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandtp.java b/Essentials/src/com/earth2me/essentials/commands/Commandtp.java index 82266af64..389a96c38 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandtp.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandtp.java @@ -38,9 +38,9 @@ public class Commandtp extends EssentialsCommand { if (!user.isAuthorized("essentials.tp.position")) { throw new Exception(tl("noPerm", "essentials.tp.position")); } - final double x2 = args[0].startsWith("~") ? user.getLocation().getX() + (args[0].length() > 1 ? Integer.parseInt(args[0].substring(1)) : 0) : Integer.parseInt(args[0]); - final double y2 = args[1].startsWith("~") ? user.getLocation().getY() + (args[1].length() > 1 ? Integer.parseInt(args[1].substring(1)) : 0) : Integer.parseInt(args[1]); - final double z2 = args[2].startsWith("~") ? user.getLocation().getZ() + (args[2].length() > 1 ? Integer.parseInt(args[2].substring(1)) : 0) : Integer.parseInt(args[2]); + final double x2 = args[0].startsWith("~") ? user.getLocation().getX() + (args[0].length() > 1 ? Double.parseDouble(args[0].substring(1)) : 0) : Double.parseDouble(args[0]); + final double y2 = args[1].startsWith("~") ? user.getLocation().getY() + (args[1].length() > 1 ? Double.parseDouble(args[1].substring(1)) : 0) : Double.parseDouble(args[1]); + final double z2 = args[2].startsWith("~") ? user.getLocation().getZ() + (args[2].length() > 1 ? Double.parseDouble(args[2].substring(1)) : 0) : Double.parseDouble(args[2]); if (x2 > 30000000 || y2 > 30000000 || z2 > 30000000 || x2 < -30000000 || y2 < -30000000 || z2 < -30000000) { throw new NotEnoughArgumentsException(tl("teleportInvalidLocation")); } @@ -56,9 +56,9 @@ public class Commandtp extends EssentialsCommand { throw new Exception(tl("noPerm", "essentials.tp.position")); } final User target2 = getPlayer(server, user, args, 0); - final double x = args[1].startsWith("~") ? target2.getLocation().getX() + (args[1].length() > 1 ? Integer.parseInt(args[1].substring(1)) : 0) : Integer.parseInt(args[1]); - final double y = args[2].startsWith("~") ? target2.getLocation().getY() + (args[2].length() > 1 ? Integer.parseInt(args[2].substring(1)) : 0) : Integer.parseInt(args[2]); - final double z = args[3].startsWith("~") ? target2.getLocation().getZ() + (args[3].length() > 1 ? Integer.parseInt(args[3].substring(1)) : 0) : Integer.parseInt(args[3]); + final double x = args[1].startsWith("~") ? target2.getLocation().getX() + (args[1].length() > 1 ? Double.parseDouble(args[1].substring(1)) : 0) : Double.parseDouble(args[1]); + final double y = args[2].startsWith("~") ? target2.getLocation().getY() + (args[2].length() > 1 ? Double.parseDouble(args[2].substring(1)) : 0) : Double.parseDouble(args[2]); + final double z = args[3].startsWith("~") ? target2.getLocation().getZ() + (args[3].length() > 1 ? Double.parseDouble(args[3].substring(1)) : 0) : Double.parseDouble(args[3]); if (x > 30000000 || y > 30000000 || z > 30000000 || x < -30000000 || y < -30000000 || z < -30000000) { throw new NotEnoughArgumentsException(tl("teleportInvalidLocation")); } @@ -104,9 +104,9 @@ public class Commandtp extends EssentialsCommand { target.sendMessage(tl("teleportAtoB", Console.NAME, toPlayer.getDisplayName())); target.getTeleport().now(toPlayer.getBase(), false, TeleportCause.COMMAND); } else if (args.length > 3) { - final double x = args[1].startsWith("~") ? target.getLocation().getX() + (args[1].length() > 1 ? Integer.parseInt(args[1].substring(1)) : 0) : Integer.parseInt(args[1]); - final double y = args[2].startsWith("~") ? target.getLocation().getY() + (args[2].length() > 1 ? Integer.parseInt(args[2].substring(1)) : 0) : Integer.parseInt(args[2]); - final double z = args[3].startsWith("~") ? target.getLocation().getZ() + (args[3].length() > 1 ? Integer.parseInt(args[3].substring(1)) : 0) : Integer.parseInt(args[3]); + final double x = args[1].startsWith("~") ? target.getLocation().getX() + (args[1].length() > 1 ? Double.parseDouble(args[1].substring(1)) : 0) : Double.parseDouble(args[1]); + final double y = args[2].startsWith("~") ? target.getLocation().getY() + (args[2].length() > 1 ? Double.parseDouble(args[2].substring(1)) : 0) : Double.parseDouble(args[2]); + final double z = args[3].startsWith("~") ? target.getLocation().getZ() + (args[3].length() > 1 ? Double.parseDouble(args[3].substring(1)) : 0) : Double.parseDouble(args[3]); if (x > 30000000 || y > 30000000 || z > 30000000 || x < -30000000 || y < -30000000 || z < -30000000) { throw new NotEnoughArgumentsException(tl("teleportInvalidLocation")); } From e95fad04539c4c97aa9f644cdad70e15173bed19 Mon Sep 17 00:00:00 2001 From: Ali Moghnieh Date: Sun, 26 Jun 2016 22:10:36 +0100 Subject: [PATCH 09/28] Don't list NPCs in `/baltop` output. --- .../src/com/earth2me/essentials/commands/Commandbalancetop.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandbalancetop.java b/Essentials/src/com/earth2me/essentials/commands/Commandbalancetop.java index e8c9bcd0b..9f1a3b1be 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandbalancetop.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandbalancetop.java @@ -96,7 +96,7 @@ public class Commandbalancetop extends EssentialsCommand { } else { for (UUID u : ess.getUserMap().getAllUniqueUsers()) { final User user = ess.getUserMap().getUser(u); - if (user != null) { + if (user != null && !user.isNPC()) { // Don't list NPCs in output final BigDecimal userMoney = user.getMoney(); user.updateMoneyCache(userMoney); totalMoney = totalMoney.add(userMoney); From d174cea42eaa04ddca86e2d9119b5cc6fd50d0dc Mon Sep 17 00:00:00 2001 From: Ali Moghnieh Date: Mon, 27 Jun 2016 21:45:31 +0100 Subject: [PATCH 10/28] Do not apply starting balance for NPCs. Resolves #191 NPC balances are usually banks e.g. Factions plugin depending on EssentialsEco to provide economy functionality for the Faction. --- Essentials/src/com/earth2me/essentials/UserData.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Essentials/src/com/earth2me/essentials/UserData.java b/Essentials/src/com/earth2me/essentials/UserData.java index 4fb81914f..eecf3ff1a 100644 --- a/Essentials/src/com/earth2me/essentials/UserData.java +++ b/Essentials/src/com/earth2me/essentials/UserData.java @@ -93,6 +93,11 @@ public abstract class UserData extends PlayerExtension implements IConf { BigDecimal result = ess.getSettings().getStartingBalance(); BigDecimal maxMoney = ess.getSettings().getMaxMoney(); BigDecimal minMoney = ess.getSettings().getMinMoney(); + + // NPC banks are not actual player banks, as such they do not have player starting balance. + if (isNPC()) { + result = BigDecimal.ZERO; + } if (config.hasProperty("money")) { result = config.getBigDecimal("money", result); From 864dadab80224f03b5e98029beccb840712ae6ab Mon Sep 17 00:00:00 2001 From: Ali Moghnieh Date: Mon, 27 Jun 2016 21:46:32 +0100 Subject: [PATCH 11/28] Add debug message in EssentialsSign. --- .../src/com/earth2me/essentials/signs/EssentialsSign.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java b/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java index d9dce27b8..283b12fee 100644 --- a/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java +++ b/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java @@ -45,6 +45,9 @@ public class EssentialsSign { final SignCreateEvent signEvent = new SignCreateEvent(sign, this, user); ess.getServer().getPluginManager().callEvent(signEvent); if (signEvent.isCancelled()) { + if (ess.getSettings().isDebug()) { + ess.getLogger().info("SignCreateEvent cancelled for sign " + signEvent.getEssentialsSign().getName()); + } return false; } From 09acbcdb05f34e0043116f1866904b0ff0f03ddd Mon Sep 17 00:00:00 2001 From: Ali Moghnieh Date: Tue, 28 Jun 2016 03:40:47 +0100 Subject: [PATCH 12/28] Implement Command Cooldowns. Resolves #110 --- .../essentials/EssentialsPlayerListener.java | 45 +++++++++- .../com/earth2me/essentials/ISettings.java | 10 +++ .../src/com/earth2me/essentials/IUser.java | 10 +++ .../src/com/earth2me/essentials/Settings.java | 89 +++++++++++++++++++ .../src/com/earth2me/essentials/UserData.java | 87 ++++++++++++++++++ Essentials/src/config.yml | 18 ++++ Essentials/src/messages.properties | 1 + Essentials/src/messages_cs.properties | 3 +- Essentials/src/messages_da.properties | 3 +- Essentials/src/messages_de.properties | 1 + Essentials/src/messages_en.properties | 1 + Essentials/src/messages_es.properties | 3 +- Essentials/src/messages_et.properties | 3 +- Essentials/src/messages_fi.properties | 3 +- Essentials/src/messages_fr.properties | 1 + Essentials/src/messages_hu.properties | 3 +- Essentials/src/messages_it.properties | 3 +- Essentials/src/messages_ko.properties | 3 +- Essentials/src/messages_lt.properties | 3 +- Essentials/src/messages_nl.properties | 3 +- Essentials/src/messages_pl.properties | 3 +- Essentials/src/messages_pt.properties | 3 +- Essentials/src/messages_pt_BR.properties | 3 +- Essentials/src/messages_ro.properties | 3 +- Essentials/src/messages_ru.properties | 3 +- Essentials/src/messages_sv.properties | 3 +- Essentials/src/messages_tr.properties | 3 +- Essentials/src/messages_zh.properties | 3 +- Essentials/src/messages_zh_HK.properties | 3 +- Essentials/src/messages_zh_TW.properties | 3 +- 30 files changed, 302 insertions(+), 21 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index a51daa968..1f3d7ff4c 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -4,6 +4,7 @@ import com.earth2me.essentials.textreader.IText; import com.earth2me.essentials.textreader.KeywordReplacer; import com.earth2me.essentials.textreader.TextInput; import com.earth2me.essentials.textreader.TextPager; +import com.earth2me.essentials.utils.DateUtil; import com.earth2me.essentials.utils.LocationUtil; import net.ess3.api.IEssentials; import org.bukkit.GameMode; @@ -26,11 +27,15 @@ import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.ItemStack; import java.io.IOException; +import java.util.Date; +import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Locale; +import java.util.Map.Entry; import java.util.logging.Level; import java.util.logging.Logger; +import java.util.regex.Pattern; import static com.earth2me.essentials.I18n.tl; @@ -399,10 +404,48 @@ public class EssentialsPlayerListener implements Listener { broadcast = false; } } + final User user = ess.getUser(player); if (update) { - final User user = ess.getUser(player); user.updateActivity(broadcast); } + + if (ess.getSettings().isCommandCooldownsEnabled() && pluginCommand != null) { + int argStartIndex = event.getMessage().indexOf(" "); + String args = argStartIndex == -1 ? event.getMessage() // No arguments present + : event.getMessage().substring(argStartIndex); // arguments start at argStartIndex; substring from there. + String fullCommand = pluginCommand.getName() + " " + args; + + // Used to determine whether a user already has an existing cooldown + // If so, no need to check for (and write) new ones. + boolean cooldownFound = false; + + // Iterate over a copy of getCommandCooldowns in case of concurrent modifications + for (Entry entry : new HashMap<>(user.getCommandCooldowns()).entrySet()) { + // Remove any expired cooldowns + if (entry.getValue() <= System.currentTimeMillis()) { + user.clearCommandCooldown(entry.getKey()); + // Don't break in case there are other command cooldowns left to clear. + } else if (entry.getKey().matcher(fullCommand).matches()) { + // User's current cooldown hasn't expired, inform and terminate cooldown code. + if (entry.getValue() > System.currentTimeMillis()) { + String commandCooldownTime = DateUtil.formatDateDiff(entry.getValue()); + user.sendMessage(tl("commandCooldown", commandCooldownTime)); + cooldownFound = true; + event.setCancelled(true); + break; + } + } + } + + if (!cooldownFound) { + Entry cooldownEntry = ess.getSettings().getCommandCooldownEntry(fullCommand); + + if (cooldownEntry != null) { + Date expiry = new Date(System.currentTimeMillis() + cooldownEntry.getValue()); + user.addCommandCooldown(cooldownEntry.getKey(), expiry, ess.getSettings().isCommandCooldownPersistent(fullCommand)); + } + } + } } @EventHandler(priority = EventPriority.NORMAL) diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java index 441ea45dc..3d7e5918b 100644 --- a/Essentials/src/com/earth2me/essentials/ISettings.java +++ b/Essentials/src/com/earth2me/essentials/ISettings.java @@ -10,7 +10,9 @@ import org.bukkit.event.EventPriority; import java.math.BigDecimal; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.Set; +import java.util.regex.Pattern; public interface ISettings extends IConf { @@ -247,4 +249,12 @@ public interface ISettings extends IConf { boolean isSpawnOnJoin(); boolean isTeleportToCenterLocation(); + + boolean isCommandCooldownsEnabled(); + + long getCommandCooldownMs(String label); + + Entry getCommandCooldownEntry(String label); + + boolean isCommandCooldownPersistent(String label); } diff --git a/Essentials/src/com/earth2me/essentials/IUser.java b/Essentials/src/com/earth2me/essentials/IUser.java index f01fad053..057738822 100644 --- a/Essentials/src/com/earth2me/essentials/IUser.java +++ b/Essentials/src/com/earth2me/essentials/IUser.java @@ -7,9 +7,11 @@ import org.bukkit.Location; import org.bukkit.entity.Player; import java.math.BigDecimal; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.regex.Pattern; public interface IUser { @@ -138,6 +140,14 @@ public interface IUser { Map getConfigMap(); Map getConfigMap(String node); + + Map getCommandCooldowns(); + + Date getCommandCooldownExpiry(String label); + + void addCommandCooldown(Pattern pattern, Date expiresAt, boolean save); + + boolean clearCommandCooldown(Pattern pattern); /* * PlayerExtension diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index f34a75507..8c69e5564 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -16,10 +16,13 @@ import org.bukkit.inventory.ItemStack; import java.io.File; import java.math.BigDecimal; import java.util.*; +import java.util.Map.Entry; import java.util.logging.Level; import java.util.logging.Logger; import static com.earth2me.essentials.I18n.tl; +import java.util.regex.Pattern; +import java.util.regex.PatternSyntaxException; public class Settings implements net.ess3.api.ISettings { @@ -532,6 +535,7 @@ public class Settings implements net.ess3.api.ISettings { customQuitMessage = _getCustomQuitMessage(); isCustomQuitMessage = !customQuitMessage.equals("none"); muteCommands = _getMuteCommands(); + commandCooldowns = _getCommandCooldowns(); } private List itemSpawnBl = new ArrayList(); @@ -1173,4 +1177,89 @@ public class Settings implements net.ess3.api.ISettings { public boolean isTeleportToCenterLocation() { return config.getBoolean("teleport-to-center", true); } + + + private Map commandCooldowns; + + private Map _getCommandCooldowns() { + if (!config.isConfigurationSection("command-cooldowns")) { + return null; + } + ConfigurationSection section = config.getConfigurationSection("command-cooldowns"); + Map result = new LinkedHashMap<>(); + for (String cmdEntry : section.getKeys(false)) { + Pattern pattern = null; + + /* ================================ + * >> Regex + * ================================ */ + if (cmdEntry.startsWith("^")) { + try { + pattern = Pattern.compile(cmdEntry.substring(1)); + } catch (PatternSyntaxException e) { + ess.getLogger().warning("Command cooldown error: " + e.getMessage()); + } + } else { + // Escape above Regex + if (cmdEntry.startsWith("\\^")) { + cmdEntry = cmdEntry.substring(1); + } + String cmd = cmdEntry + .replaceAll("\\*", ".*"); // Wildcards are accepted as asterisk * as known universally. + pattern = Pattern.compile(cmd + "( .*)?"); // This matches arguments, if present, to "ignore" them from the feature. + } + + /* ================================ + * >> Process cooldown value + * ================================ */ + Object value = section.get(cmdEntry); + if (!(value instanceof Number) && value instanceof String) { + try { + value = Double.parseDouble(value.toString()); + } catch (NumberFormatException ignored) { + } + } + if (!(value instanceof Number)) { + ess.getLogger().warning("Command cooldown error: '" + value + "' is not a valid cooldown"); + continue; + } + double cooldown = ((Number) value).doubleValue(); + if (cooldown < 1) { + ess.getLogger().warning("Command cooldown with very short " + cooldown + " cooldown."); + } + + result.put(pattern, (long) cooldown * 1000); // convert to milliseconds + } + return result; + } + + @Override + public boolean isCommandCooldownsEnabled() { + return commandCooldowns != null; + } + + @Override + public long getCommandCooldownMs(String label) { + Entry result = getCommandCooldownEntry(label); + return result != null ? result.getValue() : -1; // return cooldown in milliseconds + } + + @Override + public Entry getCommandCooldownEntry(String label) { + if (isCommandCooldownsEnabled()) { + for (Entry entry : this.commandCooldowns.entrySet()) { + // Check if label matches current pattern (command-cooldown in config) + if (entry.getKey().matcher(label).matches()) { + return entry; + } + } + } + return null; + } + + @Override + public boolean isCommandCooldownPersistent(String label) { + // TODO: enable per command cooldown specification for persistence. + return config.getBoolean("command-cooldown-persistence", true); + } } diff --git a/Essentials/src/com/earth2me/essentials/UserData.java b/Essentials/src/com/earth2me/essentials/UserData.java index eecf3ff1a..ee4a06b1a 100644 --- a/Essentials/src/com/earth2me/essentials/UserData.java +++ b/Essentials/src/com/earth2me/essentials/UserData.java @@ -2,6 +2,7 @@ package com.earth2me.essentials; import com.earth2me.essentials.utils.NumberUtil; import com.earth2me.essentials.utils.StringUtil; +import com.google.common.collect.ImmutableMap; import net.ess3.api.IEssentials; import net.ess3.api.InvalidWorldException; import net.ess3.api.MaxMoneyException; @@ -13,6 +14,8 @@ import org.bukkit.inventory.ItemStack; import java.io.File; import java.math.BigDecimal; import java.util.*; +import java.util.Map.Entry; +import java.util.regex.Pattern; import static com.earth2me.essentials.I18n.tl; @@ -85,6 +88,7 @@ public abstract class UserData extends PlayerExtension implements IConf { ignoredPlayers = _getIgnoredPlayers(); logoutLocation = _getLogoutLocation(); lastAccountName = _getLastAccountName(); + commandCooldowns = _getCommandCooldowns(); } private BigDecimal money; @@ -792,6 +796,89 @@ public abstract class UserData extends PlayerExtension implements IConf { return new HashMap(); } + // Pattern, Date. Pattern for less pattern creations + private Map commandCooldowns; + + private Map _getCommandCooldowns() { + if (!config.isConfigurationSection("timestamps.command-cooldowns")) { + return null; + } + + // See saveCommandCooldowns() for deserialization explanation + List> section = config.getMapList("timestamps.command-cooldowns"); + HashMap result = new HashMap<>(); + for (Map map : section) { + Pattern pattern = Pattern.compile(map.get("pattern").toString()); + long expiry = ((Number) map.get("expiry")).longValue(); + result.put(pattern, expiry); + } + return result; + } + + public Map getCommandCooldowns() { + if (this.commandCooldowns == null) { + return Collections.emptyMap(); + } + return Collections.unmodifiableMap(this.commandCooldowns); + } + + public Date getCommandCooldownExpiry(String label) { + if (commandCooldowns != null) { + for (Entry entry : this.commandCooldowns.entrySet()) { + if (entry.getKey().matcher(label).matches()) { + return new Date(entry.getValue()); + } + } + } + return null; + } + + public void addCommandCooldown(Pattern pattern, Date expiresAt, boolean save) { + if (this.commandCooldowns == null) { + this.commandCooldowns = new HashMap<>(); + } + this.commandCooldowns.put(pattern, expiresAt.getTime()); + if (save) { + saveCommandCooldowns(); + } + } + + public boolean clearCommandCooldown(Pattern pattern) { + if (this.commandCooldowns == null) { + return false; // false for no modification + } + + if(this.commandCooldowns.remove(pattern) != null) { + saveCommandCooldowns(); + return true; + } + return false; + } + + private void saveCommandCooldowns() { + // Serialization explanation: + // + // Serialization is done as a map list instead of a config section due to limitations. + // When serializing patterns (which commonly include full stops .) Bukkit/Essentials config framework + // interprets it as a path separator, thus it breaks up the regex into sub nodes causing invalid syntax. + // Thus each command cooldown is instead stored as a Map of {pattern: .., expiry: ..} to work around this. + List serialized = new ArrayList<>(); + for (Entry entry : this.commandCooldowns.entrySet()) { + // Don't save expired cooldowns + if (entry.getValue() < System.currentTimeMillis()) { + continue; + } + + Map map = ImmutableMap.builder() + .put("pattern", entry.getKey().pattern()) + .put("expiry", entry.getValue()) + .build(); + serialized.add(map); + } + config.setProperty("timestamps.command-cooldowns", serialized); + save(); + } + public UUID getConfigUUID() { return config.uuid; } diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml index 1967fb9fa..92e5b8dae 100644 --- a/Essentials/src/config.yml +++ b/Essentials/src/config.yml @@ -484,6 +484,24 @@ send-fly-enable-on-join: true # Give someone permission to teleport to a world with essentials.time.world.. world-time-permissions: false +# Specify cooldown for both Essentials commands and external commands as well. +# All commands do not start with a Forward Slash (/). Instead of /msg, write msg +# +# Wildcards are supported. E.g. +# - '*i*': 50 +# adds a 50 second cooldown to all commands that include the letter i +# +# EssentialsX supports regex by starting the command with a caret ^ +# For example, to target commands starting with ban and not banip the following would be used: +# '^ban([^ip])( .*)?': 60 # 60 seconds /ban cooldown. +# Note: If you have a command that starts with ^, then you can escape it using backslash (\). e.g. \^command: 123 +command-cooldowns: +# feed: 100 # 100 second cooldown on /feed command +# '*': 5 # 5 Second cooldown on all commands + +# Whether command cooldowns should be persistent past server shutdowns +command-cooldown-persistence: true + ############################################################ # +------------------------------------------------------+ # # | EssentialsHome | # diff --git a/Essentials/src/messages.properties b/Essentials/src/messages.properties index b041a857d..468de474a 100644 --- a/Essentials/src/messages.properties +++ b/Essentials/src/messages.properties @@ -573,3 +573,4 @@ msgEnabled=\u00a76Receiving messages \u00a7cenabled\u00a76. msgEnabledFor=\u00a76Receiving messages \u00a7cenabled \u00a76for \u00a7c{0}\u00a76. msgIgnore=\u00a7c{0} \u00a74has messages disabled. minimumPayAmount=\u00a7cThe minimum amount you can pay is {0}. +commandCooldown=\u00a7cYou cannot type that command for {0}. diff --git a/Essentials/src/messages_cs.properties b/Essentials/src/messages_cs.properties index 62331ff98..85c856620 100644 --- a/Essentials/src/messages_cs.properties +++ b/Essentials/src/messages_cs.properties @@ -561,4 +561,5 @@ createdKit=\u00a76Created kit \u00a7c{0} \u00a76with \u00a7c{1} \u00a76entries a spectator=spectator kitContains=\u00a76Kit \u00a7c{0} \u00a76contains: kitItem=\u00a76- \u00a7f{0} -invalidBanner=\u00a74Invalid banner syntax. \ No newline at end of file +invalidBanner=\u00a74Invalid banner syntax. +commandCooldown=\u00a7cYou cannot type that command for {0}. diff --git a/Essentials/src/messages_da.properties b/Essentials/src/messages_da.properties index 502da6dd0..d71561c5d 100644 --- a/Essentials/src/messages_da.properties +++ b/Essentials/src/messages_da.properties @@ -561,4 +561,5 @@ createdKit=\u00a76Created kit \u00a7c{0} \u00a76with \u00a7c{1} \u00a76entries a spectator=spectator kitContains=\u00a76Kit \u00a7c{0} \u00a76contains: kitItem=\u00a76- \u00a7f{0} -invalidBanner=\u00a74Invalid banner syntax. \ No newline at end of file +invalidBanner=\u00a74Invalid banner syntax. +commandCooldown=\u00a7cYou cannot type that command for {0}. diff --git a/Essentials/src/messages_de.properties b/Essentials/src/messages_de.properties index ec874e740..99617a552 100644 --- a/Essentials/src/messages_de.properties +++ b/Essentials/src/messages_de.properties @@ -566,3 +566,4 @@ spectator=Zuschauer kitContains=\u00a76Ausr\u00fcstung \u00a7c{0} \u00a76enth\u00e4lt: kitItem=\u00a76- \u00a7f{0} invalidBanner=\u00a74Ung\u00fcltige Banner-Syntax. +commandCooldown=\u00a7cYou cannot type that command for {0}. diff --git a/Essentials/src/messages_en.properties b/Essentials/src/messages_en.properties index 890945bbe..cd4e49922 100644 --- a/Essentials/src/messages_en.properties +++ b/Essentials/src/messages_en.properties @@ -566,3 +566,4 @@ msgDisabled=\u00a76Receiving messages \u00a7cdisabled\u00a76. msgDisabledFor=\u00a76Receiving messages \u00a7cdisabled \u00a76for \u00a7c{0}\u00a76. msgEnabled=\u00a76Receiving messages \u00a7cenabled\u00a76. msgEnabledFor=\u00a76Receiving messages \u00a7cenabled \u00a76for \u00a7c{0}\u00a76. +commandCooldown=\u00a7cYou cannot type that command for {0}. diff --git a/Essentials/src/messages_es.properties b/Essentials/src/messages_es.properties index 6acbe1784..95ae950ec 100644 --- a/Essentials/src/messages_es.properties +++ b/Essentials/src/messages_es.properties @@ -561,4 +561,5 @@ createdKit=\u00a76Created kit \u00a7c{0} \u00a76with \u00a7c{1} \u00a76entries a spectator=spectator kitContains=\u00a76Kit \u00a7c{0} \u00a76contains: kitItem=\u00a76- \u00a7f{0} -invalidBanner=\u00a74Invalid banner syntax. \ No newline at end of file +invalidBanner=\u00a74Invalid banner syntax. +commandCooldown=\u00a7cYou cannot type that command for {0}. diff --git a/Essentials/src/messages_et.properties b/Essentials/src/messages_et.properties index 0e0d1a033..d20e50e9b 100644 --- a/Essentials/src/messages_et.properties +++ b/Essentials/src/messages_et.properties @@ -561,4 +561,5 @@ createdKit=\u00a76Created kit \u00a7c{0} \u00a76with \u00a7c{1} \u00a76entries a spectator=spectator kitContains=\u00a76Kit \u00a7c{0} \u00a76contains: kitItem=\u00a76- \u00a7f{0} -invalidBanner=\u00a74Invalid banner syntax. \ No newline at end of file +invalidBanner=\u00a74Invalid banner syntax. +commandCooldown=\u00a7cYou cannot type that command for {0}. diff --git a/Essentials/src/messages_fi.properties b/Essentials/src/messages_fi.properties index 444f51c68..35a5e2825 100644 --- a/Essentials/src/messages_fi.properties +++ b/Essentials/src/messages_fi.properties @@ -561,4 +561,5 @@ createdKit=\u00a76Created kit \u00a7c{0} \u00a76with \u00a7c{1} \u00a76entries a spectator=spectator kitContains=\u00a76Kit \u00a7c{0} \u00a76contains: kitItem=\u00a76- \u00a7f{0} -invalidBanner=\u00a74Invalid banner syntax. \ No newline at end of file +invalidBanner=\u00a74Invalid banner syntax. +commandCooldown=\u00a7cYou cannot type that command for {0}. diff --git a/Essentials/src/messages_fr.properties b/Essentials/src/messages_fr.properties index 271092aa6..e41b0ffec 100644 --- a/Essentials/src/messages_fr.properties +++ b/Essentials/src/messages_fr.properties @@ -567,3 +567,4 @@ msgDisabled=\u00a76R\u00e9ception des messages \u00a7cd\u00e9sactiv\u00e9e\u00a7 msgDisabledFor=\u00a76R\u00e9ception des messages \u00a7cd\u00e9sactiv\u00e9e \u00a76pour \u00a7c{0}\u00a76. msgEnabled=\u00a76R\u00e9ception des messages \u00a7cactiv\u00e9e\u00a76. msgEnabledFor=\u00a76R\u00e9ception des messages \u00a7cactiv\u00e9e \u00a76pour \u00a7c{0}\u00a76. +commandCooldown=\u00a7cYou cannot type that command for {0}. diff --git a/Essentials/src/messages_hu.properties b/Essentials/src/messages_hu.properties index 6891a24c4..90d649857 100644 --- a/Essentials/src/messages_hu.properties +++ b/Essentials/src/messages_hu.properties @@ -561,4 +561,5 @@ createdKit=\u00a76Created kit \u00a7c{0} \u00a76with \u00a7c{1} \u00a76entries a spectator=spectator kitContains=\u00a76Kit \u00a7c{0} \u00a76contains: kitItem=\u00a76- \u00a7f{0} -invalidBanner=\u00a74Invalid banner syntax. \ No newline at end of file +invalidBanner=\u00a74Invalid banner syntax. +commandCooldown=\u00a7cYou cannot type that command for {0}. diff --git a/Essentials/src/messages_it.properties b/Essentials/src/messages_it.properties index 512514fef..898530d5c 100644 --- a/Essentials/src/messages_it.properties +++ b/Essentials/src/messages_it.properties @@ -561,4 +561,5 @@ createdKit=\u00a76Created kit \u00a7c{0} \u00a76with \u00a7c{1} \u00a76entries a spectator=spectator kitContains=\u00a76Kit \u00a7c{0} \u00a76contains: kitItem=\u00a76- \u00a7f{0} -invalidBanner=\u00a74Invalid banner syntax. \ No newline at end of file +invalidBanner=\u00a74Invalid banner syntax. +commandCooldown=\u00a7cYou cannot type that command for {0}. diff --git a/Essentials/src/messages_ko.properties b/Essentials/src/messages_ko.properties index 3d25cfee3..0f4bf3dc1 100644 --- a/Essentials/src/messages_ko.properties +++ b/Essentials/src/messages_ko.properties @@ -561,4 +561,5 @@ createdKit=\u00a76Created kit \u00a7c{0} \u00a76with \u00a7c{1} \u00a76entries a spectator=spectator kitContains=\u00a76Kit \u00a7c{0} \u00a76contains: kitItem=\u00a76- \u00a7f{0} -invalidBanner=\u00a74Invalid banner syntax. \ No newline at end of file +invalidBanner=\u00a74Invalid banner syntax. +commandCooldown=\u00a7cYou cannot type that command for {0}. diff --git a/Essentials/src/messages_lt.properties b/Essentials/src/messages_lt.properties index ad725fa02..627776457 100644 --- a/Essentials/src/messages_lt.properties +++ b/Essentials/src/messages_lt.properties @@ -561,4 +561,5 @@ createdKit=\u00a76Created kit \u00a7c{0} \u00a76with \u00a7c{1} \u00a76entries a spectator=spectator kitContains=\u00a76Kit \u00a7c{0} \u00a76contains: kitItem=\u00a76- \u00a7f{0} -invalidBanner=\u00a74Invalid banner syntax. \ No newline at end of file +invalidBanner=\u00a74Invalid banner syntax. +commandCooldown=\u00a7cYou cannot type that command for {0}. diff --git a/Essentials/src/messages_nl.properties b/Essentials/src/messages_nl.properties index 924769a81..edabe4837 100644 --- a/Essentials/src/messages_nl.properties +++ b/Essentials/src/messages_nl.properties @@ -561,4 +561,5 @@ createdKit=\u00a76Created kit \u00a7c{0} \u00a76with \u00a7c{1} \u00a76entries a spectator=spectator kitContains=\u00a76Kit \u00a7c{0} \u00a76contains: kitItem=\u00a76- \u00a7f{0} -invalidBanner=\u00a74Invalid banner syntax. \ No newline at end of file +invalidBanner=\u00a74Invalid banner syntax. +commandCooldown=\u00a7cYou cannot type that command for {0}. diff --git a/Essentials/src/messages_pl.properties b/Essentials/src/messages_pl.properties index 3db93ccf2..0362569fd 100644 --- a/Essentials/src/messages_pl.properties +++ b/Essentials/src/messages_pl.properties @@ -561,4 +561,5 @@ createdKit=\u00a76Created kit \u00a7c{0} \u00a76with \u00a7c{1} \u00a76entries a spectator=spectator kitContains=\u00a76Kit \u00a7c{0} \u00a76contains: kitItem=\u00a76- \u00a7f{0} -invalidBanner=\u00a74Invalid banner syntax. \ No newline at end of file +invalidBanner=\u00a74Invalid banner syntax. +commandCooldown=\u00a7cYou cannot type that command for {0}. diff --git a/Essentials/src/messages_pt.properties b/Essentials/src/messages_pt.properties index b1c8b901d..0b152889d 100644 --- a/Essentials/src/messages_pt.properties +++ b/Essentials/src/messages_pt.properties @@ -561,4 +561,5 @@ createdKit=\u00a76Created kit \u00a7c{0} \u00a76with \u00a7c{1} \u00a76entries a spectator=spectator kitContains=\u00a76Kit \u00a7c{0} \u00a76contains: kitItem=\u00a76- \u00a7f{0} -invalidBanner=\u00a74Invalid banner syntax. \ No newline at end of file +invalidBanner=\u00a74Invalid banner syntax. +commandCooldown=\u00a7cYou cannot type that command for {0}. diff --git a/Essentials/src/messages_pt_BR.properties b/Essentials/src/messages_pt_BR.properties index 4487392fe..ee3fa4126 100644 --- a/Essentials/src/messages_pt_BR.properties +++ b/Essentials/src/messages_pt_BR.properties @@ -561,4 +561,5 @@ createdKit=\u00a76Created kit \u00a7c{0} \u00a76with \u00a7c{1} \u00a76entries a spectator=spectator kitContains=\u00a76Kit \u00a7c{0} \u00a76contains: kitItem=\u00a76- \u00a7f{0} -invalidBanner=\u00a74Invalid banner syntax. \ No newline at end of file +invalidBanner=\u00a74Invalid banner syntax. +commandCooldown=\u00a7cYou cannot type that command for {0}. diff --git a/Essentials/src/messages_ro.properties b/Essentials/src/messages_ro.properties index a5a4f91e3..1f8263573 100644 --- a/Essentials/src/messages_ro.properties +++ b/Essentials/src/messages_ro.properties @@ -561,4 +561,5 @@ createdKit=\u00a76Created kit \u00a7c{0} \u00a76with \u00a7c{1} \u00a76entries a spectator=spectator kitContains=\u00a76Kit \u00a7c{0} \u00a76contains: kitItem=\u00a76- \u00a7f{0} -invalidBanner=\u00a74Invalid banner syntax. \ No newline at end of file +invalidBanner=\u00a74Invalid banner syntax. +commandCooldown=\u00a7cYou cannot type that command for {0}. diff --git a/Essentials/src/messages_ru.properties b/Essentials/src/messages_ru.properties index 3a30983da..b5f99ddaf 100644 --- a/Essentials/src/messages_ru.properties +++ b/Essentials/src/messages_ru.properties @@ -561,4 +561,5 @@ createdKit=\u00a76Created kit \u00a7c{0} \u00a76with \u00a7c{1} \u00a76entries a spectator=spectator kitContains=\u00a76Kit \u00a7c{0} \u00a76contains: kitItem=\u00a76- \u00a7f{0} -invalidBanner=\u00a74Invalid banner syntax. \ No newline at end of file +invalidBanner=\u00a74Invalid banner syntax. +commandCooldown=\u00a7cYou cannot type that command for {0}. diff --git a/Essentials/src/messages_sv.properties b/Essentials/src/messages_sv.properties index 0239686bb..fbd3aaab5 100644 --- a/Essentials/src/messages_sv.properties +++ b/Essentials/src/messages_sv.properties @@ -561,4 +561,5 @@ createdKit=\u00a76Created kit \u00a7c{0} \u00a76with \u00a7c{1} \u00a76entries a spectator=spectator kitContains=\u00a76Kit \u00a7c{0} \u00a76contains: kitItem=\u00a76- \u00a7f{0} -invalidBanner=\u00a74Invalid banner syntax. \ No newline at end of file +invalidBanner=\u00a74Invalid banner syntax. +commandCooldown=\u00a7cYou cannot type that command for {0}. diff --git a/Essentials/src/messages_tr.properties b/Essentials/src/messages_tr.properties index eadf42d33..44b632062 100644 --- a/Essentials/src/messages_tr.properties +++ b/Essentials/src/messages_tr.properties @@ -561,4 +561,5 @@ createdKit=\u00a76Created kit \u00a7c{0} \u00a76with \u00a7c{1} \u00a76entries a spectator=spectator kitContains=\u00a76Kit \u00a7c{0} \u00a76contains: kitItem=\u00a76- \u00a7f{0} -invalidBanner=\u00a74Invalid banner syntax. \ No newline at end of file +invalidBanner=\u00a74Invalid banner syntax. +commandCooldown=\u00a7cYou cannot type that command for {0}. diff --git a/Essentials/src/messages_zh.properties b/Essentials/src/messages_zh.properties index 6ca498600..75da8adad 100644 --- a/Essentials/src/messages_zh.properties +++ b/Essentials/src/messages_zh.properties @@ -561,4 +561,5 @@ createdKit=\u00a76Created kit \u00a7c{0} \u00a76with \u00a7c{1} \u00a76entries a spectator=spectator kitContains=\u00a76Kit \u00a7c{0} \u00a76contains: kitItem=\u00a76- \u00a7f{0} -invalidBanner=\u00a74Invalid banner syntax. \ No newline at end of file +invalidBanner=\u00a74Invalid banner syntax. +commandCooldown=\u00a7cYou cannot type that command for {0}. diff --git a/Essentials/src/messages_zh_HK.properties b/Essentials/src/messages_zh_HK.properties index 1c267dd5f..41fee37e6 100644 --- a/Essentials/src/messages_zh_HK.properties +++ b/Essentials/src/messages_zh_HK.properties @@ -561,4 +561,5 @@ createdKit=\u00a76Created kit \u00a7c{0} \u00a76with \u00a7c{1} \u00a76entries a spectator=spectator kitContains=\u00a76Kit \u00a7c{0} \u00a76contains: kitItem=\u00a76- \u00a7f{0} -invalidBanner=\u00a74Invalid banner syntax. \ No newline at end of file +invalidBanner=\u00a74Invalid banner syntax. +commandCooldown=\u00a7cYou cannot type that command for {0}. diff --git a/Essentials/src/messages_zh_TW.properties b/Essentials/src/messages_zh_TW.properties index 0467d380f..edfdc927d 100644 --- a/Essentials/src/messages_zh_TW.properties +++ b/Essentials/src/messages_zh_TW.properties @@ -561,4 +561,5 @@ createdKit=\u00a76Created kit \u00a7c{0} \u00a76with \u00a7c{1} \u00a76entries a spectator=spectator kitContains=\u00a76Kit \u00a7c{0} \u00a76contains: kitItem=\u00a76- \u00a7f{0} -invalidBanner=\u00a74Invalid banner syntax. \ No newline at end of file +invalidBanner=\u00a74Invalid banner syntax. +commandCooldown=\u00a7cYou cannot type that command for {0}. From d75e0ce26e57319d1a97b0d6de16a8b4bd6ac7f9 Mon Sep 17 00:00:00 2001 From: vemacs Date: Sat, 2 Jul 2016 12:00:31 -0600 Subject: [PATCH 13/28] Use string comparison for gamemode, fixes #703 --- .../src/com/earth2me/essentials/EssentialsPlayerListener.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index 1f3d7ff4c..7edfb8bc6 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -452,7 +452,8 @@ public class EssentialsPlayerListener implements Listener { public void onPlayerChangedWorldFlyReset(final PlayerChangedWorldEvent event) { final User user = ess.getUser(event.getPlayer()); if (user.getBase().getGameMode() != GameMode.CREATIVE - && user.getBase().getGameMode() != GameMode.SPECTATOR + // COMPAT: String compare for 1.7.10 + && !user.getBase().getGameMode().name().equals("SPECTATOR") && !user.isAuthorized("essentials.fly")) { user.getBase().setFallDistance(0f); user.getBase().setAllowFlight(false); From 992ef5dc91be94b77e07cc39fcc8a9f9279bfe38 Mon Sep 17 00:00:00 2001 From: Ali Moghnieh Date: Wed, 6 Jul 2016 19:34:25 +0100 Subject: [PATCH 14/28] Add `npcs-in-balance-ranking` configurable option. Resolves #716. --- .../src/com/earth2me/essentials/ISettings.java | 2 ++ Essentials/src/com/earth2me/essentials/Settings.java | 12 ++++++++++++ .../essentials/commands/Commandbalancetop.java | 6 +++++- Essentials/src/config.yml | 4 ++++ 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java index 3d7e5918b..cc7962b6f 100644 --- a/Essentials/src/com/earth2me/essentials/ISettings.java +++ b/Essentials/src/com/earth2me/essentials/ISettings.java @@ -257,4 +257,6 @@ public interface ISettings extends IConf { Entry getCommandCooldownEntry(String label); boolean isCommandCooldownPersistent(String label); + + boolean isNpcsInBalanceRanking(); } diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index 8c69e5564..0528f1606 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -536,6 +536,7 @@ public class Settings implements net.ess3.api.ISettings { isCustomQuitMessage = !customQuitMessage.equals("none"); muteCommands = _getMuteCommands(); commandCooldowns = _getCommandCooldowns(); + npcsInBalanceRanking = _isNpcsInBalanceRanking(); } private List itemSpawnBl = new ArrayList(); @@ -1262,4 +1263,15 @@ public class Settings implements net.ess3.api.ISettings { // TODO: enable per command cooldown specification for persistence. return config.getBoolean("command-cooldown-persistence", true); } + + private boolean npcsInBalanceRanking = false; + + public boolean _isNpcsInBalanceRanking() { + return config.getBoolean("npcs-in-balance-ranking", false); + } + + @Override + public boolean isNpcsInBalanceRanking() { + return npcsInBalanceRanking; + } } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandbalancetop.java b/Essentials/src/com/earth2me/essentials/commands/Commandbalancetop.java index 9f1a3b1be..e82861caa 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandbalancetop.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandbalancetop.java @@ -96,7 +96,11 @@ public class Commandbalancetop extends EssentialsCommand { } else { for (UUID u : ess.getUserMap().getAllUniqueUsers()) { final User user = ess.getUserMap().getUser(u); - if (user != null && !user.isNPC()) { // Don't list NPCs in output + if (user != null) { + if (!ess.getSettings().isNpcsInBalanceRanking() && user.isNPC()) { + // Don't list NPCs in output + continue; + } final BigDecimal userMoney = user.getMoney(); user.updateMoneyCache(userMoney); totalMoney = totalMoney.add(userMoney); diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml index 92e5b8dae..7040f5dbf 100644 --- a/Essentials/src/config.yml +++ b/Essentials/src/config.yml @@ -502,6 +502,10 @@ command-cooldowns: # Whether command cooldowns should be persistent past server shutdowns command-cooldown-persistence: true +# Whether NPC balances should be listed in balance ranking features such as /balancetop. +# NPC balances can include features like factions from FactionsUUID plugin. +npcs-in-balance-ranking: false + ############################################################ # +------------------------------------------------------+ # # | EssentialsHome | # From 42f4d4368204c4a225ccf53eb35594529bebec88 Mon Sep 17 00:00:00 2001 From: Ali Moghnieh Date: Wed, 6 Jul 2016 21:22:13 +0100 Subject: [PATCH 15/28] Make _isNpcsInBalanceRanking private. --- Essentials/src/com/earth2me/essentials/Settings.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index 0528f1606..be792dbfc 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -1266,7 +1266,7 @@ public class Settings implements net.ess3.api.ISettings { private boolean npcsInBalanceRanking = false; - public boolean _isNpcsInBalanceRanking() { + private boolean _isNpcsInBalanceRanking() { return config.getBoolean("npcs-in-balance-ranking", false); } From e674056b3a24ee796f9d18e164f673fe99b8d798 Mon Sep 17 00:00:00 2001 From: Ali Moghnieh Date: Thu, 7 Jul 2016 04:45:27 +0100 Subject: [PATCH 16/28] Create NMSVersion for better backwards compatibility. --- .../src/net/ess3/nms/refl/ReflUtil.java | 117 ++++++++++++++++++ .../net/ess3/nms/refl/NMSVersionTest.java | 51 ++++++++ 2 files changed, 168 insertions(+) create mode 100644 nms/ReflectionProvider/test/net/ess3/nms/refl/NMSVersionTest.java diff --git a/nms/ReflectionProvider/src/net/ess3/nms/refl/ReflUtil.java b/nms/ReflectionProvider/src/net/ess3/nms/refl/ReflUtil.java index 15a8ce3cc..8ce4b5e6b 100644 --- a/nms/ReflectionProvider/src/net/ess3/nms/refl/ReflUtil.java +++ b/nms/ReflectionProvider/src/net/ess3/nms/refl/ReflUtil.java @@ -1,5 +1,7 @@ package net.ess3.nms.refl; +import com.google.common.base.Objects; +import com.google.common.base.Preconditions; import com.google.common.collect.HashBasedTable; import com.google.common.collect.Table; import org.bukkit.Bukkit; @@ -10,8 +12,16 @@ import java.lang.reflect.Method; import java.util.Arrays; import java.util.HashMap; import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class ReflUtil { + public static final NMSVersion V1_8_R1 = NMSVersion.fromString("v1_8_R1"); + public static final NMSVersion V1_8_R2 = NMSVersion.fromString("v1_8_R2"); + public static final NMSVersion V1_8_R3 = NMSVersion.fromString("v1_8_R3"); + public static final NMSVersion V1_9_R1 = NMSVersion.fromString("v1_9_R1"); + public static final NMSVersion V1_10_R1 = NMSVersion.fromString("v1_10_R1"); + private static NMSVersion nmsVersionObject; private static String nmsVersion; public static String getNMSVersion() { @@ -22,6 +32,13 @@ public class ReflUtil { } return nmsVersion; } + + public static NMSVersion getNmsVersionObject() { + if (nmsVersionObject == null) { + nmsVersionObject = NMSVersion.fromString(getNMSVersion()); + } + return nmsVersionObject; + } public static Class getNMSClass(String className) { return getClassCached("net.minecraft.server." + getNMSVersion() + "." + className); @@ -200,4 +217,104 @@ public class ReflUtil { return Arrays.deepHashCode(params); } } + + /** + * https://gist.github.com/SupaHam/dad1db6406596c5f8e4b221ff473831c + * + * @author SupaHam (https://github.com/SupaHam) + */ + public static class NMSVersion implements Comparable { + private static final Pattern VERSION_PATTERN = Pattern.compile("^v(\\d+)_(\\d+)_R(\\d+)"); + private final int major; + private final int minor; + private final int release; + + public static NMSVersion fromString(String string) { + Preconditions.checkNotNull(string, "string cannot be null."); + Matcher matcher = VERSION_PATTERN.matcher(string); + Preconditions.checkArgument(matcher.matches(), string + " is not in valid version format. e.g. v1_10_R1"); + return new NMSVersion(Integer.parseInt(matcher.group(1)), Integer.parseInt(matcher.group(2)), Integer.parseInt(matcher.group(3))); + } + + private NMSVersion(int major, int minor, int release) { + this.major = major; + this.minor = minor; + this.release = release; + } + + public boolean isHigherThan(NMSVersion o) { + return compareTo(o) > 0; + } + + public boolean isHigherThanOrEqualTo(NMSVersion o) { + return compareTo(o) >= 0; + } + + public boolean isLowerThan(NMSVersion o) { + return compareTo(o) < 0; + } + + public boolean isLowerThanOrEqualTo(NMSVersion o) { + return compareTo(o) <= 0; + } + + public int getMajor() { + return major; + } + + public int getMinor() { + return minor; + } + + public int getRelease() { + return release; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + NMSVersion that = (NMSVersion) o; + return major == that.major && + minor == that.minor && + release == that.release; + } + + @Override + public int hashCode() { + return Objects.hashCode(major, minor, release); + } + + @Override + public String toString() { + return "v" + major + "_" + minor + "_R" + release; + } + + @Override + public int compareTo(NMSVersion o) { + if (major < o.major) { + return -1; + } else if (major > o.major) { + return 1; + } else { // equal major + if (minor < o.minor) { + return -1; + } else if (minor > o.minor) { + return 1; + } else { // equal minor + if (release < o.release) { + return -1; + } else if (release > o.release) { + return 1; + } else { + return 0; // o is the same version as this. + } + } + } + } + } } diff --git a/nms/ReflectionProvider/test/net/ess3/nms/refl/NMSVersionTest.java b/nms/ReflectionProvider/test/net/ess3/nms/refl/NMSVersionTest.java new file mode 100644 index 000000000..636ffd512 --- /dev/null +++ b/nms/ReflectionProvider/test/net/ess3/nms/refl/NMSVersionTest.java @@ -0,0 +1,51 @@ +package net.ess3.nms.refl; + +import net.ess3.nms.refl.ReflUtil.NMSVersion; + +import org.junit.Assert; +import org.junit.Test; + +public class NMSVersionTest { + + @Test + public void testMajor() throws Exception { + NMSVersion v2_9_R1 = NMSVersion.fromString("v2_9_R1"); + + Assert.assertEquals(2, v2_9_R1.getMajor()); + Assert.assertEquals(9, v2_9_R1.getMinor()); + Assert.assertEquals(1, v2_9_R1.getRelease()); + + Assert.assertEquals(v2_9_R1.toString(), "v2_9_R1"); + + Assert.assertTrue(v2_9_R1.isHigherThan(NMSVersion.fromString("v1_10_R1"))); + Assert.assertTrue(v2_9_R1.isHigherThanOrEqualTo(NMSVersion.fromString("v1_9_R1"))); + } + + @Test + public void testMinor() throws Exception { + NMSVersion v1_10_R1 = NMSVersion.fromString("v1_10_R1"); + + Assert.assertEquals(1, v1_10_R1.getMajor()); + Assert.assertEquals(10, v1_10_R1.getMinor()); + Assert.assertEquals(1, v1_10_R1.getRelease()); + + Assert.assertEquals(v1_10_R1.toString(), "v1_10_R1"); + + Assert.assertTrue(NMSVersion.fromString("v1_9_R1").isLowerThan(v1_10_R1)); + Assert.assertTrue(NMSVersion.fromString("v1_9_R1").isLowerThanOrEqualTo(v1_10_R1)); + } + + @Test + public void testRelease() throws Exception { + NMSVersion v1_9_R2 = NMSVersion.fromString("v1_9_R2"); + + Assert.assertEquals(1, v1_9_R2.getMajor()); + Assert.assertEquals(9, v1_9_R2.getMinor()); + Assert.assertEquals(2, v1_9_R2.getRelease()); + + Assert.assertEquals(v1_9_R2.toString(), "v1_9_R2"); + Assert.assertEquals(v1_9_R2, NMSVersion.fromString("v1_9_R2")); + + Assert.assertTrue(v1_9_R2.isHigherThan(NMSVersion.fromString("v1_9_R1"))); + } +} From 8d3d2ebd50dcd5ad510975f7628f9500134ea72b Mon Sep 17 00:00:00 2001 From: Ali Moghnieh Date: Thu, 7 Jul 2016 04:59:09 +0100 Subject: [PATCH 17/28] Enable longer display names/player list-names feature For 1.8 servers and above. --- Essentials/src/com/earth2me/essentials/User.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java index d8d8e09fd..0695b90b7 100644 --- a/Essentials/src/com/earth2me/essentials/User.java +++ b/Essentials/src/com/earth2me/essentials/User.java @@ -13,6 +13,8 @@ import net.ess3.api.MaxMoneyException; import net.ess3.api.events.AfkStatusChangeEvent; import net.ess3.api.events.JailStatusChangeEvent; import net.ess3.api.events.UserBalanceUpdateEvent; +import net.ess3.nms.refl.ReflUtil; + import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.entity.Player; @@ -305,7 +307,10 @@ public class User extends UserData implements Comparable, IMessageRecipien if (base.isOnline() && ess.getSettings().changeDisplayName()) { this.getBase().setDisplayName(getNick(true)); if (ess.getSettings().changePlayerListName()) { - String name = getNick(false); + // 1.8 enabled player list-names longer than 16 characters. + // If the server is on 1.8 or higher, provide that functionality. Otherwise, keep prior functionality. + boolean higherOrEqualTo1_8 = ReflUtil.getNmsVersionObject().isHigherThanOrEqualTo(ReflUtil.V1_8_R1); + String name = getNick(higherOrEqualTo1_8); try { this.getBase().setPlayerListName(name); } catch (IllegalArgumentException e) { From 142315140e8336a3f22704ab0cde9aedb3b6a77d Mon Sep 17 00:00:00 2001 From: Ali Moghnieh Date: Thu, 7 Jul 2016 16:57:38 +0100 Subject: [PATCH 18/28] Implement NOOPs in OfflinePlayer instead of throwing exceptions. This resolves issues like #721. --- .../earth2me/essentials/OfflinePlayer.java | 320 ++++++------------ 1 file changed, 106 insertions(+), 214 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/OfflinePlayer.java b/Essentials/src/com/earth2me/essentials/OfflinePlayer.java index 9d6744b2b..79ec1b194 100644 --- a/Essentials/src/com/earth2me/essentials/OfflinePlayer.java +++ b/Essentials/src/com/earth2me/essentials/OfflinePlayer.java @@ -25,8 +25,6 @@ import org.bukkit.util.Vector; import java.net.InetSocketAddress; import java.util.*; -import static com.earth2me.essentials.I18n.tl; - public class OfflinePlayer implements Player { private final transient Server server; private transient Location location = new Location(null, 0, 0, 0, 0, 0); @@ -147,22 +145,20 @@ public class OfflinePlayer implements Player { @Override public int getRemainingAir() { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return 0; } @Override public void setRemainingAir(int i) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public int getMaximumAir() { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return 0; } @Override public void setMaximumAir(int i) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override @@ -172,77 +168,72 @@ public class OfflinePlayer implements Player { @Override public void setSneaking(boolean bln) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public void updateInventory() { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public void chat(String string) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public double getEyeHeight() { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return 0D; } @Override public double getEyeHeight(boolean bln) { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return 0D; } @Override public List getLineOfSight(HashSet hs, int i) { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return Collections.emptyList(); } @Override public List getLineOfSight(Set mat, int i) { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return Collections.emptyList(); } @Override public Block getTargetBlock(HashSet hs, int i) { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return null; } @Override public Block getTargetBlock(Set mat, int i) { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return null; } @Override public List getLastTwoTargetBlocks(HashSet hs, int i) { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return Collections.emptyList(); } @Override public List getLastTwoTargetBlocks(Set mat, int i) { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return Collections.emptyList(); } @Override public int getFireTicks() { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return 0; } @Override public int getMaxFireTicks() { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return 0; } @Override public void setFireTicks(int i) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public void remove() { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override @@ -251,141 +242,131 @@ public class OfflinePlayer implements Player { } public Vector getMomentum() { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return getVelocity(); } public void setMomentum(Vector vector) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public void setVelocity(Vector vector) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public Vector getVelocity() { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return new Vector(0, 0, 0); } @Override public void damage(double d) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public void damage(double d, Entity entity) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public Location getEyeLocation() { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return null; } @Override public void sendRawMessage(String string) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public Location getCompassTarget() { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return null; } @Override public int getMaximumNoDamageTicks() { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return 0; } @Override public void setMaximumNoDamageTicks(int i) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public double getLastDamage() { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return 0D; } @Override public void setLastDamage(double d) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public int getNoDamageTicks() { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return 0; } @Override public void setNoDamageTicks(int i) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public boolean teleport(Location lctn) { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return false; } @Override public boolean teleport(Entity entity) { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return false; } @Override public Entity getPassenger() { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return null; } @Override public boolean setPassenger(Entity entity) { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return false; } @Override public boolean isEmpty() { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return true; } @Override public boolean eject() { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return false; } @Override public void saveData() { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public void loadData() { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public boolean isSleeping() { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return false; } @Override public int getSleepTicks() { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return 0; } @Override public List getNearbyEntities(double d, double d1, double d2) { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return Collections.emptyList(); } @Override public boolean isDead() { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return true; } @Override public float getFallDistance() { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return 0F; } @Override @@ -394,147 +375,124 @@ public class OfflinePlayer implements Player { @Override public void setSleepingIgnored(boolean bln) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public boolean isSleepingIgnored() { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return true; } @Override public void awardAchievement(Achievement a) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public void removeAchievement(Achievement achievement) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public boolean hasAchievement(Achievement achievement) { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return false; } @Override public void incrementStatistic(Statistic ststc) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public void decrementStatistic(Statistic statistic) throws IllegalArgumentException { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public void incrementStatistic(Statistic ststc, int i) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public void decrementStatistic(Statistic statistic, int i) throws IllegalArgumentException { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public void setStatistic(Statistic statistic, int i) throws IllegalArgumentException { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public int getStatistic(Statistic statistic) throws IllegalArgumentException { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return 0; } @Override public void incrementStatistic(Statistic ststc, Material mtrl) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public void decrementStatistic(Statistic statistic, Material material) throws IllegalArgumentException { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public int getStatistic(Statistic statistic, Material material) throws IllegalArgumentException { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return 0; } @Override public void incrementStatistic(Statistic ststc, Material mtrl, int i) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public void decrementStatistic(Statistic statistic, Material material, int i) throws IllegalArgumentException { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public void setStatistic(Statistic statistic, Material material, int i) throws IllegalArgumentException { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public void incrementStatistic(Statistic statistic, EntityType entityType) throws IllegalArgumentException { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public void decrementStatistic(Statistic statistic, EntityType entityType) throws IllegalArgumentException { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public int getStatistic(Statistic statistic, EntityType entityType) throws IllegalArgumentException { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return 0; } @Override public void incrementStatistic(Statistic statistic, EntityType entityType, int i) throws IllegalArgumentException { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public void decrementStatistic(Statistic statistic, EntityType entityType, int i) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public void setStatistic(Statistic statistic, EntityType entityType, int i) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public void playNote(Location lctn, byte b, byte b1) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public void sendBlockChange(Location lctn, Material mtrl, byte b) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public void sendBlockChange(Location lctn, int i, byte b) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public void setLastDamageCause(EntityDamageEvent ede) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override public EntityDamageEvent getLastDamageCause() { - throw new UnsupportedOperationException(tl("notSupportedYet")); + return null; } @Override public void playEffect(Location lctn, Effect effect, int i) { - throw new UnsupportedOperationException(tl("notSupportedYet")); } @Override @@ -544,32 +502,29 @@ public class OfflinePlayer implements Player { @Override public void playNote(Location lctn, Instrument i, Note note) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public void setPlayerTime(long l, boolean bln) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public long getPlayerTime() { - throw new UnsupportedOperationException("Not supported yet."); + return 0; } @Override public long getPlayerTimeOffset() { - throw new UnsupportedOperationException("Not supported yet."); + return 0; } @Override public boolean isPlayerTimeRelative() { - throw new UnsupportedOperationException("Not supported yet."); + return false; } @Override public void resetPlayerTime() { - throw new UnsupportedOperationException("Not supported yet."); } @Override @@ -594,27 +549,26 @@ public class OfflinePlayer implements Player { @Override public PermissionAttachment addAttachment(Plugin plugin, String string, boolean bln) { - throw new UnsupportedOperationException("Not supported yet."); + return null; } @Override public PermissionAttachment addAttachment(Plugin plugin) { - throw new UnsupportedOperationException("Not supported yet."); + return null; } @Override public PermissionAttachment addAttachment(Plugin plugin, String string, boolean bln, int i) { - throw new UnsupportedOperationException("Not supported yet."); + return null; } @Override public PermissionAttachment addAttachment(Plugin plugin, int i) { - throw new UnsupportedOperationException("Not supported yet."); + return null; } @Override public void removeAttachment(PermissionAttachment pa) { - throw new UnsupportedOperationException("Not supported yet."); } @Override @@ -623,82 +577,74 @@ public class OfflinePlayer implements Player { @Override public Set getEffectivePermissions() { - throw new UnsupportedOperationException("Not supported yet."); + return Collections.emptySet(); } @Override public void sendMap(MapView mv) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public GameMode getGameMode() { - throw new UnsupportedOperationException("Not supported yet."); + return GameMode.SURVIVAL; } @Override public void setGameMode(GameMode gm) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public int getLevel() { - throw new UnsupportedOperationException("Not supported yet."); + return 0; } @Override public void setLevel(int i) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public int getTotalExperience() { - throw new UnsupportedOperationException("Not supported yet."); + return 0; } @Override public void setTotalExperience(int i) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public float getExhaustion() { - throw new UnsupportedOperationException("Not supported yet."); + return 0F; } @Override public void setExhaustion(float f) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public float getSaturation() { - throw new UnsupportedOperationException("Not supported yet."); + return 0F; } @Override public void setSaturation(float f) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public int getFoodLevel() { - throw new UnsupportedOperationException("Not supported yet."); + return 0; } @Override public void setFoodLevel(int i) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean isSprinting() { - throw new UnsupportedOperationException("Not supported yet."); + return false; } @Override public void setSprinting(boolean bln) { - throw new UnsupportedOperationException("Not supported yet."); } @Override @@ -712,47 +658,44 @@ public class OfflinePlayer implements Player { @Override public int getTicksLived() { - throw new UnsupportedOperationException("Not supported yet."); + return 0; } @Override public void setTicksLived(int i) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public double getMaxHealth() { - throw new UnsupportedOperationException("Not supported yet."); + return 0D; } @Override public void giveExp(int i) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public float getExp() { - throw new UnsupportedOperationException("Not supported yet."); + return 0F; } @Override public void setExp(float f) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean teleport(Location lctn, TeleportCause tc) { - throw new UnsupportedOperationException("Not supported yet."); + return false; } @Override public boolean teleport(Entity entity, TeleportCause tc) { - throw new UnsupportedOperationException("Not supported yet."); + return false; } @Override public Player getKiller() { - throw new UnsupportedOperationException("Not supported yet."); + return null; } void setName(final String name) { @@ -764,12 +707,11 @@ public class OfflinePlayer implements Player { @Override public void sendPluginMessage(Plugin plugin, String string, byte[] bytes) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public Set getListeningPluginChannels() { - throw new UnsupportedOperationException("Not supported yet."); + return Collections.emptySet(); } @Override @@ -784,67 +726,61 @@ public class OfflinePlayer implements Player { @Override public void setBedSpawnLocation(Location lctn) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public void setBedSpawnLocation(Location lctn, boolean force) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public void playEffect(EntityEffect ee) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public void hidePlayer(Player player) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public void showPlayer(Player player) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean canSee(Player player) { - throw new UnsupportedOperationException("Not supported yet."); + return false; } @Override public boolean addPotionEffect(PotionEffect pe) { - throw new UnsupportedOperationException("Not supported yet."); + return false; } @Override public boolean addPotionEffect(PotionEffect pe, boolean bln) { - throw new UnsupportedOperationException("Not supported yet."); + return false; } @Override public boolean addPotionEffects(Collection clctn) { - throw new UnsupportedOperationException("Not supported yet."); + return false; } @Override public boolean hasPotionEffect(PotionEffectType pet) { - throw new UnsupportedOperationException("Not supported yet."); + return false; } @Override public void removePotionEffect(PotionEffectType pet) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public Collection getActivePotionEffects() { - throw new UnsupportedOperationException("Not supported yet."); + return Collections.emptyList(); } @Override public T launchProjectile(Class arg0) { - throw new UnsupportedOperationException("Not supported yet."); + return null; } @Override @@ -854,112 +790,102 @@ public class OfflinePlayer implements Player { @Override public void playEffect(Location lctn, Effect effect, T t) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean setWindowProperty(Property prprt, int i) { - throw new UnsupportedOperationException("Not supported yet."); + return false; } @Override public InventoryView getOpenInventory() { - throw new UnsupportedOperationException("Not supported yet."); + return null; } @Override public InventoryView openInventory(Inventory invntr) { - throw new UnsupportedOperationException("Not supported yet."); + return null; } @Override public InventoryView openWorkbench(Location lctn, boolean bln) { - throw new UnsupportedOperationException("Not supported yet."); + return null; } @Override public InventoryView openEnchanting(Location lctn, boolean bln) { - throw new UnsupportedOperationException("Not supported yet."); + return null; } @Override public void openInventory(InventoryView iv) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public InventoryView openMerchant(Villager villager, boolean b) { - throw new UnsupportedOperationException("Not supported yet."); + return null; } @Override public void closeInventory() { - throw new UnsupportedOperationException("Not supported yet."); } @Override public ItemStack getItemOnCursor() { - throw new UnsupportedOperationException("Not supported yet."); + return null; } @Override public void setItemOnCursor(ItemStack is) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public void setMetadata(String string, MetadataValue mv) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public List getMetadata(String string) { - throw new UnsupportedOperationException("Not supported yet."); + return Collections.emptyList(); } @Override public boolean hasMetadata(String string) { - throw new UnsupportedOperationException("Not supported yet."); + return false; } @Override public void removeMetadata(String string, Plugin plugin) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean isConversing() { - throw new UnsupportedOperationException("Not supported yet."); + return false; } @Override public void acceptConversationInput(String string) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean beginConversation(Conversation c) { - throw new UnsupportedOperationException("Not supported yet."); + return false; } @Override public void abandonConversation(Conversation c) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public void sendMessage(String[] strings) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean isBlocking() { - throw new UnsupportedOperationException("Not supported yet."); + return false; } @Override public void abandonConversation(Conversation arg0, ConversationAbandonedEvent arg1) { - throw new UnsupportedOperationException("Not supported yet."); } @Override @@ -974,132 +900,119 @@ public class OfflinePlayer implements Player { @Override public int getExpToLevel() { - throw new UnsupportedOperationException("Not supported yet."); + return 0; } @Override public boolean hasLineOfSight(Entity entity) { - throw new UnsupportedOperationException("Not supported yet."); + return false; } @Override public boolean isValid() { - throw new UnsupportedOperationException("Not supported yet."); + return false; } @Override public void setFlySpeed(float value) throws IllegalArgumentException { - throw new UnsupportedOperationException("Not supported yet."); } @Override public void setWalkSpeed(float value) throws IllegalArgumentException { - throw new UnsupportedOperationException("Not supported yet."); } @Override public float getFlySpeed() { - throw new UnsupportedOperationException("Not supported yet."); + return 0.1f; } @Override public float getWalkSpeed() { - throw new UnsupportedOperationException("Not supported yet."); + return 0.2f; } @Override public Inventory getEnderChest() { - throw new UnsupportedOperationException("Not supported yet."); + return null; } @Override public MainHand getMainHand() { - throw new UnsupportedOperationException("Not supported yet."); + return MainHand.RIGHT; } @Override public void playSound(Location arg0, Sound arg1, float arg2, float arg3) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public void giveExpLevels(int i) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean getRemoveWhenFarAway() { - throw new UnsupportedOperationException("Not supported yet."); + return false; } @Override public void setRemoveWhenFarAway(boolean bln) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public EntityEquipment getEquipment() { - throw new UnsupportedOperationException("Not supported yet."); + return null; } @Override public void setCanPickupItems(boolean bln) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean getCanPickupItems() { - throw new UnsupportedOperationException("Not supported yet."); + return false; } @Override public Location getLocation(Location lctn) { - throw new UnsupportedOperationException("Not supported yet."); + return lctn; } @Override public void setTexturePack(String string) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public void setResourcePack(String s) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public void setMaxHealth(double i) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public void resetMaxHealth() { - throw new UnsupportedOperationException("Not supported yet."); } @Override public void setCustomName(String string) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public String getCustomName() { - throw new UnsupportedOperationException("Not supported yet."); + return null; } @Override public void setCustomNameVisible(boolean bln) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean isCustomNameVisible() { - throw new UnsupportedOperationException("Not supported yet."); + return false; } @Override public void setGlowing(boolean b) { - throw new UnsupportedOperationException("Not supported yet."); } @Override @@ -1109,7 +1022,6 @@ public class OfflinePlayer implements Player { @Override public void setInvulnerable(boolean b) { - throw new UnsupportedOperationException("Not supported yet."); } @Override @@ -1119,147 +1031,132 @@ public class OfflinePlayer implements Player { @Override public boolean isSilent() { - throw new UnsupportedOperationException("Not supported yet."); + return false; } @Override public void setSilent(boolean b) { - } @Override public boolean hasGravity() { - throw new UnsupportedOperationException("Not supported yet."); + return false; } @Override public void setGravity(boolean b) { - } @Override public void setPlayerWeather(WeatherType arg0) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public WeatherType getPlayerWeather() { - throw new UnsupportedOperationException("Not supported yet."); + return null; // per player weather, null means default anyways } @Override public void resetPlayerWeather() { - throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean isOnGround() { - throw new UnsupportedOperationException("Not supported yet."); + return false; } @Override public Scoreboard getScoreboard() { - throw new UnsupportedOperationException("Not supported yet."); + return null; } @Override public void setScoreboard(Scoreboard scrbrd) throws IllegalArgumentException, IllegalStateException { - throw new UnsupportedOperationException("Not supported yet."); } @Override public int _INVALID_getLastDamage() { - throw new UnsupportedOperationException("Not supported yet."); + return 0; } @Override public void _INVALID_setLastDamage(int i) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public void _INVALID_damage(int i) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public void _INVALID_damage(int i, Entity entity) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public int _INVALID_getHealth() { - throw new UnsupportedOperationException("Not supported yet."); + return 0; } @Override public void _INVALID_setHealth(int i) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public int _INVALID_getMaxHealth() { - throw new UnsupportedOperationException("Not supported yet."); + return 0; } @Override public void _INVALID_setMaxHealth(int i) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public void playSound(Location arg0, String arg1, float arg2, float arg3) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public void stopSound(Sound sound) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public void stopSound(String s) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean isHealthScaled() { - throw new UnsupportedOperationException("Not supported yet."); + return false; } @Override public void setHealthScaled(boolean arg0) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public void setHealthScale(double arg0) throws IllegalArgumentException { - throw new UnsupportedOperationException("Not supported yet."); + } @Override public double getHealthScale() { - throw new UnsupportedOperationException("Not supported yet."); + return 0D; } @Override public void setSpectatorTarget(Entity entity) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public boolean isLeashed() { - throw new UnsupportedOperationException("Not supported yet."); + return false; } @Override public Entity getLeashHolder() throws IllegalStateException { - throw new UnsupportedOperationException("Not supported yet."); + return null; } @Override public boolean setLeashHolder(Entity arg0) { - throw new UnsupportedOperationException("Not supported yet."); + return false; } @Override @@ -1269,12 +1166,10 @@ public class OfflinePlayer implements Player { @Override public void setGliding(boolean b) { - throw new UnsupportedOperationException("Not supported yet."); } @Override public void setAI(boolean b) { - throw new UnsupportedOperationException("Not supported yet."); } @Override @@ -1284,7 +1179,6 @@ public class OfflinePlayer implements Player { @Override public void setCollidable(boolean b) { - throw new UnsupportedOperationException("Not supported yet."); } @Override @@ -1294,12 +1188,11 @@ public class OfflinePlayer implements Player { @Override public T launchProjectile(Class type, Vector vector) { - throw new UnsupportedOperationException("Not supported yet."); + return null; } @Override public void sendSignChange(Location arg0, String[] arg1) throws IllegalArgumentException { - throw new UnsupportedOperationException("Not supported yet."); } @Override @@ -1389,12 +1282,11 @@ public class OfflinePlayer implements Player { @Override public Entity getSpectatorTarget() { - throw new UnsupportedOperationException("Not supported yet."); + return null; } @Override public void resetTitle() { - throw new UnsupportedOperationException("Not supported yet."); } @Override From 20594d25232ffe7c18973ed8486440de17f511c5 Mon Sep 17 00:00:00 2001 From: Ali Moghnieh Date: Thu, 7 Jul 2016 17:24:28 +0100 Subject: [PATCH 19/28] Add `essentials.commandcooldowns.bypass` permission. --- .../src/com/earth2me/essentials/EssentialsPlayerListener.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index 7edfb8bc6..30cbe8658 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -409,7 +409,8 @@ public class EssentialsPlayerListener implements Listener { user.updateActivity(broadcast); } - if (ess.getSettings().isCommandCooldownsEnabled() && pluginCommand != null) { + if (ess.getSettings().isCommandCooldownsEnabled() && pluginCommand != null + && !user.isAuthorized("essentials.commandcooldowns.bypass")) { int argStartIndex = event.getMessage().indexOf(" "); String args = argStartIndex == -1 ? event.getMessage() // No arguments present : event.getMessage().substring(argStartIndex); // arguments start at argStartIndex; substring from there. From 148fa7d6da958cf5826218af0b81312d53165280 Mon Sep 17 00:00:00 2001 From: Benjozork Date: Thu, 31 Mar 2016 18:18:25 -0400 Subject: [PATCH 20/28] Fixed french translations --- Essentials/src/messages_fr.properties | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Essentials/src/messages_fr.properties b/Essentials/src/messages_fr.properties index e41b0ffec..d1811bc96 100644 --- a/Essentials/src/messages_fr.properties +++ b/Essentials/src/messages_fr.properties @@ -112,7 +112,7 @@ extinguishOthers=\u00a77Vous avez \u00e9teint le feu sur {0}. failedToCloseConfig=\u00c9chec de la fermeture de la configuration {0}. failedToCreateConfig=\u00c9chec de la cr\u00e9ation de la configuration {0}. failedToWriteConfig=\u00c9chec de l''\u00e9criture de la configuration {0}. -false=\u00a74faux\u00a7f +false=\u00a74non\u00a7f feed=\u00a77Vous avez \u00e9t\u00e9 rassasi\u00e9. feedOther=\u00a76Vous avez rassasi\u00e9 \u00a7c{0}\u00a76. fileRenameError=\u00c9chec du changement de nom de {0}. @@ -120,7 +120,7 @@ fireworkColor=\u00a74Vous devez ajouter une couleur au feu d''artifice pour pouv fireworkEffectsCleared=\u00a76Les effets ont \u00e9t\u00e9 retir\u00e9s. fireworkSyntax=\u00a76Param\u00e8tres du feu d''artifice \:\u00a7c color\: [fade\:] [shape\:] [effect\:]\n\u00a76Pour utiliser plusieurs couleurs/effets, s\u00e9parez les valeurs avec des virgules \: \u00a7cred,blue,pink\n\u00a76Shapes \:\u00a7c star, ball, large, creeper, burst \u00a76Effects \:\u00a7c trail, twinkle flyMode=\u00a77Fly mode {0} pour {1} d\u00e9fini. -flying=volant +flying=vole foreverAlone=\u00a7cVous n''avez personne \u00e0 qui r\u00e9pondre. fullStack=\u00a74Vous avez d\u00e9j\u00e0 un stack complet. gameMode=\u00a76Mode de jeu\u00a7c {0} \u00a76pour \u00a7c{1}\u00a76. @@ -293,7 +293,7 @@ notAllowedToQuestion=\u00a7cVous n''\u00eates pas autoris\u00e9 \u00e0 poser des notAllowedToShout=\u00a7cVous n''\u00eates pas autoris\u00e9 \u00e0 crier. notEnoughExperience=Vous n''avez pas assez d''exp\u00e9rience. notEnoughMoney=Vous n''avez pas les fonds n\u00e9cessaires. -notFlying=ne volant pas +notFlying=ne vole pas notRecommendedBukkit=* \! * Cette version de Bukkit n''est pas recommand\u00e9 pour cette version de Essentials. notSupportedYet=Pas encore pris en charge. nothingInHand=\u00a7cVous n''avez rien en main. @@ -444,7 +444,7 @@ tradeSignEmpty=Le panneau de vente n''a pas encore assez de stock. tradeSignEmptyOwner=Il n''y a rien \u00e0 collecter de cette pancarte d''\u00e9change commercial. treeFailure=\u00a7c\u00c9chec de la g\u00e9n\u00e9ration de l''arbre. Essayez de nouveau sur de l''herbe ou de la terre. treeSpawned=\u00a77Arbre cr\u00e9\u00e9. -true=\u00a72vrai\u00a7f +true=\u00a72oui\u00a7f typeTpaccept=\u00a77Pour le t\u00e9l\u00e9porter, utilisez \u00a7c/tpaccept\u00a77 \u00a77ou \u00a7c/tpyes\u00a77. typeTpdeny=\u00a77Pour d\u00e9cliner cette demande, utilisez \u00a7c/tpdeny\u00a77 \u00a77ou \u00a7c/tpno\u00a77. typeWorldName=\u00a77Vous pouvez aussi taper le nom d''un monde sp\u00e9cifique. @@ -551,7 +551,7 @@ seenAccounts=\u00a76Le joueur est aussi connu sous le(s) pseudo(s) \:\u00a7c {0} unableToSpawnItem=\u00a74Impossible de cr\u00e9er \u00a7c{0}\u00a74, ce n''est pas un objet cr\u00e9able. itemsConverted=\u00a76Tous les items ont \u00e9t\u00e9 convertis en blocs. itemsNotConverted=\u00a74Vous n''avez pas d''items pouvant \u00eatre convertis en blocs. -mailSentTo=\u00a7c{0}\u00a76 a envoy\u00e9 le mail suivant \: +mailSentTo=\u00a76Mail suivant envoy\u00e9 a \u00a7c{0}\u00a76\: mailMessage={0} whoisTempBanned=\u00a76 - Expiration du ban:\u00a7r {0} From a7f137d122dcf3e42dfacb34a2eb1f87421fa984 Mon Sep 17 00:00:00 2001 From: Nathan Guedes Date: Wed, 27 Apr 2016 13:06:36 -0300 Subject: [PATCH 21/28] Update messages_pt_BR.properties with corrections in accents, spaces, commas and dots. --- Essentials/src/messages_pt_BR.properties | 467 +++++++++++------------ 1 file changed, 233 insertions(+), 234 deletions(-) diff --git a/Essentials/src/messages_pt_BR.properties b/Essentials/src/messages_pt_BR.properties index ee3fa4126..78f0ef2b9 100644 --- a/Essentials/src/messages_pt_BR.properties +++ b/Essentials/src/messages_pt_BR.properties @@ -2,7 +2,7 @@ #version: TeamCity # Single quotes have to be doubled: '' # Translations start here -# by: +# by: nathampa0909 action=\u00a75* {0} \u00a75{1} addedToAccount=\u00a7a{0} foi adicionado em sua conta. addedToOthersAccount=\u00a7a{0} foi adicionado na conta de {1}\u00a7a. Novo saldo\: {2} @@ -11,42 +11,42 @@ alertBroke=quebrado\: alertFormat=\u00a73[{0}] \u00a7r {1} \u00a76 {2} em\: {3} alertPlaced=colocado\: alertUsed=usado\: -antiBuildBreak=\u00a74Voce nao tem permissao para quebrar\u00a7c {0} \u00a74blocos aqui. -antiBuildCraft=\u00a74Voce nao tem permissao para create\u00a7c {0}\u00a74. -antiBuildDrop=\u00a74Voce nao tem permissao para dropar\u00a7c {0}\u00a74. -antiBuildInteract=\u00a74Voce nao tem permissao para interagir com\u00a7c {0}\u00a74. -antiBuildPlace=\u00a74Voce nao tem permissao para colocar\u00a7c {0} \u00a74aqui. -antiBuildUse=\u00a74Voce nao tem permissao para usar\u00a7c {0}\u00a74. -autoAfkKickReason=Voce foi kickado por ficar parado por mais de {0} minutos. +antiBuildBreak=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para quebrar\u00a7c {0} \u00a74blocos aqui. +antiBuildCraft=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para create\u00a7c {0}\u00a74. +antiBuildDrop=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para dropar\u00a7c {0}\u00a74. +antiBuildInteract=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para interagir com\u00a7c {0}\u00a74. +antiBuildPlace=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para colocar\u00a7c {0} \u00a74aqui. +antiBuildUse=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para usar\u00a7c {0}\u00a74. +autoAfkKickReason=Voc\u00ea foi kickado por ficar parado por mais de {0} minutos. backAfterDeath=\u00a76Digite /back para retornar onde morreu. backUsageMsg=\u00a76Voltando ao local anterior. -backupDisabled=\u00a74Um script externo nao foi configurado. +backupDisabled=\u00a74Um script externo n\u00e3o foi configurado. backupFinished=\u00a76Backup acabou. backupStarted=\u00a76Backup Iniciado. balance=\u00a7aSaldo\:\u00a7c {0} balanceOther=\u00a7aSaldo de {0}\u00a7a\:\u00a7c {1} balanceTop=\u00a76Mais ricos ({0}) -banExempt=\u00a74Voce nao pode banir este jogador. +banExempt=\u00a74Voc\u00ea n\u00e3o pode banir este jogador. banFormat=\u00a74Banido por\:\n\u00a7r{0} bed=\u00a7ocama\u00a7r -bedMissing=\u00a74Sua cama nao foi definida, esta corrompida ou esta bloqueada. +bedMissing=\u00a74Sua cama n\u00e3o foi definida, est\u00e1 corrompida ou est\u00e1 bloqueada. bedNull=\u00a7mcama\u00a7r bedSet=\u00a76Cama definida\! bigTreeFailure=\u00a74Falha ao gerar uma Arvore grande. Tente novamente na grama ou na terra. bigTreeSuccess=\u00a76Arvore grande gerada. blockList=\u00a76Essentials passou os seguintes comandos para outro plugin\: bookAuthorSet=\u00a76Autor do livro definido para {0}. -bookLocked=\u00a76O livro esta trancado agora. -bookTitleSet=\u00a76T\u00c3\u00adtulo do livro definido para {0}. +bookLocked=\u00a76O livro est\u00e1 trancado agora. +bookTitleSet=\u00a76T\u00edtulo do livro definido para {0}. broadcast=\u00a7r\u00a76 [\u00a74Transmiss\u00e3o\u00a76] \u00a7a {0} -buildAlert=\u00a74Voce nao tem permissao para construir. -bukkitFormatChanged=Formato da versao do Bukkit alterada. Versao nao verificada. -burnMsg=\u00a76Voce colocou fogo em\u00a7c {0} \u00a76por\u00a7c {1} segundos\u00a76. -canTalkAgain=\u00a76Voce pode falar novamente. -cannotStackMob=\u00a74Voce nao tem permissao para criar varios mobs. -cantFindGeoIpDB=Nao foi possivel encontrar dados de GeoIP\! +buildAlert=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para construir. +bukkitFormatChanged=Formato da versao do Bukkit alterada. Versao n\u00e3o verificada. +burnMsg=\u00a76Voc\u00ea colocou fogo em\u00a7c {0} \u00a76por\u00a7c {1} segundos\u00a76. +canTalkAgain=\u00a76Voc\u00ea pode falar novamente. +cannotStackMob=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para criar varios mobs. +cantFindGeoIpDB=n\u00e3o foi Poss\u00edvel encontrar dados de GeoIP\! cantReadGeoIpDB=Falha ao ler o banco de dados do GeoIP\! -cantSpawnItem=\u00a74Voce nao tem permissao para gerar o item\u00a7c {0}\u00a74. +cantSpawnItem=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para gerar o item\u00a7c {0}\u00a74. chatTypeAdmin=[A] chatTypeLocal=[L] chatTypeSpy=[Espiao] @@ -54,15 +54,15 @@ cleaned=Os arquivos do usuario foram apagados. cleaning=Apagando arquivos do usuario. commandFailed=Comando {0} falhou\: commandHelpFailedForPlugin=Erro ao adquirir ajuda do plugin\: {0} -commandNotLoaded=\u00a74Comando {0} esta carregado incorretamente. -compassBearing=\u00a76Apontado para\: {0} ({1} graus). +commandNotLoaded=\u00a74Comando {0} est\u00e1 carregado incorretamente. +compassBearing=\u00a76Apontado para\: {0} ({1} graus). configFileMoveError=Falha ao mover a config.yml para o local do backup. configFileRenameError=Falha ao renomear o arquivo temporario para config.yml. connectedPlayers=\u00a76Jogadores conectados\u00a7r connectionFailed=Falha ao conectar. cooldownWithMessage=\u00a74Tempo restante\: {0} -corruptNodeInConfig=\u00a74Noti\u00adcia\: Seu arquivo de configuracao esta corrompido ({0}). -couldNotFindTemplate=\u00a74Template nao encontrado {0} +corruptNodeInConfig=\u00a74Not\u00edcia\: Seu arquivo de configuracao est\u00e1 corrompido ({0}). +couldNotFindTemplate=\u00a74Template n\u00e3o encontrado {0} creatingConfigFromTemplate=Criando configuracao baseado no modelo\: {0} creatingEmptyConfig=Criando configuracao vazia\: {0} creative=criativo @@ -70,44 +70,44 @@ currency={0}{1} currentWorld=\u00a76Mundo Atual\:\u00a7c {0} day=dia days=dias -defaultBanReason=O Martelo Proibicao falou\! -deleteFileError=Nao p\u00c3\u00b4de deletar o arquivo\: {0} +defaultBanReason=Sem razao\! +deleteFileError=n\u00e3o p\u00b4de deletar o arquivo\: {0} deleteHome=\u00a76Casa\u00a7c {0} \u00a76foi removida. deleteJail=\u00a76Cadeia\u00a7c {0} \u00a76foi removida. deleteWarp=\u00a76Warp\u00a7c {0} \u00a76foi removido. deniedAccessCommand=\u00a7c{0} \u00a74foi negado a utilizar o comando. -denyBookEdit=\u00a74Voce nao pode destravar este livro. -denyChangeAuthor=\u00a74Voce nao pode mudar o autor deste livro. -denyChangeTitle=\u00a74Voce nao pode mudar o titulo deste livro. -depth=\u00a76Voce esta no nivel do mar. -depthAboveSea=\u00a76Voce esta a\u00a7c {0} \u00a76bloco(s) acima do ni\u00advel do mar. -depthBelowSea=\u00a76Voce esta a\u00a7c {0} \u00a76bloco(s) abaixo do ni\u00advel do mar. -destinationNotSet=Destino nao definido\! -disableUnlimited=\u00a76Permissao de colocar coisas ilimitadas desativada para\u00a7c {0} \u00a76por {1}. +denyBookEdit=\u00a74Voc\u00ea n\u00e3o pode destravar este livro. +denyChangeAuthor=\u00a74Voc\u00ea n\u00e3o pode mudar o autor deste livro. +denyChangeTitle=\u00a74Voc\u00ea n\u00e3o pode mudar o titulo deste livro. +depth=\u00a76Voc\u00ea est\u00e1 no nivel do mar. +depthAboveSea=\u00a76Voc\u00ea est\u00e1 a\u00a7c {0} \u00a76bloco(s) acima do n\u00edvel do mar. +depthBelowSea=\u00a76Voc\u00ea est\u00e1 a\u00a7c {0} \u00a76bloco(s) abaixo do n\u00edvel do mar. +destinationNotSet=Destino n\u00e3o definido\! +disableUnlimited=\u00a76permiss\u00e3o de colocar coisas ilimitadas desativada para\u00a7c {0} \u00a76por {1}. disabled=desativou disabledToSpawnMob=\u00a74Spawnar este mob foi desativado na configuracao. distance=\u00a76Distancia\: {0} -dontMoveMessage=\u00a76Teleporte ira come\u00e7ar em\u00a7c {0}\u00a76. Nao se mova. -downloadingGeoIp=Baixando o banco de dados GeoIP... isso pode levar um tempo (pa\u00c3\u00ads\: 0.6 MB, cidade\: 20MB) +dontMoveMessage=\u00a76Teleporte vai come\u00e7ar em\u00a7c {0}\u00a76. n\u00e3o se mova. +downloadingGeoIp=Baixando o banco de dados GeoIP... isso pode levar um tempo (pa\u00eds\: 0.6 MB, cidade\: 20MB) duplicatedUserdata=Dados do usuario dupliacado\: {0} e {1}. durability=\u00a76Esse ferramenta ainda pode ser usada mais \u00a7c{0}\u00a76 vezes -editBookContents=\u00a7eVoce pode agora editar o conteudo deste livro. +editBookContents=\u00a7eVoc\u00ea pode agora editar o conteudo deste livro. enableUnlimited=\u00a76Dando quantidade ilimidada de\u00a7c {0} \u00a76para \u00a7c{1}\u00a76. enabled=ativou enchantmentApplied=\u00a76O encantamento\u00a7c {0} \u00a76foi aplicado ao item em sua mao. -enchantmentNotFound=\u00a74Encantamento nao encontrado\! -enchantmentPerm=\u00a74Voce nao tem permissao para\u00a7c {0}\u00a74. +enchantmentNotFound=\u00a74Encantamento n\u00e3o encontrado\! +enchantmentPerm=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para\u00a7c {0}\u00a74. enchantmentRemoved=\u00a76O encantamento\u00a7c {0} \u00a76foi removido do item em sua mao. enchantments=\u00a76Encantamentos\:\u00a7r {0} errorCallingCommand=Erro ao usar o comando /{0} errorWithMessage=\u00a7cErro\:\u00a74 {0} -essentialsHelp1=O arquivo est\u00c3\u00a1 corrompido e o Essentials nao consegue abr\u00c3\u00ad-lo. Essentials desativado. Se voc\u00c3\u00aa nao consegue arrumar o arquivo sozinho, acesse http\://tiny.cc/EssentialsChat -essentialsHelp2=O arquivo esta corrompido e o Essentials nao consegue abri\u00ad-lo. Essentials desativado. Se voce nao consegue arrumar o arquivo sozinho, digite /essentialshelp no jogo ou acesse http\://tiny.cc/EssentialsChat +essentialsHelp1=O arquivo est\u00e1 corrompido e o Essentials n\u00e3o consegue abr\u00ed-lo. Essentials desativado. Se voc\u00aa n\u00e3o consegue arrumar o arquivo sozinho, acesse http\://tiny.cc/EssentialsChat +essentialsHelp2=O arquivo est\u00e1 corrompido e o Essentials n\u00e3o consegue abr\u00ed-lo. Essentials desativado. Se voc\uuea n\u00e3o consegue arrumar o arquivo sozinho, digite /essentialshelp no jogo ou acesse http\://tiny.cc/EssentialsChat essentialsReload=\u00a76Essentials recarregado\u00a7c {0}. -exp=\u00a7c{0} \u00a76tem\u00a7c {1} \u00a76de exp (n\u00c3\u00advel\u00a7c {2}\u00a76) e precisa de\u00a7c {3} \u00a76mais exp para subir de n\u00c3\u00advel. +exp=\u00a7c{0} \u00a76tem\u00a7c {1} \u00a76de exp (n\u00edvel\u00a7c {2}\u00a76) e precisa de\u00a7c {3} \u00a76mais exp para subir de n\u00edvel. expSet=\u00a7c{0} \u00a76agora tem\u00a7c {1} \u00a76de exp. -extinguish=\u00a76Voce se extinguiu. -extinguishOthers=\u00a76Voce extinguiu {0}\u00a76. +extinguish=\u00a76Voc\u00ea se extinguiu. +extinguishOthers=\u00a76Voc\u00ea extinguiu {0}\u00a76. failedToCloseConfig=Falha ao fechar a configuracao {0}. failedToCreateConfig=Falha ao criar a configuracao {0}. failedToWriteConfig=Falha ao escrever a configuracao {0}. @@ -115,104 +115,104 @@ false=\u00a74falso\u00a7r feed=\u00a76Seu apetite foi saciado. feedOther=\u00a76Voc\u00ea saciou a fome de {0}\u00a76. fileRenameError=Falha ao renomear o arquivo {0}\! -fireworkColor=\u00a74Parametros inseridos para criar um fogo de artifi\u00adcio invalidos. Defina um cor antes. +fireworkColor=\u00a74Parametros inseridos para criar um fogo de artif\u00edcio inv\u00e1lidos. Defina um cor antes. fireworkEffectsCleared=\u00a76Todos os efeitos deste pack foram removidos. -fireworkSyntax=\u00a76Parametros do fogo de artifi\u00adcio\:\u00a7c color\: [fade\:] [shape\:] [effect\:]\n\u00a76Para usar multiplas cores ou efeitos, separe-os entre vi\u00adrgulas\: \u00a7cred,blue,pink\n\u00a76Formatos\:\u00a7c star, ball, large, creeper, burst \u00a76Efeitos\:\u00a7c trail, twinkle. +fireworkSyntax=\u00a76Parametros do fogo de artif\u00edcio\:\u00a7c color\: [fade\:] [shape\:] [effect\:]\n\u00a76Para usar multiplas cores ou efeitos, separe-os entre v\u00edrgulas\: \u00a7cred,blue,pink\n\u00a76Formatos\:\u00a7c star, ball, large, creeper, burst \u00a76Efeitos\:\u00a7c trail, twinkle. flyMode=\u00a76Modo Voar foi\u00a7c {0} \u00a76para {1}\u00a76. flying=voando -foreverAlone=\u00a74Voce nao tem ninguem a quem responder. -fullStack=\u00a74Voce ja tem um pack completo. +foreverAlone=\u00a74Voc\u00ea n\u00e3o tem ningu\u00e9m a quem responder. +fullStack=\u00a74Voc\u00ea j\u00e1 tem um pack completo. gameMode=\u00a76Modo de jogo\u00a7c {0} \u00a76definido para {1}\u00a76. gcWorld=\u00a76 {0} "\u00a7c {1} \u00a76"\: \u00a7c {2} \u00a76 peda\u00e7os, \u00a7c {3} \u00a76 unidades, \u00a7c {4} \u00a76 telhas. -gcfree=\u00a76Mem\u00c3\u00b3ria livre\:\u00a7c {0} MB. -gcmax=\u00a76Memoria maxima\:\u00a7c {0} MB. -gctotal=\u00a76Mem\u00c3\u00b3ria alocada\:\u00a7c {0} MB. -geoIpUrlEmpty=URL de download do GeoIP esta vazio. -geoIpUrlInvalid=URL de download do GeoIP invalido. +gcfree=\u00a76Mem\u00b3ria livre\:\u00a7c {0} MB. +gcmax=\u00a76Mem\u00b3ria m\u00e1xima\:\u00a7c {0} MB. +gctotal=\u00a76Mem\u00b3ria alocada\:\u00a7c {0} MB. +geoIpUrlEmpty=URL de download do GeoIP est\u00e1 vazio. +geoIpUrlInvalid=URL de download do GeoIP inv\u00e1lido. geoipJoinFormat=\u00a76Jogador \u00a7c{0} \u00a76vem de \u00a7c{1}\u00a76. giveSpawn=\u00a76Dando\u00a7c {0}\u00a7c {1} \u00a76para\u00a7c {2}\u00a76. godDisabledFor=\u00a7cdesabilitado\u00a76 para\u00a7c {0} godEnabledFor=\u00a7aativado\u00a76 para\u00a7c {0}. godMode=\u00a76Modo deus\u00a7c {0}\u00a76. -groupDoesNotExist=\u00a74Nao ha ninguem online nesse grupo\! +groupDoesNotExist=\u00a74n\u00e3o ha ningu\u00e9m online nesse grupo\! groupNumber=\u00a7c{0}\u00a7f online, para a lista completa\:\u00a7c /{1} {2} -hatArmor=\u00a74Voce nao pode usar esse item como chapeu\! -hatEmpty=\u00a74Voce nao esta usando chapeu. -hatFail=\u00a74Voce deve ter algo em sua mao para vestir. +hatArmor=\u00a74Voc\u00ea n\u00e3o pode usar esse item como chapeu\! +hatEmpty=\u00a74Voc\u00ea n\u00e3o est\u00e1 usando chapeu. +hatFail=\u00a74Voc\u00ea deve ter algo em sua mao para vestir. hatPlaced=\u00a76Aproveite seu novo chapeu\! hatRemoved=\u00a76Seu chapeu foi removido. -haveBeenReleased=\u00a76Voce foi liberado. -heal=\u00a76Voce foi curado. -healDead=\u00a74Voce nao pode curar alguem que esta morto\! -healOther=\u00a7c {0}\u00a76foi curado. +haveBeenReleased=\u00a76Voc\u00ea foi liberado. +heal=\u00a76Voc\u00ea foi curado. +healDead=\u00a74Voc\u00ea n\u00e3o pode curar alguem que est\u00e1 morto\! +healOther=\u00a7c{0}\u00a76foi curado. helpConsole=Para ver ajuda pelo console, digite ?. helpFrom=\u00a76Comandos de {0}\: helpLine=\u00a76/{0}\u00a7r\: {1} helpMatching=\u00a76Comandos correspondidos com "\u00a7c{0}\u00a76"\: -helpOp=\u00a7 4\u00ba [AjudaOp] \u00a7r \u00a7 6 {0}\: \u00a7r {1} +helpOp=\u00a74[HelpOP]\u00a76 {0}\: \u00a7r {1} helpPlugin=\u00a74{0}\u00a7r\: Ajuda do Plugin\: /help {1} -holdBook=\u00a74Voce nao esta segurando um livro que possa escrever. -holdFirework=\u00a74Voce deve estar segurando um fogo de artifi\u00adcio para adicionar efeitos. -holdPotion=\u00a74Voce deve estar segurando uma pocao para aplicar efeitos para ela. +holdBook=\u00a74Voc\u00ea n\u00e3o est\u00e1 segurando um livro que possa escrever. +holdFirework=\u00a74Voc\u00ea deve est\u00e1r segurando um fogo de artif\u00edcio para adicionar efeitos. +holdPotion=\u00a74Voc\u00ea deve est\u00e1r segurando uma pocao para aplicar efeitos para ela. holeInFloor=\u00a74Buraco no chao\! homeSet=\u00a76Casa definida. homes=\u00a76Casas\:\u00a7r {0} hour=hora hours=horas ignoredList=\u00a76Ignorado\:\u00a7r {0} -ignorePlayer=\u00a76Voce esta agora ignorando o jogador\u00a7c {0} \u00a76. -illegalDate=Formate de data ilegal. +ignorePlayer=\u00a76Voc\u00ea est\u00e1 ignorando agora o jogador\u00a7c {0} \u00a76. +illegalDate=Formato de data ilegal. infoChapter=\u00a76Selecione o Cap\u00edtulo\: infoChapterPages=\u00a7e ---- \u00a76{0} \u00a7e--\u00a76 P\u00e1gina \u00a7c{1}\u00a76 de \u00a7c{2} \u00a7e---- infoPages=\u00a7e ---- \u00a76{2} \u00a7e--\u00a76 Pagina \u00a7c{0}\u00a76/\u00a7c{1} \u00a7e---- infoUnknownChapter=\u00a74Cap\u00edtulo Desconhecido. insufficientFunds=\u00a74Dinheiro insuficiente. -invalidCharge=\u00a74Argumento invalido. +invalidCharge=\u00a74Argumento inv\u00e1lido. invalidFireworkFormat=\u00a74A op\u00e7\u00e3o \u00a7c{0} \u00a74n\u00e3o \u00e9 v\u00e1lida para \u00a7c{1}\u00a74. -invalidHome=\u00a74Casa\u00a7c {0} \u00a74nao existe\! -invalidHomeName=\u00a74Nome de casa invalido\! -invalidMob=\u00a74Tipo de mob invalido. -invalidNumber=Numero invalido. -invalidPotion=\u00a74Pocao invalida. -invalidPotionMeta=\u00a74Meta invalida de pocao\: \u00a7c{0}\u00a74. -invalidSignLine=\u00a74Linha\u00a7c {0} \u00a74na placa esta invalida. -invalidWarpName=\u00a74Nome de warp invalido\! -invalidWorld=\u00a74Mundo invalido. +invalidHome=\u00a74Casa\u00a7c {0} \u00a74n\u00e3o existe\! +invalidHomeName=\u00a74Nome de casa inv\u00e1lido\! +invalidMob=\u00a74Tipo de mob inv\u00e1lido. +invalidNumber=Numero inv\u00e1lido. +invalidPotion=\u00a74Pocao inv\u00e1lida. +invalidPotionMeta=\u00a74Meta inv\u00e1lida de pocao\: \u00a7c{0}\u00a74. +invalidSignLine=\u00a74Linha\u00a7c {0} \u00a74na placa est\u00e1 inv\u00e1lida. +invalidWarpName=\u00a74Nome de warp inv\u00e1lido\! +invalidWorld=\u00a74Mundo inv\u00e1lido. is=e -itemCannotBeSold=\u00a74Esse item nao pode ser vendido para o servidor. -itemMustBeStacked=\u00a74O item deve ser trocado em packs. A quantidade de 2 deveria ser 2 packs, etc. +itemCannotBeSold=\u00a74Esse item n\u00e3o pode ser vendido para o servidor. +itemMustBest\u00e1cked=\u00a74O item deve ser trocado em packs. A quantidade de 2 deveria ser 2 packs, etc. itemNames=\u00a76Nomes pequenos para o item\:\u00a7r {0} -itemNotEnough1=\u00a74Voce nao itens o suficiente para vender. -itemNotEnough2=\u00a76Se voce quis vender todos os seus itens de um tipo, digite /sell nomedoitem. +itemNotEnough1=\u00a74Voc\u00ea n\u00e3o itens o suficiente para vender. +itemNotEnough2=\u00a76Se voc\uuea quis vender todos os seus itens de um tipo, digite /sell nomedoitem. itemNotEnough3=\u00a76/sell nomedoitem -1 ira vender tudo menos um item, etc. -itemSellAir=Vocerealmente tentou vender Ar? Coloque um item em sua mao. +itemSellAir=Voc\u00earealmente tentou vender Ar? Coloque um item em sua mao. itemSold=\u00a7aVendido por \u00a7c{0} \u00a7a({1} {2} a {3} cada). itemSoldConsole=\u00a7a{0} \u00a7avendeu {1} por \u00a7a{2} \u00a7a({3} itens a {4} each). itemSpawn=\u00a76Dando\u00a7c {0}\u00a7c {1} itemType=\u00a76Item\:\u00a7c {0} \u00a76-\u00a7c {1} -itemsCsvNotLoaded=Nao p\u00c3\u00b4de carregar o items.csv\! -jailAlreadyIncarcerated=\u00a74Essa pessoa ja esta na cadeia\:\u00a7c {0} -jailMessage=\u00a74Voce foi condenado. Pense bem antes de fazer o que fez. -jailNotExist=\u00a74Essa cadeia nao existe. +itemsCsvNotLoaded=n\u00e3o p\u00b4de carregar o items.csv\! +jailAlreadyIncarcerated=\u00a74Essa pessoa j\u00e1 est\u00e1 na cadeia\:\u00a7c {0} +jailMessage=\u00a74Voc\u00ea foi condenado. Pense bem antes de fazer o que fez. +jailNotExist=\u00a74Essa cadeia n\u00e3o existe. jailReleased=\u00a76Jogador \u00a7c{0}\u00a76 liberado. -jailReleasedPlayerNotify=\u00a76Voce foi liberado\! +jailReleasedPlayerNotify=\u00a76Voc\u00ea foi liberado\! jailSentenceExtended=\u00a76Tempo na cadeia extendido para\: {0} jailSet=\u00a76Cadeia\u00a7c {0} \u00a76foi definida. jumpError=\u00a74Isso machucaria o cerebro do computador. kickDefault=Kickado do servidor. -kickExempt=\u00a74Voce nao pode kickar essa pessoa. +kickExempt=\u00a74Voc\u00ea n\u00e3o pode kickar essa pessoa. kickedAll=\u00a74Todos os jogadores foram kickados. kill=\u00a76Matou\u00a7c {0}\u00a76. killExempt=\u00a74Voc\u00ea n\u00e3o pode matar \u00a7c{0}\u00a74. kitCost=\ \u00a77\u00a7o({0})\u00a7r -kitError2=\u00a74Esse kit nao existe ou foi definido impropriamente. -kitError=\u00a74Nao ha kits validos. +kitError2=\u00a74Esse kit n\u00e3o existe ou foi definido impropriamente. +kitError=\u00a74n\u00e3o ha kits validos. kitGiveTo=\u00a76Dando o kit\u00a7c {0}\u00a76 para \u00a7c{1}\u00a76. -kitInvFull=\u00a74Seu inventario esta cheio, colocando o kit no chao. +kitInvFull=\u00a74Seu inventario est\u00e1 cheio, colocando o kit no chao. kitNotFound=\u00a74Esse kit n\u00e3o existe. -kitOnce=\u00a74Voce nao pode usar esse kit novamente. +kitOnce=\u00a74Voc\u00ea n\u00e3o pode usar esse kit novamente. kitReceive=\u00a76Recebido kit\u00a7c {0}\u00a76. -kitTimed=\u00a74Voce nao pode usar esse kit novamente por\u00a7c {0}\u00a74. +kitTimed=\u00a74Voc\u00ea n\u00e3o pode usar esse kit novamente por\u00a7c {0}\u00a74. kits=\u00a76Kits\:\u00a7r {0} leatherSyntax=\u00a76Sintaxe das Cores do Couro\: color\:,, ex\: color\:255,0,0. lightningSmited=\u00a76Foste ferido\! @@ -228,11 +228,11 @@ mailClear=\u00a76Para marcar seus e-mails como lidos, digite\u00a7c /mail clear\ mailCleared=\u00a76E-mails Removidos\! mailSent=\u00a76E-mail enviado\! markMailAsRead=\u00a76Para marcar seus e-mails como lidos, digite\u00a7c /mail clear\u00a76. -markedAsAway=\u00a76Voce esta agora marcado como ausente. -markedAsNotAway=\u00a76Voce nao esta mais marcado como ausente. +markedAsAway=\u00a76Voc\u00ea est\u00e1 agora marcado como ausente. +markedAsNotAway=\u00a76Voc\u00ea n\u00e3o est\u00e1 mais marcado como ausente. matchingIPAddress=\u00a76Os seguintes jogadores logaram com esse endereco de IP\: -maxHomes=\u00a74Voce nao pode definir mais de\u00a7c {0} \u00a74casas. -mayNotJail=\u00a74Voce nao pode prender essa pessoa\! +maxHomes=\u00a74Voc\u00ea n\u00e3o pode definir mais de\u00a7c {0} \u00a74casas. +mayNotJail=\u00a74Voc\u00ea n\u00e3o pode prender essa pessoa\! me=eu minute=minuto minutes=minutos @@ -241,80 +241,80 @@ mobSpawnError=\u00a74Erro ao mudar o mob spawner. mobSpawnLimit=Quantidade de mobs aumentada ate o limite do servidor. mobSpawnTarget=\u00a74Alvo deve ser um mob spawner. mobsAvailable=\u00a76Mobs\:\u00a7r {0} -moneyRecievedFrom=\u00a7aVoce recebeu {0} de {1}. -moneySentTo=\u00a7aVoce enviou {0} para {1}. +moneyRecievedFrom=\u00a7aVoc\u00ea recebeu {0} de {1}. +moneySentTo=\u00a7aVoc\u00ea enviou {0} para {1}. month=mes months=meses moreThanZero=\u00a74Quantidades devem ser maior que 0. moveSpeed=\u00a76Velocidade de \u00a7c{2}\u00a76 foi definida de {0} para \u00a7c {1} \u00a76. msgFormat=\u00a76[\u00a7c{0}\u00a76 -> \u00a7c{1}\u00a76] \u00a7r{2} -multipleCharges=\u00a74Voce nao pode aplicar mais de um comando para esse fogo de artificio. -multiplePotionEffects=\u00a74Voce nao pode aplicar mais de um efeito para essa pocao. -muteExempt=\u00a74Voce nao pode silenciar esse jogador. -muteNotify=\u00a7c {0} \u00a76 silenciou o jogador \u00a7 6 \u00a7c {1} . +multipleCharges=\u00a74Voc\u00ea n\u00e3o pode aplicar mais de um comando para esse fogo de artificio. +multiplePotionEffects=\u00a74Voc\u00ea n\u00e3o pode aplicar mais de um efeito para essa pocao. +muteExempt=\u00a74Voc\u00ea n\u00e3o pode silenciar esse jogador. +muteNotify=\u00a7c {0} \u00a76 silenciou o jogador \u00a76 \u00a7c {1} . mutedPlayer=\u00a76Jogador\u00a7c {0} \u00a76silenciado. mutedPlayerFor=\u00a76Jogador\u00a7c {0} \u00a76silenciado por\u00a7c {1}\u00a76. -mutedUserSpeaks={0} tentou falar, mas esta silenciado. +mutedUserSpeaks={0} tentou falar, mas est\u00e1 silenciado. nearbyPlayers=\u00a76Jogadores por perto\:\u00a7r {0} -negativeBalanceError=\u00a74Usuario nao tem permissao para ter um saldo negativo. +negativeBalanceError=\u00a74Usuario n\u00e3o tem permiss\u00e3o para ter um saldo negativo. nickChanged=\u00a76Nick alterado. -nickDisplayName=\u00a74Voce precisa ativar o change-displayname na configuracao do Essentials. -nickInUse=\u00a74Esse nome ja esta em uso. +nickDisplayName=\u00a74Voc\u00ea precisa ativar o change-displayname na configuracao do Essentials. +nickInUse=\u00a74Esse nome j\u00e1 est\u00e1 em uso. nickNamesAlpha=\u00a74Nicks devem ser alfanumericos. -nickNoMore=\u00a76Voce nao tem mais um nick. +nickNoMore=\u00a76Voc\u00ea n\u00e3o tem mais um nick. nickSet=\u00a76Seu nick agora \u00e9 \u00a7c{0}\u00a76. nickTooLong=\u00a74Esse Nome \u00e9 muito grande. -noAccessCommand=\u00a74Voce nao tem acesso a esse comando. +noAccessCommand=\u00a74Voc\u00ea n\u00e3o tem acesso a esse comando. noAccessPermission=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para acessar \u00a7c{0}\u00a74. -noBreakBedrock=\u00a74Voce nao tem permissao para quebrar bedrock. +noBreakBedrock=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para quebrar bedrock. noDestroyPermission=\u00a74voc\u00ea n\u00e3o tem permiss\u00e3o para destruir \u00a7c{0}\u00a74. -noDurability=\u00a74Esse item nao tem durabilidade. -noGodWorldWarning=\u00a74Cuidado\! Modo deus nao esta desativado nesse mundo. +noDurability=\u00a74Esse item n\u00e3o tem durabilidade. +noGodWorldWarning=\u00a74Cuidado\! Modo deus n\u00e3o est\u00e1 desativado nesse mundo. noHelpFound=\u00a74Nenhum comando correspondendo. -noHomeSetPlayer=\u00a76Jogador nao definiu uma casa. +noHomeSetPlayer=\u00a76Jogador n\u00e3o definiu uma casa. noIgnored=\u00a76Voc\u00ea n\u00e3o est\u00e1 ignorando ningu\u00e9m. -noKitPermission=\u00a74Voce precisa da permissao \u00a7c{0}\u00a74 para usar esse kit. -noKits=\u00a76Nao existem kits dispon\u00c3\u00adveis ainda. -noMail=\u00a76Voce nao tem nenhum e-mail. +noKitPermission=\u00a74Voc\u00ea precisa da permiss\u00e3o \u00a7c{0}\u00a74 para usar esse kit. +noKits=\u00a76n\u00e3o existem kits dispon\u00edveis ainda. +noMail=\u00a76Voc\u00ea n\u00e3o tem nenhum e-mail. noMatchingPlayers=\u00a76Nenhum jogador correspondente encontrado. -noMetaFirework=\u00a74Voce nao tem permissao para aplicar meta para fogos de artifi\u00adcio. -noMetaPerm=\u00a74Voc\u00c3\u00aa nao tem permissao para aplicar meta (\u00a7c{0})\u00a74 para esse item. -noNewMail=\u00a76Voce nao tem novos e-mails. -noPendingRequest=\u00a74Voce nao tem uma solicitacao. -noPerm=\u00a74Voce nao tem a permissao \u00a7c{0}\u00a74. -noPermToSpawnMob=\u00a74Voce nao tem permissao para spawnar esse mob. -noPlacePermission=\u00a74Voce nao tem permissao para colocar um bloco perto dessa placa. -noPotionEffectPerm=\u00a74Voce nao tem permissao para aplicar o efeito \u00a7c{0} \u00a74para essa pocao. -noPowerTools=\u00a76Voce nao tem nenhuma ferramenta de poder atribuida. +noMetaFirework=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para aplicar meta para fogos de artif\u00edcio. +noMetaPerm=\u00a74Voc\u00aa n\u00e3o tem permiss\u00e3o para aplicar meta (\u00a7c{0})\u00a74 para esse item. +noNewMail=\u00a76Voc\u00ea n\u00e3o tem novos e-mails. +noPendingRequest=\u00a74Voc\u00ea n\u00e3o tem uma solicitacao. +noPerm=\u00a74Voc\u00ea n\u00e3o tem a permiss\u00e3o \u00a7c{0}\u00a74. +noPermToSpawnMob=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para spawnar esse mob. +noPlacePermission=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para colocar um bloco perto dessa placa. +noPotionEffectPerm=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para aplicar o efeito \u00a7c{0} \u00a74para essa pocao. +noPowerTools=\u00a76Voc\u00ea n\u00e3o tem nenhuma ferramenta de poder atribuida. noWarpsDefined=\u00a76Nenhum warp definido. none=nada -notAllowedToQuestion=\u00a74Vocenao tem permissao para usar a pergunta. -notAllowedToShout=\u00a74Voce nao tem permissao para gritar. -notEnoughExperience=\u00a74Voce nao tem experiencia o suficiente. -notEnoughMoney=\u00a74Voce nao tem dinheiro o suficiente. -notFlying=nao esta voando -notRecommendedBukkit=\u00a74* \! * Versao do Bukkit nao e recomendada para essa versao do Essentials. -notSupportedYet=Nao suportado ainda. -nothingInHand=\u00a74Voce nao tem nada em sua mao. +notAllowedToQuestion=\u00a74Voc\u00ean\u00e3o tem permiss\u00e3o para usar a pergunta. +notAllowedToShout=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para gritar. +notEnoughExperience=\u00a74Voc\u00ea n\u00e3o tem experiencia o suficiente. +notEnoughMoney=\u00a74Voc\u00ea n\u00e3o tem dinheiro o suficiente. +notFlying=n\u00e3o est\u00e1 voando +notRecommendedBukkit=\u00a74* \! * Versao do Bukkit n\u00e3o e recomendada para essa versao do Essentials. +notSupportedYet=n\u00e3o suportado ainda. +nothingInHand=\u00a74Voc\u00ea n\u00e3o tem nada em sua mao. now=agora nuke=\u00a75Pode chover a morte sobre eles. -numberRequired=Vai um n\u00c3\u00bamero a\u00c3\u00ad, seu bobo. +numberRequired=Vai um n\u00bamero a\u00ed, seu bobo. onlyDayNight=/time suporta apenas day/night. onlyPlayerSkulls=\u00a74Voc\u00ea s\u00f3 pode definir o propriet\u00e1rio de cr\u00e2nios de jogador (\u00a7c397\:3\u00a74). onlyPlayers=\u00a74Apenas jogadores no jogo podem usar \u00a7c{0}\u00a74. onlySunStorm=\u00a74/weather suporta apenas sun/storm. orderBalances=\u00a76Organizando saldos de\u00a7c {0} \u00a76usuarios, aguarde... -oversizedTempban=\u00a74Voce nao pode banir um jogador por esse peri\u00adodo de tempo. +oversizedTempban=\u00a74Voc\u00ea n\u00e3o pode banir um jogador por esse per\u00edodo de tempo. pTimeCurrent=\u00a76O tempo para \u00a7c{0}\u00a76 e \u00a7c {1}\u00a76. pTimeCurrentFixed=\u00a76O tempo para \u00a7c{0}\u00a76 foi arrumado para\u00a7c {1}\u00a76. -pTimeNormal=\u00a76O tempo de \u00a7c{0}\u00a76 esta normal e correspondendo ao do servidor. -pTimeOthersPermission=\u00a74Voce nao tem permissao para definir o tempo de outros jogadores. -pTimePlayers=\u00a76Esses jogadores tem seus pr\u00c3\u00b3prios tempos\:\u00a7r +pTimeNormal=\u00a76O tempo de \u00a7c{0}\u00a76 est\u00e1 normal e correspondendo ao do servidor. +pTimeOthersPermission=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para definir o tempo de outros jogadores. +pTimePlayers=\u00a76Esses jogadores tem seus pr\u00b3prios tempos\:\u00a7r pTimeReset=\u00a76O tempo do jogador foi resetado para\: \u00a7c{0} pTimeSet=\u00a76Tempo do jogador definido em \u00a7c{0}\u00a76 para\: \u00a7c{1}. pTimeSetFixed=\u00a76Tempo do jogador arrumado em \u00a7c{0}\u00a76 para\: \u00a7c{1}. pWeatherCurrent=\u00a7c{0}\u00a76 o clima \u00e9\u00a7c {1}\u00a76. -pWeatherInvalidAlias=Tipo de clima \u00a74 Inv\u00e1lido +pWeatherInv\u00e1lidalias=Tipo de clima \u00a74 Inv\u00e1lido pWeatherNormal=O clima \u00a7c{0}\u00a76 est\u00e1 normal e coincide com o servidor. pWeatherOthersPermission=\u00a74Voc\u00ea n\u00e3o est\u00e3o autorizados a definir o clima dos outros jogadores. pWeatherPlayers=\u00a76Estes jogadores possuem seu pr\u00f3prio clima\:\u00a7r @@ -323,14 +323,14 @@ pWeatherSet=\u00a76O clima do jogador foi definido para \u00a7c{0}\u00a76 por\: pendingTeleportCancelled=\u00a74Pedido de teleporte cancelado. playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address\u00a7c {1} \u00a76for\: \u00a7c{2}\u00a76. playerBanned=\u00a76Jogador\u00a7c {0} \u00a76banido\u00a7c {1} \u00a76por \u00a7c{2}\u00a76. -playerInJail=\u00a74Jogador atualmente esta na cadeia\u00a7c {0}\u00a74. +playerInJail=\u00a74Jogador atualmente est\u00e1 na cadeia\u00a7c {0}\u00a74. playerJailed=\u00a76JogadorPlayer\u00a7c {0} \u00a76preso. playerJailedFor=\u00a76Jogador\u00a7c {0} \u00a76preso por {1}. playerKicked=\u00a76Jogador\u00a7c {0} \u00a76kickou {1} por {2}. -playerMuted=\u00a76Voce foi silenciado\! +playerMuted=\u00a76Voc\u00ea foi silenciado\! playerMutedFor=\u00a76Voc\u00ea est\u00e1 silenciado por\u00a7c {0}. playerNeverOnServer=\u00a74Jogador\u00a7c {0} \u00a74nunca esteve nesse servidor. -playerNotFound=\u00a74Jogador nao encontrado. +playerNotFound=\u00a74Jogador n\u00e3o encontrado. playerUnbanIpAddress=\u00a76Jogador\u00a7c {0} \u00a76desbaniu o IP\: {1}. playerUnbanned=\u00a76Jogador\u00a7c {0} \u00a76desbaniu\u00a7c {1}. playerUnmuted=\u00a76Voc\u00ea n\u00e3o est\u00e1 mais silenciado. @@ -340,14 +340,14 @@ posX=\u00a76X\: {0} (+Leste <-> -Oeste) posY=\u00a76Y\: {0} (+Cima <-> -Baixo) posYaw=\u00a76Yaw\: {0} (Rotacao) posZ=\u00a76Z\: {0} (+Sul <-> -Norte) -possibleWorlds=\u00a76Possiveis mundos s\u00e3o os n\u00fameros \u00a7c0\u00a76 atrav\u00e9s de \u00a7c {0} \u00a7 6. +possibleWorlds=\u00a76Poss\u00edveis mundos s\u00e3o os n\u00fameros \u00a7c0\u00a76 atrav\u00e9s de \u00a7c {0} \u00a76. potions=\u00a76Pocoes\:\u00a7r {0}\u00a76. -powerToolAir=\u00a74O comando nao pode ser atribu\u00c3\u00addo ao ar. +powerToolAir=\u00a74O comando n\u00e3o pode ser atribu\u00eddo ao ar. powerToolAlreadySet=\u00a74Comando \u00a7c{0}\u00a74 J\u00e1 Foi Atribuido para \u00a7c{1}\u00a74. -powerToolAttach=\u00a7c{0}\u00a76 comando atribu\u00c3\u00addo a {1}. +powerToolAttach=\u00a7c{0}\u00a76 comando atribu\u00eddo a {1}. powerToolClearAll=\u00a76Todos as ferramentas de poder foram removidas. powerToolList=\u00a76Item \u00a7c{1} \u00a76tem os seguintes comandos\: \u00a7c{0}\u00a76. -powerToolListEmpty=\u00a74Item \u00a7c{0} \u00a74nao tem comandos atribu\u00c3\u00addos. +powerToolListEmpty=\u00a74Item \u00a7c{0} \u00a74n\u00e3o tem comandos atribu\u00eddos. powerToolNoSuchCommandAssigned=\u00a74Comando \u00a7c {0} \u00a7 4\u00ba n\u00e3o foi atribu\u00eddo a \u00a7c {1} \u00a7 4\u00ba. powerToolRemove=\u00a76Esse Comando\u00a7c{0}\u00a76 Foi Removido de \u00a7c{1}\u00a76. powerToolRemoveAll=\u00a76Todos os comandos removidos do 6\u00ba \u00a7c {0}. @@ -355,29 +355,29 @@ powerToolsDisabled=\u00a76Todas as suas ferramentas de poder foram desativadas. powerToolsEnabled=\u00a76Todas as suas ferramentas de poder foram ativadas. questionFormat=\u00a72[Pergunta]\u00a7r {0} readNextPage=\u00a76Digite\u00a7c /{0} {1} \u00a76para ler a proxima pagina. -recipe=\u00a76Receita para \u00a7c {0} \u00a7. 6 (\u00a7 6 \u00a7c {1} de \u00a7c {2} \u00a7 6) -recipeBadIndex=Nao ha receita para esse numero. -recipeFurnace=\u00a76Fundir\: \u00a7 6 \u00a7c {0}. +recipe=\u00a76Receita para \u00a7c {0} \u00a7. 6 (\u00a76 \u00a7c {1} de \u00a7c {2} \u00a76) +recipeBadIndex=N\u00e3o ha receita para esse numero. +recipeFurnace=\u00a76Fundir\:\u00a7c {0}. recipeGrid=\u00a7c{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X recipeGridItem=\u00a7c{0}X \u00a76\u00e9 \u00a7c{1} -recipeMore=\u00a76Digite /{0} \u00a7c{1}\u00a76 para ver outras receitas para \u00a7c{2}\u00a76. -recipeNone=Nao ha receitas para {0} +recipeMore=\u00a76Digite /{0} \u00a7c{1}\u00a76 para ver outras receitas para \u00a7c{2}\u00a76. +recipeNone=n\u00e3o ha receitas para {0} recipeNothing=nada recipeShapeless=\u00a76Combinar \u00a7c{0} recipeWhere=\u00a76Onde\: {0} removed=\u00a7c{0} \u00a76entidades removidas. repair=\u00a76Voc\u00ea reparou seu \u00a7c{0}\u00a76 com sucesso. -repairAlreadyFixed=\u00a74Esse item nao precisa de reparo. -repairEnchanted=\u00a74Voce nao tem permissao para reparar itens encantados. -repairInvalidType=\u00a74Esse item nao pode ser reparado. +repairAlreadyFixed=\u00a74Esse item n\u00e3o precisa de reparo. +repairEnchanted=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para reparar itens encantados. +repairInvalidType=\u00a74Esse item n\u00e3o pode ser reparado. repairNone=\u00a74N\u00e3o haviam itens para serem reparados. -requestAccepted=\u00a76Pedido de teleporte aceito. -requestAcceptedFrom=\u00a7c{0} \u00a76aceitou seu pedido de teleporte. +requestaccepted=\u00a76Pedido de teleporte aceito. +requestacceptedFrom=\u00a7c{0} \u00a76aceitou seu pedido de teleporte. requestDenied=\u00a76Pedido de teleporte negado. requestDeniedFrom=\u00a7c{0} \u00a76negou seu pedido de teleporte. requestSent=\u00a76Pedido enviado para\u00a7c {0}\u00a76. requestTimedOut=\u00a74Pedido de teleporte se esgotou. -requiredBukkit=\u00a76* \! * Voce precisa de pelo menos a construcao {0} do CraftBukkit, baixe-a em http\://dl.bukkit.org/downloads/craftbukkit/ +requiredBukkit=\u00a76* \! * voc\uuea precisa de pelo menos a construcao {0} do CraftBukkit, baixe-a em http\://dl.bukkit.org/downloads/craftbukkit/ resetBal=\u00a76Saldos de todos os jogadores online resetados para \u00a7a{0}\u00a76. resetBalAll=\u00a76Saldos de todos os jogadores resetados para \u00a7a{0}\u00a76. returnPlayerToJailError=\u00a74Um erro ocorreu ao tentar retornar o jogador\u00a7c {0} \u00a74para a cadeia\: {1}\! @@ -396,14 +396,14 @@ shoutFormat=\u00a77[\u00a73G\u00a77]\u00a7r {0} signFormatFail=\u00a74[{0}] signFormatSuccess=\u00a71[{0}] signFormatTemplate=[{0}] -signProtectInvalidLocation=\u00a74Vocenao tem permissao para criar placas aqui. -similarWarpExist=\u00a74Um warp com um nome similar ja existe. +signProtectInvalidLocation=\u00a74Voc\u00ean\u00e3o tem permiss\u00e3o para criar placas aqui. +similarWarpExist=\u00a74Um warp com um nome similar j\u00e1 existe. slimeMalformedSize=\u00a74Tamanho mal especificado. -socialSpy=\u00a76SocialSpy para \u00a7c {0} \u00a7 6\: \u00a7c {1} +socialSpy=\u00a76SocialSpy para \u00a7c {0} \u00a76\: \u00a7c {1} soloMob=\u00a74Esse mob gosta de ficar sozinho. spawnSet=\u00a76Ponto de Spawn definido para o grupo\u00a7c {0}\u00a76. spawned=spawnado -sudoExempt=\u00a74Voce nao pode usar sudo nesse usuario. +sudoExempt=\u00a74Voc\u00ea n\u00e3o pode usar sudo nesse usuario. BOZO!! sudoRun=\u00a76Forcing\u00a7c {0} \u00a76to run\:\u00a7r /{1} suicideMessage=\u00a76Adeus mundo cruel... suicideSuccess=\u00a76{0} \u00a76se matou. @@ -412,83 +412,83 @@ takenFromAccount=\u00a7a{0} foi removido sua conta. takenFromOthersAccount=\u00a7a{0} foi removido da conta de {1}\u00a7a. Novo saldo\: {2}. teleportAAll=\u00a76Pedido de teleporte enviado para todos os jogadores... teleportAll=\u00a76Teleportando todos os jogadores... -teleportAtoB=\u00a7c{0}\u00a76 teleportou voc\u00ea para \u00a7c{1}\u00a76. -teleportDisabled=\u00a7c{0} \u00a74esta com teleporte desativado. -teleportHereRequest=\u00a7c{0}\u00a76 pediu para que se teleporte ate ele. +teleportAtoB=\u00a7c{0}\u00a76 teleportou voc\uuea para \u00a7c{1}\u00a76. +teleportDisabled=\u00a7c{0} \u00a74est\u00e1 com teleporte desativado. +teleportHereRequest=\u00a7c{0}\u00a76 pediu para que voc\uuea se teleporte ate ele. teleportNewPlayerError=\u00a74Falha ao teleportar novo jogador\! -teleportRequest=\u00a7c{0}\u00a76 pediu para teleportar ate voce. +teleportRequest=\u00a7c{0}\u00a76 pediu para teleportar ate voc\uuea. teleportRequestTimeoutInfo=\u00a76Esse pedido ira se esgotar depois de\u00a7c {0} segundos\u00a76. -teleportTop=\u00a76Teleportando para o topo. -teleportationCommencing=\u00a76Teleportando iniciando... -teleportationDisabled=\u00a76Teletrasporte \u00a7cdesabilitado\u00a76. -teleportationDisabledFor=\u00a76Teletrasporte \u00a7cdisabilitado \u00a76para \u00a7c {0} \u00a7 6. -teleportationEnabled=\u00a76Teletrasporte \u00a7habilitado\u00a76. -teleportationEnabledFor=\u00a76Teletrasporte \u00a7chabilitado \u00a76para \u00a7c {0} \u00a7 6. +teleportTop=\u00a76Indo para o topo. +teleportationCommencing=\u00a76Teleportando... +teleportationDisabled=\u00a76Teleporte \u00a7cdesabilitado\u00a76. +teleportationDisabledFor=\u00a76Teleporte \u00a7cdesabilitado \u00a76para \u00a7c {0}\u00a76. +teleportationEnabled=\u00a76Teleporte \u00a7habilitado\u00a76. +teleportationEnabledFor=\u00a76Teleporte \u00a7chabilitado \u00a76para \u00a7c {0}\u00a76. teleporting=\u00a76Teleportando... -teleportToPlayer=\u00a76Teletransportando para \u00a7 6 \u00a7c {0}. -tempBanned=\u00a7cYou have been temporarily banned for {0}\:\n\u00a7r{2} -tempbanExempt=\u00a74Voce nao pode banir temporariamente esse jogador. -thunder=\u00a76Voce\u00a7c {0} \u00a76trovoada em seu mundo. -thunderDuration=\u00a76Voce\u00a7c {0} \u00a76trovoada em seu mundo por\u00a7c {1} \u00a76segundos. -timeBeforeHeal=\u00a76Tempo antes da pr\u00c3\u00b3xima cura\:\u00a7c {0}\u00a76. -timeBeforeTeleport=\u00a76Tempo antes do pr\u00c3\u00b3ximo teleporte\:\u00a7c {0} -timeFormat=\u00a7 6 \u00a7c {0} ou \u00a7c {1} \u00a7 6 ou \u00a7c {2} \u00a7 6 -timeSetPermission=\u00a74Voce nao tem permiss\u00e3o para definir o tempo. +teleportToPlayer=\u00a76Teletransportando para \u00a76 \u00a7c {0}. +tempBanned=\u00a7cVoc\u00ea foi banido temporariamente por {0}\:\n\u00a7r{2} +tempbanExempt=\u00a74Voc\u00ea n\u00e3o pode banir temporariamente esse jogador. +thunder=\u00a76Voc\u00ea\u00a7c {0} \u00a76trovoada em seu mundo. +thunderDuration=\u00a76Voc\u00ea\u00a7c {0} \u00a76trovoada em seu mundo por\u00a7c {1} \u00a76segundos. +timeBeforeHeal=\u00a76Tempo antes da pr\u00b3xima cura\:\u00a7c {0}\u00a76. +timeBeforeTeleport=\u00a76Tempo antes do pr\u00b3ximo teleporte\:\u00a7c {0} +timeFormat=\u00a76 \u00a7c {0} ou \u00a7c {1} \u00a76 ou \u00a7c {2} \u00a76 +timeSetPermission=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para definir o tempo. timeWorldCurrent=\u00a76O tempo atual em\u00a7c {0} \u00a76e \u00a7c{1}\u00a76. timeWorldSet=\u00a76O tempo foi definido para\u00a7c {0} \u00a76em\: \u00a7c{1}\u00a76. totalWorthAll=\u00a7aTodos os itens e blocos foram vendidos por um total de \u00a7c{1}\u00a7a. totalWorthBlocks=\u00a7aTodos os blocos foram vendidos por um total de \u00a7c{1}\u00a7a. tps=\u00a76TPS Atual \= {0} -tradeSignEmpty=\u00a74A placa de troca nao tem nada disponivel para voce. -tradeSignEmptyOwner=\u00a74Nao hanada para coletar dessa placa de troca. +tradeSignEmpty=\u00a74A placa de troca n\u00e3o tem nada disponivel para voc\uuea. +tradeSignEmptyOwner=\u00a74n\u00e3o hanada para coletar dessa placa de troca. treeFailure=\u00a74Erro ao gerar Arvore. Tente novamente na terra ou na grama. treeSpawned=\u00a76Arvore gerada. true=\u00a7averdadeiro\u00a7r typeTpaccept=\u00a76Para teleportar, digite \u00a7c/tpaccept\u00a76. typeTpdeny=\u00a76Para recusar o pedido, digite \u00a7c/tpdeny\u00a76. -typeWorldName=\u00a76Voce pode tambem digitar o nome de um mundo especi\u00adfico. +typeWorldName=\u00a76Voc\u00ea pode tambem digitar o nome de um mundo especifico. unableToSpawnMob=\u00a74Incapaz de spawnar o mob. -unignorePlayer=\u00a76Voce nao esta mais ignorando o jogador\u00a7c {0} \u00a76. -unknownItemId=\u00a74ID do item invalido\: \u00a7r {0}\u00a74. +unignorePlayer=\u00a76Voc\u00ea n\u00e3o est\u00e1 mais ignorando o jogador\u00a7c {0} \u00a76. +unknownItemId=\u00a74ID do item inv\u00e1lido\: \u00a7r {0}\u00a74. unknownItemInList=\u00a74Iten desconhecido {0} na lista {1}. unknownItemName=\u00a74Nome de item desconhecido\: {0}. unlimitedItemPermission=\u00a74Sem permiss\u00e3o para item \u00a7c{0}\u00a74 ilimitado. unlimitedItems=\u00a76Itens ilimitados\:\u00a7r -unmutedPlayer=\u00a76Jogador\u00a7c {0} \u00a76nao esta mais silenciado. -unvanishedReload=\u00a74Um reload forcou-lhe a ficar visi\u00advel novamente. +unmutedPlayer=\u00a76Jogador\u00a7c {0} \u00a76n\u00e3o est\u00e1 mais silenciado. +unvanishedReload=\u00a74Um reload forcou-lhe a ficar vis\u00edvel novamente. upgradingFilesError=Erro ao aprimorar os arquivos. uptime=\u00a76Tempo online\:\u00a7c {0} -userAFK=\u00a75{0} \u00a75esta atualmente AFK e pode nao responder. -userDoesNotExist=\u00a74O usuario\u00a7c {0} \u00a74nao existe. -userIsAway=\u00a75{0} \u00a75esta agora AFK. -userIsNotAway=\u00a75{0} \u00a75nao esta mais AFK. -userJailed=\u00a76Voce foi condenado\! +userAFK=\u00a75{0} \u00a75est\u00e1 atualmente AFK e pode n\u00e3o responder. +userDoesNotExist=\u00a74O usuario\u00a7c {0} \u00a74n\u00e3o existe. +userIsAway=\u00a75{0} \u00a75est\u00e1 agora AFK. +userIsNotAway=\u00a75{0} \u00a75n\u00e3o est\u00e1 mais AFK. +userJailed=\u00a76Voc\u00ea foi preso\! userUnknown=\u00a74Aviso\: O usuario ''\u00a7c{0}\u00a74'' nunca entrou nesse servidor. userdataMoveBackError=Falha ao mover o userdata/{0}.tmp para userdata/{1}\! userdataMoveError=Falha ao mover userdata/{0} para userdata/{1}.tmp\! usingTempFolderForTesting=Usando pasta temporaria para teste\: -vanished=\u00a76Voce esta agora completamente invisi\u00advel para jogadores normais, e escondido de comandos in-game. -versionMismatch=\u00a74Versao nao correspondente\! Por favor atualize o {0} para a mesma versao. -versionMismatchAll=\u00a74Versao nao correspondente\! Por favor atualize todos os jars do Essentials para a mesma versao. +vanished=\u00a76Voc\u00ea est\u00e1 agora completamente invis\u00edvel para jogadores normais, e escondido de comandos in-game. +versionMismatch=\u00a74Versao n\u00e3o correspondente\! Por favor atualize o {0} para a mesma versao. +versionMismatchAll=\u00a74Versao n\u00e3o correspondente\! Por favor atualize todos os jars do Essentials para a mesma versao. voiceSilenced=\u00a76Sua voz foi silenciada\! walking=caminhando warpDeleteError=\u00a74Problema ao deletar o arquivo do warp. warpList={0} -warpListPermission=\u00a74Voce nao tem permissao para listar os warps. -warpNotExist=\u00a74Esse warp nao existe. -warpOverwrite=\u00a74Voce nao pode sobreescrever esse warp. +warpListPermission=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para listar os warps. +warpNotExist=\u00a74Esse warp n\u00e3o existe. +warpOverwrite=\u00a74Voc\u00ea n\u00e3o pode sobreescrever esse warp. warpSet=\u00a76Warp\u00a7c {0} \u00a76definido. -warpUsePermission=\u00a74Voce nao tem permissao para usar esse warp. -warpingTo=\u00a76Teleportando para\u00a7c {0}\u00a76. +warpUsePermission=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para usar esse warp. +warpingTo=\u00a76Indo para\u00a7c {0}\u00a76. warps=\u00a76Warps\:\u00a7r {0} -warpsCount=\u00a76Aqui tem\u00a7c {0} \u00a76warps. Mostrando p\u00e1gina \u00a7c {1} \u00a76de \u00a7c {2} \u00a7 6. -weatherStorm=\u00a76Voce definiu o tempo para \u00a7ctempestade\u00a76 em\u00a7c {0}\u00a76. -weatherStormFor=\u00a76Voce definiu o tempo para \u00a7ctempestade\u00a76 em\u00a7c {0} \u00a76por {1} segundos. -weatherSun=\u00a76Voce definiu o tempo para \u00a7csol\u00a76 em\u00a7c {0}\u00a76. -weatherSunFor=\u00a76Voce definiu o tempo para \u00a7csun\u00a76 em\u00a7c {0} \u00a76por {1} seconds. +warpsCount=\u00a76Aqui tem\u00a7c {0} \u00a76warps. Mostrando p\u00e1gina \u00a7c {1} \u00a76de \u00a7c {2} \u00a76. +weatherStorm=\u00a76Voc\u00ea definiu o tempo para \u00a7ctempestade\u00a76 em\u00a7c {0}\u00a76. +weatherStormFor=\u00a76Voc\u00ea definiu o tempo para \u00a7ctempestade\u00a76 em\u00a7c {0} \u00a76por {1} segundos. +weatherSun=\u00a76Voc\u00ea definiu o tempo para \u00a7csol\u00a76 em\u00a7c {0}\u00a76. +weatherSunFor=\u00a76Voc\u00ea definiu o tempo para \u00a7csun\u00a76 em\u00a7c {0} \u00a76por {1} seconds. whoisAFK=\u00a76 - AFK\:\u00a7r {0} whoisBanned=\u00a76 - Banido\:\u00a7r {0} -whoisExp=\u00a76 - Exp\:\u00a7r {0} (N\u00c3\u00advel {1}) +whoisExp=\u00a76 - Exp\:\u00a7r {0} (N\u00edvel {1}) whoisFly=\u00a76 - Modo Fly\:\u00a7r {0} ({1}) whoisGamemode=\u00a76 - Modo de Jogo\:\u00a7r {0} whoisGeoLocation=\u00a76 - Localizacao\:\u00a7r {0} @@ -501,17 +501,17 @@ whoisMoney=\u00a76 - Dinheiro\:\u00a7r {0} whoisMuted=\u00a76 - Silenciado\:\u00a7r {0} whoisNick=\u00a76 - Apelido\:\u00a7r {0} whoisOp=\u00a76 - OP\:\u00a7r {0} -whoisTop=\u00a76 \=\=\=\=\=\= Quem\u00c3\u0089\:\u00a7c {0} \u00a76\=\=\=\=\=\= +whoisTop=\u00a76 \=\=\=\=\=\= Quem\u0089\:\u00a7c {0} \u00a76\=\=\=\=\=\= worth=\u00a7aPack de {0} vale \u00a7c{1}\u00a7a ({2} a {3} cada) worthMeta=\u00a7aPack de {0} com metadata de {1} vale \u00a7c{2}\u00a7a ({3} a {4} cada) worthSet=\u00a76Valor definido year=ano years=anos -youAreHealed=\u00a76Voce foi curado. -youHaveNewMail=\u00a76Voce tem\u00a7c {0} \u00a76mensagens\! Digite \u00a7c/mail read\u00a76 para ve-las. +youAreHealed=\u00a76Voc\u00ea foi curado. +youHaveNewMail=\u00a76Voc\u00ea tem\u00a7c {0} \u00a76mensagens\! Digite \u00a7c/mail read\u00a76 para ver. whoisHunger=\u00a76 - Fome\:\u00a7r {0}/20 (+{1} satura\u00e7\u00e3o) kitDelay=\u00a7m{0}\u00a7r -giveSpawnFailure=\u00a74N\u00e3o tem espa\u00e7o, \u00a7c{0} \u00a7c{1} \u00a74 foi perdido. +giveSpawnFailure=\u00a74N\u00e3o tem espa\u00e7o, \u00a7c{0} \u00a7c{1} \u00a74foi perdido. noKitGroup=\u00a74Voc\u00ea n\u00e3o tem acesso \u00e0 este kit. inventoryClearingFromAll=\u00a76Esvaziando os invent\u00e1rios de todos os usu\u00e1rios... inventoryClearingAllItems=\u00a76Limpou todos os itens do invent\u00e1rio de {0}\u00a76. @@ -523,43 +523,42 @@ localNoOne= totalSellableAll=\u00a7aO valor total dos itens e blocos dispon\u00edveis para venda \u00e9 de \u00a7c{1}\u00a7a. totalSellableBlocks=\u00a7aO valor total dos blocos dispon\u00edveis para venda \u00e9 de \u00a7c{1}\u00a7a. radiusTooBig=\u00a74O raio e muito grande. O raio maximo permitido \u00e9 de {0}. -isIpBanned=\u00a76IP \u00a7c{0} \u00a76 esta banido. +isIpBanned=\u00a76IP \u00a7c{0} \u00a76 est\u00e1 banido. mobDataList=\u00a76Dados do mob validos\:\u00a7r {0} -vanish=\u00a76Invisivel para {0}\u00a76\: {1} -noLocationFound=\u00a74Nenhuma localizacao valida encontrada. +vanish=\u00a76Invis\u00edvel para {0}\u00a76\: {1} +noLocationFound=\u00a74Nenhuma localiza\u00e7\u00e3o v\u00e1lida encontrada. coordsKeyword={0}, {1}, {2} -banExemptOffline=\u00a74Voce nao pode banir jogadores desconectados. -tempbanExemptOffline=\u00a74Voce nao pode banir temporariamente jogadores desconectados. -mayNotJailOffline=\u00a74Voce nao pode prender jogadores desconectados. -muteExemptOffline=\u00a74Voce nao pode silenciar jogadores desconectados. -ignoreExempt=\u00a74Voce nao pode ignorar este jogador. +banExemptOffline=\u00a74Voc\u00ea n\u00e3o pode banir jogadores desconectados. +tempbanExemptOffline=\u00a74Voc\u00ea n\u00e3o pode banir temporariamente jogadores desconectados. +mayNotJailOffline=\u00a74Voc\u00ea n\u00e3o pode prender jogadores desconectados. +muteExemptOffline=\u00a74Voc\u00ea n\u00e3o pode silenciar jogadores desconectados. +ignoreExempt=\u00a74Voc\u00ea n\u00e3o pode ignorar este jogador. unsafeTeleportDestination=\u00a74O destino de teleporte \u00e9 inseguro e o teleporte de seguran\u00e7a est\u00e1 desabilitado. -noMetaJson=Metadata JSON n\u00e3o \u00e9 suportado nesta vers\u00e3o do Bukkit. -maxMoney=\u00a74Esta transa\u00e7\u00e3o iria exceder o limite de saldo para esta conta. -skullChanged=\u00a76Cr\u00e2nio mudou para \u00a7c {0}. \u00a7 6. +noMetaJson=Metadata JSON n\u00e3o \u00e9 suportado nest\u00e1 vers\u00e3o do Bukkit. +maxMoney=\u00a74est\u00e1 transa\u00e7\u00e3o iria exceder o limite de saldo para est\u00e1 conta. +skullChanged=\u00a76Cr\u00e2nio mudou para \u00a7c {0}. \u00a76. alphaNames=\u00a74Nomes de jogadores s\u00f3 podem conter letras, n\u00fameros e sublinhados. -givenSkull=\u00a76Voc\u00ea recebeu o cr\u00e2nio de \u00a7c{0}\u00a76. +givenSkull=\u00a76Voc\u00ea recebeu a cabe\00e7a de \u00a7c{0}\u00a76. noPermissionSkull=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para modificar esse cr\u00e2nio. teleportInvalidLocation=Valores de coordenadas n\u00e3o pode ser maior que 30000000 -invalidSkull=\u00a74Por favor,segure um cr\u00e2nio do Jogador. +invalidSkull=\u00a74Por favor, segure a cabe\00e7a de algum player. weatherInvalidWorld=Mundo {0} n\u00e3o foi encontrado\! gameModeInvalid=\u00a74Voc\u00ea precisa especificar um modo de jogador v\u00e1lido. mailTooLong=\u00a74Mensagem de e-mail muito longa tente ficar apenas em 1000 letras. mailDelay=Muitos e-mails foram enviados no \u00faltimo minuto. M\u00e1ximo\: {0} seenAccounts=\u00a76Player tamb\u00e9m foi conhecido como\: \u00a7c {0} -unableToSpawnItem=\u00a74Nao pode criar \u00a7c{0}\u00a74, esse item n\u00e3o e cri\u00e1vel. -itemsConverted=\u00a76Converted all items into blocks. -itemsNotConverted=\u00a74You have no items that can be converted into blocks. -mailSentTo=\u00a7c{0}\u00a76 has been sent the following mail\: +unableToSpawnItem=\u00a74n\u00e3o pode criar \u00a7c{0}\u00a74, esse item n\u00e3o e cri\u00e1vel. +itemsConverted=\u00a76Convertendo todos os itens para blocos. +itemsNotConverted=\u00a74Voc\u00ea n\u00e3o tem itens que possam virar blocos. +mailSentTo=\u00a7c{0}\u00a76 foi enviado para o seguinte email\: mailMessage={0} - -whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0} -playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. +whoisTempBanned=\u00a76 - Banido:\u00a7r {0} +playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 baniu temporariamente \u00a7c{1}\u00a76 por \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} -cantGamemode=\u00a74You do not have permission to change to gamemode {0} -createdKit=\u00a76Created kit \u00a7c{0} \u00a76with \u00a7c{1} \u00a76entries and delay \u00a7c{2} -spectator=spectator -kitContains=\u00a76Kit \u00a7c{0} \u00a76contains: +cantGamemode=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para mudar para o gamemode {0} +createdKit=\u00a76Kit criado: \u00a7c{0} \u00a76com \u00a7c{1} \u00a76entradas e tempo \u00a7c{2} +spectator=espectador +kitContains=\u00a76Kit \u00a7c{0} \u00a76cont\u00e9m: kitItem=\u00a76- \u00a7f{0} invalidBanner=\u00a74Invalid banner syntax. commandCooldown=\u00a7cYou cannot type that command for {0}. From 1aff0c2dcb58036bd8130e5e8183ecd3ddaeda25 Mon Sep 17 00:00:00 2001 From: Guilherme Penedo Date: Thu, 7 Jul 2016 20:21:28 +0100 Subject: [PATCH 22/28] Update messages_pt_BR.properties Fixed special characters, spelling mistakes, (some) gramatical mistakes. Added invalidBanner and commandCooldown messages --- Essentials/src/messages_pt_BR.properties | 1020 +++++++++++----------- 1 file changed, 510 insertions(+), 510 deletions(-) diff --git a/Essentials/src/messages_pt_BR.properties b/Essentials/src/messages_pt_BR.properties index 78f0ef2b9..184d32af0 100644 --- a/Essentials/src/messages_pt_BR.properties +++ b/Essentials/src/messages_pt_BR.properties @@ -3,562 +3,562 @@ # Single quotes have to be doubled: '' # Translations start here # by: nathampa0909 -action=\u00a75* {0} \u00a75{1} -addedToAccount=\u00a7a{0} foi adicionado em sua conta. -addedToOthersAccount=\u00a7a{0} foi adicionado na conta de {1}\u00a7a. Novo saldo\: {2} +action=\u00A75* {0} \u00A75{1} +addedToAccount=\u00A7a{0} foi adicionado em sua conta. +addedToOthersAccount=\u00A7a{0} foi adicionado na conta de {1}\u00A7a. Novo saldo\: {2} adventure=aventura alertBroke=quebrado\: -alertFormat=\u00a73[{0}] \u00a7r {1} \u00a76 {2} em\: {3} +alertFormat=\u00A73[{0}] \u00A7r {1} \u00A76 {2} em\: {3} alertPlaced=colocado\: alertUsed=usado\: -antiBuildBreak=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para quebrar\u00a7c {0} \u00a74blocos aqui. -antiBuildCraft=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para create\u00a7c {0}\u00a74. -antiBuildDrop=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para dropar\u00a7c {0}\u00a74. -antiBuildInteract=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para interagir com\u00a7c {0}\u00a74. -antiBuildPlace=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para colocar\u00a7c {0} \u00a74aqui. -antiBuildUse=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para usar\u00a7c {0}\u00a74. -autoAfkKickReason=Voc\u00ea foi kickado por ficar parado por mais de {0} minutos. -backAfterDeath=\u00a76Digite /back para retornar onde morreu. -backUsageMsg=\u00a76Voltando ao local anterior. -backupDisabled=\u00a74Um script externo n\u00e3o foi configurado. -backupFinished=\u00a76Backup acabou. -backupStarted=\u00a76Backup Iniciado. -balance=\u00a7aSaldo\:\u00a7c {0} -balanceOther=\u00a7aSaldo de {0}\u00a7a\:\u00a7c {1} -balanceTop=\u00a76Mais ricos ({0}) -banExempt=\u00a74Voc\u00ea n\u00e3o pode banir este jogador. -banFormat=\u00a74Banido por\:\n\u00a7r{0} -bed=\u00a7ocama\u00a7r -bedMissing=\u00a74Sua cama n\u00e3o foi definida, est\u00e1 corrompida ou est\u00e1 bloqueada. -bedNull=\u00a7mcama\u00a7r -bedSet=\u00a76Cama definida\! -bigTreeFailure=\u00a74Falha ao gerar uma Arvore grande. Tente novamente na grama ou na terra. -bigTreeSuccess=\u00a76Arvore grande gerada. -blockList=\u00a76Essentials passou os seguintes comandos para outro plugin\: -bookAuthorSet=\u00a76Autor do livro definido para {0}. -bookLocked=\u00a76O livro est\u00e1 trancado agora. -bookTitleSet=\u00a76T\u00edtulo do livro definido para {0}. -broadcast=\u00a7r\u00a76 [\u00a74Transmiss\u00e3o\u00a76] \u00a7a {0} -buildAlert=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para construir. -bukkitFormatChanged=Formato da versao do Bukkit alterada. Versao n\u00e3o verificada. -burnMsg=\u00a76Voc\u00ea colocou fogo em\u00a7c {0} \u00a76por\u00a7c {1} segundos\u00a76. -canTalkAgain=\u00a76Voc\u00ea pode falar novamente. -cannotStackMob=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para criar varios mobs. -cantFindGeoIpDB=n\u00e3o foi Poss\u00edvel encontrar dados de GeoIP\! +antiBuildBreak=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para quebrar\u00A7c {0} \u00A74blocos aqui. +antiBuildCraft=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para create\u00A7c {0}\u00A74. +antiBuildDrop=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para dropar\u00A7c {0}\u00A74. +antiBuildInteract=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para interagir com\u00A7c {0}\u00A74. +antiBuildPlace=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para colocar\u00A7c {0} \u00A74aqui. +antiBuildUse=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para usar\u00A7c {0}\u00A74. +autoAfkKickReason=Voc\u00EA foi kickado por ficar parado por mais de {0} minutos. +backAfterDeath=\u00A76Digite /back para retornar onde morreu. +backUsageMsg=\u00A76Voltando ao local anterior. +backupDisabled=\u00A74Um script externo n\u00E3o foi configurado. +backupFinished=\u00A76Backup acabou. +backupStarted=\u00A76Backup iniciado. +balance=\u00A7aSaldo\:\u00A7c {0} +balanceOther=\u00A7aSaldo de {0}\u00A7a\:\u00A7c {1} +balanceTop=\u00A76Mais ricos ({0}) +banExempt=\u00A74Voc\u00EA n\u00E3o pode banir este jogador. +banFormat=\u00A74Banido por\:\n\u00A7r{0} +bed=\u00A7ocama\u00A7r +bedMissing=\u00A74Sua cama n\u00E3o foi definida, est\u00E1 corrompida ou est\u00E1 bloqueada. +bedNull=\u00A7mcama\u00A7r +bedSet=\u00A76Cama definida\! +bigTreeFailure=\u00A74Falha ao gerar uma \u00E1rvore grande. Tente novamente na grama ou na terra. +bigTreeSuccess=\u00A76\u00C1rvore grande gerada. +blockList=\u00A76Essentials passou os seguintes comandos para outro plugin\: +bookAuthorSet=\u00A76Autor do livro definido para {0}. +bookLocked=\u00A76O livro est\u00E1 trancado agora. +bookTitleSet=\u00A76T\u00EDtulo do livro definido para {0}. +broadcast=\u00A7r\u00A76 [\u00A74Transmiss\u00E3o\u00A76] \u00A7a {0} +buildAlert=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para construir. +bukkitFormatChanged=Formato da vers\u00E3o do Bukkit alterada. Vers\u00E3o n\u00E3o verificada. +burnMsg=\u00A76Voc\u00EA colocou fogo em\u00A7c {0} \u00A76por\u00A7c {1} segundos\u00A76. +canTalkAgain=\u00A76Voc\u00EA pode falar novamente. +cannotStackMob=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para criar varios mobs. +cantFindGeoIpDB=N\u00E3o foi poss\u00EDvel encontrar dados de GeoIP\! cantReadGeoIpDB=Falha ao ler o banco de dados do GeoIP\! -cantSpawnItem=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para gerar o item\u00a7c {0}\u00a74. +cantSpawnItem=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para gerar o item\u00A7c {0}\u00A74. chatTypeAdmin=[A] chatTypeLocal=[L] -chatTypeSpy=[Espiao] -cleaned=Os arquivos do usuario foram apagados. -cleaning=Apagando arquivos do usuario. +chatTypeSpy=[Espi\u00E3o] +cleaned=Os arquivos do usu\u00E1rio foram apagados. +cleaning=Apagando arquivos do usu\u00E1rio. commandFailed=Comando {0} falhou\: commandHelpFailedForPlugin=Erro ao adquirir ajuda do plugin\: {0} -commandNotLoaded=\u00a74Comando {0} est\u00e1 carregado incorretamente. -compassBearing=\u00a76Apontado para\: {0} ({1} graus). +commandNotLoaded=\u00A74Comando {0} est\u00E1 carregado incorretamente. +compassBearing=\u00A76Apontado para\: {0} ({1} graus). configFileMoveError=Falha ao mover a config.yml para o local do backup. -configFileRenameError=Falha ao renomear o arquivo temporario para config.yml. -connectedPlayers=\u00a76Jogadores conectados\u00a7r +configFileRenameError=Falha ao renomear o arquivo tempor\u00E1rio para config.yml. +connectedPlayers=\u00A76Jogadores conectados\u00A7r connectionFailed=Falha ao conectar. -cooldownWithMessage=\u00a74Tempo restante\: {0} -corruptNodeInConfig=\u00a74Not\u00edcia\: Seu arquivo de configuracao est\u00e1 corrompido ({0}). -couldNotFindTemplate=\u00a74Template n\u00e3o encontrado {0} -creatingConfigFromTemplate=Criando configuracao baseado no modelo\: {0} -creatingEmptyConfig=Criando configuracao vazia\: {0} +cooldownWithMessage=\u00A74Tempo restante\: {0} +corruptNodeInConfig=\u00A74Not\u00EDcia\: Seu arquivo de configura\u00E7\u00E3o est\u00E1 corrompido ({0}). +couldNotFindTemplate=\u00A74Template n\u00E3o encontrado {0} +creatingConfigFromTemplate=Criando configura\u00E7\u00E3o baseado no modelo\: {0} +creatingEmptyConfig=Criando configura\u00E7\u00E3o vazia\: {0} creative=criativo currency={0}{1} -currentWorld=\u00a76Mundo Atual\:\u00a7c {0} +currentWorld=\u00A76Mundo Atual\:\u00A7c {0} day=dia days=dias -defaultBanReason=Sem razao\! -deleteFileError=n\u00e3o p\u00b4de deletar o arquivo\: {0} -deleteHome=\u00a76Casa\u00a7c {0} \u00a76foi removida. -deleteJail=\u00a76Cadeia\u00a7c {0} \u00a76foi removida. -deleteWarp=\u00a76Warp\u00a7c {0} \u00a76foi removido. -deniedAccessCommand=\u00a7c{0} \u00a74foi negado a utilizar o comando. -denyBookEdit=\u00a74Voc\u00ea n\u00e3o pode destravar este livro. -denyChangeAuthor=\u00a74Voc\u00ea n\u00e3o pode mudar o autor deste livro. -denyChangeTitle=\u00a74Voc\u00ea n\u00e3o pode mudar o titulo deste livro. -depth=\u00a76Voc\u00ea est\u00e1 no nivel do mar. -depthAboveSea=\u00a76Voc\u00ea est\u00e1 a\u00a7c {0} \u00a76bloco(s) acima do n\u00edvel do mar. -depthBelowSea=\u00a76Voc\u00ea est\u00e1 a\u00a7c {0} \u00a76bloco(s) abaixo do n\u00edvel do mar. -destinationNotSet=Destino n\u00e3o definido\! -disableUnlimited=\u00a76permiss\u00e3o de colocar coisas ilimitadas desativada para\u00a7c {0} \u00a76por {1}. +defaultBanReason=Sem raz\u00E3o\! +deleteFileError=N\u00E3o p\u00B4de deletar o arquivo\: {0} +deleteHome=\u00A76Casa\u00A7c {0} \u00A76foi removida. +deleteJail=\u00A76Cadeia\u00A7c {0} \u00A76foi removida. +deleteWarp=\u00A76Warp\u00A7c {0} \u00A76foi removido. +deniedAccessCommand=\u00A7c{0} \u00A74foi negado a utilizar o comando. +denyBookEdit=\u00A74Voc\u00EA n\u00E3o pode destravar este livro. +denyChangeAuthor=\u00A74Voc\u00EA n\u00E3o pode mudar o autor deste livro. +denyChangeTitle=\u00A74Voc\u00EA n\u00E3o pode mudar o t\u00EDtulo deste livro. +depth=\u00A76Voc\u00EA est\u00E1 no n\u00EDvel do mar. +depthAboveSea=\u00A76Voc\u00EA est\u00E1 a\u00A7c {0} \u00A76bloco(s) acima do n\u00EDvel do mar. +depthBelowSea=\u00A76Voc\u00EA est\u00E1 a\u00A7c {0} \u00A76bloco(s) abaixo do n\u00EDvel do mar. +destinationNotSet=Destino n\u00E3o definido\! +disableUnlimited=\u00A76Permiss\u00E3o de colocar coisas ilimitadas desativada para\u00A7c {0} \u00A76por {1}. disabled=desativou -disabledToSpawnMob=\u00a74Spawnar este mob foi desativado na configuracao. -distance=\u00a76Distancia\: {0} -dontMoveMessage=\u00a76Teleporte vai come\u00e7ar em\u00a7c {0}\u00a76. n\u00e3o se mova. -downloadingGeoIp=Baixando o banco de dados GeoIP... isso pode levar um tempo (pa\u00eds\: 0.6 MB, cidade\: 20MB) -duplicatedUserdata=Dados do usuario dupliacado\: {0} e {1}. -durability=\u00a76Esse ferramenta ainda pode ser usada mais \u00a7c{0}\u00a76 vezes -editBookContents=\u00a7eVoc\u00ea pode agora editar o conteudo deste livro. -enableUnlimited=\u00a76Dando quantidade ilimidada de\u00a7c {0} \u00a76para \u00a7c{1}\u00a76. +disabledToSpawnMob=\u00A74Spawnar este mob foi desativado na configura\u00E7\u00E3o. +distance=\u00A76Dist\u00E2ncia\: {0} +dontMoveMessage=\u00A76Teleporte vai come\u00E7ar em\u00A7c {0}\u00A76. n\u00E3o se mova. +downloadingGeoIp=Baixando o banco de dados GeoIP... isso pode levar um tempo (pa\u00EDs\: 0.6 MB, cidade\: 20MB) +duplicatedUserdata=Dados do usu\u00E1rio duplicado\: {0} e {1}. +durability=\u00A76Essa ferramenta ainda pode ser usada mais \u00A7c{0}\u00A76 vezes +editBookContents=\u00A7eVoc\u00EA pode agora editar o conte\u00FAdo deste livro. +enableUnlimited=\u00A76Dando quantidade ilimidada de\u00A7c {0} \u00A76para \u00A7c{1}\u00A76. enabled=ativou -enchantmentApplied=\u00a76O encantamento\u00a7c {0} \u00a76foi aplicado ao item em sua mao. -enchantmentNotFound=\u00a74Encantamento n\u00e3o encontrado\! -enchantmentPerm=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para\u00a7c {0}\u00a74. -enchantmentRemoved=\u00a76O encantamento\u00a7c {0} \u00a76foi removido do item em sua mao. -enchantments=\u00a76Encantamentos\:\u00a7r {0} +enchantmentApplied=\u00A76O encantamento\u00A7c {0} \u00A76foi aplicado ao item em sua m\u00E3o. +enchantmentNotFound=\u00A74Encantamento n\u00E3o encontrado\! +enchantmentPerm=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para\u00A7c {0}\u00A74. +enchantmentRemoved=\u00A76O encantamento\u00A7c {0} \u00A76foi removido do item em sua m\u00E3o. +enchantments=\u00A76Encantamentos\:\u00A7r {0} errorCallingCommand=Erro ao usar o comando /{0} -errorWithMessage=\u00a7cErro\:\u00a74 {0} -essentialsHelp1=O arquivo est\u00e1 corrompido e o Essentials n\u00e3o consegue abr\u00ed-lo. Essentials desativado. Se voc\u00aa n\u00e3o consegue arrumar o arquivo sozinho, acesse http\://tiny.cc/EssentialsChat -essentialsHelp2=O arquivo est\u00e1 corrompido e o Essentials n\u00e3o consegue abr\u00ed-lo. Essentials desativado. Se voc\uuea n\u00e3o consegue arrumar o arquivo sozinho, digite /essentialshelp no jogo ou acesse http\://tiny.cc/EssentialsChat -essentialsReload=\u00a76Essentials recarregado\u00a7c {0}. -exp=\u00a7c{0} \u00a76tem\u00a7c {1} \u00a76de exp (n\u00edvel\u00a7c {2}\u00a76) e precisa de\u00a7c {3} \u00a76mais exp para subir de n\u00edvel. -expSet=\u00a7c{0} \u00a76agora tem\u00a7c {1} \u00a76de exp. -extinguish=\u00a76Voc\u00ea se extinguiu. -extinguishOthers=\u00a76Voc\u00ea extinguiu {0}\u00a76. -failedToCloseConfig=Falha ao fechar a configuracao {0}. -failedToCreateConfig=Falha ao criar a configuracao {0}. -failedToWriteConfig=Falha ao escrever a configuracao {0}. -false=\u00a74falso\u00a7r -feed=\u00a76Seu apetite foi saciado. -feedOther=\u00a76Voc\u00ea saciou a fome de {0}\u00a76. +errorWithMessage=\u00A7cErro\:\u00A74 {0} +essentialsHelp1=O arquivo est\u00E1 corrompido e o Essentials n\u00E3o consegue abri-lo. Essentials desativado. Se voc\u00AA n\u00E3o consegue arrumar o arquivo sozinho, acesse http\://tiny.cc/EssentialsChat +essentialsHelp2=O arquivo est\u00E1 corrompido e o Essentials n\u00E3o consegue abri-lo. Essentials desativado. Se voc\uuea n\u00E3o consegue arrumar o arquivo sozinho, digite /essentialshelp no jogo ou acesse http\://tiny.cc/EssentialsChat +essentialsReload=\u00A76Essentials recarregado\u00A7c {0}. +exp=\u00A7c{0} \u00A76tem\u00A7c {1} \u00A76de exp (n\u00EDvel\u00A7c {2}\u00A76) e precisa de\u00A7c {3} \u00A76mais exp para subir de n\u00EDvel. +expSet=\u00A7c{0} \u00A76agora tem\u00A7c {1} \u00A76de exp. +extinguish=\u00A76Voc\u00EA se extinguiu. +extinguishOthers=\u00A76Voc\u00EA extinguiu {0}\u00A76. +failedToCloseConfig=Falha ao fechar a configura\u00E7\u00E3o {0}. +failedToCreateConfig=Falha ao criar a configura\u00E7\u00E3o {0}. +failedToWriteConfig=Falha ao escrever a configura\u00E7\u00E3o {0}. +false=\u00A74falso\u00A7r +feed=\u00A76Seu apetite foi saciado. +feedOther=\u00A76Voc\u00EA saciou a fome de {0}\u00A76. fileRenameError=Falha ao renomear o arquivo {0}\! -fireworkColor=\u00a74Parametros inseridos para criar um fogo de artif\u00edcio inv\u00e1lidos. Defina um cor antes. -fireworkEffectsCleared=\u00a76Todos os efeitos deste pack foram removidos. -fireworkSyntax=\u00a76Parametros do fogo de artif\u00edcio\:\u00a7c color\: [fade\:] [shape\:] [effect\:]\n\u00a76Para usar multiplas cores ou efeitos, separe-os entre v\u00edrgulas\: \u00a7cred,blue,pink\n\u00a76Formatos\:\u00a7c star, ball, large, creeper, burst \u00a76Efeitos\:\u00a7c trail, twinkle. -flyMode=\u00a76Modo Voar foi\u00a7c {0} \u00a76para {1}\u00a76. +fireworkColor=\u00A74Par\u00E2metros inseridos para criar um fogo de artif\u00EDcio inv\u00E1lidos. Defina uma cor antes. +fireworkEffectsCleared=\u00A76Todos os efeitos deste pack foram removidos. +fireworkSyntax=\u00A76Par\u00E2metros do fogo de artif\u00EDcio\:\u00A7c color\: [fade\:] [shape\:] [effect\:]\n\u00A76Para usar multiplas cores ou efeitos, separe-os entre v\u00EDrgulas\: \u00A7cred,blue,pink\n\u00A76Formatos\:\u00A7c star, ball, large, creeper, burst \u00A76Efeitos\:\u00A7c trail, twinkle. +flyMode=\u00A76Modo Voar foi\u00A7c {0} \u00A76para {1}\u00A76. flying=voando -foreverAlone=\u00a74Voc\u00ea n\u00e3o tem ningu\u00e9m a quem responder. -fullStack=\u00a74Voc\u00ea j\u00e1 tem um pack completo. -gameMode=\u00a76Modo de jogo\u00a7c {0} \u00a76definido para {1}\u00a76. -gcWorld=\u00a76 {0} "\u00a7c {1} \u00a76"\: \u00a7c {2} \u00a76 peda\u00e7os, \u00a7c {3} \u00a76 unidades, \u00a7c {4} \u00a76 telhas. -gcfree=\u00a76Mem\u00b3ria livre\:\u00a7c {0} MB. -gcmax=\u00a76Mem\u00b3ria m\u00e1xima\:\u00a7c {0} MB. -gctotal=\u00a76Mem\u00b3ria alocada\:\u00a7c {0} MB. -geoIpUrlEmpty=URL de download do GeoIP est\u00e1 vazio. -geoIpUrlInvalid=URL de download do GeoIP inv\u00e1lido. -geoipJoinFormat=\u00a76Jogador \u00a7c{0} \u00a76vem de \u00a7c{1}\u00a76. -giveSpawn=\u00a76Dando\u00a7c {0}\u00a7c {1} \u00a76para\u00a7c {2}\u00a76. -godDisabledFor=\u00a7cdesabilitado\u00a76 para\u00a7c {0} -godEnabledFor=\u00a7aativado\u00a76 para\u00a7c {0}. -godMode=\u00a76Modo deus\u00a7c {0}\u00a76. -groupDoesNotExist=\u00a74n\u00e3o ha ningu\u00e9m online nesse grupo\! -groupNumber=\u00a7c{0}\u00a7f online, para a lista completa\:\u00a7c /{1} {2} -hatArmor=\u00a74Voc\u00ea n\u00e3o pode usar esse item como chapeu\! -hatEmpty=\u00a74Voc\u00ea n\u00e3o est\u00e1 usando chapeu. -hatFail=\u00a74Voc\u00ea deve ter algo em sua mao para vestir. -hatPlaced=\u00a76Aproveite seu novo chapeu\! -hatRemoved=\u00a76Seu chapeu foi removido. -haveBeenReleased=\u00a76Voc\u00ea foi liberado. -heal=\u00a76Voc\u00ea foi curado. -healDead=\u00a74Voc\u00ea n\u00e3o pode curar alguem que est\u00e1 morto\! -healOther=\u00a7c{0}\u00a76foi curado. +foreverAlone=\u00A74Voc\u00EA n\u00E3o tem ningu\u00E9m a quem responder. +fullStack=\u00A74Voc\u00EA j\u00E1 tem um pack completo. +gameMode=\u00A76Modo de jogo\u00A7c {0} \u00A76definido para {1}\u00A76. +gcWorld=\u00A76 {0} "\u00A7c {1} \u00A76"\: \u00A7c {2} \u00A76 peda\u00E7os, \u00A7c {3} \u00A76 unidades, \u00A7c {4} \u00A76 telhas. +gcfree=\u00A76Mem\u00B3ria livre\:\u00A7c {0} MB. +gcmax=\u00A76Mem\u00B3ria m\u00E1xima\:\u00A7c {0} MB. +gctotal=\u00A76Mem\u00B3ria alocada\:\u00A7c {0} MB. +geoIpUrlEmpty=URL de download do GeoIP est\u00E1 vazio. +geoIpUrlInvalid=URL de download do GeoIP inv\u00E1lido. +geoipJoinFormat=\u00A76Jogador \u00A7c{0} \u00A76vem de \u00A7c{1}\u00A76. +giveSpawn=\u00A76Dando\u00A7c {0}\u00A7c {1} \u00A76para\u00A7c {2}\u00A76. +godDisabledFor=\u00A7cDesativado\u00A76 para\u00A7c {0} +godEnabledFor=\u00A7aAtivado\u00A76 para\u00A7c {0}. +godMode=\u00A76Modo deus\u00A7c {0}\u00A76. +groupDoesNotExist=\u00A74N\u00E3o h\u00E1 ningu\u00E9m online nesse grupo\! +groupNumber=\u00A7c{0}\u00A7f online, para a lista completa\:\u00A7c /{1} {2} +hatArmor=\u00A74Voc\u00EA n\u00E3o pode usar esse item como chap\u00E9u\! +hatEmpty=\u00A74Voc\u00EA n\u00E3o est\u00E1 usando chap\u00E9u. +hatFail=\u00A74Voc\u00EA deve ter algo em sua m\u00E3o para vestir. +hatPlaced=\u00A76Aproveite seu novo chap\u00E9u\! +hatRemoved=\u00A76Seu chap\u00E9u foi removido. +haveBeenReleased=\u00A76Voc\u00EA foi liberado. +heal=\u00A76Voc\u00EA foi curado. +healDead=\u00A74Voc\u00EA n\u00E3o pode curar alguem que est\u00E1 morto\! +healOther=\u00A7c{0}\u00A76foi curado. helpConsole=Para ver ajuda pelo console, digite ?. -helpFrom=\u00a76Comandos de {0}\: -helpLine=\u00a76/{0}\u00a7r\: {1} -helpMatching=\u00a76Comandos correspondidos com "\u00a7c{0}\u00a76"\: -helpOp=\u00a74[HelpOP]\u00a76 {0}\: \u00a7r {1} -helpPlugin=\u00a74{0}\u00a7r\: Ajuda do Plugin\: /help {1} -holdBook=\u00a74Voc\u00ea n\u00e3o est\u00e1 segurando um livro que possa escrever. -holdFirework=\u00a74Voc\u00ea deve est\u00e1r segurando um fogo de artif\u00edcio para adicionar efeitos. -holdPotion=\u00a74Voc\u00ea deve est\u00e1r segurando uma pocao para aplicar efeitos para ela. -holeInFloor=\u00a74Buraco no chao\! -homeSet=\u00a76Casa definida. -homes=\u00a76Casas\:\u00a7r {0} +helpFrom=\u00A76Comandos de {0}\: +helpLine=\u00A76/{0}\u00A7r\: {1} +helpMatching=\u00A76Comandos correspondidos com "\u00A7c{0}\u00A76"\: +helpOp=\u00A74[HelpOP]\u00A76 {0}\: \u00A7r {1} +helpPlugin=\u00A74{0}\u00A7r\: Ajuda do Plugin\: /help {1} +holdBook=\u00A74Voc\u00EA n\u00E3o est\u00E1 segurando um livro que possa escrever. +holdFirework=\u00A74Voc\u00EA deve est\u00E1r segurando um fogo de artif\u00EDcio para adicionar efeitos. +holdPotion=\u00A74Voc\u00EA deve est\u00E1r segurando uma po\u00E7\u00E3o para aplicar efeitos para ela. +holeInFloor=\u00A74Buraco no ch\u00E3o\! +homeSet=\u00A76Casa definida. +homes=\u00A76Casas\:\u00A7r {0} hour=hora hours=horas -ignoredList=\u00a76Ignorado\:\u00a7r {0} -ignorePlayer=\u00a76Voc\u00ea est\u00e1 ignorando agora o jogador\u00a7c {0} \u00a76. +ignoredList=\u00A76Ignorado\:\u00A7r {0} +ignorePlayer=\u00A76Voc\u00EA est\u00E1 ignorando agora o jogador\u00A7c {0} \u00A76. illegalDate=Formato de data ilegal. -infoChapter=\u00a76Selecione o Cap\u00edtulo\: -infoChapterPages=\u00a7e ---- \u00a76{0} \u00a7e--\u00a76 P\u00e1gina \u00a7c{1}\u00a76 de \u00a7c{2} \u00a7e---- -infoPages=\u00a7e ---- \u00a76{2} \u00a7e--\u00a76 Pagina \u00a7c{0}\u00a76/\u00a7c{1} \u00a7e---- -infoUnknownChapter=\u00a74Cap\u00edtulo Desconhecido. -insufficientFunds=\u00a74Dinheiro insuficiente. -invalidCharge=\u00a74Argumento inv\u00e1lido. -invalidFireworkFormat=\u00a74A op\u00e7\u00e3o \u00a7c{0} \u00a74n\u00e3o \u00e9 v\u00e1lida para \u00a7c{1}\u00a74. -invalidHome=\u00a74Casa\u00a7c {0} \u00a74n\u00e3o existe\! -invalidHomeName=\u00a74Nome de casa inv\u00e1lido\! -invalidMob=\u00a74Tipo de mob inv\u00e1lido. -invalidNumber=Numero inv\u00e1lido. -invalidPotion=\u00a74Pocao inv\u00e1lida. -invalidPotionMeta=\u00a74Meta inv\u00e1lida de pocao\: \u00a7c{0}\u00a74. -invalidSignLine=\u00a74Linha\u00a7c {0} \u00a74na placa est\u00e1 inv\u00e1lida. -invalidWarpName=\u00a74Nome de warp inv\u00e1lido\! -invalidWorld=\u00a74Mundo inv\u00e1lido. -is=e -itemCannotBeSold=\u00a74Esse item n\u00e3o pode ser vendido para o servidor. -itemMustBest\u00e1cked=\u00a74O item deve ser trocado em packs. A quantidade de 2 deveria ser 2 packs, etc. -itemNames=\u00a76Nomes pequenos para o item\:\u00a7r {0} -itemNotEnough1=\u00a74Voc\u00ea n\u00e3o itens o suficiente para vender. -itemNotEnough2=\u00a76Se voc\uuea quis vender todos os seus itens de um tipo, digite /sell nomedoitem. -itemNotEnough3=\u00a76/sell nomedoitem -1 ira vender tudo menos um item, etc. -itemSellAir=Voc\u00earealmente tentou vender Ar? Coloque um item em sua mao. -itemSold=\u00a7aVendido por \u00a7c{0} \u00a7a({1} {2} a {3} cada). -itemSoldConsole=\u00a7a{0} \u00a7avendeu {1} por \u00a7a{2} \u00a7a({3} itens a {4} each). -itemSpawn=\u00a76Dando\u00a7c {0}\u00a7c {1} -itemType=\u00a76Item\:\u00a7c {0} \u00a76-\u00a7c {1} -itemsCsvNotLoaded=n\u00e3o p\u00b4de carregar o items.csv\! -jailAlreadyIncarcerated=\u00a74Essa pessoa j\u00e1 est\u00e1 na cadeia\:\u00a7c {0} -jailMessage=\u00a74Voc\u00ea foi condenado. Pense bem antes de fazer o que fez. -jailNotExist=\u00a74Essa cadeia n\u00e3o existe. -jailReleased=\u00a76Jogador \u00a7c{0}\u00a76 liberado. -jailReleasedPlayerNotify=\u00a76Voc\u00ea foi liberado\! -jailSentenceExtended=\u00a76Tempo na cadeia extendido para\: {0} -jailSet=\u00a76Cadeia\u00a7c {0} \u00a76foi definida. -jumpError=\u00a74Isso machucaria o cerebro do computador. +infoChapter=\u00A76Selecione o Cap\u00EDtulo\: +infoChapterPages=\u00A7e ---- \u00A76{0} \u00A7e--\u00A76 P\u00E1gina \u00A7c{1}\u00A76 de \u00A7c{2} \u00A7e---- +infoPages=\u00A7e ---- \u00A76{2} \u00A7e--\u00A76 P\u00E1gina \u00A7c{0}\u00A76/\u00A7c{1} \u00A7e---- +infoUnknownChapter=\u00A74Cap\u00EDtulo desconhecido. +insufficientFunds=\u00A74Dinheiro insuficiente. +invalidCharge=\u00A74Argumento inv\u00E1lido. +invalidFireworkFormat=\u00A74A op\u00E7\u00E3o \u00A7c{0} \u00A74n\u00E3o \u00E9 v\u00E1lida para \u00A7c{1}\u00A74. +invalidHome=\u00A74Casa\u00A7c {0} \u00A74n\u00E3o existe\! +invalidHomeName=\u00A74Nome de casa inv\u00E1lido\! +invalidMob=\u00A74Tipo de mob inv\u00E1lido. +invalidNumber=Numero inv\u00E1lido. +invalidPotion=\u00A74Po\u00E7\u00E3o inv\u00E1lida. +invalidPotionMeta=\u00A74Meta inv\u00E1lida de po\u00E7\u00E3o\: \u00A7c{0}\u00A74. +invalidSignLine=\u00A74Linha\u00A7c {0} \u00A74na placa est\u00E1 inv\u00E1lida. +invalidWarpName=\u00A74Nome de warp inv\u00E1lido\! +invalidWorld=\u00A74Mundo inv\u00E1lido. +is=\u00E9 +itemCannotBeSold=\u00A74Esse item n\u00E3o pode ser vendido para o servidor. +itemMustBeStacked=\u00A74O item deve ser trocado em packs. A quantidade de 2 deveria ser 2 packs, etc. +itemNames=\u00A76Nomes pequenos para o item\:\u00A7r {0} +itemNotEnough1=\u00A74Voc\u00EA n\u00E3o tem itens suficientes para vender. +itemNotEnough2=\u00A76Se voc\uuea quis vender todos os seus itens de um tipo, digite /sell nomedoitem. +itemNotEnough3=\u00A76/sell nomedoitem -1 ira vender tudo menos um item, etc. +itemSellAir=Voc\u00EA realmente tentou vender Ar? Coloque um item em sua m\u00E3o. +itemSold=\u00A7aVendido por \u00A7c{0} \u00A7a({1} {2} a {3} cada). +itemSoldConsole=\u00A7a{0} \u00A7avendeu {1} por \u00A7a{2} \u00A7a({3} itens a {4} cada). +itemSpawn=\u00A76Dando\u00A7c {0}\u00A7c {1} +itemType=\u00A76Item\:\u00A7c {0} \u00A76-\u00A7c {1} +itemsCsvNotLoaded=N\u00E3o p\u00B4de carregar o items.csv\! +jailAlreadyIncarcerated=\u00A74Essa pessoa j\u00E1 est\u00E1 na cadeia\:\u00A7c {0} +jailMessage=\u00A74Voc\u00EA foi condenado. Pense bem antes de fazer o que fez. +jailNotExist=\u00A74Essa cadeia n\u00E3o existe. +jailReleased=\u00A76Jogador \u00A7c{0}\u00A76 liberado. +jailReleasedPlayerNotify=\u00A76Voc\u00EA foi liberado\! +jailSentenceExtended=\u00A76Tempo na cadeia extendido para\: {0} +jailSet=\u00A76Cadeia\u00A7c {0} \u00A76foi definida. +jumpError=\u00A74Isso machucaria o c\u00E9rebro do computador. kickDefault=Kickado do servidor. -kickExempt=\u00a74Voc\u00ea n\u00e3o pode kickar essa pessoa. -kickedAll=\u00a74Todos os jogadores foram kickados. -kill=\u00a76Matou\u00a7c {0}\u00a76. -killExempt=\u00a74Voc\u00ea n\u00e3o pode matar \u00a7c{0}\u00a74. -kitCost=\ \u00a77\u00a7o({0})\u00a7r -kitError2=\u00a74Esse kit n\u00e3o existe ou foi definido impropriamente. -kitError=\u00a74n\u00e3o ha kits validos. -kitGiveTo=\u00a76Dando o kit\u00a7c {0}\u00a76 para \u00a7c{1}\u00a76. -kitInvFull=\u00a74Seu inventario est\u00e1 cheio, colocando o kit no chao. -kitNotFound=\u00a74Esse kit n\u00e3o existe. -kitOnce=\u00a74Voc\u00ea n\u00e3o pode usar esse kit novamente. -kitReceive=\u00a76Recebido kit\u00a7c {0}\u00a76. -kitTimed=\u00a74Voc\u00ea n\u00e3o pode usar esse kit novamente por\u00a7c {0}\u00a74. -kits=\u00a76Kits\:\u00a7r {0} -leatherSyntax=\u00a76Sintaxe das Cores do Couro\: color\:,, ex\: color\:255,0,0. -lightningSmited=\u00a76Foste ferido\! -lightningUse=\u00a76Castigando\u00a7c {0} -listAfkTag=\u00a77[Ausente]\u00a7r -listAmount=\u00a76Ha \u00a7c{0}\u00a76 de no maximo \u00a7c{1}\u00a76 jogadores online. -listAmountHidden=\u00a76Ha \u00a7c{0}\u00a76/{1}\u00a76 de no maximo \u00a7c{2}\u00a76 jogadores online. -listGroupTag=\u00a76{0}\u00a7r\: \u00a7r -listHiddenTag=\u00a77[ESCONDIDO]\u00a7r -loadWarpError=\u00a74Falha ao carregar o warp {0}. +kickExempt=\u00A74Voc\u00EA n\u00E3o pode kickar essa pessoa. +kickedAll=\u00A74Todos os jogadores foram kickados. +kill=\u00A76Matou\u00A7c {0}\u00A76. +killExempt=\u00A74Voc\u00EA n\u00E3o pode matar \u00A7c{0}\u00A74. +kitCost=\ \u00A77\u00A7o({0})\u00A7r +kitError2=\u00A74Esse kit n\u00E3o existe ou foi definido impropriamente. +kitError=\u00A74N\u00E3o ha kits v\u00E1lidos. +kitGiveTo=\u00A76Dando o kit\u00A7c {0}\u00A76 para \u00A7c{1}\u00A76. +kitInvFull=\u00A74Seu invent\u00E1rio est\u00E1 cheio, colocando o kit no ch\u00E3o. +kitNotFound=\u00A74Esse kit n\u00E3o existe. +kitOnce=\u00A74Voc\u00EA n\u00E3o pode usar esse kit novamente. +kitReceive=\u00A76Recebido kit\u00A7c {0}\u00A76. +kitTimed=\u00A74Voc\u00EA n\u00E3o pode usar esse kit novamente por\u00A7c {0}\u00A74. +kits=\u00A76Kits\:\u00A7r {0} +leatherSyntax=\u00A76Sintaxe das Cores do Couro\: color\:,, ex\: color\:255,0,0. +lightningSmited=\u00A76Foste ferido\! +lightningUse=\u00A76Castigando\u00A7c {0} +listAfkTag=\u00A77[Ausente]\u00A7r +listAmount=\u00A76H\u00E1 \u00A7c{0}\u00A76 de no m\u00E1ximo \u00A7c{1}\u00A76 jogadores online. +listAmountHidden=\u00A76H\u00E1 \u00A7c{0}\u00A76/{1}\u00A76 de no m\u00E1ximo \u00A7c{2}\u00A76 jogadores online. +listGroupTag=\u00A76{0}\u00A7r\: \u00A7r +listHiddenTag=\u00A77[ESCONDIDO]\u00A7r +loadWarpError=\u00A74Falha ao carregar o warp {0}. localFormat=[L]<{0}> {1} -mailClear=\u00a76Para marcar seus e-mails como lidos, digite\u00a7c /mail clear\u00a76. -mailCleared=\u00a76E-mails Removidos\! -mailSent=\u00a76E-mail enviado\! -markMailAsRead=\u00a76Para marcar seus e-mails como lidos, digite\u00a7c /mail clear\u00a76. -markedAsAway=\u00a76Voc\u00ea est\u00e1 agora marcado como ausente. -markedAsNotAway=\u00a76Voc\u00ea n\u00e3o est\u00e1 mais marcado como ausente. -matchingIPAddress=\u00a76Os seguintes jogadores logaram com esse endereco de IP\: -maxHomes=\u00a74Voc\u00ea n\u00e3o pode definir mais de\u00a7c {0} \u00a74casas. -mayNotJail=\u00a74Voc\u00ea n\u00e3o pode prender essa pessoa\! +mailClear=\u00A76Para marcar seus e-mails como lidos, digite\u00A7c /mail clear\u00A76. +mailCleared=\u00A76E-mails removidos\! +mailSent=\u00A76E-mail enviado\! +markMailAsRead=\u00A76Para marcar seus e-mails como lidos, digite\u00A7c /mail clear\u00A76. +markedAsAway=\u00A76Voc\u00EA est\u00E1 agora marcado como ausente. +markedAsNotAway=\u00A76Voc\u00EA n\u00E3o est\u00E1 mais marcado como ausente. +matchingIPAddress=\u00A76Os seguintes jogadores logaram com esse endereco de IP\: +maxHomes=\u00A74Voc\u00EA n\u00E3o pode definir mais de\u00A7c {0} \u00A74casas. +mayNotJail=\u00A74Voc\u00EA n\u00E3o pode prender essa pessoa\! me=eu minute=minuto minutes=minutos -missingItems=\u00a74Voc\u00ea n\u00e3o tem \u00a7c{0}x {1}\u00a74. -mobSpawnError=\u00a74Erro ao mudar o mob spawner. -mobSpawnLimit=Quantidade de mobs aumentada ate o limite do servidor. -mobSpawnTarget=\u00a74Alvo deve ser um mob spawner. -mobsAvailable=\u00a76Mobs\:\u00a7r {0} -moneyRecievedFrom=\u00a7aVoc\u00ea recebeu {0} de {1}. -moneySentTo=\u00a7aVoc\u00ea enviou {0} para {1}. -month=mes +missingItems=\u00A74Voc\u00EA n\u00E3o tem \u00A7c{0}x {1}\u00A74. +mobSpawnError=\u00A74Erro ao mudar o mob spawner. +mobSpawnLimit=Quantidade de mobs aumentada at\u00E9 ao limite do servidor. +mobSpawnTarget=\u00A74Alvo deve ser um mob spawner. +mobsAvailable=\u00A76Mobs\:\u00A7r {0} +moneyRecievedFrom=\u00A7aVoc\u00EA recebeu {0} de {1}. +moneySentTo=\u00A7aVoc\u00EA enviou {0} para {1}. +month=m\u00EAs months=meses -moreThanZero=\u00a74Quantidades devem ser maior que 0. -moveSpeed=\u00a76Velocidade de \u00a7c{2}\u00a76 foi definida de {0} para \u00a7c {1} \u00a76. -msgFormat=\u00a76[\u00a7c{0}\u00a76 -> \u00a7c{1}\u00a76] \u00a7r{2} -multipleCharges=\u00a74Voc\u00ea n\u00e3o pode aplicar mais de um comando para esse fogo de artificio. -multiplePotionEffects=\u00a74Voc\u00ea n\u00e3o pode aplicar mais de um efeito para essa pocao. -muteExempt=\u00a74Voc\u00ea n\u00e3o pode silenciar esse jogador. -muteNotify=\u00a7c {0} \u00a76 silenciou o jogador \u00a76 \u00a7c {1} . -mutedPlayer=\u00a76Jogador\u00a7c {0} \u00a76silenciado. -mutedPlayerFor=\u00a76Jogador\u00a7c {0} \u00a76silenciado por\u00a7c {1}\u00a76. -mutedUserSpeaks={0} tentou falar, mas est\u00e1 silenciado. -nearbyPlayers=\u00a76Jogadores por perto\:\u00a7r {0} -negativeBalanceError=\u00a74Usuario n\u00e3o tem permiss\u00e3o para ter um saldo negativo. -nickChanged=\u00a76Nick alterado. -nickDisplayName=\u00a74Voc\u00ea precisa ativar o change-displayname na configuracao do Essentials. -nickInUse=\u00a74Esse nome j\u00e1 est\u00e1 em uso. -nickNamesAlpha=\u00a74Nicks devem ser alfanumericos. -nickNoMore=\u00a76Voc\u00ea n\u00e3o tem mais um nick. -nickSet=\u00a76Seu nick agora \u00e9 \u00a7c{0}\u00a76. -nickTooLong=\u00a74Esse Nome \u00e9 muito grande. -noAccessCommand=\u00a74Voc\u00ea n\u00e3o tem acesso a esse comando. -noAccessPermission=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para acessar \u00a7c{0}\u00a74. -noBreakBedrock=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para quebrar bedrock. -noDestroyPermission=\u00a74voc\u00ea n\u00e3o tem permiss\u00e3o para destruir \u00a7c{0}\u00a74. -noDurability=\u00a74Esse item n\u00e3o tem durabilidade. -noGodWorldWarning=\u00a74Cuidado\! Modo deus n\u00e3o est\u00e1 desativado nesse mundo. -noHelpFound=\u00a74Nenhum comando correspondendo. -noHomeSetPlayer=\u00a76Jogador n\u00e3o definiu uma casa. -noIgnored=\u00a76Voc\u00ea n\u00e3o est\u00e1 ignorando ningu\u00e9m. -noKitPermission=\u00a74Voc\u00ea precisa da permiss\u00e3o \u00a7c{0}\u00a74 para usar esse kit. -noKits=\u00a76n\u00e3o existem kits dispon\u00edveis ainda. -noMail=\u00a76Voc\u00ea n\u00e3o tem nenhum e-mail. -noMatchingPlayers=\u00a76Nenhum jogador correspondente encontrado. -noMetaFirework=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para aplicar meta para fogos de artif\u00edcio. -noMetaPerm=\u00a74Voc\u00aa n\u00e3o tem permiss\u00e3o para aplicar meta (\u00a7c{0})\u00a74 para esse item. -noNewMail=\u00a76Voc\u00ea n\u00e3o tem novos e-mails. -noPendingRequest=\u00a74Voc\u00ea n\u00e3o tem uma solicitacao. -noPerm=\u00a74Voc\u00ea n\u00e3o tem a permiss\u00e3o \u00a7c{0}\u00a74. -noPermToSpawnMob=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para spawnar esse mob. -noPlacePermission=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para colocar um bloco perto dessa placa. -noPotionEffectPerm=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para aplicar o efeito \u00a7c{0} \u00a74para essa pocao. -noPowerTools=\u00a76Voc\u00ea n\u00e3o tem nenhuma ferramenta de poder atribuida. -noWarpsDefined=\u00a76Nenhum warp definido. +moreThanZero=\u00A74Quantidades devem ser maiores que 0. +moveSpeed=\u00A76Velocidade de \u00A7c{2}\u00A76 foi definida de {0} para \u00A7c {1} \u00A76. +msgFormat=\u00A76[\u00A7c{0}\u00A76 -> \u00A7c{1}\u00A76] \u00A7r{2} +multipleCharges=\u00A74Voc\u00EA n\u00E3o pode aplicar mais de um comando para esse fogo de artif\u00EDcio. +multiplePotionEffects=\u00A74Voc\u00EA n\u00E3o pode aplicar mais de um efeito para essa po\u00E7\u00E3o. +muteExempt=\u00A74Voc\u00EA n\u00E3o pode silenciar esse jogador. +muteNotify=\u00A7c {0} \u00A76 silenciou o jogador \u00A76 \u00A7c {1} . +mutedPlayer=\u00A76Jogador\u00A7c {0} \u00A76silenciado. +mutedPlayerFor=\u00A76Jogador\u00A7c {0} \u00A76silenciado por\u00A7c {1}\u00A76. +mutedUserSpeaks={0} tentou falar, mas est\u00E1 silenciado. +nearbyPlayers=\u00A76Jogadores por perto\:\u00A7r {0} +negativeBalanceError=\u00A74Usu\u00E1rio n\u00E3o tem permiss\u00E3o para ter um saldo negativo. +nickChanged=\u00A76Nick alterado. +nickDisplayName=\u00A74Voc\u00EA precisa ativar o change-displayname na configura\u00E7\u00E3o do Essentials. +nickInUse=\u00A74Esse nome j\u00E1 est\u00E1 em uso. +nickNamesAlpha=\u00A74Nicks devem ser alfanum\u00E9ricos. +nickNoMore=\u00A76Voc\u00EA n\u00E3o tem mais um nick. +nickSet=\u00A76Seu nick agora \u00E9 \u00A7c{0}\u00A76. +nickTooLong=\u00A74Esse nome \u00E9 muito grande. +noAccessCommand=\u00A74Voc\u00EA n\u00E3o tem acesso a esse comando. +noAccessPermission=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para acessar \u00A7c{0}\u00A74. +noBreakBedrock=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para quebrar bedrock. +noDestroyPermission=\u00A74voc\u00EA n\u00E3o tem permiss\u00E3o para destruir \u00A7c{0}\u00A74. +noDurability=\u00A74Esse item n\u00E3o tem durabilidade. +noGodWorldWarning=\u00A74Cuidado\! Modo deus n\u00E3o est\u00E1 desativado nesse mundo. +noHelpFound=\u00A74Nenhum comando correspondendo. +noHomeSetPlayer=\u00A76Jogador n\u00E3o definiu uma casa. +noIgnored=\u00A76Voc\u00EA n\u00E3o est\u00E1 ignorando ningu\u00E9m. +noKitPermission=\u00A74Voc\u00EA precisa da permiss\u00E3o \u00A7c{0}\u00A74 para usar esse kit. +noKits=\u00A76N\u00E3o existem kits dispon\u00EDveis ainda. +noMail=\u00A76Voc\u00EA n\u00E3o tem nenhum e-mail. +noMatchingPlayers=\u00A76Nenhum jogador correspondente encontrado. +noMetaFirework=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para aplicar meta para fogos de artif\u00EDcio. +noMetaPerm=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para aplicar meta (\u00A7c{0})\u00A74 para esse item. +noNewMail=\u00A76Voc\u00EA n\u00E3o tem novos e-mails. +noPendingRequest=\u00A74Voc\u00EA n\u00E3o tem uma solicitacao. +noPerm=\u00A74Voc\u00EA n\u00E3o tem a permiss\u00E3o \u00A7c{0}\u00A74. +noPermToSpawnMob=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para spawnar esse mob. +noPlacePermission=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para colocar um bloco perto dessa placa. +noPotionEffectPerm=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para aplicar o efeito \u00A7c{0} \u00A74para essa po\u00E7\u00E3o. +noPowerTools=\u00A76Voc\u00EA n\u00E3o tem nenhuma ferramenta de poder atribuida. +noWarpsDefined=\u00A76Nenhum warp definido. none=nada -notAllowedToQuestion=\u00a74Voc\u00ean\u00e3o tem permiss\u00e3o para usar a pergunta. -notAllowedToShout=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para gritar. -notEnoughExperience=\u00a74Voc\u00ea n\u00e3o tem experiencia o suficiente. -notEnoughMoney=\u00a74Voc\u00ea n\u00e3o tem dinheiro o suficiente. -notFlying=n\u00e3o est\u00e1 voando -notRecommendedBukkit=\u00a74* \! * Versao do Bukkit n\u00e3o e recomendada para essa versao do Essentials. -notSupportedYet=n\u00e3o suportado ainda. -nothingInHand=\u00a74Voc\u00ea n\u00e3o tem nada em sua mao. +notAllowedToQuestion=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para usar a pergunta. +notAllowedToShout=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para gritar. +notEnoughExperience=\u00A74Voc\u00EA n\u00E3o tem experiencia o suficiente. +notEnoughMoney=\u00A74Voc\u00EA n\u00E3o tem dinheiro o suficiente. +notFlying=n\u00E3o est\u00E1 voando +notRecommendedBukkit=\u00A74* \! * Vers\u00E3o do Bukkit n\u00E3o \u00E9 recomendada para essa vers\u00E3o do Essentials. +notSupportedYet=n\u00E3o suportado ainda. +nothingInHand=\u00A74Voc\u00EA n\u00E3o tem nada em sua m\u00E3o. now=agora -nuke=\u00a75Pode chover a morte sobre eles. -numberRequired=Vai um n\u00bamero a\u00ed, seu bobo. +nuke=\u00A75Pode chover a morte sobre eles. +numberRequired=Tem de indicar um n\u00FAmero. onlyDayNight=/time suporta apenas day/night. -onlyPlayerSkulls=\u00a74Voc\u00ea s\u00f3 pode definir o propriet\u00e1rio de cr\u00e2nios de jogador (\u00a7c397\:3\u00a74). -onlyPlayers=\u00a74Apenas jogadores no jogo podem usar \u00a7c{0}\u00a74. -onlySunStorm=\u00a74/weather suporta apenas sun/storm. -orderBalances=\u00a76Organizando saldos de\u00a7c {0} \u00a76usuarios, aguarde... -oversizedTempban=\u00a74Voc\u00ea n\u00e3o pode banir um jogador por esse per\u00edodo de tempo. -pTimeCurrent=\u00a76O tempo para \u00a7c{0}\u00a76 e \u00a7c {1}\u00a76. -pTimeCurrentFixed=\u00a76O tempo para \u00a7c{0}\u00a76 foi arrumado para\u00a7c {1}\u00a76. -pTimeNormal=\u00a76O tempo de \u00a7c{0}\u00a76 est\u00e1 normal e correspondendo ao do servidor. -pTimeOthersPermission=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para definir o tempo de outros jogadores. -pTimePlayers=\u00a76Esses jogadores tem seus pr\u00b3prios tempos\:\u00a7r -pTimeReset=\u00a76O tempo do jogador foi resetado para\: \u00a7c{0} -pTimeSet=\u00a76Tempo do jogador definido em \u00a7c{0}\u00a76 para\: \u00a7c{1}. -pTimeSetFixed=\u00a76Tempo do jogador arrumado em \u00a7c{0}\u00a76 para\: \u00a7c{1}. -pWeatherCurrent=\u00a7c{0}\u00a76 o clima \u00e9\u00a7c {1}\u00a76. -pWeatherInv\u00e1lidalias=Tipo de clima \u00a74 Inv\u00e1lido -pWeatherNormal=O clima \u00a7c{0}\u00a76 est\u00e1 normal e coincide com o servidor. -pWeatherOthersPermission=\u00a74Voc\u00ea n\u00e3o est\u00e3o autorizados a definir o clima dos outros jogadores. -pWeatherPlayers=\u00a76Estes jogadores possuem seu pr\u00f3prio clima\:\u00a7r -pWeatherReset=\u00a76O clima do jogador foi restaurado para\: \u00a7c{0} -pWeatherSet=\u00a76O clima do jogador foi definido para \u00a7c{0}\u00a76 por\: \u00a7c{1}. -pendingTeleportCancelled=\u00a74Pedido de teleporte cancelado. -playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address\u00a7c {1} \u00a76for\: \u00a7c{2}\u00a76. -playerBanned=\u00a76Jogador\u00a7c {0} \u00a76banido\u00a7c {1} \u00a76por \u00a7c{2}\u00a76. -playerInJail=\u00a74Jogador atualmente est\u00e1 na cadeia\u00a7c {0}\u00a74. -playerJailed=\u00a76JogadorPlayer\u00a7c {0} \u00a76preso. -playerJailedFor=\u00a76Jogador\u00a7c {0} \u00a76preso por {1}. -playerKicked=\u00a76Jogador\u00a7c {0} \u00a76kickou {1} por {2}. -playerMuted=\u00a76Voc\u00ea foi silenciado\! -playerMutedFor=\u00a76Voc\u00ea est\u00e1 silenciado por\u00a7c {0}. -playerNeverOnServer=\u00a74Jogador\u00a7c {0} \u00a74nunca esteve nesse servidor. -playerNotFound=\u00a74Jogador n\u00e3o encontrado. -playerUnbanIpAddress=\u00a76Jogador\u00a7c {0} \u00a76desbaniu o IP\: {1}. -playerUnbanned=\u00a76Jogador\u00a7c {0} \u00a76desbaniu\u00a7c {1}. -playerUnmuted=\u00a76Voc\u00ea n\u00e3o est\u00e1 mais silenciado. +onlyPlayerSkulls=\u00A74Voc\u00EA s\u00F3 pode definir o propriet\u00E1rio de cr\u00E2nios de jogador (\u00A7c397\:3\u00A74). +onlyPlayers=\u00A74Apenas jogadores no jogo podem usar \u00A7c{0}\u00A74. +onlySunStorm=\u00A74/weather suporta apenas sun/storm. +orderBalances=\u00A76Organizando saldos de\u00A7c {0} \u00A76usu\u00E1rios, aguarde... +oversizedTempban=\u00A74Voc\u00EA n\u00E3o pode banir um jogador por esse per\u00EDodo de tempo. +pTimeCurrent=\u00A76O tempo para \u00A7c{0}\u00A76 e \u00A7c {1}\u00A76. +pTimeCurrentFixed=\u00A76O tempo para \u00A7c{0}\u00A76 foi arrumado para\u00A7c {1}\u00A76. +pTimeNormal=\u00A76O tempo de \u00A7c{0}\u00A76 est\u00E1 normal e correspondendo ao do servidor. +pTimeOthersPermission=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para definir o tempo de outros jogadores. +pTimePlayers=\u00A76Esses jogadores tem seus pr\u00F3prios tempos\:\u00A7r +pTimeReset=\u00A76O tempo do jogador foi resetado para\: \u00A7c{0} +pTimeSet=\u00A76Tempo do jogador definido em \u00A7c{0}\u00A76 para\: \u00A7c{1}. +pTimeSetFixed=\u00A76Tempo do jogador arrumado em \u00A7c{0}\u00A76 para\: \u00A7c{1}. +pWeatherCurrent=\u00A7c{0}\u00A76 o clima \u00E9\u00A7c {1}\u00A76. +pWeatherInv\u00E1lidalias=Tipo de clima \u00A74 Inv\u00E1lido +pWeatherNormal=O clima \u00A7c{0}\u00A76 est\u00E1 normal e coincide com o servidor. +pWeatherOthersPermission=\u00A74Voc\u00EA n\u00E3o est\u00E3o autorizados a definir o clima dos outros jogadores. +pWeatherPlayers=\u00A76Estes jogadores possuem seu pr\u00F3prio clima\:\u00A7r +pWeatherReset=\u00A76O clima do jogador foi restaurado para\: \u00A7c{0} +pWeatherSet=\u00A76O clima do jogador foi definido para \u00A7c{0}\u00A76 por\: \u00A7c{1}. +pendingTeleportCancelled=\u00A74Pedido de teleporte cancelado. +playerBanIpAddress=\u00A76Jogador\u00A7c {0} \u00A76baniu endere\u00E7o IP\u00A7c {1} \u00A76por\: \u00A7c{2}\u00A76. +playerBanned=\u00A76Jogador\u00A7c {0} \u00A76banido\u00A7c {1} \u00A76por \u00A7c{2}\u00A76. +playerInJail=\u00A74Jogador atualmente est\u00E1 na cadeia\u00A7c {0}\u00A74. +playerJailed=\u00A76Jogador\u00A7c {0} \u00A76preso. +playerJailedFor=\u00A76Jogador\u00A7c {0} \u00A76preso por {1}. +playerKicked=\u00A76Jogador\u00A7c {0} \u00A76kickou {1} por {2}. +playerMuted=\u00A76Voc\u00EA foi silenciado\! +playerMutedFor=\u00A76Voc\u00EA est\u00E1 silenciado por\u00A7c {0}. +playerNeverOnServer=\u00A74Jogador\u00A7c {0} \u00A74nunca esteve nesse servidor. +playerNotFound=\u00A74Jogador n\u00E3o encontrado. +playerUnbanIpAddress=\u00A76Jogador\u00A7c {0} \u00A76desbaniu o IP\: {1}. +playerUnbanned=\u00A76Jogador\u00A7c {0} \u00A76desbaniu\u00A7c {1}. +playerUnmuted=\u00A76Voc\u00EA n\u00E3o est\u00E1 mais silenciado. pong=Pong\! -posPitch=\u00a76Pitch\: {0} (Angulo da Cabeca) -posX=\u00a76X\: {0} (+Leste <-> -Oeste) -posY=\u00a76Y\: {0} (+Cima <-> -Baixo) -posYaw=\u00a76Yaw\: {0} (Rotacao) -posZ=\u00a76Z\: {0} (+Sul <-> -Norte) -possibleWorlds=\u00a76Poss\u00edveis mundos s\u00e3o os n\u00fameros \u00a7c0\u00a76 atrav\u00e9s de \u00a7c {0} \u00a76. -potions=\u00a76Pocoes\:\u00a7r {0}\u00a76. -powerToolAir=\u00a74O comando n\u00e3o pode ser atribu\u00eddo ao ar. -powerToolAlreadySet=\u00a74Comando \u00a7c{0}\u00a74 J\u00e1 Foi Atribuido para \u00a7c{1}\u00a74. -powerToolAttach=\u00a7c{0}\u00a76 comando atribu\u00eddo a {1}. -powerToolClearAll=\u00a76Todos as ferramentas de poder foram removidas. -powerToolList=\u00a76Item \u00a7c{1} \u00a76tem os seguintes comandos\: \u00a7c{0}\u00a76. -powerToolListEmpty=\u00a74Item \u00a7c{0} \u00a74n\u00e3o tem comandos atribu\u00eddos. -powerToolNoSuchCommandAssigned=\u00a74Comando \u00a7c {0} \u00a7 4\u00ba n\u00e3o foi atribu\u00eddo a \u00a7c {1} \u00a7 4\u00ba. -powerToolRemove=\u00a76Esse Comando\u00a7c{0}\u00a76 Foi Removido de \u00a7c{1}\u00a76. -powerToolRemoveAll=\u00a76Todos os comandos removidos do 6\u00ba \u00a7c {0}. -powerToolsDisabled=\u00a76Todas as suas ferramentas de poder foram desativadas. -powerToolsEnabled=\u00a76Todas as suas ferramentas de poder foram ativadas. -questionFormat=\u00a72[Pergunta]\u00a7r {0} -readNextPage=\u00a76Digite\u00a7c /{0} {1} \u00a76para ler a proxima pagina. -recipe=\u00a76Receita para \u00a7c {0} \u00a7. 6 (\u00a76 \u00a7c {1} de \u00a7c {2} \u00a76) -recipeBadIndex=N\u00e3o ha receita para esse numero. -recipeFurnace=\u00a76Fundir\:\u00a7c {0}. -recipeGrid=\u00a7c{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X -recipeGridItem=\u00a7c{0}X \u00a76\u00e9 \u00a7c{1} -recipeMore=\u00a76Digite /{0} \u00a7c{1}\u00a76 para ver outras receitas para \u00a7c{2}\u00a76. -recipeNone=n\u00e3o ha receitas para {0} +posPitch=\u00A76Pitch\: {0} (\u00C2ngulo da cabe\u00E7a) +posX=\u00A76X\: {0} (+Leste <-> -Oeste) +posY=\u00A76Y\: {0} (+Cima <-> -Baixo) +posYaw=\u00A76Yaw\: {0} (Rota\u00E7\u00E3o) +posZ=\u00A76Z\: {0} (+Sul <-> -Norte) +possibleWorlds=\u00A76Poss\u00EDveis mundos s\u00E3o os n\u00FAmeros \u00A7c0\u00A76 atrav\u00E9s de \u00A7c {0} \u00A76. +potions=\u00A76Pocoes\:\u00A7r {0}\u00A76. +powerToolAir=\u00A74O comando n\u00E3o pode ser atribu\u00EDdo ao ar. +powerToolAlreadySet=\u00A74Comando \u00A7c{0}\u00A74 j\u00E1 foi atribu\u00EDdo para \u00A7c{1}\u00A74. +powerToolAttach=\u00A7c{0}\u00A76 comando atribu\u00EDdo a {1}. +powerToolClearAll=\u00A76Todas as ferramentas de poder foram removidas. +powerToolList=\u00A76Item \u00A7c{1} \u00A76tem os seguintes comandos\: \u00A7c{0}\u00A76. +powerToolListEmpty=\u00A74Item \u00A7c{0} \u00A74n\u00E3o tem comandos atribu\u00EDdos. +powerToolNoSuchCommandAssigned=\u00A74Comando \u00A7c {0} \u00A74 n\u00E3o foi atribu\u00EDdo a \u00A7c {1} \u00A74. +powerToolRemove=\u00A76Esse comando\u00A7c{0}\u00A76 foi removido de \u00A7c{1}\u00A76. +powerToolRemoveAll=\u00A76Todos os comandos removidos de \u00A7c{0}\u00A76. +powerToolsDisabled=\u00A76Todas as suas ferramentas de poder foram desativadas. +powerToolsEnabled=\u00A76Todas as suas ferramentas de poder foram ativadas. +questionFormat=\u00A72[Pergunta]\u00A7r {0} +readNextPage=\u00A76Digite\u00A7c /{0} {1} \u00A76para ler a proxima p\u00E1gina. +recipe=\u00A76Receita para \u00A7c {0} \u00A76 (\u00A76 \u00A7c {1} de \u00A7c {2} \u00A76) +recipeBadIndex=N\u00E3o h\u00E1 receita para esse numero. +recipeFurnace=\u00A76Fundir\:\u00A7c {0}. +recipeGrid=\u00A7c{0}X \u00A76| \u00A7{1}X \u00A76| \u00A7{2}X +recipeGridItem=\u00A7c{0}X \u00A76\u00E9 \u00A7c{1} +recipeMore=\u00A76Digite /{0} \u00A7c{1}\u00A76 para ver outras receitas para \u00A7c{2}\u00A76. +recipeNone=N\u00E3o h\u00E1 receitas para {0} recipeNothing=nada -recipeShapeless=\u00a76Combinar \u00a7c{0} -recipeWhere=\u00a76Onde\: {0} -removed=\u00a7c{0} \u00a76entidades removidas. -repair=\u00a76Voc\u00ea reparou seu \u00a7c{0}\u00a76 com sucesso. -repairAlreadyFixed=\u00a74Esse item n\u00e3o precisa de reparo. -repairEnchanted=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para reparar itens encantados. -repairInvalidType=\u00a74Esse item n\u00e3o pode ser reparado. -repairNone=\u00a74N\u00e3o haviam itens para serem reparados. -requestaccepted=\u00a76Pedido de teleporte aceito. -requestacceptedFrom=\u00a7c{0} \u00a76aceitou seu pedido de teleporte. -requestDenied=\u00a76Pedido de teleporte negado. -requestDeniedFrom=\u00a7c{0} \u00a76negou seu pedido de teleporte. -requestSent=\u00a76Pedido enviado para\u00a7c {0}\u00a76. -requestTimedOut=\u00a74Pedido de teleporte se esgotou. -requiredBukkit=\u00a76* \! * voc\uuea precisa de pelo menos a construcao {0} do CraftBukkit, baixe-a em http\://dl.bukkit.org/downloads/craftbukkit/ -resetBal=\u00a76Saldos de todos os jogadores online resetados para \u00a7a{0}\u00a76. -resetBalAll=\u00a76Saldos de todos os jogadores resetados para \u00a7a{0}\u00a76. -returnPlayerToJailError=\u00a74Um erro ocorreu ao tentar retornar o jogador\u00a7c {0} \u00a74para a cadeia\: {1}\! -runningPlayerMatch=\u00a76Realizando busca por jogadores correspodentes a ''\u00a7c{0}\u00a76'' (isso pode levar um tempo) +recipeShapeless=\u00A76Combinar \u00A7c{0} +recipeWhere=\u00A76Onde\: {0} +removed=\u00A7c{0} \u00A76entidades removidas. +repair=\u00A76Voc\u00EA reparou seu \u00A7c{0}\u00A76 com sucesso. +repairAlreadyFixed=\u00A74Esse item n\u00E3o precisa de reparo. +repairEnchanted=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para reparar itens encantados. +repairInvalidType=\u00A74Esse item n\u00E3o pode ser reparado. +repairNone=\u00A74N\u00E3o haviam itens para serem reparados. +requestaccepted=\u00A76Pedido de teleporte aceite. +requestacceptedFrom=\u00A7c{0} \u00A76aceitou seu pedido de teleporte. +requestDenied=\u00A76Pedido de teleporte negado. +requestDeniedFrom=\u00A7c{0} \u00A76negou seu pedido de teleporte. +requestSent=\u00A76Pedido enviado para\u00A7c {0}\u00A76. +requestTimedOut=\u00A74Temp limite do pedido de teleporte se esgotou. +requiredBukkit=\u00A76* \! * Voc\uuea precisa de pelo menos a vers\u00E3o{0} do CraftBukkit, baixe-a em http\://dl.bukkit.org/downloads/craftbukkit/ +resetBal=\u00A76Saldos de todos os jogadores online resetados para \u00A7a{0}\u00A76. +resetBalAll=\u00A76Saldos de todos os jogadores resetados para \u00A7a{0}\u00A76. +returnPlayerToJailError=\u00A74Um erro ocorreu ao tentar retornar o jogador\u00A7c {0} \u00A74para a cadeia\: {1}\! +runningPlayerMatch=\u00A76Realizando busca por jogadores correspodentes a ''\u00A7c{0}\u00A76'' (isso pode levar um tempo) second=segundo -seconds=segundo -seenOffline=\u00a76Jogador\u00a7c {0} \u00a76est\u00e1 \u00a74offline\u00a76 desde \u00a7c{1}\u00a76. -seenOnline=\u00a76Jogador\u00a7c {0} \u00a76est\u00e1 \u00a7aonline\u00a76 desde \u00a7c{1}\u00a76. +seconds=segundos +seenOffline=\u00A76Jogador\u00A7c {0} \u00A76est\u00E1 \u00A74offline\u00A76 desde \u00A7c{1}\u00A76. +seenOnline=\u00A76Jogador\u00A7c {0} \u00A76est\u00E1 \u00A7aonline\u00A76 desde \u00A7c{1}\u00A76. serverFull=Servidor cheio\! -serverTotal=\u00a76Total do Servidor\:\u00a7c {0} -setBal=\u00a7aSeu saldo foi definido para {0}. -setBalOthers=\u00a7aVoc\u00ea configurou o seu balan\u00e7o atual de {0}\u00a7a para {1}. -setSpawner=\u00a76Spawner alterado para\u00a7c {0}. -sheepMalformedColor=\u00a74Cor mal especificada. -shoutFormat=\u00a77[\u00a73G\u00a77]\u00a7r {0} -signFormatFail=\u00a74[{0}] -signFormatSuccess=\u00a71[{0}] +serverTotal=\u00A76Total do Servidor\:\u00A7c {0} +setBal=\u00A7aSeu saldo foi definido para {0}. +setBalOthers=\u00A7aVoc\u00EA configurou o seu balan\u00E7o atual de {0}\u00A7a para {1}. +setSpawner=\u00A76Spawner alterado para\u00A7c {0}. +sheepMalformedColor=\u00A74Cor mal especificada. +shoutFormat=\u00A77[\u00A73G\u00A77]\u00A7r {0} +signFormatFail=\u00A74[{0}] +signFormatSuccess=\u00A71[{0}] signFormatTemplate=[{0}] -signProtectInvalidLocation=\u00a74Voc\u00ean\u00e3o tem permiss\u00e3o para criar placas aqui. -similarWarpExist=\u00a74Um warp com um nome similar j\u00e1 existe. -slimeMalformedSize=\u00a74Tamanho mal especificado. -socialSpy=\u00a76SocialSpy para \u00a7c {0} \u00a76\: \u00a7c {1} -soloMob=\u00a74Esse mob gosta de ficar sozinho. -spawnSet=\u00a76Ponto de Spawn definido para o grupo\u00a7c {0}\u00a76. +signProtectInvalidLocation=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para criar placas aqui. +similarWarpExist=\u00A74Um warp com um nome similar j\u00E1 existe. +slimeMalformedSize=\u00A74Tamanho mal especificado. +socialSpy=\u00A76SocialSpy para \u00A7c {0} \u00A76\: \u00A7c {1} +soloMob=\u00A74Esse mob gosta de ficar sozinho. +spawnSet=\u00A76Ponto de Spawn definido para o grupo\u00A7c {0}\u00A76. spawned=spawnado -sudoExempt=\u00a74Voc\u00ea n\u00e3o pode usar sudo nesse usuario. BOZO!! -sudoRun=\u00a76Forcing\u00a7c {0} \u00a76to run\:\u00a7r /{1} -suicideMessage=\u00a76Adeus mundo cruel... -suicideSuccess=\u00a76{0} \u00a76se matou. -survival=sobrevivencia -takenFromAccount=\u00a7a{0} foi removido sua conta. -takenFromOthersAccount=\u00a7a{0} foi removido da conta de {1}\u00a7a. Novo saldo\: {2}. -teleportAAll=\u00a76Pedido de teleporte enviado para todos os jogadores... -teleportAll=\u00a76Teleportando todos os jogadores... -teleportAtoB=\u00a7c{0}\u00a76 teleportou voc\uuea para \u00a7c{1}\u00a76. -teleportDisabled=\u00a7c{0} \u00a74est\u00e1 com teleporte desativado. -teleportHereRequest=\u00a7c{0}\u00a76 pediu para que voc\uuea se teleporte ate ele. -teleportNewPlayerError=\u00a74Falha ao teleportar novo jogador\! -teleportRequest=\u00a7c{0}\u00a76 pediu para teleportar ate voc\uuea. -teleportRequestTimeoutInfo=\u00a76Esse pedido ira se esgotar depois de\u00a7c {0} segundos\u00a76. -teleportTop=\u00a76Indo para o topo. -teleportationCommencing=\u00a76Teleportando... -teleportationDisabled=\u00a76Teleporte \u00a7cdesabilitado\u00a76. -teleportationDisabledFor=\u00a76Teleporte \u00a7cdesabilitado \u00a76para \u00a7c {0}\u00a76. -teleportationEnabled=\u00a76Teleporte \u00a7habilitado\u00a76. -teleportationEnabledFor=\u00a76Teleporte \u00a7chabilitado \u00a76para \u00a7c {0}\u00a76. -teleporting=\u00a76Teleportando... -teleportToPlayer=\u00a76Teletransportando para \u00a76 \u00a7c {0}. -tempBanned=\u00a7cVoc\u00ea foi banido temporariamente por {0}\:\n\u00a7r{2} -tempbanExempt=\u00a74Voc\u00ea n\u00e3o pode banir temporariamente esse jogador. -thunder=\u00a76Voc\u00ea\u00a7c {0} \u00a76trovoada em seu mundo. -thunderDuration=\u00a76Voc\u00ea\u00a7c {0} \u00a76trovoada em seu mundo por\u00a7c {1} \u00a76segundos. -timeBeforeHeal=\u00a76Tempo antes da pr\u00b3xima cura\:\u00a7c {0}\u00a76. -timeBeforeTeleport=\u00a76Tempo antes do pr\u00b3ximo teleporte\:\u00a7c {0} -timeFormat=\u00a76 \u00a7c {0} ou \u00a7c {1} \u00a76 ou \u00a7c {2} \u00a76 -timeSetPermission=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para definir o tempo. -timeWorldCurrent=\u00a76O tempo atual em\u00a7c {0} \u00a76e \u00a7c{1}\u00a76. -timeWorldSet=\u00a76O tempo foi definido para\u00a7c {0} \u00a76em\: \u00a7c{1}\u00a76. -totalWorthAll=\u00a7aTodos os itens e blocos foram vendidos por um total de \u00a7c{1}\u00a7a. -totalWorthBlocks=\u00a7aTodos os blocos foram vendidos por um total de \u00a7c{1}\u00a7a. -tps=\u00a76TPS Atual \= {0} -tradeSignEmpty=\u00a74A placa de troca n\u00e3o tem nada disponivel para voc\uuea. -tradeSignEmptyOwner=\u00a74n\u00e3o hanada para coletar dessa placa de troca. -treeFailure=\u00a74Erro ao gerar Arvore. Tente novamente na terra ou na grama. -treeSpawned=\u00a76Arvore gerada. -true=\u00a7averdadeiro\u00a7r -typeTpaccept=\u00a76Para teleportar, digite \u00a7c/tpaccept\u00a76. -typeTpdeny=\u00a76Para recusar o pedido, digite \u00a7c/tpdeny\u00a76. -typeWorldName=\u00a76Voc\u00ea pode tambem digitar o nome de um mundo especifico. -unableToSpawnMob=\u00a74Incapaz de spawnar o mob. -unignorePlayer=\u00a76Voc\u00ea n\u00e3o est\u00e1 mais ignorando o jogador\u00a7c {0} \u00a76. -unknownItemId=\u00a74ID do item inv\u00e1lido\: \u00a7r {0}\u00a74. -unknownItemInList=\u00a74Iten desconhecido {0} na lista {1}. -unknownItemName=\u00a74Nome de item desconhecido\: {0}. -unlimitedItemPermission=\u00a74Sem permiss\u00e3o para item \u00a7c{0}\u00a74 ilimitado. -unlimitedItems=\u00a76Itens ilimitados\:\u00a7r -unmutedPlayer=\u00a76Jogador\u00a7c {0} \u00a76n\u00e3o est\u00e1 mais silenciado. -unvanishedReload=\u00a74Um reload forcou-lhe a ficar vis\u00edvel novamente. +sudoExempt=\u00A74Voc\u00EA n\u00E3o pode usar sudo nesse usu\u00E1rio. +sudoRun=\u00A76Forcing\u00A7c {0} \u00A76to run\:\u00A7r /{1} +suicideMessage=\u00A76Adeus mundo cruel... +suicideSuccess=\u00A76{0} \u00A76se matou. +survival=sobreviv\u00EAncia +takenFromAccount=\u00A7a{0} foi removido da sua conta. +takenFromOthersAccount=\u00A7a{0} foi removido da conta de {1}\u00A7a. Novo saldo\: {2}. +teleportAAll=\u00A76Pedido de teleporte enviado para todos os jogadores... +teleportAll=\u00A76Teleportando todos os jogadores... +teleportAtoB=\u00A7c{0}\u00A76 teleportou voc\uuea para \u00A7c{1}\u00A76. +teleportDisabled=\u00A7c{0} \u00A74est\u00E1 com teleporte desativado. +teleportHereRequest=\u00A7c{0}\u00A76 pediu para que voc\uuea se teleporte at\u00E9 ele. +teleportNewPlayerError=\u00A74Falha ao teleportar novo jogador\! +teleportRequest=\u00A7c{0}\u00A76 pediu para teleportar ate voc\uuea. +teleportRequestTimeoutInfo=\u00A76Esse pedido ir\u00E1 se esgotar depois de\u00A7c {0} segundos\u00A76. +teleportTop=\u00A76Indo para o topo. +teleportationCommencing=\u00A76Teleportando... +teleportationDisabled=\u00A76Teleporte \u00A7cdesabilitado\u00A76. +teleportationDisabledFor=\u00A76Teleporte \u00A7cdesabilitado \u00A76para \u00A7c {0}\u00A76. +teleportationEnabled=\u00A76Teleporte \u00A7habilitado\u00A76. +teleportationEnabledFor=\u00A76Teleporte \u00A7chabilitado \u00A76para \u00A7c {0}\u00A76. +teleporting=\u00A76Teleportando... +teleportToPlayer=\u00A76Teletransportando para \u00A76 \u00A7c {0}. +tempBanned=\u00A7cVoc\u00EA foi banido temporariamente por {0}\:\n\u00A7r{2} +tempbanExempt=\u00A74Voc\u00EA n\u00E3o pode banir temporariamente esse jogador. +thunder=\u00A76Voc\u00EA\u00A7c {0} \u00A76trovoada em seu mundo. +thunderDuration=\u00A76Voc\u00EA\u00A7c {0} \u00A76trovoada em seu mundo por\u00A7c {1} \u00A76segundos. +timeBeforeHeal=\u00A76Tempo antes da pr\u00F3xima cura\:\u00A7c {0}\u00A76. +timeBeforeTeleport=\u00A76Tempo antes do pr\u00F3ximo teleporte\:\u00A7c {0} +timeFormat=\u00A76 \u00A7c {0} ou \u00A7c {1} \u00A76 ou \u00A7c {2} \u00A76 +timeSetPermission=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para definir o tempo. +timeWorldCurrent=\u00A76O tempo atual em\u00A7c {0} \u00A76e \u00A7c{1}\u00A76. +timeWorldSet=\u00A76O tempo foi definido para\u00A7c {0} \u00A76em\: \u00A7c{1}\u00A76. +totalWorthAll=\u00A7aTodos os itens e blocos foram vendidos por um total de \u00A7c{1}\u00A7a. +totalWorthBlocks=\u00A7aTodos os blocos foram vendidos por um total de \u00A7c{1}\u00A7a. +tps=\u00A76TPS Atual \= {0} +tradeSignEmpty=\u00A74A placa de troca n\u00E3o tem nada dispon\u00EDvel para voc\uuea. +tradeSignEmptyOwner=\u00A74N\u00E3o h\u00E1 nada para coletar dessa placa de troca. +treeFailure=\u00A74Erro ao gerar \u00E1rvore. Tente novamente na terra ou na grama. +treeSpawned=\u00A76\u00C1rvore gerada. +true=\u00A7averdadeiro\u00A7r +typeTpaccept=\u00A76Para teleportar, digite \u00A7c/tpaccept\u00A76. +typeTpdeny=\u00A76Para recusar o pedido, digite \u00A7c/tpdeny\u00A76. +typeWorldName=\u00A76Voc\u00EA pode tamb\u00E9m digitar o nome de um mundo espec\u00EDfico. +unableToSpawnMob=\u00A74Incapaz de spawnar o mob. +unignorePlayer=\u00A76Voc\u00EA n\u00E3o est\u00E1 mais ignorando o jogador\u00A7c {0} \u00A76. +unknownItemId=\u00A74ID do item inv\u00E1lido\: \u00A7r {0}\u00A74. +unknownItemInList=\u00A74Item desconhecido {0} na lista {1}. +unknownItemName=\u00A74Nome de item desconhecido\: {0}. +unlimitedItemPermission=\u00A74Sem permiss\u00E3o para item \u00A7c{0}\u00A74 ilimitado. +unlimitedItems=\u00A76Itens ilimitados\:\u00A7r +unmutedPlayer=\u00A76Jogador\u00A7c {0} \u00A76n\u00E3o est\u00E1 mais silenciado. +unvanishedReload=\u00A74Um reload forcou-o a ficar vis\u00EDvel novamente. upgradingFilesError=Erro ao aprimorar os arquivos. -uptime=\u00a76Tempo online\:\u00a7c {0} -userAFK=\u00a75{0} \u00a75est\u00e1 atualmente AFK e pode n\u00e3o responder. -userDoesNotExist=\u00a74O usuario\u00a7c {0} \u00a74n\u00e3o existe. -userIsAway=\u00a75{0} \u00a75est\u00e1 agora AFK. -userIsNotAway=\u00a75{0} \u00a75n\u00e3o est\u00e1 mais AFK. -userJailed=\u00a76Voc\u00ea foi preso\! -userUnknown=\u00a74Aviso\: O usuario ''\u00a7c{0}\u00a74'' nunca entrou nesse servidor. +uptime=\u00A76Tempo online\:\u00A7c {0} +userAFK=\u00A75{0} \u00A75est\u00E1 atualmente AFK e pode n\u00E3o responder. +userDoesNotExist=\u00A74O usu\u00E1rio\u00A7c {0} \u00A74n\u00E3o existe. +userIsAway=\u00A75{0} \u00A75est\u00E1 agora AFK. +userIsNotAway=\u00A75{0} \u00A75n\u00E3o est\u00E1 mais AFK. +userJailed=\u00A76Voc\u00EA foi preso\! +userUnknown=\u00A74Aviso\: O usu\u00E1rio ''\u00A7c{0}\u00A74'' nunca entrou nesse servidor. userdataMoveBackError=Falha ao mover o userdata/{0}.tmp para userdata/{1}\! userdataMoveError=Falha ao mover userdata/{0} para userdata/{1}.tmp\! -usingTempFolderForTesting=Usando pasta temporaria para teste\: -vanished=\u00a76Voc\u00ea est\u00e1 agora completamente invis\u00edvel para jogadores normais, e escondido de comandos in-game. -versionMismatch=\u00a74Versao n\u00e3o correspondente\! Por favor atualize o {0} para a mesma versao. -versionMismatchAll=\u00a74Versao n\u00e3o correspondente\! Por favor atualize todos os jars do Essentials para a mesma versao. -voiceSilenced=\u00a76Sua voz foi silenciada\! +usingTempFolderForTesting=Usando pasta tempor\u00E1ria para teste\: +vanished=\u00A76Voc\u00EA est\u00E1 agora completamente invis\u00EDvel para jogadores normais, e escondido de comandos in-game. +versionMismatch=\u00A74Versao n\u00E3o correspondente\! Por favor atualize o {0} para a mesma vers\u00E3o. +versionMismatchAll=\u00A74Vers\u00E3o n\u00E3o correspondente\! Por favor atualize todos os jars do Essentials para a mesma versao. +voiceSilenced=\u00A76Sua voz foi silenciada\! walking=caminhando -warpDeleteError=\u00a74Problema ao deletar o arquivo do warp. +warpDeleteError=\u00A74Problema ao deletar o arquivo do warp. warpList={0} -warpListPermission=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para listar os warps. -warpNotExist=\u00a74Esse warp n\u00e3o existe. -warpOverwrite=\u00a74Voc\u00ea n\u00e3o pode sobreescrever esse warp. -warpSet=\u00a76Warp\u00a7c {0} \u00a76definido. -warpUsePermission=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para usar esse warp. -warpingTo=\u00a76Indo para\u00a7c {0}\u00a76. -warps=\u00a76Warps\:\u00a7r {0} -warpsCount=\u00a76Aqui tem\u00a7c {0} \u00a76warps. Mostrando p\u00e1gina \u00a7c {1} \u00a76de \u00a7c {2} \u00a76. -weatherStorm=\u00a76Voc\u00ea definiu o tempo para \u00a7ctempestade\u00a76 em\u00a7c {0}\u00a76. -weatherStormFor=\u00a76Voc\u00ea definiu o tempo para \u00a7ctempestade\u00a76 em\u00a7c {0} \u00a76por {1} segundos. -weatherSun=\u00a76Voc\u00ea definiu o tempo para \u00a7csol\u00a76 em\u00a7c {0}\u00a76. -weatherSunFor=\u00a76Voc\u00ea definiu o tempo para \u00a7csun\u00a76 em\u00a7c {0} \u00a76por {1} seconds. -whoisAFK=\u00a76 - AFK\:\u00a7r {0} -whoisBanned=\u00a76 - Banido\:\u00a7r {0} -whoisExp=\u00a76 - Exp\:\u00a7r {0} (N\u00edvel {1}) -whoisFly=\u00a76 - Modo Fly\:\u00a7r {0} ({1}) -whoisGamemode=\u00a76 - Modo de Jogo\:\u00a7r {0} -whoisGeoLocation=\u00a76 - Localizacao\:\u00a7r {0} -whoisGod=\u00a76 - Modo deus\:\u00a7r {0} -whoisHealth=\u00a76 - Vida\:\u00a7r {0}/20 -whoisIPAddress=\u00a76 - Endereco IP\:\u00a7r {0} -whoisJail=\u00a76 - Na cadeia\:\u00a7r {0} -whoisLocation=\u00a76 - Localizacao\:\u00a7r ({0}, {1}, {2}, {3}) -whoisMoney=\u00a76 - Dinheiro\:\u00a7r {0} -whoisMuted=\u00a76 - Silenciado\:\u00a7r {0} -whoisNick=\u00a76 - Apelido\:\u00a7r {0} -whoisOp=\u00a76 - OP\:\u00a7r {0} -whoisTop=\u00a76 \=\=\=\=\=\= Quem\u0089\:\u00a7c {0} \u00a76\=\=\=\=\=\= -worth=\u00a7aPack de {0} vale \u00a7c{1}\u00a7a ({2} a {3} cada) -worthMeta=\u00a7aPack de {0} com metadata de {1} vale \u00a7c{2}\u00a7a ({3} a {4} cada) -worthSet=\u00a76Valor definido +warpListPermission=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para listar os warps. +warpNotExist=\u00A74Esse warp n\u00E3o existe. +warpOverwrite=\u00A74Voc\u00EA n\u00E3o pode sobreescrever esse warp. +warpSet=\u00A76Warp\u00A7c {0} \u00A76definido. +warpUsePermission=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para usar esse warp. +warpingTo=\u00A76Indo para\u00A7c {0}\u00A76. +warps=\u00A76Warps\:\u00A7r {0} +warpsCount=\u00A76Aqui tem\u00A7c {0} \u00A76warps. Mostrando p\u00E1gina \u00A7c {1} \u00A76de \u00A7c {2} \u00A76. +weatherStorm=\u00A76Voc\u00EA definiu o tempo para \u00A7ctempestade\u00A76 em\u00A7c {0}\u00A76. +weatherStormFor=\u00A76Voc\u00EA definiu o tempo para \u00A7ctempestade\u00A76 em\u00A7c {0} \u00A76por {1} segundos. +weatherSun=\u00A76Voc\u00EA definiu o tempo para \u00A7csol\u00A76 em\u00A7c {0}\u00A76. +weatherSunFor=\u00A76Voc\u00EA definiu o tempo para \u00A7csun\u00A76 em\u00A7c {0} \u00A76por {1} segundos. +whoisAFK=\u00A76 - AFK\:\u00A7r {0} +whoisBanned=\u00A76 - Banido\:\u00A7r {0} +whoisExp=\u00A76 - Exp\:\u00A7r {0} (N\u00EDvel {1}) +whoisFly=\u00A76 - Modo Fly\:\u00A7r {0} ({1}) +whoisGamemode=\u00A76 - Modo de Jogo\:\u00A7r {0} +whoisGeoLocation=\u00A76 - Geo Localiza\u00E7\u00E3o\:\u00A7r {0} +whoisGod=\u00A76 - Modo deus\:\u00A7r {0} +whoisHealth=\u00A76 - Vida\:\u00A7r {0}/20 +whoisIPAddress=\u00A76 - Endere\u00E7o IP\:\u00A7r {0} +whoisJail=\u00A76 - Na cadeia\:\u00A7r {0} +whoisLocation=\u00A76 - Localiza\u00E7\u00E3o\:\u00A7r ({0}, {1}, {2}, {3}) +whoisMoney=\u00A76 - Dinheiro\:\u00A7r {0} +whoisMuted=\u00A76 - Silenciado\:\u00A7r {0} +whoisNick=\u00A76 - Apelido\:\u00A7r {0} +whoisOp=\u00A76 - OP\:\u00A7r {0} +whoisTop=\u00A76 \=\=\=\=\=\= Quem \u00E9\:\u00A7c {0} \u00A76\=\=\=\=\=\= +worth=\u00A7aPack de {0} vale \u00A7c{1}\u00A7a ({2} a {3} cada) +worthMeta=\u00A7aPack de {0} com metadata de {1} vale \u00A7c{2}\u00A7a ({3} a {4} cada) +worthSet=\u00A76Valor definido year=ano years=anos -youAreHealed=\u00a76Voc\u00ea foi curado. -youHaveNewMail=\u00a76Voc\u00ea tem\u00a7c {0} \u00a76mensagens\! Digite \u00a7c/mail read\u00a76 para ver. -whoisHunger=\u00a76 - Fome\:\u00a7r {0}/20 (+{1} satura\u00e7\u00e3o) -kitDelay=\u00a7m{0}\u00a7r -giveSpawnFailure=\u00a74N\u00e3o tem espa\u00e7o, \u00a7c{0} \u00a7c{1} \u00a74foi perdido. -noKitGroup=\u00a74Voc\u00ea n\u00e3o tem acesso \u00e0 este kit. -inventoryClearingFromAll=\u00a76Esvaziando os invent\u00e1rios de todos os usu\u00e1rios... -inventoryClearingAllItems=\u00a76Limpou todos os itens do invent\u00e1rio de {0}\u00a76. -inventoryClearingAllArmor=\u00a76Limpou todos os itens do invent\u00e1rio e armaduras de {0}\u00a76.\u00a0. -inventoryClearingAllStack=\u00a76Limpou todos \u00a7c {0} \u00a76de {1}\u00a76. -inventoryClearingStack=\u00a76Removido\u00a7c {0} \u00a76de\u00a7c {1} \u00a76de {2}\u00a76. -inventoryClearFail=\u00a74Jogador {0} \u00a74n\u00e3o tem \u00a7c {1} \u00a74de\u00a7c {2}\u00a74. +youAreHealed=\u00A76Voc\u00EA foi curado. +youHaveNewMail=\u00A76Voc\u00EA tem\u00A7c {0} \u00A76mensagens\! Digite \u00A7c/mail read\u00A76 para ver. +whoisHunger=\u00A76 - Fome\:\u00A7r {0}/20 (+{1} satura\u00E7\u00E3o) +kitDelay=\u00A7m{0}\u00A7r +giveSpawnFailure=\u00A74N\u00E3o tem espa\u00E7o, \u00A7c{0} \u00A7c{1} \u00A74foi perdido. +noKitGroup=\u00A74Voc\u00EA n\u00E3o tem acesso a este kit. +inventoryClearingFromAll=\u00A76Esvaziando os invent\u00E1rios de todos os usu\u00E1rios... +inventoryClearingAllItems=\u00A76Limpou todos os itens do invent\u00E1rio de {0}\u00A76. +inventoryClearingAllArmor=\u00A76Limpou todos os itens do invent\u00E1rio e armaduras de {0}\u00A76.\u00A0. +inventoryClearingAllStack=\u00A76Limpou todos \u00A7c {0} \u00A76de {1}\u00A76. +inventoryClearingStack=\u00A76Removido\u00A7c {0} \u00A76de\u00A7c {1} \u00A76de {2}\u00A76. +inventoryClearFail=\u00A74Jogador {0} \u00A74n\u00E3o tem \u00A7c {1} \u00A74de\u00A7c {2}\u00A74. localNoOne= -totalSellableAll=\u00a7aO valor total dos itens e blocos dispon\u00edveis para venda \u00e9 de \u00a7c{1}\u00a7a. -totalSellableBlocks=\u00a7aO valor total dos blocos dispon\u00edveis para venda \u00e9 de \u00a7c{1}\u00a7a. -radiusTooBig=\u00a74O raio e muito grande. O raio maximo permitido \u00e9 de {0}. -isIpBanned=\u00a76IP \u00a7c{0} \u00a76 est\u00e1 banido. -mobDataList=\u00a76Dados do mob validos\:\u00a7r {0} -vanish=\u00a76Invis\u00edvel para {0}\u00a76\: {1} -noLocationFound=\u00a74Nenhuma localiza\u00e7\u00e3o v\u00e1lida encontrada. +totalSellableAll=\u00A7aO valor total dos itens e blocos dispon\u00EDveis para venda \u00E9 de \u00A7c{1}\u00A7a. +totalSellableBlocks=\u00A7aO valor total dos blocos dispon\u00EDveis para venda \u00E9 de \u00A7c{1}\u00A7a. +radiusTooBig=\u00A74O raio \u00E9 muito grande. O raio m\u00E1ximo permitido \u00E9 de {0}. +isIpBanned=\u00A76IP \u00A7c{0} \u00A76 est\u00E1 banido. +mobDataList=\u00A76Dados do mob v\u00E1lidos\:\u00A7r {0} +vanish=\u00A76Invis\u00EDvel para {0}\u00A76\: {1} +noLocationFound=\u00A74Nenhuma localiza\u00E7\u00E3o v\u00E1lida encontrada. coordsKeyword={0}, {1}, {2} -banExemptOffline=\u00a74Voc\u00ea n\u00e3o pode banir jogadores desconectados. -tempbanExemptOffline=\u00a74Voc\u00ea n\u00e3o pode banir temporariamente jogadores desconectados. -mayNotJailOffline=\u00a74Voc\u00ea n\u00e3o pode prender jogadores desconectados. -muteExemptOffline=\u00a74Voc\u00ea n\u00e3o pode silenciar jogadores desconectados. -ignoreExempt=\u00a74Voc\u00ea n\u00e3o pode ignorar este jogador. -unsafeTeleportDestination=\u00a74O destino de teleporte \u00e9 inseguro e o teleporte de seguran\u00e7a est\u00e1 desabilitado. -noMetaJson=Metadata JSON n\u00e3o \u00e9 suportado nest\u00e1 vers\u00e3o do Bukkit. -maxMoney=\u00a74est\u00e1 transa\u00e7\u00e3o iria exceder o limite de saldo para est\u00e1 conta. -skullChanged=\u00a76Cr\u00e2nio mudou para \u00a7c {0}. \u00a76. -alphaNames=\u00a74Nomes de jogadores s\u00f3 podem conter letras, n\u00fameros e sublinhados. -givenSkull=\u00a76Voc\u00ea recebeu a cabe\00e7a de \u00a7c{0}\u00a76. -noPermissionSkull=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para modificar esse cr\u00e2nio. -teleportInvalidLocation=Valores de coordenadas n\u00e3o pode ser maior que 30000000 -invalidSkull=\u00a74Por favor, segure a cabe\00e7a de algum player. -weatherInvalidWorld=Mundo {0} n\u00e3o foi encontrado\! -gameModeInvalid=\u00a74Voc\u00ea precisa especificar um modo de jogador v\u00e1lido. -mailTooLong=\u00a74Mensagem de e-mail muito longa tente ficar apenas em 1000 letras. -mailDelay=Muitos e-mails foram enviados no \u00faltimo minuto. M\u00e1ximo\: {0} -seenAccounts=\u00a76Player tamb\u00e9m foi conhecido como\: \u00a7c {0} -unableToSpawnItem=\u00a74n\u00e3o pode criar \u00a7c{0}\u00a74, esse item n\u00e3o e cri\u00e1vel. -itemsConverted=\u00a76Convertendo todos os itens para blocos. -itemsNotConverted=\u00a74Voc\u00ea n\u00e3o tem itens que possam virar blocos. -mailSentTo=\u00a7c{0}\u00a76 foi enviado para o seguinte email\: +banExemptOffline=\u00A74Voc\u00EA n\u00E3o pode banir jogadores desconectados. +tempbanExemptOffline=\u00A74Voc\u00EA n\u00E3o pode banir temporariamente jogadores desconectados. +mayNotJailOffline=\u00A74Voc\u00EA n\u00E3o pode prender jogadores desconectados. +muteExemptOffline=\u00A74Voc\u00EA n\u00E3o pode silenciar jogadores desconectados. +ignoreExempt=\u00A74Voc\u00EA n\u00E3o pode ignorar este jogador. +unsafeTeleportDestination=\u00A74O destino de teleporte \u00E9 inseguro e o teleporte de seguran\u00E7a est\u00E1 desabilitado. +noMetaJson=Metadata JSON n\u00E3o \u00E9 suportado nesta vers\u00E3o do Bukkit. +maxMoney=\u00A74Esta transa\u00E7\u00E3o iria exceder o limite de saldo para esta conta. +skullChanged=\u00A76Cr\u00E2nio mudou para \u00A7c {0}. \u00A76. +alphaNames=\u00A74Nomes de jogadores s\u00F3 podem conter letras, n\u00FAmeros e sublinhados. +givenSkull=\u00A76Voc\u00EA recebeu a cabe\u00E7a de \u00A7c{0}\u00A76. +noPermissionSkull=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para modificar esse cr\u00E2nio. +teleportInvalidLocation=Valores de coordenadas n\u00E3o podem ser maiores que 30000000 +invalidSkull=\u00A74Por favor, segure a cabe\u00E7a de algum jogador. +weatherInvalidWorld=Mundo {0} n\u00E3o foi encontrado\! +gameModeInvalid=\u00A74Voc\u00EA precisa especificar um modo de jogador v\u00E1lido. +mailTooLong=\u00A74Mensagem de e-mail muito longa tente ficar apenas em 1000 letras. +mailDelay=Muitos e-mails foram enviados no \u00FAltimo minuto. M\u00E1ximo\: {0} +seenAccounts=\u00A76Player tamb\u00E9m foi conhecido como\: \u00A7c {0} +unableToSpawnItem=\u00A74N\u00E3o pode criar \u00A7c{0}\u00A74, esse item n\u00E3o \u00E9 cri\u00E1vel. +itemsConverted=\u00A76Convertendo todos os itens para blocos. +itemsNotConverted=\u00A74Voc\u00EA n\u00E3o tem itens que possam virar blocos. +mailSentTo=\u00A7c{0}\u00A76 foi enviado para o seguinte email\: mailMessage={0} -whoisTempBanned=\u00a76 - Banido:\u00a7r {0} -playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 baniu temporariamente \u00a7c{1}\u00a76 por \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. -mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} -cantGamemode=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para mudar para o gamemode {0} -createdKit=\u00a76Kit criado: \u00a7c{0} \u00a76com \u00a7c{1} \u00a76entradas e tempo \u00a7c{2} -spectator=espectador -kitContains=\u00a76Kit \u00a7c{0} \u00a76cont\u00e9m: -kitItem=\u00a76- \u00a7f{0} -invalidBanner=\u00a74Invalid banner syntax. -commandCooldown=\u00a7cYou cannot type that command for {0}. +whoisTempBanned=\u00A76 - Banido:\u00A7r {0} +playerTempBanned=\u00A76Jogador \u00A7c{0}\u00A76 baniu temporariamente \u00A7c{1}\u00A76 por \u00A7c{2}\u00A76: \u00A7c{3}\u00A76. +mailFormat=\u00A76[\u00A7r{0}\u00A76] \u00A7r{1} +cantGamemode=\u00A74Voc\u00EA n\u00E3o tem permiss\u00E3o para mudar para o gamemode {0} +createdKit=\u00A76Kit criado: \u00A7c{0} \u00A76com \u00A7c{1} \u00A76entradas e tempo \u00A7c{2} +spectator=espetador +kitContains=\u00A76Kit \u00A7c{0} \u00A76cont\u00E9m: +kitItem=\u00A76- \u00A7f{0} +invalidBanner=\u00A74Syntax de estandarte inv\u00E1lida. +commandCooldown=\u00A7cN\u00E3o pode executar esse comando por {0}. From 8b37bb5bd7cd05afc5d368e00797dc90eaabd9b7 Mon Sep 17 00:00:00 2001 From: Dima Melikhov Date: Sat, 21 May 2016 18:14:25 +0300 Subject: [PATCH 23/28] Update messages_ru.properties --- Essentials/src/messages_ru.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/messages_ru.properties b/Essentials/src/messages_ru.properties index b5f99ddaf..e02df1eb4 100644 --- a/Essentials/src/messages_ru.properties +++ b/Essentials/src/messages_ru.properties @@ -104,7 +104,7 @@ errorWithMessage=\u00a7c\u041e\u0448\u0438\u0431\u043a\u0430\:\u00a74 {0} essentialsHelp1=\u0424\u0430\u0439\u043b \u0438\u0441\u043f\u043e\u0440\u0447\u0435\u043d, Essentials \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0435\u0433\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c. Essentials \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d. \u0422\u044b \u043c\u043e\u0436\u0435\u0448\u044c \u0441\u0430\u043c \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u0442\u044c \u044d\u0442\u043e, \u043f\u0435\u0440\u0435\u0439\u0434\u044f \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 http\://tiny.cc/EssentialsChat essentialsHelp2=\u0424\u0430\u0439\u043b \u0438\u0441\u043f\u043e\u0440\u0447\u0435\u043d, Essentials \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0435\u0433\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c. Essentials \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d. \u0422\u044b \u043c\u043e\u0436\u0435\u0448\u044c \u0441\u0430\u043c \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u0442\u044c \u044d\u0442\u043e, \u0432\u0432\u0435\u0434\u044f /essentialshelp \u0432 \u0438\u0433\u0440\u0435, \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0439\u0434\u044f \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 http\://tiny.cc/EssentialsChat essentialsReload=\u00a76Essentials \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u00a7c {0}. -exp=c{0} \u00a76\u0438\u043c\u0435\u0435\u0442\u00a7c {1} \u00a76\u043e\u043f\u044b\u0442\u0430 (\u0443\u0440\u043e\u0432\u0435\u043d\u044c\u00a7c {2}\u00a76) \u043d\u0443\u0436\u043d\u043e\u00a7c {3} \u00a76\u043e\u043f\u044b\u0442\u0430 \u0434\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f. +exp={0} \u00a76\u0438\u043c\u0435\u0435\u0442\u00a7c {1} \u00a76\u043e\u043f\u044b\u0442\u0430 (\u0443\u0440\u043e\u0432\u0435\u043d\u044c\u00a7c {2}\u00a76) \u043d\u0443\u0436\u043d\u043e\u00a7c {3} \u00a76\u043e\u043f\u044b\u0442\u0430 \u0434\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f. expSet=\u00a7c{0} \u00a76\u0442\u0435\u043f\u0435\u0440\u044c \u0438\u043c\u0435\u0435\u0442\u00a7c {1} \u00a76\u043e\u043f\u044b\u0442\u0430. extinguish=\u00a76\u0412\u044b \u043f\u043e\u0442\u0443\u0448\u0438\u043b\u0438 \u0441\u0435\u0431\u044f. extinguishOthers=\u00a76\u0412\u044b \u043f\u043e\u0442\u0443\u0448\u0438\u043b\u0438 {0}\u00a76. From 890c32949da4422cadc205fa89adebf7a766c108 Mon Sep 17 00:00:00 2001 From: Guilherme Penedo Date: Fri, 8 Jul 2016 13:53:49 +0100 Subject: [PATCH 24/28] Updated and changed most of the pt translation --- Essentials/src/messages_pt.properties | 1057 ++++++++++++------------- 1 file changed, 528 insertions(+), 529 deletions(-) diff --git a/Essentials/src/messages_pt.properties b/Essentials/src/messages_pt.properties index 0b152889d..c09be3e35 100644 --- a/Essentials/src/messages_pt.properties +++ b/Essentials/src/messages_pt.properties @@ -2,564 +2,563 @@ #version: TeamCity # Single quotes have to be doubled: '' # Translations start here -# by: -action=\u00a75* {0} \u00a75{1} -addedToAccount=\u00a7a{0} foi adicionado em sua conta. -addedToOthersAccount=\u00a7a{0} foi adicionado na conta de {1}\u00a7a. Novo saldo\: {2} +# by: guipenedo +action=\u00A75* {0} \u00A75{1} +addedToAccount=\u00A7a{0} foram adicionados \u00E0 tua conta. +addedToOthersAccount=\u00A7a{0} foram adicionados \u00E0 conta de {1}\u00A7a. Novo saldo: {2} adventure=aventura -alertBroke=quebrado\: -alertFormat=\u00a73[{0}] \u00a7r {1} \u00a76 {2} em\: {3} -alertPlaced=colocado\: -alertUsed=usado\: -antiBuildBreak=\u00a74Voce nao tem permissao para quebrar\u00a7c {0} \u00a74blocos aqui. -antiBuildCraft=\u00a74Voce nao tem permissao para criar\u00a7c {0}\u00a74. -antiBuildDrop=\u00a74Voce nao tem permissao para dropar\u00a7c {0}\u00a74. -antiBuildInteract=\u00a74Voc\u00c3\u00aa nao tem permissao para interagir com\u00a7c {0}\u00a74. -antiBuildPlace=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para colocar\u00a7c {0} \u00a74aqui. -antiBuildUse=\u00a74Voc\u00c3\u00aa nao tem permissao para usar\u00a7c {0}\u00a74. -autoAfkKickReason=Voc\u00c3\u00aa foi kickado por ficar parado por mais de {0} minutos. -backAfterDeath=\u00a76Digite /back para retornar ao local onde voce morreu. -backUsageMsg=\u00a76Voltando ao local anterior. -backupDisabled=\u00a74Um script externo nao foi configurado. -backupFinished=\u00a76Backup acabou. -backupStarted=\u00a76Backup come\u00c3\u00a7ou. -balance=\u00a7aSaldo\:\u00a7c {0} -balanceOther=\u00a7aSaldo de {0}\u00a7a\:\u00a7c {1} -balanceTop=\u00a76Mais ricos ({0}) -banExempt=\u00a74Voce nao pode banir este jogador. -banFormat=\u00a74Banidos\:\n\u00a7r{0} -bed=\u00a7ocama\u00a7r -bedMissing=\u00a74Sua cama nao foi definida, esta corrompida ou esta bloqueada. -bedNull=\u00a7mcama\u00a7r -bedSet=\u00a76Cama definida\! -bigTreeFailure=\u00a74Falha ao gerar uma Arvore grande. Tente novamente na grama ou na terra. -bigTreeSuccess=\u00a76Arvore grande gerada. -blockList=\u00a76Essentials passou os seguintes comandos para outro plugin\: -bookAuthorSet=\u00a76Autor do livro definido para {0}. -bookLocked=\u00a76O livro esta trancado agora. -bookTitleSet=\u00a76Ti\u00adtulo do livro definido para {0}. -broadcast=\u00a7r\u00a76 [\u00a74Transmiss\u00e3o\u00a76] \u00a7a {0} -buildAlert=\u00a74Voce nao tem permissao para construir. -bukkitFormatChanged=Formato da versao do Bukkit alterada. Versao nao verificada. -burnMsg=\u00a76Voce colocou fogo em\u00a7c {0} \u00a76por\u00a7c {1} segundos\u00a76. -canTalkAgain=\u00a76Voce pode falar novamente. -cannotStackMob=\u00a74Voce nao tem permissao para empilhar varios mobs. -cantFindGeoIpDB=Nao foi possivel encontrar dados de GeoIP\! -cantReadGeoIpDB=Falha na leitura de dados GeoIP\! -cantSpawnItem=\u00a74Voce nao tem permissao para gerar o item\u00a7c {0}\u00a74. +alertBroke=destru\u00EDdo: +alertFormat=\u00A73[{0}] \u00A7r {1} \u00A76 {2} em: {3} +alertPlaced=colocado: +alertUsed=usado: +antiBuildBreak=\u00A74N\u00E3o tens permiss\u00E3o para destruir\u00A7c {0} \u00A74blocos aqui. +antiBuildCraft=\u00A74N\u00E3o tens permiss\u00E3o para criar\u00A7c {0}\u00A74. +antiBuildDrop=\u00A74N\u00E3o tens permiss\u00E3o para dropar\u00A7c {0}\u00A74. +antiBuildInteract=\u00A74N\u00E3o tens permiss\u00E3o para interagir com\u00A7c {0}\u00A74. +antiBuildPlace=\u00A74N\u00E3o tens permiss\u00E3o para colocar\u00A7c {0} \u00A74aqui. +antiBuildUse=\u00A74N\u00E3o tens permiss\u00E3o para usar\u00A7c {0}\u00A74. +autoAfkKickReason=Foste kickado por ficar parado por mais de {0} minutos. +backAfterDeath=\u00A76Digita /back para regressares onde morreste. +backUsageMsg=\u00A76A voltar para o local anterior. +backupDisabled=\u00A74Um script externo n\u00E3o foi configurado. +backupFinished=\u00A76Backup acabou. +backupStarted=\u00A76Backup iniciado. +balance=\u00A7aSaldo:\u00A7c {0} +balanceOther=\u00A7aSaldo de {0}\u00A7a:\u00A7c {1} +balanceTop=\u00A76Mais ricos ({0}) +banExempt=\u00A74N\u00E3o podes banir este jogador. +banFormat=\u00A74Banido por:n\u00A7r{0} +bed=\u00A7ocama\u00A7r +bedMissing=\u00A74A tua cama n\u00E3o foi definida, est\u00E1 corrompida ou est\u00E1 bloqueada. +bedNull=\u00A7mcama\u00A7r +bedSet=\u00A76Cama definida! +bigTreeFailure=\u00A74Falha ao gerar uma \u00E1rvore grande. Tenta novamente na relva ou na terra. +bigTreeSuccess=\u00A76\u00C1rvore grande gerada. +blockList=\u00A76Essentials passou os seguintes comandos para outro plugin: +bookAuthorSet=\u00A76Autor do livro definido para {0}. +bookLocked=\u00A76O livro est\u00E1 agora trancado. +bookTitleSet=\u00A76T\u00EDtulo do livro definido para {0}. +broadcast=\u00A7r\u00A76 [\u00A74Transmiss\u00E3o\u00A76] \u00A7a {0} +buildAlert=\u00A74N\u00E3o tens permiss\u00E3o para construir. +bukkitFormatChanged=O formato da vers\u00E3o de Bukkit foi alterado. Vers\u00E3o n\u00E3o verificada. +burnMsg=\u00A76Meteu \u00A7c {0} \u00A76a arder por\u00A7c {1} segundos\u00A76. +canTalkAgain=\u00A76Podes falar novamente. +cannotStackMob=\u00A74N\u00E3o tens permiss\u00E3o para criar v\u00E1rios mobs. +cantFindGeoIpDB=N\u00E3o foi poss\u00EDvel encontrar dados de GeoIP! +cantReadGeoIpDB=Falha ao ler o banco de dados do GeoIP! +cantSpawnItem=\u00A74N\u00E3o tens permiss\u00E3o para gerar o itens\u00A7c {0}\u00A74. chatTypeAdmin=[A] chatTypeLocal=[L] -chatTypeSpy=[Espiao] -cleaned=Os arquivos do usuario foram apagados. -cleaning=Apagando arquivos do usuario. -commandFailed=Comando {0} falhou\: -commandHelpFailedForPlugin=Erro ao tentar adquirir ajuda para o plugin\: {0} -commandNotLoaded=\u00a74Comando {0} esta carregado incorretamente. -compassBearing=\u00a76Rolamento\: {0} ({1} graus). -configFileMoveError=Falha ao mover config.yml para o local de backup. -configFileRenameError=Falha ao renomear o arquivo tempor\u00e1rio para config.yml. -connectedPlayers=\u00a76Jogadores conectados\u00a7r -connectionFailed=Falha ao estabelecer conexao. -cooldownWithMessage=\u00a74Resfriamento\: {0} -corruptNodeInConfig=\u00a74Aviso\: Seu arquivo de configuracao tem um no {0} corrompido. -couldNotFindTemplate=\u00a74Template nao encontrado {0} -creatingConfigFromTemplate=Criando configuracao do template\: {0} -creatingEmptyConfig=Criando configuracao vazia\: {0} +chatTypeSpy=[Espi\u00E3o] +cleaned=Os arquivos do usu\u00E1rio foram apagados. +cleaning=A apagar arquivos do usu\u00E1rio. +commandFailed=Comando {0} falhou: +commandHelpFailedForPlugin=Erro ao adquirir ajuda do plugin: {0} +commandNotLoaded=\u00A74Comando {0} est\u00E1 carregado incorretamente. +compassBearing=\u00A76Apontado para: {0} ({1} graus). +configFileMoveError=Falha ao mover a config.yml para o local do backup. +configFileRenameError=Falha ao alterar o nome do arquivo tempor\u00E1rio para config.yml. +connectedPlayers=\u00A76Jogadores conectados\u00A7r +connectionFailed=Falha ao conectar. +cooldownWithMessage=\u00A74Tempo restante: {0} +corruptNodeInConfig=\u00A74Not\u00EDcia: O teu ficheiro de configura\u00E7\u00E3o est\u00E1 corrompido ({0}). +couldNotFindTemplate=\u00A74Template n\u00E3o encontrado {0} +creatingConfigFromTemplate=A criar configura\u00E7\u00E3o baseado no modelo: {0} +creatingEmptyConfig=A criar configura\u00E7\u00E3o vazia: {0} creative=criativo currency={0}{1} -currentWorld=\u00a76Mundo atual\:\u00a7c {0} +currentWorld=\u00A76Mundo atual:\u00A7c {0} day=dia days=dias -defaultBanReason=Bateu o martelo do Ban\! -deleteFileError=Nao foi possivel deletar o arquivo\: {0} -deleteHome=\u00a76Casa\u00a7c {0} \u00a76foi removida. -deleteJail=\u00a76Prisao\u00a7c {0} \u00a76foi removida. -deleteWarp=\u00a76Warp\u00a7c {0} \u00a76foi removido. -deniedAccessCommand=\u00a7c{0} \u00a74foi negado o acesso ao comando. -denyBookEdit=\u00a74Voc\u00ea nao pode desbloquear este livro. -denyChangeAuthor=\u00a74Voce nao pode alterar o autor deste livro. -denyChangeTitle=\u00a74Voce nao pode alterar o t\u00edtulo deste livro. -depth=\u00a76Voce esta no nivel do mar. -depthAboveSea=\u00a76Voce esta aa\u00a7c {0} \u00a76bloco(s) acima do nivel do mar. -depthBelowSea=\u00a76Voce esta a\u00a7c {0} \u00a76bloco(s) abaixo do nivel do mar. -destinationNotSet=Destino nao definido\! -disableUnlimited=\u00a76Permissao de colocar coisas ilimitadas desativada para\u00a7c {0} \u00a76por {1}. -disabled=desabilitado -disabledToSpawnMob=\u00a74Spawnar este mob foi desativado na configurasao. -distance=\u00a76Distancia\: {0} -dontMoveMessage=\u00a76Teletransporte ira come\u00e7ar em \u00a7c {0}\u00a76. Nao se mecha. -downloadingGeoIp=Baixando o banco de dados GeoIP... isso pode levar um tempo (pais\: 0.6 MB, cidade\: 20MB) -duplicatedUserdata=Dados do usuario dupliacado\: {0} e {1}. -durability=\u00a76Essa ferramenta ainda pode ser usada mais \u00a7c{0}\u00a76 vezes -editBookContents=\u00a7eVoce pode agora editar o conteudo deste livro. -enableUnlimited=\u00a76Dando quantidade ilimidada de\u00a7c {0} \u00a76para \u00a7c{1}\u00a76. -enabled=habilitado -enchantmentApplied=\u00a76O encantamento\u00a7c {0} \u00a76foi aplicado ao item em sua mao. -enchantmentNotFound=\u00a74Encantamento nao encontrado\! -enchantmentPerm=\u00a74Voce nao tem permissao para\u00a7c {0}\u00a74. -enchantmentRemoved=\u00a76O encantamento\u00a7c {0} \u00a76foi removido do item em sua mao. -enchantments=\u00a76Encantamentos\:\u00a7r {0} +defaultBanReason=Sem raz\u00E3o! +deleteFileError=N\u00E3o foi poss\u00EDvel apagar o arquivo: {0} +deleteHome=\u00A76Casa\u00A7c {0} \u00A76removida. +deleteJail=\u00A76Pris\u00E3o\u00A7c {0} \u00A76 removida. +deleteWarp=\u00A76Warp\u00A7c {0} \u00A76 removido. +deniedAccessCommand=\u00A7c{0} \u00A76 n\u00E3o p\u00F4de utilizar um comando. +denyBookEdit=\u00A74N\u00E3o podes editar este livro. +denyChangeAuthor=\u00A74N\u00E3o podes mudar o autor deste livro. +denyChangeTitle=\u00A74N\u00E3o podes mudar o t\u00EDtulo deste livro. +depth=\u00A76Est\u00E1s no n\u00EDvel do mar. +depthAboveSea=\u00A76Est\u00E1s a\u00A7c {0} \u00A76bloco(s) acima do n\u00EDvel do mar. +depthBelowSea=\u00A76Est\u00E1s a\u00A7c {0} \u00A76bloco(s) abaixo do n\u00EDvel do mar. +destinationNotSet=Destino n\u00E3o definido! +disableUnlimited=\u00A76Permiss\u00E3o para construir ilimitadamente {0} desativada por\u00A7c {1}. +disabled=desativou +disabledToSpawnMob=\u00A74Spawnar este mob foi desativado na configura\u00E7\u00E3o. +distance=\u00A76Dist\u00E2ncia: {0} +dontMoveMessage=\u00A76Teletransporte vai come\u00E7ar em\u00A7c {0}\u00A76. n\u00E3o te mexas. +downloadingGeoIp=A baixar banco de dados GeoIP... pode demorar algum tempo (pa\u00EDs: 0.6 MB, cidade: 20MB) +duplicatedUserdata=Dados do usu\u00E1rio em duplicado: {0} e {1}. +durability=\u00A76Esta ferramenta ainda pode ser usada mais \u00A7c{0}\u00A76 vezes +editBookContents=\u00A7ePodes agora alterar o conte\u00FAdo deste livro. +enableUnlimited=\u00A76A dar quantidade ilimidada de\u00A7c {0} \u00A76a \u00A7c{1}\u00A76. +enabled=ativou +enchantmentApplied=\u00A76O encantamento\u00A7c {0} \u00A76foi aplicado ao item na tua m\u00E3o. +enchantmentNotFound=\u00A74Encantamento n\u00E3o encontrado! +enchantmentPerm=\u00A74N\u00E3o tens permiss\u00E3o para\u00A7c {0}\u00A74. +enchantmentRemoved=\u00A76O encantamento\u00A7c {0} \u00A76foi removido do item na tua m\u00E3o. +enchantments=\u00A76Encantamentos:\u00A7r {0} errorCallingCommand=Erro ao usar o comando /{0} -errorWithMessage=\u00a7cErro\:\u00a74 {0} -essentialsHelp1=O arquivo esta corrompido e o Essentials nao consegue abri\u00ad-lo. Essentials desativado. Se voce nao consegue arrumar o arquivo sozinho, acesse http\://tiny.cc/EssentialsChat -essentialsHelp2=O arquivo esta corrompido e o Essentials nao consegue abri\u00ad-lo. Essentials desativado. Se voce nao consegue arrumar o arquivo sozinho, digite /essentialshelp no jogo ou acesse http\://tiny.cc/EssentialsChat -essentialsReload=\u00a76Essentials recarregado\u00a7c {0}. -exp=\u00a7c{0} \u00a76tem\u00a7c {1} \u00a76de exp (nivel\u00a7c {2}\u00a76) e precisa de\u00a7c {3} \u00a76mais exp para subir de ni\u00advel. -expSet=\u00a7c{0} \u00a76agora tem\u00a7c {1} \u00a76de exp. -extinguish=\u00a76Voce se matou. -extinguishOthers=\u00a76Voce matou {0}\u00a76. -failedToCloseConfig=Falha ao fechar a configuracao {0}. -failedToCreateConfig=Falha ao criar a configuracao {0}. -failedToWriteConfig=Falha ao escrever a configuracao {0}. -false=\u00a74falso\u00a7r -feed=\u00a76Seu apetite foi saciado. -feedOther=\u00a76Voc\u00ea saciou o apetite de {0}\u00a76. -fileRenameError=Falha ao renomear o arquivo {0}\! -fireworkColor=\u00a74Parametros inseridos para criar um fogo de artifi\u00adcio invalidos. Defina uma cor antes. -fireworkEffectsCleared=\u00a76Todos os efeitos deste pack foram removidos. -fireworkSyntax=\u00a76Par\u00c3\u00a2metros do fogo de artif\u00c3\u00adcio\:\u00a7c color\: [fade\:] [shape\:] [effect\:]\n\u00a76Para usar m\u00c3\u00baltiplas cores ou efeitos, separe-os entre v\u00c3\u00adrgulas\: \u00a7cred,blue,pink\n\u00a76Formatos\:\u00a7c star, ball, large, creeper, burst \u00a76Efeitos\:\u00a7c trail, twinkle. -flyMode=\u00a76Modo Voar foi\u00a7c {0} \u00a76para {1}\u00a76. +errorWithMessage=\u00A7cErro:\u00A74 {0} +essentialsHelp1=O arquivo est\u00E1 corrompido e o Essentials n\u00E3o consegue abri-lo. Essentials desativado. Se n\u00E3o consegues arranjar o arquivo sozinho, acessa http://tiny.cc/EssentialsChat +essentialsHelp2=O arquivo est\u00E1 corrompido e o Essentials n\u00E3o consegue abri-lo. Essentials desativado. Se n\u00E3o consegues arranjar o arquivo sozinho, digita /essentialshelp no jogo ou acesse http://tiny.cc/EssentialsChat +essentialsReload=\u00A76Essentials recarregado\u00A7c {0}. +exp=\u00A7c{0} \u00A76tens\u00A7c {1} \u00A76de exp (n\u00EDvel\u00A7c {2}\u00A76) e precisas de\u00A7c {3} \u00A76mais exp para subir de n\u00EDvel. +expSet=\u00A7c{0} \u00A76agora tens\u00A7c {1} \u00A76de exp. +extinguish=\u00A76Extinguiste-te. +extinguishOthers=\u00A76Extinguiste {0}\u00A76. +failedToCloseConfig=Falha ao fechar o ficheiro de configura\u00E7\u00E3o {0}. +failedToCreateConfig=Falha ao criar o ficheiro de configura\u00E7\u00E3o {0}. +failedToWriteConfig=Falha ao alterar o ficheiro de configura\u00E7\u00E3o {0}. +false=\u00A74falso\u00A7r +feed=\u00A76O teu apetite foi saciado. +feedOther=\u00A76O apetite de {0}\u00A76 foi saciado. +fileRenameError=Falha ao alterar o nome do arquivo {0}! +fireworkColor=\u00A74Par\u00E2metros inseridos para criar um fogo de artif\u00EDcio inv\u00E1lidos. Define uma cor antes. +fireworkEffectsCleared=\u00A76Todos os efeitos deste pack foram removidos. +fireworkSyntax=\u00A76Par\u00E2metros do fogo de artif\u00EDcio:\u00A7c color: [fade:] [shape:] [effect:]n\u00A76Para usar multiplas cores ou efeitos, separe-os entre v\u00EDrgulas: \u00A7cred,blue,pinkn\u00A76Formatos:\u00A7c star, ball, large, creeper, burst \u00A76Efeitos:\u00A7c trail, twinkle. +flyMode=\u00A76Modo voar foi\u00A7c {0} \u00A76para {1}\u00A76. flying=voando -foreverAlone=\u00a74Voc\u00c3\u00aa nao tem ningu\u00c3\u00a9m a quem responder. -fullStack=\u00a74Voc\u00c3\u00aa j\u00c3\u00a1 tem um pack completo. -gameMode=\u00a76Modo de jogo\u00a7c {0} \u00a76definido para {1}\u00a76. -gcWorld=\u00a76 {0} "\u00a7c {1} \u00a76"\: \u00a7c {2} \u00a76 peda\u00e7os, \u00a7c {3} \u00a76 unidades, \u00a7c {4} \u00a76 placas. -gcfree=\u00a76Mem\u00f3ria livre\:\u00a7c {0} MB. -gcmax=\u00a76Mem\u00c3\u00b3ria m\u00c3\u00a1xima\:\u00a7c {0} MB. -gctotal=\u00a76Mem\u00c3\u00b3ria alocada\:\u00a7c {0} MB. -geoIpUrlEmpty=URL de download do GeoIP est\u00c3\u00a1 vazio. -geoIpUrlInvalid=URL de download do GeoIP inv\u00c3\u00a1lido. -geoipJoinFormat=\u00a76Jogador \u00a7c{0} \u00a76vem de \u00a7c{1}\u00a76. -giveSpawn=\u00a76Dando\u00a7c {0}\u00a7c {1} \u00a76para\u00a7c {2}\u00a76. -godDisabledFor=\u00a7cdesabilitado\u00a76 para\u00a7c {0} -godEnabledFor=\u00a7aativado\u00a76 para\u00a7c {0}. -godMode=\u00a76Modo deus\u00a7c {0}\u00a76. -groupDoesNotExist=\u00a74Nao h\u00c3\u00a1 ningu\u00c3\u00a9m online nesse grupo\! -groupNumber=\u00a7c{0}\u00a7f online, para a lista completa\:\u00a7c /{1} {2} -hatArmor=\u00a74Voc\u00c3\u00aa nao pode usar esse item como chap\u00c3\u00a9u\! -hatEmpty=\u00a74Voc\u00c3\u00aa nao est\u00c3\u00a1 usando chap\u00c3\u00a9u. -hatFail=\u00a74Voc\u00c3\u00aa deve ter algo em sua mao para vestir. -hatPlaced=\u00a76Aproveite seu novo chap\u00c3\u00a9u\! -hatRemoved=\u00a76Seu chap\u00c3\u00a9u foi removido. -haveBeenReleased=\u00a76Voc\u00c3\u00aa foi liberado. -heal=\u00a76Voc\u00c3\u00aa foi curado. -healDead=\u00a74Voc\u00c3\u00aa nao pode curar algu\u00c3\u00a9m que est\u00c3\u00a1 morto\! -healOther=\u00a7c {0}\u00a76foi curado. -helpConsole=Para ver ajuda pelo console, digite ?. -helpFrom=\u00a76Comandos de {0}\: -helpLine=\u00a76/{0}\u00a7r\: {1} -helpMatching=\u00a76Comandos correspondidos com "\u00a7c{0}\u00a76"\: -helpOp=\u00a7 4\u00ba [AjudaOp] \u00a7r \u00a7 6 {0}\: \u00a7r {1} -helpPlugin=\u00a74{0}\u00a7r\: Ajuda do Plugin\: /help {1} -holdBook=\u00a74Voc\u00c3\u00aa nao est\u00c3\u00a1 segurando um livro que possa escrever. -holdFirework=\u00a74Voc\u00c3\u00aa deve estar segurando um fogo de artif\u00c3\u00adcio para adicionar efeitos. -holdPotion=\u00a74Voc\u00c3\u00aa deve estar segurando uma po\u00c3\u00a7ao para aplicar efeitos para ela. -holeInFloor=\u00a74Buraco no chao\! -homeSet=\u00a76Casa definida. -homes=\u00a76Casas\:\u00a7r {0} +foreverAlone=\u00A74N\u00E3o tens ningu\u00E9m a quem responder. +fullStack=\u00A74J\u00E1 tens um pack completo. +gameMode=\u00A76Modo de jogo\u00A7c {0} \u00A76definido para {1}\u00A76. +gcWorld=\u00A76 {0} "\u00A7c {1} \u00A76": \u00A7c {2} \u00A76 peda\u00E7os, \u00A7c {3} \u00A76 unidades, \u00A7c {4} \u00A76 telhas. +gcfree=\u00A76Mem\u00F3ria livre:\u00A7c {0} MB. +gcmax=\u00A76Mem\u00F3ria m\u00E1xima:\u00A7c {0} MB. +gctotal=\u00A76Mem\u00F3ria alocada:\u00A7c {0} MB. +geoIpUrlEmpty=URL de download do GeoIP est\u00E1 vazio. +geoIpUrlInvalid=URL de download do GeoIP inv\u00E1lido. +geoipJoinFormat=\u00A76Jogador \u00A7c{0} \u00A76vem de \u00A7c{1}\u00A76. +giveSpawn=\u00A76Dando\u00A7c {0}\u00A7c {1} \u00A76a\u00A7c {2}\u00A76. +godDisabledFor=\u00A7cDesativado\u00A76 para\u00A7c {0} +godEnabledFor=\u00A7aAtivado\u00A76 para\u00A7c {0}. +godMode=\u00A76Modo deus\u00A7c {0}\u00A76. +groupDoesNotExist=\u00A74N\u00E3o h\u00E1 ningu\u00E9m online nesse grupo! +groupNumber=\u00A7c{0}\u00A7f online, para a lista completa:\u00A7c /{1} {2} +hatArmor=\u00A74N\u00E3o podes usar esse item como chap\u00E9u! +hatEmpty=\u00A74N\u00E3o est\u00E1s a usar um chap\u00E9u. +hatFail=\u00A74Tens de ter um item na tua m\u00E3o para usar como chap\u00E9u. +hatPlaced=\u00A76Aproveita o teu novo chap\u00E9u! +hatRemoved=\u00A76O teu chap\u00E9u foi removido. +haveBeenReleased=\u00A76Foste libertado. +heal=\u00A76Foste curado. +healDead=\u00A74N\u00E3o podes curar alguem que est\u00E1 morto! +healOther=\u00A7c{0} \u00A76foi curado. +helpConsole=Para veres ajuda pelo console, digita ?. +helpFrom=\u00A76Comandos de {0}: +helpLine=\u00A76/{0}\u00A7r: {1} +helpMatching=\u00A76Comandos correspondidos com "\u00A7c{0}\u00A76": +helpOp=\u00A74[HelpOP]\u00A76 {0}: \u00A7r {1} +helpPlugin=\u00A74{0}\u00A7r: Ajuda do Plugin: /help {1} +holdBook=\u00A7N\u00E3o est\u00E1s a segurar num livro em que possas escrever. +holdFirework=\u00A74Tens de estar a segurar fogo de artif\u00EDcio para lhe adicionares efeitos. +holdPotion=\u00A74Tens de estar a segurar uma po\u00E7\u00E3o para lhe adicionares efeitos. +holeInFloor=\u00A74Buraco no ch\u00E3o! +homeSet=\u00A76Casa definida. +homes=\u00A76Casas:\u00A7r {0} hour=hora hours=horas -ignoredList=\u00a76Ignorado\:\u00a7r {0} -ignorePlayer=\u00a76Voc\u00c3\u00aa est\u00c3\u00a1 agora ignorando o jogador\u00a7c {0} \u00a76. -illegalDate=Formate de data ilegal. -infoChapter=\u00a76Selecione o Cap\u00edtulo\: -infoChapterPages=\u00a7e ---- \u00a76{0} \u00a7e--\u00a76 P\u00e1gina \u00a7c{1}\u00a76 de \u00a7c{2} \u00a7e---- -infoPages=\u00a7e ---- \u00a76{2} \u00a7e--\u00a76 P\u00c3\u00a1gina \u00a7c{0}\u00a76/\u00a7c{1} \u00a7e---- -infoUnknownChapter=\u00a74Cap\u00edtulo Desconhecido. -insufficientFunds=\u00a74Dinheiro insuficiente. -invalidCharge=\u00a74Argumento inv\u00c3\u00a1lido. -invalidFireworkFormat=\u00a74A op\u00e7\u00e3o \u00a7c{0} \u00a74n\u00e3o \u00e9 v\u00e1lida para \u00a7c{1}\u00a74. -invalidHome=\u00a74Casa\u00a7c {0} \u00a74nao existe\! -invalidHomeName=\u00a74Nome de casa inv\u00c3\u00a1lido\! -invalidMob=\u00a74Tipo de mob invalido. -invalidNumber=N\u00c3\u00bamero inv\u00c3\u00a1lido. -invalidPotion=\u00a74Po\u00c3\u00a7ao inv\u00c3\u00a1lida. -invalidPotionMeta=\u00a74Meta inv\u00c3\u00a1lida de po\u00c3\u00a7ao\: \u00a7c{0}\u00a74. -invalidSignLine=\u00a74Linha\u00a7c {0} \u00a74na placa est\u00c3\u00a1 inv\u00c3\u00a1lida. -invalidWarpName=\u00a74Nome de warp inv\u00c3\u00a1lido\! -invalidWorld=\u00a74Mundo inv\u00c3\u00a1lido. -is=\u00c3\u00a9 -itemCannotBeSold=\u00a74Esse item nao pode ser vendido para o servidor. -itemMustBeStacked=\u00a74O item deve ser trocado em packs. A quantidade de 2 deveria ser 2 packs, etc. -itemNames=\u00a76Nomes pequenos para o item\:\u00a7r {0} -itemNotEnough1=\u00a74Voc\u00c3\u00aa nao itens o suficiente para vender. -itemNotEnough2=\u00a76Se voc\u00c3\u00aa quis vender todos os seus itens de um tipo, digite /sell nomedoitem. -itemNotEnough3=\u00a76/sell nomedoitem -1 ir\u00c3\u00a1 vender tudo menos um item, etc. -itemSellAir=Voc\u00c3\u00aa realmente tentou vender Ar? Coloque um item em sua mao. -itemSold=\u00a7aVendido por \u00a7c{0} \u00a7a({1} {2} a {3} cada). -itemSoldConsole=\u00a7a{0} \u00a7avendeu {1} por \u00a7a{2} \u00a7a({3} itens a {4} each). -itemSpawn=\u00a76Dando\u00a7c {0}\u00a7c {1} -itemType=\u00cdtem \u00a76\:\u00a7c {0} \u00a76-\u00a7c {1} -itemsCsvNotLoaded=Nao p\u00c3\u00b4de carregar o items.csv\! -jailAlreadyIncarcerated=\u00a74Essa pessoa j\u00c3\u00a1 est\u00c3\u00a1 na cadeia\:\u00a7c {0} -jailMessage=\u00a74Voc\u00c3\u00aa foi condenado. Pense bem antes de fazer o que fez. -jailNotExist=\u00a74Essa cadeia nao existe. -jailReleased=\u00a76Jogador \u00a7c{0}\u00a76 liberado. -jailReleasedPlayerNotify=\u00a76Voc\u00c3\u00aa foi liberado\! -jailSentenceExtended=\u00a76Tempo na cadeia extendido para\: {0} -jailSet=\u00a76Cadeia\u00a7c {0} \u00a76foi definida. -jumpError=\u00a74Isso machucaria o c\u00c3\u00a9rebro do computador. +ignoredList=\u00A76Ignorado:\u00A7r {0} +ignorePlayer=\u00A76Est\u00E1s agora a ignorar o jogador\u00A7c {0} \u00A76. +illegalDate=Formato de data ilegal. +infoChapter=\u00A76Seleciona o cap\u00EDtulo: +infoChapterPages=\u00A7e ---- \u00A76{0} \u00A7e--\u00A76 P\u00E1gina \u00A7c{1}\u00A76 de \u00A7c{2} \u00A7e---- +infoPages=\u00A7e ---- \u00A76{2} \u00A7e--\u00A76 P\u00E1gina \u00A7c{0}\u00A76/\u00A7c{1} \u00A7e---- +infoUnknownChapter=\u00A74Cap\u00EDtulo desconhecido. +insufficientFunds=\u00A74Dinheiro insuficiente. +invalidCharge=\u00A74Argumento inv\u00E1lido. +invalidFireworkFormat=\u00A74A op\u00E7\u00E3o \u00A7c{0} \u00A74n\u00E3o \u00E9 v\u00E1lida para \u00A7c{1}\u00A74. +invalidHome=\u00A74A casa\u00A7c {0} \u00A74n\u00E3o existe! +invalidHomeName=\u00A74Nome de casa inv\u00E1lido! +invalidMob=\u00A74Tipo de mob inv\u00E1lido. +invalidNumber=Numero inv\u00E1lido. +invalidPotion=\u00A74Po\u00E7\u00E3o inv\u00E1lida. +invalidPotionMeta=\u00A74Meta inv\u00E1lida de po\u00E7\u00E3o: \u00A7c{0}\u00A74. +invalidSignLine=\u00A74Linha\u00A7c {0} \u00A74na placa \u00E9 inv\u00E1lida. +invalidWarpName=\u00A74Nome de warp inv\u00E1lido! +invalidWorld=\u00A74Mundo inv\u00E1lido. +is=\u00E9 +itemCannotBeSold=\u00A74Esse item n\u00E3o pode ser vendido ao servidor. +itemMustBeStacked=\u00A74O item tem de ser trocado em stacks. A quantidade de 2 deveria ser 2 stacks, etc. +itemNames=\u00A76Nomes pequenos para o itens:\u00A7r {0} +itemNotEnough1=\u00A74N\u00E3o tens itens suficientes para vender. +itemNotEnough2=\u00A76Para vender todos os itens do mesmo tipo, digita /sell nomedoitem. +itemNotEnough3=\u00A76/sell nomedoitens -1 ir\u00E1 vender tudo menos um item, etc. +itemSellAir=Tem de ter um item na m\u00E3o. +itemSold=\u00A7aVendido por \u00A7c{0} \u00A7a({1} {2} a {3} cada). +itemSoldConsole=\u00A7a{0} \u00A7avendeu {1} por \u00A7a{2} \u00A7a({3} itens a {4} cada). +itemSpawn=\u00A76A dar\u00A7c {0}\u00A7c {1} +itemType=\u00A76Itens:\u00A7c {0} \u00A76-\u00A7c {1} +itemsCsvNotLoaded=N\u00E3o foi poss\u00EDvel carregar items.csv! +jailAlreadyIncarcerated=\u00A74Esse jogador j\u00E1 est\u00E1 na pris\u00E3o:\u00A7c {0} +jailMessage=\u00A74Foste condenado. Pensa bem antes de voltares a fazer o que fizeste. +jailNotExist=\u00A74Essa pris\u00E3o n\u00E3o existe. +jailReleased=\u00A76O jogador \u00A7c{0}\u00A76 foi libertado. +jailReleasedPlayerNotify=\u00A76Foste libertado! +jailSentenceExtended=\u00A76Tempo na pris\u00E3o extendido para: {0} +jailSet=\u00A76Pris\u00E3o\u00A7c {0} \u00A76foi definida. +jumpError=\u00A74Isso magoaria o c\u00E9rebro do teu computador. kickDefault=Kickado do servidor. -kickExempt=\u00a74Voc\u00c3\u00aa nao pode kickar essa pessoa. -kickedAll=\u00a74Todos os jogadores foram kickados. -kill=\u00a76Matou\u00a7c {0}\u00a76. -killExempt=\u00a74Voc\u00ea n\u00e3o pode matar \u00a7c{0}\u00a74. -kitCost=\ \u00a77\u00a7o({0})\u00a7r -kitError2=\u00a74Esse kit nao existe ou foi definido impropriamente. -kitError=\u00a74Nao h\u00c3\u00a1 kits v\u00c3\u00a1lidos. -kitGiveTo=\u00a76Dando o kit\u00a7c {0}\u00a76 para \u00a7c{1}\u00a76. -kitInvFull=\u00a74Seu invent\u00c3\u00a1rio est\u00c3\u00a1 cheio, colocando o kit no chao. -kitNotFound=\u00a74Esse kit n\u00e3o existe. -kitOnce=\u00a74Voc\u00c3\u00aa nao pode usar esse kit novamente. -kitReceive=\u00a76Recebido kit\u00a7c {0}\u00a76. -kitTimed=\u00a74Voc\u00c3\u00aa nao pode usar esse kit novamente por\u00a7c {0}\u00a74. -kits=\u00a76Kits\:\u00a7r {0} -leatherSyntax=\u00a76Sintaxe das Cores do Couro\: color\:,, ex\: color\:255,0,0. -lightningSmited=\u00a76Foste ferido\! -lightningUse=\u00a76Castigando\u00a7c {0} -listAfkTag=\u00a77[Ausente]\u00a7r -listAmount=\u00a76H\u00c3\u00a1 \u00a7c{0}\u00a76 de no m\u00c3\u00a1ximo \u00a7c{1}\u00a76 jogadores online. -listAmountHidden=\u00a76H\u00c3\u00a1 \u00a7c{0}\u00a76/{1}\u00a76 de no m\u00c3\u00a1ximo \u00a7c{2}\u00a76 jogadores online. -listGroupTag=\u00a76{0}\u00a7r\: \u00a7r -listHiddenTag=\u00a77[ESCONDIDO]\u00a7r -loadWarpError=\u00a74Falha ao carregar o warp {0}. +kickExempt=\u00A74N\u00E3o podes kickar esse jogador. +kickedAll=\u00A74Todos os jogadores foram kickados. +kill=\u00A76Mataste\u00A7c {0}\u00A76. +killExempt=\u00A74N\u00E3o podes matar \u00A7c{0}\u00A74. +kitCost= \u00A77\u00A7o({0})\u00A7r +kitError2=\u00A74Esse kit n\u00E3o existe ou foi definido impropriamente. +kitError=\u00A74N\u00E3o ha kits v\u00E1lidos. +kitGiveTo=\u00A76Dando o kit\u00A7c {0}\u00A76 para \u00A7c{1}\u00A76. +kitInvFull=\u00A74O teu invent\u00E1rio est\u00E1 cheio, o kit foi colocado no ch\u00E3o. +kitNotFound=\u00A74Esse kit n\u00E3o existe. +kitOnce=\u00A74N\u00E3o podes usar esse kit novamente. +kitReceive=\u00A76Recebido kit\u00A7c {0}\u00A76. +kitTimed=\u00A74N\u00E3o podes usar esse kit novamente por\u00A7c {0}\u00A74. +kits=\u00A76Kits:\u00A7r {0} +leatherSyntax=\u00A76Sintaxe das cores do couro: color:,, ex: color:255,0,0. +lightningSmited=\u00A76Foste ferido! +lightningUse=\u00A76Castigando\u00A7c {0} +listAfkTag=\u00A77[Ausente]\u00A7r +listAmount=\u00A76H\u00E1 \u00A7c{0}\u00A76 de um m\u00E1ximo de \u00A7c{1}\u00A76 jogadores online. +listAmountHidden=\u00A76H\u00E1 \u00A7c{0}\u00A76/{1}\u00A76 de um m\u00E1ximo de \u00A7c{2}\u00A76 jogadores online. +listGroupTag=\u00A76{0}\u00A7r: \u00A7r +listHiddenTag=\u00A77[ESCONDIDO]\u00A7r +loadWarpError=\u00A74Falha ao carregar o warp {0}. localFormat=[L]<{0}> {1} -mailClear=\u00a76Para marcar seus e-mails como lidos, digite\u00a7c /mail clear\u00a76. -mailCleared=\u00a76E-mails Removidos\! -mailSent=\u00a76E-mail enviado\! -markMailAsRead=\u00a76Para marcar teus e-mails como lidos, digite\u00a7c /mail clear\u00a76. -markedAsAway=\u00a76Voc\u00c3\u00aa est\u00c3\u00a1 agora marcado como ausente. -markedAsNotAway=\u00a76Voc\u00c3\u00aa nao est\u00c3\u00a1 mais marcado como ausente. -matchingIPAddress=\u00a76Os seguintes jogadores logaram com esse endere\u00c3\u00a7o de IP\: -maxHomes=\u00a74Voc\u00c3\u00aa nao pode definir mais de\u00a7c {0} \u00a74casas. -mayNotJail=\u00a74Voc\u00c3\u00aa nao pode prender essa pessoa\! +mailClear=\u00A76Para marcares os teus e-mails como lidos, digita\u00A7c /mail clear\u00A76. +mailCleared=\u00A76E-mails removidos! +mailSent=\u00A76E-mail enviado! +markMailAsRead=\u00A76Para marcar os teus e-mails como lidos, digita\u00A7c /mail clear\u00A76. +markedAsAway=\u00A76Est\u00E1s agora marcado como ausente. +markedAsNotAway=\u00A76J\u00E1 n\u00E3o est\u00E1s marcado como ausente. +matchingIPAddress=\u00A76Os seguintes jogadores entraram com esse endereco de IP: +maxHomes=\u00A74N\u00E3o podes definir mais de\u00A7c {0} \u00A74casas. +mayNotJail=\u00A74N\u00E3o podes prender essa pessoa! me=eu minute=minuto minutes=minutos -missingItems=\u00a74Voc\u00ea n\u00e3o tem \u00a7c{0}x {1}\u00a74. -mobSpawnError=\u00a74Erro ao mudar o mob spawner. -mobSpawnLimit=Quantidade de mobs aumentada at\u00c3\u00a9 o limite do servidor. -mobSpawnTarget=\u00a74Alvo deve ser um mob spawner. -mobsAvailable=\u00a76Mobs\:\u00a7r {0} -moneyRecievedFrom=\u00a7aVoc\u00c3\u00aa recebeu {0} de {1}. -moneySentTo=\u00a7aVoc\u00c3\u00aa enviou {0} para {1}. -month=m\u00c3\u00aas +missingItems=\u00A74N\u00E3o tens \u00A7c{0}x {1}\u00A74. +mobSpawnError=\u00A74Erro ao mudar o mob spawner. +mobSpawnLimit=Quantidade de mobs aumentada at\u00E9 ao limite do servidor. +mobSpawnTarget=\u00A74Alvo tem de ser ser um mob spawner. +mobsAvailable=\u00A76Mobs:\u00A7r {0} +moneyRecievedFrom=\u00A7aRecebeste {0} de {1}. +moneySentTo=\u00A7aEnviaste {0} para {1}. +month=m\u00EAs months=meses -moreThanZero=\u00a74Quantidades devem ser maior que 0. -moveSpeed=\u00a76Velocidade de \u00a7c{2}\u00a76 foi definida de {0} para \u00a7c {1} \u00a76. -msgFormat=\u00a76[\u00a7c{0}\u00a76 -> \u00a7c{1}\u00a76] \u00a7r{2} -multipleCharges=\u00a74Voc\u00c3\u00aa nao pode aplicar mais de um comando para esse fogo de artif\u00c3\u00adcio. -multiplePotionEffects=\u00a74Voc\u00c3\u00aa nao pode aplicar mais de um efeito para essa po\u00c3\u00a7ao. -muteExempt=\u00a74Voc\u00c3\u00aa nao pode silenciar esse jogador. -muteNotify=\u00a7c{0} \u00a76silenciou \u00a7c{1}\u00a76. -mutedPlayer=\u00a76Jogador\u00a7c {0} \u00a76silenciado. -mutedPlayerFor=\u00a76Jogador\u00a7c {0} \u00a76silenciado por\u00a7c {1}\u00a76. -mutedUserSpeaks={0} tentou falar, mas est\u00c3\u00a1 silenciado. -nearbyPlayers=\u00a76Jogadores por perto\:\u00a7r {0} -negativeBalanceError=\u00a74Usu\u00c3\u00a1rio nao tem permissao para ter um saldo negativo. -nickChanged=\u00a76Nick alterado. -nickDisplayName=\u00a74Voc\u00c3\u00aa precisa ativar o change-displayname na configura\u00c3\u00a7ao do Essentials. -nickInUse=\u00a74Esse nome j\u00c3\u00a1 est\u00c3\u00a1 em uso. -nickNamesAlpha=\u00a74Nicks devem ser alfanum\u00c3\u00a9ricos. -nickNoMore=\u00a76Voc\u00c3\u00aa nao tem mais um nick. -nickSet=\u00a76Seu nick agora \u00e9 \u00a7c{0}\u00a76. -nickTooLong=\u00a74Nome \u00e9 muito grande. -noAccessCommand=\u00a74Voc\u00c3\u00aa nao tem acesso a esse comando. -noAccessPermission=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para acessar \u00a7c{0}\u00a74. -noBreakBedrock=\u00a74Voc\u00c3\u00aa nao tem permissao para quebrar bedrock. -noDestroyPermission=\u00a74voc\u00ea n\u00e3o tem permiss\u00e3o para destruir \u00a7c{0}\u00a74. -noDurability=\u00a74Esse item nao tem durabilidade. -noGodWorldWarning=\u00a74Cuidado\! Modo deus nao est\u00c3\u00a1 desativado nesse mundo. -noHelpFound=\u00a74Nenhum comando correspondendo. -noHomeSetPlayer=\u00a76Jogador nao definiu uma casa. -noIgnored=\u00a76Voc\u00ea n\u00e3o est\u00e1 ignorando ningu\u00e9m. -noKitPermission=\u00a74Voc\u00c3\u00aa precisa da permissao \u00a7c{0}\u00a74 para usar esse kit. -noKits=\u00a76Nao existem kits dispon\u00c3\u00adveis ainda. -noMail=\u00a76Voc\u00c3\u00aa nao tem nenhum e-mail. -noMatchingPlayers=\u00a76Nenhum jogador correspondente encontrado. -noMetaFirework=\u00a74Voc\u00c3\u00aa nao tem permissao para aplicar meta para fogos de artif\u00c3\u00adcio. -noMetaPerm=\u00a74Voc\u00c3\u00aa nao tem permissao para aplicar meta (\u00a7c{0})\u00a74 para esse item. -noNewMail=\u00a76Voc\u00c3\u00aa nao tem novos e-mails. -noPendingRequest=\u00a74Voc\u00c3\u00aa nao tem uma solicita\u00c3\u00a7ao. -noPerm=\u00a74Voc\u00c3\u00aa nao tem a permissao \u00a7c{0}\u00a74. -noPermToSpawnMob=\u00a74Voc\u00c3\u00aa nao tem permissao para spawnar esse mob. -noPlacePermission=\u00a74Voc\u00c3\u00aa nao tem permissao para colocar um bloco perto dessa placa. -noPotionEffectPerm=\u00a74Voc\u00c3\u00aa nao tem permissao para aplicar o efeito \u00a7c{0} \u00a74para essa po\u00c3\u00a7ao. -noPowerTools=\u00a76Voc\u00c3\u00aa nao tem nenhuma ferramenta de poder atribu\u00c3\u00adda. -noWarpsDefined=\u00a76Nenhum warp definido. +moreThanZero=\u00A74Quantidades t\u00EAm ser maiores que 0. +moveSpeed=\u00A76Velocidade de \u00A7c{2}\u00A76 foi alterada de {0} para \u00A7c {1} \u00A76. +msgFormat=\u00A76[\u00A7c{0}\u00A76 -> \u00A7c{1}\u00A76] \u00A7r{2} +multipleCharges=\u00A74N\u00E3o podes aplicar mais de um comando a esse fogo de artif\u00EDcio. +multiplePotionEffects=\u00A74N\u00E3o podes aplicar mais de um efeito a essa po\u00E7\u00E3o. +muteExempt=\u00A74N\u00E3o podes silenciar esse jogador. +muteNotify=\u00A7c {0} \u00A76 silenciou o jogador \u00A76 \u00A7c {1} . +mutedPlayer=\u00A76Jogador\u00A7c {0} \u00A76silenciado. +mutedPlayerFor=\u00A76Jogador\u00A7c {0} \u00A76silenciado por\u00A7c {1}\u00A76. +mutedUserSpeaks={0} tentou falar, mas est\u00E1 silenciado. +nearbyPlayers=\u00A76Jogadores por perto:\u00A7r {0} +negativeBalanceError=\u00A74Jogador n\u00E3o tem permiss\u00E3o para ter um saldo negativo. +nickChanged=\u00A76Nick alterado. +nickDisplayName=\u00A74Tens de ativar o change-displayname na configura\u00E7\u00E3o do Essentials. +nickInUse=\u00A74Esse nome j\u00E1 est\u00E1 a ser utilizado. +nickNamesAlpha=\u00A74Os nicks t\u00EAm de ser ser alfanum\u00E9ricos. +nickNoMore=\u00A76J\u00E1 n\u00E3o tens um nick. +nickSet=\u00A76O teu nick agora \u00E9 \u00A7c{0}\u00A76. +nickTooLong=\u00A74Nick demasiado grande. +noAccessCommand=\u00A74N\u00E3o tens acesso a esse comando. +noAccessPermission=\u00A74N\u00E3o tens permiss\u00E3o para aceder a \u00A7c{0}\u00A74. +noBreakBedrock=\u00A74N\u00E3o tens permiss\u00E3o para partir bedrock. +noDestroyPermission=\u00A74N\u00E3o tens permiss\u00E3o para partir \u00A7c{0}\u00A74. +noDurability=\u00A74Esse item n\u00E3o tem durabilidade. +noGodWorldWarning=\u00A74Cuidado! O modo deus n\u00E3o est\u00E1 desativado neste mundo. +noHelpFound=\u00A74Nenhum comando corresponde. +noHomeSetPlayer=\u00A76O jogador n\u00E3o definiu uma casa. +noIgnored=\u00A76N\u00E3o est\u00E1s a ignorar ningu\u00E9m. +noKitPermission=\u00A74Precisas da permiss\u00E3o \u00A7c{0}\u00A74 para usar esse kit. +noKits=\u00A76Ainda n\u00E3o existem kits dispon\u00EDveis. +noMail=\u00A76N\u00E3o tens nenhum e-mail. +noMatchingPlayers=\u00A76Nenhum jogador correspondente encontrado. +noMetaFirework=\u00A74N\u00E3o tens permiss\u00E3o para aplicar meta a fogo de artif\u00EDcio. +noMetaPerm=\u00A74N\u00E3o tens permiss\u00E3o para aplicar meta (\u00A7c{0})\u00A74 nesse item. +noNewMail=\u00A76N\u00E3o tens novos e-mails. +noPendingRequest=\u00A74N\u00E3o tens nenhum pedido pendente. +noPerm=\u00A74N\u00E3o tens a permiss\u00E3o \u00A7c{0}\u00A74. +noPermToSpawnMob=\u00A74N\u00E3o tens permiss\u00E3o para spawnar esse mob. +noPlacePermission=\u00A74N\u00E3o tens permiss\u00E3o para colocar um bloco perto dessa placa. +noPotionEffectPerm=\u00A74N\u00E3o tens permiss\u00E3o para aplicar o efeito \u00A7c{0} \u00A74nessa po\u00E7\u00E3o. +noPowerTools=\u00A76N\u00E3o tens nenhuma ferramenta de poder atribu\u00EDda. +noWarpsDefined=\u00A76Nenhum warp definido. none=nada -notAllowedToQuestion=\u00a74Voc\u00c3\u00aa nao tem permissao para usar a pergunta. -notAllowedToShout=\u00a74Voc\u00c3\u00aa nao tem permissao para gritar. -notEnoughExperience=\u00a74Voc\u00c3\u00aa nao tem experi\u00c3\u00aancia o suficiente. -notEnoughMoney=\u00a74Voc\u00c3\u00aa nao tem dinheiro o suficiente. -notFlying=nao est\u00c3\u00a1 voando -notRecommendedBukkit=\u00a74* \! * Versao do Bukkit nao \u00c3\u00a9 recomendada para essa versao do Essentials. -notSupportedYet=Nao suportado ainda. -nothingInHand=\u00a74Voc\u00c3\u00aa nao tem nada em sua mao. +notAllowedToQuestion=\u00A74N\u00E3o tens permiss\u00E3o para usar a pergunta. +notAllowedToShout=\u00A74N\u00E3o tens permiss\u00E3o para gritar. +notEnoughExperience=\u00A74N\u00E3o tens experi\u00EAncia suficiente. +notEnoughMoney=\u00A74N\u00E3o tens dinheiro suficiente. +notFlying=n\u00E3o est\u00E1s a voar +notRecommendedBukkit=\u00A74* ! * Esta vers\u00E3o do Bukkit n\u00E3o \u00E9 recomendada para esta vers\u00E3o do Essentials. +notSupportedYet=n\u00E3o suportado ainda. +nothingInHand=\u00A74N\u00E3o tens nada na tua m\u00E3o. now=agora -nuke=\u00a75Pode chover a morte sobre eles. -numberRequired=Vai um n\u00c3\u00bamero a\u00c3\u00ad, seu bobo. +nuke=\u00A75Que chova morte sobre eles. +numberRequired=Tens de indicar um n\u00FAmero. onlyDayNight=/time suporta apenas day/night. -onlyPlayerSkulls=\u00a74Voc\u00ea s\u00f3 pode definir o propriet\u00e1rio de cr\u00e2nios de jogador (\u00a7c397\:3\u00a74). -onlyPlayers=\u00a74Apenas jogadores in-game podem usar \u00a7c{0}\u00a74. -onlySunStorm=\u00a74/weather suporta apenas sun/storm. -orderBalances=\u00a76Organizando saldos de\u00a7c {0} \u00a76usu\u00c3\u00a1rios, aguarde... -oversizedTempban=\u00a74Voc\u00c3\u00aa nao pode banir um jogador por esse per\u00c3\u00adodo de tempo. -pTimeCurrent=\u00a76O tempo para \u00a7c{0}\u00a76 \u00c3\u00a9 \u00a7c {1}\u00a76. -pTimeCurrentFixed=\u00a76O tempo para \u00a7c{0}\u00a76 foi arrumado para\u00a7c {1}\u00a76. -pTimeNormal=\u00a76O tempo de \u00a7c{0}\u00a76 est\u00c3\u00a1 normal e correspondendo ao do servidor. -pTimeOthersPermission=\u00a74Voc\u00c3\u00aa nao tem permissao para definir o tempo de outros jogadores. -pTimePlayers=\u00a76Esses jogadores tem seus pr\u00c3\u00b3prios tempos\:\u00a7r -pTimeReset=\u00a76O tempo do jogador foi resetado para\: \u00a7c{0} -pTimeSet=\u00a76Tempo do jogador definido em \u00a7c{0}\u00a76 para\: \u00a7c{1}. -pTimeSetFixed=\u00a76Tempo do jogador arrumado em \u00a7c{0}\u00a76 para\: \u00a7c{1}. -pWeatherCurrent=\u00a7c{0}\u00a76 clima \u00e9\u00a7c {1}\u00a76. -pWeatherInvalidAlias=Tipo de clima \u00a74 Inv\u00e1lido -pWeatherNormal=Clima \u00a7c{0}\u00a76 est\u00e1 normal e coincide com o servidor. -pWeatherOthersPermission=\u00a74Voc\u00ea n\u00e3o est\u00e3o autorizados a definir o tempo dos outros jogadores. -pWeatherPlayers=\u00a76Estes jogadores possuem seu pr\u00f3prio clima\:\u00a7r -pWeatherReset=\u00a76O clima do jogador foi restaurado para\: \u00a7c{0} -pWeatherSet=\u00a76O clima do jogador foi definido para \u00a7c{0}\u00a76 por\: \u00a7c{1}. -pendingTeleportCancelled=\u00a74Pedido de teleporte cancelado. -playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address\u00a7c {1} \u00a76for\: \u00a7c{2}\u00a76. -playerBanned=\u00a76Jogador\u00a7c {0} \u00a76banido\u00a7c {1} \u00a76por \u00a7c{2}\u00a76. -playerInJail=\u00a74Jogador atualmente na cadeia\u00a7c {0}\u00a74. -playerJailed=\u00a76JogadorPlayer\u00a7c {0} \u00a76preso. -playerJailedFor=\u00a76Jogador\u00a7c {0} \u00a76preso por {1}. -playerKicked=\u00a76Jogador\u00a7c {0} \u00a76kickou {1} por {2}. -playerMuted=\u00a76Voc\u00c3\u00aa foi silenciado\! -playerMutedFor=\u00a76Voc\u00c3\u00aa foi mutado por\u00a7c {0}. -playerNeverOnServer=\u00a74Jogador\u00a7c {0} \u00a74nunca esteve nesse servidor. -playerNotFound=\u00a74Jogador nao encontrado. -playerUnbanIpAddress=\u00a76Jogador\u00a7c {0} \u00a76desbaniu o IP\: {1}. -playerUnbanned=\u00a76Jogador\u00a7c {0} \u00a76desbaniu\u00a7c {1}. -playerUnmuted=\u00a76Voc\u00c3\u00aa nao est\u00c3\u00a1 mais silenciado. -pong=Pong\! -posPitch=\u00a76Pitch\: {0} (Angulo da Cabe\u00c3\u00a7a) -posX=\u00a76X\: {0} (+Leste <-> -Oeste) -posY=\u00a76Y\: {0} (+Cima <-> -Baixo) -posYaw=\u00a76Yaw\: {0} (Rota\u00c3\u00a7ao) -posZ=\u00a76Z\: {0} (+Sul <-> -Norte) -possibleWorlds=\u00a76Possible worlds are the numbers \u00a7c0\u00a76 through \u00a7c{0}\u00a76. -potions=\u00a76Po\u00c3\u00a7oes\:\u00a7r {0}\u00a76. -powerToolAir=\u00a74O comando nao pode ser atribu\u00c3\u00addo ao ar. -powerToolAlreadySet=\u00a74Comando \u00a7c{0}\u00a74 J\u00e1 Foi Atribuido to \u00a7c{1}\u00a74. -powerToolAttach=\u00a7c{0}\u00a76 comando atribu\u00c3\u00addo a {1}. -powerToolClearAll=\u00a76Todos as ferramentas de poder foram removidas. -powerToolList=\u00a76Item \u00a7c{1} \u00a76tem os seguintes comandos\: \u00a7c{0}\u00a76. -powerToolListEmpty=\u00a74Item \u00a7c{0} \u00a74nao tem comandos atribu\u00c3\u00addos. -powerToolNoSuchCommandAssigned=\u00a74Command \u00a7c{0}\u00a74 has not been assigned to \u00a7c{1}\u00a74. -powerToolRemove=\u00a76Esse Comando\u00a7c{0}\u00a76 Foi Removido \u00a7c{1}\u00a76. -powerToolRemoveAll=\u00a76All commands removed from \u00a7c{0}\u00a76. -powerToolsDisabled=\u00a76Todas as suas ferramentas de poder foram desativadas. -powerToolsEnabled=\u00a76Todas as suas ferramentas de poder foram ativadas. -questionFormat=\u00a72[Pergunta]\u00a7r {0} -readNextPage=\u00a76Digite\u00a7c /{0} {1} \u00a76para ler a pr\u00c3\u00b3xima p\u00c3\u00a1gina. -recipe=\u00a76Recipe for \u00a7c{0}\u00a76 (\u00a7c{1}\u00a76 of \u00a7c{2}\u00a76) -recipeBadIndex=Nao h\u00c3\u00a1 receita para esse n\u00c3\u00bamero. -recipeFurnace=\u00a76Smelt\: \u00a7c{0}\u00a76. -recipeGrid=\u00a7c{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X -recipeGridItem=\u00a7c{0}X \u00a76\u00e9 \u00a7c{1} -recipeMore=\u00a76Digite /{0} \u00a7c{1}\u00a76 para ver outras receitas para \u00a7c{2}\u00a76. -recipeNone=Nao h\u00c3\u00a1 receitas para {0} +onlyPlayerSkulls=\u00A74S\u00F3 podes definir o propriet\u00E1rio de cr\u00E2nios de jogador (\u00A7c397:3\u00A74). +onlyPlayers=\u00A74Apenas jogadores podem usar \u00A7c{0}\u00A74. +onlySunStorm=\u00A74/weather suporta apenas sun/storm. +orderBalances=\u00A76A organizar saldos de\u00A7c {0} \u00A76jogadores, aguarda... +oversizedTempban=\u00A74N\u00E3o podes banir um jogador por tanto tempo. +pTimeCurrent=\u00A76O tempo para \u00A7c{0}\u00A76 e \u00A7c {1}\u00A76. +pTimeCurrentFixed=\u00A76O tempo para \u00A7c{0}\u00A76 foi bloqueado para\u00A7c {1}\u00A76. +pTimeNormal=\u00A76O tempo de \u00A7c{0}\u00A76 est\u00E1 normal e corresponde ao do servidor. +pTimeOthersPermission=\u00A74N\u00E3o tens permiss\u00E3o para definir o tempo de outros jogadores. +pTimePlayers=\u00A76Esses jogadores t\u00EAm os seus pr\u00F3prios tempos:\u00A7r +pTimeReset=\u00A76O tempo do jogador foi resetado para: \u00A7c{0} +pTimeSet=\u00A76Tempo do jogador definido em \u00A7c{0}\u00A76 para: \u00A7c{1}. +pTimeSetFixed=\u00A76Tempo do jogador bloqueado em \u00A7c{0}\u00A76 para: \u00A7c{1}. +pWeatherCurrent=\u00A7c{0}\u00A76 o clima \u00E9\u00A7c {1}\u00A76. +pWeatherInvalidAlias=Tipo de clima \u00A74inv\u00E1lido +pWeatherNormal=O clima \u00A7c{0}\u00A76 est\u00E1 normal e coincide com o do servidor. +pWeatherOthersPermission=\u00A74N\u00E3o est\u00E1s autorizado a definir o clima dos outros jogadores. +pWeatherPlayers=\u00A76Estes jogadores possuem o seu pr\u00F3prio clima:\u00A7r +pWeatherReset=\u00A76O clima do jogador foi restaurado para: \u00A7c{0} +pWeatherSet=\u00A76O clima do jogador foi definido para \u00A7c{0}\u00A76 por: \u00A7c{1}. +pendingTeleportCancelled=\u00A74Pedido de teletransporte cancelado. +playerBanIpAddress=\u00A76O jogador\u00A7c {0} \u00A76baniu o endere\u00E7o IP\u00A7c {1} \u00A76por: \u00A7c{2}\u00A76. +playerBanned=\u00A76Jogador\u00A7c {0} \u00A76banido\u00A7c {1} \u00A76por \u00A7c{2}\u00A76. +playerInJail=\u00A74Esse jogador est\u00E1 atualmente na cadeia\u00A7c {0}\u00A74. +playerJailed=\u00A76Jogador\u00A7c {0} \u00A76preso. +playerJailedFor=\u00A76Jogador\u00A7c {0} \u00A76preso por {1}. +playerKicked=\u00A76Jogador\u00A7c {0} \u00A76kickou {1} por {2}. +playerMuted=\u00A76Foste silenciado! +playerMutedFor=\u00A76Foste silenciado por\u00A7c {0}. +playerNeverOnServer=\u00A74Jogador\u00A7c {0} \u00A74nunca esteve neste servidor. +playerNotFound=\u00A74Jogador n\u00E3o encontrado. +playerUnbanIpAddress=\u00A76Jogador\u00A7c {0} \u00A76desbaniu o IP: {1}. +playerUnbanned=\u00A76Jogador\u00A7c {0} \u00A76desbaniu\u00A7c {1}. +playerUnmuted=\u00A76J\u00E1 n\u00E3o est\u00E1s silenciado. +pong=Pong! +posPitch=\u00A76Pitch: {0} ( ngulo da cabe\u00E7a) +posX=\u00A76X: {0} (+Leste <-> -Oeste) +posY=\u00A76Y: {0} (+Cima <-> -Baixo) +posYaw=\u00A76Yaw: {0} (Rota\u00E7\u00E3o) +posZ=\u00A76Z: {0} (+Sul <-> -Norte) +possibleWorlds=\u00A76Valores poss\u00EDveis para mundos s\u00E3o os n\u00FAmeros de \u00A7c0\u00A76 a \u00A7c {0} \u00A76. +potions=\u00A76Po\u00E7\u00F5es:\u00A7r {0}\u00A76. +powerToolAir=\u00A74O comando n\u00E3o pode ser atribu\u00EDdo ao ar. +powerToolAlreadySet=\u00A74Comando \u00A7c{0}\u00A74 j\u00E1 foi atribu\u00EDdo a \u00A7c{1}\u00A74. +powerToolAttach=\u00A7c{0}\u00A76 comando atribu\u00EDdo a {1}. +powerToolClearAll=\u00A76Todas as ferramentas de poder foram removidas. +powerToolList=\u00A76Item \u00A7c{1} \u00A76tem os seguintes comandos: \u00A7c{0}\u00A76. +powerToolListEmpty=\u00A74Item \u00A7c{0} \u00A74n\u00E3o tem comandos atribu\u00EDdos. +powerToolNoSuchCommandAssigned=\u00A74Comando \u00A7c {0} \u00A74 n\u00E3o foi atribu\u00EDdo a \u00A7c {1} \u00A74. +powerToolRemove=\u00A76Esse comando\u00A7c{0}\u00A76 foi removido de \u00A7c{1}\u00A76. +powerToolRemoveAll=\u00A76Todos os comandos foram removidos de \u00A7c{0}\u00A76. +powerToolsDisabled=\u00A76Todas as tuas ferramentas de poder foram desativadas. +powerToolsEnabled=\u00A76Todas as tuas ferramentas de poder foram ativadas. +questionFormat=\u00A72[Pergunta]\u00A7r {0} +readNextPage=\u00A76Digita\u00A7c /{0} {1} \u00A76para ler a proxima p\u00E1gina. +recipe=\u00A76Receita para \u00A7c {0} \u00A76 (\u00A76 \u00A7c {1} de \u00A7c {2} \u00A76) +recipeBadIndex=N\u00E3o h\u00E1 receita para esse n\u00FAmero. +recipeFurnace=\u00A76Fundir:\u00A7c {0}. +recipeGrid=\u00A7c{0}X \u00A76| \u00A7{1}X \u00A76| \u00A7{2}X +recipeGridItem=\u00A7c{0}X \u00A76\u00E9 \u00A7c{1} +recipeMore=\u00A76Digita /{0} \u00A7c{1}\u00A76 para ver outras receitas para \u00A7c{2}\u00A76. +recipeNone=N\u00E3o h\u00E1 receitas para {0} recipeNothing=nada -recipeShapeless=\u00a76Combinar \u00a7c{0} -recipeWhere=\u00a76Onde\: {0} -removed=\u00a7c{0} \u00a76entidades removidas. -repair=\u00a76Voc\u00ea reparou seu \u00a7c{0}\u00a76 com sucesso. -repairAlreadyFixed=\u00a74Esse item nao precisa de reparo. -repairEnchanted=\u00a74Voc\u00c3\u00aa nao tem permissao para reparar itens encantados. -repairInvalidType=\u00a74Esse item nao pode ser reparado. -repairNone=\u00a74N\u00e3o haviam itens para serem reparados. -requestAccepted=\u00a76Pedido de teleporte aceito. -requestAcceptedFrom=\u00a7c{0} \u00a76aceitou seu pedido de teleporte. -requestDenied=\u00a76Pedido de teleporte negado. -requestDeniedFrom=\u00a7c{0} \u00a76negou seu pedido de teleporte. -requestSent=\u00a76Pedido enviado para\u00a7c {0}\u00a76. -requestTimedOut=\u00a74Pedido de teleporte se esgotou. -requiredBukkit=\u00a76* \! * Voc\u00c3\u00aa precisa de pelo menos a constru\u00c3\u00a7ao {0} do CraftBukkit, baixe-a em http\://dl.bukkit.org/downloads/craftbukkit/ -resetBal=\u00a76Balance has been reset to \u00a7c{0} \u00a76for all online players. -resetBalAll=\u00a76Balance has been reset to \u00a7c{0} \u00a76for all players. -returnPlayerToJailError=\u00a74Error occurred when trying to return player\u00a7c {0} \u00a74to jail\: \u00a7c{1}\u00a74\! -runningPlayerMatch=\u00a76Realizando busca por jogadores correspodentes a ''\u00a7c{0}\u00a76'' (isso pode levar um tempo) +recipeShapeless=\u00A76Combinar \u00A7c{0} +recipeWhere=\u00A76Onde: {0} +removed=\u00A7c{0} \u00A76entidades removidas. +repair=\u00A76Reparaste \u00A7c{0}\u00A76 com sucesso. +repairAlreadyFixed=\u00A74Esse item n\u00E3o precisa de ser reparado. +repairEnchanted=\u00A74N\u00E3o tens permiss\u00E3o para reparar itens encantados. +repairInvalidType=\u00A74Esse item n\u00E3o pode ser reparado. +repairNone=\u00A74N\u00E3o havia itens para serem reparados. +requestAccepted=\u00A76Pedido de teletransporte aceite. +requestAcceptedFrom=\u00A7c{0} \u00A76aceitou o teu pedido de teletransporte. +requestDenied=\u00A76Pedido de teletransporte recusado. +requestDeniedFrom=\u00A7c{0} \u00A76recusou o teu pedido de teletransporte. +requestSent=\u00A76Pedido enviado para\u00A7c {0}\u00A76. +requestTimedOut=\u00A74Tempo limite do pedido de teletransporte atingido. +requiredBukkit=\u00A76* ! * Precisas de pelo menos a vers\u00E3o {0} do CraftBukkit, baixa-a em http://dl.bukkit.org/downloads/craftbukkit/ +resetBal=\u00A76Os saldos de todos os jogadores online foram resetados para \u00A7a{0}\u00A76. +resetBalAll=\u00A76Os saldos de todos os jogadores foram resetados para \u00A7a{0}\u00A76. +returnPlayerToJailError=\u00A74Um erro ocorreu ao tentar levar o jogador\u00A7c {0} \u00A74 de volta para a pris\u00E3o: {1}! +runningPlayerMatch=\u00A76Procurando jogadores correspondentes a ''\u00A7c{0}\u00A76'' (pode levar algum tempo) second=segundo seconds=segundos -seenOffline=\u00a76Jogador\u00a7c {0} \u00a76est\u00e1 \u00a74offline\u00a76 desde \u00a7c{1}\u00a76. -seenOnline=\u00a76Jogador\u00a7c {0} \u00a76est\u00e1 \u00a7aonline\u00a76 desde \u00a7c{1}\u00a76. -serverFull=Servidor cheio\! -serverTotal=\u00a76Total do Servidor\:\u00a7c {0} -setBal=\u00a7aSeu saldo foi definido para {0}. -setBalOthers=\u00a7aVoc\u00ea configurou o seu balan\u00e7o atual de {0}\u00a7a para {1}. -setSpawner=\u00a76Changed spawner type to\u00a7c {0}\u00a76. -sheepMalformedColor=\u00a74Cor mal especificada. -shoutFormat=\u00a77[\u00a73G\u00a77]\u00a7r {0} -signFormatFail=\u00a74[{0}] -signFormatSuccess=\u00a71[{0}] +seenOffline=\u00A76O jogador\u00A7c {0} \u00A76est\u00E1 \u00A74offline\u00A76 desde \u00A7c{1}\u00A76. +seenOnline=\u00A76O jogador\u00A7c {0} \u00A76est\u00E1 \u00A7aonline\u00A76 desde \u00A7c{1}\u00A76. +serverFull=Servidor cheio! +serverTotal=\u00A76Total do Servidor:\u00A7c {0} +setBal=\u00A7aO teu saldo foi definido para {0}. +setBalOthers=\u00A7aAlteraste o teu saldo atual de {0}\u00A7a para {1}. +setSpawner=\u00A76Spawner alterado para\u00A7c {0}. +sheepMalformedColor=\u00A74Cor mal especificada. +shoutFormat=\u00A77[\u00A73G\u00A77]\u00A7r {0} +signFormatFail=\u00A74[{0}] +signFormatSuccess=\u00A71[{0}] signFormatTemplate=[{0}] -signProtectInvalidLocation=\u00a74Voc\u00c3\u00aa nao tem permissao para criar placas aqui. -similarWarpExist=\u00a74Um warp com um nome similar j\u00c3\u00a1 existe. -slimeMalformedSize=\u00a74Tamanho mal especificado. -socialSpy=\u00a76SocialSpy for \u00a7c{0}\u00a76\: \u00a7c{1} -soloMob=\u00a74Esse mob gosta de ficar sozinho. -spawnSet=\u00a76Ponto de Spawn definido para o grupo\u00a7c {0}\u00a76. +signProtectInvalidLocation=\u00A74N\u00E3o tens permiss\u00E3o para criar placas aqui. +similarWarpExist=\u00A74Um warp com um nome similar j\u00E1 existe. +slimeMalformedSize=\u00A74Tamanho mal especificado. +socialSpy=\u00A76SocialSpy para \u00A7c {0} \u00A76: \u00A7c {1} +soloMob=\u00A74Esse mob gosta de ficar sozinho. +spawnSet=\u00A76Ponto de spawn definido para o grupo\u00A7c {0}\u00A76. spawned=spawnado -sudoExempt=\u00a74Voc\u00c3\u00aa nao pode usar sudo nesse usu\u00c3\u00a1rio. -sudoRun=\u00a76Forcing\u00a7c {0} \u00a76to run\:\u00a7r /{1} -suicideMessage=\u00a76Adeus mundo cruel... -suicideSuccess=\u00a76{0} \u00a76se matou. -survival=sobreviv\u00c3\u00aancia -takenFromAccount=\u00a7a{0} foi removido sua conta. -takenFromOthersAccount=\u00a7a{0} foi removido da conta de {1}\u00a7a. Novo saldo\: {2}. -teleportAAll=\u00a76Pedido de teleporte enviado para todos os jogadores... -teleportAll=\u00a76Teleportando todos os jogadores... -teleportAtoB=\u00a7c{0}\u00a76 teleportou voc\u00ea para \u00a7c{1}\u00a76. -teleportDisabled=\u00a7c{0} \u00a74est\u00c3\u00a1 com teleporte desativado. -teleportHereRequest=\u00a7c{0}\u00a76 pediu para que se teleporte at\u00c3\u00a9 ele. -teleportNewPlayerError=\u00a74Falha ao teleportar novo jogador\! -teleportRequest=\u00a7c{0}\u00a76 pediu para teleportar at\u00c3\u00a9 voc\u00c3\u00aa. -teleportRequestTimeoutInfo=\u00a76Esse pedido ir\u00c3\u00a1 se esgotar depois de\u00a7c {0} segundos\u00a76. -teleportTop=\u00a76Teleportando para o topo. -teleportationCommencing=\u00a76Teleportando iniciando... -teleportationDisabled=\u00a76Teleportation \u00a7cdisabled\u00a76. -teleportationDisabledFor=\u00a76Teleportation \u00a7cdisabled \u00a76for \u00a7c{0}\u00a76. -teleportationEnabled=\u00a76Teleportation \u00a7cenabled\u00a76. -teleportationEnabledFor=\u00a76Teleportation \u00a7cenabled \u00a76for \u00a7c{0}\u00a76. -teleporting=\u00a76Teleportando... -teleportToPlayer=\u00a76Teleporting to \u00a7c{0}\u00a76. -tempBanned=\u00a7cYou have been temporarily banned for {0}\:\n\u00a7r{2} -tempbanExempt=\u00a74Voc\u00c3\u00aa nao pode banir temporariamente esse jogador. -thunder=\u00a76Voc\u00c3\u00aa\u00a7c {0} \u00a76trovoada em seu mundo. -thunderDuration=\u00a76Voc\u00c3\u00aa\u00a7c {0} \u00a76trovoada em seu mundo por\u00a7c {1} \u00a76segundos. -timeBeforeHeal=\u00a76Tempo antes da pr\u00c3\u00b3xima cura\:\u00a7c {0}\u00a76. -timeBeforeTeleport=\u00a76Tempo antes do pr\u00c3\u00b3ximo teleporte\:\u00a7c {0} -timeFormat=\u00a7c{0}\u00a76 or \u00a7c{1}\u00a76 or \u00a7c{2}\u00a76 -timeSetPermission=\u00a74Voc\u00c3\u00aa nao tem permissao para definir o tempo. -timeWorldCurrent=\u00a76O tempo atual em\u00a7c {0} \u00a76\u00c3\u00a9 \u00a7c{1}\u00a76. -timeWorldSet=\u00a76O tempo foi definido para\u00a7c {0} \u00a76em\: \u00a7c{1}\u00a76. -totalWorthAll=\u00a7aTodos os itens e blocos foram vendidos por um total de \u00a7c{1}\u00a7a. -totalWorthBlocks=\u00a7aTodos os blocos foram vendidos por um total de \u00a7c{1}\u00a7a. -tps=\u00a76TPS Atual \= {0} -tradeSignEmpty=\u00a74A placa de troca nao tem nada dispon\u00c3\u00advel para voc\u00c3\u00aa. -tradeSignEmptyOwner=\u00a74Nao h\u00c3\u00a1 nada para coletar dessa placa de troca. -treeFailure=\u00a74Erro ao gerar \u00c3\u00a1rvore. Tente novamente na terra ou na grama. -treeSpawned=\u00a76Arvore gerada. -true=\u00a7averdadeiro\u00a7r -typeTpaccept=\u00a76Para teleportar, digite \u00a7c/tpaccept\u00a76. -typeTpdeny=\u00a76Para recusar o pedido, digite \u00a7c/tpdeny\u00a76. -typeWorldName=\u00a76Voc\u00c3\u00aa pode tamb\u00c3\u00a9m digitar o nome de um mundo espec\u00c3\u00adfico. -unableToSpawnMob=\u00a74Incapaz de spawnar o mob. -unignorePlayer=\u00a76Voc\u00c3\u00aa nao est\u00c3\u00a1 mais ignorando o jogador\u00a7c {0} \u00a76. -unknownItemId=\u00a74ID do item inv\u00c3\u00a1lido\: \u00a7r {0}\u00a74. -unknownItemInList=\u00a74Iten desconhecido {0} na lista {1}. -unknownItemName=\u00a74Nome de item desconhecido\: {0}. -unlimitedItemPermission=\u00a74Sem permiss\u00e3o para item \u00a7c{0}\u00a74 ilimitado. -unlimitedItems=\u00a76Itens ilimitados\:\u00a7r -unmutedPlayer=\u00a76Jogador\u00a7c {0} \u00a76nao est\u00c3\u00a1 mais silenciado. -unvanishedReload=\u00a74Um reload for\u00c3\u00a7ou-lhe a ficar vis\u00c3\u00advel novamente. -upgradingFilesError=Erro ao aprimorar os arquivos. -uptime=\u00a76Uptime\:\u00a7c {0} -userAFK=\u00a75{0} \u00a75est\u00c3\u00a1 atualmente AFK e pode nao responder. -userDoesNotExist=\u00a74O usu\u00c3\u00a1rio\u00a7c {0} \u00a74nao existe. -userIsAway=\u00a75{0} \u00a75est\u00c3\u00a1 agora AFK. -userIsNotAway=\u00a75{0} \u00a75nao est\u00c3\u00a1 mais AFK. -userJailed=\u00a76Voc\u00c3\u00aa foi condenado\! -userUnknown=\u00a74Aviso\: O usu\u00c3\u00a1rio ''\u00a7c{0}\u00a74'' nunca entrou nesse servidor. -userdataMoveBackError=Falha ao mover o userdata/{0}.tmp para userdata/{1}\! -userdataMoveError=Falha ao mover userdata/{0} para userdata/{1}.tmp\! -usingTempFolderForTesting=Usando pasta tempor\u00c3\u00a1ria para teste\: -vanished=\u00a76Voc\u00c3\u00aa est\u00c3\u00a1 agora completamente invis\u00c3\u00advel para jogadores normais, e escondido de comandos in-game. -versionMismatch=\u00a74Versao nao correspondente\! Por favor atualize o {0} para a mesma versao. -versionMismatchAll=\u00a74Versao nao correspondente\! Por favor atualize todos os jars do Essentials para a mesma versao. -voiceSilenced=\u00a76Sua voz foi silenciada\! +sudoExempt=\u00A74N\u00E3o podes usar sudo nesse usu\u00E1rio. +sudoRun=\u00A76For\u00E7ando\u00A7c {0} \u00A76a executar:\u00A7r /{1} +suicideMessage=\u00A76Adeus mundo cruel... +suicideSuccess=\u00A76{0} \u00A76matou-se. +survival=sobreviv\u00EAncia +takenFromAccount=\u00A7a{0} foram removidos da tua conta. +takenFromOthersAccount=\u00A7a{0} foram removidos da conta de {1}\u00A7a. Novo saldo: {2}. +teleportAAll=\u00A76Pedido de teletransporte enviado para todos os jogadores... +teleportAll=\u00A76Teletransportando todos os jogadores... +teleportAtoB=\u00A7c{0}\u00A76 teletransportou-te para \u00A7c{1}\u00A76. +teleportDisabled=\u00A7c{0} \u00A74est\u00E1 com teletransporte desativado. +teleportHereRequest=\u00A7c{0}\u00A76 pediu para que te teletransportasses at\u00E9 ele. +teleportNewPlayerError=\u00A74Falha ao teletransportar novo jogador! +teleportRequest=\u00A7c{0}\u00A76 pediu para se teletransportar at\u00E9 ti. +teleportRequestTimeoutInfo=\u00A76O pedido vai-se esgotar daqui a\u00A7c {0} segundos\u00A76. +teleportTop=\u00A76Indo para o topo. +teleportationCommencing=\u00A76Teletransportando... +teleportationDisabled=\u00A76Teletransporte \u00A7cdesativado\u00A76. +teleportationDisabledFor=\u00A76Teletransporte \u00A7cdesativado \u00A76para \u00A7c {0}\u00A76. +teleportationEnabled=\u00A76Teletransporte \u00A7cativado\u00A76. +teleportationEnabledFor=\u00A76Teletransporte \u00A7cativado \u00A76para \u00A7c {0}\u00A76. +teleporting=\u00A76Teletransportando... +teleportToPlayer=\u00A76Teletransportando para \u00A76 \u00A7c {0}. +tempBanned=\u00A7cFoste banido temporariamente por {0}:n\u00A7r{2} +tempbanExempt=\u00A74N\u00E3o podes banir temporariamente esse jogador. +thunder=\u00A76Tu\u00A7c {0} \u00A76trovoada no teu mundo. +thunderDuration=\u00A76Tu\u00A7c {0} \u00A76trovoada no teu mundo por\u00A7c {1} \u00A76segundos. +timeBeforeHeal=\u00A76Tempo antes da pr\u00F3xima cura:\u00A7c {0}\u00A76. +timeBeforeTeleport=\u00A76Tempo antes do pr\u00F3ximo teletransporte:\u00A7c {0} +timeFormat=\u00A76 \u00A7c {0} ou \u00A7c {1} \u00A76 ou \u00A7c {2} \u00A76 +timeSetPermission=\u00A74N\u00E3o tens permiss\u00E3o para definir o tempo. +timeWorldCurrent=\u00A76O tempo atual em\u00A7c {0} \u00A76e \u00A7c{1}\u00A76. +timeWorldSet=\u00A76O tempo foi definido para\u00A7c {0} \u00A76em: \u00A7c{1}\u00A76. +totalWorthAll=\u00A7aTodos os itens e blocos foram vendidos por um total de \u00A7c{1}\u00A7a. +totalWorthBlocks=\u00A7aTodos os blocos foram vendidos por um total de \u00A7c{1}\u00A7a. +tps=\u00A76TPS Atual = {0} +tradeSignEmpty=\u00A74A placa de troca n\u00E3o tem nada dispon\u00EDvel para ti. +tradeSignEmptyOwner=\u00A74N\u00E3o h\u00E1 nada para recolher nessa placa de troca. +treeFailure=\u00A74Erro ao gerar \u00E1rvore. Tenta novamente na terra ou na relva. +treeSpawned=\u00A76\u00C1rvore gerada. +true=\u00A7averdadeiro\u00A7r +typeTpaccept=\u00A76Para teletransportar, digita \u00A7c/tpaccept\u00A76. +typeTpdeny=\u00A76Para recusar o pedido, digita \u00A7c/tpdeny\u00A76. +typeWorldName=\u00A76Tamb\u00E9m podes digitar o nome de um mundo espec\u00EDfico. +unableToSpawnMob=\u00A74Incapaz de spawnar o mob. +unignorePlayer=\u00A76J\u00E1 n\u00E3o est\u00E1s a ignorar o jogador\u00A7c {0} \u00A76. +unknownItemId=\u00A74ID de item inv\u00E1lido: \u00A7r {0}\u00A74. +unknownItemInList=\u00A74Item desconhecido {0} na lista {1}. +unknownItemName=\u00A74Nome de item desconhecido: {0}. +unlimitedItemPermission=\u00A74Sem permiss\u00E3o para item \u00A7c{0}\u00A74 ilimitado. +unlimitedItems=\u00A76Itens ilimitados:\u00A7r +unmutedPlayer=\u00A76O jogador\u00A7c {0} \u00A76j\u00E1 n\u00E3o est\u00E1 silenciado. +unvanishedReload=\u00A74Um reload for\u00E7ou-te a ficar vis\u00EDvel novamente. +upgradingFilesError=Erro ao atualizar os arquivos. +uptime=\u00A76Servidor online dede h\u00E1:\u00A7c {0} +userAFK=\u00A75{0} \u00A75est\u00E1 atualmente AFK e pode n\u00E3o responder. +userDoesNotExist=\u00A74O jogador\u00A7c {0} \u00A74n\u00E3o existe. +userIsAway=\u00A75{0} \u00A75est\u00E1 agora AFK. +userIsNotAway=\u00A75{0} \u00A75j\u00E1 n\u00E3o est\u00E1 AFK. +userJailed=\u00A76Foste preso! +userUnknown=\u00A74Aviso: O jogador ''\u00A7c{0}\u00A74'' nunca entrou neste servidor. +userdataMoveBackError=Falha ao mover userdata/{0}.tmp para userdata/{1}! +userdataMoveError=Falha ao mover userdata/{0} para userdata/{1}.tmp! +usingTempFolderForTesting=A utilizar uma pasta tempor\u00E1ria para teste: +vanished=\u00A76Est\u00E1 agora completamente invis\u00EDvel para jogadores normais, e escondido de comandos in-game. +versionMismatch=\u00A74Vers\u00E3o n\u00E3o compat\u00EDvel! Por favor atualiza o {0} para a mesma vers\u00E3o. +versionMismatchAll=\u00A74Vers\u00E3o n\u00E3o compat\u00EDvel! Por favor atualiza todos os jars do Essentials para a mesma versao. +voiceSilenced=\u00A76A tua voz foi silenciada! walking=caminhando -warpDeleteError=\u00a74Problema ao deletar o arquivo do warp. +warpDeleteError=\u00A74Problema ao apagar o ficheiro do warp. warpList={0} -warpListPermission=\u00a74Voce nao tem permissao para listar os warps. -warpNotExist=\u00a74Esse warp nao existe. -warpOverwrite=\u00a74Voce nao pode sobreescrever esse warp. -warpSet=\u00a76Warp\u00a7c {0} \u00a76definido. -warpUsePermission=\u00a74Voce nao tem permissao para usar esse warp. -warpingTo=\u00a76Teleportando para\u00a7c {0}\u00a76. -warps=\u00a76Warps\:\u00a7r {0} -warpsCount=\u00a76There are\u00a7c {0} \u00a76warps. Showing page \u00a7c{1} \u00a76of \u00a7c{2}\u00a76. -weatherStorm=\u00a76Voc\u00c3\u00aa definiu o tempo para \u00a7ctempestade\u00a76 em\u00a7c {0}\u00a76. -weatherStormFor=\u00a76Voc\u00c3\u00aa definiu o tempo para \u00a7ctempestade\u00a76 em\u00a7c {0} \u00a76por {1} segundos. -weatherSun=\u00a76Voc\u00c3\u00aa definiu o tempo para \u00a7csol\u00a76 em\u00a7c {0}\u00a76. -weatherSunFor=\u00a76Voc\u00ea definiu o tempo para \u00a7csun\u00a76 em\u00a7c {0} \u00a76por {1} segundos. -whoisAFK=\u00a76 - AFK\:\u00a7r {0} -whoisBanned=\u00a76 - Banido\:\u00a7r {0} -whoisExp=\u00a76 - Exp\:\u00a7r {0} (N\u00c3\u00advel {1}) -whoisFly=\u00a76 - Modo Fly\:\u00a7r {0} ({1}) -whoisGamemode=\u00a76 - Modo de Jogo\:\u00a7r {0} -whoisGeoLocation=\u00a76 - Localiza\u00c3\u00a7ao\:\u00a7r {0} -whoisGod=\u00a76 - Modo deus\:\u00a7r {0} -whoisHealth=\u00a76 - Vida\:\u00a7r {0}/20 -whoisIPAddress=\u00a76 - Endere\u00c3\u00a7o IP\:\u00a7r {0} -whoisJail=\u00a76 - Na cadeia\:\u00a7r {0} -whoisLocation=\u00a76 - Localiza\u00c3\u00a7ao\:\u00a7r ({0}, {1}, {2}, {3}) -whoisMoney=\u00a76 - Dinheiro\:\u00a7r {0} -whoisMuted=\u00a76 - Silenciado\:\u00a7r {0} -whoisNick=\u00a76 - Apelido\:\u00a7r {0} -whoisOp=\u00a76 - OP\:\u00a7r {0} -whoisTop=\u00a76 \=\=\=\=\=\= Quem\u00c3\u0089\:\u00a7c {0} \u00a76\=\=\=\=\=\= -worth=\u00a7aPack de {0} vale \u00a7c{1}\u00a7a ({2} a {3} cada) -worthMeta=\u00a7aPack de {0} com metadata de {1} vale \u00a7c{2}\u00a7a ({3} a {4} cada) -worthSet=\u00a76Valor definido +warpListPermission=\u00A74N\u00E3o tens permiss\u00E3o para listar os warps. +warpNotExist=\u00A74Esse warp n\u00E3o existe. +warpOverwrite=\u00A74N\u00E3o podes substituir esse warp. +warpSet=\u00A76Warp\u00A7c {0} \u00A76definido. +warpUsePermission=\u00A74N\u00E3o tens permiss\u00E3o para usar esse warp. +warpingTo=\u00A76Indo para\u00A7c {0}\u00A76. +warps=\u00A76Warps:\u00A7r {0} +warpsCount=\u00A76Aqui h\u00E1\u00A7c {0} \u00A76warps. A mostrar p\u00E1gina \u00A7c {1} \u00A76de \u00A7c {2} \u00A76. +weatherStorm=\u00A76Definiste o tempo para \u00A7ctempestade\u00A76 em\u00A7c {0}\u00A76. +weatherStormFor=\u00A76Definiste o tempo para \u00A7ctempestade\u00A76 em\u00A7c {0} \u00A76por {1} segundos. +weatherSun=\u00A76Definiste o tempo para \u00A7csol\u00A76 em\u00A7c {0}\u00A76. +weatherSunFor=\u00A76Definiste o tempo para \u00A7csol\u00A76 em\u00A7c {0} \u00A76por {1} segundos. +whoisAFK=\u00A76 - AFK:\u00A7r {0} +whoisBanned=\u00A76 - Banido:\u00A7r {0} +whoisExp=\u00A76 - Exp:\u00A7r {0} (N\u00EDvel {1}) +whoisFly=\u00A76 - Modo voo:\u00A7r {0} ({1}) +whoisGamemode=\u00A76 - Modo de jogo:\u00A7r {0} +whoisGeoLocation=\u00A76 - Geo localiza\u00E7\u00E3o:\u00A7r {0} +whoisGod=\u00A76 - Modo deus:\u00A7r {0} +whoisHealth=\u00A76 - Vida:\u00A7r {0}/20 +whoisIPAddress=\u00A76 - Endere\u00E7o IP:\u00A7r {0} +whoisJail=\u00A76 - Na pris\u00E3o:\u00A7r {0} +whoisLocation=\u00A76 - Localiza\u00E7\u00E3o:\u00A7r ({0}, {1}, {2}, {3}) +whoisMoney=\u00A76 - Dinheiro:\u00A7r {0} +whoisMuted=\u00A76 - Silenciado:\u00A7r {0} +whoisNick=\u00A76 - Nick:\u00A7r {0} +whoisOp=\u00A76 - OP:\u00A7r {0} +whoisTop=\u00A76 ====== Quem \u00E9:\u00A7c {0} \u00A76====== +worth=\u00A7aStack de {0} vale \u00A7c{1}\u00A7a ({2} a {3} cada) +worthMeta=\u00A7aStack de {0} com metadata de {1} vale \u00A7c{2}\u00A7a ({3} a {4} cada) +worthSet=\u00A76Valor definido year=ano years=anos -youAreHealed=\u00a76Voc\u00c3\u00aa foi curado. -youHaveNewMail=\u00a76Voc\u00c3\u00aa tem\u00a7c {0} \u00a76mensagens\! Digite \u00a7c/mail read\u00a76 para v\u00c3\u00aa-las. -whoisHunger=\u00a76 - Fome\:\u00a7r {0}/20 (+{1} satura\u00e7\u00e3o) -kitDelay=\u00a7m{0}\u00a7r -giveSpawnFailure=\u00a74N\u00e3o tem espa\u00e7o, \u00a7c{0} \u00a7c{1} \u00a74 foi perdido. -noKitGroup=\u00a74Voc\u00ea n\u00e3o tem acesso \u00e0 este kit. -inventoryClearingFromAll=\u00a76Esvaziando os invent\u00e1rios de todos os usu\u00e1rios... -inventoryClearingAllItems=\u00a76Limpou todos os itens do invent\u00e1rio de {0}\u00a76. -inventoryClearingAllArmor=\u00a76Limpou todos os itens do invent\u00e1rio e armaduras de {0}\u00a76.\u00a0 -inventoryClearingAllStack=\u00a76Limpou todos \u00a7c {0} \u00a76de {1}\u00a76. -inventoryClearingStack=\u00a76Removido\u00a7c {0} \u00a76de\u00a7c {1} \u00a76de {2}\u00a76. -inventoryClearFail=\u00a74Jogador {0} \u00a74n\u00e3o tem \u00a7c {1} \u00a74de\u00a7c {2}\u00a74. +youAreHealed=\u00A76Foste curado. +youHaveNewMail=\u00A76Tens\u00A7c {0} \u00A76mensagens! Digita \u00A7c/mail read\u00A76 para veres. +whoisHunger=\u00A76 - Fome:\u00A7r {0}/20 (+{1} satura\u00E7\u00E3o) +kitDelay=\u00A7m{0}\u00A7r +giveSpawnFailure=\u00A74N\u00E3o tens espa\u00E7o, \u00A7c{0} \u00A7c{1} \u00A74foi perdido. +noKitGroup=\u00A74 N\u00E3o tens acesso a este kit. +inventoryClearingFromAll=\u00A76Esvaziaste os invent\u00E1rios de todos os utilizadores... +inventoryClearingAllItems=\u00A76Limpaste todos os itens do invent\u00E1rio de {0}\u00A76. +inventoryClearingAllArmor=\u00A76Limpaste todos os itens do invent\u00E1rio e armaduras de {0}\u00A76. . +inventoryClearingAllStack=\u00A76Limpaste todos \u00A7c {0} \u00A76de {1}\u00A76. +inventoryClearingStack=\u00A76Removido\u00A7c {0} \u00A76de\u00A7c {1} \u00A76de {2}\u00A76. +inventoryClearFail=\u00A74Jogador {0} \u00A74n\u00E3o tem \u00A7c {1} \u00A74de\u00A7c {2}\u00A74. localNoOne= -totalSellableAll=\u00a7aO valor total dos itens e blocos dispon\u00edveis para venda \u00e9 de \u00a7c{1}\u00a7a. -totalSellableBlocks=\u00a7aO valor total dos blocos dispon\u00edveis para venda \u00e9 de \u00a7c{1}\u00a7a. -radiusTooBig=\u00a74O raio e muito grande. O raio maximo permitido \u00e9 de {0}. -isIpBanned=\u00a76IP \u00a7c{0} \u00a76 esta banido. -mobDataList=\u00a76Dados do mob validos\:\u00a7r {0} -vanish=\u00a76Invisivel para {0}\u00a76\: {1} -noLocationFound=\u00a74Nenhuma localizacao valida encontrada. +totalSellableAll=\u00A7aO valor total dos itens e blocos dispon\u00EDveis para venda \u00E9 de \u00A7c{1}\u00A7a. +totalSellableBlocks=\u00A7aO valor total dos blocos dispon\u00EDveis para venda \u00E9 de \u00A7c{1}\u00A7a. +radiusTooBig=\u00A74O raio \u00E9 muito grande. O raio m\u00E1ximo permitido \u00E9 de {0}. +isIpBanned=\u00A76IP \u00A7c{0} \u00A76 est\u00E1 banido. +mobDataList=\u00A76Dados do mob v\u00E1lidos:\u00A7r {0} +vanish=\u00A76Invis\u00EDvel para {0}\u00A76: {1} +noLocationFound=\u00A74Nenhuma localiza\u00E7\u00E3o v\u00E1lida encontrada. coordsKeyword={0}, {1}, {2} -banExemptOffline=\u00a74Voce nao pode banir jogadores desconectados. -tempbanExemptOffline=\u00a74Voce nao pode banir temporariamente jogadores desconectados. -mayNotJailOffline=\u00a74Voce nao pode prender jogadores desconectados. -muteExemptOffline=\u00a74Voce nao pode silenciar jogadores desconectados. -ignoreExempt=\u00a74Voce nao pode ignorar aquele jogador. -unsafeTeleportDestination=\u00a74O destino de teleporte \u00e9 inseguro teleporte-seguran\u00e7a est\u00e1 desabilitado. -noMetaJson=Metadata JSON n\u00e3o \u00e9 suportado nesta vers\u00e3o do Bukkit. -maxMoney=\u00a74Esta transa\u00e7\u00e3o iria exceder o limite de saldo para esta conta. -skullChanged=\u00a76Skull changed to \u00a7c{0}\u00a76. -alphaNames=\u00a74Nomes de jogadores s\u00f3 podem conter letras, n\u00fameros e sublinhados. -givenSkull=\u00a76Voc\u00ea recebeu o cr\u00e2nio do 6\u00ba par\u00e1grafo \u00a7c {0}. -noPermissionSkull=\u00a74Voc\u00ea n\u00e3o tem permiss\u00e3o para modificar esse cr\u00e2nio. -teleportInvalidLocation=Valor de coordenadas n\u00e3o pode ser mais 30000000 -invalidSkull=\u00a74Por favor,segure um cr\u00e2nio do Jogador. -weatherInvalidWorld=Mundo chamado de {0} n\u00e3o foi encontrado\! -gameModeInvalid=\u00a74Voc\u00ea precisa especificar um jogador/modo v\u00e1lido. -mailTooLong=\u00a74Mail message too long. Try to keep it below 1000 characters. -mailDelay=Muitos e-mails foram enviados no \u00faltimo minuto. M\u00e1ximo\: {0} -seenAccounts=\u00a76Player has also been known as\:\u00a7c {0} -unableToSpawnItem=\u00a74Cannot spawn \u00a7c{0}\u00a74, this is not a spawnable item. -itemsConverted=\u00a76Converted all items into blocks. -itemsNotConverted=\u00a74You have no items that can be converted into blocks. -mailSentTo=\u00a7c{0}\u00a76 has been sent the following mail\: +banExemptOffline=\u00A74N\u00E3o podes banir jogadores offline. +tempbanExemptOffline=\u00A74N\u00E3o podes banir temporariamente jogadores offline. +mayNotJailOffline=\u00A74N\u00E3o podes prender jogadores offline. +muteExemptOffline=\u00A74N\u00E3o podes silenciar jogadores offline. +ignoreExempt=\u00A7N\u00E3o podes ignorar este jogador. +unsafeTeleportDestination=\u00A74O destino de teletransporte \u00E9 inseguro e a seguran\u00E7a est\u00E1 desativada. +noMetaJson=Metadata JSON n\u00E3o \u00E9 suportado nesta vers\u00E3o do Bukkit. +maxMoney=\u00A74Esta transa\u00E7\u00E3o iria exceder o limite de saldo desta conta. +skullChanged=\u00A76Cr\u00E2nio mudou para \u00A7c {0}. \u00A76. +alphaNames=\u00A74Nomes de jogadores s\u00F3 podem conter letras, n\u00FAmeros e sublinhados. +givenSkull=\u00A76Recebeste a cabe\u00E7a de \u00A7c{0}\u00A76. +noPermissionSkull=\u00A74N\u00E3o tens permiss\u00E3o para modificar esse cr\u00E2nio. +teleportInvalidLocation=Valores de coordenadas n\u00E3o podem ser maiores que 30000000 +invalidSkull=\u00A74Por favor, segura a cabe\u00E7a de algum jogador. +weatherInvalidWorld=Mundo {0} n\u00E3o foi encontrado! +gameModeInvalid=\u00A74Precisas de especificar um modo de jogador v\u00E1lido. +mailTooLong=\u00A74Mensagem de e-mail muito longa tenta ficar apenas pelas 1000 letras. +mailDelay=Muitos e-mails foram enviados no \u00FAltimo minuto. M\u00E1ximo: {0} +seenAccounts=\u00A76Player tamb\u00E9m conhecido como: \u00A7c {0} +unableToSpawnItem=\u00A74N\u00E3o podes criar \u00A7c{0}\u00A74, esse item n\u00E3o \u00E9 cri\u00E1vel. +itemsConverted=\u00A76A converter todos os itens para blocos. +itemsNotConverted=\u00A74N\u00E3o tens itens que possam ser transformado em blocos. +mailSentTo=\u00A7c{0}\u00A76 foi enviado para o seguinte email: mailMessage={0} - -whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0} -playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76. -mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1} -cantGamemode=\u00a74You do not have permission to change to gamemode {0} -createdKit=\u00a76Created kit \u00a7c{0} \u00a76with \u00a7c{1} \u00a76entries and delay \u00a7c{2} -spectator=spectator -kitContains=\u00a76Kit \u00a7c{0} \u00a76contains: -kitItem=\u00a76- \u00a7f{0} -invalidBanner=\u00a74Invalid banner syntax. -commandCooldown=\u00a7cYou cannot type that command for {0}. +whoisTempBanned=\u00A76 - Banido:\u00A7r {0} +playerTempBanned=\u00A76Jogador \u00A7c{0}\u00A76 baniu temporariamente \u00A7c{1}\u00A76 por \u00A7c{2}\u00A76: \u00A7c{3}\u00A76. +mailFormat=\u00A76[\u00A7r{0}\u00A76] \u00A7r{1} +cantGamemode=\u00A74N\u00E3o tens permiss\u00E3o para mudar para o gamemode {0} +createdKit=\u00A76Kit criado: \u00A7c{0} \u00A76com \u00A7c{1} \u00A76entradas e tempo \u00A7c{2} +spectator=espetador +kitContains=\u00A76Kit \u00A7c{0} \u00A76cont\u00E9m: +kitItems=\u00A76- \u00A7f{0} +invalidBanner=\u00A74Syntax de estandarte inv\u00E1lida. +commandCooldown=\u00A7cN\u00E3o podes executar este comando por {0}. From 0a1feaf0448961e9e61110c52635eef69b47874b Mon Sep 17 00:00:00 2001 From: vemacs Date: Sat, 9 Jul 2016 18:42:42 -0600 Subject: [PATCH 25/28] Fix Vault-based permission logging (forgot after refactor) --- .../src/com/earth2me/essentials/perm/PermissionsHandler.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/perm/PermissionsHandler.java b/Essentials/src/com/earth2me/essentials/perm/PermissionsHandler.java index d211507c7..11b32787f 100644 --- a/Essentials/src/com/earth2me/essentials/perm/PermissionsHandler.java +++ b/Essentials/src/com/earth2me/essentials/perm/PermissionsHandler.java @@ -125,8 +125,8 @@ public class PermissionsHandler implements IPermissionsHandler { lastHandler = handlerClass; // output handler info - if (handler instanceof GenericVaultHandler) { - String enabledPermsPlugin = ((GenericVaultHandler) handler).getEnabledPermsPlugin(); + if (handler instanceof AbstractVaultHandler) { + String enabledPermsPlugin = ((AbstractVaultHandler) handler).getEnabledPermsPlugin(); if (enabledPermsPlugin == null) enabledPermsPlugin = "generic"; ess.getLogger().info("Using Vault based permissions (" + enabledPermsPlugin + ")"); } else if (handler.getClass() == SuperpermsHandler.class) { From 19f6510840004d28572a2071378dd2b178ccfd37 Mon Sep 17 00:00:00 2001 From: Ali 'SupaHam' M Date: Sun, 10 Jul 2016 16:09:53 +0100 Subject: [PATCH 26/28] Create VanishStatusChangeEvent. (#661) --- .../earth2me/essentials/commands/Commandvanish.java | 11 ++++++++++- .../net/ess3/api/events/VanishStatusChangeEvent.java | 12 ++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 Essentials/src/net/ess3/api/events/VanishStatusChangeEvent.java diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandvanish.java b/Essentials/src/com/earth2me/essentials/commands/Commandvanish.java index fcd0fce48..fdeba4a10 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandvanish.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandvanish.java @@ -6,6 +6,8 @@ import org.bukkit.Server; import static com.earth2me.essentials.I18n.tl; +import net.ess3.api.events.VanishStatusChangeEvent; + public class Commandvanish extends EssentialsToggleCommand { public Commandvanish() { @@ -28,6 +30,13 @@ public class Commandvanish extends EssentialsToggleCommand { enabled = !user.isVanished(); } + final User controller = sender.isPlayer() ? ess.getUser(sender.getPlayer()) : null; + VanishStatusChangeEvent vanishEvent = new VanishStatusChangeEvent(controller, user, enabled); + ess.getServer().getPluginManager().callEvent(vanishEvent); + if (vanishEvent.isCancelled()) { + return; + } + user.setVanished(enabled); user.sendMessage(tl("vanish", user.getDisplayName(), enabled ? tl("enabled") : tl("disabled"))); @@ -38,4 +47,4 @@ public class Commandvanish extends EssentialsToggleCommand { sender.sendMessage(tl("vanish", user.getDisplayName(), enabled ? tl("enabled") : tl("disabled"))); } } -} \ No newline at end of file +} diff --git a/Essentials/src/net/ess3/api/events/VanishStatusChangeEvent.java b/Essentials/src/net/ess3/api/events/VanishStatusChangeEvent.java new file mode 100644 index 000000000..3bb6ca2ca --- /dev/null +++ b/Essentials/src/net/ess3/api/events/VanishStatusChangeEvent.java @@ -0,0 +1,12 @@ +package net.ess3.api.events; + +import net.ess3.api.IUser; + +/** + * Called only in Commandvanish. For other events please use classes such as PlayerJoinEvent and eventually {@link IUser#isVanished()}. + */ +public class VanishStatusChangeEvent extends StatusChangeEvent { + public VanishStatusChangeEvent(IUser affected, IUser controller, boolean value) { + super(affected, controller, value); + } +} From c9f1b0fdc526dd9afa34ea8b4c4026a4b010e731 Mon Sep 17 00:00:00 2001 From: Ali Moghnieh Date: Fri, 1 Jul 2016 16:23:54 +0100 Subject: [PATCH 27/28] Add the option to disable disabled-sign name protection. (#699) This allows EssentialsX users to use other plugins that provide signs such as [Kit] and not have EssentialsX interfere with the final sign name. --- .../com/earth2me/essentials/ISettings.java | 2 ++ .../src/com/earth2me/essentials/Settings.java | 26 +++++++++++++++++++ .../essentials/signs/SignBlockListener.java | 9 ++++++- Essentials/src/config.yml | 9 +++++++ 4 files changed, 45 insertions(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java index c0ff25989..e7d70ea3f 100644 --- a/Essentials/src/com/earth2me/essentials/ISettings.java +++ b/Essentials/src/com/earth2me/essentials/ISettings.java @@ -263,4 +263,6 @@ public interface ISettings extends IConf { boolean isNpcsInBalanceRanking(); NumberFormat getCurrencyFormat(); + + List getUnprotectedSignNames(); } diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index 8c5a452bd..e02ce2eaf 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -549,6 +549,7 @@ public class Settings implements net.ess3.api.ISettings { commandCooldowns = _getCommandCooldowns(); npcsInBalanceRanking = _isNpcsInBalanceRanking(); currencyFormat = _getCurrencyFormat(); + unprotectedSigns = _getUnprotectedSign(); } private List itemSpawnBl = new ArrayList(); @@ -1328,4 +1329,29 @@ public class Settings implements net.ess3.api.ISettings { public NumberFormat getCurrencyFormat() { return this.currencyFormat; } + + private List unprotectedSigns = Collections.emptyList(); + + @Override + public List getUnprotectedSignNames() { + return this.unprotectedSigns; + } + + private List _getUnprotectedSign() { + List newSigns = new ArrayList<>(); + + for (String signName : config.getStringList("unprotected-sign-names")) { + signName = signName.trim().toUpperCase(Locale.ENGLISH); + if (signName.isEmpty()) { + continue; + } + try { + newSigns.add(Signs.valueOf(signName).getSign()); + } catch (Exception ex) { + logger.log(Level.SEVERE, tl("unknownItemInList", signName, "unprotected-sign-names")); + continue; + } + } + return newSigns; + } } diff --git a/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java b/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java index 136f06f91..f3ee48bed 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java @@ -91,11 +91,18 @@ public class SignBlockListener implements Listener { //We loop through all sign types here to prevent clashes with preexisting signs later for (Signs signs : Signs.values()) { final EssentialsSign sign = signs.getSign(); - // If the top line contains any of the success name (excluding colors), just remove all colours from the first line. + // If the top sign line contains any of the success name (excluding colors), just remove all colours from the first line. // This is to ensure we are only modifying possible Essentials Sign and not just removing colors from the first line of all signs. // Top line and sign#getSuccessName() are both lowercased since contains is case-sensitive. String lSuccessName = ChatColor.stripColor(sign.getSuccessName().toLowerCase()); if (lColorlessTopLine.contains(lSuccessName)) { + + // If this sign is not enabled and it has been requested to not protect it's name (when disabled), then do not protect the name. + // By lower-casing it and stripping colours. + if (!ess.getSettings().enabledSigns().contains(sign) + && ess.getSettings().getUnprotectedSignNames().contains(sign)) { + continue; + } event.setLine(0, lColorlessTopLine); } } diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml index eb37dcda3..43182242c 100644 --- a/Essentials/src/config.yml +++ b/Essentials/src/config.yml @@ -325,6 +325,15 @@ enabledSigns: # Lower numbers will reduce the possibility of lag, but may annoy players. sign-use-per-second: 4 +# List of sign names Essentials should not protect. This feature is especially useful when +# another plugin provides a sign that EssentialsX provides, but Essentials overrides. +# For example, if a plugin provides a [kit] sign, and you wish to use theirs instead of +# Essentials's, then simply add kit below and Essentials will not protect it. +# +# See https://github.com/drtshock/Essentials/pull/699 for more information. +unprotected-sign-names: + #- kit + # Backup runs a batch/bash command while saving is disabled. backup: # Interval in minutes. From 23e8498b47f6686b46e90f3c6704ec268c83b78c Mon Sep 17 00:00:00 2001 From: Ali Moghnieh Date: Sun, 10 Jul 2016 17:58:15 +0100 Subject: [PATCH 28/28] Clear trailing whitespaces in ISettings and Settings. --- .../src/com/earth2me/essentials/ISettings.java | 12 ++++++------ Essentials/src/com/earth2me/essentials/Settings.java | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java index e7d70ea3f..abfe54c1c 100644 --- a/Essentials/src/com/earth2me/essentials/ISettings.java +++ b/Essentials/src/com/earth2me/essentials/ISettings.java @@ -235,9 +235,9 @@ public interface ISettings extends IConf { boolean isNotifyNoNewMail(); boolean isDropItemsIfFull(); - + boolean isLastMessageReplyRecipient(); - + BigDecimal getMinimumPayAmount(); long getLastMessageReplyRecipientTimeout(); @@ -249,20 +249,20 @@ public interface ISettings extends IConf { boolean isWorldTimePermissions(); boolean isSpawnOnJoin(); - + boolean isTeleportToCenterLocation(); - + boolean isCommandCooldownsEnabled(); long getCommandCooldownMs(String label); Entry getCommandCooldownEntry(String label); - + boolean isCommandCooldownPersistent(String label); boolean isNpcsInBalanceRanking(); NumberFormat getCurrencyFormat(); - + List getUnprotectedSignNames(); } diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index e02ce2eaf..03ecc5d81 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -1191,8 +1191,7 @@ public class Settings implements net.ess3.api.ISettings { public boolean isTeleportToCenterLocation() { return config.getBoolean("teleport-to-center", true); } - - + private Map commandCooldowns; private Map _getCommandCooldowns() { @@ -1276,17 +1275,18 @@ public class Settings implements net.ess3.api.ISettings { // TODO: enable per command cooldown specification for persistence. return config.getBoolean("command-cooldown-persistence", true); } - + private boolean npcsInBalanceRanking = false; - + private boolean _isNpcsInBalanceRanking() { return config.getBoolean("npcs-in-balance-ranking", false); } - + @Override public boolean isNpcsInBalanceRanking() { return npcsInBalanceRanking; } + private NumberFormat currencyFormat; private NumberFormat _getCurrencyFormat() {