summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKHobbits <rob@khobbits.co.uk>2012-08-28 02:55:02 +0100
committerKHobbits <rob@khobbits.co.uk>2012-08-28 02:55:02 +0100
commitd201286fc54719bfb22e3a4028b065baeb97f23e (patch)
treed29d630384bd7244061d67977cbaeaf25c966073
parent44e9c6ebfc2bb6c86f61e46d03574920d5e2fddb (diff)
parent12b527be993a3f12f37f5e97c1d0b40095d4efbb (diff)
downloadEssentials-d201286fc54719bfb22e3a4028b065baeb97f23e.tar
Essentials-d201286fc54719bfb22e3a4028b065baeb97f23e.tar.gz
Essentials-d201286fc54719bfb22e3a4028b065baeb97f23e.tar.lz
Essentials-d201286fc54719bfb22e3a4028b065baeb97f23e.tar.xz
Essentials-d201286fc54719bfb22e3a4028b065baeb97f23e.zip
Merge branch '2.9' of github.com:essentials/Essentials into release
-rw-r--r--Essentials/src/com/earth2me/essentials/EssentialsEntityListener.java22
-rw-r--r--Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java28
-rw-r--r--Essentials/src/com/earth2me/essentials/ISettings.java10
-rw-r--r--Essentials/src/com/earth2me/essentials/Kit.java4
-rw-r--r--Essentials/src/com/earth2me/essentials/OfflinePlayer.java32
-rw-r--r--Essentials/src/com/earth2me/essentials/Settings.java26
-rw-r--r--Essentials/src/com/earth2me/essentials/User.java23
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandenderchest.java30
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandinvsee.java7
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandspeed.java153
-rw-r--r--Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java18
-rw-r--r--Essentials/src/com/earth2me/essentials/metrics/MetricsStarter.java1
-rw-r--r--Essentials/src/config.yml5
-rw-r--r--Essentials/src/messages.properties6
-rw-r--r--Essentials/src/messages_cs.properties6
-rw-r--r--Essentials/src/messages_da.properties6
-rw-r--r--Essentials/src/messages_de.properties6
-rw-r--r--Essentials/src/messages_en.properties6
-rw-r--r--Essentials/src/messages_es.properties294
-rw-r--r--Essentials/src/messages_fi.properties40
-rw-r--r--Essentials/src/messages_fr.properties6
-rw-r--r--Essentials/src/messages_it.properties6
-rw-r--r--Essentials/src/messages_nl.properties6
-rw-r--r--Essentials/src/messages_pl.properties6
-rw-r--r--Essentials/src/messages_pt.properties6
-rw-r--r--Essentials/src/messages_se.properties44
-rw-r--r--Essentials/src/plugin.yml12
-rw-r--r--EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java73
-rw-r--r--lib/bukkit.jarbin4745347 -> 4746130 bytes
-rw-r--r--lib/craftbukkit.jarbin11697717 -> 11711697 bytes
30 files changed, 649 insertions, 233 deletions
diff --git a/Essentials/src/com/earth2me/essentials/EssentialsEntityListener.java b/Essentials/src/com/earth2me/essentials/EssentialsEntityListener.java
index 1a0820105..c7f7cf051 100644
--- a/Essentials/src/com/earth2me/essentials/EssentialsEntityListener.java
+++ b/Essentials/src/com/earth2me/essentials/EssentialsEntityListener.java
@@ -68,17 +68,21 @@ public class EssentialsEntityListener implements Listener
}
}
}
- else if (eDefend instanceof Ageable && eAttack instanceof Player)
+ else if (eAttack instanceof Player)
{
- final Player player = (Player)eAttack;
- final ItemStack hand = player.getItemInHand();
- if (hand != null && hand.getType() == Material.MILK_BUCKET)
+ final User player = ess.getUser(eAttack);
+ player.updateActivity(true);
+ if (eDefend instanceof Ageable)
{
- ((Ageable)eDefend).setBaby();
- hand.setType(Material.BUCKET);
- player.setItemInHand(hand);
- player.updateInventory();
- event.setCancelled(true);
+ final ItemStack hand = player.getItemInHand();
+ if (hand != null && hand.getType() == Material.MILK_BUCKET)
+ {
+ ((Ageable)eDefend).setBaby();
+ hand.setType(Material.BUCKET);
+ player.setItemInHand(hand);
+ player.updateInventory();
+ event.setCancelled(true);
+ }
}
}
}
diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java
index 2fe03ebce..c84541405 100644
--- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java
+++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java
@@ -12,6 +12,7 @@ import java.util.List;
import java.util.Locale;
import java.util.logging.Level;
import java.util.logging.Logger;
+import net.minecraft.server.InventoryEnderChest;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.HumanEntity;
@@ -25,6 +26,7 @@ import org.bukkit.event.inventory.InventoryType;
import org.bukkit.event.player.PlayerLoginEvent.Result;
import org.bukkit.event.player.*;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
+import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack;
@@ -87,7 +89,12 @@ public class EssentialsPlayerListener implements Listener
if (user.isAfk() && ess.getSettings().getFreezeAfkPlayers())
{
final Location from = event.getFrom();
- final Location to = event.getTo().clone();
+ final Location origTo = event.getTo();
+ final Location to = origTo.clone();
+ if (ess.getSettings().cancelAfkOnMove() && origTo.getY() >= from.getBlockY() + 1) {
+ user.updateActivity(true);
+ return;
+ }
to.setX(from.getX());
to.setY(from.getY());
to.setZ(from.getZ());
@@ -120,7 +127,9 @@ public class EssentialsPlayerListener implements Listener
{
user.toggleVanished();
}
- user.setLastLocation();
+ if (!user.isJailed()) {
+ user.setLastLocation();
+ }
user.updateActivity(false);
user.dispose();
}
@@ -448,6 +457,14 @@ public class EssentialsPlayerListener implements Listener
}
}
}
+ else if (event.getView().getTopInventory().getType() == InventoryType.ENDER_CHEST)
+ {
+ final User user = ess.getUser(event.getWhoClicked());
+ if (user.isEnderSee() && (!user.isAuthorized("essentials.enderchest.modify")))
+ {
+ event.setCancelled(true);
+ }
+ }
}
@EventHandler(priority = EventPriority.MONITOR)
@@ -458,5 +475,10 @@ public class EssentialsPlayerListener implements Listener
final User user = ess.getUser(event.getPlayer());
user.setInvSee(false);
}
+ else if (event.getView().getTopInventory().getType() == InventoryType.ENDER_CHEST)
+ {
+ final User user = ess.getUser(event.getPlayer());
+ user.setEnderSee(false);
+ }
}
-}
+} \ No newline at end of file
diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java
index 71fc7f5dd..e1781cb46 100644
--- a/Essentials/src/com/earth2me/essentials/ISettings.java
+++ b/Essentials/src/com/earth2me/essentials/ISettings.java
@@ -159,7 +159,7 @@ public interface ISettings extends IConf
boolean getRepairEnchanted();
boolean isWorldTeleportPermissions();
-
+
boolean isWorldHomePermissions();
boolean registerBackInListener();
@@ -177,8 +177,12 @@ public interface ISettings extends IConf
long getTeleportInvulnerability();
boolean isTeleportInvulnerability();
-
+
long getLoginAttackDelay();
-
+
int getSignUsePerSecond();
+
+ double getMaxFlySpeed();
+
+ double getMaxWalkSpeed();
}
diff --git a/Essentials/src/com/earth2me/essentials/Kit.java b/Essentials/src/com/earth2me/essentials/Kit.java
index 136c1d6f5..8ccef0024 100644
--- a/Essentials/src/com/earth2me/essentials/Kit.java
+++ b/Essentials/src/com/earth2me/essentials/Kit.java
@@ -39,6 +39,10 @@ public class Kit
public static void checkTime(final User user, final String kitName, final Map<String, Object> els) throws NoChargeException
{
+ if (user.isAuthorized("essentials.kit.exemptdelay")) {
+ return;
+ }
+
final Calendar time = new GregorianCalendar();
// Take the current time, and remove the delay from it.
diff --git a/Essentials/src/com/earth2me/essentials/OfflinePlayer.java b/Essentials/src/com/earth2me/essentials/OfflinePlayer.java
index e7241f0f8..eb9729fa3 100644
--- a/Essentials/src/com/earth2me/essentials/OfflinePlayer.java
+++ b/Essentials/src/com/earth2me/essentials/OfflinePlayer.java
@@ -1068,5 +1068,35 @@ public class OfflinePlayer implements Player
public boolean isValid()
{
throw new UnsupportedOperationException("Not supported yet.");
- }
+ }
+
+ @Override
+ public void setFlySpeed(float value) throws IllegalArgumentException
+ {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public void setWalkSpeed(float value) throws IllegalArgumentException
+ {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public float getFlySpeed()
+ {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public float getWalkSpeed()
+ {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public Inventory getEnderChest()
+ {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
}
diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java
index 30cfc9dab..73beb1891 100644
--- a/Essentials/src/com/earth2me/essentials/Settings.java
+++ b/Essentials/src/com/earth2me/essentials/Settings.java
@@ -431,6 +431,7 @@ public class Settings implements ISettings
disablePrefix = _disablePrefix();
disableSuffix = _disableSuffix();
chatRadius = _getChatRadius();
+ warnOnBuildDisallow = _warnOnBuildDisallow();
}
private List<Integer> itemSpawnBl = new ArrayList<Integer>();
@@ -511,12 +512,21 @@ public class Settings implements ISettings
{
return config.getBoolean("spawn-if-no-home", false);
}
+
+ private boolean warnOnBuildDisallow;
+ private boolean _warnOnBuildDisallow()
+ {
+ return config.getBoolean("protect.disable.warn-on-build-disallow", false);
+ }
+
@Override
public boolean warnOnBuildDisallow()
{
- return config.getBoolean("protect.disable.warn-on-build-disallow", false);
+ return warnOnBuildDisallow;
}
+
+
private boolean debug = false;
private boolean configDebug = false;
@@ -912,4 +922,18 @@ public class Settings implements ISettings
{
return signUsePerSecond;
}
+
+ @Override
+ public double getMaxFlySpeed()
+ {
+ double maxSpeed = config.getDouble("max-fly-speed", 1.0);
+ return maxSpeed > 1.0 ? 1.0 : Math.abs(maxSpeed);
+ }
+
+ @Override
+ public double getMaxWalkSpeed()
+ {
+ double maxSpeed = config.getDouble("max-walk-speed", 0.8);
+ return maxSpeed > 1.0 ? 1.0 : Math.abs(maxSpeed);
+ }
}
diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java
index 5b6eff1fb..a66f3dadf 100644
--- a/Essentials/src/com/earth2me/essentials/User.java
+++ b/Essentials/src/com/earth2me/essentials/User.java
@@ -11,6 +11,7 @@ import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
+import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
public class User extends UserData implements Comparable<User>, IReplyTo, IUser
@@ -27,6 +28,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
private boolean hidden = false;
private transient Location afkPosition = null;
private boolean invSee = false;
+ private boolean enderSee = false;
private static final Logger logger = Logger.getLogger("Minecraft");
User(final Player base, final IEssentials ess)
@@ -175,6 +177,10 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
public boolean canAfford(final double cost, final boolean permcheck)
{
+ if (cost <= 0.0)
+ {
+ return true;
+ }
final double mon = getMoney();
if (!permcheck || isAuthorized("essentials.eco.loan"))
{
@@ -484,6 +490,13 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
}
catch (Exception ex)
{
+ try
+ {
+ getTeleport().respawn(null, TeleportCause.PLUGIN);
+ }
+ catch (Exception ex1)
+ {
+ }
}
return true;
}
@@ -612,6 +625,16 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
{
invSee = set;
}
+
+ public boolean isEnderSee()
+ {
+ return enderSee;
+ }
+
+ public void setEnderSee(final boolean set)
+ {
+ enderSee = set;
+ }
private transient long teleportInvulnerabilityTimestamp = 0;
public void enableInvulnerabilityAfterTeleport()
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandenderchest.java b/Essentials/src/com/earth2me/essentials/commands/Commandenderchest.java
new file mode 100644
index 000000000..bd707d392
--- /dev/null
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandenderchest.java
@@ -0,0 +1,30 @@
+package com.earth2me.essentials.commands;
+
+import com.earth2me.essentials.User;
+import org.bukkit.Server;
+
+
+public class Commandenderchest extends EssentialsCommand
+{
+ public Commandenderchest()
+ {
+ super("enderchest");
+ }
+
+ @Override
+ protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
+ {
+ if (args.length > 0 && user.isAuthorized("essentials.enderchest.others"))
+ {
+ final User invUser = getPlayer(server, args, 0);
+ user.openInventory(invUser.getEnderChest());
+ user.setEnderSee(true);
+ }
+ else
+ {
+ user.openInventory(user.getEnderChest());
+ user.setEnderSee(false);
+ }
+
+ }
+}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandinvsee.java b/Essentials/src/com/earth2me/essentials/commands/Commandinvsee.java
index a4a659e97..3964dbe67 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandinvsee.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandinvsee.java
@@ -1,10 +1,7 @@
package com.earth2me.essentials.commands;
-import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.User;
-import java.util.Arrays;
import org.bukkit.Server;
-import org.bukkit.inventory.ItemStack;
public class Commandinvsee extends EssentialsCommand
@@ -21,8 +18,8 @@ public class Commandinvsee extends EssentialsCommand
{
throw new NotEnoughArgumentsException();
}
- final User invUser = getPlayer(server, args, 0);
+ final User invUser = getPlayer(server, args, 0);
user.setInvSee(true);
- user.openInventory(invUser.getInventory());
+ user.openInventory(invUser.getInventory());
}
}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandspeed.java b/Essentials/src/com/earth2me/essentials/commands/Commandspeed.java
new file mode 100644
index 000000000..8415241b1
--- /dev/null
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandspeed.java
@@ -0,0 +1,153 @@
+package com.earth2me.essentials.commands;
+
+import static com.earth2me.essentials.I18n._;
+import com.earth2me.essentials.User;
+import org.bukkit.Server;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+
+public class Commandspeed extends EssentialsCommand
+{
+ public Commandspeed()
+ {
+ super("speed");
+ }
+
+ @Override
+ protected void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
+ {
+ if (args.length < 2)
+ {
+ throw new NotEnoughArgumentsException();
+ }
+ final boolean isFly = isFlyMode(args[0]);
+ final float speed = getMoveSpeed(args[1]);
+ speedOtherPlayers(server, sender, isFly, true, speed, args[2]);
+ }
+
+ @Override
+ protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
+ {
+ if (args.length < 1)
+ {
+ throw new NotEnoughArgumentsException();
+ }
+
+ boolean isFly;
+ float speed;
+ boolean isBypass = user.isAuthorized("essentials.speed.bypass");
+ if (args.length == 1)
+ {
+ //isFly = user.isFlying();
+ isFly = true;
+ speed = getMoveSpeed(args[0]);
+ }
+ else
+ {
+ //isFly = isFlyMode(args[0]);
+ //speed = getMoveSpeed(args[1]);
+ //if (args.length > 2 && user.isAuthorized("essentials.speed.others"))
+ //{
+ // speedOtherPlayers(server, user, isFly, isBypass, speed, args[2]);
+ // return;
+ //}
+ isFly = true;
+ speed = getMoveSpeed(args[0]);
+ if (user.isAuthorized("essentials.speed.others"))
+ {
+ speedOtherPlayers(server, user, isFly, isBypass, speed, args[1]);
+ return;
+ }
+ }
+
+ //if (isFly)
+ //{
+ user.setFlySpeed(getRealMoveSpeed(speed, isFly, isBypass));
+ user.sendMessage(_("moveSpeed", _("flying"), speed, user.getDisplayName()));
+ //}
+ //else
+ //{
+ // user.setWalkSpeed(getRealMoveSpeed(speed, isFly, isBypass));
+ // user.sendMessage(_("moveSpeed", _("walking"), speed, user.getDisplayName()));
+ //}
+ }
+
+ private void speedOtherPlayers(final Server server, final CommandSender sender, final boolean isFly, final boolean isBypass, final float speed, final String target)
+ {
+ for (Player matchPlayer : server.matchPlayer(target))
+ {
+ if (isFly)
+ {
+ matchPlayer.setFlySpeed(getRealMoveSpeed(speed, isFly, isBypass));
+ sender.sendMessage(_("moveSpeed", _("flying"), speed, matchPlayer.getDisplayName()));
+ }
+ else
+ {
+ matchPlayer.setWalkSpeed(getRealMoveSpeed(speed, isFly, isBypass));
+ sender.sendMessage(_("moveSpeed", _("walking"), speed, matchPlayer.getDisplayName()));
+ }
+ }
+ }
+
+ private boolean isFlyMode(final String modeString) throws NotEnoughArgumentsException
+ {
+ boolean isFlyMode;
+ if (modeString.contains("fly") || modeString.equalsIgnoreCase("f"))
+ {
+ isFlyMode = true;
+ }
+ else if (modeString.contains("walk") || modeString.contains("run")
+ || modeString.equalsIgnoreCase("w") || modeString.equalsIgnoreCase("r"))
+ {
+ isFlyMode = false;
+ }
+ else
+ {
+ throw new NotEnoughArgumentsException();
+ }
+ return isFlyMode;
+ }
+
+ private float getMoveSpeed(final String moveSpeed) throws NotEnoughArgumentsException
+ {
+ float userSpeed;
+ try
+ {
+ userSpeed = Float.parseFloat(moveSpeed);
+ if (userSpeed > 10f)
+ {
+ userSpeed = 10f;
+ }
+ else if (userSpeed < 0f)
+ {
+ userSpeed = 0f;
+ }
+ }
+ catch (NumberFormatException e)
+ {
+ throw new NotEnoughArgumentsException();
+ }
+ return userSpeed;
+ }
+
+ private float getRealMoveSpeed(final float userSpeed, final boolean isFly, final boolean isBypass)
+ {
+ final float defaultSpeed = isFly ? 0.1f : 0.2f;
+ float maxSpeed = 1f;
+ if (!isBypass)
+ {
+ maxSpeed = (float)(isFly ? ess.getSettings().getMaxFlySpeed() : ess.getSettings().getMaxWalkSpeed());
+ }
+
+ if (userSpeed < 1f)
+ {
+ return defaultSpeed * userSpeed;
+ }
+ else
+ {
+ float ratio = ((userSpeed - 1) / 9) * (maxSpeed - defaultSpeed);
+ return ratio + defaultSpeed;
+ }
+ }
+}
diff --git a/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java b/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java
index 93a33fcea..c08dc08b8 100644
--- a/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java
+++ b/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java
@@ -675,4 +675,22 @@ public class FakeWorld implements World
{
throw new UnsupportedOperationException("Not supported yet.");
}
+
+ @Override
+ public boolean isChunkInUse(int x, int z)
+ {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public FallingBlock spawnFallingBlock(Location location, Material material, byte data) throws IllegalArgumentException
+ {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public FallingBlock spawnFallingBlock(Location location, int blockId, byte blockData) throws IllegalArgumentException
+ {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
}
diff --git a/Essentials/src/com/earth2me/essentials/metrics/MetricsStarter.java b/Essentials/src/com/earth2me/essentials/metrics/MetricsStarter.java
index 0ea692cc9..9638d8d5e 100644
--- a/Essentials/src/com/earth2me/essentials/metrics/MetricsStarter.java
+++ b/Essentials/src/com/earth2me/essentials/metrics/MetricsStarter.java
@@ -18,6 +18,7 @@ public class MetricsStarter implements Runnable
private enum Modules
{
Essentials,
+ EssentialsAntiBuild,
EssentialsAntiCheat,
EssentialsChat,
EssentialsSpawn,
diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml
index e7813af8b..cddbc1c48 100644
--- a/Essentials/src/config.yml
+++ b/Essentials/src/config.yml
@@ -233,7 +233,7 @@ enabledSigns:
# Lower numbers will reduce the possibility of lag, but may annoy players.
sign-use-per-second: 4
-# Backup runs a command while saving is disabled
+# Backup runs a batch/bash command while saving is disabled
backup:
# Interval in minutes
interval: 30
@@ -321,6 +321,9 @@ register-back-in-listener: false
#Delay to wait before people can cause attack damage after logging in
login-attack-delay: 5
+#Set the max fly speed, values range from 0.1 to 1.0
+max-fly-speed: 1.0
+
############################################################
# +------------------------------------------------------+ #
# | EssentialsHome | #
diff --git a/Essentials/src/messages.properties b/Essentials/src/messages.properties
index 9e274c165..a00ea1e7f 100644
--- a/Essentials/src/messages.properties
+++ b/Essentials/src/messages.properties
@@ -443,3 +443,9 @@ youAreHealed=\u00a77You have been healed.
youHaveNewMail=\u00a7cYou have {0} messages!\u00a7f Type \u00a77/mail read\u00a7f to view your mail.
hatRemoved=\u00a7eYour hat has been removed.
banFormat=Banned: {0}
+moveSpeed=\u00a77Set {0} speed to {1} for {2}.
+walking=walking
+antiBuildPlace=\u00a74You are not permitted to place {0} here.
+antiBuildBreak=\u00a74You are not permitted to break {0} blocks here.
+antiBuildUse=\u00a74You are not permitted to use {0}.
+antiBuildInteract=\u00a74You are not permitted to interact with {0}.
diff --git a/Essentials/src/messages_cs.properties b/Essentials/src/messages_cs.properties
index 5a85918c6..4b0879747 100644
--- a/Essentials/src/messages_cs.properties
+++ b/Essentials/src/messages_cs.properties
@@ -446,3 +446,9 @@ year=rok
years=roky
youAreHealed=\u00a77Byl jsi uzdraven.
youHaveNewMail=\u00a7cMas {0} zprav!\u00a7f Napis \u00a77/mail read\u00a7f aby jsi si precetl sve zpravy.
+moveSpeed=\u00a77Set {0} speed to {1} for {2}.
+walking=walking
+antiBuildPlace=\u00a74You are not permitted to place {0} here.
+antiBuildBreak=\u00a74You are not permitted to break {0} blocks here.
+antiBuildUse=\u00a74You are not permitted to use {0}.
+antiBuildInteract=\u00a74You are not permitted to interact with {0}.
diff --git a/Essentials/src/messages_da.properties b/Essentials/src/messages_da.properties
index b33fa99e2..7a23abb8a 100644
--- a/Essentials/src/messages_da.properties
+++ b/Essentials/src/messages_da.properties
@@ -443,3 +443,9 @@ youAreHealed=\u00a77Du er blevet healed. Halleluja!
youHaveNewMail=\u00a7cDu har {0} flaskeposter!\u00a7f Type \u00a77/mail read for at se din flaskepost.
hatRemoved=\u00a7eYour hat has been removed.
banFormat=Banned: {0}
+moveSpeed=\u00a77Set {0} speed to {1} for {2}.
+walking=walking
+antiBuildPlace=\u00a74You are not permitted to place {0} here.
+antiBuildBreak=\u00a74You are not permitted to break {0} blocks here.
+antiBuildUse=\u00a74You are not permitted to use {0}.
+antiBuildInteract=\u00a74You are not permitted to interact with {0}.
diff --git a/Essentials/src/messages_de.properties b/Essentials/src/messages_de.properties
index 22a6d84f9..8048bb599 100644
--- a/Essentials/src/messages_de.properties
+++ b/Essentials/src/messages_de.properties
@@ -443,3 +443,9 @@ youAreHealed=\u00a77Du wurdest geheilt.
youHaveNewMail=\u00a7cDu hast {0} Nachrichten!\u00a7f Schreibe \u00a77/mail read\u00a7f um deine Nachrichten anzuzeigen.
hatRemoved=\u00a7eYour hat has been removed.
banFormat=Banned: {0}
+moveSpeed=\u00a77Set {0} speed to {1} for {2}.
+walking=walking
+antiBuildPlace=\u00a74You are not permitted to place {0} here.
+antiBuildBreak=\u00a74You are not permitted to break {0} blocks here.
+antiBuildUse=\u00a74You are not permitted to use {0}.
+antiBuildInteract=\u00a74You are not permitted to interact with {0}.
diff --git a/Essentials/src/messages_en.properties b/Essentials/src/messages_en.properties
index 9e274c165..a00ea1e7f 100644
--- a/Essentials/src/messages_en.properties
+++ b/Essentials/src/messages_en.properties
@@ -443,3 +443,9 @@ youAreHealed=\u00a77You have been healed.
youHaveNewMail=\u00a7cYou have {0} messages!\u00a7f Type \u00a77/mail read\u00a7f to view your mail.
hatRemoved=\u00a7eYour hat has been removed.
banFormat=Banned: {0}
+moveSpeed=\u00a77Set {0} speed to {1} for {2}.
+walking=walking
+antiBuildPlace=\u00a74You are not permitted to place {0} here.
+antiBuildBreak=\u00a74You are not permitted to break {0} blocks here.
+antiBuildUse=\u00a74You are not permitted to use {0}.
+antiBuildInteract=\u00a74You are not permitted to interact with {0}.
diff --git a/Essentials/src/messages_es.properties b/Essentials/src/messages_es.properties
index 9cbaa9dfc..b4e8bd73a 100644
--- a/Essentials/src/messages_es.properties
+++ b/Essentials/src/messages_es.properties
@@ -3,60 +3,60 @@
# Translations start here
# by:
action=* {0} {1}
-addedToAccount=\u00a7a{0} ha sido agregado a tu cuenta.
-addedToOthersAccount=\u00a7a{0} added to {1}\u00a7a account. New balance: {2}
-adventure = adventure
-alertBroke=roto:
+addedToAccount=\u00a7a{0} han sido agregados a tu cuenta.
+addedToOthersAccount=\u00a7a{0} han sidos agregados a la cuenta de {1}\u00a7a. Nuevo presupuesto: {2}
+adventure = Aventura
+alertBroke=Roto:
alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} en: {3}
-alertPlaced=situado:
-alertUsed=usado:
+alertPlaced=Situado:
+alertUsed=Usado:
autoAfkKickReason=Has sido echado por ausentarte mas de {0} minutos.
backAfterDeath=\u00a77Usa el comando /back para volver al punto en el que moriste.
backUsageMsg=\u00a77Volviendo a la localizacion anterior.
-backupDisabled=An external backup script has not been configured.
-backupFinished=Copia de seguridad completada
-backupStarted=Comenzando copia de seguridad
+backupDisabled=Un codigo externo de recuperacion no ha sido configurado.
+backupFinished=Copia de seguridad completada.
+backupStarted=Comenzando copia de seguridad...
balance=\u00a77Cantidad: {0}
-balanceTop=\u00a77Top cantidades ({0})
-banExempt=\u00a7cNo puedes banear a ese jugador
-banIpAddress=\u00a77Direccion IP baneada
-bannedIpsFileError=Error leyendo banned-ips.txt
-bannedIpsFileNotFound=banned-ips.txt no encontrado
-bannedPlayersFileError=Error leyendo banned-players.txt
-bannedPlayersFileNotFound=banned-players.txt no encontrado
+balanceTop=\u00a77Ranking de cantidades ({0})
+banExempt=\u00a7cNo puedes bannear a ese jugador.
+banIpAddress=\u00a77Direccion IP baneada.
+bannedIpsFileError=Error leyendo banned-ips.txt.
+bannedIpsFileNotFound=banned-ips.txt no encontrado.
+bannedPlayersFileError=Error leyendo banned-players.txt.
+bannedPlayersFileNotFound=banned-players.txt no encontrado.
bigTreeFailure=\u00a7cBig Generacion de arbol fallida. Prueba de nuevo en hierba o arena.
bigTreeSuccess= \u00a77Big Arbol generado.
-blockList=Essentials relayed the following commands to another plugin:
-broadcast=[\u00a7cBroadcast\u00a7f]\u00a7a {0}
-buildAlert=\u00a7cNo tienes permisos para construir
+blockList=Essentials le ha cedido los siguientes comandos a otros plugins:
+broadcast=[\u00a7cAnuncio\u00a7f]\u00a7a {0}
+buildAlert=\u00a7cNo tienes permisos para construir.
bukkitFormatChanged=Version de formato de Bukkit cambiado. Version no comprobada.
burnMsg=\u00a77Has puesto {0} en fuego durante {1} segundos.
-canTalkAgain=\u00a77Ya puedes hablar de nuevo
-cantFindGeoIpDB=No se puede encontrar la bases de datos del Geo IP
-cantReadGeoIpDB=Error al intentar leer la base de datos del Geo IP
+canTalkAgain=\u00a77Ya puedes hablar de nuevo.
+cantFindGeoIpDB=No se puede encontrar la base de datos del Geo IP.
+cantReadGeoIpDB=Error al intentar leer la base de datos del Geo IP.
cantSpawnItem=\u00a7cNo tienes acceso para producir este objeto {0}
chatTypeLocal=[L]
chatTypeAdmin=[A]
-chatTypeSpy=[Spy]
-commandFailed=Command {0} fallado:
+chatTypeSpy=[Espia]
+commandFailed=Comando {0} fallado:
commandHelpFailedForPlugin=Error obteniendo ayuda para: {0}
commandNotLoaded=\u00a7cCommand {0} esta cargado incorrectamente.
compassBearing=\u00a77Bearing: {0} ({1} grados).
configFileMoveError=Error al mover config.yml para hacer una copia de seguridad de la localizacion.
-configFileRenameError=Error al renombrar archivo temp a config.yml
+configFileRenameError=Error al renombrar archivo temp a config.yml.
connectedPlayers=Jugadores conectados:
connectionFailed=Error al abrir conexion.
-cooldownWithMessage=\u00a7cCooldown: {0}
+cooldownWithMessage=\u00a7cTiempo restante: {0}
corruptNodeInConfig=\u00a74Notice: Tu archivo de configuracion tiene un nodo {0} incorrecto.
couldNotFindTemplate=No se puede encontrar el template {0}
creatingConfigFromTemplate=Creando configuracion desde el template: {0}
creatingEmptyConfig=Creando configuracion vacia: {0}
-creative=creative
+creative=creativo
currency={0}{1}
-currentWorld=Current World: {0}
+currentWorld=Mundo actual: {0}
day=dia
days=dias
-defaultBanReason=Baneado por incumplir las normas!
+defaultBanReason=Baneado por desobedecer las normas!
deleteFileError=No se puede borrar el archivo: {0}
deleteHome=\u00a77Home {0} ha sido borrado.
deleteJail=\u00a77Jail {0} ha sido borrado.
@@ -64,90 +64,90 @@ deleteWarp=\u00a77Warp {0} ha sido borrado.
deniedAccessCommand={0} ha denegado el acceso al comando.
dependancyDownloaded=[Essentials] Dependencia {0} descargada correctamente.
dependancyException=[Essentials] Error al intentar descargar la dependencia.
-dependancyNotFound=[Essentials] La dependencia necesitada no se encontro, descargandola...
+dependancyNotFound=[Essentials] La dependencia necesitada no se encontro, descargando...
depth=\u00a77Estas al nivel del mar.
depthAboveSea=\u00a77Estas {0} bloque(s) por encima del mar.
depthBelowSea=\u00a77Estas {0} bloque(s) por debajo del mar.
destinationNotSet=Destino no establecido.
disableUnlimited=\u00a77Desactivando colocacion ilimitada de {0} para {1}.
disabled=desactivado
-disabledToSpawnMob=Spawning this mob was disabled in the config file.
+disabledToSpawnMob=El spawn de este mob esta deshabilitado en la configuracion.
dontMoveMessage=\u00a77Teletransporte comenzara en {0}. No te muevas.
downloadingGeoIp=Descargando base de datos de GeoIP ... puede llevar un tiempo (pais: 0.6 MB, ciudad: 20MB)
duplicatedUserdata=Datos de usuario duplicados: {0} y {1}
-durability=\u00a77This tool has \u00a7c{0}\u00a77 uses left
+durability=\u00a77Esta herramienta tiene \u00a7c{0}\u00a77 usos restantes.
enableUnlimited=\u00a77Dando cantidad ilimitada de {0} a {1}.
enabled=activado
-enchantmentApplied = \u00a77The enchantment {0} has been applied to your item in hand.
-enchantmentNotFound = \u00a7cEnchantment not found
-enchantmentPerm = \u00a7cYou do not have the permission for {0}
-enchantmentRemoved = \u00a77The enchantment {0} has been removed from your item in hand.
-enchantments = \u00a77Enchantments: {0}
+enchantmentApplied = \u00a77El encantamiento {0} fue aplicado al item en tu mano.
+enchantmentNotFound = \u00a7cEncantamiento no encontrado.
+enchantmentPerm = \u00a7cNo tienes permisos para {0}
+enchantmentRemoved = \u00a77El encantamiento {0} fue removido del item en tu mano.
+enchantments = \u00a77Encantamiento: {0}
errorCallingCommand=Error al ejecutar el comando /{0}
errorWithMessage=\u00a7cError: {0}
-essentialsHelp1=The file is broken and Essentials can't open it. Essentials is now disabled. If you can't fix the file yourself, go to http://tiny.cc/EssentialsChat
-essentialsHelp2=The file is broken and Essentials can't open it. Essentials is now disabled. If you can't fix the file yourself, either type /essentialshelp in game or go to http://tiny.cc/EssentialsChat
+essentialsHelp1=Archivo corrompido, no es posible abrirlo. Essentials esta ahora desactivado. Si no puedes arreglar el archivo, ve a http://tiny.cc/EssentialsChat
+essentialsHelp2=Archivo corrompido, no es posible abrirlo. Essentials esta ahora desactivado. Si no puedes arreglar el archivo, escribe /essentialshelp ingame o ve a http://tiny.cc/EssentialsChat
essentialsReload=\u00a77Essentials Recargado {0}
-exp=\u00a7c{0} \u00a77has\u00a7c {1} \u00a77exp (level\u00a7c {2}\u00a77) and needs\u00a7c {3} \u00a77more exp to level up.
-expSet=\u00a7c{0} \u00a77now has\u00a7c {1} \u00a77exp.
+exp=\u00a7c{0} \u00a77tiene\u00a7c {1} \u00a77 de exp. (nivel\u00a7c {2}\u00a77) y necesita\u00a7c {3} \u00a77de exp para subir su nivel.
+expSet=\u00a7c{0} \u00a77ahora tiene\u00a7c {1} \u00a77de exp.
extinguish=\u00a77Te has suicidado.
extinguishOthers=\u00a77Has matado a {0}.
failedToCloseConfig=Error al cerrar configuracion {0}
failedToCreateConfig=Error al crear configuracion {0}
failedToWriteConfig=Error al escribir configuracion {0}
false=\u00a74false\u00a7f
-feed=\u00a77Your appetite was sated.
-feedOther=\u00a77Satisfied {0}.
+feed=\u00a77Apetito satisfecho.
+feedOther=\u00a77Satisfecho {0}.
fileRenameError=Error al renombrar el archivo {0}
-flyMode=\u00a77Set fly mode {0} for {1}.
-flying=flying
+flyMode=\u00a77Modo de vuelo activado {0} para {1}.
+flying=volando
foreverAlone=\u00a7cNo tienes nadie a quien puedas responder.
freedMemory= {0} MB libres.
-gameMode=\u00a77Set game mode {0} for {1}.
-gcchunks= pixeles,
+gameMode=\u00a77Modo de juego {0} activado para {1}.
+gcchunks= pixeles
gcentities= entidades
gcfree=Memoria libre: {0} MB
gcmax=Memoria maxima: {0} MB
gctotal=Memoria localizada: {0} MB
-geoIpUrlEmpty=Link para descargar GeoIP esta vacio.
-geoIpUrlInvalid=Link para descargar GeoIP es invalido.
+geoIpUrlEmpty=El link para descargar GeoIP esta vacio.
+geoIpUrlInvalid=El link para descargar GeoIP es invalido.
geoipJoinFormat=El jugador {0} viene de {1}
-godDisabledFor=Desactivado para {0}
-godEnabledFor=Activado para {0}
-godMode=\u00a77Modo Dios {0}.
-hatArmor=\u00a7cError, you cannot use this item as a hat!
-hatEmpty=\u00a7cYou are not wearing a hat.
-hatFail=\u00a7cYou must have something to wear in your hand.
-hatPlaced=\u00a7eEnjoy your new hat!
-haveBeenReleased=\u00a77Has sido liberado
+godDisabledFor=desactivado para {0}
+godEnabledFor=activado para {0}
+godMode=\u00a77Modo de dios {0}.
+hatArmor=\u00a7cNo puedes usar este item como sombrero!
+hatEmpty=\u00a7cNo estas usando un sombrero.
+hatFail=\u00a7cDebes tener un item en tu mano para usarlo de sombrero.
+hatPlaced=\u00a7eDisfruta tu nuevo sombrero!
+haveBeenReleased=\u00a77Has sido liberado.
heal=\u00a77Has sido curado.
healOther=\u00a77Has curado a {0}.
helpConsole=Para obtener ayuda de la consola, escribe ?.
-helpFrom=\u00a77Commands from {0}:
+helpFrom=\u00a77Comandos de {0}:
helpLine=\u00a76/{0}\u00a7f: {1}
-helpMatching=\u00a77Commands matching "{0}":
-helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
+helpMatching=\u00a77Comandos que coinciden con "{0}":
+helpOp=\u00a7c[AyudaOp]\u00a7f \u00a77{0}:\u00a7f {1}
helpPages=Pagina \u00a7c{0}\u00a7f de \u00a7c{1}\u00a7f:
-helpPlugin=\u00a74{0}\u00a7f: Plugin Help: /help {1}
-holeInFloor=Agujero en el suelo
+helpPlugin=\u00a74{0}\u00a7f: Ayuda con los plugins: /help {1}
+holeInFloor=Agujero en el suelo.
homeSet=\u00a77Hogar establecido.
-homeSetToBed=\u00a77Tu hogar esta ahora establecido a esta cama.
+homeSetToBed=\u00a77Tu hogar esta ahora establecido en esta cama.
homes=Hogares: {0}
hour=hora
hours=horas
ignorePlayer=A partir de ahora ignoras al jugador {0}.
illegalDate=Forma de fecha ilegal.
infoChapter=Selecciona una seccion:
-infoChapterPages=Seccion {0}, pagina \u00a7c{1}\u00a7f of \u00a7c{2}\u00a7f:
+infoChapterPages=Seccion {0}, pagina \u00a7c{1}\u00a7f de \u00a7c{2}\u00a7f:
infoFileDoesNotExist=El archivo info.txt no existe. Creando uno para ti.
infoPages=\u00a7e ---- \u00a76{2} \u00a7e--\u00a76 Pagina \u00a74{0}\u00a76/\u00a74{1} \u00a7e----
infoUnknownChapter=Seccion desconocida.
-invBigger=El inventario del otro usuario es mas grande que el tuyo
+invBigger=El inventario del otro usuario es mas grande que el tuyo.
invRestored=Tu inventario ha sido recuperado.
invSee=Estas viendo el inventario de {0}.
invSeeHelp=Usa /invsee para recuperar tu inventario.
invalidCharge=\u00a7cCargo invalido.
-invalidHome=Home {0} doesn't exist
+invalidHome=El hogar {0} no existe.
invalidMob=Mob invalido.
invalidServer=Servidor invalido!
invalidSignLine=Linea {0} en el signo es invalida.
@@ -168,49 +168,49 @@ itemsCsvNotLoaded=Error al leer items.csv.
jailAlreadyIncarcerated=\u00a7cLa persona ya esta en la carcel: {0}
jailMessage=\u00a7cPor hacer el mal, tiempo en la carcel estaras.
jailNotExist=Esa carcel no existe.
-jailReleased=\u00a77Player \u00a7e{0}\u00a77 liberado.
+jailReleased=\u00a77Jugador \u00a7e{0}\u00a77 liberado.
jailReleasedPlayerNotify=\u00a77 Has sido liberado!!
jailSentenceExtended=El tiempo en la carcel se alarga hasta: {0)
-jailSet=\u00a77Carcel {0} ha sido puesta
+jailSet=\u00a77La carcel {0} ha sido activada.
jumpError=Eso es demasiado para tu ordenador!
kickDefault=Echado del servidor.
kickExempt=\u00a7cNo puedes echar a esa persona.
-kickedAll=\u00a7cKicked all players from server
+kickedAll=\u00a7cTodos los jugadores fueron kickeados.
kill=\u00a77ha matado a {0}.
kitError2=\u00a7cEse kit no existe o esta mal escrito.
kitError=\u00a7cNo hay ningun kit valido.
-kitErrorHelp=\u00a7cPerhaps an item is missing a quantity in the configuration?
+kitErrorHelp=\u00a7cLe falta especificar la cantidad a un item en la configuracion?
kitGive=\u00a77Dando kit a {0}.
-kitInvFull=\u00a7cTu inventario esta lleno, su kit se pondra en el suelo
+kitInvFull=\u00a7cTu inventario esta lleno, el kit se pondra en el suelo.
kitTimed=\u00a7c No puedes usar ese kit de nuevo para otro{0}.
kits=\u00a77Kits: {0}
-lightningSmited=\u00a77Acabas de ser golpeado
+lightningSmited=\u00a77Acabas de ser golpeado.
lightningUse=\u00a77Golpeando a {0}
listAfkTag = \u00a77[AFK]\u00a7f
-listAmount = \u00a79There are \u00a7c{0}\u00a79 out of maximum \u00a7c{1}\u00a79 players online.
-listAmountHidden = \u00a79There are \u00a7c{0}\u00a77/{1}\u00a79 out of maximum \u00a7c{2}\u00a79 players online.
+listAmount = \u00a79Hay \u00a7c{0}\u00a79 jugadores de un maximo de \u00a7c{1}\u00a79 jugadores online.
+listAmountHidden = \u00a79Hay \u00a7c{0}\u00a79 jugadores de un maximo de \u00a7c{1}\u00a79 jugadores online.
listGroupTag={0}\u00a7f:
-listHiddenTag = \u00a77[HIDDEN]\u00a7f
-loadWarpError=Error al cargar el tenetransporte {0}
+listHiddenTag = \u00a77[ESCONDIDO]\u00a7f
+loadWarpError=Error al cargar el teletransporte {0}
localFormat=Local: <{0}> {1}
mailClear=\u00a7cPara marcar tu email como leido, escribe /mail clear
mailCleared=\u00a77Email limpiado!
mailSent=\u00a77Email enviado!!
markMailAsRead=\u00a7cPara marcar tu email como leido, escribe /mail clear
-markedAsAway=\u00a77Has sido puesto como AFK.
+markedAsAway=\u00a77Has sido anunciado como AFK.
markedAsNotAway=\u00a77Ya no estas AFK.
maxHomes=No puedes establecer mas de {0} hogares.
-mayNotJail=\u00a7cNo puedes encarcelar a esa persona
+mayNotJail=\u00a7cNo puedes encarcelar a esa persona.
me=yo
minute=minuto
minutes=minutos
missingItems=No tienes {0}x de {1}.
missingPrefixSuffix=Falta un prefijo o un sufijo para {0}
mobSpawnError=Error al cambiar la localizacion para el nacimiento de los mobs.
-mobSpawnLimit=Cantidad de Mobs limitados al limite del server
+mobSpawnLimit=Cantidad de Mobs limitados al limite del server.
mobSpawnTarget=El block seleccionado sera el lugar donde van a nacer los mobs.
mobsAvailable=\u00a77Mobs: {0}
-moneyRecievedFrom=\u00a7a{0} ha sido recivido de {1}
+moneyRecievedFrom=\u00a7a{0} ha sido recibido de {1}
moneySentTo=\u00a7a{0} ha sido enviado a {1}
moneyTaken={0} han sido sacados de tu cuenta bancaria.
month=mes
@@ -221,52 +221,52 @@ muteExempt=\u00a7cNo puedes silenciar a ese jugador.
mutedPlayer=Player {0} silenciado.
mutedPlayerFor=Player {0} silenciado durante {1}.
mutedUserSpeaks={0} intento hablar, pero esta silenciado.
-nearbyPlayers=Players nearby: {0}
+nearbyPlayers=Jugadores cercanos: {0}
negativeBalanceError=El usuario no tiene permitido tener un saldo negativo.
nickChanged=Nombre de jugador cambiado.
nickDisplayName=\u00a77Tienes que habilitar cambio de nombre de usuario en la configuracion de Essentials.
nickInUse=\u00a7cEse nombre ya esta en uso.
nickNamesAlpha=\u00a7cLos nombres tienen que ser alfanumericos.
-nickNoMore=\u00a77Ya no tienes un nombre de usuario
+nickNoMore=\u00a77Ya no tienes un nombre de usuario.
nickOthersPermission=\u00a7cNo tienes permiso para cambiar el nombre de usuario de otros.
-nickSet=\u00a77Tu nombre es ahora \u00a7c{0}
+nickSet=\u00a77Tu nombre es ahora \u00a7c{0} .
noAccessCommand=\u00a7cNo tienes acceso a ese comando.
-noAccessPermission=\u00a7cNo tienes permisos para hacer eso {0}.
-noBreakBedrock=You are not allowed to destroy bedrock.
+noAccessPermission=\u00a7cNo tienes permisos para eso {0} .
+noBreakBedrock=No puedes romper roca madre.
noDestroyPermission=\u00a7cNo tienes permisos para destrozar eso {0}.
-noDurability=\u00a7cThis item does not have a durability.
-noGodWorldWarning=\u00a7cWarning! God mode in this world disabled.
+noDurability=\u00a7cEste item no tiene durabilidad.
+noGodWorldWarning=\u00a7cAdvertencia! El Modo de dios ha sido desactivado en este mundo.
noHelpFound=\u00a7cNo hay comandos relacionados.
noHomeSet=No has establecido un hogar.
noHomeSetPlayer=El jugador no ha establecido un hogar.
noKitPermission=\u00a7cNecesitas los \u00a7c{0}\u00a7c permisos para usar ese kit.
-noKits=\u00a77No hay kits disponibles todavia
-noMail=No tienes ningun email recivido
+noKits=\u00a77No hay kits disponibles aun.
+noMail=No has recibido ningun email.
noMotd=\u00a7cNo hay ningun mensaje del dia.
noNewMail=\u00a77No tienes ningun correo nuevo.
noPendingRequest=No tienes ninguna peticion pendiente.
noPerm=\u00a7cNo tienes el permiso de \u00a7f{0}\u00a7c.
-noPermToSpawnMob=\u00a7cYou don''t have permission to spawn this mob.
+noPermToSpawnMob=\u00a7cNo tienes permisos para spawnear a este mob.
noPlacePermission=\u00a7cNo tienes permiso para situar ese bloque en ese lugar.
noPowerTools=You have no power tools assigned.
noRules=\u00a7cNo hay reglas especificadas todavia.
-noWarpsDefined=No hay teletransportes definidos aun
+noWarpsDefined=No hay teletransportes definidos aun.
none=ninguno
-notAllowedToQuestion=\u00a7cYou estas autorizado para usar las preguntas.
+notAllowedToQuestion=\u00a7cNo estas autorizado para usar las preguntas.
notAllowedToShout=\u00a7cNo estas autorizado para gritar.
-notEnoughExperience=You do not have enough experience.
+notEnoughExperience=No tienes suficiente experiencia.
notEnoughMoney=No tienes el dinero suficiente.
-notFlying=not flying
+notFlying=no volando
notRecommendedBukkit=* ! * La version de bukkit no es la recomendada para esta version de Essentials.
-notSupportedYet=No esta soportado aun.
-nothingInHand = \u00a7cYou have nothing in your hand.
+notSupportedYet=No tiene soporte por el momento.
+nothingInHand = \u00a7cNo tienes anda en tu mano.
now=ahora
-nuke=May death rain upon them
-numberRequired=Un numero es necesario, amigo.
-onlyDayNight=/time solo soporta day/night. (dia/noche)
+nuke=Que la muerta afecte al que no despierte.
+numberRequired=Un numero es necesario, amigo .
+onlyDayNight=/time solo se utiliza con los valores day o night. (dia/noche)
onlyPlayers=Solo los jugadores conectados pueden usar {0}.
-onlySunStorm=/weather solo soporta sun/storm. (sol/tormenta)
-orderBalances=Ordering balances of {0} users, please wait ...
+onlySunStorm=/weather solo acepta los valores sun o storm. (sol/tormenta)
+orderBalances=Creando un ranking de {0} usuarios segun su presupuesto, espera...
pTimeCurrent=\u00a7e{0}''s\u00a7f la hora es {1}.
pTimeCurrentFixed=\u00a7e{0}''s\u00a7f la hora ha sido cambiada a {1}.
pTimeNormal=\u00a7e{0}''s\u00a7f el tiempo es normal y coincide con el servidor.
@@ -288,7 +288,7 @@ playerMutedFor=\u00a77Has sido silenciado durante {0}
playerNeverOnServer=\u00a7cEl jugador {0} nunca estuvo en este servidor.
playerNotFound=\u00a7cJugador no encontrado.
playerUnmuted=\u00a77Has sido desmuteado.
-pong=Tkm mi ninio!
+pong=Te quiero mucho!
possibleWorlds=\u00a77Los mundos posibles son desde el numero 0 hasta el {0}.
powerToolAir=El comando no se puede ejecutar en el aire.
powerToolAlreadySet=El comando \u00a7c{0}\u00a7f ya esta asignado a {1}.
@@ -299,33 +299,33 @@ powerToolListEmpty={0} no tiene comandos asignados.
powerToolNoSuchCommandAssigned=El comando \u00a7c{0}\u00a7f no ha sido asignado a {1}.
powerToolRemove=Comando \u00a7c{0}\u00a7f borrado desde {1}.
powerToolRemoveAll=Todos los comandos borrados desde {0}.
-powerToolsDisabled=All of your power tools have been disabled.
-powerToolsEnabled=All of your power tools have been enabled.
+powerToolsDisabled=Todas tus herramientas de poder han sido desactivadas.
+powerToolsEnabled=Todas tus herramientas de poder han sido activadas.
protectionOwner=\u00a76[EssentialsProtect] Due&ntilde;o de la proteccion: {0}
questionFormat=\u00a77[Pregunta]\u00a7f {0}
-readNextPage=Type /{0} {1} to read the next page
+readNextPage=escribe /{0} {1} para leer la prox. pagina.
reloadAllPlugins=\u00a77Todos los plugins recargados.
-removed=\u00a77Removed {0} entities.
+removed=\u00a77{0} entidades removidas.
repair=Has reparado satisfactoriamente tu: \u00a7e{0}.
-repairAlreadyFixed=\u00a77Este objeto no necesita de reparado.
-repairEnchanted=\u00a77You are not allowed to repair enchanted items.
-repairInvalidType=\u00a7cEste objeto no puede ser reparado.
-repairNone=No habia objetos que necesitasen ser reparados.
+repairAlreadyFixed=\u00a77Este objeto no necesita ser reparado.
+repairEnchanted=\u00a77No tienes permisos para reparar items encantados.
+repairInvalidType=\u00a7cError: tipo de item invalido.
+repairNone=No hay objetos que necesiten reparacion.
requestAccepted=\u00a77Peticion de teletransporte aceptada.
-requestAcceptedFrom=\u00a77{0} acepto tu peticion de teletransporte.
+requestAcceptedFrom=\u00a77{0} ha aceptado tu peticion de teletransporte.
requestDenied=\u00a77Peticion de teletransporte denegada.
requestDeniedFrom=\u00a77{0} ha denegado tu peticion de teletransporte.
requestSent=\u00a77Peticion enviada a {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/
-returnPlayerToJailError=Error occurred when trying to return player {0} to jail: {1}
+requestTimedOut=\u00a7cA la solicitud de teletransporte se le ha acabado el tiempo.
+requiredBukkit= * ! * Necesitas al menos el build {0} de CraftBukkit, descargalo de http://dl.bukkit.org/downloads/craftbukkit/
+returnPlayerToJailError=Error al intentar regresar a un jugador {0} a la carcel: {1}
second=segundo
seconds=segundos
seenOffline=El jugador {0} esta desconectado desde {1}
-seenOnline=El jugador {0} lleva conectado desde {1}
-serverFull=Servidor lleno
+seenOnline=El jugador {0} esta conectado desde {1}
+serverFull=Servidor lleno.
serverTotal=Server Total: {0}
-setSpawner=Cambiado tipo de lugar de nacimiento a {0}
+setSpawner=Cambiado tipo de spawner a {0}
sheepMalformedColor=Color malformado.
shoutFormat=\u00a77[Shout]\u00a7f {0}
signFormatFail=\u00a74[{0}]
@@ -337,13 +337,13 @@ slimeMalformedSize=Medidas malformadas.
soloMob=A este mob le gusta estar solo
spawnSet=\u00a77El lugar de nacimiento ha sido puesto para el grupo {0}.
spawned=nacido
-sudoExempt=You cannot sudo this user
-sudoRun=Forcing {0} to run: /{1} {2}
+sudoExempt=No puedes usar el comando sudo con este user.
+sudoRun=Forzando {0} a ejecutar: /{1} {2}
suicideMessage=\u00a77Adios mundo cruel...
-suicideSuccess= \u00a77{0} se quito su propia vida
-survival=survival
-takenFromAccount=\u00a7c{0} ha sido sacado de tu cuenta.
-takenFromOthersAccount=\u00a7c{0} taken from {1}\u00a7c account. New balance: {2}
+suicideSuccess= \u00a77{0} se quito su propia vida.
+survival=supervivencia
+takenFromAccount=\u00a7c{0} han sido sacados de tu cuenta.
+takenFromOthersAccount=\u00a7c{0} han sidos sacados de la cuenta de {1}\u00a7c . Nuevo presupuesto: {2}
teleportAAll=\u00a77Peticion de teletransporte enviada a todos los jugadores...
teleportAll=\u00a77Teletransportando a todos los jugadores...
teleportAtoB=\u00a77{0}\u00a77 te teletransporto a {1}\u00a77.
@@ -351,7 +351,7 @@ teleportDisabled={0} tiene desactivado los teletransportes.
teleportHereRequest=\u00a7c{0}\u00a7c ha pedido que te teletransportes con el.
teleportNewPlayerError=Error al teletransportar al nuevo jugador
teleportRequest=\u00a7c{0}\u00a7c te ha pedido teletransportarse contigo.
-teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds.
+teleportRequestTimeoutInfo=\u00a77A esta solicitud se le acabara el tiempo despues de {0} segundos.
teleportTop=\u00a77Teletransportandote a la cima.
teleportationCommencing=\u00a77Comenzando teletransporte...
teleportationDisabled=\u00a77Teletransporte desactivado.
@@ -359,29 +359,29 @@ teleportationEnabled=\u00a77Teletransporte activado.
teleporting=\u00a77Teletransportando...
teleportingPortal=\u00a77Teletransportando via portal.
tempBanned=Baneado temporalmente del servidor por {0}
-tempbanExempt=\u00a77No puedes banear temporalmente a ese jugador
+tempbanExempt=\u00a77No puedes banear temporalmente a ese jugador.
thunder= Tu has {0} los truenos en tu mundo.
thunderDuration=Tu has {0} los truenos en tu mundo durante {1} seconds.
timeBeforeHeal=Tiempo antes de la siguiente curacion: {0}
timeBeforeTeleport=Tiempo antes del proximo teletransporte: {0}
-timeFormat=\u00a73{0}\u00a7f or \u00a73{1}\u00a7f or \u00a73{2}\u00a7f
+timeFormat=\u00a73{0}\u00a7f o \u00a73{1}\u00a7f o \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=Time establecido en todos los mundos.
+timeSet=Tiempo establecido en todos los mundos.
timeSetPermission=\u00a7cNo estas autorizado para establecer la hora.
timeWorldCurrent=La hora actual en {0} es \u00a73{1}
-timeWorldSet=La hora ha sido establecido a {0} en: \u00a7c{1}
-tps=Current TPS = {0}
+timeWorldSet=La hora ha sido establecida a {0} en: \u00a7c{1}
+tps=TPS actual = {0}
tradeCompleted=\u00a77Intercambio completado.
tradeSignEmpty=Esta tienda no tiene nada disponible para ti.
tradeSignEmptyOwner=No hay nada que recojer de esta tienda.
treeFailure=\u00a7cError al generar arbol. Prueba de nuevo en tierra o hierba.
-treeSpawned=\u00a77Arbol puesto.
+treeSpawned=\u00a77Arbol generado.
true=\u00a72true\u00a7f
typeTpaccept=\u00a77Para teletransportarte, escribe \u00a7c/tpaccept\u00a77.
typeTpdeny=\u00a77Para denegar esta peticion, escribe \u00a7c/tpdeny\u00a77.
typeWorldName=\u00a77Tu tambien puedes escribir el nombre de un mundo especifico.
unableToSpawnMob=No se puede generar Mobs.
-unbannedIP=IP Adress desbaneada.
+unbannedIP=Direccion IP desbaneada.
unbannedPlayer=Jugador desbaneado.
unignorePlayer=Ya no estas ignorando al jugador {0}.
unknownItemId=ID de objeto desconocido: {0}
@@ -390,8 +390,8 @@ unknownItemName=Nombre de objeto desconocido: {0}
unlimitedItemPermission=\u00a7cNo tienes permiso para objetos ilimitados {0}.
unlimitedItems=Objetos ilimitados.
unmutedPlayer=Jugador {0} desmuteado.
-unvanished=\u00a7aYou are once again visible.
-unvanishedReload=\u00a7cA reload has forced you to become visible.
+unvanished=\u00a7aEres visible nuevamente.
+unvanishedReload=\u00a7cUn reinicio te ha forzado a ser visible.
upgradingFilesError=Error mientras se actualizaban los archivos
userDoesNotExist=El usuario {0} no existe
userIsAway={0} esta ahora ausente!
@@ -401,30 +401,30 @@ userUsedPortal={0} uso un portal de salida existente.
userdataMoveBackError=Error al mover userdata/{0}.tmp a userdata/{1}
userdataMoveError=Error al mover userdata/{0} a userdata/{1}.tmp
usingTempFolderForTesting=Usando carpeta temporal para pruebas:
-vanished=\u00a7aYou have now been vanished.
+vanished=\u00a7aHas desaparecido.
versionMismatch=La version no coincide! Por favor actualiza {0} a la misma version.
versionMismatchAll=La version no coincide! Por favor actualiza todos los jars de Essentials a la misma version.
voiceSilenced=\u00a77Tu voz ha sido silenciada
warpDeleteError=Problema al borrar el archivo de teletransporte.
warpListPermission=\u00a7cNo tienes permiso para listar esos teletransportes.
warpNotExist=Ese teletransporte no existe.
-warpOverwrite=\u00a7cYou cannot overwrite that warp.
-warpSet=\u00a77Teletransporte {0} establecido.
+warpOverwrite=\u00a7cNo puedes sobreescribir ese atajo.
+warpSet=\u00a77Atajo {0} establecido.
warpUsePermission=\u00a7cNo tienes permisos para usar ese teletransporte.
warpingTo=\u00a77Teletransportandote a {0}.
warps=Warps: {0}
warpsCount=\u00a77Hay {0} teletransportes. Mostrando pagina {1} de {2}.
-weatherStorm=\u00a77Has establecido el tiempo a tormenta en este mundo.
-weatherStormFor=\u00a77Has establecido el tiempo a tormenta en este {1} durante {0} segundos.
-weatherSun=\u00a77Has establecido el tiempo a sol en este mundo.
-weatherSunFor=\u00a77Has establecido el tiempo a sol en este {1} durante {0} segundos.
+weatherStorm=\u00a77Has establecido el tiempo como tormenta en este mundo.
+weatherStormFor=\u00a77Has establecido el tiempo como tormenta en este {1} durante {0} segundos.
+weatherSun=\u00a77Has establecido el tiempo como sol en este mundo.
+weatherSunFor=\u00a77Has establecido el tiempo como sol en este {1} durante {0} segundos.
whoisAFK=\u00a76 - AFK:\u00a7f {0}
whoisBanned=\u00a76 - Banned:\u00a7f {0}
-whoisExp=\u00a76 - Exp:\u00a7f {0} (Level {1})
-whoisFly=\u00a76 - Fly mode:\u00a7f {0} ({1})
-whoisGamemode=\u00a76 - Gamemode:\u00a7f {0}
+whoisExp=\u00a76 - Exp:\u00a7f {0} (Nivel {1})
+whoisFly=\u00a76 - Modo de vuelo:\u00a7f {0} ({1})
+whoisGamemode=\u00a76 - Modo de juego:\u00a7f {0}
whoisGeoLocation=\u00a76 - Localizacion:\u00a7f {0}
-whoisGod=\u00a76 - God mode:\u00a7f {0}
+whoisGod=\u00a76 - Modo de dios:\u00a7f {0}
whoisHealth=\u00a76 - Salud:\u00a7f {0}/20
whoisIPAddress=\u00a76 - Direccion IP:\u00a7f {0}
whoisJail=\u00a76 - Jail:\u00a7f {0}
@@ -443,3 +443,9 @@ youAreHealed=\u00a77Has sido curado.
youHaveNewMail=\u00a7cTienes {0} mensajes!\u00a7f Pon \u00a77/mail read\u00a7f para ver tus emails no leidos!.
hatRemoved=\u00a7eYour hat has been removed.
banFormat=Banned: {0}
+moveSpeed=\u00a77Set {0} speed to {1} for {2}.
+walking=walking
+antiBuildPlace=\u00a74You are not permitted to place {0} here.
+antiBuildBreak=\u00a74You are not permitted to break {0} blocks here.
+antiBuildUse=\u00a74You are not permitted to use {0}.
+antiBuildInteract=\u00a74You are not permitted to interact with {0}.
diff --git a/Essentials/src/messages_fi.properties b/Essentials/src/messages_fi.properties
index a2ce13b34..16173d6f2 100644
--- a/Essentials/src/messages_fi.properties
+++ b/Essentials/src/messages_fi.properties
@@ -414,20 +414,16 @@ weatherStorm=\u00a77Laitoit myrskyn maailmaan {0}
weatherStormFor=\u00a77Laitoit myrskyn maailmaan {0} {1} sekunniksi
weatherSun=\u00a77Laitoit auringon paistamaan maailmaan {0}
weatherSunFor=\u00a77Laitoit auringon paistamaan maailmaan {0} {1} sekunniksi
-whoisBanned=\u00a79 - Bannattu: {0}
-whoisExp=\u00a79 - Exp: {0} (Taso {1})
-whoisGamemode=\u00a79 - Pelimuoto: {0}
-whoisGeoLocation=\u00a79 - Sijainti: {0}
-whoisGod=\u00a79 - God muoto: {0}
-whoisHealth=\u00a79 - Terveys: {0}/20
-whoisIPAddress=\u00a79 - IP Osoite: {0}
-whoisIs={0} on {1}
-whoisJail=\u00a79 - Vankila: {0}
-whoisLocation=\u00a79 - Sijainti: ({0}, {1}, {2}, {3})
-whoisMoney=\u00a79 - Raha: {0}
-whoisOP=\u00a79 - OP: {0}
-whoisStatusAvailable=\u00a79 - Tilanne: Saatavilla
-whoisStatusAway=\u00a79 - Tilanne: \u00a7cPoissa\u00a7f
+whoisBanned=\u00a76 - Banned:\u00a7f {0}
+whoisExp=\u00a76 - Exp:\u00a7f {0} (Level {1})
+whoisGamemode=\u00a76 - Gamemode:\u00a7f {0}
+whoisGeoLocation=\u00a76 - Location:\u00a7f {0}
+whoisGod=\u00a76 - God mode:\u00a7f {0}
+whoisHealth=\u00a76 - Health:\u00a7f {0}/20
+whoisIPAddress=\u00a76 - IP Address:\u00a7f {0}
+whoisJail=\u00a76 - Jail:\u00a7f {0}
+whoisLocation=\u00a76 - Location:\u00a7f ({0}, {1}, {2}, {3})
+whoisMoney=\u00a76 - Money:\u00a7f {0}
worth=\u00a77Pino tavaraa "{0}" on arvoltaan \u00a7c{1}\u00a77 ({2} tavara(a) = {3} kappale)
worthMeta=\u00a77Pino tavaraa "{0}" metadatan kanssa {1} on arvoltaan \u00a7c{2}\u00a77 ({3} tavara(a) = {4} kappale)
worthSet=Arvo asetettu
@@ -437,3 +433,19 @@ youAreHealed=\u00a77Sinut on parannettu.
youHaveNewMail=\u00a7cSinulla on {0} viesti(\u00e4)!\u00a7f Kirjoita \u00a77/mail read\u00a7f lukeaksesi viestit.
hatRemoved=\u00a7eYour hat has been removed.
banFormat=Banned: {0}
+moveSpeed=\u00a77Set {0} speed to {1} for {2}.
+whoisAFK=\u00a76 - AFK:\u00a7f {0}
+whoisFly=\u00a76 - Fly mode:\u00a7f {0} ({1})
+whoisMuted=\u00a76 - Muted:\u00a7f {0}
+whoisNick=\u00a76 - Nick:\u00a7f {0}
+whoisOp=\u00a76 - OP:\u00a7f {0}
+whoisTop=\u00a76 ====== WhoIs:\u00a7f {0} \u00a76======
+walking=walking
+chatTypeAdmin=[A]
+flying=flying
+hatEmpty=\u00a7cYou are not wearing a hat.
+notFlying=not flying
+antiBuildPlace=\u00a74You are not permitted to place {0} here.
+antiBuildBreak=\u00a74You are not permitted to break {0} blocks here.
+antiBuildUse=\u00a74You are not permitted to use {0}.
+antiBuildInteract=\u00a74You are not permitted to interact with {0}.
diff --git a/Essentials/src/messages_fr.properties b/Essentials/src/messages_fr.properties
index 33fbc4356..46053ad6c 100644
--- a/Essentials/src/messages_fr.properties
+++ b/Essentials/src/messages_fr.properties
@@ -443,3 +443,9 @@ youAreHealed=\u00a77Vous avez \u00e9t\u00e9 soign\u00e9.
youHaveNewMail=\u00a7cVous avez {0} messages ! \u00a7fEntrez \u00a77/mail read\u00a7f pour voir votre courrier.
hatRemoved=\u00a7eYour hat has been removed.
banFormat=Banned: {0}
+moveSpeed=\u00a77Set {0} speed to {1} for {2}.
+walking=walking
+antiBuildPlace=\u00a74You are not permitted to place {0} here.
+antiBuildBreak=\u00a74You are not permitted to break {0} blocks here.
+antiBuildUse=\u00a74You are not permitted to use {0}.
+antiBuildInteract=\u00a74You are not permitted to interact with {0}.
diff --git a/Essentials/src/messages_it.properties b/Essentials/src/messages_it.properties
index b5be7ff6c..c3634eaad 100644
--- a/Essentials/src/messages_it.properties
+++ b/Essentials/src/messages_it.properties
@@ -443,3 +443,9 @@ youAreHealed=\u00a77Sei stato curato.
youHaveNewMail=\u00a7cHai {0} messaggi!\u00a7f digita \u00a77/mail read\u00a7f per consultare la tua mail.
hatRemoved=\u00a7eYour hat has been removed.
banFormat=Banned: {0}
+moveSpeed=\u00a77Set {0} speed to {1} for {2}.
+walking=walking
+antiBuildPlace=\u00a74You are not permitted to place {0} here.
+antiBuildBreak=\u00a74You are not permitted to break {0} blocks here.
+antiBuildUse=\u00a74You are not permitted to use {0}.
+antiBuildInteract=\u00a74You are not permitted to interact with {0}.
diff --git a/Essentials/src/messages_nl.properties b/Essentials/src/messages_nl.properties
index fcf90035d..a56888081 100644
--- a/Essentials/src/messages_nl.properties
+++ b/Essentials/src/messages_nl.properties
@@ -443,3 +443,9 @@ youAreHealed=\u00a77Je bent genezen.
youHaveNewMail=\u00a7cJe hebt {0} berichten!\u00a7f Type \u00a77/mail read\u00a7f om je berichten te bekijken.
hatRemoved=\u00a7eYour hat has been removed.
banFormat=Banned: {0}
+moveSpeed=\u00a77Set {0} speed to {1} for {2}.
+walking=walking
+antiBuildPlace=\u00a74You are not permitted to place {0} here.
+antiBuildBreak=\u00a74You are not permitted to break {0} blocks here.
+antiBuildUse=\u00a74You are not permitted to use {0}.
+antiBuildInteract=\u00a74You are not permitted to interact with {0}.
diff --git a/Essentials/src/messages_pl.properties b/Essentials/src/messages_pl.properties
index 8c177f987..9dc4d541f 100644
--- a/Essentials/src/messages_pl.properties
+++ b/Essentials/src/messages_pl.properties
@@ -443,3 +443,9 @@ youAreHealed=\u00a77Zostales/as uleczony/na.
youHaveNewMail=\u00a7cMasz {0} wiadomosci!\u00a7f napisz \u00a77/mail read\u00a7f aby je przeczytac.
hatRemoved=\u00a7eYour hat has been removed.
banFormat=Banned: {0}
+moveSpeed=\u00a77Set {0} speed to {1} for {2}.
+walking=walking
+antiBuildPlace=\u00a74You are not permitted to place {0} here.
+antiBuildBreak=\u00a74You are not permitted to break {0} blocks here.
+antiBuildUse=\u00a74You are not permitted to use {0}.
+antiBuildInteract=\u00a74You are not permitted to interact with {0}.
diff --git a/Essentials/src/messages_pt.properties b/Essentials/src/messages_pt.properties
index 056428eb2..43dfa69cf 100644
--- a/Essentials/src/messages_pt.properties
+++ b/Essentials/src/messages_pt.properties
@@ -443,3 +443,9 @@ youAreHealed=\u00a77Voc\u00ea foi curado.
youHaveNewMail=\u00a7cVoc\u00ea tem {0} mensagens!\u00a7f Digite \u00a77/mail read\u00a7f para ver seu email.
hatRemoved=\u00a7eYour hat has been removed.
banFormat=Banned: {0}
+moveSpeed=\u00a77Set {0} speed to {1} for {2}.
+walking=walking
+antiBuildPlace=\u00a74You are not permitted to place {0} here.
+antiBuildBreak=\u00a74You are not permitted to break {0} blocks here.
+antiBuildUse=\u00a74You are not permitted to use {0}.
+antiBuildInteract=\u00a74You are not permitted to interact with {0}.
diff --git a/Essentials/src/messages_se.properties b/Essentials/src/messages_se.properties
index dd7bf3846..2b339f037 100644
--- a/Essentials/src/messages_se.properties
+++ b/Essentials/src/messages_se.properties
@@ -414,24 +414,38 @@ weatherStorm=\u00a77Du har st\u00e4llt in v\u00e4dret till storm i {0}
weatherStormFor=\u00a77Du har st\u00e4llt in v\u00e4dret till storm i {0} f\u00f6r {1} sekunder
weatherSun=\u00a77Du har st\u00e4llt in v\u00e4dret till sol i {0}
weatherSunFor=\u00a77Du har st\u00e4llt in v\u00e4dret till sol i {0} f\u00f6r {1} sekunder
-whoisBanned=\u00a79 - Bannade spelare: {0}
-whoisExp=\u00a79 - Erfarenhet: {0} (Niv\u00e5 {1})
-whoisGamemode=\u00a79 - Spell\u00e4ge: {0}
-whoisGeoLocation=\u00a79 - Plats: {0}
-whoisGod=\u00a79 - Od\u00f6dlighet: {0}
-whoisHealth=\u00a79 - H\u00e4lsa: {0}/20
-whoisIPAddress=\u00a79 - IP-Adress: {0}
-whoisIs={0} \u00e4r {1}
-whoisJail=\u00a79 - F\u00e4ngelse: {0}
-whoisLocation=\u00a79 - Plats: ({0}, {1}, {2}, {3})
-whoisMoney=\u00a79 - Pengar: {0}
-whoisOP=\u00a79 - Operat\u00f6rer: {0}
-whoisStatusAvailable=\u00a79 - Status: Tillg\u00e4nglig
-whoisStatusAway=\u00a79 - Status: \u00a7cBorta\u00a7f
+whoisBanned=\u00a76 - Banned:\u00a7f {0}
+whoisExp=\u00a76 - Exp:\u00a7f {0} (Level {1})
+whoisGamemode=\u00a76 - Gamemode:\u00a7f {0}
+whoisGeoLocation=\u00a76 - Location:\u00a7f {0}
+whoisGod=\u00a76 - God mode:\u00a7f {0}
+whoisHealth=\u00a76 - Health:\u00a7f {0}/20
+whoisIPAddress=\u00a76 - IP Address:\u00a7f {0}
+whoisJail=\u00a76 - Jail:\u00a7f {0}
+whoisLocation=\u00a76 - Location:\u00a7f ({0}, {1}, {2}, {3})
+whoisMoney=\u00a76 - Money:\u00a7f {0}
worth=\u00a77Stapeln med {0} ({2} objekt) \u00e4r v\u00e4rd \u00a7c{1}\u00a77 ({3} styck)
worthMeta=\u00a77Stapeln med {0} av typ {1} ({3} objekt) \u00e4r v\u00e4rd \u00a7c{2}\u00a77 ({4} styck)
worthSet=V\u00e4rdet inst\u00e4llt
year=\u00e5r
years=\u00e5r
youAreHealed=\u00a77Du har blivit l\u00e4kt.
-youHaveNewMail=\u00a7cDu har {0} meddelanden!\u00a7f Skriv \u00a77/mail read\u00a7f f\u00f6r att l\u00e4sa dina meddelanden. \ No newline at end of file
+youHaveNewMail=\u00a7cDu har {0} meddelanden!\u00a7f Skriv \u00a77/mail read\u00a7f f\u00f6r att l\u00e4sa dina meddelanden.
+moveSpeed=\u00a77Set {0} speed to {1} for {2}.
+whoisMuted=\u00a76 - Muted:\u00a7f {0}
+whoisNick=\u00a76 - Nick:\u00a7f {0}
+whoisOp=\u00a76 - OP:\u00a7f {0}
+whoisTop=\u00a76 ====== WhoIs:\u00a7f {0} \u00a76======
+whoisAFK=\u00a76 - AFK:\u00a7f {0}
+whoisFly=\u00a76 - Fly mode:\u00a7f {0} ({1})
+hatRemoved=\u00a7eYour hat has been removed.
+banFormat=Banned: {0}
+walking=walking
+chatTypeAdmin=[A]
+flying=flying
+hatEmpty=\u00a7cYou are not wearing a hat.
+notFlying=not flying
+antiBuildPlace=\u00a74You are not permitted to place {0} here.
+antiBuildBreak=\u00a74You are not permitted to break {0} blocks here.
+antiBuildUse=\u00a74You are not permitted to use {0}.
+antiBuildInteract=\u00a74You are not permitted to interact with {0}.
diff --git a/Essentials/src/plugin.yml b/Essentials/src/plugin.yml
index 1ef0a0aee..899c20de6 100644
--- a/Essentials/src/plugin.yml
+++ b/Essentials/src/plugin.yml
@@ -9,7 +9,7 @@ authors: [Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans, Xe
commands:
afk:
description: Marks you as away-from-keyboard.
- usage: /<command>
+ usage: /<command> [player]
aliases: [eafk]
antioch:
description: 'A little surprise for operators.'
@@ -87,6 +87,10 @@ commands:
description: Enchants the item the user is holding.
usage: /<command> <enchantmentname> [level]
aliases: [enchantment,eenchant,eenchantment]
+ enderchest:
+ description: Lets you see inside an enderchest.
+ usage: /<command> [player]
+ aliases: [endersee,echest,eenderchest,eendersee,eechest]
essentials:
description: Reloads essentials.
usage: /<command>
@@ -322,6 +326,10 @@ commands:
description: Spawns a mob.
usage: /<command> <mob>[:data][,<mount>[:data]] [amount] [player]
aliases: [espawnmob,mob,emob]
+ speed:
+ description: Change your speed limits
+ usage: /<command> <speed> [player]
+ aliases: [flyspeed,walkspeed,fspeed,wspeed,eflyspeed,ewalkspeed,efspeed,ewspeed,espeed]
sudo:
description: Make another user perform a command.
usage: /<command> <player> <command [args]>
@@ -417,7 +425,7 @@ commands:
vanish:
description: Hide yourself from other players.
usage: /<command> [on|off]
- aliases: [evanish]
+ aliases: [v,evanish,ev]
warp:
description: List all warps or warp to the specified location.
usage: /<command> <pagenumber|warp> [player]
diff --git a/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java b/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java
index 3c5d9b889..7a1052cce 100644
--- a/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java
+++ b/EssentialsAntiBuild/src/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java
@@ -6,7 +6,6 @@ import com.earth2me.essentials.User;
import java.util.logging.Level;
import org.bukkit.Material;
import org.bukkit.block.Block;
-import org.bukkit.event.Event.Result;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
@@ -48,7 +47,7 @@ public class EssentialsAntiBuildListener implements Listener
{
if (ess.getSettings().isDebug())
{
- ess.getLogger().log(Level.INFO, "abort checking if " + user.getName() + " has " + dataPerm + " - not directly set");
+ ess.getLogger().log(Level.INFO, "DataValue perm on " + user.getName() + " is not directly set: " + dataPerm);
}
}
@@ -64,31 +63,35 @@ public class EssentialsAntiBuildListener implements Listener
}
final User user = ess.getUser(event.getPlayer());
+ final Block block = event.getBlockPlaced();
+ final int typeId = block.getTypeId();
+ final Material type = block.getType();
if (prot.getSettingBool(AntiBuildConfig.disable_build) && !user.canBuild() && !user.isAuthorized("essentials.build")
- && !metaPermCheck(user, "place", event.getBlock()))
+ && !metaPermCheck(user, "place", block))
{
if (ess.getSettings().warnOnBuildDisallow())
{
- user.sendMessage(_("buildAlert"));
+ user.sendMessage(_("antiBuildPlace", type.toString()));
}
event.setCancelled(true);
return;
}
- final Block blockPlaced = event.getBlockPlaced();
- final int id = blockPlaced.getTypeId();
-
- if (prot.checkProtectionItems(AntiBuildConfig.blacklist_placement, id) && !user.isAuthorized("essentials.protect.exemptplacement"))
+ if (prot.checkProtectionItems(AntiBuildConfig.blacklist_placement, typeId) && !user.isAuthorized("essentials.protect.exemptplacement"))
{
+ if (ess.getSettings().warnOnBuildDisallow())
+ {
+ user.sendMessage(_("antiBuildPlace", type.toString()));
+ }
event.setCancelled(true);
return;
}
- if (prot.checkProtectionItems(AntiBuildConfig.alert_on_placement, id)
+ if (prot.checkProtectionItems(AntiBuildConfig.alert_on_placement, typeId)
&& !user.isAuthorized("essentials.protect.alerts.notrigger"))
{
- prot.getEssentialsConnect().alert(user, blockPlaced.getType().toString(), _("alertPlaced"));
+ prot.getEssentialsConnect().alert(user, type.toString(), _("alertPlaced"));
}
}
@@ -100,27 +103,31 @@ public class EssentialsAntiBuildListener implements Listener
return;
}
final User user = ess.getUser(event.getPlayer());
+ final Block block = event.getBlock();
+ final int typeId = block.getTypeId();
+ final Material type = block.getType();
if (prot.getSettingBool(AntiBuildConfig.disable_build) && !user.canBuild() && !user.isAuthorized("essentials.build")
- && !metaPermCheck(user, "break", event.getBlock()))
+ && !metaPermCheck(user, "break", block))
{
if (ess.getSettings().warnOnBuildDisallow())
{
- user.sendMessage(_("buildAlert"));
+ user.sendMessage(_("antiBuildBreak", type.toString()));
}
event.setCancelled(true);
return;
}
- final Block block = event.getBlock();
- final int typeId = block.getTypeId();
if (prot.checkProtectionItems(AntiBuildConfig.blacklist_break, typeId)
&& !user.isAuthorized("essentials.protect.exemptbreak"))
{
+ if (ess.getSettings().warnOnBuildDisallow())
+ {
+ user.sendMessage(_("antiBuildBreak", type.toString()));
+ }
event.setCancelled(true);
return;
}
- final Material type = block.getType();
if (prot.checkProtectionItems(AntiBuildConfig.alert_on_break, typeId)
&& !user.isAuthorized("essentials.protect.alerts.notrigger"))
@@ -166,25 +173,16 @@ public class EssentialsAntiBuildListener implements Listener
{
// Do not return if cancelled, because the interact event has 2 cancelled states.
final User user = ess.getUser(event.getPlayer());
-
- if (event.hasItem()
- && (event.getItem().getType() == Material.WATER_BUCKET
- || event.getItem().getType() == Material.LAVA_BUCKET)
- && prot.getSettingBool(AntiBuildConfig.disable_build) && !user.canBuild() && !user.isAuthorized("essentials.build"))
- {
- if (ess.getSettings().warnOnBuildDisallow())
- {
- user.sendMessage(_("buildAlert"));
- }
- event.setCancelled(true);
- return;
- }
-
final ItemStack item = event.getItem();
+
if (item != null
&& prot.checkProtectionItems(AntiBuildConfig.blacklist_usage, item.getTypeId())
&& !user.isAuthorized("essentials.protect.exemptusage"))
{
+ if (ess.getSettings().warnOnBuildDisallow())
+ {
+ user.sendMessage(_("antiBuildUse", item.getType().toString()));
+ }
event.setCancelled(true);
return;
}
@@ -196,19 +194,24 @@ public class EssentialsAntiBuildListener implements Listener
prot.getEssentialsConnect().alert(user, item.getType().toString(), _("alertUsed"));
}
- if (prot.getSettingBool(AntiBuildConfig.disable_use) && !user.canBuild() && !user.isAuthorized("essentials.interact") && !user.isAuthorized("essentials.build"))
+ if (prot.getSettingBool(AntiBuildConfig.disable_use) && !user.canBuild() && !user.isAuthorized("essentials.build"))
{
- if (!metaPermCheck(user, "interact", event.getClickedBlock()))
+ if (event.hasItem() && !metaPermCheck(user, "interact", item.getTypeId(), item.getData().getData()))
{
- event.setUseInteractedBlock(Result.DENY);
+ event.setCancelled(true);
if (ess.getSettings().warnOnBuildDisallow())
{
- user.sendMessage(_("buildAlert"));
+ user.sendMessage(_("antiBuildUse", item.getType().toString()));
}
+ return;
}
- if (event.hasItem() && !metaPermCheck(user, "use", event.getItem().getTypeId(), event.getItem().getData().getData()))
+ if (event.hasBlock() && !metaPermCheck(user, "interact", event.getClickedBlock()))
{
- event.setUseItemInHand(Result.DENY);
+ event.setCancelled(true);
+ if (ess.getSettings().warnOnBuildDisallow())
+ {
+ user.sendMessage(_("antiBuildInteract", event.getClickedBlock().getType().toString()));
+ }
}
}
}
diff --git a/lib/bukkit.jar b/lib/bukkit.jar
index 393018b17..2ba5130a8 100644
--- a/lib/bukkit.jar
+++ b/lib/bukkit.jar
Binary files differ
diff --git a/lib/craftbukkit.jar b/lib/craftbukkit.jar
index bfde8874f..af761eebc 100644
--- a/lib/craftbukkit.jar
+++ b/lib/craftbukkit.jar
Binary files differ