summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Essentials/src/com/earth2me/essentials/DescParseTickFormat.java34
-rw-r--r--Essentials/src/com/earth2me/essentials/Enchantments.java27
-rw-r--r--Essentials/src/com/earth2me/essentials/Essentials.java20
-rw-r--r--Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java4
-rw-r--r--Essentials/src/com/earth2me/essentials/EssentialsConf.java4
-rw-r--r--Essentials/src/com/earth2me/essentials/EssentialsEntityListener.java24
-rw-r--r--Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java149
-rw-r--r--Essentials/src/com/earth2me/essentials/EssentialsPluginListener.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/ISettings.java4
-rw-r--r--Essentials/src/com/earth2me/essentials/IUser.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/Jails.java30
-rw-r--r--Essentials/src/com/earth2me/essentials/Kit.java30
-rw-r--r--Essentials/src/com/earth2me/essentials/Settings.java31
-rw-r--r--Essentials/src/com/earth2me/essentials/Trade.java21
-rw-r--r--Essentials/src/com/earth2me/essentials/User.java8
-rw-r--r--Essentials/src/com/earth2me/essentials/UserData.java7
-rw-r--r--Essentials/src/com/earth2me/essentials/Util.java19
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandban.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandgamemode.java24
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandgive.java10
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commanditem.java65
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandjump.java1
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandkick.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandkickall.java1
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandkillall.java10
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandkit.java79
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandpowertool.java28
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandptime.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandremove.java11
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandrepair.java5
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandseen.java23
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandsethome.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandspawnmob.java6
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandtime.java18
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandtpo.java1
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandtppos.java27
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandunban.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/craftbukkit/OfflineBedLocation.java52
-rw-r--r--Essentials/src/com/earth2me/essentials/craftbukkit/SetExpFix.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/metrics/Metrics.java6
-rw-r--r--Essentials/src/com/earth2me/essentials/metrics/MetricsStarter.java17
-rw-r--r--Essentials/src/com/earth2me/essentials/perm/PermissionsBukkitHandler.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/perm/PrivilegesHandler.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/register/payment/Method.java7
-rw-r--r--Essentials/src/com/earth2me/essentials/register/payment/methods/BOSE6.java11
-rw-r--r--Essentials/src/com/earth2me/essentials/register/payment/methods/BOSE7.java11
-rw-r--r--Essentials/src/com/earth2me/essentials/register/payment/methods/MCUR.java10
-rw-r--r--Essentials/src/com/earth2me/essentials/register/payment/methods/VaultEco.java14
-rw-r--r--Essentials/src/com/earth2me/essentials/register/payment/methods/iCo4.java11
-rw-r--r--Essentials/src/com/earth2me/essentials/register/payment/methods/iCo5.java11
-rw-r--r--Essentials/src/com/earth2me/essentials/register/payment/methods/iCo6.java11
-rw-r--r--Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java71
-rw-r--r--Essentials/src/com/earth2me/essentials/signs/SignEnchant.java4
-rw-r--r--Essentials/src/com/earth2me/essentials/signs/SignEntityListener.java12
-rw-r--r--Essentials/src/com/earth2me/essentials/signs/SignPlayerListener.java11
-rw-r--r--Essentials/src/com/earth2me/essentials/signs/SignTrade.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/user/UserBase.java7
-rw-r--r--Essentials/src/config.yml7
-rw-r--r--Essentials/src/items.csv599
-rw-r--r--Essentials/src/messages.properties16
-rw-r--r--Essentials/src/messages_cs.properties426
-rw-r--r--Essentials/src/messages_da.properties2
-rw-r--r--Essentials/src/messages_de.properties2
-rw-r--r--Essentials/src/messages_en.properties24
-rw-r--r--Essentials/src/messages_es.properties2
-rw-r--r--Essentials/src/messages_fr.properties2
-rw-r--r--Essentials/src/messages_it.properties425
-rw-r--r--Essentials/src/messages_nl.properties2
-rw-r--r--Essentials/src/messages_pl.properties425
-rw-r--r--Essentials/src/messages_pt.properties425
-rw-r--r--Essentials/src/plugin.yml4
-rw-r--r--Essentials/test/com/earth2me/essentials/UtilTest.java82
-rw-r--r--EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayer.java17
-rw-r--r--EssentialsGroupManager/src/globalgroups.yml25
-rw-r--r--EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java2
-rw-r--r--lib/bukkit.jarbin4715521 -> 4717318 bytes
-rw-r--r--lib/craftbukkit.jarbin11093197 -> 11101992 bytes
77 files changed, 3041 insertions, 455 deletions
diff --git a/Essentials/src/com/earth2me/essentials/DescParseTickFormat.java b/Essentials/src/com/earth2me/essentials/DescParseTickFormat.java
index bf3037e59..9c40acacc 100644
--- a/Essentials/src/com/earth2me/essentials/DescParseTickFormat.java
+++ b/Essentials/src/com/earth2me/essentials/DescParseTickFormat.java
@@ -6,12 +6,11 @@ import java.util.*;
/**
- * This utility class is used for converting between the ingame
- * time in ticks to ingame time as a friendly string.
- * Note that the time is INGAME.
- *
+ * This utility class is used for converting between the ingame time in ticks to ingame time as a friendly string. Note
+ * that the time is INGAME.
+ *
* http://www.minecraftwiki.net/wiki/Day/night_cycle
- *
+ *
* @author Olof Larsson
*/
public final class DescParseTickFormat
@@ -156,30 +155,31 @@ public final class DescParseTickFormat
int hours = 0;
int minutes = 0;
- desc = desc.toLowerCase(Locale.ENGLISH).replaceAll("[^0-9]", "");
+ desc = desc.toLowerCase(Locale.ENGLISH);
+ String parsetime = desc.replaceAll("[^0-9]", "");
- if (desc.length() > 4)
+ if (parsetime.length() > 4)
{
throw new NumberFormatException();
}
- if (desc.length() == 4)
+ if (parsetime.length() == 4)
{
- hours += Integer.parseInt(desc.substring(0, 2));
- minutes += Integer.parseInt(desc.substring(2, 4));
+ hours += Integer.parseInt(parsetime.substring(0, 2));
+ minutes += Integer.parseInt(parsetime.substring(2, 4));
}
- else if (desc.length() == 3)
+ else if (parsetime.length() == 3)
{
- hours += Integer.parseInt(desc.substring(0, 1));
- minutes += Integer.parseInt(desc.substring(1, 3));
+ hours += Integer.parseInt(parsetime.substring(0, 1));
+ minutes += Integer.parseInt(parsetime.substring(1, 3));
}
- else if (desc.length() == 2)
+ else if (parsetime.length() == 2)
{
- hours += Integer.parseInt(desc.substring(0, 2));
+ hours += Integer.parseInt(parsetime.substring(0, 2));
}
- else if (desc.length() == 1)
+ else if (parsetime.length() == 1)
{
- hours += Integer.parseInt(desc.substring(0, 1));
+ hours += Integer.parseInt(parsetime.substring(0, 1));
}
else
{
diff --git a/Essentials/src/com/earth2me/essentials/Enchantments.java b/Essentials/src/com/earth2me/essentials/Enchantments.java
index 5ce10d75d..ed0051c46 100644
--- a/Essentials/src/com/earth2me/essentials/Enchantments.java
+++ b/Essentials/src/com/earth2me/essentials/Enchantments.java
@@ -19,47 +19,72 @@ public class Enchantments
ENCHANTMENTS.put("alldamage", Enchantment.DAMAGE_ALL);
ENCHANTMENTS.put("alldmg", Enchantment.DAMAGE_ALL);
ENCHANTMENTS.put("sharpness", Enchantment.DAMAGE_ALL);
+
ENCHANTMENTS.put("arthropodsdamage", Enchantment.DAMAGE_ARTHROPODS);
ENCHANTMENTS.put("ardmg", Enchantment.DAMAGE_ARTHROPODS);
ENCHANTMENTS.put("baneofarthropods", Enchantment.DAMAGE_ARTHROPODS);
+
ENCHANTMENTS.put("undeaddamage", Enchantment.DAMAGE_UNDEAD);
ENCHANTMENTS.put("smite", Enchantment.DAMAGE_UNDEAD);
+
ENCHANTMENTS.put("digspeed", Enchantment.DIG_SPEED);
ENCHANTMENTS.put("efficiency", Enchantment.DIG_SPEED);
+
ENCHANTMENTS.put("durability", Enchantment.DURABILITY);
ENCHANTMENTS.put("dura", Enchantment.DURABILITY);
ENCHANTMENTS.put("unbreaking", Enchantment.DURABILITY);
+
ENCHANTMENTS.put("fireaspect", Enchantment.FIRE_ASPECT);
ENCHANTMENTS.put("fire", Enchantment.FIRE_ASPECT);
+
ENCHANTMENTS.put("knockback", Enchantment.KNOCKBACK);
+
ENCHANTMENTS.put("blockslootbonus", Enchantment.LOOT_BONUS_BLOCKS);
ENCHANTMENTS.put("fortune", Enchantment.LOOT_BONUS_BLOCKS);
+
ENCHANTMENTS.put("mobslootbonus", Enchantment.LOOT_BONUS_MOBS);
ENCHANTMENTS.put("mobloot", Enchantment.LOOT_BONUS_MOBS);
ENCHANTMENTS.put("looting", Enchantment.LOOT_BONUS_MOBS);
+
ENCHANTMENTS.put("oxygen", Enchantment.OXYGEN);
ENCHANTMENTS.put("respiration", Enchantment.OXYGEN);
+
ENCHANTMENTS.put("protection", Enchantment.PROTECTION_ENVIRONMENTAL);
ENCHANTMENTS.put("prot", Enchantment.PROTECTION_ENVIRONMENTAL);
- ENCHANTMENTS.put("explosionsprotection", Enchantment.PROTECTION_EXPLOSIONS);
+
+ ENCHANTMENTS.put("explosionsprotection", Enchantment.PROTECTION_EXPLOSIONS);
ENCHANTMENTS.put("expprot", Enchantment.PROTECTION_EXPLOSIONS);
ENCHANTMENTS.put("blastprotection", Enchantment.PROTECTION_EXPLOSIONS);
+
ENCHANTMENTS.put("fallprotection", Enchantment.PROTECTION_FALL);
ENCHANTMENTS.put("fallprot", Enchantment.PROTECTION_FALL);
+ ENCHANTMENTS.put("featherfall", Enchantment.PROTECTION_FALL);
ENCHANTMENTS.put("featherfalling", Enchantment.PROTECTION_FALL);
+
ENCHANTMENTS.put("fireprotection", Enchantment.PROTECTION_FIRE);
ENCHANTMENTS.put("fireprot", Enchantment.PROTECTION_FIRE);
+
ENCHANTMENTS.put("projectileprotection", Enchantment.PROTECTION_PROJECTILE);
ENCHANTMENTS.put("projprot", Enchantment.PROTECTION_PROJECTILE);
+
ENCHANTMENTS.put("silktouch", Enchantment.SILK_TOUCH);
+
ENCHANTMENTS.put("waterworker", Enchantment.WATER_WORKER);
ENCHANTMENTS.put("aquaaffinity", Enchantment.WATER_WORKER);
+
ENCHANTMENTS.put("firearrow", Enchantment.ARROW_FIRE);
+ ENCHANTMENTS.put("flame", Enchantment.ARROW_FIRE);
+
ENCHANTMENTS.put("arrowdamage", Enchantment.ARROW_DAMAGE);
+ ENCHANTMENTS.put("power", Enchantment.ARROW_DAMAGE);
+
ENCHANTMENTS.put("arrowknockback", Enchantment.ARROW_KNOCKBACK);
ENCHANTMENTS.put("arrowkb", Enchantment.ARROW_KNOCKBACK);
+ ENCHANTMENTS.put("punch", Enchantment.ARROW_KNOCKBACK);
+
ENCHANTMENTS.put("infinitearrows", Enchantment.ARROW_INFINITE);
ENCHANTMENTS.put("infarrows", Enchantment.ARROW_INFINITE);
+ ENCHANTMENTS.put("infinity", Enchantment.ARROW_INFINITE);
}
public static Enchantment getByName(String name) {
diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java
index c3dac9b50..6197f5edd 100644
--- a/Essentials/src/com/earth2me/essentials/Essentials.java
+++ b/Essentials/src/com/earth2me/essentials/Essentials.java
@@ -42,6 +42,7 @@ import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Server;
import org.bukkit.World;
@@ -66,7 +67,7 @@ import org.yaml.snakeyaml.error.YAMLException;
public class Essentials extends JavaPlugin implements IEssentials
{
- public static final int BUKKIT_VERSION = 2122;
+ public static final int BUKKIT_VERSION = 2149;
private static final Logger LOGGER = Logger.getLogger("Minecraft");
private transient ISettings settings;
private final transient TNTExplodeListener tntListener = new TNTExplodeListener(this);
@@ -241,7 +242,7 @@ public class Essentials extends JavaPlugin implements IEssentials
getScheduler().scheduleSyncRepeatingTask(this, timer, 1, 100);
Economy.setEss(this);
execTimer.mark("RegListeners");
-
+
final MetricsStarter metricsStarter = new MetricsStarter(this);
if (metricsStarter.getStart() != null && metricsStarter.getStart() == true)
{
@@ -304,20 +305,7 @@ public class Essentials extends JavaPlugin implements IEssentials
}
catch (final Exception ex)
{
- final ArrayList<StackTraceElement> elements = new ArrayList<StackTraceElement>(Arrays.asList(ex.getStackTrace()));
- elements.remove(0);
- final ArrayList<StackTraceElement> toRemove = new ArrayList<StackTraceElement>();
- for (final StackTraceElement e : elements)
- {
- if (e.getClassName().equals("com.earth2me.essentials.Essentials"))
- {
- toRemove.add(e);
- }
- }
- elements.removeAll(toRemove);
- final StackTraceElement[] trace = elements.toArray(new StackTraceElement[elements.size()]);
- ex.setStackTrace(trace);
- ex.printStackTrace();
+ Bukkit.getLogger().log(Level.SEVERE, ex.getMessage(), ex);
sender.sendMessage(ChatColor.RED + "An internal error occurred while attempting to perform this command");
return true;
}
diff --git a/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java b/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java
index 17f0f1778..3423da9d0 100644
--- a/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java
+++ b/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java
@@ -20,14 +20,14 @@ public class EssentialsBlockListener implements Listener
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
public void onBlockPlace(final BlockPlaceEvent event)
{
- final User user = ess.getUser(event.getPlayer());
// Do not rely on getItemInHand();
- // http://leaky.bukkit.org/issues/663
+ // http://leaky.bukkit.org/issues/663
final ItemStack is = Util.convertBlockToItem(event.getBlockPlaced());
if (is == null)
{
return;
}
+ final User user = ess.getUser(event.getPlayer());
final boolean unlimitedForUser = user.hasUnlimited(is);
if (unlimitedForUser && user.getGameMode() == GameMode.SURVIVAL)
{
diff --git a/Essentials/src/com/earth2me/essentials/EssentialsConf.java b/Essentials/src/com/earth2me/essentials/EssentialsConf.java
index 85c2bbd8c..b2cb1fd12 100644
--- a/Essentials/src/com/earth2me/essentials/EssentialsConf.java
+++ b/Essentials/src/com/earth2me/essentials/EssentialsConf.java
@@ -39,7 +39,7 @@ public class EssentialsConf extends YamlConfiguration
this.configFile = configFile;
}
- public void load()
+ public synchronized void load()
{
configFile = configFile.getAbsoluteFile();
if (!configFile.getParentFile().exists())
@@ -356,7 +356,7 @@ public class EssentialsConf extends YamlConfiguration
}
@Override
- public void save(final File file) throws IOException
+ public synchronized void save(final File file) throws IOException
{
if (file == null)
{
diff --git a/Essentials/src/com/earth2me/essentials/EssentialsEntityListener.java b/Essentials/src/com/earth2me/essentials/EssentialsEntityListener.java
index 029288530..ef0dba753 100644
--- a/Essentials/src/com/earth2me/essentials/EssentialsEntityListener.java
+++ b/Essentials/src/com/earth2me/essentials/EssentialsEntityListener.java
@@ -3,7 +3,7 @@ package com.earth2me.essentials;
import static com.earth2me.essentials.I18n._;
import java.util.List;
import org.bukkit.Material;
-import org.bukkit.entity.Animals;
+import org.bukkit.entity.Ageable;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -32,31 +32,41 @@ public class EssentialsEntityListener implements Listener
{
final User defender = ess.getUser(eDefend);
final User attacker = ess.getUser(eAttack);
- if (attacker.hasInvulnerabilityAfterTeleport() || defender.hasInvulnerabilityAfterTeleport()) {
+ if (attacker.hasInvulnerabilityAfterTeleport() || defender.hasInvulnerabilityAfterTeleport())
+ {
event.setCancelled(true);
}
attacker.updateActivity(true);
final List<String> commandList = attacker.getPowertool(attacker.getItemInHand());
if (commandList != null && !commandList.isEmpty())
{
- for (String command : commandList)
+ for (final String command : commandList)
{
if (command != null && !command.isEmpty())
{
- attacker.getServer().dispatchCommand(attacker, command.replaceAll("\\{player\\}", defender.getName()));
+ ess.scheduleSyncDelayedTask(
+ new Runnable()
+ {
+ @Override
+ public void run()
+ {
+ attacker.getServer().dispatchCommand(attacker.getBase(), command.replaceAll("\\{player\\}", defender.getName()));
+ }
+ });
+
event.setCancelled(true);
return;
}
}
}
}
- else if (eDefend instanceof Animals && eAttack instanceof Player)
+ else if (eDefend instanceof Ageable && eAttack instanceof Player)
{
- final User player = ess.getUser(eAttack);
+ final Player player = (Player)eAttack;
final ItemStack hand = player.getItemInHand();
if (hand != null && hand.getType() == Material.MILK_BUCKET)
{
- ((Animals)eDefend).setAge(-24000);
+ ((Ageable)eDefend).setBaby();
hand.setType(Material.BUCKET);
player.setItemInHand(hand);
player.updateInventory();
diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java
index 36adf37e2..b062d6ed4 100644
--- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java
+++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java
@@ -14,7 +14,6 @@ import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.Location;
import org.bukkit.Material;
-import org.bukkit.Server;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
@@ -31,13 +30,13 @@ import org.bukkit.inventory.ItemStack;
public class EssentialsPlayerListener implements Listener
{
private static final Logger LOGGER = Logger.getLogger("Minecraft");
- private final transient Server server;
private final transient IEssentials ess;
+ private static final int AIR = Material.AIR.getId();
+ private static final int BED = Material.BED_BLOCK.getId();
public EssentialsPlayerListener(final IEssentials parent)
{
this.ess = parent;
- this.server = parent.getServer();
}
@EventHandler(priority = EventPriority.NORMAL)
@@ -116,6 +115,7 @@ public class EssentialsPlayerListener implements Listener
{
user.toggleGodModeEnabled();
}
+ user.setLastLocation();
user.updateActivity(false);
user.dispose();
}
@@ -123,14 +123,25 @@ public class EssentialsPlayerListener implements Listener
@EventHandler(priority = EventPriority.MONITOR)
public void onPlayerJoin(final PlayerJoinEvent event)
{
- ess.getBackup().onPlayerJoin();
- final User user = ess.getUser(event.getPlayer());
+ ess.scheduleAsyncDelayedTask(new Runnable()
+ {
+ @Override
+ public void run()
+ {
+ delayedJoin(event.getPlayer());
+ }
+ });
+ }
+ public void delayedJoin(final Player player)
+ {
+ ess.getBackup().onPlayerJoin();
+ final User user = ess.getUser(player);
user.setDisplayNick();
+ updateCompass(user);
user.setLastLogin(System.currentTimeMillis());
-
user.updateActivity(false);
- updateCompass(user);
+
if (user.isAuthorized("essentials.sleepingignored"))
{
user.setSleepingIgnored(true);
@@ -172,6 +183,27 @@ public class EssentialsPlayerListener implements Listener
}
}
+ private void updateCompass(final User user)
+ {
+ Location loc = user.getHome(user.getLocation());
+ if (loc == null)
+ {
+ loc = user.getBedSpawnLocation();
+ }
+ if (loc != null)
+ {
+ final Location updateLoc = loc;
+ ess.scheduleSyncDelayedTask(new Runnable()
+ {
+ @Override
+ public void run()
+ {
+ user.setCompassTarget(updateLoc);
+ }
+ });
+ }
+ }
+
@EventHandler(priority = EventPriority.HIGH)
public void onPlayerLogin(final PlayerLoginEvent event)
{
@@ -185,7 +217,7 @@ public class EssentialsPlayerListener implements Listener
return;
}
- User user = ess.getUser(event.getPlayer());
+ final User user = ess.getUser(event.getPlayer());
if (user.isNPC())
{
user.setNPC(false);
@@ -211,30 +243,24 @@ public class EssentialsPlayerListener implements Listener
event.allow();
}
- private void updateCompass(final User user)
- {
- Location loc = user.getHome(user.getLocation());
- if (loc == null)
- {
- loc = user.getBedSpawnLocation();
- }
- if (loc != null)
- {
- user.setCompassTarget(loc);
- }
- }
-
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void onPlayerTeleport(final PlayerTeleportEvent event)
{
- //TODO: Don't fetch user unless one of these features are enabled.
- final User user = ess.getUser(event.getPlayer());
- //There is TeleportCause.COMMMAND but plugins have to actively pass the cause in on their teleports.
- if ((event.getCause() == TeleportCause.PLUGIN || event.getCause() == TeleportCause.COMMAND) && ess.getSettings().registerBackInListener())
+ final boolean backListener = ess.getSettings().registerBackInListener();
+ final boolean teleportInvulnerability = ess.getSettings().isTeleportInvulnerability();
+ if (backListener || teleportInvulnerability)
{
- user.setLastLocation();
+ final User user = ess.getUser(event.getPlayer());
+ //There is TeleportCause.COMMMAND but plugins have to actively pass the cause in on their teleports.
+ if (backListener && (event.getCause() == TeleportCause.PLUGIN || event.getCause() == TeleportCause.COMMAND))
+ {
+ user.setLastLocation();
+ }
+ if (teleportInvulnerability)
+ {
+ user.enableInvulnerabilityAfterTeleport();
+ }
}
- user.enableInvulnerabilityAfterTeleport();
}
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
@@ -266,26 +292,27 @@ public class EssentialsPlayerListener implements Listener
});
}
}
+ private final static List<String> COMMANDS = Arrays.asList("msg", "r", "mail", "m", "t", "emsg", "tell", "er", "reply", "ereply", "email");
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onPlayerCommandPreprocess(final PlayerCommandPreprocessEvent event)
{
- final User user = ess.getUser(event.getPlayer());
+ final Player player = event.getPlayer();
final String cmd = event.getMessage().toLowerCase(Locale.ENGLISH).split(" ")[0].replace("/", "").toLowerCase(Locale.ENGLISH);
- final List<String> commands = Arrays.asList("msg", "r", "mail", "m", "t", "emsg", "tell", "er", "reply", "ereply", "email");
- if (commands.contains(cmd))
+ if (COMMANDS.contains(cmd))
{
- for (Player player : ess.getServer().getOnlinePlayers())
+ for (Player onlinePlayer : ess.getServer().getOnlinePlayers())
{
- final User spyer = ess.getUser(player);
- if (spyer.isSocialSpyEnabled() && !user.equals(spyer))
+ final User spyer = ess.getUser(onlinePlayer);
+ if (spyer.isSocialSpyEnabled() && !player.equals(onlinePlayer))
{
- player.sendMessage(user.getDisplayName() + " : " + event.getMessage());
+ onlinePlayer.sendMessage(player.getDisplayName() + " : " + event.getMessage());
}
}
}
- if (!cmd.equalsIgnoreCase("afk"))
+ else if (!cmd.equalsIgnoreCase("afk"))
{
+ final User user = ess.getUser(player);
user.updateActivity(true);
}
}
@@ -294,40 +321,40 @@ public class EssentialsPlayerListener implements Listener
public void onPlayerChangedWorld(final PlayerChangedWorldEvent event)
{
final User user = ess.getUser(event.getPlayer());
+ final String newWorld = event.getPlayer().getLocation().getWorld().getName();
user.setDisplayNick();
updateCompass(user);
+ if (ess.getSettings().getNoGodWorlds().contains(newWorld) && user.isGodModeEnabledRaw())
+ {
+ user.sendMessage(_("noGodWorldWarning"));
+ }
- if (ess.getSettings().getNoGodWorlds().contains(event.getPlayer().getLocation().getWorld().getName()))
+ if (!event.getPlayer().getWorld().getName().equals(newWorld))
{
- if (user.isGodModeEnabledRaw())
- {
- user.sendMessage(_("noGodWorldWarning"));
- }
+ user.sendMessage(_("currentWorld", newWorld));
}
}
@EventHandler(priority = EventPriority.NORMAL)
public void onPlayerInteract(final PlayerInteractEvent event)
{
- final User user = ess.getUser(event.getPlayer());
- user.updateActivity(true);
switch (event.getAction())
{
case RIGHT_CLICK_BLOCK:
- if (event.isCancelled())
- {
- return;
- }
- if (event.getClickedBlock().getType() == Material.BED_BLOCK && ess.getSettings().getUpdateBedAtDaytime())
+ if (!event.isCancelled() && event.getClickedBlock().getTypeId() == BED && ess.getSettings().getUpdateBedAtDaytime())
{
event.getPlayer().setBedSpawnLocation(event.getClickedBlock().getLocation());
}
break;
- case LEFT_CLICK_BLOCK:
case LEFT_CLICK_AIR:
- if (user.hasPowerTools() && user.arePowerToolsEnabled() && usePowertools(user, event.getItem()))
+ case LEFT_CLICK_BLOCK:
+ if (event.getItem() != null && event.getItem().getTypeId() != AIR)
{
- event.setCancelled(true);
+ final User user = ess.getUser(event.getPlayer());
+ if (user.hasPowerTools() && user.arePowerToolsEnabled() && usePowertools(user, event.getItem().getTypeId()))
+ {
+ event.setCancelled(true);
+ }
}
break;
default:
@@ -335,13 +362,8 @@ public class EssentialsPlayerListener implements Listener
}
}
- private boolean usePowertools(final User user, final ItemStack is)
+ private boolean usePowertools(final User user, final int id)
{
- int id;
- if (is == null || (id = is.getTypeId()) == 0)
- {
- return false;
- }
final List<String> commandList = user.getPowertool(id);
if (commandList == null || commandList.isEmpty())
{
@@ -351,9 +373,8 @@ public class EssentialsPlayerListener implements Listener
// We need to loop through each command and execute
for (final String command : commandList)
{
- if (command.matches(".*\\{player\\}.*"))
+ if (command.contains("{player}"))
{
- //user.sendMessage("Click a player to use this command");
continue;
}
else if (command.startsWith("c:"))
@@ -381,14 +402,12 @@ public class EssentialsPlayerListener implements Listener
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onPlayerPickupItem(final PlayerPickupItemEvent event)
{
- if (!ess.getSettings().getDisableItemPickupWhileAfk())
- {
- return;
- }
- final User user = ess.getUser(event.getPlayer());
- if (user.isAfk())
+ if (ess.getSettings().getDisableItemPickupWhileAfk())
{
- event.setCancelled(true);
+ if (ess.getUser(event.getPlayer()).isAfk())
+ {
+ event.setCancelled(true);
+ }
}
}
diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPluginListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPluginListener.java
index 11f42e701..2ec8538ca 100644
--- a/Essentials/src/com/earth2me/essentials/EssentialsPluginListener.java
+++ b/Essentials/src/com/earth2me/essentials/EssentialsPluginListener.java
@@ -24,7 +24,7 @@ public class EssentialsPluginListener implements Listener, IConf
ess.getAlternativeCommandsHandler().addPlugin(event.getPlugin());
if (!ess.getPaymentMethod().hasMethod() && ess.getPaymentMethod().setMethod(ess.getServer().getPluginManager()))
{
- ess.getLogger().log(Level.INFO, "Payment method found (" + ess.getPaymentMethod().getMethod().getName() + " version: " + ess.getPaymentMethod().getMethod().getVersion() + ")");
+ ess.getLogger().log(Level.INFO, "Payment method found (" + ess.getPaymentMethod().getMethod().getLongName() + " version: " + ess.getPaymentMethod().getMethod().getVersion() + ")");
}
}
diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java
index 74942640e..2c07ccd58 100644
--- a/Essentials/src/com/earth2me/essentials/ISettings.java
+++ b/Essentials/src/com/earth2me/essentials/ISettings.java
@@ -170,5 +170,7 @@ public interface ISettings extends IConf
void setMetricsEnabled(boolean metricsEnabled);
- public long getTeleportInvulnerability();
+ long getTeleportInvulnerability();
+
+ boolean isTeleportInvulnerability();
}
diff --git a/Essentials/src/com/earth2me/essentials/IUser.java b/Essentials/src/com/earth2me/essentials/IUser.java
index df5401886..bfa9ed146 100644
--- a/Essentials/src/com/earth2me/essentials/IUser.java
+++ b/Essentials/src/com/earth2me/essentials/IUser.java
@@ -1,10 +1,8 @@
package com.earth2me.essentials;
import com.earth2me.essentials.commands.IEssentialsCommand;
-import java.net.InetSocketAddress;
import org.bukkit.Location;
import org.bukkit.entity.Player;
-import org.bukkit.inventory.PlayerInventory;
/**
diff --git a/Essentials/src/com/earth2me/essentials/Jails.java b/Essentials/src/com/earth2me/essentials/Jails.java
index 00c9d8999..0aa90e08c 100644
--- a/Essentials/src/com/earth2me/essentials/Jails.java
+++ b/Essentials/src/com/earth2me/essentials/Jails.java
@@ -9,12 +9,16 @@ import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.Bukkit;
import org.bukkit.Location;
+import org.bukkit.entity.Entity;
+import org.bukkit.entity.EntityType;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockDamageEvent;
import org.bukkit.event.block.BlockPlaceEvent;
+import org.bukkit.event.entity.EntityDamageByEntityEvent;
+import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerRespawnEvent;
@@ -38,10 +42,8 @@ public class Jails extends AsyncStorageObjectHolder<com.earth2me.essentials.sett
{
enabled = true;
final PluginManager pluginManager = ess.getServer().getPluginManager();
- final JailBlockListener blockListener = new JailBlockListener();
- final JailPlayerListener playerListener = new JailPlayerListener();
+ final JailListener blockListener = new JailListener();
pluginManager.registerEvents(blockListener, ess);
- pluginManager.registerEvents(playerListener, ess);
}
@Override
@@ -179,7 +181,7 @@ public class Jails extends AsyncStorageObjectHolder<com.earth2me.essentials.sett
}
- private class JailBlockListener implements Listener
+ private class JailListener implements Listener
{
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onBlockBreak(final BlockBreakEvent event)
@@ -210,11 +212,25 @@ public class Jails extends AsyncStorageObjectHolder<com.earth2me.essentials.sett
event.setCancelled(true);
}
}
- }
+ @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
+ public void onEntityDamageByEntity(final EntityDamageByEntityEvent event)
+ {
+ if (event.getCause() != DamageCause.ENTITY_ATTACK || event.getEntity().getType() != EntityType.PLAYER)
+ {
+ return;
+ }
+ final Entity damager = event.getDamager();
+ if (damager.getType() == EntityType.PLAYER)
+ {
+ final User user = ess.getUser(damager);
+ if (user != null && user.isJailed())
+ {
+ event.setCancelled(true);
+ }
+ }
+ }
- private class JailPlayerListener implements Listener
- {
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onPlayerInteract(final PlayerInteractEvent event)
{
diff --git a/Essentials/src/com/earth2me/essentials/Kit.java b/Essentials/src/com/earth2me/essentials/Kit.java
index 36a2e60b0..5edd40776 100644
--- a/Essentials/src/com/earth2me/essentials/Kit.java
+++ b/Essentials/src/com/earth2me/essentials/Kit.java
@@ -5,6 +5,7 @@ import static com.earth2me.essentials.I18n.capitalCase;
import com.earth2me.essentials.commands.NoChargeException;
import com.earth2me.essentials.craftbukkit.InventoryWorkaround;
import java.util.*;
+import java.util.logging.Level;
import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.enchantments.Enchantment;
@@ -22,7 +23,7 @@ public class Kit
final StringBuilder list = new StringBuilder();
for (String kiteItem : kits.getKeys(false))
{
- if (user.isAuthorized("essentials.kit." + kiteItem.toLowerCase(Locale.ENGLISH)))
+ if (user == null || user.isAuthorized("essentials.kit." + kiteItem.toLowerCase(Locale.ENGLISH)))
{
list.append(" ").append(capitalCase(kiteItem));
}
@@ -31,7 +32,7 @@ public class Kit
}
catch (Exception ex)
{
- throw new Exception(_("kitError"));
+ throw new Exception(_("kitError"), ex);
}
}
@@ -76,7 +77,7 @@ public class Kit
catch (Exception e)
{
user.sendMessage(_("kitError2"));
- throw new Exception(_("kitErrorHelp"));
+ throw new Exception(_("kitErrorHelp"),e);
}
}
@@ -104,6 +105,10 @@ public class Kit
continue;
}
final Enchantment enchantment = Enchantments.getByName(split[0]);
+ if (enchantment == null)
+ {
+ throw new Exception("Enchantment not found: " + split[0]);
+ }
int level;
if (split.length > 1)
{
@@ -113,7 +118,14 @@ public class Kit
{
level = enchantment.getMaxLevel();
}
- stack.addEnchantment(enchantment, level);
+ try
+ {
+ stack.addEnchantment(enchantment, level);
+ }
+ catch (Exception ex)
+ {
+ throw new Exception("Enchantment " + enchantment.getName() + ": " + ex.getMessage(), ex);
+ }
}
}
@@ -141,7 +153,15 @@ public class Kit
catch (Exception e)
{
user.updateInventory();
- throw new Exception(_("kitError2"));
+ if (ess.getSettings().isDebug())
+ {
+ ess.getLogger().log(Level.WARNING, e.getMessage());
+ }
+ else
+ {
+ ess.getLogger().log(Level.WARNING, e.getMessage());
+ }
+ throw new Exception(_("kitError2"), e);
}
}
}
diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java
index 9dee4e990..281280122 100644
--- a/Essentials/src/com/earth2me/essentials/Settings.java
+++ b/Essentials/src/com/earth2me/essentials/Settings.java
@@ -382,6 +382,9 @@ public class Settings implements ISettings
config.load();
noGodWorlds = new HashSet<String>(config.getStringList("no-god-in-worlds"));
enabledSigns = _getEnabledSigns();
+ teleportInvulnerability = _isTeleportInvulnerability();
+ disableItemPickupWhileAfk = _getDisableItemPickupWhileAfk();
+ registerBackInListener = _registerBackInListener();
itemSpawnBl = _getItemSpawnBlacklist();
kits = _getKits();
chatFormats.clear();
@@ -689,16 +692,30 @@ public class Settings implements ISettings
return config.getBoolean("world-teleport-permissions", false);
}
+ private boolean registerBackInListener;
+
@Override
public boolean registerBackInListener()
{
+ return registerBackInListener;
+ }
+
+ private boolean _registerBackInListener()
+ {
return config.getBoolean("register-back-in-listener", false);
}
+
+ private boolean disableItemPickupWhileAfk;
@Override
public boolean getDisableItemPickupWhileAfk()
{
- return config.getBoolean("disable-item-pickup-while-afk", true);
+ return disableItemPickupWhileAfk;
+ }
+
+ private boolean _getDisableItemPickupWhileAfk()
+ {
+ return config.getBoolean("disable-item-pickup-while-afk", false);
}
@Override
@@ -745,10 +762,22 @@ public class Settings implements ISettings
{
this.metricsEnabled = metricsEnabled;
}
+ private boolean teleportInvulnerability;
@Override
public long getTeleportInvulnerability()
{
return config.getLong("teleport-invulnerability", 0) * 1000;
}
+
+ private boolean _isTeleportInvulnerability()
+ {
+ return (config.getLong("teleport-invulnerability", 0) > 0);
+ }
+
+ @Override
+ public boolean isTeleportInvulnerability()
+ {
+ return teleportInvulnerability;
+ }
}
diff --git a/Essentials/src/com/earth2me/essentials/Trade.java b/Essentials/src/com/earth2me/essentials/Trade.java
index 730037d9a..3d3f36d8c 100644
--- a/Essentials/src/com/earth2me/essentials/Trade.java
+++ b/Essentials/src/com/earth2me/essentials/Trade.java
@@ -20,6 +20,7 @@ import org.bukkit.inventory.ItemStack;
public class Trade
{
private final transient String command;
+ private final transient String fallbackCommand;
private final transient Double money;
private final transient ItemStack itemStack;
private final transient Integer exp;
@@ -27,27 +28,33 @@ public class Trade
public Trade(final String command, final IEssentials ess)
{
- this(command, null, null, null, ess);
+ this(command, null, null, null, null, ess);
+ }
+
+ public Trade(final String command, final String fallback, final IEssentials ess)
+ {
+ this(command, fallback, null, null, null, ess);
}
public Trade(final double money, final IEssentials ess)
{
- this(null, money, null, null, ess);
+ this(null, null, money, null, null, ess);
}
public Trade(final ItemStack items, final IEssentials ess)
{
- this(null, null, items, null, ess);
+ this(null, null, null, items, null, ess);
}
public Trade(final int exp, final IEssentials ess)
{
- this(null, null, null, exp, ess);
+ this(null, null, null, null, exp, ess);
}
- private Trade(final String command, final Double money, final ItemStack item, final Integer exp, final IEssentials ess)
+ private Trade(final String command, final String fallback, final Double money, final ItemStack item, final Integer exp, final IEssentials ess)
{
this.command = command;
+ this.fallbackCommand = fallback;
this.money = money;
this.itemStack = item;
this.exp = exp;
@@ -197,6 +204,10 @@ public class Trade
&& !user.isAuthorized("essentials.nocommandcost." + command))
{
cost = ess.getSettings().getCommandCost(command.charAt(0) == '/' ? command.substring(1) : command);
+ if (cost == 0.0 && fallbackCommand != null && !fallbackCommand.isEmpty())
+ {
+ cost = ess.getSettings().getCommandCost(fallbackCommand.charAt(0) == '/' ? fallbackCommand.substring(1) : fallbackCommand);
+ }
}
return cost;
}
diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java
index f931b07d9..6f3023fbe 100644
--- a/Essentials/src/com/earth2me/essentials/User.java
+++ b/Essentials/src/com/earth2me/essentials/User.java
@@ -164,6 +164,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
}
}
+ @Override
public boolean canAfford(final double cost)
{
return canAfford(cost, true);
@@ -453,6 +454,10 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
public void setHidden(final boolean hidden)
{
this.hidden = hidden;
+ if (hidden == true)
+ {
+ setLastLogout(getLastOnlineActivity());
+ }
}
//Returns true if status expired during this check
@@ -574,6 +579,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
return super.isGodModeEnabled();
}
+ @Override
public String getGroup()
{
return ess.getPermissionsHandler().getGroup(base);
@@ -626,7 +632,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
teleportInvulnerabilityTimestamp = 0;
}
}
-
+
public boolean hasInvulnerabilityAfterTeleport()
{
return teleportInvulnerabilityTimestamp != 0 && teleportInvulnerabilityTimestamp >= System.currentTimeMillis();
diff --git a/Essentials/src/com/earth2me/essentials/UserData.java b/Essentials/src/com/earth2me/essentials/UserData.java
index abf338470..5686e0439 100644
--- a/Essentials/src/com/earth2me/essentials/UserData.java
+++ b/Essentials/src/com/earth2me/essentials/UserData.java
@@ -3,9 +3,7 @@ package com.earth2me.essentials;
import static com.earth2me.essentials.I18n._;
import java.io.File;
import java.util.*;
-import java.util.logging.Logger;
import org.bukkit.Location;
-import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
@@ -14,7 +12,6 @@ public abstract class UserData extends PlayerExtension implements IConf
{
protected final transient IEssentials ess;
private final EssentialsConf config;
- private static final Logger logger = Logger.getLogger("Minecraft");
protected UserData(Player base, IEssentials ess)
{
@@ -149,7 +146,7 @@ public abstract class UserData extends PlayerExtension implements IConf
public List<String> getHomes()
{
- return new ArrayList(homes.keySet());
+ return new ArrayList<String>(homes.keySet());
}
public void setHome(String name, Location loc)
@@ -254,11 +251,13 @@ public abstract class UserData extends PlayerExtension implements IConf
config.save();
}
+ @SuppressWarnings("unchecked")
public List<String> getPowertool(ItemStack stack)
{
return (List<String>)powertools.get("" + stack.getTypeId());
}
+ @SuppressWarnings("unchecked")
public List<String> getPowertool(int id)
{
return (List<String>)powertools.get("" + id);
diff --git a/Essentials/src/com/earth2me/essentials/Util.java b/Essentials/src/com/earth2me/essentials/Util.java
index 510ab8a9a..73817f645 100644
--- a/Essentials/src/com/earth2me/essentials/Util.java
+++ b/Essentials/src/com/earth2me/essentials/Util.java
@@ -80,11 +80,17 @@ public class Util
_("second"),
_("seconds")
};
+ int accuracy = 0;
for (int i = 0; i < types.length; i++)
{
+ if (accuracy > 2)
+ {
+ break;
+ }
int diff = dateDiff(types[i], fromDate, toDate, future);
if (diff > 0)
{
+ accuracy++;
sb.append(" ").append(diff).append(" ").append(names[i * 2 + (diff > 1 ? 1 : 0)]);
}
}
@@ -92,7 +98,7 @@ public class Util
{
return "now";
}
- return sb.toString();
+ return sb.toString().trim();
}
private static int dateDiff(int type, Calendar fromDate, Calendar toDate, boolean future)
@@ -209,6 +215,12 @@ public class Util
{
c.add(Calendar.SECOND, seconds * (future ? 1 : -1));
}
+
+ Calendar max = new GregorianCalendar();
+ max.add(Calendar.YEAR, 10);
+ if (c.after(max)) {
+ return max.getTimeInMillis();
+ }
return c.getTimeInMillis();
}
// The player can stand inside these materials
@@ -242,6 +254,7 @@ public class Util
AIR_MATERIALS.add(Material.REDSTONE_TORCH_OFF.getId());
AIR_MATERIALS.add(Material.REDSTONE_TORCH_ON.getId());
AIR_MATERIALS.add(Material.STONE_BUTTON.getId());
+ AIR_MATERIALS.add(Material.SNOW.getId());
AIR_MATERIALS.add(Material.SUGAR_CANE_BLOCK.getId());
AIR_MATERIALS.add(Material.DIODE_BLOCK_OFF.getId());
AIR_MATERIALS.add(Material.DIODE_BLOCK_ON.getId());
@@ -249,8 +262,10 @@ public class Util
AIR_MATERIALS.add(Material.PUMPKIN_STEM.getId());
AIR_MATERIALS.add(Material.MELON_STEM.getId());
AIR_MATERIALS.add(Material.VINE.getId());
- AIR_MATERIALS.add(Material.NETHER_WARTS.getId());
+ AIR_MATERIALS.add(Material.FENCE_GATE.getId());
AIR_MATERIALS.add(Material.WATER_LILY.getId());
+ AIR_MATERIALS.add(Material.NETHER_FENCE.getId());
+ AIR_MATERIALS.add(Material.NETHER_WARTS.getId());
for (Integer integer : AIR_MATERIALS)
{
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandban.java b/Essentials/src/com/earth2me/essentials/commands/Commandban.java
index bc09cbba8..ca6707088 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandban.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandban.java
@@ -50,7 +50,9 @@ public class Commandban extends EssentialsCommand
else
{
banReason = _("defaultBanReason");
+ user.setBanReason("");
}
+
user.setBanned(true);
user.kickPlayer(banReason);
final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandgamemode.java b/Essentials/src/com/earth2me/essentials/commands/Commandgamemode.java
index 62ace9357..aad79d616 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandgamemode.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandgamemode.java
@@ -24,7 +24,7 @@ public class Commandgamemode extends EssentialsCommand
throw new NotEnoughArgumentsException();
}
- gamemodeOtherPlayers(server, sender, args[0]);
+ gamemodeOtherPlayers(server, sender, args);
}
@Override
@@ -32,7 +32,7 @@ public class Commandgamemode extends EssentialsCommand
{
if (args.length > 0 && !args[0].trim().isEmpty() && user.isAuthorized("essentials.gamemode.others"))
{
- gamemodeOtherPlayers(server, user, args[0]);
+ gamemodeOtherPlayers(server, user, args);
return;
}
@@ -40,9 +40,9 @@ public class Commandgamemode extends EssentialsCommand
user.sendMessage(_("gameMode", _(user.getGameMode().toString().toLowerCase(Locale.ENGLISH)), user.getDisplayName()));
}
- private void gamemodeOtherPlayers(final Server server, final CommandSender sender, final String name)
+ private void gamemodeOtherPlayers(final Server server, final CommandSender sender, final String[] args)
{
- for (Player matchPlayer : server.matchPlayer(name))
+ for (Player matchPlayer : server.matchPlayer(args[0]))
{
final User player = ess.getUser(matchPlayer);
if (player.isHidden())
@@ -50,7 +50,21 @@ public class Commandgamemode extends EssentialsCommand
continue;
}
- player.setGameMode(player.getGameMode() == GameMode.SURVIVAL ? GameMode.CREATIVE : GameMode.SURVIVAL);
+ if (args.length > 1)
+ {
+ if (args[1].contains("creat") || args[1].equalsIgnoreCase("1"))
+ {
+ player.setGameMode(GameMode.CREATIVE);
+ }
+ else
+ {
+ player.setGameMode(GameMode.SURVIVAL);
+ }
+ }
+ else
+ {
+ player.setGameMode(player.getGameMode() == GameMode.SURVIVAL ? GameMode.CREATIVE : GameMode.SURVIVAL);
+ }
sender.sendMessage(_("gameMode", _(player.getGameMode().toString().toLowerCase(Locale.ENGLISH)), player.getDisplayName()));
}
}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandgive.java b/Essentials/src/com/earth2me/essentials/commands/Commandgive.java
index 701fa6577..21903e98b 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandgive.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandgive.java
@@ -3,6 +3,7 @@ package com.earth2me.essentials.commands;
import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.craftbukkit.InventoryWorkaround;
import com.earth2me.essentials.User;
+import com.earth2me.essentials.Util;
import java.util.Locale;
import org.bukkit.ChatColor;
import org.bukkit.Material;
@@ -44,7 +45,12 @@ public class Commandgive extends EssentialsCommand
final User giveTo = getPlayer(server, args, 0);
- if (args.length > 2 && Integer.parseInt(args[2]) > 0)
+ if (args.length > 3 && Util.isInt(args[2]) && Util.isInt(args[3]))
+ {
+ stack.setAmount(Integer.parseInt(args[2]));
+ stack.setDurability(Short.parseShort(args[3]));
+ }
+ else if (args.length > 2 && Integer.parseInt(args[2]) > 0)
{
stack.setAmount(Integer.parseInt(args[2]));
}
@@ -59,7 +65,7 @@ public class Commandgive extends EssentialsCommand
if (args.length > 3)
{
- for (int i = 3; i < args.length; i++)
+ for (int i = Util.isInt(args[3]) ? 4 : 3; i < args.length; i++)
{
final String[] split = args[i].split("[:+',;.]", 2);
if (split.length < 1)
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commanditem.java b/Essentials/src/com/earth2me/essentials/commands/Commanditem.java
index 405b8b799..0e35dda71 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commanditem.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commanditem.java
@@ -36,42 +36,47 @@ public class Commanditem extends EssentialsCommand
{
throw new Exception(_("cantSpawnItem", itemname));
}
-
- if (args.length > 1 && Integer.parseInt(args[1]) > 0)
- {
- stack.setAmount(Integer.parseInt(args[1]));
- }
- else if (ess.getSettings().getDefaultStackSize() > 0)
+ try
{
- stack.setAmount(ess.getSettings().getDefaultStackSize());
- }
- else if (ess.getSettings().getOversizedStackSize() > 0 && user.isAuthorized("essentials.oversizedstacks"))
- {
- stack.setAmount(ess.getSettings().getOversizedStackSize());
- }
-
- if (args.length > 2)
- {
- for (int i = 2; i < args.length; i++)
+ if (args.length > 1 && Integer.parseInt(args[1]) > 0)
{
- final String[] split = args[i].split("[:+',;.]", 2);
- if (split.length < 1)
- {
- continue;
- }
- final Enchantment enchantment = Commandenchant.getEnchantment(split[0], user);
- int level;
- if (split.length > 1)
- {
- level = Integer.parseInt(split[1]);
- }
- else
+ stack.setAmount(Integer.parseInt(args[1]));
+ }
+ else if (ess.getSettings().getDefaultStackSize() > 0)
+ {
+ stack.setAmount(ess.getSettings().getDefaultStackSize());
+ }
+ else if (ess.getSettings().getOversizedStackSize() > 0 && user.isAuthorized("essentials.oversizedstacks"))
+ {
+ stack.setAmount(ess.getSettings().getOversizedStackSize());
+ }
+ if (args.length > 2)
+ {
+ for (int i = 2; i < args.length; i++)
{
- level = enchantment.getMaxLevel();
+ final String[] split = args[i].split("[:+',;.]", 2);
+ if (split.length < 1)
+ {
+ continue;
+ }
+ final Enchantment enchantment = Commandenchant.getEnchantment(split[0], user);
+ int level;
+ if (split.length > 1)
+ {
+ level = Integer.parseInt(split[1]);
+ }
+ else
+ {
+ level = enchantment.getMaxLevel();
+ }
+ stack.addEnchantment(enchantment, level);
}
- stack.addEnchantment(enchantment, level);
}
}
+ catch (NumberFormatException e)
+ {
+ throw new NotEnoughArgumentsException();
+ }
if (stack.getType() == Material.AIR)
{
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandjump.java b/Essentials/src/com/earth2me/essentials/commands/Commandjump.java
index 39ca305e3..ab73c6e01 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandjump.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandjump.java
@@ -37,5 +37,6 @@ public class Commandjump extends EssentialsCommand
final Trade charge = new Trade(this.getName(), ess);
charge.isAffordableFor(user);
user.getTeleport().teleport(loc, charge, TeleportCause.COMMAND);
+ throw new NoChargeException();
}
}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandkick.java b/Essentials/src/com/earth2me/essentials/commands/Commandkick.java
index ae5db48fb..3e2e08b50 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandkick.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandkick.java
@@ -24,7 +24,7 @@ public class Commandkick extends EssentialsCommand
}
final User user = getPlayer(server, args, 0);
- if (user.isAuthorized("essentials.kick.exempt"))
+ if (sender instanceof Player && user.isAuthorized("essentials.kick.exempt"))
{
throw new Exception(_("kickExempt"));
}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandkickall.java b/Essentials/src/com/earth2me/essentials/commands/Commandkickall.java
index 6d97b6af9..4722b7d68 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandkickall.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandkickall.java
@@ -27,5 +27,6 @@ public class Commandkickall extends EssentialsCommand
onlinePlayer.kickPlayer(args.length > 0 ? getFinalArg(args, 0) : _("kickDefault"));
}
}
+ sender.sendMessage(_("kickedAll"));
}
}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandkillall.java b/Essentials/src/com/earth2me/essentials/commands/Commandkillall.java
index c0b47d20f..d918eeffb 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandkillall.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandkillall.java
@@ -16,6 +16,7 @@ import org.bukkit.entity.HumanEntity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Monster;
import org.bukkit.entity.NPC;
+import org.bukkit.entity.Ocelot;
import org.bukkit.entity.Player;
import org.bukkit.entity.Slime;
import org.bukkit.entity.Snowman;
@@ -61,7 +62,7 @@ public class Commandkillall extends EssentialsCommand
}
catch (NumberFormatException e)
{
- throw new Exception(_("numberRequired"));
+ throw new Exception(_("numberRequired"), e);
}
}
}
@@ -121,6 +122,13 @@ public class Commandkillall extends EssentialsCommand
continue;
}
}
+ if(entity instanceof Ocelot)
+ {
+ if (((Ocelot)entity).isTamed())
+ {
+ continue;
+ }
+ }
if (animals)
{
if (entity instanceof Animals || entity instanceof NPC || entity instanceof Snowman || entity instanceof WaterMob)
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandkit.java b/Essentials/src/com/earth2me/essentials/commands/Commandkit.java
index 67f0fafd0..514a5acca 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandkit.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandkit.java
@@ -4,6 +4,7 @@ import com.earth2me.essentials.*;
import static com.earth2me.essentials.I18n._;
import java.util.*;
import org.bukkit.Server;
+import org.bukkit.command.CommandSender;
public class Commandkit extends EssentialsCommand
@@ -18,39 +19,75 @@ public class Commandkit extends EssentialsCommand
{
if (args.length < 1)
{
- final String kitList = Kit.listKits(ess, user);
- if (kitList.length() > 0)
- {
- user.sendMessage(_("kits", kitList));
- }
- else
- {
- user.sendMessage(_("noKits"));
- }
+ listKits(user);
throw new NoChargeException();
}
+ else if (args.length > 1 && user.isAuthorized("essentials.kit.others"))
+ {
+ final User userTo = getPlayer(server, args, 1, true);
+ final String kitName = args[0].toLowerCase(Locale.ENGLISH);
+ giveKit(userTo, user, kitName);
+ }
else
{
final String kitName = args[0].toLowerCase(Locale.ENGLISH);
+ giveKit(user, user, kitName);
+ }
+ }
+
+ @Override
+ public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
+ {
+ if (args.length < 2)
+ {
+ listKits(sender);
+ throw new NoChargeException();
+ }
+ else
+ {
+ final User userTo = getPlayer(server, args, 1, true);
+ final String kitName = args[0].toLowerCase(Locale.ENGLISH);
+
final Map<String, Object> kit = ess.getSettings().getKit(kitName);
+ final List<String> items = Kit.getItems(userTo, kit);
+ Kit.expandItems(ess, userTo, items);
- if (!user.isAuthorized("essentials.kit." + kitName))
- {
- throw new Exception(_("noKitPermission", "essentials.kit." + kitName));
- }
+ sender.sendMessage(_("kitGive", kitName));
+ }
+ }
- final List<String> items = Kit.getItems(user, kit);
+ private void listKits(CommandSender sender) throws Exception
+ {
+ final String kitList = Kit.listKits(ess, null);
+ if (kitList.length() > 0)
+ {
+ sender.sendMessage(_("kits", kitList));
+ }
+ else
+ {
+ sender.sendMessage(_("noKits"));
+ }
+ }
- Kit.checkTime(user, kitName, kit);
+ private void giveKit(User userTo, User userFrom, String kitName) throws Exception
+ {
+ final Map<String, Object> kit = ess.getSettings().getKit(kitName);
- final Trade charge = new Trade("kit-" + kitName, ess);
- charge.isAffordableFor(user);
+ if (!userFrom.isAuthorized("essentials.kit." + kitName))
+ {
+ throw new Exception(_("noKitPermission", "essentials.kit." + kitName));
+ }
- Kit.expandItems(ess, user, items);
+ final List<String> items = Kit.getItems(userTo, kit);
- charge.charge(user);
- user.sendMessage(_("kitGive", kitName));
+ Kit.checkTime(userFrom, kitName, kit);
- }
+ final Trade charge = new Trade("kit-" + kitName, ess);
+ charge.isAffordableFor(userFrom);
+
+ Kit.expandItems(ess, userTo, items);
+
+ charge.charge(userFrom);
+ userTo.sendMessage(_("kitGive", kitName));
}
}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandpowertool.java b/Essentials/src/com/earth2me/essentials/commands/Commandpowertool.java
index ca03364b2..d1d0fb582 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandpowertool.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandpowertool.java
@@ -51,26 +51,18 @@ public class Commandpowertool extends EssentialsCommand
{
user.sendMessage(_("powerToolList", Util.joinList(powertools), itemName));
}
- return;
+ throw new NoChargeException();
}
if (command.startsWith("r:"))
{
- try
+ command = command.substring(2);
+ if (!powertools.contains(command))
{
- command = command.substring(2);
- if (!powertools.contains(command))
- {
- throw new Exception(_("powerToolNoSuchCommandAssigned", command, itemName));
- }
-
- powertools.remove(command);
- user.sendMessage(_("powerToolRemove", command, itemName));
- }
- catch (Exception e)
- {
- user.sendMessage(e.getMessage());
- return;
+ throw new Exception(_("powerToolNoSuchCommandAssigned", command, itemName));
}
+
+ powertools.remove(command);
+ user.sendMessage(_("powerToolRemove", command, itemName));
}
else
{
@@ -85,7 +77,6 @@ public class Commandpowertool extends EssentialsCommand
{
throw new Exception(_("powerToolAlreadySet", command, itemName));
}
-
}
else if (powertools != null && !powertools.isEmpty())
{
@@ -110,6 +101,11 @@ public class Commandpowertool extends EssentialsCommand
user.sendMessage(_("powerToolRemoveAll", itemName));
}
+ if (!user.arePowerToolsEnabled())
+ {
+ user.setPowerToolsEnabled(true);
+ user.sendMessage(_("powerToolsEnabled"));
+ }
user.setPowertool(itemStack, powertools);
}
}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandptime.java b/Essentials/src/com/earth2me/essentials/commands/Commandptime.java
index b16cbdc34..738b8db1a 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandptime.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandptime.java
@@ -79,7 +79,7 @@ public class Commandptime extends EssentialsCommand
}
catch (NumberFormatException e)
{
- throw new NotEnoughArgumentsException();
+ throw new NotEnoughArgumentsException(e);
}
}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandremove.java b/Essentials/src/com/earth2me/essentials/commands/Commandremove.java
index d245d1239..912434f08 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandremove.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandremove.java
@@ -47,7 +47,7 @@ public class Commandremove extends EssentialsCommand
}
catch (NumberFormatException e)
{
- throw new Exception(_("numberRequired"));
+ throw new Exception(_("numberRequired"), e);
}
}
@@ -57,7 +57,7 @@ public class Commandremove extends EssentialsCommand
}
catch (IllegalArgumentException e)
{
- throw new NotEnoughArgumentsException(); //TODO: translate and list types
+ throw new NotEnoughArgumentsException(e); //TODO: translate and list types
}
removeEntities(user, world, toRemove, radius);
@@ -84,7 +84,7 @@ public class Commandremove extends EssentialsCommand
}
catch (IllegalArgumentException e)
{
- throw new NotEnoughArgumentsException(); //TODO: translate and list types
+ throw new NotEnoughArgumentsException(e); //TODO: translate and list types
}
removeEntities(sender, world, toRemove, 0);
}
@@ -92,8 +92,9 @@ public class Commandremove extends EssentialsCommand
protected void removeEntities(final CommandSender sender, final World world, final ToRemove toRemove, int radius) throws Exception
{
int removed = 0;
- if (radius > 0) {
- radius*=radius;
+ if (radius > 0)
+ {
+ radius *= radius;
}
for (Chunk chunk : world.getLoadedChunks())
{
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandrepair.java b/Essentials/src/com/earth2me/essentials/commands/Commandrepair.java
index 8d1278fd0..d621109f7 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandrepair.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandrepair.java
@@ -53,6 +53,8 @@ public class Commandrepair extends EssentialsCommand
}
else if (args[0].equalsIgnoreCase("all"))
{
+ final Trade charge = new Trade("repair-all", ess);
+ charge.isAffordableFor(user);
final List<String> repaired = new ArrayList<String>();
repairItems(user.getInventory().getContents(), user, repaired);
@@ -69,6 +71,7 @@ public class Commandrepair extends EssentialsCommand
{
user.sendMessage(_("repair", Util.joinList(repaired)));
}
+ charge.charge(user);
}
else
@@ -102,7 +105,7 @@ public class Commandrepair extends EssentialsCommand
continue;
}
final String itemName = item.getType().toString().toLowerCase(Locale.ENGLISH);
- final Trade charge = new Trade("repair-" + itemName.replace('_', '-'), ess);
+ final Trade charge = new Trade("repair-" + itemName.replace('_', '-'), "repair-item", ess);
try
{
charge.isAffordableFor(user);
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandseen.java b/Essentials/src/com/earth2me/essentials/commands/Commandseen.java
index 38abb2dab..24f1f9c41 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandseen.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandseen.java
@@ -3,6 +3,7 @@ package com.earth2me.essentials.commands;
import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
+import org.bukkit.Location;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
@@ -17,16 +18,16 @@ public class Commandseen extends EssentialsCommand
@Override
protected void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{
- seen(server, sender, args, true);
+ seen(server, sender, args, true, true);
}
@Override
protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{
- seen(server, user, args, user.isAuthorized("essentials.seen.banreason"));
+ seen(server, user, args, user.isAuthorized("essentials.seen.banreason"), user.isAuthorized("essentials.seen.extra"));
}
- protected void seen(final Server server, final CommandSender sender, final String[] args, final boolean show) throws Exception
+ protected void seen(final Server server, final CommandSender sender, final String[] args, final boolean showBan, final boolean extra) throws Exception
{
if (args.length < 1)
{
@@ -37,6 +38,10 @@ public class Commandseen extends EssentialsCommand
User player = getPlayer(server, args, 0);
player.setDisplayNick();
sender.sendMessage(_("seenOnline", player.getDisplayName(), Util.formatDateDiff(player.getLastLogin())));
+ if (extra)
+ {
+ sender.sendMessage(_("whoisIPAddress", player.getAddress().getAddress().toString()));
+ }
}
catch (NoSuchFieldException e)
{
@@ -46,10 +51,18 @@ public class Commandseen extends EssentialsCommand
throw new Exception(_("playerNotFound"));
}
player.setDisplayNick();
- sender.sendMessage(_("seenOffline", player.getDisplayName(), Util.formatDateDiff(player.getLastLogout())));
+ sender.sendMessage(_("seenOffline", player.getName(), Util.formatDateDiff(player.getLastLogout())));
if (player.isBanned())
{
- sender.sendMessage(_("whoisBanned", show ? player.getBanReason() : _("true")));
+ sender.sendMessage(_("whoisBanned", showBan ? player.getBanReason() : _("true")));
+ }
+ if (extra)
+ {
+ sender.sendMessage(_("whoisIPAddress", player.getLastLoginAddress()));
+ final Location loc = player.getLastLocation();
+ if (loc != null) {
+ sender.sendMessage(_("whoisLocation", loc.getWorld().getName(), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()));
+ }
}
}
}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandsethome.java b/Essentials/src/com/earth2me/essentials/commands/Commandsethome.java
index ec19ca678..d59ac4a31 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandsethome.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandsethome.java
@@ -77,7 +77,7 @@ public class Commandsethome extends EssentialsCommand
{
user.setHome();
}
- user.sendMessage(_("homeSet"));
+ user.sendMessage(_("homeSet", user.getLocation().getWorld().getName(), user.getLocation().getBlockX(), user.getLocation().getBlockY(), user.getLocation().getBlockZ()));
}
}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandspawnmob.java b/Essentials/src/com/earth2me/essentials/commands/Commandspawnmob.java
index fdaa0eb9e..2546a76dd 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandspawnmob.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandspawnmob.java
@@ -103,7 +103,7 @@ public class Commandspawnmob extends EssentialsCommand
}
catch (MobException e)
{
- throw new Exception(_("unableToSpawnMob"));
+ throw new Exception(_("unableToSpawnMob"), e);
}
if (mountType != null)
@@ -129,7 +129,7 @@ public class Commandspawnmob extends EssentialsCommand
}
catch (MobException e)
{
- throw new Exception(_("unableToSpawnMob"));
+ throw new Exception(_("unableToSpawnMob"), e);
}
spawnedMob.setPassenger(spawnedMount);
}
@@ -164,7 +164,7 @@ public class Commandspawnmob extends EssentialsCommand
}
catch (MobException e)
{
- throw new Exception(_("unableToSpawnMob"));
+ throw new Exception(_("unableToSpawnMob"), e);
}
spawnedMob.setPassenger(spawnedMount);
}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandtime.java b/Essentials/src/com/earth2me/essentials/commands/Commandtime.java
index c49f34fbd..8e5b7c017 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandtime.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandtime.java
@@ -3,6 +3,7 @@ package com.earth2me.essentials.commands;
import com.earth2me.essentials.DescParseTickFormat;
import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.User;
+import com.earth2me.essentials.Util;
import java.util.*;
import org.bukkit.Server;
import org.bukkit.World;
@@ -19,16 +20,23 @@ public class Commandtime extends EssentialsCommand
@Override
public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{
+ final List<String> argList = new ArrayList<String>(Arrays.asList(args));
+ if ((argList.remove("set") || argList.remove("add")) && Util.isInt(argList.get(0)))
+ {
+ ess.getLogger().info("debug edited 0" + argList.get(0).toString());
+ }
+ final String[] validArgs = argList.toArray(new String[0]);
+
// Which World(s) are we interested in?
String worldSelector = null;
- if (args.length == 2)
+ if (validArgs.length == 2)
{
- worldSelector = args[1];
+ worldSelector = validArgs[1];
}
final Set<World> worlds = getWorlds(server, sender, worldSelector);
// If no arguments we are reading the time
- if (args.length == 0)
+ if (validArgs.length == 0)
{
getWorldsTime(sender, worlds);
return;
@@ -45,11 +53,11 @@ public class Commandtime extends EssentialsCommand
long ticks;
try
{
- ticks = DescParseTickFormat.parse(args[0]);
+ ticks = DescParseTickFormat.parse(validArgs[0]);
}
catch (NumberFormatException e)
{
- throw new NotEnoughArgumentsException();
+ throw new NotEnoughArgumentsException(e);
}
setWorldsTime(sender, worlds, ticks);
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandtpo.java b/Essentials/src/com/earth2me/essentials/commands/Commandtpo.java
index 53204114e..4d7ced478 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandtpo.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandtpo.java
@@ -34,6 +34,7 @@ public class Commandtpo extends EssentialsCommand
}
user.sendMessage(_("teleporting"));
user.getTeleport().now(player, false, TeleportCause.COMMAND);
+ break;
default:
if (!user.isAuthorized("essentials.tp.others"))
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandtppos.java b/Essentials/src/com/earth2me/essentials/commands/Commandtppos.java
index 226fa44e3..75910cd85 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandtppos.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandtppos.java
@@ -5,6 +5,7 @@ import com.earth2me.essentials.Trade;
import com.earth2me.essentials.User;
import org.bukkit.Location;
import org.bukkit.Server;
+import org.bukkit.command.CommandSender;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
@@ -41,4 +42,30 @@ public class Commandtppos extends EssentialsCommand
user.getTeleport().teleport(location, charge, TeleportCause.COMMAND);
throw new NoChargeException();
}
+
+ @Override
+ public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
+ {
+ if (args.length < 4)
+ {
+ throw new NotEnoughArgumentsException();
+ }
+
+ User user = ess.getUser(server.getPlayer(args[0]));
+ final int x = Integer.parseInt(args[1]);
+ final int y = Integer.parseInt(args[2]);
+ final int z = Integer.parseInt(args[3]);
+ final Location location = new Location(user.getWorld(), x, y, z);
+ if (args.length > 4)
+ {
+ location.setYaw((Float.parseFloat(args[4]) + 180 + 360) % 360);
+ }
+ if (args.length > 5)
+ {
+ location.setPitch(Float.parseFloat(args[5]));
+ }
+ sender.sendMessage(_("teleporting"));
+ user.sendMessage(_("teleporting"));
+ user.getTeleport().teleport(location, null, TeleportCause.COMMAND);
+ }
} \ No newline at end of file
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandunban.java b/Essentials/src/com/earth2me/essentials/commands/Commandunban.java
index 8bc3ad068..dda1475d0 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandunban.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandunban.java
@@ -29,7 +29,7 @@ public class Commandunban extends EssentialsCommand
}
catch (NoSuchFieldException e)
{
- throw new Exception(_("playerNotFound"));
+ throw new Exception(_("playerNotFound"), e);
}
}
}
diff --git a/Essentials/src/com/earth2me/essentials/craftbukkit/OfflineBedLocation.java b/Essentials/src/com/earth2me/essentials/craftbukkit/OfflineBedLocation.java
deleted file mode 100644
index 3ddfd20b5..000000000
--- a/Essentials/src/com/earth2me/essentials/craftbukkit/OfflineBedLocation.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package com.earth2me.essentials.craftbukkit;
-
-import com.earth2me.essentials.IEssentials;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import net.minecraft.server.NBTTagCompound;
-import net.minecraft.server.WorldNBTStorage;
-import org.bukkit.Location;
-import org.bukkit.craftbukkit.CraftServer;
-import org.bukkit.craftbukkit.CraftWorld;
-
-
-public class OfflineBedLocation
-{
- public static Location getBedLocation(final String playername, final IEssentials ess)
- {
- try
- {
- final CraftServer cserver = (CraftServer)ess.getServer();
- if (cserver == null)
- {
- return null;
- }
- final WorldNBTStorage wnbtStorage = (WorldNBTStorage)cserver.getHandle().playerFileData;
- if (wnbtStorage == null)
- {
- return null;
- }
- final NBTTagCompound playerStorage = wnbtStorage.getPlayerData(playername);
- if (playerStorage == null)
- {
- return null;
- }
-
- if (playerStorage.hasKey("SpawnX") && playerStorage.hasKey("SpawnY") && playerStorage.hasKey("SpawnZ"))
- {
- String spawnWorld = playerStorage.getString("SpawnWorld");
- if ("".equals(spawnWorld))
- {
- spawnWorld = cserver.getWorlds().get(0).getName();
- }
- return new Location(cserver.getWorld(spawnWorld), playerStorage.getInt("SpawnX"), playerStorage.getInt("SpawnY"), playerStorage.getInt("SpawnZ"));
- }
- return null;
- }
- catch (Throwable ex)
- {
- Logger.getLogger("Minecraft").log(Level.SEVERE, null, ex);
- return null;
- }
- }
-}
diff --git a/Essentials/src/com/earth2me/essentials/craftbukkit/SetExpFix.java b/Essentials/src/com/earth2me/essentials/craftbukkit/SetExpFix.java
index 70d15b856..b788fa7ee 100644
--- a/Essentials/src/com/earth2me/essentials/craftbukkit/SetExpFix.java
+++ b/Essentials/src/com/earth2me/essentials/craftbukkit/SetExpFix.java
@@ -53,7 +53,7 @@ public class SetExpFix
//Without this people would be able to use exp and then still sell it.
public static int getTotalExperience(final Player player)
{
- int exp = (int) (getExpToLevel(player) * player.getExp());
+ int exp = (int)Math.round(getExpToLevel(player) * player.getExp());
int currentLevel = player.getLevel();
while (currentLevel > 0) {
diff --git a/Essentials/src/com/earth2me/essentials/metrics/Metrics.java b/Essentials/src/com/earth2me/essentials/metrics/Metrics.java
index e009daa5d..f361e4f50 100644
--- a/Essentials/src/com/earth2me/essentials/metrics/Metrics.java
+++ b/Essentials/src/com/earth2me/essentials/metrics/Metrics.java
@@ -223,7 +223,7 @@ public class Metrics
}
catch (IOException e)
{
- Bukkit.getLogger().log(Level.INFO, "[Metrics] {0}", e.getMessage());
+ Bukkit.getLogger().log(Level.INFO, "[Metrics] " + e.getMessage());
}
}
}, 0, PING_INTERVAL * 1200);
@@ -246,12 +246,12 @@ public class Metrics
}
catch (IOException ex)
{
- Bukkit.getLogger().log(Level.INFO, "[Metrics] {0}", ex.getMessage());
+ Bukkit.getLogger().log(Level.INFO, "[Metrics] " + ex.getMessage());
return true;
}
catch (InvalidConfigurationException ex)
{
- Bukkit.getLogger().log(Level.INFO, "[Metrics] {0}", ex.getMessage());
+ Bukkit.getLogger().log(Level.INFO, "[Metrics] " + ex.getMessage());
return true;
}
return configuration.getBoolean("opt-out", false);
diff --git a/Essentials/src/com/earth2me/essentials/metrics/MetricsStarter.java b/Essentials/src/com/earth2me/essentials/metrics/MetricsStarter.java
index 6380b7f6c..0ea692cc9 100644
--- a/Essentials/src/com/earth2me/essentials/metrics/MetricsStarter.java
+++ b/Essentials/src/com/earth2me/essentials/metrics/MetricsStarter.java
@@ -4,6 +4,7 @@ import com.earth2me.essentials.IEssentials;
import com.earth2me.essentials.metrics.Metrics.Graph;
import com.earth2me.essentials.metrics.Metrics.Plotter;
import com.earth2me.essentials.register.payment.Method;
+import com.earth2me.essentials.register.payment.methods.VaultEco;
import java.util.Locale;
import java.util.logging.Level;
@@ -150,11 +151,19 @@ public class MetricsStarter implements Runnable
final Method method = ess.getPaymentMethod().getMethod();
if (method != null)
{
- String version = method.getVersion();
- final int dashPosition = version.indexOf('-');
- if (dashPosition > 0)
+ String version;
+ if (method instanceof VaultEco)
{
- version = version.substring(0, dashPosition);
+ version = ((VaultEco)method).getEconomy();
+ }
+ else
+ {
+ version = method.getVersion();
+ final int dashPosition = version.indexOf('-');
+ if (dashPosition > 0)
+ {
+ version = version.substring(0, dashPosition);
+ }
}
depGraph.addPlotter(new SimplePlotter(method.getName() + " " + version));
}
diff --git a/Essentials/src/com/earth2me/essentials/perm/PermissionsBukkitHandler.java b/Essentials/src/com/earth2me/essentials/perm/PermissionsBukkitHandler.java
index b3cc62979..aef6401d9 100644
--- a/Essentials/src/com/earth2me/essentials/perm/PermissionsBukkitHandler.java
+++ b/Essentials/src/com/earth2me/essentials/perm/PermissionsBukkitHandler.java
@@ -78,6 +78,6 @@ public class PermissionsBukkitHandler extends SuperpermsHandler
@Override
public boolean canBuild(Player base, String group)
{
- return base.hasPermission("essentials.build") || base.hasPermission("permissions.build");
+ return hasPermission(base, "essentials.build") || hasPermission(base, "permissions.build");
}
}
diff --git a/Essentials/src/com/earth2me/essentials/perm/PrivilegesHandler.java b/Essentials/src/com/earth2me/essentials/perm/PrivilegesHandler.java
index c81f93cbc..6cc97f30e 100644
--- a/Essentials/src/com/earth2me/essentials/perm/PrivilegesHandler.java
+++ b/Essentials/src/com/earth2me/essentials/perm/PrivilegesHandler.java
@@ -55,7 +55,7 @@ public class PrivilegesHandler extends SuperpermsHandler
@Override
public boolean canBuild(Player base, String group)
{
- return base.hasPermission("essentials.build") || base.hasPermission("privileges.build");
+ return hasPermission(base, "essentials.build") || hasPermission(base, "privileges.build");
}
}
diff --git a/Essentials/src/com/earth2me/essentials/register/payment/Method.java b/Essentials/src/com/earth2me/essentials/register/payment/Method.java
index a942667e8..c4c9d401a 100644
--- a/Essentials/src/com/earth2me/essentials/register/payment/Method.java
+++ b/Essentials/src/com/earth2me/essentials/register/payment/Method.java
@@ -33,6 +33,13 @@ public interface Method
* @return <code>String</code> Plugin name.
*/
public String getName();
+
+ /**
+ * Returns the reported name of this method.
+ *
+ * @return <code>String</code> Plugin name.
+ */
+ public String getLongName();
/**
* Returns the actual version of this method.
diff --git a/Essentials/src/com/earth2me/essentials/register/payment/methods/BOSE6.java b/Essentials/src/com/earth2me/essentials/register/payment/methods/BOSE6.java
index c3b71d4e3..a77a1d3b0 100644
--- a/Essentials/src/com/earth2me/essentials/register/payment/methods/BOSE6.java
+++ b/Essentials/src/com/earth2me/essentials/register/payment/methods/BOSE6.java
@@ -8,9 +8,8 @@ import org.bukkit.plugin.Plugin;
/**
* BOSEconomy 6 Implementation of Method
*
- * @author Nijikokun <nijikokun@shortmail.com> (@nijikokun)
- * @copyright (c) 2011
- * @license AOL license <http://aol.nexua.org>
+ * @author Nijikokun <nijikokun@shortmail.com> (@nijikokun) @copyright (c) 2011 @license AOL license
+ * <http://aol.nexua.org>
*/
@SuppressWarnings("deprecation")
public class BOSE6 implements Method
@@ -30,6 +29,12 @@ public class BOSE6 implements Method
}
@Override
+ public String getLongName()
+ {
+ return getName();
+ }
+
+ @Override
public String getVersion()
{
return "0.6.2";
diff --git a/Essentials/src/com/earth2me/essentials/register/payment/methods/BOSE7.java b/Essentials/src/com/earth2me/essentials/register/payment/methods/BOSE7.java
index d21ea6244..7aab8c459 100644
--- a/Essentials/src/com/earth2me/essentials/register/payment/methods/BOSE7.java
+++ b/Essentials/src/com/earth2me/essentials/register/payment/methods/BOSE7.java
@@ -9,9 +9,8 @@ import org.bukkit.plugin.Plugin;
* BOSEconomy 7 Implementation of Method
*
* @author Acrobot
- * @author Nijikokun <nijikokun@shortmail.com> (@nijikokun)
- * @copyright (c) 2011
- * @license AOL license <http://aol.nexua.org>
+ * @author Nijikokun <nijikokun@shortmail.com> (@nijikokun) @copyright (c) 2011 @license AOL license
+ * <http://aol.nexua.org>
*/
public class BOSE7 implements Method
{
@@ -30,6 +29,12 @@ public class BOSE7 implements Method
}
@Override
+ public String getLongName()
+ {
+ return getName();
+ }
+
+ @Override
public String getVersion()
{
return "0.7.0";
diff --git a/Essentials/src/com/earth2me/essentials/register/payment/methods/MCUR.java b/Essentials/src/com/earth2me/essentials/register/payment/methods/MCUR.java
index 87d633b5c..92c4f4f19 100644
--- a/Essentials/src/com/earth2me/essentials/register/payment/methods/MCUR.java
+++ b/Essentials/src/com/earth2me/essentials/register/payment/methods/MCUR.java
@@ -9,9 +9,7 @@ import org.bukkit.plugin.Plugin;
/**
* MultiCurrency Method implementation.
*
- * @author Acrobot
- * @copyright (c) 2011
- * @license AOL license <http://aol.nexua.org>
+ * @author Acrobot @copyright (c) 2011 @license AOL license <http://aol.nexua.org>
*/
public class MCUR implements Method
{
@@ -30,6 +28,12 @@ public class MCUR implements Method
}
@Override
+ public String getLongName()
+ {
+ return getName();
+ }
+
+ @Override
public String getVersion()
{
return "0.09";
diff --git a/Essentials/src/com/earth2me/essentials/register/payment/methods/VaultEco.java b/Essentials/src/com/earth2me/essentials/register/payment/methods/VaultEco.java
index 84ce816cf..f0a8171f3 100644
--- a/Essentials/src/com/earth2me/essentials/register/payment/methods/VaultEco.java
+++ b/Essentials/src/com/earth2me/essentials/register/payment/methods/VaultEco.java
@@ -34,8 +34,18 @@ public class VaultEco implements Method
@Override
public String getName()
{
-
- return this.vault.getDescription().getName().concat(" - Economy: ").concat(economy == null ? "NoEco" : economy.getName());
+ return this.vault.getDescription().getName();
+ }
+
+ public String getEconomy()
+ {
+ return economy == null ? "NoEco" : economy.getName();
+ }
+
+ @Override
+ public String getLongName()
+ {
+ return getName().concat(" - Economy: ").concat(getEconomy());
}
@Override
diff --git a/Essentials/src/com/earth2me/essentials/register/payment/methods/iCo4.java b/Essentials/src/com/earth2me/essentials/register/payment/methods/iCo4.java
index 52fb36e15..4542f6743 100644
--- a/Essentials/src/com/earth2me/essentials/register/payment/methods/iCo4.java
+++ b/Essentials/src/com/earth2me/essentials/register/payment/methods/iCo4.java
@@ -9,9 +9,8 @@ import org.bukkit.plugin.Plugin;
/**
* iConomy 4 Implementation of Method
*
- * @author Nijikokun <nijikokun@shortmail.com> (@nijikokun)
- * @copyright (c) 2011
- * @license AOL license <http://aol.nexua.org>
+ * @author Nijikokun <nijikokun@shortmail.com> (@nijikokun) @copyright (c) 2011 @license AOL license
+ * <http://aol.nexua.org>
*/
public class iCo4 implements Method
{
@@ -30,6 +29,12 @@ public class iCo4 implements Method
}
@Override
+ public String getLongName()
+ {
+ return getName();
+ }
+
+ @Override
public String getVersion()
{
return "4";
diff --git a/Essentials/src/com/earth2me/essentials/register/payment/methods/iCo5.java b/Essentials/src/com/earth2me/essentials/register/payment/methods/iCo5.java
index 3b2fb2f6d..87144fa34 100644
--- a/Essentials/src/com/earth2me/essentials/register/payment/methods/iCo5.java
+++ b/Essentials/src/com/earth2me/essentials/register/payment/methods/iCo5.java
@@ -12,9 +12,8 @@ import org.bukkit.plugin.Plugin;
/**
* iConomy 5 Implementation of Method
*
- * @author Nijikokun <nijikokun@shortmail.com> (@nijikokun)
- * @copyright (c) 2011
- * @license AOL license <http://aol.nexua.org>
+ * @author Nijikokun <nijikokun@shortmail.com> (@nijikokun) @copyright (c) 2011 @license AOL license
+ * <http://aol.nexua.org>
*/
public class iCo5 implements Method
{
@@ -33,6 +32,12 @@ public class iCo5 implements Method
}
@Override
+ public String getLongName()
+ {
+ return getName();
+ }
+
+ @Override
public String getVersion()
{
return "5";
diff --git a/Essentials/src/com/earth2me/essentials/register/payment/methods/iCo6.java b/Essentials/src/com/earth2me/essentials/register/payment/methods/iCo6.java
index 1a2950847..ecd1d6aae 100644
--- a/Essentials/src/com/earth2me/essentials/register/payment/methods/iCo6.java
+++ b/Essentials/src/com/earth2me/essentials/register/payment/methods/iCo6.java
@@ -11,9 +11,8 @@ import org.bukkit.plugin.Plugin;
/**
* iConomy 6 Implementation of Method
*
- * @author Nijikokun <nijikokun@shortmail.com> (@nijikokun)
- * @copyright (c) 2011
- * @license AOL license <http://aol.nexua.org>
+ * @author Nijikokun <nijikokun@shortmail.com> (@nijikokun) @copyright (c) 2011 @license AOL license
+ * <http://aol.nexua.org>
*/
public class iCo6 implements Method
{
@@ -32,6 +31,12 @@ public class iCo6 implements Method
}
@Override
+ public String getLongName()
+ {
+ return getName();
+ }
+
+ @Override
public String getVersion()
{
return "6";
diff --git a/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java b/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java
index 8acca9804..ccd40b214 100644
--- a/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java
+++ b/Essentials/src/com/earth2me/essentials/signs/SignBlockListener.java
@@ -19,16 +19,18 @@ public class SignBlockListener implements Listener
{
private final transient IEssentials ess;
private final static Logger LOGGER = Logger.getLogger("Minecraft");
+ private final static int WALL_SIGN = Material.WALL_SIGN.getId();
+ private final static int SIGN_POST = Material.SIGN_POST.getId();
public SignBlockListener(IEssentials ess)
{
this.ess = ess;
}
- @EventHandler(priority = EventPriority.HIGHEST)
+ @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onBlockBreak(final BlockBreakEvent event)
{
- if (event.isCancelled() || ess.getSettings().areSignsDisabled())
+ if (ess.getSettings().areSignsDisabled())
{
return;
}
@@ -42,7 +44,7 @@ public class SignBlockListener implements Listener
public boolean protectSignsAndBlocks(final Block block, final Player player)
{
final int mat = block.getTypeId();
- if (mat == Material.SIGN_POST.getId() || mat == Material.WALL_SIGN.getId())
+ if (mat == SIGN_POST || mat == WALL_SIGN)
{
final Sign csign = (Sign)block.getState();
@@ -55,31 +57,28 @@ public class SignBlockListener implements Listener
}
}
}
- else
+ // prevent any signs be broken by destroying the block they are attached to
+ if (EssentialsSign.checkIfBlockBreaksSigns(block))
{
- // prevent any signs be broken by destroying the block they are attached to
- if (EssentialsSign.checkIfBlockBreaksSigns(block))
+ LOGGER.log(Level.INFO, "Prevented that a block was broken next to a sign.");
+ return true;
+ }
+ for (EssentialsSign sign : ess.getSettings().enabledSigns())
+ {
+ if (sign.getBlocks().contains(block.getType())
+ && !sign.onBlockBreak(block, player, ess))
{
- LOGGER.log(Level.INFO, "Prevented that a block was broken next to a sign.");
+ LOGGER.log(Level.INFO, "A block was protected by a sign.");
return true;
}
- for (EssentialsSign sign : ess.getSettings().enabledSigns())
- {
- if (sign.getBlocks().contains(block.getType())
- && !sign.onBlockBreak(block, player, ess))
- {
- LOGGER.log(Level.INFO, "A block was protected by a sign.");
- return true;
- }
- }
}
return false;
}
- @EventHandler(priority = EventPriority.HIGHEST)
+ @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onSignChange(final SignChangeEvent event)
{
- if (event.isCancelled() || ess.getSettings().areSignsDisabled())
+ if (ess.getSettings().areSignsDisabled())
{
return;
}
@@ -107,25 +106,25 @@ public class SignBlockListener implements Listener
}
}
- @EventHandler(priority = EventPriority.LOW)
+ @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onBlockPlace(final BlockPlaceEvent event)
{
- if (event.isCancelled() || ess.getSettings().areSignsDisabled())
+ if (ess.getSettings().areSignsDisabled())
{
return;
}
final Block against = event.getBlockAgainst();
- if ((against.getType() == Material.WALL_SIGN
- || against.getType() == Material.SIGN_POST)
+ if ((against.getTypeId() == WALL_SIGN
+ || against.getTypeId() == SIGN_POST)
&& EssentialsSign.isValidSign(new EssentialsSign.BlockSign(against)))
{
event.setCancelled(true);
return;
}
final Block block = event.getBlock();
- if (block.getType() == Material.WALL_SIGN
- || block.getType() == Material.SIGN_POST)
+ if (block.getTypeId() == WALL_SIGN
+ || block.getTypeId() == SIGN_POST)
{
return;
}
@@ -141,17 +140,17 @@ public class SignBlockListener implements Listener
}
}
- @EventHandler(priority = EventPriority.LOW)
+ @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onBlockBurn(final BlockBurnEvent event)
{
- if (event.isCancelled() || ess.getSettings().areSignsDisabled())
+ if (ess.getSettings().areSignsDisabled())
{
return;
}
final Block block = event.getBlock();
- if (((block.getType() == Material.WALL_SIGN
- || block.getType() == Material.SIGN_POST)
+ if (((block.getTypeId() == WALL_SIGN
+ || block.getTypeId() == SIGN_POST)
&& EssentialsSign.isValidSign(new EssentialsSign.BlockSign(block)))
|| EssentialsSign.checkIfBlockBreaksSigns(block))
{
@@ -169,17 +168,17 @@ public class SignBlockListener implements Listener
}
}
- @EventHandler(priority = EventPriority.LOW)
+ @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onBlockIgnite(final BlockIgniteEvent event)
{
- if (event.isCancelled() || ess.getSettings().areSignsDisabled())
+ if (ess.getSettings().areSignsDisabled())
{
return;
}
final Block block = event.getBlock();
- if (((block.getType() == Material.WALL_SIGN
- || block.getType() == Material.SIGN_POST)
+ if (((block.getTypeId() == WALL_SIGN
+ || block.getTypeId() == SIGN_POST)
&& EssentialsSign.isValidSign(new EssentialsSign.BlockSign(block)))
|| EssentialsSign.checkIfBlockBreaksSigns(block))
{
@@ -202,8 +201,8 @@ public class SignBlockListener implements Listener
{
for (Block block : event.getBlocks())
{
- if (((block.getType() == Material.WALL_SIGN
- || block.getType() == Material.SIGN_POST)
+ if (((block.getTypeId() == WALL_SIGN
+ || block.getTypeId() == SIGN_POST)
&& EssentialsSign.isValidSign(new EssentialsSign.BlockSign(block)))
|| EssentialsSign.checkIfBlockBreaksSigns(block))
{
@@ -228,8 +227,8 @@ public class SignBlockListener implements Listener
if (event.isSticky())
{
final Block block = event.getBlock();
- if (((block.getType() == Material.WALL_SIGN
- || block.getType() == Material.SIGN_POST)
+ if (((block.getTypeId() == WALL_SIGN
+ || block.getTypeId() == SIGN_POST)
&& EssentialsSign.isValidSign(new EssentialsSign.BlockSign(block)))
|| EssentialsSign.checkIfBlockBreaksSigns(block))
{
diff --git a/Essentials/src/com/earth2me/essentials/signs/SignEnchant.java b/Essentials/src/com/earth2me/essentials/signs/SignEnchant.java
index 5907442d9..a50ce967a 100644
--- a/Essentials/src/com/earth2me/essentials/signs/SignEnchant.java
+++ b/Essentials/src/com/earth2me/essentials/signs/SignEnchant.java
@@ -41,7 +41,7 @@ public class SignEnchant extends EssentialsSign
}
catch (NumberFormatException ex)
{
- throw new SignException(ex.getMessage());
+ throw new SignException(ex.getMessage(), ex);
}
if (level < 1 || level > enchantment.getMaxLevel())
{
@@ -57,7 +57,7 @@ public class SignEnchant extends EssentialsSign
}
catch (Throwable ex)
{
- throw new SignException(ex.getMessage());
+ throw new SignException(ex.getMessage(), ex);
}
getTrade(sign, 3, ess);
return true;
diff --git a/Essentials/src/com/earth2me/essentials/signs/SignEntityListener.java b/Essentials/src/com/earth2me/essentials/signs/SignEntityListener.java
index a0446179f..5a6ee177d 100644
--- a/Essentials/src/com/earth2me/essentials/signs/SignEntityListener.java
+++ b/Essentials/src/com/earth2me/essentials/signs/SignEntityListener.java
@@ -24,8 +24,8 @@ public class SignEntityListener implements Listener
{
for (Block block : event.blockList())
{
- if (((block.getType() == Material.WALL_SIGN
- || block.getType() == Material.SIGN_POST)
+ if (((block.getTypeId() == Material.WALL_SIGN.getId()
+ || block.getTypeId() == Material.SIGN_POST.getId())
&& EssentialsSign.isValidSign(new EssentialsSign.BlockSign(block)))
|| EssentialsSign.checkIfBlockBreaksSigns(block))
{
@@ -43,17 +43,17 @@ public class SignEntityListener implements Listener
}
}
- @EventHandler(priority = EventPriority.LOW)
+ @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onEntityChangeBlock(final EntityChangeBlockEvent event)
{
- if (event.isCancelled() || ess.getSettings().areSignsDisabled())
+ if (ess.getSettings().areSignsDisabled())
{
return;
}
final Block block = event.getBlock();
- if (((block.getType() == Material.WALL_SIGN
- || block.getType() == Material.SIGN_POST)
+ if (((block.getTypeId() == Material.WALL_SIGN.getId()
+ || block.getTypeId() == Material.SIGN_POST.getId())
&& EssentialsSign.isValidSign(new EssentialsSign.BlockSign(block)))
|| EssentialsSign.checkIfBlockBreaksSigns(block))
{
diff --git a/Essentials/src/com/earth2me/essentials/signs/SignPlayerListener.java b/Essentials/src/com/earth2me/essentials/signs/SignPlayerListener.java
index f891c0fdb..d415ef6a8 100644
--- a/Essentials/src/com/earth2me/essentials/signs/SignPlayerListener.java
+++ b/Essentials/src/com/earth2me/essentials/signs/SignPlayerListener.java
@@ -20,26 +20,22 @@ public class SignPlayerListener implements Listener
this.ess = ess;
}
- @EventHandler(priority = EventPriority.LOW)
+ @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onPlayerInteract(final PlayerInteractEvent event)
{
- if (event.isCancelled() || ess.getSettings().areSignsDisabled())
+ if (ess.getSettings().areSignsDisabled() || event.getAction() != Action.RIGHT_CLICK_BLOCK)
{
return;
}
-
final Block block = event.getClickedBlock();
if (block == null)
{
return;
}
+
final int mat = block.getTypeId();
if (mat == Material.SIGN_POST.getId() || mat == Material.WALL_SIGN.getId())
{
- if (event.getAction() != Action.RIGHT_CLICK_BLOCK)
- {
- return;
- }
final Sign csign = (Sign)block.getState();
for (EssentialsSign sign : ess.getSettings().enabledSigns())
{
@@ -60,7 +56,6 @@ public class SignPlayerListener implements Listener
{
event.setCancelled(true);
return;
-
}
}
}
diff --git a/Essentials/src/com/earth2me/essentials/signs/SignTrade.java b/Essentials/src/com/earth2me/essentials/signs/SignTrade.java
index 6ea4f5e80..41f9fb2a5 100644
--- a/Essentials/src/com/earth2me/essentials/signs/SignTrade.java
+++ b/Essentials/src/com/earth2me/essentials/signs/SignTrade.java
@@ -224,7 +224,7 @@ public class SignTrade extends EssentialsSign
}
catch (SignException e)
{
- throw new SignException(_("tradeSignEmpty"));
+ throw new SignException(_("tradeSignEmpty"), e);
}
}
diff --git a/Essentials/src/com/earth2me/essentials/user/UserBase.java b/Essentials/src/com/earth2me/essentials/user/UserBase.java
index 9dda2f950..587ed084b 100644
--- a/Essentials/src/com/earth2me/essentials/user/UserBase.java
+++ b/Essentials/src/com/earth2me/essentials/user/UserBase.java
@@ -1,7 +1,6 @@
package com.earth2me.essentials.user;
import com.earth2me.essentials.IEssentials;
-import com.earth2me.essentials.craftbukkit.OfflineBedLocation;
import com.earth2me.essentials.storage.AsyncStorageObjectHolder;
import java.io.File;
import lombok.Delegate;
@@ -97,11 +96,7 @@ public abstract class UserBase extends AsyncStorageObjectHolder<UserData> implem
@Override
public Location getBedSpawnLocation()
{
- if (isOnlineUser()) {
- return base.getBedSpawnLocation();
- } else {
- return OfflineBedLocation.getBedLocation(base.getName(), ess);
- }
+ return base.getBedSpawnLocation();
}
@Override
diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml
index ec1f3fc8d..e8378f77e 100644
--- a/Essentials/src/config.yml
+++ b/Essentials/src/config.yml
@@ -107,6 +107,8 @@ player-commands:
- balance
- balance.others
- balancetop
+ - chat.color
+ - chat.format
- chat.shout
- chat.question
- clearinventory
@@ -152,8 +154,11 @@ player-commands:
- signs.use.balance
- signs.use.buy
- signs.use.disposal
+ - signs.use.enchant
- signs.use.free
+ - signs.use.gamemode
- signs.use.heal
+ - signs.use.kit
- signs.use.mail
- signs.use.protection
- signs.use.sell
@@ -265,7 +270,7 @@ freeze-afk-players: false
# When the player is afk, should he be able to pickup items?
# Enable this, when you don't want people idling in mob traps.
-disable-item-pickup-while-afk: true
+disable-item-pickup-while-afk: false
# You can disable the death messages of minecraft here
death-messages: true
diff --git a/Essentials/src/items.csv b/Essentials/src/items.csv
index 2e1a331de..7f20e1048 100644
--- a/Essentials/src/items.csv
+++ b/Essentials/src/items.csv
@@ -1,5 +1,5 @@
#version: TeamCity
-# If you change this file, it will not be automatically updated after the next release.
+#If you change this file, it will not be automatically updated after the next release,
#item,id,metadata
stone,1,0
sstone,1,0
@@ -564,6 +564,8 @@ sandstone,24,0
sastone,24,0
csandstone,24,1
csastone,24,1
+creepsandstone,24,1
+creepsastone,24,1
creepersandstone,24,1
creepersastone,24,1
hieroglyphicsandstone,24,1
@@ -620,6 +622,7 @@ pistonstick,29,7
pistonsbase,29,7
pistons,29,7
psticky,29,7
+pstick,29,7
spiderweb,30,0
sweb,30,0
web,30,0
@@ -1058,9 +1061,13 @@ fire,51,0
flame,51,0
flames,51,0
mobspawner,52,0
+mobcage,52,0
monsterspawner,52,0
+monstercage,52,0
mspawner,52,0
+mcage,52,0
spawner,52,0
+cage,52,0
woodenstairs,53,0
woodstairs,53,0
wstairs,53,0
@@ -1428,9 +1435,17 @@ jailbarsblock,101,0
jailbarsb,101,0
jailbars,101,0
glasspane,102,0
+glassp,102,0
+paneglass,102,0
+pglass,102,0
flatglass,102,0
+fglass,102,0
skinnyglass,102,0
+sglass,102,0
glassflat,102,0
+glassf,102,0
+glassskinny,102,0
+glasss,102,0
melon,103,0
watermelon,103,0
greenmelon,103,0
@@ -1451,8 +1466,13 @@ stemgreenmelon,105,0
vines,106,0
vine,106,0
greenvines,106,0
+greenvine,106,0
gardenvines,106,0
+gardenvine,106,0
vinesgreen,106,0
+vinegreen,106,0
+vinesgarden,106,0
+vinegarden,106,0
fencegate,107,0
woodenfence,107,0
woodenfencegate,107,0
@@ -1475,6 +1495,8 @@ cementstairs,109,0
cementbstairs,109,0
greybrickstairs,109,0
greybstairs,109,0
+purplegrass,110,0
+pinkgrass,110,0
mycel,110,0
mycelium,110,0
swampgrass,110,0
@@ -2450,7 +2472,7 @@ zombieflesh,367,0
rottenmeat,367,0
zombiemeat,367,0
badflesh,367,0
-poisenflesh,367,0
+poisonflesh,367,0
zombieremains,367,0
enderpearl,368,0
pearl,368,0
@@ -2472,6 +2494,7 @@ ghosttear,370,0
ghostdrop,370,0
gtear,370,0
gdrop,370,0
+tear,370,0
goldnugget,371,0
gnugget,371,0
goldball,371,0
@@ -2479,8 +2502,17 @@ goldpebble,371,0
gball,371,0
gpebble,371,0
pigzombienugget,371,0
+pigznugget,371,0
+pzombienugget,371,0
+pznugget,371,0
pigzombieball,371,0
+pigzball,371,0
+pzombieball,371,0
+pzball,371,0
pigzombiepebble,371,0
+pigzpebble,371,0
+pzombiepebble,371,0
+pzpebble,371,0
netherstalk,372,0
deathstalk,372,0
hellstalk,372,0
@@ -2496,7 +2528,18 @@ gbottle,374,0
gvase,374,0
vase,374,0
glassvase,374,0
-emptypotion,374,0
+emptyglassbottle,374,0
+emptybottle,374,0
+emptygbottle,374,0
+emptygvase,374,0
+emptyvase,374,0
+emptyglassvase,374,0
+eglassbottle,374,0
+ebottle,374,0
+egbottle,374,0
+egvase,374,0
+evase,374,0
+eglassvase,374,0
spidereye,375,0
eyeofspider,375,0
spiderseye,375,0
@@ -2542,11 +2585,13 @@ icauldronitem,380,0
scauldronitem,380,0
eyeofender,381,0
endereye,381,0
+enderpearl,381,0
evilendereye,381,0
evileyeofender,381,0
evilenderpearl,381,0
eeye,381,0
eofender,381,0
+epearl,381,0
speckledmelon,382,0
goldmelon,382,0
sparklymelon,382,0
@@ -2556,32 +2601,85 @@ shiningmelon,382,0
gmelon,382,0
smelon,382,0
creeperegg,383,50
+eggcreeper,383,50
skeletonegg,383,51
+eggskeleton,383,51
spideregg,383,52
+eggspider,383,52
giantegg,383,53
+egggiant,383,53
zombieegg,383,54
+eggzombie,383,54
slimeegg,383,55
+eggslime,383,55
ghastegg,383,56
+eggghast,383,56
zombiepigmanegg,383,57
+zpigmanegg,383,57
pigmanegg,383,57
+zombiepmanegg,383,57
+zpmanegg,383,57
+zombiepigmegg,383,57
+zpigmegg,383,57
+zombiepigegg,383,57
+zpigegg,383,57
+zombiepmegg,383,57
+zombiepegg,383,57
+eggzombiepigman,383,57
+eggzpigman,383,57
+eggpigman,383,57
+eggzombiepman,383,57
+eggzpman,383,57
+eggzombiepigm,383,57
+eggzpigm,383,57
+eggzombiepig,383,57
+eggzpig,383,57
+eggzombiepm,383,57
+eggzombiep,383,57
endermanegg,383,58
+eggenderman,383,58
+eggcavespider,383,59
cavespideregg,383,59
silverfishegg,383,60
+eggsilverfish,383,60
blazeegg,383,61
+eggblaze,383,61
lavaslimeegg,383,62
-magmacubeegg,383,63
+lavacubeegg,383,62
+magmacubeegg,383,62
+magmaslimeegg,383,62
+egglavaslime,383,62
+egglavacube,383,62
+eggmagmacube,383,62
+eggmagmaslime,383,62
pigegg,383,90
+eggpig,383,90
sheepegg,383,91
+eggsheep,383,91
cowegg,383,92
+eggcow,383,92
chickenegg,383,93
+eggchicken,383,93
squidegg,383,94
+eggsquid,383,94
wolfegg,383,95
+eggwolf,383,95
mooshroomegg,383,96
mushroomcowegg,383,96
+eggmooshroom,383,96
+eggmushroomcow,383,96
snowgolemegg,383,97
+sgolemegg,383,97
+eggsnowgolem,383,97
+eggsgolem,383,97
ocelotegg,383,98
+eggocelot,383,98
irongolemegg,383,99
+igolemegg,383,99
+eggirongolem,383,99
+eggigolem,383,99
villageregg,383,120
+eggvillager,383,120
bottleofenchanting,384,0
enchantingbottle,384,0
expbottle,384,0
@@ -2591,48 +2689,541 @@ fireball,385,0
grenade,385,0
goldmusicrecord,2256,0
goldmusicdisk,2256,0
+goldmusicdisc,2256,0
goldmusiccd,2256,0
+13musicrecord,2256,0
+13musicdisk,2256,0
+13musicdisc,2256,0
+13musiccd,2256,0
gomusicrecord,2256,0
gomusicdisk,2256,0
+gomusicdisc,2256,0
gomusiccd,2256,0
goldmrecord,2256,0
goldmdisk,2256,0
+goldmdisc,2256,0
goldmcd,2256,0
+13mrecord,2256,0
+13mdisk,2256,0
+13mdisc,2256,0
+13mcd,2256,0
gomrecord,2256,0
gomdisk,2256,0
+gomdisc,2256,0
gomcd,2256,0
goldrecord,2256,0
golddisk,2256,0
+golddisc,2256,0
goldcd,2256,0
+13record,2256,0
+13disk,2256,0
+13disc,2256,0
+13cd,2256,0
gorecord,2256,0
godisk,2256,0
+godisc,2256,0
gocd,2256,0
record1,2256,0
+disk1,2256,0
+disc1,2256,0
+cd1,2256,0
+1record,2256,0
+1disk,2256,0
+1disc,2256,0
+1cd,2256,0
greenmusicrecord,2257,0
greenmusicdisk,2257,0
+greenmusicdisc,2257,0
greenmusiccd,2257,0
+catmusicrecord,2257,0
+catmusicdisk,2257,0
+catmusicdisc,2257,0
+catmusiccd,2257,0
grmusicrecord,2257,0
grmusicdisk,2257,0
+grmusicdisc,2257,0
grmusiccd,2257,0
greenmrecord,2257,0
greenmdisk,2257,0
+greenmdisc,2257,0
greenmcd,2257,0
+catmrecord,2257,0
+catmdisk,2257,0
+catmdisc,2257,0
+catmcd,2257,0
grmrecord,2257,0
grmdisk,2257,0
+grmdisc,2257,0
grmcd,2257,0
greenrecord,2257,0
greendisk,2257,0
+greendisc,2257,0
greencd,2257,0
+catrecord,2257,0
+catdisk,2257,0
+catdisc,2257,0
+catcd,2257,0
grrecord,2257,0
grdisk,2257,0
+grdisc,2257,0
grcd,2257,0
record2,2257,0
+disk2,2257,0
+disc2,2257,0
+cd2,2257,0
+2record,2257,0
+2disk,2257,0
+2disc,2257,0
+2cd,2257,0
+orangemusicrecord,2258,0
+orangemusicdisk,2258,0
+orangemusicdisc,2258,0
+orangemusiccd,2258,0
+blocksmusicrecord,2258,0
+blocksmusicdisk,2258,0
+blocksmusicdisc,2258,0
+blocksmusiccd,2258,0
+ormusicrecord,2258,0
+ormusicdisk,2258,0
+ormusicdisc,2258,0
+ormusiccd,2258,0
+orangemrecord,2258,0
+orangemdisk,2258,0
+orangemdisc,2258,0
+orangemcd,2258,0
+blocksmrecord,2258,0
+blocksmdisk,2258,0
+blocksmdisc,2258,0
+blocksmcd,2258,0
+ormrecord,2258,0
+ormdisk,2258,0
+ormdisc,2258,0
+ormcd,2258,0
+orangerecord,2258,0
+orangedisk,2258,0
+orangedisc,2258,0
+orangecd,2258,0
+blocksrecord,2258,0
+blocksdisk,2258,0
+blocksdisc,2258,0
+blockscd,2258,0
+orrecord,2258,0
+ordisk,2258,0
+ordisc,2258,0
+orcd,2258,0
record3,2258,0
+disk3,2258,0
+disc3,2258,0
+cd3,2258,0
+3record,2258,0
+3disk,2258,0
+3disc,2258,0
+3cd,2258,0
+redmusicrecord,2259,0
+redmusicdisk,2259,0
+redmusicdisc,2259,0
+redmusiccd,2259,0
+chripmusicrecord,2259,0
+chripmusicdisk,2259,0
+chripmusicdisc,2259,0
+chripmusiccd,2259,0
+remusicrecord,2259,0
+remusicdisk,2259,0
+remusicdisc,2259,0
+remusiccd,2259,0
+redmrecord,2259,0
+redmdisk,2259,0
+redmdisc,2259,0
+redmcd,2259,0
+chripmrecord,2259,0
+chripmdisk,2259,0
+chripmdisc,2259,0
+chripmcd,2259,0
+remrecord,2259,0
+remdisk,2259,0
+remdisc,2259,0
+remcd,2259,0
+redrecord,2259,0
+reddisk,2259,0
+reddisc,2259,0
+redcd,2259,0
+chriprecord,2259,0
+chripdisk,2259,0
+chripdisc,2259,0
+chripcd,2259,0
+rerecord,2259,0
+redisk,2259,0
+redisc,2259,0
+recd,2259,0
record4,2259,0
+disk4,2259,0
+disc4,2259,0
+cd4,2259,0
+4record,2259,0
+4disk,2259,0
+4disc,2259,0
+4cd,2259,0
+lightgreenmusicrecord,2260,0
+lightgreenmusicdisk,2260,0
+lightgreenmusicdisc,2260,0
+lightgreenmusiccd,2260,0
+lgreenmusicrecord,2260,0
+lgreenmusicdisk,2260,0
+lgreenmusicdisc,2260,0
+lgreenmusiccd,2260,0
+lightgrmusicrecord,2260,0
+lightgrmusicdisk,2260,0
+lightgrmusicdisc,2260,0
+lightgrmusiccd,2260,0
+farmusicrecord,2260,0
+farmusicdisk,2260,0
+farmusicdisc,2260,0
+farmusiccd,2260,0
+lgrmusicrecord,2260,0
+lgrmusicdisk,2260,0
+lgrmusicdisc,2260,0
+lgrmusiccd,2260,0
+lightgreenmrecord,2260,0
+lightgreenmdisk,2260,0
+lightgreenmdisc,2260,0
+lightgreenmcd,2260,0
+lgreenmrecord,2260,0
+lgreenmdisk,2260,0
+lgreenmdisc,2260,0
+lgreenmcd,2260,0
+lightgrmrecord,2260,0
+lightgrmdisk,2260,0
+lightgrmdisc,2260,0
+lightgrmcd,2260,0
+farmrecord,2260,0
+farmdisk,2260,0
+farmdisc,2260,0
+farmcd,2260,0
+lgrmrecord,2260,0
+lgrmdisk,2260,0
+lgrmdisc,2260,0
+lgrmcd,2260,0
+lightgreenrecord,2260,0
+lightgreendisk,2260,0
+lightgreendisc,2260,0
+lightgreencd,2260,0
+lgreenrecord,2260,0
+lgreendisk,2260,0
+lgreendisc,2260,0
+lgreencd,2260,0
+lightgrrecord,2260,0
+lightgrdisk,2260,0
+lightgrdisc,2260,0
+lightgrcd,2260,0
+farrecord,2260,0
+fardisk,2260,0
+fardisc,2260,0
+farcd,2260,0
+lgrrecord,2260,0
+lgrdisk,2260,0
+lgrdisc,2260,0
+lgrcd,2260,0
record5,2260,0
+disk5,2260,0
+disc5,2260,0
+cd5,2260,0
+5record,2260,0
+5disk,2260,0
+5disc,2260,0
+5cs,2260,0
+purplemusicrecord,2261,0
+purplemusicdisk,2261,0
+purplemusicdisc,2261,0
+purplemusiccd,2261,0
+mallmusicrecord,2261,0
+mallmusicdisk,2261,0
+mallmusicdisc,2261,0
+mallmusiccd,2261,0
+pumusicrecord,2261,0
+pumusicdisk,2261,0
+pumusicdisc,2261,0
+pumusiccd,2261,0
+purplemrecord,2261,0
+purplemdisk,2261,0
+purplemdisc,2261,0
+purplemcd,2261,0
+mallmrecord,2261,0
+mallmdisk,2261,0
+mallmdisc,2261,0
+mallmcd,2261,0
+pumrecord,2261,0
+pumdisk,2261,0
+pumdisc,2261,0
+pumcd,2261,0
+purplerecord,2261,0
+purpledisk,2261,0
+purpledisc,2261,0
+purplecd,2261,0
+mallrecord,2261,0
+malldisk,2261,0
+malldisc,2261,0
+mallcd,2261,0
+purecord,2261,0
+pudisk,2261,0
+pudisc,2261,0
+pucd,2261,0
record6,2261,0
+disk6,2261,0
+disc6,2261,0
+cd6,2261,0
+6record,2261,0
+6disk,2261,0
+6disc,2261,0
+6cd,2261,0
+pinkmusicrecord,2262,0
+pinkmusicdisk,2262,0
+pinkmusicdisc,2262,0
+pinkmusiccd,2262,0
+mellohimusicrecord,2262,0
+mellohimusicdisk,2262,0
+mellohimusicdisc,2262,0
+mellohimusiccd,2262,0
+pimusicrecord,2262,0
+pimusicdisk,2262,0
+pimusicdisc,2262,0
+pimusiccd,2262,0
+pinkmrecord,2262,0
+pinkmdisk,2262,0
+pinkmdisc,2262,0
+pinkmcd,2262,0
+mellohimrecord,2262,0
+mellohimdisk,2262,0
+mellohimdisc,2262,0
+mellohimcd,2262,0
+pimrecord,2262,0
+pimdisk,2262,0
+pimdisc,2262,0
+pimcd,2262,0
+pinkrecord,2262,0
+pinkdisk,2262,0
+pinkdisc,2262,0
+pinkcd,2262,0
+mellohirecord,2262,0
+mellohidisk,2262,0
+mellohidisc,2262,0
+mellohicd,2262,0
+pirecord,2262,0
+pidisk,2262,0
+pidisc,2262,0
+picd,2262,0
record7,2262,0
+disk7,2262,0
+disc7,2262,0
+cd7,2262,0
+7record,2262,0
+7disk,2262,0
+7disc,2262,0
+7cd,2262,0
+blackmusicrecord,2263,0
+blackmusicdisk,2263,0
+blackmusicdisc,2263,0
+blackmusiccd,2263,0
+stalmusicrecord,2263,0
+stalmusicdisk,2263,0
+stalmusicdisc,2263,0
+stalmusiccd,2263,0
+blmusicrecord,2263,0
+blmusicdisk,2263,0
+blmusicdisc,2263,0
+blmusiccd,2263,0
+blackmrecord,2263,0
+blackmdisk,2263,0
+blackmdisc,2263,0
+blackmcd,2263,0
+stalmrecord,2263,0
+stalmdisk,2263,0
+stalmdisc,2263,0
+stalmcd,2263,0
+blmrecord,2263,0
+blmdisk,2263,0
+blmdisc,2263,0
+blmcd,2263,0
+blackrecord,2263,0
+blackdisk,2263,0
+blackdisc,2263,0
+blackcd,2263,0
+stalrecord,2263,0
+staldisk,2263,0
+staldisc,2263,0
+stalcd,2263,0
+blrecord,2263,0
+bldisk,2263,0
+bldisc,2263,0
+blcd,2263,0
record8,2263,0
+disk8,2263,0
+disc8,2263,0
+cd8,2263,0
+8record,2263,0
+8disk,2263,0
+8disc,2263,0
+8cd,2263,0
+whitemusicrecord,2264,0
+whitemusicdisk,2264,0
+whitemusicdisc,2264,0
+whitemusiccd,2264,0
+stradmusicrecord,2264,0
+stradmusicdisk,2264,0
+stradmusicdisc,2264,0
+stradmusiccd,2264,0
+whmusicrecord,2264,0
+whmusicdisk,2264,0
+whmusicdisc,2264,0
+whmusiccd,2264,0
+whitemrecord,2264,0
+whitemdisk,2264,0
+whitemdisc,2264,0
+whitemcd,2264,0
+stradmrecord,2264,0
+stradmdisk,2264,0
+stradmdisc,2264,0
+stradmcd,2264,0
+whmrecord,2264,0
+whmdisk,2264,0
+whmdisc,2264,0
+whmcd,2264,0
+whiterecord,2264,0
+whitedisk,2264,0
+whitedisc,2264,0
+whitecd,2264,0
+stradrecord,2264,0
+straddisk,2264,0
+straddisc,2264,0
+stradcd,2264,0
+whrecord,2264,0
+whdisk,2264,0
+whdisc,2264,0
+whcd,2264,0
record9,2264,0
+disk9,2264,0
+disc9,2264,0
+cd9,2264,0
+9record,2264,0
+9disk,2264,0
+9disc,2264,0
+9cd,2264,0
+darkgreenmusicrecord,2265,0
+darkgreenmusicdisk,2265,0
+darkgreenmusicdisc,2265,0
+darkgreenmusiccd,2265,0
+dgreenmusicrecord,2265,0
+dgreenmusicdisk,2265,0
+dgreenmusicdisc,2265,0
+dgreenmusiccd,2265,0
+darkgrmusicrecord,2265,0
+darkgrmusicdisk,2265,0
+darkgrmusicdisc,2265,0
+darkgrmusiccd,2265,0
+wardmusicrecord,2265,0
+wardmusicdisk,2265,0
+wardmusicdisc,2265,0
+wardmusiccd,2265,0
+dgrmusicrecord,2265,0
+dgrmusicdisk,2265,0
+dgrmusicdisc,2265,0
+dgrmusiccd,2265,0
+darkgreenmrecord,2265,0
+darkgreenmdisk,2265,0
+darkgreenmdisc,2265,0
+darkgreenmcd,2265,0
+dgreenmrecord,2265,0
+dgreenmdisk,2265,0
+dgreenmdisc,2265,0
+dgreenmcd,2265,0
+darkgrmrecord,2265,0
+darkgrmdisk,2265,0
+darkgrmdisc,2265,0
+darkgrmcd,2265,0
+wardmrecord,2265,0
+wardmdisk,2265,0
+wardmdisc,2265,0
+wardmcd,2265,0
+dgrmrecord,2265,0
+dgrmdisk,2265,0
+dgrmdisc,2265,0
+dgrmcd,2265,0
+darkgreenrecord,2265,0
+darkgreendisk,2265,0
+darkgreendisc,2265,0
+darkgreencd,2265,0
+dgreenrecord,2265,0
+dgreendisk,2265,0
+dgreendisc,2265,0
+dgreencd,2265,0
+darkgrrecord,2265,0
+darkgrdisk,2265,0
+darkgrdisc,2265,0
+darkgrcd,2265,0
+wardrecord,2265,0
+warddisk,2265,0
+warddisc,2265,0
+wardcd,2265,0
+dgrrecord,2265,0
+dgrdisk,2265,0
+dgrdisc,2265,0
+dgrcd,2265,0
record10,2265,0
+disk10,2265,0
+disc10,2265,0
+cd10,2265,0
+10record,2265,0
+10disk,2265,0
+10disc,2265,0
+10cs,2265,0
+crackedmusicrecord,2266,0
+crackedmusicdisk,2266,0
+crackedmusicdisc,2266,0
+crackedmusiccd,2266,0
+crackmusicrecord,2266,0
+crackmusicdisk,2266,0
+crackmusicdisc,2266,0
+crackmusiccd,2266,0
+11musicrecord,2266,0
+11musicdisk,2266,0
+11musicdisc,2266,0
+11musiccd,2266,0
+cmusicrecord,2266,0
+cmusicdisk,2266,0
+cmusicdisc,2266,0
+cmusiccd,2266,0
+crackedmrecord,2266,0
+crackedmdisk,2266,0
+crackedmdisc,2266,0
+crackedmcd,2266,0
+crackmrecord,2266,0
+crackmdisk,2266,0
+crackmdisc,2266,0
+crackmcd,2266,0
+11mrecord,2266,0
+11mdisk,2266,0
+11mdisc,2266,0
+11mcd,2266,0
+cmrecord,2266,0
+cmdisk,2266,0
+cmdisc,2266,0
+cmcd,2266,0
+crackedrecord,2266,0
+crackeddisk,2266,0
+crackeddisc,2266,0
+crackedcd,2266,0
+crackrecord,2266,0
+crackdisk,2266,0
+crackdisc,2266,0
+crackcd,2266,0
+crecord,2266,0
+cdisk,2266,0
+cdisc,2266,0
+ccd,2266,0
record11,2266,0
+disk11,2266,0
+disc11,2266,0
+cd11,2266,0
+11record,2266,0
+11disk,2266,0
+11disc,2266,0
+11cd,2266,0 \ No newline at end of file
diff --git a/Essentials/src/messages.properties b/Essentials/src/messages.properties
index 7707ac09a..73ce00bee 100644
--- a/Essentials/src/messages.properties
+++ b/Essentials/src/messages.properties
@@ -31,7 +31,7 @@ buildAlert=\u00a7cYou are not permitted to build
bukkitFormatChanged=Bukkit version format changed. Version not checked.
burnMsg=\u00a77You set {0} on fire for {1} seconds.
canTalkAgain=\u00a77You can talk again
-cantFindGeoIpDB=Can''t find GeoIP database!
+cantFindGeoIpDB=Can't find GeoIP database!
cantReadGeoIpDB=Failed to read GeoIP database!
cantSpawnItem=\u00a7cYou are not allowed to spawn the item {0}
chatTypeLocal=[L]
@@ -51,6 +51,7 @@ creatingConfigFromTemplate=Creating config from template: {0}
creatingEmptyConfig=Creating empty config: {0}
creative=creative
currency={0}{1}
+currentWorld=Current World: {0}
day=day
days=days
defaultBanReason=The Ban Hammer has spoken!
@@ -136,8 +137,8 @@ invRestored=Your inventory has been restored.
invSee=You see the inventory of {0}.
invSeeHelp=Use /invsee to restore your inventory.
invalidCharge=\u00a7cInvalid charge.
-invalidHome=Home {0} doesn't exist
-invalidMob=Invalid mob type.&
+invalidHome=Home {0} doesn''t exist
+invalidMob=Invalid mob type.
invalidServer=Invalid server!
invalidSignLine=Line {0} on sign is invalid.
invalidWorld=\u00a7cInvalid world.
@@ -161,7 +162,8 @@ jailReleased=\u00a77Player \u00a7e{0}\u00a77 unjailed.
jailReleasedPlayerNotify=\u00a77You have been released!
jailSentenceExtended=Jail time extend to: {0)
jailSet=\u00a77Jail {0} has been set
-jumpError=That would hurt your computer''s brain.
+jumpError=That would hurt your computer's brain.
+kickedAll=\u00a7cKicked all players from server
kickDefault=Kicked from server
kickExempt=\u00a7cYou can not kick that person.
kill=\u00a77Killed {0}.
@@ -233,7 +235,7 @@ noMotd=\u00a7cThere is no message of the day.
noNewMail=\u00a77You have no new mail.
noPendingRequest=You do not have a pending request.
noPerm=\u00a7cYou do not have the \u00a7f{0}\u00a7c permission.
-noPermToSpawnMob=\u00a7cYou don''t have permission to spawn this mob.
+noPermToSpawnMob=\u00a7cYou don't have permission to spawn this mob.
noPlacePermission=\u00a7cYou do not have permission to place a block near that sign.
noPowerTools=You have no power tools assigned.
noRules=\u00a7cThere are no rules specified yet.
@@ -256,7 +258,7 @@ orderBalances=Ordering balances of {0} users, please wait ...
pTimeCurrent=\u00a7e{0}''s\u00a7f time is {1}.
pTimeCurrentFixed=\u00a7e{0}''s\u00a7f time is fixed to {1}.
pTimeNormal=\u00a7e{0}''s\u00a7f time is normal and matches the server.
-pTimeOthersPermission=\u00a7cYou are not authorized to set other players'' time.
+pTimeOthersPermission=\u00a7cYou are not authorized to set other players' time.
pTimePlayers=These players have their own time:
pTimeReset=Player time has been reset for: \u00a7e{0}
pTimeSet=Player time is set to \u00a73{0}\u00a7f for: \u00a7e{1}
@@ -276,7 +278,7 @@ playerNotFound=\u00a7cPlayer not found.
playerUnmuted=\u00a77You have been unmuted
pong=Pong!
possibleWorlds=\u00a77Possible worlds are the numbers 0 through {0}.
-powerToolAir=Command can''t be attached to air.
+powerToolAir=Command can't be attached to air.
powerToolAlreadySet=Command \u00a7c{0}\u00a7f is already assigned to {1}.
powerToolAttach=\u00a7c{0}\u00a7f command assigned to {1}.
powerToolClearAll=All powertool commands have been cleared.
diff --git a/Essentials/src/messages_cs.properties b/Essentials/src/messages_cs.properties
new file mode 100644
index 000000000..21d1d6e97
--- /dev/null
+++ b/Essentials/src/messages_cs.properties
@@ -0,0 +1,426 @@
+#version: TeamCity
+# Single quotes have to be doubled: ''
+# Translations start here
+# 0.1 version: tomasara413 - Tento preklad neni 100% presny to se opravi v dalsich verzich prekladu
+# 0.2 version: optimized by mdojcar (modojcar@seznam.cz) - mirne fixy a trochu jsem preklad vylepsil
+# nektere vyrazy jako "Kicknut" jsou v anglickem zneni (zni to mnohem prirozeneji)
+# 0.3 tommymortago - Pro upravy kontaktujte na skype: tomasperzl/ Korektura: Sejsel
+action=* {0} {1}
+addedToAccount=\u00a7a{0} bylo pripsano na tvuj ucet.
+addedToOthersAccount=\u00a7a{0} bylo pripsano na {1}\u00a7a ucet. Nova hodnota: {2}
+alertBroke=zniceno:
+alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} v: {3}
+alertPlaced=polozeno:
+alertUsed=pouzito:
+autoAfkKickReason=Byl jsi vyhozen za neaktivitu delsi nez {0} minut.
+backAfterDeath=\u00a77Pouzij /back, aby ses vratil na misto sve smrti.
+backUsageMsg=\u00a77Vracis se na svou minulou pozici.
+backupDisabled=Externi zalohovaci script neni nastaven.
+backupFinished=Zaloha dokoncena
+backupStarted=Probiha zaloha
+balance=\u00a77Ucet: {0}
+balanceTop=\u00a77Nejbohatsi hraci ({0})
+banExempt=\u00a7cNemuzes zabanovat tohoto hrace.
+banIpAddress=\u00a77IP Adresa byla zabanovana
+bannedIpsFileError=Chyba pri nacitani banned-ips.txt
+bannedIpsFileNotFound=Soubor banned-ips.txt nebyl nazen.
+bannedPlayersFileError=Chyba pri nacitani banned-players.txt
+bannedPlayersFileNotFound=Soubor banned-players.txt nebyl nalezen
+bigTreeFailure=\u00a7cProblem pri vytvareni velkeho stromu. Zkuste znovu na trave nebo hline.
+bigTreeSuccess= \u00a77Velky strom vytvoren.
+blockList=Essentials prenechal nasledujici prikazy jinemu pluginu:
+broadcast=[\u00a7cSdeleni\u00a7f]\u00a7a {0}
+buildAlert=\u00a7cNemas dovoleno stavet.
+bukkitFormatChanged=Format kontroly verze Bukkitu zmenen. Verze nebyla zkontrolovana.
+burnMsg=\u00a77Zapalil jsi {0} na dobu {1} sekund.
+canTalkAgain=\u00a77Muzes opet mluvit.
+cantFindGeoIpDB=Nemohu najit GeoIP databazi!
+cantReadGeoIpDB=Nemohu precist GeoIP databazi!
+cantSpawnItem=\u00a7cNejsi dovoleny spawnout item: {0}
+chatTypeLocal=[L]
+chatTypeSpy=[Spy]
+commandFailed=Prikaz {0} selhal.
+commandHelpFailedForPlugin=Chyba pri ziskavani pomoci: {0}
+commandNotLoaded=\u00a7cPrikaz {0} je nespravne nacteny.
+compassBearing=\u00a77Zmena orientace: {0} ({1} stupnu).
+configFileMoveError=Chyba pri presouvani config.yml do slozky se zalohou.
+configFileRenameError=Chyba pri pokusu o prejmenovani docasneho souboru na config.yml
+connectedPlayers=Pripojeni hraci:
+connectionFailed=Pokus o otevreni spojeni selhal.
+cooldownWithMessage=\u00a7cOdpocet: {0}
+corruptNodeInConfig=\u00a74Pozor: Vas konfiguracni soubor ma chybnou {0} poznamku.
+couldNotFindTemplate=Nemohu naleznout sablonu: {0}
+creatingConfigFromTemplate=Vytvarim config ze sablony: {0}
+creatingEmptyConfig=Vytvarim prazdny config: {0}
+creative=creative
+currency={0}{1}
+day=den
+days=dny
+defaultBanReason=Banovaci kladivo promluvilo!
+deleteFileError=Nemohu smazat soubor: {0}
+deleteHome=\u00a77Domov {0} byl uspesne odstranen.
+deleteJail=\u00a77Jail {0} byl uspesne odstranen.
+deleteWarp=\u00a77Warp {0} byl uspesne odstranen.
+deniedAccessCommand=Hraci {0} byl zablokovan prikaz.
+dependancyDownloaded=[Essentials] Zavislost {0} uspesne stazena.
+dependancyException=[Essentials] Nastala chyba pri pokusu o stazeni zavilosti.
+dependancyNotFound=[Essentials] Pozadovana zavilost nenalezena, stahuji nyni.
+depth=\u00a77Jsi na urovni more.
+depthAboveSea=\u00a77Jsi {0} kostek nad urovni more.
+depthBelowSea=\u00a77Jsi {0} kostek pod urovni more.
+destinationNotSet=Destinace neni nastavena.
+disableUnlimited=\u00a77Zablokovano neomezene pokladani {0} hraci {1}.
+disabled=zablokovano
+disabledToSpawnMob=Spawnuti tohoto moba je zakazno v configuracnim souboru.
+dontMoveMessage=\u00a77Teleport bude zahajen za {0}. Nehybej se.
+downloadingGeoIp=Stahuji GeoIP databazi ... muze to chvilku trvat (staty: 0.6 MB, mesta: 20MB)
+duplicatedUserdata=Duplikovane data hrace: {0} and {1}
+enableUnlimited=\u00a77Davam neomezene mnozstvi {0} hraci {1}.
+enabled=povoleno
+enchantmentApplied = \u00a77Enchant {0} byl aplikovan na tvuj nastroj v ruce.
+enchantmentNotFound = \u00a7cTento enchant neexistuje
+enchantmentPerm = \u00a7cNemas opravneni na enchant: {0}
+enchantmentRemoved = \u00a77Enchant {0} byl odstranen z tveho nastroje v ruce.
+enchantments = \u00a77Enchantmenty: {0}
+errorCallingCommand=Chyba pri volani prikazu /{0}
+errorWithMessage=\u00a7cChyba: {0}
+essentialsHelp1=Soubor je poskozen a Essentials jej nemuze otevrit. Essentials jsou zablokovany. Pokud nemuzete soubor opravit sami, navstivte http://tiny.cc/EssentialsChat
+essentialsHelp2=Soubor je poskozen a Essentials jej nemuze otevrit. Essentials jsou zablokovany. Pokud nemuzete soubor opravit sami, pak napiste /essentialshelp ve hre nebo navstivte http://tiny.cc/EssentialsChat
+essentialsReload=\u00a77Essentials znovu nacteny. {0}
+extinguish=\u00a77Uhasil ses.
+extinguishOthers=\u00a77Uhasil jsi hrace {0}.
+failedToCloseConfig=Chyba pri uzavreni configu {0}
+failedToCreateConfig=Chyba pri vytvoreni configu {0}
+failedToWriteConfig=Chyba pri zapisovani do configu {0}
+false=nepravda
+feed=\u00a77Nasytil jsi se.
+feedOther=\u00a77Nasytil jsi hrace {0}.
+fileRenameError=Prejmenovani souboru {0} selhalo.
+flyMode=\u00a77Povolil jsi letani hraci {0} na {1}.
+foreverAlone=\u00a7cNemas komu odepsat.
+freedMemory=Uvolneno {0} MB.
+gameMode=\u00a77Nastavil jsi herni mod z {0} na {1}.
+gcchunks= chunky,
+gcentities= entity
+gcfree=Volna pamet: {0} MB
+gcmax=Dostupna pamet: {0} MB
+gctotal=Vyuzita pamet: {0} MB
+geoIpUrlEmpty=Odkaz na stazeni GeoIP je prazdny.
+geoIpUrlInvalid=Odkaz na stazeni GeoIP je chybny.
+geoipJoinFormat=Hrac {0} prichazi z {1}
+godDisabledFor=zakazan pro {0}
+godEnabledFor=povolen pro {0}
+godMode=\u00a77God mode {0}.
+haveBeenReleased=\u00a77Byl jsi uvolnen
+heal=\u00a77Byl jsi uzdraven.
+healOther=\u00a77Uzdravil jsi hrace {0}.
+helpConsole=Pokud chces videt napovedu z konzole, napis ?.
+helpFrom=\u00a77Prikazy od{0}:
+helpLine=\u00a76/{0}\u00a7f: {1}
+helpMatching=\u00a77Prikazy odpovidajici "{0}":
+helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
+helpPages=Strana \u00a7c{0}\u00a7f z \u00a7c{1}\u00a7f:
+helpPlugin=\u00a74{0}\u00a7f: Napoveda pluginu: /help {1}
+holeInFloor=Dira v podlaze
+homeSet=\u00a77Domov nastaven.
+homeSetToBed=\u00a77Tvuj domov je nastaven na tuto postel.
+homes=Domovy: {0}
+hour=hodina
+hours=hodiny
+ignorePlayer=Odted jsi zacal ignorovat hrace {0}.
+illegalDate=Nespravny format data.
+infoChapter=Vyberte kapitolu:
+infoChapterPages=Kapitola {0}, strana \u00a7c{1}\u00a7f z \u00a7c{2}\u00a7f:
+infoFileDoesNotExist=Soubor info.txt neexistuje. Vytvarim novy.
+infoPages=\u00a7e ---- \u00a76{2} \u00a7e--\u00a76 Strana \u00a74{0}\u00a76/\u00a74{1} \u00a7e----
+infoUnknownChapter=Neznama kapitola.
+invBigger=Inventar druheho hrace je vetsi nez tvuj.
+invRestored=Tvuj inventar byl obnoven.
+invSee=Nyni mas inventar hrace {0}.
+invSeeHelp=Pouzij znovu /invsee aby jsi mel zpatky svuj inventar.
+invalidCharge=\u00a7cNeplatny poplatek.
+invalidHome=Domov {0} neexistuje.
+invalidMob=Nespravny typ moba.
+invalidServer=Nespravny server!
+invalidSignLine=Radek {0} je chybne vyplnen.
+invalidWorld=\u00a7cNespravny svet!
+inventoryCleared=\u00a77Inventar smazan.
+inventoryClearedOthers=\u00a77Inventar hrace \u00a7c{0}\u00a77 vymazan.
+is=je
+itemCannotBeSold=Tento item nelze prodat serveru.
+itemMustBeStacked=Itemy musi byt vymeneny ve stacku.
+itemNotEnough1=\u00a7cNemas dostatek tohoto itemu, aby jsi jej mohl prodat.
+itemNotEnough2=\u00a77Pokud jsi chtel prodat vsechny itemy tohoto typu, pouzij /sell nazevitemu
+itemNotEnough3=\u00a77/sell nazevnitemu -1 proda vse ale pouze jeden item atd.
+itemSellAir=Vazne jsi se pokusil prodat Vzduch? Vezmi si neco do ruky.
+itemSold=\u00a77Prodal za \u00a7c{0} \u00a77({1} {2} za cenu {3} kus)
+itemSoldConsole={0} Prodal {1} za \u00a77{2} \u00a77({3} za cenu {4} kus)
+itemSpawn=\u00a77Davam {0} {1}
+itemsCsvNotLoaded=Nelze nacist soubor items.csv.
+jailAlreadyIncarcerated=\u00a7cTento hrace ja jiz uveznen: {0}
+jailMessage=\u00a7cPorusil jsi pravidla, ted si to odsedis!
+jailNotExist=Toto vezeni neexistuje.
+jailReleased=\u00a77Hrac \u00a7e{0}\u00a77 byl propusten na svobodu.
+jailReleasedPlayerNotify=\u00a77Byl jsi propusten na svobodu!
+jailSentenceExtended=Cas ve vezeni prodlouzen na: {0)
+jailSet=\u00a77Vezeni {0} bylo vytvoreno.
+jumpError=Tohle by tvuj procesor nemusel rozdychat.
+kickDefault=Vyhozen ze serveru
+kickExempt=\u00a7cNemuzes vyhodit tuhle osobu.
+kill=\u00a77Zabit {0}.
+kitError2=\u00a7cTento kit neexistuje, nebo je chybne definovan.
+kitError=\u00a7cNejsou zadne validni kity.
+kitErrorHelp=\u00a7cPravdepodobne item nema vyplnene mnozstvi v configu?
+kitGive=\u00a77Davam kit {0}.
+kitInvFull=\u00a7cMel jsi plny inventar, obsah kitu je na zemi.
+kitTimed=\u00a7cNemuzes pouzit tento kit po dalsich {0}.
+kits=\u00a77Kity: {0}
+lightningSmited=\u00a77Byl jsi zasazen bleskem.
+lightningUse=\u00a77Zasadil jsi bleskem hrace {0}
+listAfkTag = \u00a77[AFK]\u00a7f
+listAmount = \u00a79Je tu \u00a7c{0}\u00a79 z maxima \u00a7c{1}\u00a79 hracu online.
+listAmountHidden = \u00a79Je tu \u00a7c{0}\u00a77/{1}\u00a79 z maxima \u00a7c{2}\u00a79 hracu online.
+listGroupTag={0}\u00a7f:
+listHiddenTag = \u00a77[HIDDEN]\u00a7f
+loadWarpError=Chyba pri nacitani warpu: {0}
+localFormat=Jazyk: <{0}> {1}
+mailClear=\u00a7cPokud chces vymazat mail, napis /mail clear.
+mailCleared=\u00a77Mail vymazan!
+mailSent=\u00a77Mail odeslan!
+markMailAsRead=\u00a7cPokud chces mail oznacit jako precteny, napis /mail clear
+markedAsAway=\u00a77Jsi oznacen jako "Pryc".
+markedAsNotAway=\u00a77Jiz nejsi oznacen jako "Pryc".
+maxHomes=Nemuzes si nastavit vice nez {0} domovu.
+mayNotJail=\u00a7cNesmis uveznit tuto postavu
+me=ja
+minute=minuta
+minutes=minuty
+missingItems=Nemas {0}x {1}.
+missingPrefixSuffix=Chybi prefix nebo suffix pro {0}
+mobSpawnError=Chyba pri pokusu o zmenu mob spawneru.
+mobSpawnLimit=Pocet mobu limitovan serverem.
+mobSpawnTarget=Musis se divat na spawner.
+mobsAvailable=\u00a77Mobove: {0}
+moneyRecievedFrom=\u00a7a{0} jsi obdrzel od hrace {1}
+moneySentTo=\u00a7a{0} bylo odeslano hraci: {1}
+moneyTaken={0} bylo odebrano z tveho uctu.
+month=mesic
+months=mesice
+moreThanZero=Mnozstvi musi byt vetsi nez 0.
+msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
+muteExempt=\u00a7cTohoto hrace nemuzes umlcet.
+mutedPlayer=Hrac {0} byl umlcen.
+mutedPlayerFor=Hrac {0} umlcen za {1}.
+mutedUserSpeaks={0} se pokusil promluvit, ale je umlcen.
+nearbyPlayers=Hraci v okoli: {0}
+negativeBalanceError=Hrac nemuze mit zapornou hodnotu uctu.
+nickChanged=Nickname zmenen.
+nickDisplayName=\u00a77Musis nejdrive povolit change-displayname v Essentials configu.
+nickInUse=\u00a7cTento nick jiz nekdo ma.
+nickNamesAlpha=\u00a7cNick musi byt alfanumericky.
+nickNoMore=\u00a77Uz nemas zadny nick.
+nickOthersPermission=\u00a7cNemas opravneni menit ostatnim nick.
+nickSet=\u00a77Nyni mas nickname: \u00a7c{0}
+noAccessCommand=\u00a7cNemas povoleni na tento prikaz.
+noAccessPermission=\u00a7cNemas povoleni k tomuto {0}.
+noBreakBedrock=Nemas opravneni nicit bedrock.
+noDestroyPermission=\u00a7cNemas povoleni nicit ten {0}.
+noGodWorldWarning=\u00a7cVarovani! God-mode je v tomto svete zakazan.
+noHelpFound=\u00a7cZadne shodujici prikazy.
+noHomeSet=Nemas nastaveny zadny domov.
+noHomeSetPlayer=Hrac nema nastaveny zadny domov.
+noKitPermission=\u00a7cPotrebujes \u00a7c{0}\u00a7c permission, aby jsi mohl pouzit tento kit.
+noKits=\u00a77Nejsou zadne dostupne kity.
+noMail=Nemas zadny mail.
+noMotd=\u00a7cNeni zadna zprava dne.
+noNewMail=\u00a77Nemas zadny novy mail.
+noPendingRequest=Nemas zadne neuzavrene zadosti.
+noPerm=\u00a7cNemas \u00a7f{0}\u00a7c permici.
+noPermToSpawnMob=\u00a7cNemas povoleni k spawnovani mobu.
+noPlacePermission=\u00a7cNemas povoleni pokladat nebo nicit cokoliv blizko teto cedule.
+noPowerTools=Nemas zadny mocny nastroj.
+noRules=\u00a7cNejsou nastaveny zadne pravidla.
+noWarpsDefined=Nejsou nastaveny zadne warpy.
+none=zadny
+notAllowedToQuestion=\u00a7cNejsi opravnen pouzit otazku.
+notAllowedToShout=\u00a7cNejsi opravnen pouzit kriceni.
+notEnoughExperience=Nemas dostatek zkusenosti.
+notEnoughMoney=Nemas dostatecny financni obnos.
+notRecommendedBukkit=* ! * Verze bukkitu neni doporucena pro Essentials.
+notSupportedYet=Jeste neni podporovano.
+nothingInHand = \u00a7cNedrzis nic v ruce.
+now=nyni
+nuke=Prsi na tebe smrt :)
+numberRequired=Hlupaku, musis vyplnit cislo.
+onlyDayNight=/time podporuje pouze day/night.
+onlyPlayers=Pouze hraci ve hre mohou pouzit: {0}.
+onlySunStorm=/weather podporuje pouze sun/storm.
+orderBalances=Usporadavam bohatstvi {0} hracu, prosim vydrz ...
+pTimeCurrent=\u00a7eCas hrace u00a7f je {1}. //???
+pTimeCurrentFixed=\u00a7eCas hrace {0} u00a7f je nastaven na {1}.
+pTimeNormal=\u00a7eCas hrace {0}\u00a7f je normalni a souhlasi s casem serveru.
+pTimeOthersPermission=\u00a7cNejsi opravnen menit cizim hracum cas.
+pTimePlayers=Tihle hraci maji nastaveny svuj cas:
+pTimeReset=Cas hrace byl obnoven za: \u00a7e{0}
+pTimeSet=Cas hrace je nastaven na \u00a73{0}\u00a7f za: \u00a7e{1}
+pTimeSetFixed=Cas hrace je fixne nastaven na \u00a73{0}\u00a7f za: \u00a7e{1}
+parseError=Chyba pri parsovani {0} na radku {1}
+pendingTeleportCancelled=\u00a7cNevyresena zadost o teleportaci byla zrusena.
+permissionsError=Chybi Permissions/GroupManager; prefixy/suffixy v chatu budou zablokovany.
+playerBanned=\u00a7cAdmin {0} zabanoval {1} za {2}
+playerInJail=\u00a7cHrac je jiz uveznen {0}.
+playerJailed=\u00a77Hrac {0} byl uveznen.
+playerJailedFor= \u00a77Hrac {0} uveznen za {1}.
+playerKicked=\u00a7cAdmin {0} vyhodil {1} za {2}
+playerMuted=\u00a77Byl jsi umlcen.
+playerMutedFor=\u00a77Byl jsi umlcen za {0}
+playerNeverOnServer=\u00a7cHrac {0} nebyl nikdy na serveru.
+playerNotFound=\u00a7cHrac nenalezen.
+playerUnmuted=\u00a77Byl jsi odmlcen.
+pong=Pong!
+possibleWorlds=\u00a77Mozne svety jsou cisla 0 az {0}.
+powerToolAir=Prikaz nemuze byt spojen se vzduchem.
+powerToolAlreadySet=Prikaz \u00a7c{0}\u00a7f je jiz spojen s {1}.
+powerToolAttach=\u00a7c{0}\u00a7f prikaz pripsan k {1}.
+powerToolClearAll=Vsechny mocne nastroje byli smazany.
+powerToolList=Hrac {1} ma tyto prikazy: \u00a7c{0}\u00a7f.
+powerToolListEmpty={0} nema pripsany zadne prikazy.
+powerToolNoSuchCommandAssigned=Prikaz \u00a7c{0}\u00a7f nebyl pripsan k {1}.
+powerToolRemove=Prikaz \u00a7c{0}\u00a7f odstranen z {1}.
+powerToolRemoveAll=Vsechny prikazy zruseny od {0}.
+powerToolsDisabled=Vsechny tve mocne nastroje byli zablokovany.
+powerToolsEnabled=Vsechny tve mocne nastroje byli povoleny.
+protectionOwner=\u00a76[EssentialsProtect] Majitel ochrany: {0}
+questionFormat=\u00a77[Otazka]\u00a7f {0}
+readNextPage=Napis /{0} {1} pro precteni dalsi stranky.
+reloadAllPlugins=\u00a77Znovu nacteny vsechny pluginy.
+removed=\u00a77Odstraneno {0} entitit.
+repair=Uspesne jsi opravil svuj nastroj: \u00a7e{0}.
+repairAlreadyFixed=\u00a77Tento item nepotrebuje opravu.
+repairEnchanted=\u00a77Nemas opravneni opravovat enchantovane itemy.
+repairInvalidType=\u00a7cTento item nemuze byt opraven.
+repairNone=Nemas zadne itemy, ktere potrebuji opravit.
+requestAccepted=\u00a77Zadost o teleport prijata.
+requestAcceptedFrom=\u00a77{0} prijal tvou zadost o teleport.
+requestDenied=\u00a77Zadost o teleport zamitnuta.
+requestDeniedFrom=\u00a77{0} odmitl tvou zadost o teleport.
+requestSent=\u00a77Zadost odeslana hraci {0}\u00a77.
+requestTimedOut=\u00a7cZadost o teleportaci vyprsela.
+requiredBukkit= * ! * Potrebujete minimalne verzi {0} Bukkitu, stahnete si ji z http://dl.bukkit.org/downloads/craftbukkit/
+returnPlayerToJailError=Nastala chyba pri pokusu navraceni hrace {0} do vezeni: {1}
+second=sekunda
+seconds=sekundy
+seenOffline=Hrac {0} je offline od {1}
+seenOnline=Hrac {0} je online od {1}
+serverFull=Server je plny
+serverTotal=Maximum serveru: {0}
+setSpawner=Zmenil jsi spawner na: {0}
+sheepMalformedColor=Deformovana barva.
+shoutFormat=\u00a77[Shout]\u00a7f {0}
+signFormatFail=\u00a74[{0}]
+signFormatSuccess=\u00a71[{0}]
+signFormatTemplate=[{0}]
+signProtectInvalidLocation=\u00a74Nemas opravneni vytvaret zde cedule.
+similarWarpExist=Warp s podobnym nebo stejnym jmenem jiz existuje.
+slimeMalformedSize=Zdeformovana velikost.
+soloMob=Tento mob ma rad, kdyz je sam.
+spawnSet=\u00a77Spawn-lokace nastavena pro skupinu: {0}.
+spawned=spawnut
+sudoExempt=Nemuzes ovladat tohoto hrace
+sudoRun=Nutis hrace {0} k behu: /{1} {2}
+suicideMessage=\u00a77Sbohem kruty svete...
+suicideSuccess= \u00a77{0} si vzal svuj zivot
+survival=survival
+takenFromAccount=\u00a7c{0} bylo odecteno z tveho uctu.
+takenFromOthersAccount=\u00a7c{0} bylo odebrano z {1}\u00a7c uctu. Nova hodnota: {2}
+teleportAAll=\u00a77Zadost o teleportaci odeslana vsem hracum...
+teleportAll=\u00a77Teleportuji všechny hrace...
+teleportAtoB=\u00a77{0}\u00a77 vas teleportoval k {1}\u00a77.
+teleportDisabled={0} mas teleportaci zablokovanou.
+teleportHereRequest=\u00a7c{0}\u00a7c vas pozadal aby jste se warpnul k nemu.
+teleportNewPlayerError=Teleportace noveho hrace selhala
+teleportRequest=\u00a7c{0}\u00a7c se chce teleportovat k tobe.
+teleportRequestTimeoutInfo=\u00a77Tato zadost vyprsi za {0} sekund.
+teleportTop=\u00a77Teleportuji na vrch.
+teleportationCommencing=\u00a77Teleportace zahajena...
+teleportationDisabled=\u00a77Teleportace zakazana.
+teleportationEnabled=\u00a77Teleportace povolena.
+teleporting=\u00a77Teleportuji...
+teleportingPortal=\u00a77Teleportuji pres portal.
+tempBanned=Docasne zabanovany na dobu {0}
+tempbanExempt=\u00a77Nemel by jsi docasne zabanovat tohoto hrace.
+thunder= Nastavil jsi {0} bouri ve tvem svete.
+thunderDuration=Nastavil jsi {0} bouri ve svete po {1} sekund.
+timeBeforeHeal=Potrebny cas pro dalsi uzdraveni: {0}
+timeBeforeTeleport=Potrebny cas pro dalsi teleport: {0}
+timeFormat=\u00a73{0}\u00a7f nebo \u00a73{1}\u00a7f nebo \u00a73{2}\u00a7f
+timePattern=(?:([0-9]+)\\s*y[a-z]*[,\\s]*)?(?:([0-9]+)\\s*mo[a-z]*[,\\s]*)?(?:([0-9]+)\\s*w[a-z]*[,\\s]*)?(?:([0-9]+)\\s*d[a-z]*[,\\s]*)?(?:([0-9]+)\\s*h[a-z]*[,\\s]*)?(?:([0-9]+)\\s*m[a-z]*[,\\s]*)?(?:([0-9]+)\\s*(?:s[a-z]*)?)?
+timeSet=Cas nastaven ve vsech svetech.
+timeSetPermission=\u00a7cNejsi autorizovany ke zmene casu.
+timeWorldCurrent=Ve svete {0} je prave \u00a73{1}
+timeWorldSet=Cas byl nastaven na {0} ve: \u00a7c{1}
+tradeCompleted=\u00a77Vymena kompletni.
+tradeSignEmpty=Tato cedule jiz nema dostupny material na vymenu.
+tradeSignEmptyOwner=Na teto ceduli dosel material.
+treeFailure=\u00a7cNepodarilo se vytvorit strom. Zkus to znovu na trave nebo hline.
+treeSpawned=\u00a77Strom vytvoren.
+true=pravda
+typeTpaccept=\u00a77Pro prijmuti zadosti napis \u00a7c/tpaccept\u00a77.
+typeTpdeny=\u00a77Pokud chces odmitnout zadost napis \u00a7c/tpdeny\u00a77.
+typeWorldName=\u00a77Muzes take napsat specificky nazev sveta.
+unableToSpawnMob=Nemozne spawnout moba.
+unbannedIP=Unbanovana IP adresa.
+unbannedPlayer=Hrac odbanovan.
+unignorePlayer=Prestal jsi ignorovat hrace {0}.
+unknownItemId=Nezname ID itemu: {0}
+unknownItemInList=Neznamy item {0} v {1} seznamu.
+unknownItemName=Neznamy nazev itemu: {0}
+unlimitedItemPermission=\u00a7cNemas opravneni pro neomezeny item: {0}.
+unlimitedItems=Neomezene itemy:
+unmutedPlayer=Hrac {0} byl umlcen.
+upgradingFilesError=Chyba pri updatovani souboru.
+userDoesNotExist=Uzivatel {0} neexistuje.
+userIsAway={0} je AFK.
+userIsNotAway={0} se vratil.
+userJailed=\u00a77Byl jsi uveznen.
+userUsedPortal={0} pouzil portal pro vychod.
+userdataMoveBackError=Chyba pri pokusu o presun userdata/{0}.tmp do userdata/{1}
+userdataMoveError=Chyba pri pokusu o presun userdata/{0} do userdata/{1}.tmp
+usingTempFolderForTesting=Pouzivam docasnou slozku pro testovani:
+versionMismatch=Chyba verzi! Prosim updatuj {0} na stejnou verzi.
+versionMismatchAll=Chyba verzi! Prosim, updatuj vsechny Essentials .jar na stejnou verzi.
+voiceSilenced=\u00a77Byl jsi ztisen.
+warpDeleteError=Vyskytl se problem pri mazani warpu.
+warpListPermission=\u00a7cNemas opravneni listovat warpami.
+warpNotExist=Tento warp neexistuje.
+warpOverwrite=\u00a7cNemuzes prepsat tento warp.
+warpSet=\u00a77Warp {0} vytvoren.
+warpUsePermission=\u00a7cNemas opravneni pouzit tento warp.
+warpingTo=\u00a77Warpuji te do {0}.
+warps=Warpy: {0}
+warpsCount=\u00a77Mame zde {0} warpu. Strana {1} z {2}.
+weatherStorm=\u00a77Nastavil jsi bourku v {0}
+weatherStormFor=\u00a77Nastavil jsi bourku v {0} na {1} sekund.
+weatherSun=\u00a77Nastavil jsi slunecne pocasi v {0}
+weatherSunFor=\u00a77Nastavil jsi slunecne pocasi v {0} na {1} sekund
+whoisBanned=\u00a79 - Zabanovan: {0}
+whoisExp=\u00a79 - Exp: {0} (Uroven {1})
+whoisGamemode=\u00a79 - Herni mod: {0}
+whoisGeoLocation=\u00a79 - Puvod: {0}
+whoisGod=\u00a79 - God mode: {0}
+whoisHealth=\u00a79 - Zdravi: {0}/20
+whoisIPAddress=\u00a79 - IP Adresa: {0}
+whoisIs={0} je {1}
+whoisJail=\u00a79 - Jail: {0}
+whoisLocation=\u00a79 - Pozice: ({0}, {1}, {2}, {3})
+whoisMoney=\u00a79 - Penize: {0}
+whoisOP=\u00a79 - OP: {0}
+whoisStatusAvailable=\u00a79 - Status: Pritomny
+whoisStatusAway=\u00a79 - Status: \u00a7cPryc\u00a7f
+worth=\u00a77Stack {0} ceny \u00a7c{1}\u00a77 ({2} kus(u) za {3} kus)
+worthMeta=\u00a77Stack {0} s metadaty {1} ceny \u00a7c{2}\u00a77 ({3} kus(u) za {4} kus)
+worthSet=Hodnota ceny nastavena
+year=rok
+years=roky
+youAreHealed=\u00a77Byl jsi uzdraven.
+youHaveNewMail=\u00a7cMas {0} zprav!\u00a7f Napis \u00a77/mail read\u00a7f aby jsi si precetl sve zpravy.
diff --git a/Essentials/src/messages_da.properties b/Essentials/src/messages_da.properties
index e06985430..a88863528 100644
--- a/Essentials/src/messages_da.properties
+++ b/Essentials/src/messages_da.properties
@@ -51,6 +51,7 @@ creatingConfigFromTemplate=Opretter config fra skabelon: {0}
creatingEmptyConfig=Opretter tom config: {0}
creative=creative
currency={0}{1}
+currentWorld=Current World: {0}
day=dag
days=dage
defaultBanReason=Banhammeren har talt!
@@ -162,6 +163,7 @@ jailReleasedPlayerNotify=\u00a77Du er blevet befriet fra f\u00c3\u00a6nglset!
jailSentenceExtended=F\u00c3\u00a6ngselsdom forl\u00c3\u00a6nget til: {0)
jailSet=\u00a77F\u00e6ngsel {0} er blevet sat.
jumpError=Dette vil skade din computer''s hjerne.
+kickedAll=\u00a7cKicked all players from server
kickDefault=Kicked fra serveren.
kickExempt=\u00a77Du kan ikke kicke denne spiller.
kill=\u00a77dr\u00e6bte {0}.
diff --git a/Essentials/src/messages_de.properties b/Essentials/src/messages_de.properties
index 4e4f7e78d..6ac0e1809 100644
--- a/Essentials/src/messages_de.properties
+++ b/Essentials/src/messages_de.properties
@@ -51,6 +51,7 @@ creatingConfigFromTemplate=Erstelle Konfiguration aus Vorlage: {0}
creatingEmptyConfig=Erstelle leere Konfiguration: {0}
creative=creative
currency={0}{1}
+currentWorld=Current World: {0}
day=Tag
days=Tage
defaultBanReason=Der Bann-Hammer hat gesprochen!
@@ -162,6 +163,7 @@ jailReleasedPlayerNotify=\u00a77Du wurdest freigelassen!
jailSentenceExtended=Gef\u00e4ngnisszeit erweitert auf: {0)
jailSet=\u00a77Gef\u00e4ngnis {0} wurde erstellt.
jumpError=Das w\u00fcrde deinen Computer \u00fcberlasten.
+kickedAll=\u00a7cKicked all players from server
kickDefault=Vom Server geworfen
kickExempt=\u00a7cDu kannst diesen Spieler nicht rauswerfen.
kill=\u00a77{0} get\u00f6tet.
diff --git a/Essentials/src/messages_en.properties b/Essentials/src/messages_en.properties
index 34367f115..73ce00bee 100644
--- a/Essentials/src/messages_en.properties
+++ b/Essentials/src/messages_en.properties
@@ -31,7 +31,7 @@ buildAlert=\u00a7cYou are not permitted to build
bukkitFormatChanged=Bukkit version format changed. Version not checked.
burnMsg=\u00a77You set {0} on fire for {1} seconds.
canTalkAgain=\u00a77You can talk again
-cantFindGeoIpDB=Can''t find GeoIP database!
+cantFindGeoIpDB=Can't find GeoIP database!
cantReadGeoIpDB=Failed to read GeoIP database!
cantSpawnItem=\u00a7cYou are not allowed to spawn the item {0}
chatTypeLocal=[L]
@@ -51,6 +51,7 @@ creatingConfigFromTemplate=Creating config from template: {0}
creatingEmptyConfig=Creating empty config: {0}
creative=creative
currency={0}{1}
+currentWorld=Current World: {0}
day=day
days=days
defaultBanReason=The Ban Hammer has spoken!
@@ -136,7 +137,7 @@ invRestored=Your inventory has been restored.
invSee=You see the inventory of {0}.
invSeeHelp=Use /invsee to restore your inventory.
invalidCharge=\u00a7cInvalid charge.
-invalidHome=Home {0} doesn't exist
+invalidHome=Home {0} doesn''t exist
invalidMob=Invalid mob type.
invalidServer=Invalid server!
invalidSignLine=Line {0} on sign is invalid.
@@ -161,7 +162,8 @@ jailReleased=\u00a77Player \u00a7e{0}\u00a77 unjailed.
jailReleasedPlayerNotify=\u00a77You have been released!
jailSentenceExtended=Jail time extend to: {0)
jailSet=\u00a77Jail {0} has been set
-jumpError=That would hurt your computer''s brain.
+jumpError=That would hurt your computer's brain.
+kickedAll=\u00a7cKicked all players from server
kickDefault=Kicked from server
kickExempt=\u00a7cYou can not kick that person.
kill=\u00a77Killed {0}.
@@ -233,7 +235,7 @@ noMotd=\u00a7cThere is no message of the day.
noNewMail=\u00a77You have no new mail.
noPendingRequest=You do not have a pending request.
noPerm=\u00a7cYou do not have the \u00a7f{0}\u00a7c permission.
-noPermToSpawnMob=\u00a7cYou don''t have permission to spawn this mob.
+noPermToSpawnMob=\u00a7cYou don't have permission to spawn this mob.
noPlacePermission=\u00a7cYou do not have permission to place a block near that sign.
noPowerTools=You have no power tools assigned.
noRules=\u00a7cThere are no rules specified yet.
@@ -243,7 +245,7 @@ notAllowedToQuestion=\u00a7cYou are not authorized to use question.
notAllowedToShout=\u00a7cYou are not authorized to shout.
notEnoughExperience=You do not have enough experience.
notEnoughMoney=You do not have sufficient funds.
-notRecommendedBukkit=* ! * Bukkit version is not the recommended build for Essentials.
+notRecommendedBukkit= * ! * Bukkit version is not the recommended build for Essentials.
notSupportedYet=Not supported yet.
nothingInHand = \u00a7cYou have nothing in your hand.
now=now
@@ -256,7 +258,7 @@ orderBalances=Ordering balances of {0} users, please wait ...
pTimeCurrent=\u00a7e{0}''s\u00a7f time is {1}.
pTimeCurrentFixed=\u00a7e{0}''s\u00a7f time is fixed to {1}.
pTimeNormal=\u00a7e{0}''s\u00a7f time is normal and matches the server.
-pTimeOthersPermission=\u00a7cYou are not authorized to set other players'' time.
+pTimeOthersPermission=\u00a7cYou are not authorized to set other players' time.
pTimePlayers=These players have their own time:
pTimeReset=Player time has been reset for: \u00a7e{0}
pTimeSet=Player time is set to \u00a73{0}\u00a7f for: \u00a7e{1}
@@ -276,7 +278,7 @@ playerNotFound=\u00a7cPlayer not found.
playerUnmuted=\u00a77You have been unmuted
pong=Pong!
possibleWorlds=\u00a77Possible worlds are the numbers 0 through {0}.
-powerToolAir=Command can''t be attached to air.
+powerToolAir=Command can't be attached to air.
powerToolAlreadySet=Command \u00a7c{0}\u00a7f is already assigned to {1}.
powerToolAttach=\u00a7c{0}\u00a7f command assigned to {1}.
powerToolClearAll=All powertool commands have been cleared.
@@ -285,7 +287,7 @@ powerToolListEmpty={0} has no commands assigned.
powerToolNoSuchCommandAssigned=Command \u00a7c{0}\u00a7f has not been assigned to {1}.
powerToolRemove=Command \u00a7c{0}\u00a7f removed from {1}.
powerToolRemoveAll=All commands removed from {0}.
-powerToolsDisabled=All of your power tools have been enabled.
+powerToolsDisabled=All of your power tools have been disabled.
powerToolsEnabled=All of your power tools have been enabled.
protectionOwner=\u00a76[EssentialsProtect] Protection owner: {0}
questionFormat=\u00a77[Question]\u00a7f {0}
@@ -300,7 +302,7 @@ repairNone=There were no items that needing repairing.
requestAccepted=\u00a77Teleport request accepted.
requestAcceptedFrom=\u00a77{0} accepted your teleport request.
requestDenied=\u00a77Teleport request denied.
-requestDeniedFrom=\u00a77{0} denied your teleport request
+requestDeniedFrom=\u00a77{0} denied your teleport request.
requestSent=\u00a77Request sent to {0}\u00a77.
requestTimedOut=\u00a7cTeleport request has timed out
requiredBukkit= * ! * You need atleast build {0} of CraftBukkit, download it from http://dl.bukkit.org/downloads/craftbukkit/
@@ -357,7 +359,7 @@ timeSetPermission=\u00a7cYou are not authorized to set the time.
timeWorldCurrent=The current time in {0} is \u00a73{1}
timeWorldSet=The time was set to {0} in: \u00a7c{1}
tradeCompleted=\u00a77Trade completed.
-tradeSignEmpty=The trade sign does not have enough supply left.
+tradeSignEmpty=The trade sign has nothing available for you.
tradeSignEmptyOwner=There is nothing to collect from this trade sign.
treeFailure=\u00a7cTree generation failure. Try again on grass or dirt.
treeSpawned=\u00a77Tree spawned.
@@ -388,7 +390,7 @@ versionMismatch=Version mismatch! Please update {0} to the same version.
versionMismatchAll=Version mismatch! Please update all Essentials jars to the same version.
voiceSilenced=\u00a77Your voice has been silenced
warpDeleteError=Problem deleting the warp file.
-warpListPermission=\u00a7cYou do not have Permission to list that warps.
+warpListPermission=\u00a7cYou do not have Permission to list warps.
warpNotExist=That warp does not exist.
warpOverwrite=\u00a7cYou cannot overwrite that warp.
warpSet=\u00a77Warp {0} set.
diff --git a/Essentials/src/messages_es.properties b/Essentials/src/messages_es.properties
index ad1aefe6c..4469b284f 100644
--- a/Essentials/src/messages_es.properties
+++ b/Essentials/src/messages_es.properties
@@ -51,6 +51,7 @@ creatingConfigFromTemplate=Creando configuracion desde el template: {0}
creatingEmptyConfig=Creando configuracion vacia: {0}
creative=creative
currency={0}{1}
+currentWorld=Current World: {0}
day=dia
days=dias
defaultBanReason=Baneado por incumplir las normas!
@@ -162,6 +163,7 @@ jailReleasedPlayerNotify=\u00a77 Has sido liberado!!
jailSentenceExtended=El tiempo en la carcel se alarga hasta: {0)
jailSet=\u00a77Carcel {0} ha sido puesta
jumpError=Eso es demasiado para tu ordenador!
+kickedAll=\u00a7cKicked all players from server
kickDefault=Echado del servidor.
kickExempt=\u00a7cNo puedes echar a esa persona.
kill=\u00a77ha matado a {0}.
diff --git a/Essentials/src/messages_fr.properties b/Essentials/src/messages_fr.properties
index 0c4b94efc..235b22479 100644
--- a/Essentials/src/messages_fr.properties
+++ b/Essentials/src/messages_fr.properties
@@ -51,6 +51,7 @@ creatingConfigFromTemplate=Cr\u00e9ation de la configuration \u00e0 partir du mo
creatingEmptyConfig=Cr\u00e9ation d''une configuration vierge : {0}
creative=cr\u00e9atif
currency={0}{1}
+currentWorld=Current World: {0}
day=jour
days=jours
defaultBanReason=Le marteau du bannissement a frapp\u00e9 !
@@ -162,6 +163,7 @@ jailReleasedPlayerNotify=\u00a77Vous avez \u00e9t\u00e9 lib\u00e9r\u00e9 !
jailSentenceExtended=Dur\u00e9e d''emprisonnement rallong\u00e9e de : {0)
jailSet=\u00a77La prison {0} a \u00e9t\u00e9 cr\u00e9\u00e9.
jumpError=\u00c7a aurait pu faire mal au cerveau de votre ordinateur.
+kickedAll=\u00a7cKicked all players from server
kickDefault=\u00c9ject\u00e9 du serveur
kickExempt=\u00a77Vous ne pouvez pas \u00e9jecter ce joueur.
kill=\u00a77Tu\u00e9 {0}.
diff --git a/Essentials/src/messages_it.properties b/Essentials/src/messages_it.properties
new file mode 100644
index 000000000..1eaf84e6d
--- /dev/null
+++ b/Essentials/src/messages_it.properties
@@ -0,0 +1,425 @@
+#version: TeamCity
+# Single quotes have to be doubled: ''
+# Translations start here
+# by:
+action=* {0} {1}
+addedToAccount=\u00a7a{0} e'' stato aggiunto al tuo account.
+addedToOthersAccount=\u00a7a{0} e'' stato aggiunto all''account {1}\u00a7a. Nuovo bilancio: {2}
+alertBroke=fallito:
+alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} a: {3}
+alertPlaced=collocato:
+alertUsed=usato:
+autoAfkKickReason=Sei stato kickato per inattivita'' oltre i {0} minuti.
+backAfterDeath=\u00a77Digita il comando /back per tornare al punto dove sei morto.
+backUsageMsg=\u00a77Ritorna alla posizione precedente.
+backupDisabled=Un script di backup esterno non e'' stato configurato.
+backupFinished=Backup terminato
+backupStarted=Backup iniziato
+balance=\u00a77Bilancio: {0}
+balanceTop=\u00a77Top bilanci ({0})
+banExempt=\u00a7cNon puoi bannare questo player.
+banIpAddress=\u00a77IP address bannato
+bannedIpsFileError=Errore di lettura banned-ips.txt
+bannedIpsFileNotFound=banned-ips.txt non trovato
+bannedPlayersFileError=Errore di lettura banned-players.txt
+bannedPlayersFileNotFound=banned-players.txt non trovato
+bigTreeFailure=\u00a7cCreazione del grande albero fallita. Riprova sull''erba o sul terreno.
+bigTreeSuccess= \u00a77Grande albero creato.
+blockList=Essentials ha trasmesso i seguenti comandi ad un altro plugin:
+broadcast=[\u00a7cBroadcast\u00a7f]\u00a7a {0}
+buildAlert=\u00a7cNon hai i permessi per costruire
+bukkitFormatChanged=Il formato della versione Bukkit e'' cambiato. Versione non controllata.
+burnMsg=\u00a77Hai impostato{0} infuocato per {1} secondi.
+canTalkAgain=\u00a77Ora puoi parlare di nuovo
+cantFindGeoIpDB=Non trovo il database GeoIP!
+cantReadGeoIpDB=Lettura fallita del database GeoIP!
+cantSpawnItem=\u00a7cNon sei abilitato a generare l''oggetto {0}
+chatTypeLocal=[L]
+chatTypeSpy=[Spy]
+commandFailed=Comando {0} fallito:
+commandHelpFailedForPlugin=Errore nella guida di: {0}
+commandNotLoaded=\u00a7cIl comando {0} non e'' stato caricato correttamente.
+compassBearing=\u00a77Bussola: {0} ({1} gradi).
+configFileMoveError=Impossibile spostare config.yml nel backup.
+configFileRenameError=Impossibile rinominare il file temporale in config.yml
+connectedPlayers=Players connessi:
+connectionFailed=Connessione fallita.
+cooldownWithMessage=\u00a7cIn esaurimento: {0}
+corruptNodeInConfig=\u00a74Avviso: errore nel tuo file di configurazione, nodo {0}.
+couldNotFindTemplate=Non trovo il template {0}
+creatingConfigFromTemplate=Configurazione dal template: {0}
+creatingEmptyConfig=Configurazione vuota creata: {0}
+creative=creativo
+currency={0}{1}
+currentWorld=Current World: {0}
+day=giorno
+days=giorni
+defaultBanReason=Sei stato bannato!
+deleteFileError=Impossibile eliminare il file: {0}
+deleteHome=\u00a77La home {0} e'' stata rimossa.
+deleteJail=\u00a77La prigione {0} e'' stata rimossa.
+deleteWarp=\u00a77Il Warp {0} e'' stato rimosso.
+deniedAccessCommand={0} Accesso negato al comando.
+dependancyDownloaded=[Essentials] Dependancy {0} download effettuato con successo.
+dependancyException=[Essentials] Errore durante il download di una dependacy
+dependancyNotFound=[Essentials] Una dependancy necessaria non e'' stata trovata, sto effettuando il download..
+depth=\u00a77Sei al livello del mare.
+depthAboveSea=\u00a77Sei {0} blocco(i) sopra il livello del mare.
+depthBelowSea=\u00a77Sei {0} blocco(i) sotto il livello del mare.
+destinationNotSet=Destinazione non impostata
+disableUnlimited=\u00a77Collocazione illimitata di {0} per {1} disabilitata.
+disabled=disabilitato
+disabledToSpawnMob=La creazione di questo mob e'' stata disabilitata nel file config.
+dontMoveMessage=\u00a77Il teletrasporto iniziera'' tra {0}. Attendi.
+downloadingGeoIp=Download del database GeoIP... potrebbe richiedere del tempo (nazione: 0.6 MB, citta'': 20MB)
+duplicatedUserdata=Dati dell''utente duplicati: {0} e {1}
+enableUnlimited=\u00a77Sto inviando una quantita'' illimitata di {0} a {1}.
+enabled=abilitato
+enchantmentApplied = \u00a77L''incantesimo {0} e'' stato applicato all''oggetto nelle tue mani.
+enchantmentNotFound = \u00a7cIncantesimo non trovato
+enchantmentPerm = \u00a7cNon hai il permesso per {0}
+enchantmentRemoved = \u00a77L''incantesimo {0} e'' stato rimosso dall''oggetto nelle tue mani.
+enchantments = \u00a77Incantesimi: {0}
+errorCallingCommand=Errore di chiamata del comando /{0}
+errorWithMessage=\u00a7cErrore: {0}
+essentialsHelp1=File corrotto.. Essentials non riesce ad aprirlo. Essentials ora e'' disabilitato. Se non riesci a riparare il file, vai su http://tiny.cc/EssentialsChat
+essentialsHelp2=File corrotto.. Essentials non riesce ad aprirlo. Essentials ora e'' disabilitato. Se non riesci a riparare il file, digita il comando /essentialshelp o vai su http://tiny.cc/EssentialsChat
+essentialsReload=\u00a77Essentials Ricaricato {0}
+extinguish=\u00a77Hai spento le fiamme.
+extinguishOthers=\u00a77Hai spento le fiamme di {0}.
+failedToCloseConfig=Chiusura fallita del config {0}
+failedToCreateConfig=Creazione fallita del config {0}
+failedToWriteConfig=Scrittura fallita del config {0}
+false=falso
+feed=\u00a77Ora sei sazio.
+feedOther=\u00a77{0} e''stato nutrito.
+fileRenameError=Rinomina del file {0} fallita
+flyMode=\u00a77Modalita'' volo impostata {0} per {1}.
+foreverAlone=\u00a7cNon c''e'' nessuno a cui rispondere.
+freedMemory=Liberati {0} MB.
+gameMode=\u00a77Modalita''di gioco {0} impostata per {1}.
+gcchunks= blocchi,
+gcentities= entita''
+gcfree=Memoria libera: {0} MB
+gcmax=Memoria massima: {0} MB
+gctotal=Memoria allocata: {0} MB
+geoIpUrlEmpty=L''url del download di GeoIP e'' vuoto.
+geoIpUrlInvalid=L''url del download di GeoIP non e'' valido.
+geoipJoinFormat=Il Player {0} proviene da {1}
+godDisabledFor=God disabilitato per {0}
+godEnabledFor=God abilitato per {0}
+godMode=\u00a77Modalita'' God {0}.
+haveBeenReleased=\u00a77Sei stato scarcerato.
+heal=\u00a77Sei stato curato.
+healOther=\u00a77{0} e'' stato curato.
+helpConsole=Digitare ? per la guida.
+helpFrom=\u00a77Comandi da {0}:
+helpLine=\u00a76/{0}\u00a7f: {1}
+helpMatching=\u00a77Corrispondenza comandi "{0}":
+helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
+helpPages=Pagina \u00a7c{0}\u00a7f di \u00a7c{1}\u00a7f:
+helpPlugin=\u00a74{0}\u00a7f: Plugin Help: /help {1}
+holeInFloor=Buco nel terreno
+homeSet=\u00a77Home impostata.
+homeSetToBed=\u00a77La tua home e'' ora assegnata a questo letto.
+homes=Homes: {0}
+hour=ora
+hours=ore
+ignorePlayer=Da ora in poi ignorerai {0}.
+illegalDate=Formato data/ora non riconosciuto.
+infoChapter=Seleziona capitolo:
+infoChapterPages=Capitolo {0}, pagina \u00a7c{1}\u00a7f di \u00a7c{2}\u00a7f:
+infoFileDoesNotExist=Il file info.txt non esiste. Creane uno per te.
+infoPages=\u00a7e ---- \u00a76{2} \u00a7e--\u00a76 Pagina \u00a74{0}\u00a76/\u00a74{1} \u00a7e----
+infoUnknownChapter=Capitolo sconosciuto.
+invBigger=L''inventario degli altri utenti e'' piu'' grande del tuo.
+invRestored=l tuo inventario e'' stato ripristinato.
+invSee=Stai guardando l''inventario di {0}.
+invSeeHelp=Digita /invsee per ripristinare il tuo inventario.
+invalidCharge=\u00a7cIIstruzione non corretta.
+invalidHome=La home {0} non esiste
+invalidMob=Tipo mob non valido.
+invalidServer=Server non valido!
+invalidSignLine=Riga {0} non corretta.
+invalidWorld=\u00a7cMondo incorretto.
+inventoryCleared=\u00a77Inventario cancellato.
+inventoryClearedOthers=\u00a77Inventario di \u00a7c{0}\u00a77 cancellato.
+is=e''
+itemCannotBeSold=L''oggetto non puo'' essere venduto.
+itemMustBeStacked=L''oggetto deve essere commerciato in pile. 2 quantita'' equivalgono a 2 pile, etc.
+itemNotEnough1=\u00a7cNon hai abbastanza quantita'' di questo oggetto per venderlo.
+itemNotEnough2=\u00a77Se vuoi vendere tutti gli oggetti di quel tipo, digita /sell nomeoggetto
+itemNotEnough3=\u00a77/sell nomeoggetto -1 vende tutto tranne quell''oggetto, etc.
+itemSellAir=Stai cercando di vendere l''aria? Metti un oggetto nella tua mano.
+itemSold=\u00a77Venduto per \u00a7c{0} \u00a77({1} {2} a {3} l''uno)
+itemSoldConsole={0} venduto {1} per \u00a77{2} \u00a77({3} oggetti a {4} l''uno)
+itemSpawn=\u00a77Inviati {0} di {1}
+itemsCsvNotLoaded=Impossibile caricare items.csv.
+jailAlreadyIncarcerated=\u00a7cPlayer gia'' in prigione: {0}
+jailMessage=\u00a7cAvrai tempo per riflettere..in prigione.
+jailNotExist=La prigione dichiarata non esiste.
+jailReleased=\u00a77Player \u00a7e{0}\u00a77 scarcerato.
+jailReleasedPlayerNotify=\u00a77Sei stato scarcerato!
+jailSentenceExtended=Tempo di incarcerazione aumentato di: {0)
+jailSet=\u00a77{0} e'' ora una prigione.
+jumpError=Cosi'' facendo danneggerai la cpu.
+kickedAll=\u00a7cKicked all players from server
+kickDefault=Kickato dal server
+kickExempt=\u00a7cNon puoi kickare questo player.
+kill=\u00a77Ucciso {0}.
+kitError2=\u00a7cQuesto kit non esiste o non e'' definito.
+kitError=\u00a7cNon ci sono kit validi.
+kitErrorHelp=\u00a7cForse una quantita'' manca in un oggetto della configurazione?
+kitGive=\u00a77Kit inviato {0}.
+kitInvFull=\u00a7cIl tuo inventario e'' pieno, il kit e'' ora per terra.
+kitTimed=\u00a7cNon puoi usare il kit per altri {0}.
+kits=\u00a77Kits: {0}
+lightningSmited=\u00a77Sei stato folgorato!
+lightningUse=\u00a77{0} e'' stato folgorato!
+listAfkTag = \u00a77[AFK]\u00a7f
+listAmount = \u00a79Ci sono \u00a7c{0}\u00a79 players online su un massimo di \u00a7c{1}.
+listAmountHidden = \u00a79Ci sono \u00a7c{0}\u00a77/{1}\u00a79 players online su un massimo di \u00a7c{2}.
+listGroupTag={0}\u00a7f:
+listHiddenTag = \u00a77[HIDDEN]\u00a7f
+loadWarpError=Impossibile caricare il warp {0}
+localFormat=Formato locale: <{0}> {1}
+mailClear=\u00a7cPer cancellare la tua mail, digita /mail clear
+mailCleared=\u00a77Mail cancellata!
+mailSent=\u00a77Mail inviata!
+markMailAsRead=\u00a7cPer contrassegnare la mail come gia'' letta, digita /mail read
+markedAsAway=\u00a77Il tuo stato ora e'' "Non al computer".
+markedAsNotAway=\u00a77Bentornato!
+maxHomes=Non puoi assegnare piu'' di {0} home.
+mayNotJail=\u00a7cNon puoi imprigionare questo player.
+me=mi
+minute=minuto
+minutes=minuti
+missingItems=Non hai {0}x {1}.
+missingPrefixSuffix=Manca un prefisso o un suffisso per {0}
+mobSpawnError=Errore durante il cambiamento del generatore di mob.
+mobSpawnLimit=Quantita'' Mob limitata dal server
+mobSpawnTarget=Il blocco designato deve essere un generatore di mob.
+mobsAvailable=\u00a77Mobs: {0}
+moneyRecievedFrom=\u00a7a{0} sono stati ricevuti da {1}
+moneySentTo=\u00a7a{0} sono stati inviati a {1}
+moneyTaken={0} prelevati dal tuo conto in banca.
+month=mese
+months=mesi
+moreThanZero=La quantita'' deve essere maggiore di 0.
+msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
+muteExempt=\u00a7cNon puoi mutare questo player.
+mutedPlayer=Player {0} mutato.
+mutedPlayerFor=Player {0} mutato per {1}.
+mutedUserSpeaks={0} ha provato a parlare, ma e'' mutato.
+nearbyPlayers=Players nelle vicinanze: {0}
+negativeBalanceError=User is not allowed to have a negative balance.
+nickChanged=Nickname modificato.
+nickDisplayName=\u00a77Devi abilitare change-displayname nel config di Essentials.
+nickInUse=\u00a7cNickname gia'' in uso.
+nickNamesAlpha=\u00a7cI Nickname devono essere alfanumerici.
+nickNoMore=\u00a77Non disponi piu'' di un nickname.
+nickOthersPermission=\u00a7cNon hai il permesso di cambiare il nickname degli altri
+nickSet=\u00a77Il tuo nickname e'' ora \u00a7c{0}
+noAccessCommand=\u00a7cNon hai accesso a questo comando.
+noAccessPermission=\u00a7cNon hai i permessi di accesso per {0}.
+noBreakBedrock=Non sei abilitato a distruggere la bedrock.
+noDestroyPermission=\u00a7cNon hai i permessi per distruggere {0}.
+noGodWorldWarning=\u00a7cAttenzione! Modalita'' God disabilitata in questo mondo.
+noHelpFound=\u00a7cComandi non trovati.
+noHomeSet=Non hai stabilito una home.
+noHomeSetPlayer=Il Player non ha stabilito una home.
+noKitPermission=\u00a7cHai bisogno del permesso \u00a7c{0}\u00a7c per usare questo kit.
+noKits=\u00a77Non ci sono ancora kit disponibili
+noMail=Non hai ricevuto nessuna mail
+noMotd=\u00a7cNon c''e'' nessun messaggio del giorno.
+noNewMail=\u00a77Non hai ricevuto nuove mail.
+noPendingRequest=Non hai richieste in sospeso.
+noPerm=\u00a7cNon hai questo permesso: \u00a7f{0}
+noPermToSpawnMob=\u00a7cNon hai i permessi per generare questo mob.
+noPlacePermission=\u00a7cNon hai il permesso di collocare un blocco accanto a quest''insegna.
+noPowerTools=Non hai attrezzi assegnati.
+noRules=\u00a7cNon ci sono regole specifiche al momento.
+noWarpsDefined=Nessun warp definito
+none=nessun
+notAllowedToQuestion=\u00a7cNon sei autorizzato a fare domande.
+notAllowedToShout=\u00a7cNon sei autorizzato a gridare.
+notEnoughExperience=Non hai abbastanza esperienza.
+notEnoughMoney=Non hai abbastanza denaro.
+notRecommendedBukkit=* ! * La versione Bukkit in uso non e'' compatibile con Essentials.
+notSupportedYet=Non ancora supportato.
+nothingInHand = \u00a7cNon hai niente in mano.
+now=adesso
+nuke=Un regalino.. radioattivo
+numberRequired=Che ne dici di metterci un numero?!
+onlyDayNight=/time supporta solo day/night.
+onlyPlayers=Solo i players durante il gioco possono usare {0}.
+onlySunStorm=/weather supporta solo sun/storm.
+orderBalances=Sto ordinando i bilanci di {0} utenti, attendere grazie...
+pTimeCurrent=L''orario di \u00a7e{0}\u00a7f e'' {1}.
+pTimeCurrentFixed=L''orario di \u00a7e{0}\u00a7f e'' fissato alle {1}.
+pTimeNormal=L''orario di \u00a7e{0}\u00a7f e'' normale e corrisponde a quello del server.
+pTimeOthersPermission=\u00a7cNon sei autorizzato a definre l''orario degli altri player.
+pTimePlayers=Questi player hanno il loro orario:
+pTimeReset=L''orario del Player e'' stato resettato alle: \u00a7e{0}
+pTimeSet=L''orario del Player e'' stato regolato alle \u00a73{0}\u00a7f per le: \u00a7e{1}
+pTimeSetFixed=L''orario del Player e'' stato fissato alle \u00a73{0}\u00a7f per le: \u00a7e{1}
+parseError=Errore parsing {0} riga {1}
+pendingTeleportCancelled=\u00a7cRichiesta in sospeso di teletrasporto cancellata.
+permissionsError=Mancano i permessi per Permissions/GroupManager; i suffissi e prefissi in chat verrano disabilitati.
+playerBanned=\u00a7cIl Player {0} e'' bannato {1} motivo: {2}
+playerInJail=\u00a7cIl Player e'' gia'' nella prigione ({0}).
+playerJailed=\u00a77Il Player {0} e'' stato messo in prigione.
+playerJailedFor= \u00a77Il Player {0} e'' in prigione. motivo: {1}.
+playerKicked=\u00a7cIl Player {0} e'' stato kickato {1} motivo: {2}
+playerMuted=\u00a77Sei stato mutato
+playerMutedFor=\u00a77Sei stato mutato per {0}
+playerNeverOnServer=\u00a7cIl Player {0} non e'' mai stato su questo server.
+playerNotFound=\u00a7cPlayer non trovato.
+playerUnmuted=\u00a77Sei stato smutato
+pong=Pong!
+possibleWorlds=\u00a77I mondi sono numerati da 0 a {0}.
+powerToolAir=Il comando non puo'' essere collegato all''aria.
+powerToolAlreadySet=Il comando \u00a7c{0}\u00a7f e'' gia'' stato assegnato a {1}.
+powerToolAttach=Il comando \u00a7c{0}\u00a7f e'' stato assegnato a {1}.
+powerToolClearAll=Tutti i comandi per gli attrezzi sono stati cancellati.
+powerToolList=L''attrezzo {1} ha i seguenti comandi: \u00a7c{0}\u00a7f.
+powerToolListEmpty=L''attrezzo {0} non dispone di comandi assegnati.
+powerToolNoSuchCommandAssigned=Il comando \u00a7c{0}\u00a7f non e'' stato assegnato a {1}.
+powerToolRemove=Il comando \u00a7c{0}\u00a7f e'' stato rimosso da {1}.
+powerToolRemoveAll=Tutti i comandi sono stati rimossi da {0}.
+powerToolsDisabled=Tutti i tuoi attrezzi sono stati disabilitati.
+powerToolsEnabled=Tutti i tuoi attrezzi sono stati abilitati.
+protectionOwner=\u00a76[EssentialsProtect] Protetto dal proprietario: {0}
+questionFormat=\u00a77[Domanda]\u00a7f {0}
+readNextPage=Digita /{0} {1} per la pagina successiva
+reloadAllPlugins=\u00a77Tutti i plugins ricaricati.
+removed=\u00a77Rimosse {0} entitita''.
+repair=Hai riparato con successo il tuo: \u00a7e{0}.
+repairAlreadyFixed=\u00a77Questo oggetto non richiede riparazioni.
+repairEnchanted=\u00a77Non sei abilitato a riparare oggetti magici.
+repairInvalidType=\u00a7cQuesto oggetto non puo'' essere riparato.
+repairNone=Non ci sono oggetti da riparare.
+requestAccepted=\u00a77Richiesta di teletrasporto accettata.
+requestAcceptedFrom=\u00a77{0} ha accettato la tua richiesta di teletrasporto.
+requestDenied=\u00a77Richiesta di teletrasporto rifiutata.
+requestDeniedFrom=\u00a77{0} ha rifiutato la tua richiesta di teletrasporto.
+requestSent=\u00a77Richiesta inviata a {0}\u00a77.
+requestTimedOut=\u00a7cRichiesta di teletrasporto scaduta.
+requiredBukkit=* ! * e'' necessaria la versione {0} o superiore di CraftBukkit, scaricabile da http://dl.bukkit.org/downloads/craftbukkit/
+returnPlayerToJailError=Riscontrato errore nell''invio del player {0} alla prigione: {1}
+second=secondo
+seconds=secondi
+seenOffline=Il Player {0} e'' offline da {1}
+seenOnline=Il Player {0} e'' online da {1}
+serverFull=Il Server e'' pieno
+serverTotal=Totale Server: {0}
+setSpawner=Tipo generatore modificato in {0}
+sheepMalformedColor=Colore non valido.
+shoutFormat=\u00a77[Grido!]\u00a7f {0}
+signFormatFail=\u00a74[{0}]
+signFormatSuccess=\u00a71[{0}]
+signFormatTemplate=[{0}]
+signProtectInvalidLocation=\u00a74Non hai il permesso per creare segnaposti qui.
+similarWarpExist=Il nome del warp e'' stato gia'' utilizzato.
+slimeMalformedSize=Dimensione non valida.
+soloMob=Quel mob sembra essere solo
+spawnSet=\u00a77Punto di rigenerazione creato per il gruppo {0}.
+spawned=creato
+sudoExempt=Impossibile applicare il sudo a questo utente
+sudoRun=Sto obbligando {0} ad eseguire: /{1} {2}
+suicideMessage=\u00a77Addio mondo crudele...
+suicideSuccess= \u00a77{0} si e'' suicidato..
+survival=sopravvivenza
+takenFromAccount=\u00a7c{0} sono stati prelevati dal tuo conto.
+takenFromOthersAccount=\u00a7c{0} taken from {1}\u00a7c account. New balance: {2}
+teleportAAll=\u00a77Richiesta di teletrasporto inviata a tutti i players...
+teleportAll=\u00a77Sto teletrasportando tutti i players...
+teleportAtoB=\u00a77{0}\u00a77 ti ha teletrasportato a {1}\u00a77.
+teleportDisabled={0} ha il teletrasporto disabilitato.
+teleportHereRequest=\u00a7c{0}\u00a7c ha richiesto di teletrasportati da loro.
+teleportNewPlayerError=Teletrasporto del nuovo player fallito
+teleportRequest=\u00a7c{0}\u00a7c ha richiesto di teletrasportati da te.
+teleportRequestTimeoutInfo=\u00a77Questa richiesta scadra'' tra {0} secondi.
+teleportTop=\u00a77Teletrasporto in cima.
+teleportationCommencing=\u00a77Inizio teletrasporto...
+teleportationDisabled=\u00a77Teletrasporto disabilitato.
+teleportationEnabled=\u00a77Teletrasporto abilitato.
+teleporting=\u00a77Teletrasporto in corso...
+teleportingPortal=\u00a77Teletrasporto tramite portale.
+tempBanned=Bannato temporaneamente dal server per {0}
+tempbanExempt=\u00a77Non puoi bannare questo player
+thunder=Abilita i filmini dal cielo: {0}
+thunderDuration=Abilita i filmini dal cielo: {0} per {1} secondi.
+timeBeforeHeal=Tempo rimanente alla prossima cura: {0}
+timeBeforeTeleport=Tempo rimanente al prossimo teletrasporto: {0}
+timeFormat=\u00a73{0}\u00a7f oppure \u00a73{1}\u00a7f oppure \u00a73{2}\u00a7f
+timePattern=(?:([0-9]+)\\s*y[a-z]*[,\\s]*)?(?:([0-9]+)\\s*mo[a-z]*[,\\s]*)?(?:([0-9]+)\\s*w[a-z]*[,\\s]*)?(?:([0-9]+)\\s*d[a-z]*[,\\s]*)?(?:([0-9]+)\\s*h[a-z]*[,\\s]*)?(?:([0-9]+)\\s*m[a-z]*[,\\s]*)?(?:([0-9]+)\\s*(?:s[a-z]*)?)?
+timeSet=Orario definito in tutti i mondi.
+timeSetPermission=\u00a7cNon sei autorizzato a regolare l''orario.
+timeWorldCurrent=L''orario attuale in {0} e'' \u00a73{1}
+timeWorldSet=L''orario e'' stato regolato alle {0} in: \u00a7c{1}
+tradeCompleted=\u00a77Affare concluso.
+tradeSignEmpty=L''insegna non dispone di forniture sufficienti.
+tradeSignEmptyOwner=Non c''e'' niente da raccogliare da quest''insegna.
+treeFailure=\u00a7cCreazione dell''albero fallita. Riprova sull''erba o sul terreno.
+treeSpawned=\u00a77Albero generato.
+true=vero
+typeTpaccept=\u00a77Per accetare il teletrasprto, digita \u00a7c/tpaccept\u00a77.
+typeTpdeny=\u00a77Per rifiutare il teletrasporto, digita \u00a7c/tpdeny\u00a77.
+typeWorldName=\u00a77Puoi digitare anche il nome di un mondo.
+unableToSpawnMob=Impossibile generare il mob.
+unbannedIP=IP address abilitato.
+unbannedPlayer=Player abilitato.
+unignorePlayer=Non stai piu'' ignorando il player {0}.
+unknownItemId=ID oggetto sconosciuto: {0}
+unknownItemInList=Oggetto {0} sconosciuto nella lista {1}.
+unknownItemName=Nome oggetto sconosciuto: {0}
+unlimitedItemPermission=\u00a7cNessun permesso per l''oggetto {0} illimitato.
+unlimitedItems=Oggetti illimitati:
+unmutedPlayer=Player {0} smutato.
+upgradingFilesError=Errore durante l''aggiornamento dei file
+userDoesNotExist=L''utente {0} non esiste.
+userIsAway={0} e'' AFK
+userIsNotAway={0} non e'' piu'' AFK
+userJailed=\u00a77Sei stato messo in prigione
+userUsedPortal={0} ha usato un portale.
+userdataMoveBackError=Errore durante lo spostamento di userdata/{0}.tmp a userdata/{1}
+userdataMoveError=Errore durante lo spostamento di userdata/{0} a userdata/{1}.tmp
+usingTempFolderForTesting=Sto usando la cartella temporale per il test:
+versionMismatch=Versione incorretta! Aggiornare {0} alla stessa versione.
+versionMismatchAll=Versione incorretta! Aggiornare tutti i jar Essentials alla stessa versione.
+voiceSilenced=\u00a77La tua voce e'' stata silenziata
+warpDeleteError=Problema nell''eliminazione del file warp.
+warpListPermission=\u00a7cNon hai i permessi per consultare la lista warps.
+warpNotExist=Questo warp non esiste.
+warpOverwrite=\u00a7cNon puoi sovrascrivere il warp.
+warpSet=\u00a77Warp {0} definito.
+warpUsePermission=\u00a7cNon hai i permessi per usare questo warp.
+warpingTo=\u00a77Warping a {0}.
+warps=Warps: {0}
+warpsCount=\u00a77Ci sono {0} warps. Pagina {1} of {2}.
+weatherStorm=\u00a77Hai regolato il tempo in tempesta in {0}
+weatherStormFor=\u00a77Hai cambiato il tempo in tempesta in {0} per {1} secondi
+weatherSun=\u00a77Hai cambiato il tempo in soleggiato in {0}
+weatherSunFor=\u00a77Hai cambiato il tempo in soleggiato in {0} per {1} secondi
+whoisBanned=\u00a79 - Bannati: {0}
+whoisExp=\u00a79 - Exp: {0} (Livello {1})
+whoisGamemode=\u00a79 - Gamemode: {0}
+whoisGeoLocation=\u00a79 - Posizione: {0}
+whoisGod=\u00a79 - God mode: {0}
+whoisHealth=\u00a79 - Health: {0}/20
+whoisIPAddress=\u00a79 - IP Address: {0}
+whoisIs={0} e'' {1}
+whoisJail=\u00a79 - Imprigionati: {0}
+whoisLocation=\u00a79 - Posizione: ({0}, {1}, {2}, {3})
+whoisMoney=\u00a79 - Denaro: {0}
+whoisOP=\u00a79 - OP: {0}
+whoisStatusAvailable=\u00a79 - Status: Disponibile
+whoisStatusAway=\u00a79 - Status: \u00a7cNon al computer\u00a7f
+worth=\u00a77Pila di {0} valore \u00a7c{1}\u00a77 ({2} oggetto(i) a {3} l''uno)
+worthMeta=\u00a77Pila di {0} con metadati di {1} valore \u00a7c{2}\u00a77 ({3} oggetto(i) a {4} l''uno)
+worthSet=Valore definito
+year=anno
+years=anni
+youAreHealed=\u00a77Sei stato curato.
+youHaveNewMail=\u00a7cHai {0} messaggi!\u00a7f digita \u00a77/mail read\u00a7f per consultare la tua mail.
diff --git a/Essentials/src/messages_nl.properties b/Essentials/src/messages_nl.properties
index d0f56752b..c0ac8c4d5 100644
--- a/Essentials/src/messages_nl.properties
+++ b/Essentials/src/messages_nl.properties
@@ -51,6 +51,7 @@ creatingConfigFromTemplate=Bezig met aanmaken van een config vanaf sjabloon: {0}
creatingEmptyConfig=Bezig met een lege config aanmaken: {0}
creative=creative
currency={0}{1}
+currentWorld=Current World: {0}
day=dag
days=dagen
defaultBanReason=De Ban Hamer heeft gesproken!
@@ -162,6 +163,7 @@ jailReleasedPlayerNotify=\u00a77You have been released!
jailSentenceExtended=Jail time extend to: {0)
jailSet=\u00a77Gevangenis {0} is ingesteld
jumpError=Dat zou je computers hersenen beschadigen.
+kickedAll=\u00a7cKicked all players from server
kickDefault=Gekicked van de server
kickExempt=\u00a77Je kunt die speler niet schoppen.
kill=\u00a77Jij doodde {0}.
diff --git a/Essentials/src/messages_pl.properties b/Essentials/src/messages_pl.properties
new file mode 100644
index 000000000..58a5171c4
--- /dev/null
+++ b/Essentials/src/messages_pl.properties
@@ -0,0 +1,425 @@
+#version: TeamCity
+# Single quotes have to be doubled: ''
+# Translations start here
+# by: losdamianos
+action=* {0} {1}
+addedToAccount=\u00a7a{0} zostalo dodane do twojego konta.
+addedToOthersAccount=\u00a7a{0} dodane do konta {1}\u00a7. Nowy stan konta: {2}.
+alertBroke=broke:
+alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} at: {3}
+alertPlaced=postawil:
+alertUsed=uzyl:
+autoAfkKickReason=Zostales wyrzucony z serwera za pozostawanie bez ruchu przez wiecej niz {0} minut.
+backAfterDeath=\u00a77Uzyj komendy /back aby powrocic na miejsce swojej smierci.
+backUsageMsg=\u00a77Transportowanie do poprzedniej lokacji.
+backupDisabled=Zewnetrzny skrypt backupu nie zostal skonfigurowany.
+backupFinished=Backup zakonczony.
+backupStarted=Backup rozpoczety.
+balance=\u00a77Stan konta: {0}
+balanceTop=\u00a77Najbogatsi gracze ({0})
+banExempt=\u00a7cNie mozesz zbanowac tego gracza.
+banIpAddress=\u00a77Zbanowano adress IP
+bannedIpsFileError=Blad odczytu banned-ips.txt
+bannedIpsFileNotFound=banned-ips.txt nie znaleziony
+bannedPlayersFileError=Blad odczytu banned-players.txt
+bannedPlayersFileNotFound=banned-players.txt nie znaleziony
+bigTreeFailure=\u00a7cGenerator duzych drzew zaliczyl blad. Sprobuj ponownie na ziemi lub trawie.
+bigTreeSuccess= \u00a77Utworzono duze drzewo.
+blockList=Essentials relayed the following commands to another plugin:
+broadcast=[\u00a7cBroadcast\u00a7f]\u00a7a {0}
+buildAlert=\u00a7cNie mozesz tu budowac
+bukkitFormatChanged=Format wersji Bukkita jest zmieniony. Wersja nie jest sprawdzana.
+burnMsg=\u00a77Podpaliles {0} na {1} sekund.
+canTalkAgain=\u00a77Znow mozesz mowic.
+cantFindGeoIpDB=Nie mozna znalezc bazy danych GeoIP!
+cantReadGeoIpDB=Odczytywanie bazy danych GeoIP zawiodlo!
+cantSpawnItem=\u00a7cNie mozesz stworzyc przedmiotu {0}.
+chatTypeLocal=[L]
+chatTypeSpy=[Spy]
+commandFailed=Komenda {0} zawiodla.
+commandHelpFailedForPlugin=Blad podczas uzyskiwania pomocy dla: {0}
+commandNotLoaded=\u00a7cKomenda {0} jest zaladowana nieprawidlowo..
+compassBearing=\u00a77Bearing: {0} ({1} degrees).
+configFileMoveError=Failed to move config.yml to backup location.
+configFileRenameError=Failed to rename temp file to config.yml
+connectedPlayers=Obecni gracze:
+connectionFailed=Blad podczas otwierania polaczenia.
+cooldownWithMessage=\u00a7cCooldown: {0}
+corruptNodeInConfig=\u00a74Notice: Your configuration file has a corrupt {0} node.
+couldNotFindTemplate=Could not find template {0}
+creatingConfigFromTemplate=Creating config from template: {0}
+creatingEmptyConfig=Stworzono pusty config: {0}
+creative=Tworczy
+currency={0}{1}
+currentWorld=Current World: {0}
+day=dzien
+days=dnie
+defaultBanReason=Admin ma zawsze racje!
+deleteFileError=Nie mozna usunac pliku: {0}
+deleteHome=\u00a77Posterunek {0} zostal usuniety
+deleteJail=\u00a77Wiezienie {0} zostalo usuniete
+deleteWarp=\u00a77Warp {0} zostal usuniety
+deniedAccessCommand={0} nie ma dostepu do tego polecenia
+dependancyDownloaded=[Essentials] Zaleznosci {0} pobrane prawidlowo.
+dependancyException=[Essentials] Wystapil blad w trakcie pobierania zaleznosci.
+dependancyNotFound=[Essentials] Wymagana zaleznosc nie zostala znaleziona, pobieranie.
+depth=\u00a77Jestes na poziomie morza.
+depthAboveSea=\u00a77Jestes {0} blok(ow) nad poziomem morza.
+depthBelowSea=\u00a77Jestes {0} blok(ow) pod poziomem morza.
+destinationNotSet=Cel nieokreslony.
+disableUnlimited=\u00a77Wylaczone nieograniczone tworzenia {0} dla {1}.
+disabled=wylaczone
+disabledToSpawnMob=Tworzenie tego moba zostalo wylaczone w pliku config.
+dontMoveMessage=\u00a77Teleportacja nastapi za {0}. Prosze sie nie ruszac.
+downloadingGeoIp=Pobieranie bazy danych GeoIP... To moze zajac chwile (wioska: 0.6 MB, miasto: 20MB)
+duplicatedUserdata=Kopiowanie danych uzytkownika: {0} i {1}
+enableUnlimited=\u00a77Przyznano nielimitowane zasoby {0} dla {1}.
+enabled=wlaczone
+enchantmentApplied = \u00a77Ulepszenie {0} zostalo przyznane przedmiotowi w twoim reku.
+enchantmentNotFound = \u00a7cUlepszenie nie odnalezione
+enchantmentPerm = \u00a7cNie masz zezwolenia na {0}.
+enchantmentRemoved = \u00a77Ulepszenie {0} zostalo usuniete z przedmiotu w twoim reku..
+enchantments = \u00a77Ulepszenia: {0}
+errorCallingCommand=Blad wywolywania komendy /{0}
+errorWithMessage=\u00a7cBlad: {0}
+essentialsHelp1=Plik jest uszkodzony i Essentials nie moze go otworzyc. Essentials jest teraz wylaczone. Jesli nie mozesz samemu naprawic pliku, idz do adresu http://tiny.cc/EssentialsChat
+essentialsHelp2=Plik jest uszkodzony i Essentials nie moze go otworzyc. Essentials jest teraz wylaczone. Jesli nie mozesz samemu naprawic pliku, wpisz /essentialshelp w grze lub idz do adresu http://tiny.cc/EssentialsChat
+essentialsReload=\u00a77Essentials przeladowalo {0}.
+extinguish=\u00a77Zostales ugaszony.
+extinguishOthers=\u00a77Ugasiles {0}.
+failedToCloseConfig=Blad podczas zamykania configu {0}
+failedToCreateConfig=Blad podczas tworzenia configu {0}
+failedToWriteConfig=Blad podczas pisania configu {0}
+false=falsz
+feed=\u00a77Twoj glod zostal zaspokojony.
+feedOther=\u00a77Nakarmiono {0}.
+fileRenameError=Blad podczas zmiany nazwy pliku \u0093{0}\u0094.
+flyMode=\u00a77Latanie {0} dla {1}.
+foreverAlone=\u00a7cNie masz komu odpisac.
+freedMemory=Zwolniono {0} MB.
+gameMode=\u00a77Ustawiono tryb gry {0} dla {1}.
+gcchunks= chunki
+gcentities= jednostki
+gcfree=Wolna pamiec: {0} MB
+gcmax=Maksymalna pamiec: {0} MB
+gctotal=Alokowana pamiec: {0} MB
+geoIpUrlEmpty=Url pobierania GeoIP jest puste.
+geoIpUrlInvalid=Url pobierania GeoIP jest nieprawidlowe.
+geoipJoinFormat=Gracz {0} przybyl z {1}
+godDisabledFor=Godmode wylaczony dla {0}.
+godEnabledFor=Godmode wlaczony dla {0}.
+godMode=\u00a77Godmode {0}.
+haveBeenReleased=\u00a77Zostales wypuszczony.
+heal=\u00a77Uleczony
+healOther=\u00a77Uleczono {0}.
+helpConsole=Aby uzyskac pomoc z konsoli, wpisz \u0093????.
+helpFrom=\u00a77Komendy od {0}:
+helpLine=\u00a76/{0}\u00a7f: {1}
+helpMatching=\u00a77Komendy odpowiadajace "{0}":
+helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
+helpPages=Strona \u00a7c{0}\u00a7f z \u00a7c{1}\u00a7f:
+helpPlugin=\u00a74{0}\u00a7f: Plugin Help: /help {1}
+holeInFloor=Czarna dziura
+homeSet=\u00a77Posterunek ustawiono
+homeSetToBed=\u00a77Twoj posterunek znajduje sie teraz w tym lozku.
+homes=Posterunki: {0}
+hour=godzina
+hours=godziny
+ignorePlayer=Od tej chwili ignorujesz gracza {0}.
+illegalDate=Illegal date format.
+infoChapter=Wybierz rozdzial:
+infoChapterPages=Rozdzial {0}, strona \u00a7c{1}\u00a7f z \u00a7c{2}\u00a7f:
+infoFileDoesNotExist=Plik \u0093info.txt\u0094 nie istnieje. Tworzenie tego pliku.
+infoPages=\u00a7e ---- \u00a76{2} \u00a7e--\u00a76 Page \u00a74{0}\u00a76/\u00a74{1} \u00a7e----
+infoUnknownChapter=Nieznany rozdzial.
+invBigger=Ekwipunek innego gracza jest wiekszy niz Twoj.
+invRestored=Twoj ekwipunek zostal przywrocony.
+invSee=Widzisz ekwipunek {0}.
+invSeeHelp=Wpisz /invsee aby przywrocic swoj ekwipunek.
+invalidCharge=\u00a7cInvalid charge.
+invalidHome=Posterunek {0} nie istnieje.
+invalidMob=Niepoprawny typ moba..
+invalidServer=Niepoprawny serwer!
+invalidSignLine=Linijka {0} na znaku jest bledna.
+invalidWorld=\u00a7cNieprawidlowy swiat.
+inventoryCleared=\u00a77Ekwipunek oprozniony.
+inventoryClearedOthers=\u00a77Ekwipunek \u00a7c{0}\u00a77 oprozniony.
+is=jest
+itemCannotBeSold=Nie mozesz sprzedac tego przedmiotu do serwera.
+itemMustBeStacked=Przedmiotem handluje sie w stackach. Wielkosc 2s to dwa stacki itd.
+itemNotEnough1=\u00a7cMasz za malo tego przedmiotu, aby go sprzedac.
+itemNotEnough2=\u00a77Jesli chcesz sprzedac wszystkie przedmioty tego typu, wpisz /sell nazwaprzedmiotu
+itemNotEnough3=\u00a77/sell nazwaprzedmiotu -1 sprzeda cala ilosc przedmiotu poza 1 sztuka itd.
+itemSellAir=Serio probujesz sprzedac powietrze? Miej w reku przedmiot..
+itemSold=\u00a77Sprzedamo za \u00a7c{0} \u00a77({1} {2} po {3} kazdy)
+itemSoldConsole={0} Sprzedano {1} za \u00a77{2} \u00a77({3} sztuki po {4} kazda)
+itemSpawn=\u00a77Otrzymywanie {0} {1}
+itemsCsvNotLoaded=Nie mozna wczytac items.csv.
+jailAlreadyIncarcerated=\u00a7cTen gracz jest juz w wiezieniu \u0093{0}\u0094.
+jailMessage=\u00a7cZa kazde przewinienie czeka kara.
+jailNotExist=Nie ma takiego wiezienia..
+jailReleased=\u00a77Gracz \u00a7e{0}\u00a77 wypuszczony z wiezienia.
+jailReleasedPlayerNotify=\u00a77Zostales zwolniony!
+jailSentenceExtended=Czas pobyty w wiezieniu zwiekszony do: {0)
+jailSet=\u00a77Zostalo stworzone wiezienie \u0093{0}\u0094.
+jumpError=That would hurt your computer''s brain.
+kickedAll=\u00a7cKicked all players from server
+kickDefault=Zostales wyproszony z serwera.
+kickExempt=\u00a7cNie mozesz wyprosic tej osoby.
+kill=\u00a77Zabito {0}.
+kitError2=\u00a7cTen zestaw nie istnieje lub zostal zle zdefininowany.
+kitError=\u00a7cNie ma prawidlowych zestawow.
+kitErrorHelp=\u00a7cByc moze przedmiotowi brakuje ilosci w konfiguracji?
+kitGive=\u00a77Przydzielanie zestawu {0}.
+kitInvFull=\u00a7cTwoj ekwipuek jest pelen, wykladanie zestawu na podloge.
+kitTimed=\u00a7cNie mozesz uzyc tego zestawu przez kolejne {0}.
+kits=\u00a77Zestawy: {0}
+lightningSmited=\u00a77Zostales zdzielony piorunem.
+lightningUse=\u00a77Uderzanie piorunem {0}.
+listAfkTag = \u00a77[AFK]\u00a7f
+listAmount = \u00a79Na serwerze jest \u00a7c{0}\u00a79 graczy z maksimum \u00a7c{1}\u00a79 online.
+listAmountHidden = \u00a79There are \u00a7c{0}\u00a77/{1}\u00a79 out of maximum \u00a7c{2}\u00a79 players online.
+listGroupTag={0}\u00a7f:
+listHiddenTag = \u00a77[HIDDEN]\u00a7f
+loadWarpError=Blad przy wczytywaniu Warpu {0}
+localFormat=Local: <{0}> {1}
+mailClear=\u00a7cAby oczyscic skrzynke, wpisz /mail clear
+mailCleared=\u00a77Skrzynka oprozniona!!
+mailSent=\u00a77Wiadomosc wyslana!
+markMailAsRead=\u00a7cAby oczyscic skrzynke, wpisz /mail clear
+markedAsAway=\u00a77Zostales oznaczony jako nieobecny.
+markedAsNotAway=\u00a77Juz nie jestes nieobecny.
+maxHomes=Nie mozesz ustawic wiecej niz {0} posterunkow.
+mayNotJail=\u00a7cNie mozesz wtracic do wiezienia tej osoby.
+me=ja
+minute=minuta
+minutes=minuty
+missingItems=Nie masz {0}x{1}.
+missingPrefixSuffix=Missing a prefix or suffix for {0}
+mobSpawnError=Blad podczas zmiany spawnera.
+mobSpawnLimit=Ilosc mobow ograniczona do limitu serwera.
+mobSpawnTarget=Blok musi byc spawnerem.
+mobsAvailable=\u00a77Moby: {0}
+moneyRecievedFrom=\u00a7a{0} otrzymane od {1}
+moneySentTo=\u00a7a{0} zostalo wyslane do {1}
+moneyTaken={0} zostalo zabrane z Twoich funduszy..
+month=miesiac
+months=miesiecy
+moreThanZero=Ilosc musi byc wieksza od 0.
+msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
+muteExempt=\u00a7cNie mozesz wyciszyc tego gracza..
+mutedPlayer=Player {0} wyciszony.
+mutedPlayerFor=Player {0} wyciszony na {1}.
+mutedUserSpeaks={0} probowal sie odezwac, ale jest wyciszony.
+nearbyPlayers=Gracze w poblizu: {0}
+negativeBalanceError=Gracz nie moze miec ujemnego stanu konta.
+nickChanged=Nick zmieniony.
+nickDisplayName=\u00a77Musisz wlaczyc \u0093change-displayname\u0094 w configu Essential.
+nickInUse=\u00a7cTen nick jest juz w uzyciu.
+nickNamesAlpha=\u00a7cNicki musza byc alfanumeryczne.
+nickNoMore=\u00a77Nie masz juz nicku.
+nickOthersPermission=\u00a7cNie masz uprawnienia do zmiany nicku innym.
+nickSet=\u00a77Twoj nick od teraz to \u00a7c{0}
+noAccessCommand=\u00a7cNie masz dostepu do tej komendy.
+noAccessPermission=\u00a7cNie masz uprawnien do dostepu do {0}.
+noBreakBedrock=Nie masz uprawnien do niszczenia bedrocka.
+noDestroyPermission=\u00a7cNie masz uprawnien do niszczenia {0}.
+noGodWorldWarning=\u00a7cUwaga! Godmode wylaczony w tym swiecie!.
+noHelpFound=\u00a7cNie ma odpowiadajacych komend.
+noHomeSet=Nie masz ustawionego posterunku.
+noHomeSetPlayer=Gracz nie ma ustawionego posterunku.
+noKitPermission=\u00a7cMusisz posiadac uprawnienia \u00a7c{0}\u00a7c aby uzywac tego zestawu.
+noKits=\u00a77Nie ma jeszcze dostepnych zestawow.
+noMail=Nie masz zadnych wiadomosci.
+noMotd=\u00a7cNie ma wiadomosci dnia..
+noNewMail=\u00a77Nie masz zadnych nowych wiadomosci.
+noPendingRequest=You do not have a pending request.
+noPerm=\u00a7cNie masz uprawnien \u00a7f{0}.
+noPermToSpawnMob=\u00a7cNie masz uprawnien do tworzenia tego moba..
+noPlacePermission=\u00a7cNie masz uprawnien do stawiania bloku kolo tego znaku..
+noPowerTools=Nie masz przypisanego zadnego power tool.
+noRules=\u00a7cNie ustalono jeszcze zadnych zasad.
+noWarpsDefined=Nie ma zadnych warpow.
+none=zaden
+notAllowedToQuestion=\u00a7cNie mozesz zadac tego pytania.
+notAllowedToShout=\u00a7cNie mozesz krzyczec..
+notEnoughExperience=Nie masz wystarczajaco duzo doswiadczenia.
+notEnoughMoney=Nie masz tyle pieniedzy.
+notRecommendedBukkit= * ! * Wersja Bukkita nie jest rekomendowana wersja dla Essentials.
+notSupportedYet=Jeszcze nie wspierane.
+nothingInHand = \u00a7cNie masz nic w reku..
+now=teraz
+nuke=Niech smierc pochlonie caly swiat!
+numberRequired=Tutaj powinna byc liczba, gluptasie.
+onlyDayNight=/time obsluguje tylko day/night.
+onlyPlayers=Tylko gracze w grze moga uzywac {0}.
+onlySunStorm=/weather obsluguje tylko sun/storm.
+orderBalances=Ordering balances of {0} users, please wait ...
+pTimeCurrent=Czas \u00a7e{0} u00a7f to {1}.
+pTimeCurrentFixed=Czas \u00a7e{0}\u00a7f przywrocony do {1}.
+pTimeNormal=Czas \u00a7e{0}'s\u00a7f jest normalny i odpowiada serwerowemu.
+pTimeOthersPermission=\u00a7cNie masz uprawnien do zmiany czasu innym.
+pTimePlayers=Ci gracze beda miec wlasny czas:
+pTimeReset=Czas gracza zostal zresetowany dla \u00a7e{0}
+pTimeSet=Czas gracza ustawiony na \u00a73{0}\u00a7f dla \u00a7e{1}
+pTimeSetFixed=Czas gracza przywrocony do \u00a73{0}\u00a7f dla \u00a7e{1}
+parseError=Blad skladniowy {0} w linii {1}.
+pendingTeleportCancelled=\u00a7cOczekujace zapytanie teleportacji odrzucone.
+permissionsError=Brakuje Permissions/GroupManager; prefixy/suffixy czatu zostana wylaczone.
+playerBanned=\u00a7c{0} zbanowal {1} za {2}.
+playerInJail=\u00a7cGracz jest juz w wiezieniu \u0093{0}\u0094.
+playerJailed=\u00a77Gracz {0} wtracony do wiezienia.
+playerJailedFor= \u00a77Gracz {0} wtracony do wiezienia na {1}.
+playerKicked=\u00a7c{0} wywalil {1} za {2}.
+playerMuted=\u00a77Zostales wyciszony.
+playerMutedFor=\u00a77Zostales wyciszony na {0}.
+playerNeverOnServer=\u00a7cGracz {0} nigdy nie byl na tym serwerze.
+playerNotFound=\u00a7cNie odnaleziono gracza.
+playerUnmuted=\u00a77Zostales przywrocony do glosu.
+pong=Pong!
+possibleWorlds=\u00a77Mozliwe swiaty maja numery od 0 do {0}.
+powerToolAir=Nie zartuj, chcesz przypisac polecenie do powietrza?
+powerToolAlreadySet=Polecenie \u00a7c{0}\u00a7f jest juz przypisane do {1}.
+powerToolAttach=\u00a7c{0}\u00a7f polecenie przypisane do {1}.
+powerToolClearAll=Wszystkie przypisane polecenia zostaly usuniete!
+powerToolList={1} zawiera nastepujace polecenia: \u00a7c{0}\u00a7f.
+powerToolListEmpty={0} nie ma przypisanych polecen.
+powerToolNoSuchCommandAssigned=Polecenie \u00a7c{0}\u00a7f nie moze byc przypisane do {1}.
+powerToolRemove=Polecenie \u00a7c{0}\u00a7f usuniete z {1}.
+powerToolRemoveAll=Wszystkie polecenia zostaly usuniete z {0}.
+powerToolsDisabled=Wszystkie twoje podpiecia zostaly zdezaktywowane.
+powerToolsEnabled=Wszystkie twoje podpiecia zostaly aktywowane.
+protectionOwner=\u00a76[EssentialsProtect] Wlasciciel zabezpieczen: {0}
+questionFormat=\u00a77[Question]\u00a7f {0}
+readNextPage=Wpisz /{0} {1} aby przeczytac nastepna strone
+reloadAllPlugins=\u00a77Przeladowano wszystkie wtyczki
+removed=\u00a77Usunieto {0} byty.
+repair=Udalo sie naprawic twoj: \u00a7e{0}.
+repairAlreadyFixed=\u00a77Ten przedmiot nie potrzebuje naprawy
+repairEnchanted=\u00a77Nie masz zezwolenia do naprawiania ulepszonych przedmiotow.
+repairInvalidType=\u00a7cTen przedmiot nie moze byc naprawiony.
+repairNone=Zaden przedmiot nie wymagal naprawy.
+requestAccepted=\u00a77Zadanie teleportacji - zaakceptowano.
+requestAcceptedFrom=\u00a77{0} zaakceptowal Twoje zadanie teleportacji.
+requestDenied=\u00a77Zadanie teleportacji - odrzucone.
+requestDeniedFrom=\u00a77{0} odrzucil Twoje zadanie teleportacji.
+requestSent=\u00a77zZadanie wyslania do {0}\u00a77.
+requestTimedOut=\u00a7cZadanie teleportacji - przedawnione.
+requiredBukkit= * ! * Potrzebujesz ostatniego {0} CraftBukkit-a, pobierz go z http://dl.bukkit.org/downloads/craftbukkit/
+returnPlayerToJailError=Wystapil blad podczas powrotu gracza {0} do wiezienia: {1}
+second=sekunda
+seconds=sekund
+seenOffline=Gracz {0} jest offline od {1}
+seenOnline=Gracz {0} jest online od {1}
+serverFull=Serwer jest pelen graczy, sprobuj pozniej.
+serverTotal=Podsumowanie serwera: {0}
+setSpawner=Ustawiono spawn na {0}.
+sheepMalformedColor=Niewlasciwa barwa.
+shoutFormat=\u00a77[Shout]\u00a7f {0}
+signFormatFail=\u00a74[{0}]
+signFormatSuccess=\u00a71[{0}]
+signFormatTemplate=[{0}]
+signProtectInvalidLocation=\u00a74Nie masz zezwolenia do tworzenia tutaj znakow.
+similarWarpExist=Warp o identycznej nazwie juz istnieje.
+slimeMalformedSize=Niewlasciwy rozmiar.
+soloMob=Ten mob lubi byc sam.
+spawnSet=\u00a77Ustawiono punkt spawnu dla grupy {0}.
+spawned=stworzono
+sudoExempt=Nie mozesz podniesc uprawnien tego uzytkownika.
+sudoRun=Probuje {0} uruchomic: /{1} {2}
+suicideMessage=\u00a77Zegnaj okrutny swiecie.
+suicideSuccess= \u00a77{0} dokonal zamachu na swoje zycie
+survival=survival
+takenFromAccount=\u00a7c{0} zostalo pobrane z konta.
+takenFromOthersAccount=\u00a7c{0} zostalo pobrane z {1}\u00a7c konta. Nowy stan konta: {2}
+teleportAAll=\u00a77Zadanie teleportacji - wyslano do wszystkich graczy.
+teleportAll=\u00a77Teleportowanie wszystkich graczy.
+teleportAtoB=\u00a77{0}\u00a77 przeteleportowal Ciebie do {1}\u00a77.
+teleportDisabled={0} ma zdezaktywowana teleportacje.
+teleportHereRequest=\u00a7c{0}\u00a7c ma zadanie przeteleportowac cie do nich.
+teleportNewPlayerError=Blad przy teleportowniu nowego gracza.
+teleportRequest=\u00a7c{0}\u00a7c zazadal teleportacji do Ciebie.
+teleportRequestTimeoutInfo=\u00a77 Zadanie teleportacji przedawni sie za {0} sekund.
+teleportTop=\u00a77Teleportacja na wierzch.
+teleportationCommencing=\u00a77Teleport rozgrzewa sie...
+teleportationDisabled=\u00a77Teleportacja - zdezaktywowana.
+teleportationEnabled=\u00a77Teleportacja - aktywowana.
+teleporting=\u00a77Teleportacja...
+teleportingPortal=\u00a77Teleportacja przez portal.
+tempBanned=Tymczasowo zbanowany na serwerze przez {0}.
+tempbanExempt=\u00a77Nie mozesz tymczasowo zbanowac tego gracza.
+thunder= {0} przywowlal burze.
+thunderDuration={0} przywolal burze na {1} sekund.
+timeBeforeHeal=Czas przed nastepnym uzdrowieniem: {0}.
+timeBeforeTeleport=Czas przed nastepnym teleportem:{0}.
+timeFormat=\u00a73{0}\u00a7f or \u00a73{1}\u00a7f or \u00a73{2}\u00a7f
+timePattern=(?:([0-9]+)\\s*y[a-z]*[,\\s]*)?(?:([0-9]+)\\s*mo[a-z]*[,\\s]*)?(?:([0-9]+)\\s*w[a-z]*[,\\s]*)?(?:([0-9]+)\\s*d[a-z]*[,\\s]*)?(?:([0-9]+)\\s*h[a-z]*[,\\s]*)?(?:([0-9]+)\\s*m[a-z]*[,\\s]*)?(?:([0-9]+)\\s*(?:s[a-z]*)?)?
+timeSet=Czas ustawiono we wszystkich swiatach.
+timeSetPermission=\u00a7cNie masz uprawnien do ustawiania czasu.
+timeWorldCurrent=Obecny czas {0} to \u00a73{1}.
+timeWorldSet=Czas ustawiono {0} w: \u00a7c{1}.
+tradeCompleted=\u00a77Handel zakonczono.
+tradeSignEmpty=Tabliczka handlowa nie jest dostepna dla Ciebie.
+tradeSignEmptyOwner=Nie ma nic do pobrania z tej tabliczki.
+treeFailure=\u00a7cUtworzenie drzewa nie powiodlo sie, sprobuj na trawie lub ziemi.
+treeSpawned=\u00a77Drzewo utworzono.
+true=prawda
+typeTpaccept=\u00a77Aby zaakceptowac teleport, wpisz \u00a7c/tpaccept\u00a77.
+typeTpdeny=\u00a77Aby odmowic teleportacji, wpisz \u00a7c/tpdeny\u00a77.
+typeWorldName=\u00a77Mozesz rowniez wpisac nazwe danego swiata.
+unableToSpawnMob=Nie udalo sie stworzyc potwora.
+unbannedIP=Odbanowana gracza o danym adresie IP.
+unbannedPlayer=Odbanowano gracza.
+unignorePlayer=Nie ignorujesz juz gracza {0}.
+unknownItemId=Nieznane id przedmiotu: {0}.
+unknownItemInList=Nieznany przedmiot {0} w liscie {1} .
+unknownItemName=Nieznana nazwa przedmiotu: {0}.
+unlimitedItemPermission=\u00a7cBrak uprawnien dla nielimitowanego przedmiotu {0}.
+unlimitedItems=Nielimitowane przedmioty:
+unmutedPlayer=Gracz {0} moze znowu mowic.
+upgradingFilesError=Wystapil blad podczas upgradu plikow.
+userDoesNotExist=Uzytkownik {0} nie istnieje w bazie danych.
+userIsAway={0} jest teraz AFK.
+userIsNotAway={0} nie jest juz AFK.
+userJailed=\u00a77Zostales skazany.
+userUsedPortal={0} uzyl istniejacego portalu wyjscia.
+userdataMoveBackError=Nie udalo sie przeniesc userdata/{0}.tmp do userdata/{1}
+userdataMoveError=Nie udalo sie przeniesc userdata/{0} do userdata/{1}.tmp
+usingTempFolderForTesting=Uzywam tymczasowego folderu dla testu:
+versionMismatch=Niepoprawna wersja! Prosze ulepszyc {0} do tej samej wersji co inne pliki.
+versionMismatchAll=Niepoprawna wersja! Prosze ulepszyc wszystkie pliki Essentials do tej samej wersji.
+voiceSilenced=\u00a77Twe usta zostaly zaszyte.
+warpDeleteError=Wystapil problem podczas usuwania pliku z Warpami.
+warpListPermission=\u00a7cNie masz pozwolenia na sprawdzenie listy Warpow..
+warpNotExist=Ten Warp nie istnieje.
+warpOverwrite=\u00a7cNie mozesz nadpisac tego Warpa.
+warpSet=\u00a77Warp {0} stworzony.
+warpUsePermission=\u00a7cNie masz pozwolenie na korzystanie z tego Warpa.
+warpingTo=\u00a77Teleportuje do {0}.
+warps=Warpy: {0}
+warpsCount=\u00a77Istnieje {0} warpow. Pokazuje strone {1} z {2}.
+weatherStorm=\u00a77Ustawiles burzowa pogode w {0}.
+weatherStormFor=\u00a77Ustawiles burzowa pogode w {0} na {1} sekund.
+weatherSun=\u00a77Ustawiles bezchmurna pogode w {0}.
+weatherSunFor=\u00a77Ustawiles bezchmurna pogode w {0} na {1} sekund.
+whoisBanned=\u00a79 - Zbanowany: {0}.
+whoisExp=\u00a79 - Punkty Doswiadczenia: {0} (Poziom {1}).
+whoisGamemode=\u00a79 - Tryb Gry: {0}.
+whoisGeoLocation=\u00a79 - Lokacja: {0}.
+whoisGod=\u00a79 - Godmode: {0}.
+whoisHealth=\u00a79 - Zycie: {0}/20.
+whoisIPAddress=\u00a79 - Adres IP: {0}.
+whoisIs={0} jest {1}.
+whoisJail=\u00a79 - W wiezieniu: {0}.
+whoisLocation=\u00a79 - Lokacja: ({0}, {1}, {2}, {3})
+whoisMoney=\u00a79 - Pieniadze: {0}.
+whoisOP=\u00a79 - OP: {0}
+whoisStatusAvailable=\u00a79 - Status: Dostepny
+whoisStatusAway=\u00a79 - Status: \u00a7cNieobecny\u00a7f
+worth=\u00a77Stack {0} jest warty \u00a7c{1}\u00a77 ({2}rzedmiot(y) po {3} kazdy)
+worthMeta=\u00a77Stack {0} z metadata {1} jest warty \u00a7c{2}\u00a77 ({3} przedmiot(y) po {4} kazdy)
+worthSet=Cena przedmiotu ustawiona.
+year=rok
+years=lat
+youAreHealed=\u00a77Zostales/las uleczony/na.
+youHaveNewMail=\u00a7cMasz {0} wiadomosci!\u00a7f napisz \u00a77/mail read\u00a7f aby je przeczytac.
diff --git a/Essentials/src/messages_pt.properties b/Essentials/src/messages_pt.properties
new file mode 100644
index 000000000..d12876d1a
--- /dev/null
+++ b/Essentials/src/messages_pt.properties
@@ -0,0 +1,425 @@
+#version: TeamCity
+# Single quotes have to be doubled: ''
+# Translations start here
+# by: FurmigaHumana, completed by Iaccidentally
+action=* {0} {1}
+addedToAccount=\u00a7a{0} foi adicionado a sua conta.
+addedToOthersAccount=\u00a7a{0} adicionado a {1}\u00a7a saldo. Novo saldo: {2}
+alertBroke=Quebrou:
+alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} em: {3}
+alertPlaced=Colocou:
+alertUsed=Usou:
+autoAfkKickReason=Voc\u00ea foi kickado por estar inativo a mais de {0} minutos.
+backAfterDeath=\u00a77Use o comando /back para voltar onde morreu.
+backUsageMsg=\u00a77Retornando a posi\u00e7ao anterior...
+backupDisabled=Um script de backup externo nao foi configurado.
+backupFinished=Backup conclu\u00eddo
+backupStarted=Backup iniciado
+balance=\u00a77Saldo: {0}
+balanceTop=\u00a77 Saldos superiores ({0})
+banExempt=\u00a7cVoc\u00ea nao pode banir este jogador.
+banIpAddress=\u00a77Endere\u00e7o de IP banido
+bannedIpsFileError=Erro ao ler o arquivo banned-ips.txt
+bannedIpsFileNotFound=banned-ips.txt nao encontrado
+bannedPlayersFileError=Erro ao ler o arquivo banned-players.txt
+bannedPlayersFileNotFound=banned-players.txt nao encontrado
+bigTreeFailure=\u00a7cFalha na gera\u00e7ao da \u00e1rvore grande. Tente de novo na terra ou grama.
+bigTreeSuccess= \u00a77\u00c1rvore grande gerada.
+blockList=Essentials passou o seguinte comando a outro plugin:
+broadcast=[\u00a7cBroadcast\u00a7f]\u00a7a {0}
+buildAlert=\u00a7cVoc\u00ea nao tem permissao de construir.
+bukkitFormatChanged=Bukkit: formato da versao alterada. Versao nao verificada.
+burnMsg=\u00a77Voc\u00ea {0} foi incendiado por {1} segundos.
+canTalkAgain=\u00a77Voc\u00ea pode falar de novo
+cantFindGeoIpDB=Nao foi poss\u00edvel encontrar o GeoIP database!
+cantReadGeoIpDB=Falhou em ler a GeoIP database!
+cantSpawnItem=\u00a7cVoc\u00ea nao tem permissao de pegar este item {0}
+chatTypeLocal=[L]
+chatTypeSpy=[Spy]
+commandFailed=Comando {0} falhou:
+commandHelpFailedForPlugin=Erro ao obter ajuda para: {0}
+commandNotLoaded=\u00a7cCommando {0} provavelmente esta carregado.
+compassBearing=\u00a77Inclina\u00e7ao: {0} ({1} graus).
+configFileMoveError=Falha ao mover arquivo config.yml ao local de backup.
+configFileRenameError=Falha em renomear arquivo temporario em config.yml
+connectedPlayers=Jogadores conectados:
+connectionFailed=Falha ao abrir conexao.
+cooldownWithMessage=\u00a7cTempo de espera: {0}
+corruptNodeInConfig=\u00a74Aviso: Seu arquivo de configura\u00e7ao tem uma parte {0} corrompida.
+couldNotFindTemplate=Nao foi poss\u00edvel encontrar o modelo {0}
+creatingConfigFromTemplate=Criando arquivo de configura\u00e7ao com o modelo: {0}
+creatingEmptyConfig=Criando arquivo de configura\u00e7ao vazio: {0}
+creative=creative
+currency={0}{1}
+currentWorld=Current World: {0}
+day=dia
+days=dias
+defaultBanReason=O martelo proibicao falou!
+deleteFileError=Nao \u00e9 poss\u00edvel deletar arquivo: {0}
+deleteHome=\u00a77Casa {0} foi removida.
+deleteJail=\u00a77prisao {0} foi removida.
+deleteWarp=\u00a77Warp {0} foi removido.
+deniedAccessCommand={0} Acesso negado ao comando.
+dependancyDownloaded=[Essentials] Dependencia {0} baixada com sucesso.
+dependancyException=[Essentials] Ocorreu um erro ao tentar baixar uma dependencia
+dependancyNotFound=[Essentials] Uma dependencia necess\u00e1ria nao foi encontrada. Baixando agora.
+depth=\u00a77Voc\u00ea esta no nivel do mar.
+depthAboveSea=\u00a77Voc\u00ea esta a {0} bloco(s) acima do nivel do mar.
+depthBelowSea=\u00a77Voc\u00ea esta a {0} bloco(s) abaixo do nivel do mar.
+destinationNotSet=Destino nao definido.
+disableUnlimited=\u00a77Desativada itens ilimitados de {0} para {1}.
+disabled=desativado
+disabledToSpawnMob=Desovar este mob esta desativado nas configura\u00e7\u00f5es.
+dontMoveMessage=\u00a77Teleporte vai come\u00e7ar em {0}. Nao se mova.
+downloadingGeoIp=Baixando GeoIP database ... pode demorar um pouco (Pais: 0.6 MB, Cidade: 20MB)
+duplicatedUserdata=Dado de usu\u00e1rio duplicado: {0} e {1}
+enableUnlimited=\u00a77Colocando quantidade ilimitada de {0} para {1}.
+enabled=ativado
+enchantmentApplied = \u00a77O encantamento {0} foi aplicado ao item na sua mao.
+enchantmentNotFound = \u00a7cEncantamento nao encontrado.
+enchantmentPerm = \u00a7cVoc\u00ea nao tem permissao para {0}
+enchantmentRemoved = \u00a77O encantamento {0} foi removido do item na sua mao.
+enchantments = \u00a77Encantamentos: {0}
+errorCallingCommand=Erro no comando /{0}
+errorWithMessage=\u00a7cErro: {0}
+essentialsHelp1=O arquivo esta quebrado e o essentials nao consegue abrilo. Essentials esta desativado agora. Se voc\u00ea nao consegue arrumar o arquivo, va para http://tiny.cc/EssentialsChat
+essentialsHelp2=O arquivo esta quebrado e o essentials nao consegue abrilo. Essentials esta desativado agora. Se voc\u00ea nao consegue arrumar o arquivo, tente digitar /essentialshelp no jogo ou va para http://tiny.cc/EssentialsChat
+essentialsReload=\u00a77Essentials recarregado {0}
+extinguish=\u00a77Voce se extinguiu.
+extinguishOthers=\u00a77Voce foi extinguido {0}.
+failedToCloseConfig=Falha em fechar o arquivo de configura\u00e7ao {0}
+failedToCreateConfig=Falha em criar o arquivo de configura\u00e7ao {0}
+failedToWriteConfig=Falha em escrever no arquivo de configura\u00e7ao {0}
+false=falso
+feed=\u00a77Seu apetite foi saciado.
+feedOther=\u00a77Satisfeito {0}.
+fileRenameError=Falha ao renomear o arquivo {0}.
+flyMode=\u00a77Definir o modo de voar {0} para {1}.
+foreverAlone=\u00a7cVoc\u00ea nao tem ninguem a quem responder.
+freedMemory=Livre {0} MB.
+gameMode=\u00a77Gamemode {0} definido para {1}.
+gcchunks= chunks,
+gcentities= entidades
+gcfree=Memoria livre: {0} MB
+gcmax=Mem\u00f3ria Maxima: {0} MB
+gctotal=Mem\u00f3ria alocada: {0} MB
+geoIpUrlEmpty=GeoIP url de download esta vazia.
+geoIpUrlInvalid=GeoIP url de download e invalida.
+geoipJoinFormat=Jogador {0} veio do {1}
+godDisabledFor=desativado para {0}
+godEnabledFor=ativado para {0}
+godMode=\u00a77Modo Deus {0}.
+haveBeenReleased=\u00a77Voc\u00ea foi liberado.
+heal=\u00a77Voc\u00ea foi curado.
+healOther=\u00a77Curado {0}.
+helpConsole=Para ver ajuda do console, digite ?.
+helpFrom=\u00a77Comandos a partir de {0}:
+helpLine=\u00a76/{0}\u00a7f: {1}
+helpMatching=\u00a77Comandos correspondentes "{0}":
+helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
+helpPages=P\u00e1gina \u00a7c{0}\u00a7f of \u00a7c{1}\u00a7f:
+helpPlugin=\u00a74{0}\u00a7f: Plugin Help: /help {1}
+holeInFloor=Buraco no chao
+homeSet=\u00a77Casa definida.
+homeSetToBed=\u00a77Sua casa agora esta definida a esta cama.
+homes=Casa: {0}
+hour=hora
+hours=horas
+ignorePlayer=Voc\u00ea esta ignorando o jogador {0} agora.
+illegalDate=Formato de data \u00edlegal.
+infoChapter=Selecione o cap\u00edtulo:
+infoChapterPages=Cap\u00edtulo {0}, pagina \u00a7c{1}\u00a7f de \u00a7c{2}\u00a7f:
+infoFileDoesNotExist=Arquivo info.txt nao existe. Criando um para voc\u00ea.
+infoPages=\u00a7e ---- \u00a76{2} \u00a7e--\u00a76 Page \u00a74{0}\u00a76/\u00a74{1} \u00a7e----
+infoUnknownChapter=Cap\u00edtulo desconhecido.
+invBigger=O invent\u00e1rio do outro usu\u00e1rio e maior que o seu.
+invRestored=Seu invent\u00e1rio foi restaurado.
+invSee=Voc\u00ea v\u00ea o invent\u00e1rio de {0}.
+invSeeHelp=Use /invsee para voltar ao seu invent\u00e1rio.
+invalidCharge=\u00a7cCarga invalida.
+invalidHome=Home {0} nao existe
+invalidMob=Tipo de mob inv\u00e1lido.
+invalidServer=Servidor inv\u00e1lido!
+invalidSignLine=Linha {0} da placa e inv\u00e1lida.
+invalidWorld=\u00a7cMundo inv\u00e1lido.
+inventoryCleared=\u00a77Invent\u00e1rio limpo.
+inventoryClearedOthers=\u00a77Invent\u00e1rio de \u00a7c{0}\u00a77 limpo.
+is=\u00e9
+itemCannotBeSold=Este item nao pode ser vendido para o servidor.
+itemMustBeStacked=O item deve ser negociado em pacotes. A qantidade de 2s seria dois pacotes, etc.
+itemNotEnough1=\u00a7cVoc\u00ea nao tem esta quantidade de itens para vender.
+itemNotEnough2=\u00a77Se voc\u00ea quer vender todos os itens deste tipo, use /sell NomeDoItem
+itemNotEnough3=\u00a77/sell NomeDoItem -1 vai vender tudo mais um item, etc.
+itemSellAir=Voc\u00ea realmente tentou vender ar? Coloque um item na sua mao.
+itemSold=\u00a77Vendido para \u00a7c{0} \u00a77({1} {2} a {3} cada)
+itemSoldConsole={0} vendido {1} para \u00a77{2} \u00a77({3} itens a {4} cada)
+itemSpawn=\u00a77Dando {0} de {1}
+itemsCsvNotLoaded=nao foi poss\u00edvel carregar items.csv.
+jailAlreadyIncarcerated=\u00a7cEsta pessoa j\u00e1 esta na cadeia: {0}
+jailMessage=\u00a7cVoc\u00ea faz o crime, voc\u00ea cumpre a pena.
+jailNotExist=esta cadeia nao existe.
+jailReleased=\u00a77Player \u00a7e{0}\u00a77 libertado.
+jailReleasedPlayerNotify=\u00a77Voc\u00ea foi solto!
+jailSentenceExtended=Tempo de prisao estendido para: {0)
+jailSet=\u00a77Cela {0} foi definida
+jumpError=Isso prejudica o c\u00e9rebro do seu computador.
+kickedAll=\u00a7cKicked all players from server
+kickDefault=Kickado do servidor.
+kickExempt=\u00a7cVoc\u00ea nao pode kickar esta pessoa.
+kill=\u00a77Assassinado {0}.
+kitError2=\u00a7cEsse kit nao existe ou foi definido impropiamente.
+kitError=\u00a7cNao existe kits v\u00e1lidos.
+kitErrorHelp=\u00a7cTalvez um item esta faltando a quantidade nas configura\u00e7\u00f5es?
+kitGive=\u00a77Dando kit {0}.
+kitInvFull=\u00a7cSeu invent\u00e1rio esta cheio, colocando kit no chao
+kitTimed=\u00a7cVoc\u00ea nao pode usar este kit denovo por {0}.
+kits=\u00a77Kits: {0}
+lightningSmited=\u00a77YVoc\u00ea acaba de ser castigado
+lightningUse=\u00a77Castigando {0}
+listAfkTag = \u00a77[Ausente]\u00a7f
+listAmount = \u00a79Aqui tem \u00a7c{0}\u00a79 do m\u00e1ximo de \u00a7c{1}\u00a79 jogadores online.
+listAmountHidden = \u00a79Aqui tem \u00a7c{0}\u00a77/{1}\u00a79 do maximo de \u00a7c{2}\u00a79 jogadores online.
+listGroupTag={0}\u00a7f:
+listHiddenTag = \u00a77[ESCONDIDO]\u00a7f
+loadWarpError=Falha ao carregar warp {0}
+localFormat=Local: <{0}> {1}
+mailClear=\u00a7cPara marcar seu email como lido, use /mail clear
+mailCleared=\u00a77eMail limpo!
+mailSent=\u00a77eMail enviado!
+markMailAsRead=\u00a7cPara marcar seu email como lido, use /mail clear
+markedAsAway=\u00a77[AFK] Agora voc\u00ea esta marcado como aus\u00eante.
+markedAsNotAway=\u00a77[AFK] Voc\u00ea nao esta mais marcado como aus\u00eante.
+maxHomes=Voc\u00ea nao pode definir mais de {0} casas.
+mayNotJail=\u00a7cVoc\u00ea nao pode prender esta pessoa
+me=eu
+minute=minuto
+minutes=minutos
+missingItems=Voc\u00ea nao tem {0}x {1}.
+missingPrefixSuffix=Faltando um prefixo ou sufixo para {0}
+mobSpawnError=Erro ao mudar o mob spawner.
+mobSpawnLimit=Quantidade de mob limitada pelo servidor
+mobSpawnTarget=Bloco de destino deve ser um mob spawner.
+mobsAvailable=\u00a77Mobs: {0}
+moneyRecievedFrom=\u00a7a{0} foi recebido de {1}
+moneySentTo=\u00a7a{0} foi enviado para {1}
+moneyTaken={0} tirado da sua conta.
+month=m\u00eas
+months=meses
+moreThanZero=Quantidade deve ser maior que 0.
+msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
+muteExempt=\u00a7cVoc\u00ea nao pode mutar este jogador.
+mutedPlayer=Player {0} mutado.
+mutedPlayerFor=Player {0} mutado por {1}.
+mutedUserSpeaks={0} tentou falar, mas esta mutado.
+nearbyPlayers=Jogadores por perto: {0}
+negativeBalanceError=Nao \u00e9 permitido ter um saldo negativo.
+nickChanged=Apelido modificado.
+nickDisplayName=\u00a77Voc\u00ea deve ativar change-displayname nas configura\u00e7\u00f5es do Essentials.
+nickInUse=\u00a7cEste nome j\u00e1 esta em uso.
+nickNamesAlpha=\u00a7cApelidos devem ser alfanumericos.
+nickNoMore=\u00a77Voc\u00ea nao tem mais um apelido.
+nickOthersPermission=\u00a7cVoc\u00ea nao tem permissao para mudar o apelido dos outros.
+nickSet=\u00a77Agora seu apelido \u00e9 \u00a7c{0}
+noAccessCommand=\u00a7cVoc\u00ea nao tem acesso a este comando.
+noAccessPermission=\u00a7cVoc\u00ea nao tem permissao para acessar isso {0}.
+noBreakBedrock=Voce nao tem permissao para destruir bedrock.
+noDestroyPermission=\u00a7cVoc\u00ea nao tem permissao para destruir isso {0}.
+noGodWorldWarning=\u00a7cAviso! Modo Deus neste mundo esta desativado.
+noHelpFound=\u00a7cNenhum comando correspondente.
+noHomeSet=Voc\u00ea nao definiu nenhuma casa.
+noHomeSetPlayer=Jogador nao definiu nenhuma casa.
+noKitPermission=\u00a7cVoc\u00ea precisa da permissao \u00a7c{0}\u00a7c para usar este kit.
+noKits=\u00a77Ainda nao tem nenhum item disponivel
+noMail=Voc\u00ea nao tem nenhum email
+noMotd=\u00a7cNao h\u00e1 nenhuma mensagem do dia.
+noNewMail=\u00a77Voc\u00ea nao tem nenhum novo email.
+noPendingRequest=Voc\u00ea nao tem um pedido pendente.
+noPerm=\u00a7cVoc\u00ea nao tem a permissao \u00a7f{0}\u00a7c.
+noPermToSpawnMob=\u00a7cVoc\u00ea nao tem permissao para desovar este mob.
+noPlacePermission=\u00a7cVoc\u00ea nao tem permissao de por um bloco perto daquela placa.
+noPowerTools=Voc\u00ea nao tem nenhuma super ferramenta definida.
+noRules=\u00a7cAinda nao foi definida as regras.
+noWarpsDefined=Nenhum warp definido
+none=nenhum
+notAllowedToQuestion=\u00a7cVoc\u00ea nao esta autorizado a usar pergunta.
+notAllowedToShout=\u00a7cVoc\u00ea nao esta autorizado a gritar.
+notEnoughExperience=Voc\u00ea nao tem experiencia suficiente.
+notEnoughMoney=Voc\u00ea nao tem dinheiro suficiente.
+notRecommendedBukkit=* ! * Versao do bukkit nao \u00e9 a recomendada para o essentials.
+notSupportedYet=Ainda nao suportado.
+nothingInHand = \u00a7cVoc\u00ea nao tem nada em sua mao.
+now=agora
+nuke=Pode chover a morte sobre eles
+numberRequired=Um numero vai aqui, bobinho.
+onlyDayNight=/time apenas suporta day/night.
+onlyPlayers=Apenas jogadores no jogo pode usar {0}.
+onlySunStorm=/weather apenas suporta sun/storm.
+orderBalances=Ordenando saldos de {0} usuarios, aguarde ...
+pTimeCurrent=\u00a7e{0}''s\u00a7f horario e {1}.
+pTimeCurrentFixed=\u00a7e{0}''s\u00a7f hor\u00e1rio foi fixado para {1}.
+pTimeNormal=\u00a7e{0}''s\u00a7f o tempo esta normal e sincronisado com o servidor.
+pTimeOthersPermission=\u00a7cVoc\u00ea nao esta autorisado para definir o tempo dos outros jogadores.
+pTimePlayers=Estes jogadores tem seus propios hor\u00e1rios:
+pTimeReset=Hor\u00e1rio do jogador foi recetado para: \u00a7e{0}
+pTimeSet=Hor\u00e1rio do jogador foi definido para \u00a73{0}\u00a7f por: \u00a7e{1}
+pTimeSetFixed=Hor\u00e1rio do jogador foi fixado para \u00a73{0}\u00a7f por: \u00a7e{1}
+parseError=Analise de erro {0} na linha {1}
+pendingTeleportCancelled=\u00a7cPedido de teleporte pendente cancelado.
+permissionsError=Faltando Permissions/GroupManager; chat prefixos/sufixos serao desativados.
+playerBanned=\u00a7cJogador {0} banido {1} por {2}
+playerInJail=\u00a7cJogador j\u00e1 esta na cadeia {0}.
+playerJailed=\u00a77Jogador {0} preso.
+playerJailedFor= \u00a77Player {0} condenado por {1}.
+playerKicked=\u00a7cPlayer {0} kickado {1} por {2}
+playerMuted=\u00a77Voce foi desmutado
+playerMutedFor=\u00a77Voce foi mutado por {0}
+playerNeverOnServer=\u00a7cJogador {0} nunca esteve no servidor.
+playerNotFound=\u00a7cJogador nao encontrado.
+playerUnmuted=\u00a77Foi desmutado
+pong=Pong!
+possibleWorlds=\u00a77Mundos poss\u00edveis sao 0 at\u00e9 {0}.
+powerToolAir=Comando nao pode ser definido para o ar.
+powerToolAlreadySet=Comando \u00a7c{0}\u00a7f j\u00e1 esta definido para {1}.
+powerToolAttach=\u00a7c{0}\u00a7f comando definido para {1}.
+powerToolClearAll=Todas superferramentas foram limpas.
+powerToolList={1} tem os seguintes comandos: \u00a7c{0}\u00a7f.
+powerToolListEmpty={0} nenhum comando definido.
+powerToolNoSuchCommandAssigned=Comando \u00a7c{0}\u00a7f nao foi definido para {1}.
+powerToolRemove=Comando \u00a7c{0}\u00a7f removido do {1}.
+powerToolRemoveAll=Todos comandos removidos do {0}.
+powerToolsDisabled=Todas suas super ferramentas foram habilitadas.
+powerToolsEnabled=Todas suas super ferramentas foram desabilitadas.
+protectionOwner=\u00a76[EssentialsProtect] Dono da prote\u00e7ao: {0}
+questionFormat=\u00a77[Pergunta]\u00a7f {0}
+readNextPage=Digite /{0} {1} para ler a pr\u00f3xima p\u00e1gina
+reloadAllPlugins=\u00a77Todos plugins recarregados.
+removed=\u00a77Removido {0} entidades.
+repair=Voc\u00ea reparou com sucesso sua: \u00a7e{0}.
+repairAlreadyFixed=\u00a77Esse item nao precisa ser reparado.
+repairEnchanted=\u00a77Voc\u00ea nao pode reparar itens encantados.
+repairInvalidType=\u00a7cEsse item nao pode ser reparado.
+repairNone=Nao ha itens que precisam ser reparados.
+requestAccepted=\u00a77Pedido de teleporte aceito.
+requestAcceptedFrom=\u00a77{0} aceitou seu pedido de teleporte.
+requestDenied=\u00a77Pedido de teleporte recusado.
+requestDeniedFrom=\u00a77{0} recusou seu pedido de teleporte
+requestSent=\u00a77Pedindo enviado para {0}\u00a77.
+requestTimedOut=\u00a7cPedido de teleporte passou o limite de tempo
+requiredBukkit=* ! * Voc\u00ea precisa da ultima build {0} do CraftBukkit, baixa ela em http://dl.bukkit.org/downloads/craftbukkit/
+returnPlayerToJailError=Erro ocorreu ao tentar retornar jogador {0} para a cadeia: {1}
+second=segundo
+seconds=segundos
+seenOffline=Jogador {0} esta offline desde {1}
+seenOnline=Jogador {0} esta online desde {1}
+serverFull=O servidor esta cheio
+serverTotal=Server Total: {0}
+setSpawner=Spawner modificado para {0}
+sheepMalformedColor=Cor malformada.
+shoutFormat=\u00a77[GRITAR]\u00a7f {0}
+signFormatFail=\u00a74[{0}]
+signFormatSuccess=\u00a71[{0}]
+signFormatTemplate=[{0}]
+signProtectInvalidLocation=\u00a74Voc\u00ea nao pode criar placas aqui.
+similarWarpExist=Um warp com um nome parecido j\u00e1 existe.
+slimeMalformedSize=Tamanho malformado.
+soloMob=Este mob gosta de ficar sozinho
+spawnSet=\u00a77Ponto de spawn definido para o grupo {0}.
+spawned=desovado
+sudoExempt=voce nao pode sudo este usuario
+sudoRun=Forcing {0} to run: /{1} {2}
+suicideMessage=\u00a77Adeus mundo cruel...
+suicideSuccess= \u00a77{0} tirou sua propia vida
+survival=survival
+takenFromAccount=\u00a7c{0} foi tirado da sua conta.
+takenFromOthersAccount=\u00a7c{0} tirado de {1}\u00a7c conta. Novo saldo: {2}
+teleportAAll=\u00a77Pedido de teleporte enviado a todos os jogadores...
+teleportAll=\u00a77Teleportando todos os jogadores...
+teleportAtoB=\u00a77{0}\u00a77 teleportou voc\u00ea para {1}\u00a77.
+teleportDisabled={0} tem o teleporte desativado.
+teleportHereRequest=\u00a7c{0}\u00a7c solicitou que voc\u00ea se teleporte para ele.
+teleportNewPlayerError=Falha para teleportar novo jogador
+teleportRequest=\u00a7c{0}\u00a7c solicitou para se teleportar at\u00e9 voc\u00ea.
+teleportRequestTimeoutInfo=\u00a77Este pedido vai acabar em {0} segundos.
+teleportTop=\u00a77Teleportando para o alto.
+teleportationCommencing=\u00a77Iniciando teleporte...
+teleportationDisabled=\u00a77Teleporte desativado.
+teleportationEnabled=\u00a77Teleporte ativado.
+teleporting=\u00a77Teleportando...
+teleportingPortal=\u00a77Teleportando via portal.
+tempBanned=Banido temporariamente do servidor por {0}
+tempbanExempt=\u00a77Voc\u00ea nao pode banir este jogador temporariamente
+thunder= Voc\u00ea {0} trovejou no seu mundo
+thunderDuration=Voc\u00ea {0} trovejou no seu mundo por {1} segundos.
+timeBeforeHeal=Tempo at\u00e9 a proxima cura: {0}
+timeBeforeTeleport=Tempo antes do proximo teleporte: {0}
+timeFormat=\u00a73{0}\u00a7f or \u00a73{1}\u00a7f or \u00a73{2}\u00a7f
+timePattern=(?:([0-9]+)\\s*y[a-z]*[,\\s]*)?(?:([0-9]+)\\s*mo[a-z]*[,\\s]*)?(?:([0-9]+)\\s*w[a-z]*[,\\s]*)?(?:([0-9]+)\\s*d[a-z]*[,\\s]*)?(?:([0-9]+)\\s*h[a-z]*[,\\s]*)?(?:([0-9]+)\\s*m[a-z]*[,\\s]*)?(?:([0-9]+)\\s*(?:s[a-z]*)?)?
+timeSet=Horario definido em todos os mundos.
+timeSetPermission=\u00a7cVoc\u00ea nao tem autoriza\u00e7ao para modificar o hor\u00e1rio.
+timeWorldCurrent=O hor\u00e1rio atual no mundo {0} e \u00a73{1}
+timeWorldSet=O hor\u00e1rio foi definido para {0} no: \u00a7c{1}
+tradeCompleted=\u00a77Compra concluida.
+tradeSignEmpty=A placa de troca nao tem abastecimento suficiente.
+tradeSignEmptyOwner=Nao a nada para recolher desta placa de compra.
+treeFailure=\u00a7cFalha ao gerar \u00e1rvore. Tente denovo na terra ou grama.
+treeSpawned=\u00a77\u00c1rvore gerada.
+true=verdadeiro
+typeTpaccept=\u00a77Para aceitar o teleporte, digite \u00a7c/tpaccept\u00a77.
+typeTpdeny=\u00a77Para recusar o teleporte, digite \u00a7c/tpdeny\u00a77.
+typeWorldName=\u00a77Voc\u00ea tambem pode digitar o nome do mundo.
+unableToSpawnMob=Incapaz de gerar o mob.
+unbannedIP=Endereco de IP desbanido.
+unbannedPlayer=Jogador desbanido.
+unignorePlayer=Agora voc\u00ea nao esta mais ignorando o {0}.
+unknownItemId=ID do item desconhecido: {0}
+unknownItemInList=Item desconhecido {0} em {1} lista.
+unknownItemName=Nome do item desconhecido: {0}
+unlimitedItemPermission=\u00a7cSem permissao para item ilimitado {0}.
+unlimitedItems=Item ilimitado:
+unmutedPlayer=Jogador {0} desmutado.
+upgradingFilesError=Erro ao aprimorar os arquivos
+userDoesNotExist=O usu\u00e1rio {0} nao existe.
+userIsAway=[AFK]: {0} esta aus\u00eante.
+userIsNotAway=[AFK]: {0} nao esta mais aus\u00eante.
+userJailed=\u00a77Voc\u00ea foi preso, muaha!
+userUsedPortal={0} usou um portal de saida existente.
+userdataMoveBackError=Falha ao mover userdata/{0}.tmp para userdata/{1}
+userdataMoveError=Falha ao mover userdata/{0} para userdata/{1}.tmp
+usingTempFolderForTesting=Usando pasta temporaria para teste:
+versionMismatch=Versao incompativel! Atualise o {0} para mesma versao.
+versionMismatchAll=Versao imcompativel! Atualise todos os essentials jars para mesma versao.
+voiceSilenced=\u00a77Sua voz foi silenciada
+warpDeleteError=Problema ao deletar o arquivo warp.
+warpListPermission=\u00a7cVoc\u00ea nao tem permissao para listar os warps.
+warpNotExist=Este warp nao existe.
+warpOverwrite=\u00a7cVoce nao pode substituir essa warp.
+warpSet=\u00a77Warp {0} definido.
+warpUsePermission=\u00a7cVoc\u00ea nao tem permissao para usar este warp.
+warpingTo=\u00a77Warping para {0}.
+warps=Warps: {0}
+warpsCount=\u00a77Aqui tem {0} warps. Exibindo p\u00e1gina {1} de {2}.
+weatherStorm=\u00a77Voc\u00ea modificou o tempo para chuva em {0}
+weatherStormFor=\u00a77Voc\u00ea modificou o tempo para chuva em {0} por {1} segundos
+weatherSun=\u00a77Voc\u00ea modificou o tempo para sol em {0}
+weatherSunFor=\u00a77Voc\u00ea modificou o tempo para sol em {0} por {1} segundos
+whoisBanned=\u00a79 - Banido: {0}
+whoisExp=\u00a79 - Exp: {0} (Level {1})
+whoisGamemode=\u00a79 - Gamemode: {0}
+whoisGeoLocation=\u00a79 - Localiza\u00e7ao: {0}
+whoisGod=\u00a79 - Modo Deus: {0}
+whoisHealth=\u00a79 - Sa\u00fade: {0}/20
+whoisIPAddress=\u00a79 - IP: {0}
+whoisIs={0} e {1}
+whoisJail=\u00a79 - Jail: {0}
+whoisLocation=\u00a79 - Localiza\u00e7ao: ({0}, {1}, {2}, {3})
+whoisMoney=\u00a79 - Dinheiro: {0}
+whoisOP=\u00a79 - OP: {0}
+whoisStatusAvailable=\u00a79 - Estado: Dispon\u00edvel
+whoisStatusAway=\u00a79 - Estado: \u00a7cAway\u00a7f
+worth=\u00a77Pilha de {0} vale \u00a7c{1}\u00a77 ({2} item(s) a {3} cada)
+worthMeta=\u00a77Pilha de {0} com metadados de {1} vale \u00a7c{2}\u00a77 ({3} item(s) a {4} cada)
+worthSet=Definir quanto vale
+year=ano
+years=anos
+youAreHealed=\u00a77Voc\u00ea foi curado.
+youHaveNewMail=\u00a7cVoc\u00ea tem {0} mensagens!\u00a7f Digite \u00a77/mail read\u00a7f para ver seu email.
diff --git a/Essentials/src/plugin.yml b/Essentials/src/plugin.yml
index 022143b3f..3e1dc52c0 100644
--- a/Essentials/src/plugin.yml
+++ b/Essentials/src/plugin.yml
@@ -180,7 +180,7 @@ commands:
aliases: [ekickall]
kit:
description: Obtains the specified kit or views all available kits.
- usage: /<command> [kit]
+ usage: /<command> [kit] [player]
aliases: [ekit,kits,ekits]
kill:
description: Kills specified player.
@@ -203,7 +203,7 @@ commands:
aliases: [strike,smite,thor,shock,elightning,estrike,esmite,ethor,eshock]
mail:
description: Manages inter-player, intra-server mail.
- usage: /<command> [read|clear|send [to] [message]]
+ usage: /<command> [read|clear|send [to] [message]|sendall [message]]
aliases: [email]
me:
description: Describes an action in the context of the player.
diff --git a/Essentials/test/com/earth2me/essentials/UtilTest.java b/Essentials/test/com/earth2me/essentials/UtilTest.java
index 71282a18f..2efd39e4c 100644
--- a/Essentials/test/com/earth2me/essentials/UtilTest.java
+++ b/Essentials/test/com/earth2me/essentials/UtilTest.java
@@ -44,67 +44,67 @@ public class UtilTest extends TestCase
Calendar a, b;
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 1, 1, 10, 0, 1);
- assertEquals(" 1 second", Util.formatDateDiff(a, b));
+ assertEquals("1 second", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 1, 1, 10, 0, 2);
- assertEquals(" 2 seconds", Util.formatDateDiff(a, b));
+ assertEquals("2 seconds", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 1, 1, 10, 0, 3);
- assertEquals(" 3 seconds", Util.formatDateDiff(a, b));
+ assertEquals("3 seconds", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 1, 1, 10, 1, 0);
- assertEquals(" 1 minute", Util.formatDateDiff(a, b));
+ assertEquals("1 minute", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 1, 1, 10, 2, 0);
- assertEquals(" 2 minutes", Util.formatDateDiff(a, b));
+ assertEquals("2 minutes", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 1, 1, 10, 3, 0);
- assertEquals(" 3 minutes", Util.formatDateDiff(a, b));
+ assertEquals("3 minutes", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 1, 1, 11, 0, 0);
- assertEquals(" 1 hour", Util.formatDateDiff(a, b));
+ assertEquals("1 hour", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 1, 1, 12, 0, 0);
- assertEquals(" 2 hours", Util.formatDateDiff(a, b));
+ assertEquals("2 hours", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 1, 1, 13, 0, 0);
- assertEquals(" 3 hours", Util.formatDateDiff(a, b));
+ assertEquals("3 hours", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 1, 2, 10, 0, 0);
- assertEquals(" 1 day", Util.formatDateDiff(a, b));
+ assertEquals("1 day", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 1, 3, 10, 0, 0);
- assertEquals(" 2 days", Util.formatDateDiff(a, b));
+ assertEquals("2 days", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 1, 4, 10, 0, 0);
- assertEquals(" 3 days", Util.formatDateDiff(a, b));
+ assertEquals("3 days", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 2, 1, 10, 0, 0);
- assertEquals(" 1 month", Util.formatDateDiff(a, b));
+ assertEquals("1 month", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 3, 1, 10, 0, 0);
- assertEquals(" 2 months", Util.formatDateDiff(a, b));
+ assertEquals("2 months", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 4, 1, 10, 0, 0);
- assertEquals(" 3 months", Util.formatDateDiff(a, b));
+ assertEquals("3 months", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2011, 1, 1, 10, 0, 0);
- assertEquals(" 1 year", Util.formatDateDiff(a, b));
+ assertEquals("1 year", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2012, 1, 1, 10, 0, 0);
- assertEquals(" 2 years", Util.formatDateDiff(a, b));
+ assertEquals("2 years", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2013, 1, 1, 10, 0, 0);
- assertEquals(" 3 years", Util.formatDateDiff(a, b));
+ assertEquals("3 years", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2011, 4, 5, 23, 38, 12);
- assertEquals(" 1 year 3 months 4 days 13 hours 38 minutes 12 seconds", Util.formatDateDiff(a, b));
+ assertEquals("1 year 3 months 4 days", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 9, 17, 23, 45, 45);
b = new GregorianCalendar(2015, 3, 7, 10, 0, 0);
- assertEquals(" 4 years 5 months 20 days 10 hours 14 minutes 15 seconds", Util.formatDateDiff(a, b));
+ assertEquals("4 years 5 months 20 days", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2011, 4, 31, 10, 0, 0);
b = new GregorianCalendar(2011, 4, 31, 10, 5, 0);
- assertEquals(" 5 minutes", Util.formatDateDiff(a, b));
+ assertEquals("5 minutes", Util.formatDateDiff(a, b));
}
public void testFDDpast()
@@ -112,63 +112,63 @@ public class UtilTest extends TestCase
Calendar a, b;
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 1, 1, 9, 59, 59);
- assertEquals(" 1 second", Util.formatDateDiff(a, b));
+ assertEquals("1 second", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 1, 1, 9, 59, 58);
- assertEquals(" 2 seconds", Util.formatDateDiff(a, b));
+ assertEquals("2 seconds", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 1, 1, 9, 59, 57);
- assertEquals(" 3 seconds", Util.formatDateDiff(a, b));
+ assertEquals("3 seconds", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 1, 1, 9, 59, 0);
- assertEquals(" 1 minute", Util.formatDateDiff(a, b));
+ assertEquals("1 minute", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 1, 1, 9, 58, 0);
- assertEquals(" 2 minutes", Util.formatDateDiff(a, b));
+ assertEquals("2 minutes", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 1, 1, 9, 57, 0);
- assertEquals(" 3 minutes", Util.formatDateDiff(a, b));
+ assertEquals("3 minutes", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 1, 1, 9, 0, 0);
- assertEquals(" 1 hour", Util.formatDateDiff(a, b));
+ assertEquals("1 hour", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 1, 1, 8, 0, 0);
- assertEquals(" 2 hours", Util.formatDateDiff(a, b));
+ assertEquals("2 hours", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 1, 1, 7, 0, 0);
- assertEquals(" 3 hours", Util.formatDateDiff(a, b));
+ assertEquals("3 hours", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 5, 10, 0, 0);
b = new GregorianCalendar(2010, 1, 4, 10, 0, 0);
- assertEquals(" 1 day", Util.formatDateDiff(a, b));
+ assertEquals("1 day", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 5, 10, 0, 0);
b = new GregorianCalendar(2010, 1, 3, 10, 0, 0);
- assertEquals(" 2 days", Util.formatDateDiff(a, b));
+ assertEquals("2 days", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 5, 10, 0, 0);
b = new GregorianCalendar(2010, 1, 2, 10, 0, 0);
- assertEquals(" 3 days", Util.formatDateDiff(a, b));
+ assertEquals("3 days", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 5, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 4, 1, 10, 0, 0);
- assertEquals(" 1 month", Util.formatDateDiff(a, b));
+ assertEquals("1 month", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 5, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 3, 1, 10, 0, 0);
- assertEquals(" 2 months", Util.formatDateDiff(a, b));
+ assertEquals("2 months", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 5, 1, 10, 0, 0);
b = new GregorianCalendar(2010, 2, 1, 10, 0, 0);
- assertEquals(" 3 months", Util.formatDateDiff(a, b));
+ assertEquals("3 months", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2009, 1, 1, 10, 0, 0);
- assertEquals(" 1 year", Util.formatDateDiff(a, b));
+ assertEquals("1 year", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2008, 1, 1, 10, 0, 0);
- assertEquals(" 2 years", Util.formatDateDiff(a, b));
+ assertEquals("2 years", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2007, 1, 1, 10, 0, 0);
- assertEquals(" 3 years", Util.formatDateDiff(a, b));
+ assertEquals("3 years", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 1, 1, 10, 0, 0);
b = new GregorianCalendar(2009, 4, 5, 23, 38, 12);
- assertEquals(" 8 months 26 days 10 hours 21 minutes 48 seconds", Util.formatDateDiff(a, b));
+ assertEquals("8 months 26 days 10 hours", Util.formatDateDiff(a, b));
a = new GregorianCalendar(2010, 9, 17, 23, 45, 45);
b = new GregorianCalendar(2000, 3, 7, 10, 0, 0);
- assertEquals(" 10 years 6 months 10 days 13 hours 45 minutes 45 seconds", Util.formatDateDiff(a, b));
+ assertEquals("10 years 6 months 10 days", Util.formatDateDiff(a, b));
}
}
diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayer.java b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayer.java
index ddf928725..6bdab0919 100644
--- a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayer.java
+++ b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayer.java
@@ -126,20 +126,19 @@ public abstract class EssentialsChatPlayer implements Listener
}
if (!onlineUser.equals(sender))
{
- final Location playerLoc = onlineUser.getLocation();
- if (playerLoc.getWorld() != world)
+ if (onlineUser.isAuthorized("essentials.chat.spy"))
{
- continue;
+ type = type.concat(_("chatTypeSpy"));
}
- final double delta = playerLoc.distanceSquared(loc);
-
- if (delta > chatStore.getRadius())
+ else
{
- if (onlineUser.isAuthorized("essentials.chat.spy"))
+ final Location playerLoc = onlineUser.getLocation();
+ if (playerLoc.getWorld() != world)
{
- type = type.concat(_("chatTypeSpy"));
+ continue;
}
- else
+ final double delta = playerLoc.distanceSquared(loc);
+ if (delta > chatStore.getRadius())
{
continue;
}
diff --git a/EssentialsGroupManager/src/globalgroups.yml b/EssentialsGroupManager/src/globalgroups.yml
index a08f9600e..04b670ae7 100644
--- a/EssentialsGroupManager/src/globalgroups.yml
+++ b/EssentialsGroupManager/src/globalgroups.yml
@@ -114,24 +114,33 @@ groups:
- essentials.balance.others
- essentials.balancetop
- essentials.chat.color
+ - essentials.chat.format
- essentials.chat.shout
- essentials.chat.question
- essentials.compass
+ - essentials.delhome
- essentials.depth
+ - essentials.getpos
- essentials.home
- essentials.ignore
+ - essentials.itemdb
- essentials.kit
- essentials.kit.tools
- essentials.mail
- essentials.mail.send
- essentials.me
- essentials.msg
+ - essentials.msg.color
+ - essentials.msg.format
- essentials.nick
- essentials.pay
- essentials.ping
- essentials.powertool
+ - essentials.powertooltoggle
- essentials.protect
+ - essentials.seen
- essentials.sethome
+ - essentials.sethome.multiple
- essentials.signs.use.*
- essentials.signs.create.disposal
- essentials.signs.create.mail
@@ -153,15 +162,21 @@ groups:
g:essentials_moderator:
permissions:
+ - -essentials.spawner.enderdragon
+ - essentials.afk.kickexempt
- essentials.ban
- essentials.ban.notify
- essentials.banip
- essentials.broadcast
+ - essentials.chat.url
+ - essentials.chat.magic
- essentials.clearinventory
- essentials.delwarp
- essentials.eco.loan
- essentials.ext
+ - essentials.fly
- essentials.getpos
+ - essentials.getpos.others
- essentials.helpop.recieve
- essentials.home.others
- essentials.invsee
@@ -170,13 +185,19 @@ groups:
- essentials.kick
- essentials.kick.notify
- essentials.kill
+ - essentials.kit.*
+ - essentials.msg.magic
- essentials.mute
+ - essentials.nick.color
- essentials.nick.others
- essentials.realname
+ - essentials.seen.banreason
+ - essentials.seen.extra
- essentials.setwarp
- essentials.signs.create.*
- essentials.signs.break.*
- essentials.spawner
+ - essentials.spawner.*
- essentials.thunder
- essentials.time
- essentials.time.set
@@ -188,6 +209,7 @@ groups:
- essentials.togglejail
- essentials.top
- essentials.tp
+ - essentials.tp.others
- essentials.tphere
- essentials.tppos
- essentials.tptoggle
@@ -196,6 +218,7 @@ groups:
- essentials.weather
- essentials.whois
- essentials.world
+ - essentials.world.*
g:essentials_admin:
permissions:
@@ -283,4 +306,4 @@ groups:
permissions:
- vanish.silentjoin
- vanish.silentquit
- - vanish.silentchests \ No newline at end of file
+ - vanish.silentchests
diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java
index 1868e20c1..7e558eb81 100644
--- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java
+++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java
@@ -194,7 +194,7 @@ public class EssentialsProtectEntityListener implements Listener
@EventHandler(priority = EventPriority.HIGHEST)
public void onEntityExplode(final EntityExplodeEvent event)
{
- if (event.isCancelled())
+ if (event.isCancelled() || event.getEntity() == null)
{
return;
}
diff --git a/lib/bukkit.jar b/lib/bukkit.jar
index 912400ba3..54f4c9ede 100644
--- a/lib/bukkit.jar
+++ b/lib/bukkit.jar
Binary files differ
diff --git a/lib/craftbukkit.jar b/lib/craftbukkit.jar
index 815d0a929..c3a206bb1 100644
--- a/lib/craftbukkit.jar
+++ b/lib/craftbukkit.jar
Binary files differ