Merge branch '2.9' of github.com:essentials/Essentials into release

This commit is contained in:
KHobbits 2012-08-28 02:55:02 +01:00
commit d201286fc5
30 changed files with 650 additions and 234 deletions

View File

@ -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);
}
}
}
}

View File

@ -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);
}
}
}
}

View File

@ -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();
}

View File

@ -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.

View File

@ -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.");
}
}

View File

@ -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;
@Override
public boolean warnOnBuildDisallow()
private boolean _warnOnBuildDisallow()
{
return config.getBoolean("protect.disable.warn-on-build-disallow", false);
}
@Override
public boolean warnOnBuildDisallow()
{
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);
}
}

View File

@ -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()

View File

@ -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);
}
}
}

View File

@ -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());
}
}

View File

@ -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;
}
}
}

View File

@ -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.");
}
}

View File

@ -18,6 +18,7 @@ public class MetricsStarter implements Runnable
private enum Modules
{
Essentials,
EssentialsAntiBuild,
EssentialsAntiCheat,
EssentialsChat,
EssentialsSpawn,

View File

@ -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 | #

View File

@ -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}.

View File

@ -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}.

View File

@ -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}.

View File

@ -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}.

View File

@ -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}.

View File

@ -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}.

View File

@ -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}.

View File

@ -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}.

View File

@ -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}.

View File

@ -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}.

View File

@ -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}.

View File

@ -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}.

View File

@ -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.
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}.

View File

@ -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]

View File

@ -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()));
}
}
}
}

Binary file not shown.

Binary file not shown.