diff options
28 files changed, 1007 insertions, 353 deletions
diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java index 7ffa0c138..49a6ebf23 100644 --- a/Essentials/src/com/earth2me/essentials/ISettings.java +++ b/Essentials/src/com/earth2me/essentials/ISettings.java @@ -136,4 +136,6 @@ public interface ISettings extends IConf boolean getFreezeAfkPlayers(); boolean areDeathMessagesEnabled(); + + public void setDebug(boolean debug); } diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index ca076c272..c19314e24 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -378,10 +378,12 @@ public class Settings implements ISettings return config.getBoolean("protect.disable.warn-on-build-disallow", false); } + private boolean debug = false; + @Override public boolean isDebug() { - return config.getBoolean("debug", false); + return debug || config.getBoolean("debug", false); } @Override @@ -532,4 +534,10 @@ public class Settings implements ISettings { return config.getBoolean("death-messages", true); } + + @Override + public void setDebug(final boolean debug) + { + this.debug = debug; + } } diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java index f0754cdb4..593abccbe 100644 --- a/Essentials/src/com/earth2me/essentials/User.java +++ b/Essentials/src/com/earth2me/essentials/User.java @@ -285,11 +285,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser public void setDisplayNick(String name) { setDisplayName(name); - //TODO: Maybe we need to limit nick length, or try use a string trim. - if (name.length() <= 16) - { - setPlayerListName(name); - } + setPlayerListName(name.length() > 16 ? name.substring(0, 16) : name); } @Override diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandessentials.java b/Essentials/src/com/earth2me/essentials/commands/Commandessentials.java index 328a4a8b5..a1a66854f 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandessentials.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandessentials.java @@ -23,6 +23,12 @@ public class Commandessentials extends EssentialsCommand @Override public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception { + if (args.length > 0 && args[0].equalsIgnoreCase("debug")) + { + ess.getSettings().setDebug(!ess.getSettings().isDebug()); + sender.sendMessage("Essentials " + ess.getDescription().getVersion() + " debug mode " + (ess.getSettings().isDebug() ? "enabled" : "disabled")); + return; + } final Map<String, Byte> noteMap = new HashMap<String, Byte>(); noteMap.put("1F#", (byte)0x0); noteMap.put("1G", (byte)0x1); diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandgamemode.java b/Essentials/src/com/earth2me/essentials/commands/Commandgamemode.java new file mode 100644 index 000000000..90e9df143 --- /dev/null +++ b/Essentials/src/com/earth2me/essentials/commands/Commandgamemode.java @@ -0,0 +1,44 @@ +package com.earth2me.essentials.commands; + +import com.earth2me.essentials.User; +import com.earth2me.essentials.Util; +import org.bukkit.GameMode; +import org.bukkit.Server; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + + +public class Commandgamemode extends EssentialsCommand +{ + public Commandgamemode() + { + super("gamemode"); + } + + @Override + public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception + { + Player player; + if (args.length == 0) + { + if (sender instanceof Player) + { + player = ess.getUser(sender); } + else + { + throw new NotEnoughArgumentsException(); + } + } + else + { + player = server.getPlayer(args[0]); + if (player == null) + { + throw new Exception(Util.i18n("playerNotFound")); + } + } + player.setGameMode(player.getGameMode() == GameMode.SURVIVAL ? GameMode.CREATIVE : GameMode.SURVIVAL); + //TODO: add this to messages? + sender.sendMessage(Util.format("gameMode", Util.i18n(player.getGameMode().toString().toLowerCase()), player.getDisplayName())); + } +} diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandnick.java b/Essentials/src/com/earth2me/essentials/commands/Commandnick.java index f2165aebc..534547e34 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandnick.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandnick.java @@ -15,85 +15,51 @@ public class Commandnick extends EssentialsCommand } @Override - public void run(Server server, User user, String commandLabel, String[] args) throws Exception + public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception { if (args.length < 1) { throw new NotEnoughArgumentsException(); } - - if (!ess.getSettings().changeDisplayName()) { + if (!ess.getSettings().changeDisplayName()) + { throw new Exception(Util.i18n("nickDisplayName")); } - if (args.length > 1) { if (!user.isAuthorized("essentials.nick.others")) { throw new Exception(Util.i18n("nickOthersPermission")); } - - setOthersNickname(server, user, args); - return; - } - - - String nick = args[0]; - if ("off".equalsIgnoreCase(nick) || user.getName().equalsIgnoreCase(nick)) - { - user.setDisplayNick(user.getName()); - user.setNickname(null); - user.sendMessage(Util.i18n("nickNoMore")); + setNickname(server, getPlayer(server, args, 0), args[1]); + user.sendMessage(Util.i18n("nickChanged")); return; } - - if (nick.matches("[^a-zA-Z_0-9]")) - { - throw new Exception(Util.i18n("nickNamesAlpha")); - } - - for (Player p : server.getOnlinePlayers()) - { - if (user == p) - { - continue; - } - String dn = p.getDisplayName().toLowerCase(); - String n = p.getName().toLowerCase(); - String nk = nick.toLowerCase(); - if (nk.equals(dn) || nk.equals(n)) - { - throw new Exception(Util.i18n("nickInUse")); - } - } - - user.setDisplayNick(ess.getSettings().getNicknamePrefix() + nick); - user.setNickname(nick); - user.sendMessage(Util.format("nickSet", user.getDisplayName() + "§7.")); + setNickname(server, user, args[0]); } @Override - public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception + public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception { if (args.length < 2) { throw new NotEnoughArgumentsException(); } - - if (!ess.getSettings().changeDisplayName()) { - sender.sendMessage(Util.i18n("nickDisplayName")); - return; + if (!ess.getSettings().changeDisplayName()) + { + throw new Exception(Util.i18n("nickDisplayName")); } - - setOthersNickname(server, sender, args); - + setNickname(server, getPlayer(server, args, 0), args[1]); + sender.sendMessage(Util.i18n("nickChanged")); } - private void setOthersNickname(Server server, CommandSender sender, String[] args) throws Exception + private void setNickname(final Server server, final User target, final String nick) throws Exception { - User target = getPlayer(server, args, 0); - String nick = args[1]; - if ("off".equalsIgnoreCase(nick) || target.getName().equalsIgnoreCase(nick)) + if (nick.matches("[^a-zA-Z_0-9]")) + { + throw new Exception(Util.i18n("nickNamesAlpha")); + } + else if ("off".equalsIgnoreCase(nick) || target.getName().equalsIgnoreCase(nick)) { target.setDisplayNick(target.getName()); target.setNickname(null); @@ -101,10 +67,25 @@ public class Commandnick extends EssentialsCommand } else { - target.setDisplayNick(ess.getSettings().getNicknamePrefix() + nick); - target.setNickname(nick); + final String formattedNick = nick.replace('&', '\u00a7').replace("\u00a7\u00a7", "&"); + for (Player p : server.getOnlinePlayers()) + { + if (target.getBase() == p) + { + continue; + } + String dn = p.getDisplayName().toLowerCase(); + String n = p.getName().toLowerCase(); + String nk = formattedNick.toLowerCase(); + if (nk.equals(dn) || nk.equals(n)) + { + throw new Exception(Util.i18n("nickInUse")); + } + } + + target.setDisplayNick(ess.getSettings().getNicknamePrefix() + formattedNick); + target.setNickname(formattedNick); target.sendMessage(Util.format("nickSet", target.getDisplayName() + "§7.")); } - sender.sendMessage(Util.i18n("nickChanged")); } } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandsuicide.java b/Essentials/src/com/earth2me/essentials/commands/Commandsuicide.java index ca9fee47b..e98a613ff 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandsuicide.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandsuicide.java @@ -18,6 +18,6 @@ public class Commandsuicide extends EssentialsCommand user.setHealth(0); user.sendMessage(Util.i18n("suicideMessage")); ess.broadcastMessage(user, - Util.format("suicideSuccess",user.getDisplayName())); + Util.format("suicideSuccess", user.getDisplayName())); } } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandunban.java b/Essentials/src/com/earth2me/essentials/commands/Commandunban.java index 4877c2aeb..c36fde0e7 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandunban.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandunban.java @@ -20,7 +20,7 @@ public class Commandunban extends EssentialsCommand { throw new NotEnoughArgumentsException(); } - + try { final User u = getPlayer(server, args, 0, true); @@ -29,7 +29,7 @@ public class Commandunban extends EssentialsCommand } catch (NoSuchFieldException e) { - sender.sendMessage(Util.i18n("playerNotFound")); + throw new Exception(Util.i18n("playerNotFound")); } } } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandwarp.java b/Essentials/src/com/earth2me/essentials/commands/Commandwarp.java index 36d1d0df0..accbca4b0 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandwarp.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandwarp.java @@ -8,6 +8,7 @@ import com.earth2me.essentials.Warps; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import org.bukkit.command.CommandSender; public class Commandwarp extends EssentialsCommand @@ -28,33 +29,7 @@ public class Commandwarp extends EssentialsCommand { throw new Exception(Util.i18n("warpListPermission")); } - - Warps warps = ess.getWarps(); - if (warps.isEmpty()) - { - throw new Exception(Util.i18n("noWarpsDefined")); - } - final List<String> warpNameList = new ArrayList<String>(warps.getWarpNames()); - final Iterator<String> iterator = warpNameList.iterator(); - while (iterator.hasNext()) - { - final String warpName = iterator.next(); - if (ess.getSettings().getPerWarpPermission() && !user.isAuthorized("essentials.warp." + warpName)) - { - iterator.remove(); - } - } - int page = 1; - if (args.length > 0) - { - page = Integer.parseInt(args[0]); - } - if (warpNameList.size() > WARPS_PER_PAGE) - { - user.sendMessage(Util.format("warpsCount", warpNameList.size(), page, (int)Math.ceil(warpNameList.size() / (double)WARPS_PER_PAGE))); - } - final int warpPage = (page - 1) * WARPS_PER_PAGE; - user.sendMessage(Util.joinList(warpNameList.subList(warpPage, warpPage+Math.min(warpNameList.size() - warpPage, WARPS_PER_PAGE)))); + warpList(user, args); throw new NoChargeException(); } if (args.length > 0) @@ -75,6 +50,57 @@ public class Commandwarp extends EssentialsCommand } } + public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception + { + if (args.length < 2 || args[0].matches("[0-9]+")) + { + warpList(null, args); + throw new NoChargeException(); + } + User otherUser = ess.getUser(server.getPlayer(args[1])); + if (otherUser == null) + { + throw new Exception(Util.i18n("playerNotFound")); + } + warpUser(otherUser, args[0]); + throw new NoChargeException(); + + } + + private void warpList(User user, String[] args) throws Exception + { + Warps warps = ess.getWarps(); + if (warps.isEmpty()) + { + throw new Exception(Util.i18n("noWarpsDefined")); + } + final List<String> warpNameList = new ArrayList<String>(warps.getWarpNames()); + + if (user != null) + { + final Iterator<String> iterator = warpNameList.iterator(); + while (iterator.hasNext()) + { + final String warpName = iterator.next(); + if (ess.getSettings().getPerWarpPermission() && !user.isAuthorized("essentials.warp." + warpName)) + { + iterator.remove(); + } + } + } + int page = 1; + if (args.length > 0) + { + page = Integer.parseInt(args[0]); + } + if (warpNameList.size() > WARPS_PER_PAGE) + { + user.sendMessage(Util.format("warpsCount", warpNameList.size(), page, (int)Math.ceil(warpNameList.size() / (double)WARPS_PER_PAGE))); + } + final int warpPage = (page - 1) * WARPS_PER_PAGE; + user.sendMessage(Util.joinList(warpNameList.subList(warpPage, warpPage + Math.min(warpNameList.size() - warpPage, WARPS_PER_PAGE)))); + } + private void warpUser(User user, String name) throws Exception { Trade charge = new Trade(this.getName(), ess); diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandwhois.java b/Essentials/src/com/earth2me/essentials/commands/Commandwhois.java index 1769202f5..164ddbcdc 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandwhois.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandwhois.java @@ -53,17 +53,18 @@ public class Commandwhois extends EssentialsCommand sender.sendMessage(""); sender.sendMessage(Util.format("whoisIs", u.getDisplayName(), u.getName())); sender.sendMessage(Util.format("whoisHealth", u.getHealth())); + sender.sendMessage(Util.format("whoisGamemode", Util.i18n(u.getGameMode().toString().toLowerCase()))); sender.sendMessage(Util.format("whoisLocation", u.getLocation().getWorld().getName(), u.getLocation().getBlockX(), u.getLocation().getBlockY(), u.getLocation().getBlockZ())); if (!ess.getSettings().isEcoDisabled()) { sender.sendMessage(Util.format("whoisMoney", Util.formatCurrency(u.getMoney(), ess))); } - sender.sendMessage(u.isAfk() - ? Util.i18n("whoisStatusAway") + sender.sendMessage(u.isAfk() + ? Util.i18n("whoisStatusAway") : Util.i18n("whoisStatusAvailable")); sender.sendMessage(Util.format("whoisIPAddress", u.getAddress().getAddress().toString())); final String location = u.getGeoLocation(); - if (location != null + if (location != null && (sender instanceof Player ? ess.getUser(sender).isAuthorized("essentials.geoip.show") : true)) { sender.sendMessage(Util.format("whoisGeoLocation", location)); diff --git a/Essentials/src/com/earth2me/essentials/signs/SignProtection.java b/Essentials/src/com/earth2me/essentials/signs/SignProtection.java index 157535cd9..ced8443a6 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignProtection.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignProtection.java @@ -35,10 +35,15 @@ public class SignProtection extends EssentialsSign protected boolean onSignCreate(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException, ChargeException { sign.setLine(3, "§4" + username); - if (hasAdjacentBlock(sign.getBlock()) && isBlockProtected(sign.getBlock(), player, username, true) != SignProtectionState.NOT_ALLOWED) + if (hasAdjacentBlock(sign.getBlock())) { - sign.setLine(3, "§1" + username); - return true; + final SignProtectionState state = isBlockProtected(sign.getBlock(), player, username, true); + if (state == SignProtectionState.NOSIGN || state == SignProtectionState.OWNER + || player.isAuthorized("essentials.signs.protection.override")) + { + sign.setLine(3, "§1" + username); + return true; + } } player.sendMessage(Util.i18n("signProtectInvalidLocation")); return false; @@ -183,11 +188,6 @@ public class SignProtection extends EssentialsSign SignProtectionState retstate = SignProtectionState.NOSIGN; for (SignProtectionState state : signs.values()) { - - if (state == SignProtectionState.OWNER) - { - return state; - } if (state == SignProtectionState.ALLOWED) { retstate = state; @@ -197,6 +197,16 @@ public class SignProtection extends EssentialsSign retstate = state; } } + if (!secure || retstate == SignProtectionState.NOSIGN) + { + for (SignProtectionState state : signs.values()) + { + if (state == SignProtectionState.OWNER) + { + return state; + } + } + } return retstate; } @@ -300,7 +310,7 @@ public class SignProtection extends EssentialsSign player.sendMessage(Util.format("noDestroyPermission", block.getType().toString().toLowerCase())); return false; } - + @Override public boolean onBlockBreak(final Block block, final IEssentials ess) { @@ -324,7 +334,7 @@ public class SignProtection extends EssentialsSign return state == SignProtectionState.NOSIGN; } - + @Override public boolean onBlockIgnite(final Block block, final IEssentials ess) { diff --git a/Essentials/src/com/earth2me/essentials/signs/SignWarp.java b/Essentials/src/com/earth2me/essentials/signs/SignWarp.java index 244450d8a..4aa4af11f 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignWarp.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignWarp.java @@ -35,7 +35,7 @@ public class SignWarp extends EssentialsSign throw new SignException(ex.getMessage(), ex); } final String group = sign.getLine(2); - if ("Everyone".equalsIgnoreCase(group)) + if ("Everyone".equalsIgnoreCase(group) || "Everybody".equalsIgnoreCase(group)) { sign.setLine(2, "§2Everyone"); } diff --git a/Essentials/src/messages.properties b/Essentials/src/messages.properties index ef149d68c..a01247e05 100644 --- a/Essentials/src/messages.properties +++ b/Essentials/src/messages.properties @@ -33,18 +33,19 @@ cantFindGeoIpDB = Can''t find GeoIP database! cantReadGeoIpDB = Failed to read GeoIP database! cantSpawnItem = \u00a7cYou are not allowed to spawn the item {0} commandFailed = Command {0} failed: -commandHelpFailedForPlugin = Error getting help for: {0} +commandHelpFailedForPlugin = Error getting help for: {0} commandNotLoaded = \u00a7cCommand {0} is improperly loaded. compassBearing = \u00a77Bearing: {0} ({1} degrees). configFileMoveError = Failed to move config.yml to backup location. configFileRenameError = Failed to rename temp file to config.yml -connectedPlayers = Connected players: +connectedPlayers = Connected players: connectionFailed = Failed to open connection. cooldownWithMessage = \u00a7cCooldown: {0} corruptNodeInConfig = \u00a74Notice: Your configuration file has a corrupt {0} node. couldNotFindTemplate = Could not find template {0} creatingConfigFromTemplate = Creating config from template: {0} creatingEmptyConfig = Creating empty config: {0} +creative=creative day = day days = days defaultBanReason = The Ban Hammer has spoken! @@ -78,6 +79,7 @@ failedToWriteConfig = Failed to write config {0} fileRenameError = Renaming file {0} failed foreverAlone = \u00a7cYou have nobody to whom you can reply. freedMemory = Freed {0} MB. +gameMode = \u00a77Set game mode {0} for {1}. gcchunks = chunks, gcentities = entities gcfree = Free memory: {0} MB @@ -103,8 +105,8 @@ hour = hour hours = hours ignorePlayer = You ignore player {0} from now on. illegalDate = Illegal date format. -infoChapter = Select chapter: -infoChapterPages = Chapter {0}, page \u00a7c{1}\u00a7f of \u00a7c{2}\u00a7f: +infoChapter = Select chapter: +infoChapterPages = Chapter {0}, page \u00a7c{1}\u00a7f of \u00a7c{2}\u00a7f: infoFileDoesNotExist = File info.txt does not exist. Creating one for you. infoPages = Page \u00a7c{0}\u00a7f of \u00a7c{1}\u00a7f: infoUnknownChapter = Unknown chapter. @@ -166,10 +168,10 @@ minute = minute minutes = minutes missingItems = You do not have {0}x {1}. missingPrefixSuffix = Missing a prefix or suffix for {0} -mobsAvailable = \u00a77Mobs: {0} mobSpawnError = Error while changing mob spawner. mobSpawnLimit = Mob quantity limited to server limit mobSpawnTarget = Target block must be a mob spawner. +mobsAvailable = \u00a77Mobs: {0} moneyRecievedFrom = \u00a7a{0} has been received from {1} moneySentTo = \u00a7a{0} has been sent to {1} moneyTaken = {0} taken from your bank account. @@ -189,7 +191,7 @@ nickInUse = \u00a7cThat name is already in use. nickNamesAlpha = \u00a7cNicknames must be alphanumeric. nickNoMore = \u00a77You no longer have a nickname. nickOthersPermission = \u00a7cYou do not have permission to change the nickname of others -nickSet = \u00a77Your nickname is now \u00a7c{0} +nickSet = \u00a77Your nickname is now \u00a7c{0} noAccessCommand = \u00a7cYou do not have access to that command. noAccessPermission = \u00a7cYou do not have permission to access that {0}. noDestroyPermission = \u00a7cYou do not have permission to destroy that {0}. @@ -203,8 +205,8 @@ noMailSendPerm = \u00a7cYou do not have the \u00a7fessentials.mail.send\u00a7c p noMotd = \u00a7cThere is no message of the day. noNewMail = \u00a77You have no new mail. noPendingRequest = You do not have a pending request. -noPowerTools = You have no power tools assigned. noPlacePermission = \u00a7cYou do not have permission to place a block near that sign. +noPowerTools = You have no power tools assigned. noRules = \u00a7cThere are no rules specified yet. noWarpsDefined = No warps defined none = none @@ -250,13 +252,13 @@ powerToolListEmpty = {0} has no commands assigned. powerToolNoSuchCommandAssigned = Command \u00a7c{0}\u00a7f has not been assigned to {1}. powerToolRemove = Command \u00a7c{0}\u00a7f removed from {1}. powerToolRemoveAll = All commands removed from {0}. -powerToolsEnabled = All of your power tools have been enabled. powerToolsDisabled = All of your power tools have been disabled. +powerToolsEnabled = All of your power tools have been enabled. protectionOwner = \u00a76[EssentialsProtect] Protection owner: {0} questionFormat = \u00a77[Question]\u00a7f {0} reloadAllPlugins = \u00a77Reloaded all plugins. repair = You have successfully repaired your: \u00a7e{0}. -repairAlreadyFixed = \u00a77This item does not need repairing. +repairAlreadyFixed = \u00a77This item does not need repairing. repairInvalidType = \u00a7cThis item cannot be repaired. repairNone = There were no items that needing repairing. requestAccepted = \u00a77Teleport request accepted. @@ -284,6 +286,7 @@ spawnSet = \u00a77Spawn location set for group {0}. spawned = spawned suicideMessage = \u00a77Goodbye Cruel World... suicideSuccess = \u00a77{0} took their own life +survival=survival takenFromAccount = \u00a7c{0} has been taken from your account. takenFromOthersAccount = \u00a7c{0} has been taken from {1} account. teleportAAll = \u00a77Teleporting request sent to all players... @@ -352,6 +355,7 @@ weatherStorm = \u00a77You set the weather to storm in {0} weatherStormFor = \u00a77You set the weather to storm in {0} for {1} seconds weatherSun = \u00a77You set the weather to sun in {0} weatherSunFor = \u00a77You set the weather to sun in {0} for {1} seconds +whoisGamemode = \u00a79 - Gamemode: {0} whoisGeoLocation = \u00a79 - Location: {0} whoisHealth = \u00a79 - Health: {0}/20 whoisIPAddress = \u00a79 - IP Address: {0} diff --git a/Essentials/src/messages_da.properties b/Essentials/src/messages_da.properties index 960fd8321..3061f0c74 100644 --- a/Essentials/src/messages_da.properties +++ b/Essentials/src/messages_da.properties @@ -33,18 +33,19 @@ cantFindGeoIpDB = Kan ikke finde GeoIP database! cantReadGeoIpDB = Fejl ved l\u00e6sning af GeoIP database! cantSpawnItem = \u00a7cDu er ikke tilladt at spawne elementet {0} commandFailed = Kommando {0} fejlede: -commandHelpFailedForPlugin=Fejl ved at f\u00e5 hj\u00e6lp til: {0} +commandHelpFailedForPlugin=Fejl ved at f\u00e5 hj\u00e6lp til: {0} commandNotLoaded = \u00a7cCommand {0} er ikke indl\u00e6st korrekt. compassBearing = \u00a77B\u00e6rer: {0} ({1} grader). configFileMoveError = Kunne ikke flytte config.yml til backup placering. configFileRenameError = Kunne ikke omd\u00f8be temp fil til config.yml -connectedPlayers = Tilsluttede spillere: +connectedPlayers = Tilsluttede spillere: connectionFailed = Failed ved \u00e5bning af forbindelse. cooldownWithMessage = \u00a7cNedk\u00f8lning: {0} corruptNodeInConfig = \u00a74Notice: Din konfigurations fil har en korrupt {0} node. couldNotFindTemplate = Kunne ikke finde skabelon {0} creatingConfigFromTemplate = Opretter config fra skabelon: {0} creatingEmptyConfig = Opretter tom config: {0} +creative=creative day = dag days = dage defaultBanReason = Ban hammeren har talt! @@ -78,6 +79,7 @@ failedToWriteConfig = Fejlede i at skrive config {0} fileRenameError = Resterende fil {0} fejlede foreverAlone = \u00a7cDu har ingen du kan svare. freedMemory = Befriede {0} MB. +gameMode=\u00a77Set game mode {0} for {1}. gcchunks = stykker, gcentities = enheder gcfree = Free memory: {0} MB @@ -103,8 +105,8 @@ hour = time hours = timer ignorePlayer = Du ignorere spiller {0} fra nu af. illegalDate = Ilegal dato format. -infoChapter = V\u00e6lg kapitel: -infoChapterPages = Kapitel {0}, side \u00a7c{1}\u00a7f af \u00a7c{2}\u00a7f: +infoChapter = V\u00e6lg kapitel: +infoChapterPages = Kapitel {0}, side \u00a7c{1}\u00a7f af \u00a7c{2}\u00a7f: infoFileDoesNotExist = Fil info.txt eksisterer ikke. Laver en for dig. infoPages = Side \u00a7c{0}\u00a7f af \u00a7c{1}\u00a7f: infoUnknownChapter = Ukendt kapitel. @@ -169,6 +171,7 @@ missingPrefixSuffix = Mangler et pr\u00e6fiks eller suffiks for {0} mobSpawnError = Fejl ved \u00e6ndring af mob fremkalder. mobSpawnLimit = Mob m\u00e6ngde begr\u00e6nset til server gr\u00e6nse mobSpawnTarget = M\u00e5l blok skal v\u00e6re en mob fremkalder. +mobsAvailable=\u00a77Mobs: {0} moneyRecievedFrom = \u00a7a{0} er modtaget fra {1} moneySentTo = \u00a7a{0} er sendt til {1} moneyTaken = {0} taget fra din bank konto. @@ -188,7 +191,7 @@ nickInUse = \u00a7cDet navn er allerede i brug. nickNamesAlpha = \u00a7cKaldenavne skal v\u00e6re alfanumeriske. nickNoMore = \u00a7Du har ikke l\u00e6ngere et kaldenavn. nickOthersPermission = \u00a7cDu har ikke tilladelse til at \u00e6ndre andres kaldenavn -nickSet = \u00a77Dit kaldenavn er nu \u00a7c{0} +nickSet = \u00a77Dit kaldenavn er nu \u00a7c{0} noAccessCommand = \u00a7cDu har ikke adgang til den kommando. noAccessPermission = \u00a7cDu har ikke tilladelse til at f\u00e5 adgang til det {0}. noDestroyPermission = \u00a7cDu har ikke tilladelse til at \u00f8del\u00e6gge det {0}. @@ -249,13 +252,13 @@ powerToolListEmpty = {0} has no commands assigned. powerToolNoSuchCommandAssigned = Command \u00a7c{0}\u00a7f has not been assigned to {1}. powerToolRemove = Command \u00a7c{0}\u00a7f removed from {1}. powerToolRemoveAll = All commands removed from {0}. -powerToolsEnabled= All of your power tools have been enabled. powerToolsDisabled= All of your power tools have been disabled. +powerToolsEnabled= All of your power tools have been enabled. protectionOwner = \u00a76[EssentialsProtect] Beskyttelses ejer: {0} questionFormat = \u00a77[Sp\u00f8rgsm\u00e5l]\u00a7f {0} reloadAllPlugins = \u00a77Genindl\u00e6ste alle tilf\u00f8jelser. repair = You have successfully repaired your: \u00a7e{0}. -repairAlreadyFixed = \u00a77This item does not need repairing. +repairAlreadyFixed = \u00a77This item does not need repairing. repairInvalidType = \u00a7cThis item cannot be repaired. repairNone = There were no items that needing repairing. requestAccepted = \u00a77Teleporterings anmodning n\u00e6gtet. @@ -283,6 +286,7 @@ spawnSet = \u00a77Spawn placering sat for gruppe {0}. spawned = spawnet suicideMessage = \u00a77Farvel grusomme verden... suicideSuccess = \u00a77{0} tog sit eget liv +survival=survival takenFromAccount = \u00a7c{0} er taget fra din konto. takenFromOthersAccount = \u00a7c{0} er blevet taget fra {1} konto. teleportAAll = \u00a77Teleporting request sent to all players... @@ -351,6 +355,7 @@ weatherStorm = \u00a77Du har sat vejret til storm i {0} weatherStormFor = \u00a77Du har sat vejret til storm i {0} i {1} sekunder weatherSun = \u00a77Du har sat vejret til sol i {0} weatherSunFor = \u00a77Du har sat vejret til sol i {0} i {1} sekunder +whoisGamemode = \u00a79 - Gamemode: {0} whoisGeoLocation = \u00a79 - Placering: {0} whoisHealth = \u00a79 - Helbred: {0}/20 whoisIPAddress = \u00a79 - IP Addresse: {0} @@ -366,5 +371,3 @@ year = \u00e5r years = \u00e5r youAreHealed = \u00a77Du er blevet helbredt. youHaveNewMail = \u00a7cDu har {0} beskeder!\u00a7f Type \u00a77/post l\u00e6s\u00a7f for at se din post. - - diff --git a/Essentials/src/messages_de.properties b/Essentials/src/messages_de.properties index f0ec0f493..c1b656ca8 100644 --- a/Essentials/src/messages_de.properties +++ b/Essentials/src/messages_de.properties @@ -33,21 +33,22 @@ cantFindGeoIpDB = Kann GeoIP-Datenbank nicht finden! cantReadGeoIpDB = Fehler beim Einlesen der GeoIP-Datenbank! cantSpawnItem = \u00a7cDu darfst {0} nicht erzeugen. commandFailed = Befehl {0} scheiterte: -commandHelpFailedForPlugin=Fehler beim Abrufen der Hilfe f\u00fcr: {0} +commandHelpFailedForPlugin=Fehler beim Abrufen der Hilfe f\u00fcr: {0} commandNotLoaded = \u00a7cBefehl {0} ist nicht richtig geladen. compassBearing = \u00a77Peilung: {0} ({1} Grad). configFileMoveError = Verschieben von config.yml in den Sicherheitskopien-Ordner gescheitert. configFileRenameError = Verschieben einer tempor\u00e4ren Datei nach config.yml gescheitert. -connectedPlayers = Verbundene Spieler: +connectedPlayers = Verbundene Spieler: connectionFailed = Fehler beim Verbindungsaufbau. cooldownWithMessage = \u00a7cBeschr\u00e4nkung: {0} corruptNodeInConfig = \u00a74Hinweis: Deine Konfigurationsdatei hat einen ung\u00fcltigen Knoten {0}. couldNotFindTemplate = Vorlage {0} konnte nicht gefunden werden. creatingConfigFromTemplate = Erstelle Konfiguration aus Vorlage: {0} creatingEmptyConfig = Erstelle leere Konfiguration: {0} +creative=creative day = Tag days = Tage -defaultBanReason = Der Bann-Hammer hat gesprochen! +defaultBanReason = Der Bann-Hammer hat gesprochen! deleteFileError = Konnte Datei nicht l\u00f6schen: {0} deleteHome = \u00a77Zuhause {0} wurde gel\u00f6scht. deleteJail = \u00a77Gef\u00e4ngnis {0} wurde gel\u00f6scht. @@ -78,6 +79,7 @@ failedToWriteConfig = Fehler beim Schreiben der Konfiguration {0} fileRenameError = Umbenennen von {0} gescheitert. foreverAlone = \u00a7cDu hast niemanden, dem du antworten kannst. freedMemory = {0} MB frei gemacht. +gameMode=\u00a77Set game mode {0} for {1}. gcchunks = Chunks, gcentities = Einheiten gcfree = Freier Speicher: {0} MB @@ -103,8 +105,8 @@ hour = Stunde hours = Stunden ignorePlayer = Du ignorierst ab jetzt Spieler {0}. illegalDate = Ung\u00fcltiges Datumsformat. -infoChapter = W\u00e4hle Kapitel: -infoChapterPages = Kapitel {0}, Seite \u00a7c{1}\u00a7f von \u00a7c{2}\u00a7f: +infoChapter = W\u00e4hle Kapitel: +infoChapterPages = Kapitel {0}, Seite \u00a7c{1}\u00a7f von \u00a7c{2}\u00a7f: infoFileDoesNotExist = Datei info.txt existiert nicht. Erzeuge eine neue Datei. infoPages = Seite \u00a7c{0}\u00a7f von \u00a7c{1}\u00a7f: infoUnknownChapter = Unbekanntes Kapitel: @@ -169,6 +171,7 @@ missingPrefixSuffix = Prefix/Suffix fehlt f\u00fcr {0} mobSpawnError = Fehler beim \u00e4ndern des Monster-Spawner. mobSpawnLimit = Anzahl an Monster auf Serverlimit beschr\u00e4nkt mobSpawnTarget = Zielblock, muss ein Monster-Spawner sein. +mobsAvailable=\u00a77Mobs: {0} moneyRecievedFrom = \u00a7a{1} hat dir {0} gegeben. moneySentTo = \u00a7aDu hast {1} {0} gegeben. moneyTaken = {0} wurde aus deiner Geldb\u00f6rse genommen. @@ -188,7 +191,7 @@ nickInUse = \u00a7cDieser Name wird bereits verwendet. nickNamesAlpha = \u00a7cNicknamen d\u00fcrfen nur alphanumerische Zeichen enthalten. nickNoMore = \u00a7Du hast keinen Nicknamen mehr. nickOthersPermission = \u00a7cDu hast keine Rechte um den Nicknamen von anderen zu \u00e4ndern. -nickSet = \u00a77Dein Nickname ist nun \u00a7c{0} +nickSet = \u00a77Dein Nickname ist nun \u00a7c{0} noAccessCommand = \u00a7cDu hast keinen Zugriff auf diesen Befehl. noAccessPermission = \u00a7cDu hast keine Rechte, den Block {0} zu \u00f6ffnen. noDestroyPermission = \u00a7cDu hast keine Rechte, den Block {0} zu zerst\u00f6ren. @@ -249,13 +252,13 @@ powerToolListEmpty = {0} hat keinen Befehl. powerToolNoSuchCommandAssigned = Befehl \u00a7c{0}\u00a7f wurde nicht zu {1} hinzugef\u00fcgt. powerToolRemove = Befehl \u00a7c{0}\u00a7f erfolgreich von {1} entfernt. powerToolRemoveAll = Alle Befehle von {0} entfernt. -powerToolsEnabled = Alle deine Powertools wurden aktiviert. powerToolsDisabled = Alle deine Powertools wurden deaktiviert. +powerToolsEnabled = Alle deine Powertools wurden aktiviert. protectionOwner = \u00a76[EssentialsProtect] Besitzer dieses Blocks: {0} questionFormat = \u00a77[Frage]\u00a7f {0} reloadAllPlugins = \u00a77Alle plugins neu geladen. repair = Du hast erfolgreich deine {0} repariert. -repairAlreadyFixed = \u00a77Dieser Gegenstand ben\u00f6tigt keine Reparatur. +repairAlreadyFixed = \u00a77Dieser Gegenstand ben\u00f6tigt keine Reparatur. repairInvalidType = \u00a7cDieser Gegenstand kann nicht repariert werden. repairNone = Es sind keine Gegenst\u00e4nde vorhanden, die repariert werden k\u00f6nnen. requestAccepted = \u00a77Teleportierungsanfrage akzeptiert. @@ -283,6 +286,7 @@ spawnSet = \u00a77Spawn-Punkt gesetzt f\u00fcr Gruppe {0}. spawned = erzeugt suicideMessage = \u00a77Lebewohl grausame Welt... suicideSuccess = \u00a77{0} hat sich das Leben genommen. +survival=survival takenFromAccount = \u00a7c{0} wurden aus deiner Geldb\u00f6rse genommen. takenFromOthersAccount = \u00a7c{0} wurde von {1} wurde Rechnung getragen. teleportAAll = \u00a77Teleportierungsanfrage zu allen Spielern gesendet... @@ -351,6 +355,7 @@ weatherStorm = \u00a77In {0} st\u00fcrmt es nun. weatherStormFor = \u00a77In {0} st\u00fcrmt es nun f\u00fcr {1} Sekunden. weatherSun = \u00a77In {0} scheint nun die Sonne. weatherSunFor = \u00a77In {0} scheint nun f\u00fcr {1} Sekunden die Sonne. +whoisGamemode = \u00a79 - Gamemode: {0} whoisGeoLocation = \u00a79 - Herkunft: {0} whoisHealth = \u00a79 - Gesundheit: {0}/20 whoisIPAddress = \u00a79 - IP-Adresse: {0} @@ -366,4 +371,3 @@ year = Jahr years = Jahre youAreHealed = \u00a77Du wurdest geheilt. youHaveNewMail = \u00a7cDu hast {0} Nachrichten!\u00a7f Schreibe \u00a77/mail read\u00a7f um deine Nachrichten anzuzeigen. - diff --git a/Essentials/src/messages_en.properties b/Essentials/src/messages_en.properties index e4d40adf2..2f3ae3560 100644 --- a/Essentials/src/messages_en.properties +++ b/Essentials/src/messages_en.properties @@ -33,18 +33,19 @@ cantFindGeoIpDB = Can''t find GeoIP database! cantReadGeoIpDB = Failed to read GeoIP database! cantSpawnItem = \u00a7cYou are not allowed to spawn the item {0} commandFailed = Command {0} failed: -commandHelpFailedForPlugin=Error getting help for: {0} +commandHelpFailedForPlugin=Error getting help for: {0} commandNotLoaded = \u00a7cCommand {0} is improperly loaded. compassBearing = \u00a77Bearing: {0} ({1} degrees). configFileMoveError = Failed to move config.yml to backup location. configFileRenameError = Failed to rename temp file to config.yml -connectedPlayers = Connected players: +connectedPlayers = Connected players: connectionFailed = Failed to open connection. cooldownWithMessage = \u00a7cCooldown: {0} corruptNodeInConfig = \u00a74Notice: Your configuration file has a corrupt {0} node. couldNotFindTemplate = Could not find template {0} creatingConfigFromTemplate = Creating config from template: {0} creatingEmptyConfig = Creating empty config: {0} +creative=creative day = day days = days defaultBanReason = The Ban Hammer has spoken! @@ -78,6 +79,7 @@ failedToWriteConfig = Failed to write config {0} fileRenameError = Renaming file {0} failed foreverAlone = \u00a7cYou have nobody to whom you can reply. freedMemory = Freed {0} MB. +gameMode=\u00a77Set game mode {0} for {1}. gcchunks = chunks, gcentities = entities gcfree = Free memory: {0} MB @@ -103,8 +105,8 @@ hour = hour hours = hours ignorePlayer = You ignore player {0} from now on. illegalDate = Illegal date format. -infoChapter = Select chapter: -infoChapterPages = Chapter {0}, page \u00a7c{1}\u00a7f of \u00a7c{2}\u00a7f: +infoChapter = Select chapter: +infoChapterPages = Chapter {0}, page \u00a7c{1}\u00a7f of \u00a7c{2}\u00a7f: infoFileDoesNotExist = File info.txt does not exist. Creating one for you. infoPages = Page \u00a7c{0}\u00a7f of \u00a7c{1}\u00a7f: infoUnknownChapter = Unknown chapter. @@ -169,6 +171,7 @@ missingPrefixSuffix = Missing a prefix or suffix for {0} mobSpawnError = Error while changing mob spawner. mobSpawnLimit = Mob quantity limited to server limit mobSpawnTarget = Target block must be a mob spawner. +mobsAvailable=\u00a77Mobs: {0} moneyRecievedFrom = \u00a7a{0} has been received from {1} moneySentTo = \u00a7a{0} has been sent to {1} moneyTaken = {0} taken from your bank account. @@ -188,7 +191,7 @@ nickInUse = \u00a7cThat name is already in use. nickNamesAlpha = \u00a7cNicknames must be alphanumeric. nickNoMore = \u00a77You no longer have a nickname. nickOthersPermission = \u00a7cYou do not have permission to change the nickname of others -nickSet = \u00a77Your nickname is now \u00a7c{0} +nickSet = \u00a77Your nickname is now \u00a7c{0} noAccessCommand = \u00a7cYou do not have access to that command. noAccessPermission = \u00a7cYou do not have permission to access that {0}. noDestroyPermission = \u00a7cYou do not have permission to destroy that {0}. @@ -249,13 +252,13 @@ powerToolListEmpty = {0} has no commands assigned. powerToolNoSuchCommandAssigned = Command \u00a7c{0}\u00a7f has not been assigned to {1}. powerToolRemove = Command \u00a7c{0}\u00a7f removed from {1}. powerToolRemoveAll = All commands removed from {0}. -powerToolsEnabled=All of your power tools have been enabled. powerToolsDisabled=All of your power tools have been enabled. +powerToolsEnabled=All of your power tools have been enabled. protectionOwner = \u00a76[EssentialsProtect] Protection owner: {0} questionFormat = \u00a77[Question]\u00a7f {0} reloadAllPlugins = \u00a77Reloaded all plugins. repair = You have successfully repaired your: \u00a7e{0}. -repairAlreadyFixed = \u00a77This item does not need repairing. +repairAlreadyFixed = \u00a77This item does not need repairing. repairInvalidType = \u00a7cThis item cannot be repaired. repairNone = There were no items that needing repairing. requestAccepted = \u00a77Teleport request accepted. @@ -283,6 +286,7 @@ spawnSet = \u00a77Spawn location set for group {0}. spawned = spawned suicideMessage = \u00a77Goodbye Cruel World... suicideSuccess = \u00a77{0} took their own life +survival=survival takenFromAccount = \u00a7c{0} has been taken from your account. takenFromOthersAccount = \u00a7c{0} has been taken from {1} account. teleportAAll = \u00a77Teleporting request sent to all players... @@ -351,6 +355,7 @@ weatherStorm = \u00a77You set the weather to storm in {0} weatherStormFor = \u00a77You set the weather to storm in {0} for {1} seconds weatherSun = \u00a77You set the weather to sun in {0} weatherSunFor = \u00a77You set the weather to sun in {0} for {1} seconds +whoisGamemode = \u00a79 - Gamemode: {0} whoisGeoLocation = \u00a79 - Location: {0} whoisHealth = \u00a79 - Health: {0}/20 whoisIPAddress = \u00a79 - IP Address: {0} @@ -366,5 +371,3 @@ year = year years = years youAreHealed = \u00a77You have been healed. youHaveNewMail = \u00a7cYou have {0} messages!\u00a7f Type \u00a77/mail read\u00a7f to view your mail. - - diff --git a/Essentials/src/messages_es.properties b/Essentials/src/messages_es.properties new file mode 100644 index 000000000..67cf6fa86 --- /dev/null +++ b/Essentials/src/messages_es.properties @@ -0,0 +1,373 @@ +#version: TeamCity +# Single quotes have to be doubled: '' +# Translations start here +# by: +action=* {0} {1} +addedToAccount = \u00a7a{0} ha sido agregado a tu cuenta. +addedToOthersAccount = \u00a7a{0} ha sido agregado a la cuenta de {1}. +alertBroke = roto: +alertFormat = \u00a73[{0}] \u00a7f {1} \u00a76 {2} en: {3} +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. +backupFinished = Copia de seguridad completada +backupStarted = Comenzando copia de seguridad +balance = \u00a77Cantidad: {0} +balanceTop = \u00a77Top {0} cantidades +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 +bigTreeFailure = \u00a7cBig Generacion de arbol fallida. Prueba de nuevo en hierba o arena. +bigTreeSuccess = \u00a77Big Arbol generado. +broadcast = [\u00a7cBroadcast\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 +cantSpawnItem = \u00a7cNo tienes acceso para producir este objeto {0} +commandFailed = Command {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 +connectedPlayers = Jugadores conectados: +connectionFailed = Error al abrir conexion. +cooldownWithMessage = \u00a7cCooldown: {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 +day = dia +days = dias +defaultBanReason = Baneado por incumplir las normas! +deleteFileError = No se puede borrar el archivo: {0} +deleteHome = \u00a77Home {0} ha sido borrado. +deleteJail = \u00a77Jail {0} ha sido borrado. +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... +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 +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} +enableUnlimited = \u00a77Dando cantidad ilimitada de {0} a {1}. +enabled = activado +errorCallingCommand = Error al ejecutar el comando /{0} +errorWithMessage = \u00a7cError: {0} +essentialsReload = \u00a77Essentials Recargado {0} +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} +fileRenameError = Error al renombrar el archivo {0} +foreverAlone = \u00a7cNo tienes nadie a quien puedas responder. +freedMemory = {0} MB libres. +gameMode=\u00a77Set game mode {0} for {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. +geoipJoinFormat = El jugador {0} viene de {1} +godDisabledFor = Desactivado para {0} +godEnabledFor = Activado para {0} +godMode = \u00a77Modo Dios {0}. +haveBeenReleased = \u00a77Has sido liberado +heal = \u00a77Has sido curado. +healOther = \u00a77Has curado a {0}. +helpConsole = Para obtener ayuda de la consola, escribe ?. +helpOp = \u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1} +helpPages = Pagina \u00a7c{0}\u00a7f de \u00a7c{1}\u00a7f: +holeInFloor = Agujero en el suelo +homeSet = \u00a77Hogar establecido. +homeSetToBed = \u00a77Tu hogar esta ahora establecido a 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: +infoFileDoesNotExist = El archivo info.txt no existe. Creando uno para ti. +infoPages = Pagina \u00a7c{0}\u00a7f de \u00a7c{1}\u00a7f: +infoUnknownChapter = Seccion desconocida. +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. +invalidMob = Mob invalido. +invalidServer = Servidor invalido! +invalidSignLine = Linea {0} en el signo es invalida. +invalidWorld = \u00a7cMundo invalido. +inventoryCleared = \u00a77Inventario limpiado. +inventoryClearedOthers = \u00a77Inventario de \u00a7c{0}\u00a77 limpiado. +is = es +itemCannotBeSold = Ese objeto no puede ser vendido al servidor. +itemMustBeStacked = El objeto tiene que ser intercambiado en pilas. Una cantidad de 2s seria de dos pilas, etc. +itemNotEnough1 = \u00a7cNo tienes suficientes ejemplares de ese objeto para venderlo. +itemNotEnough2 = \u00a77Si pensabas en vender todos tus objetos de ese tipo, usa /sell nombredeobjeto +itemNotEnough3 = \u00a77/sell nombredeobjeto -1 vendera todos excepto un objeto, etc. +itemSellAir = Realmente has intentado vender Aire? Pon un objeto en tu mano! +itemSold = \u00a77Vendido para \u00a7c {0} \u00a77 ({1} {2} a {3} cada uno) +itemSoldConsole = {0} Vendido {1} para\u00a77 {2} \u00a77({3} objetos a {4} cada uno) +itemSpawn = \u00a77Dando {0} de {1} +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. +jailReleasedPlayerNotify = \u00a77 Has sido liberado!! +jailSentenceExtended = El tiempo en la carcel se alarga hasta: {0) +jailSet = \u00a77Carcel {0} ha sido puesta +jumpError = Eso es demasiado para tu ordenador! +kickDefault = Echado del servidor. +kickExempt = \u00a7cNo puedes echar a esa persona. +kill = \u00a77ha matado a {0}. +kitError = \u00a7cNo hay ningun kit valido. +kitError2 = \u00a7cEse kit no existe o esta mal escrito. +kitErrorHelp = \u00a7cPerhaps an item is missing a quantity in the configuration? +kitGive = \u00a77Dando kit a {0}. +kitInvFull = \u00a7cTu inventario esta lleno, su 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 +lightningUse = \u00a77Golpeando a {0} +loadWarpError = Error al cargar el tenetransporte {0} +loadinfo = Cargado {0}, construido {1} por: {2} +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. +markedAsNotAway = \u00a77Ya no estas AFK. +maxHomes=No puedes establecer mas de {0} hogares. +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 +mobSpawnTarget = El block seleccionado sera el lugar donde van a nacer los mobs. +mobsAvailable = \u00a77Mobs: {0} +moneyRecievedFrom = \u00a7a{0} ha sido recivido de {1} +moneySentTo = \u00a7a{0} ha sido enviado a {1} +moneyTaken = {0} han sido sacados de tu cuenta bancaria. +month = mes +months = meses +moreThanZero = Las cantidades han de ser mayores que 0. +msgFormat = \u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2} +muteExempt = \u00a7cNo puedes silenciar a ese jugador. +mutedPlayer = Player {0} silenciado. +mutedPlayerFor = Player {0} silenciado durante {1}. +mutedUserSpeaks = {0} intento hablar, pero esta silenciado. +needTpohere = Necesitas acceso a /tpohere para teletransportar a otros jugadores. +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 +nickOthersPermission = \u00a7cNo tienes permiso para cambiar el nombre de usuario de otros. +nickSet = \u00a77Tu nombre es ahora \u00a7c{0} +noAccessCommand = \u00a7cNo tienes acceso a ese comando. +noAccessPermission = \u00a7cNo tienes permisos para hacer eso {0}. +noDestroyPermission = \u00a7cNo tienes permisos para destrozar eso {0}. +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 +noMailSendPerm = \u00a7cNo tienes el permiso de \u00a7fessentials.mail.send\u00a7c. +noMotd = \u00a7cNo hay ningun mensaje del dia. +noNewMail = \u00a77No tienes ningun correo nuevo. +noPendingRequest = No tienes ninguna peticion pendiente. +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 +none = ninguno +notAllowedToQuestion = \u00a7cYou estas autorizado para usar las preguntas. +notAllowedToShout = \u00a7cNo estas autorizado para gritar. +notEnoughMoney = No tienes el dinero suficiente. +notRecommendedBukkit = La version de bukkit no es la recomendada para esta version de Essentials. +notSupportedYet = No esta soportado aun. +now = ahora +numberRequired = Un numero es necesario, amigo. +onlyDayNight = /time solo soporta day/night. (dia/noche) +onlyPlayers = Solo los jugadores conectados pueden usar {0}. +onlySunStorm = /weather solo soporta sun/storm. (sol/tormenta) +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. +pTimeOthersPermission = \u00a7cNo estas autorizado para especificar'' la hora de otros usuarios. +pTimePlayers = Estos usuarios tienen su propia hora: +pTimeReset = La hora del usuario ha sido reiniciada a las: \u00a7e{0} +pTimeSet = La hora del jugador ha sido cambiada para las: \u00a73{0}\u00a7f for: \u00a7e{1} +pTimeSetFixed = La hora del jugador ha sido arreglada para las: \u00a73{0}\u00a7f for: \u00a7e{1} +parseError = error analizando {0} en la linea {1} +pendingTeleportCancelled = \u00a7cPeticion de teletransporte pendiente cancelado. +permissionsError = Falta el plugin Permissions/GroupManager; Los prefijos/sufijos de chat seran desactivados. +playerBanned = \u00a7cEl jugador {0} ha baneado a {1} durante {2} +playerInJail = \u00a7cEl jugador {0} ya esta en la carcel. +playerJailed = \u00a77Jugador {0} encarcelado. +playerJailedFor = \u00a77El jugador {0} ha sido encarcelado durante {1}. +playerKicked = \u00a7cEl jugador {0} echo a {1} durante {2} +playerMuted = \u00a77Has sido silenciado +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! +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}. +powerToolAttach = \u00a7c{0}\u00a7f comando asignado a {1}. +powerToolClearAll = Todos los comandos de powertool han sido borrados. +powerToolList = {1} tiene los siguientes comandos: \u00a7c{0}\u00a7f. +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. +protectionOwner = \u00a76[EssentialsProtect] Dueño de la proteccion: {0} +questionFormat = \u00a77[Pregunta]\u00a7f {0} +reloadAllPlugins = \u00a77Todos los plugins recargados. +repair = Has reparado satisfactoriamente tu: \u00a7e{0}. +repairAlreadyFixed = \u00a77Este objeto no necesita de reparado. +repairInvalidType = \u00a7cEste objeto no puede ser reparado. +repairNone = No habia objetos que necesitasen ser reparados. +requestAccepted = \u00a77Peticion de teletransporte aceptada. +requestAcceptedFrom = \u00a77{0} acepto tu peticion de teletransporte. +requestDenied = \u00a77Peticion de teletransporte denegada. +requestDeniedFrom = \u00a77{0} ha denegado tu peticion de teletransporte. +requestSent = \u00a77Peticion enviada a {0}\u00a77. +returnPlayerToJailError = Error al intentar quitar al jugador de la carcel. +second = segundo +seconds = segundos +seenOffline = El jugador {0} esta desconectado desde {1} +seenOnline = El jugador {0} lleva conectado desde {1} +serverFull = Servidor lleno +setSpawner = Cambiado tipo de lugar de nacimiento a {0} +sheepMalformedColor = Color malformado. +shoutFormat = \u00a77[Shout]\u00a7f {0} +signFormatFail = \u00a74[{0}] +signFormatSuccess = \u00a71[{0}] +signFormatTemplate = [{0}] +signProtectInvalidLocation = \u00a74No puedes poner carteles en ese sitio. +similarWarpExist = Ya existe un teletransporte con ese nombre. +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 +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} ha sido sacado de la cuenta de {1}. +teleportAAll = \u00a77Peticion de teletransporte enviada a todos los jugadores... +teleportAll = \u00a77Teletransportando a todos los jugadores... +teleportAtoB = \u00a77{0}\u00a77 te teletransporto a {1}\u00a77. +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. +teleportTop = \u00a77Teletransportandote a la cima. +teleportationCommencing = \u00a77Comenzando teletransporte... +teleportationDisabled = \u00a77Teletransporte desactivado. +teleportationEnabled = \u00a77Teletransporte activado. +teleporting = \u00a77Teletransportando... +teleportingPortal = \u00a77Teletransportando via portal. +tempBanned = Baneado temporalmente del servidor por {0} +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 +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. +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} +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. +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. +unbannedPlayer = Jugador desbaneado. +unignorePlayer = Ya no estas ignorando al jugador {0}. +unknownItemId = ID de objeto desconocido: {0} +unknownItemInList = Objeto desconocido {0} en {1} lista. +unknownItemName = Nombre de objeto desconocido: {0} +unlimitedItemPermission = \u00a7cNo tienes permiso para objetos ilimitados {0}. +unlimitedItems = Objetos ilimitados. +unmutedPlayer = Jugador {0} desmuteado. +upgradingFilesError = Error mientras se actualizaban los archivos +userDoesNotExist = El usuario {0} no existe +userIsAway = {0} esta ahora ausente! +userIsNotAway = {0} ya no esta ausente! +userJailed = \u00a77Has sido encarcelado! +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: +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. +warpSet = \u00a77Teletransporte {0} establecido. +warpUsePermission = \u00a7cNo tienes permisos para usar ese teletransporte. +warpingTo = \u00a77Teletransportandote a {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. +whoisGamemode=\u00a79 - Gamemode: {0} +whoisGeoLocation = \u00a79 - Localizacion: {0} +whoisHealth = \u00a79 - Salud: {0}/20 +whoisIPAddress = \u00a79 - Direccion IP: {0} +whoisIs = {0} es {1} +whoisLocation = \u00a79 - Localizacion: ({0}, {1}, {2}, {3}) +whoisMoney = \u00a79 - Dinero: {0} +whoisStatusAvailable = \u00a79 - Estado: Disponible +whoisStatusAway = \u00a79 - Status: \u00a7cAusente\u00a7f +worth = \u00a77Pila de {0} con valor de \u00a7c{1}\u00a77 ({2} objeto(s) a {3} cada uno) +worthMeta = \u00a77Pila de {0} con metadata de {1} , con valor de \u00a7c{2}\u00a77 ({3} objeto(s) a {4} cada uno) +worthSet = Establecer el valor de un valor +year = año +years = años +youAreHealed = \u00a77Has sido curado. +youHaveNewMail = \u00a7cTienes {0} mensajes!\u00a7f Pon \u00a77/mail read\u00a7f para ver tus emails no leidos!. diff --git a/Essentials/src/messages_fr.properties b/Essentials/src/messages_fr.properties index b96f48339..34b18e766 100644 --- a/Essentials/src/messages_fr.properties +++ b/Essentials/src/messages_fr.properties @@ -5,10 +5,10 @@ action = * {0} {1} addedToAccount = \u00a7a{0} a \u00e9t\u00e9 rajout\u00e9 a votre compte. addedToOthersAccount = \u00a7a{0} a \u00e9t\u00e9 ajout\u00e9 \u00e0 {1} compte. -alertBroke = a cass\u00e9: +alertBroke = a cass\u00e9: alertFormat = \u00a73[{0}] \u00a7f {1} \u00a76 {2} \u00e0:{3} -alertPlaced = a plac\u00e9: -alertUsed = a utilis\u00e9: +alertPlaced = a plac\u00e9: +alertUsed = a utilis\u00e9: autoAfkKickReason=You have been kicked for idling more than {0} minutes. backAfterDeath = \u00a77Utilisez la commande /back pour retourner \u00e0 l''endroit ou vous \u00eates mort. backUsageMsg = \u00a77Retour a votre emplacement pr\u00e9c\u00e8dent. @@ -33,7 +33,7 @@ cantFindGeoIpDB = N''arrive pas \u00e0 trouver la base de donn\u00e9es GeoIP! cantReadGeoIpDB = Echec de la lecture de la base de donn\u00e9s GeoIP! cantSpawnItem = \u00a7cVous n''avez pas le droit de faire apparaitre {0} commandFailed = \u00c9chec de la commande {0}: -commandHelpFailedForPlugin=Erreur d'obtention d'aider \u00e0: {0} +commandHelpFailedForPlugin=Erreur d'obtention d'aider \u00e0: {0} commandNotLoaded = \u00a7cLa commande {0} a \u00e9t\u00e9 mal charg\u00e9e. compassBearing = \u00a77Orientation: {0} ({1} degr\u00e9s). configFileMoveError = \u00c9chec du d\u00e9placement de config.yml vers l''emplacement de backup. @@ -45,6 +45,7 @@ corruptNodeInConfig = \u00a74Annonce: Votre fichier de configuration a un {0} n\ couldNotFindTemplate = Le mod\u00e8le {0} est introuvable creatingConfigFromTemplate = Cr\u00e9ation de la configuration \u00e0 partir du mod\u00e8le : {0} creatingEmptyConfig = Cr\u00e9ation d''une configuration vierge : {0} +creative=creative day = jour days = jours defaultBanReason = Le marteau du ban a frapp\u00e9! @@ -78,6 +79,7 @@ failedToWriteConfig = \u00c9chec de l''\u00e9criture de la configuration {0} fileRenameError = Echec du changement de nom de {0}. foreverAlone = \u00a7cVous n''avez personne \u00e0 qui r\u00e9pondre. freedMemory = A lib\u00e9r\u00e9 {0} Mo. +gameMode=\u00a77Set game mode {0} for {1}. gcchunks = chunks, gcentities = entit\u00e9s gcfree = Free memory: {0} Mo @@ -103,7 +105,7 @@ hour = heure hours = heures ignorePlayer = Vous ignorez d\u00e9sormais {0}. illegalDate = Format de date ill\u00e9gal. -infoChapter = S\u00e9lectionner le chapitre : +infoChapter = S\u00e9lectionner le chapitre : infoChapterPages = Chapitre {0}, page \u00a7c{1}\u00a7f sur \u00a7c{2}\u00a7f: infoFileDoesNotExist = Le fichier info.txt n''existe pas. Le fichier est en cours de cr\u00e9ation pour vous. infoPages = Page \u00a7c{0}\u00a7f de \u00a7c{1}\u00a7f. @@ -169,6 +171,7 @@ missingPrefixSuffix = Pr\u00e9fixe ou Suffixe manquant pour {0} mobSpawnError = Erreur lors du changement du spawner de monstres. mobSpawnLimit = Quantit\u00e9 de monstres limit\u00e9 \u00e0 la limite du serveur. mobSpawnTarget = Le bloc cible doit \u00eatre un spawner de monstres. +mobsAvailable=\u00a77Mobs: {0} moneyRecievedFrom = \u00a7a{0} a \u00e9t\u00e9 re\u00e7u de {1} moneySentTo = \u00a7a{0} a \u00e9t\u00e9 envoy\u00e9 \u00e0 {1} moneyTaken = {0} pr\u00e9lev\u00e9(s) de votre compte bancaire. @@ -249,13 +252,13 @@ powerToolListEmpty = {0} has no commands assigned. powerToolNoSuchCommandAssigned = Command \u00a7c{0}\u00a7f has not been assigned to {1}. powerToolRemove = Command \u00a7c{0}\u00a7f removed from {1}. powerToolRemoveAll = All commands removed from {0}. -powerToolsEnabled=All of your power tools have been enabled. powerToolsDisabled=All of your power tools have been disabled. +powerToolsEnabled=All of your power tools have been enabled. protectionOwner = \u00a76[EssentialsProtect] Propri\u00e9taire de la protection : {0} questionFormat = \u00a77[Question]\u00a7f {0} reloadAllPlugins = \u00a77Tous les plugins ont \u00e9t\u00e9 recharg\u00e9s. repair = You have successfully repaired your: \u00a7e{0}. -repairAlreadyFixed = \u00a77This item does not need repairing. +repairAlreadyFixed = \u00a77This item does not need repairing. repairInvalidType = \u00a7cThis item cannot be repaired. repairNone = There were no items that needing repairing. requestAccepted = \u00a77Demande de t\u00e9l\u00e9portation accept\u00e9e. @@ -283,6 +286,7 @@ spawnSet = \u00a77Le point de spawn a \u00e9t\u00e9 d\u00e9fini pour le groupe { spawned = spawn\u00e9 suicideMessage = \u00a77Au revoir monde cruel... suicideSuccess = \u00a77{0} a pris sa propre vie. +survival=survival takenFromAccount = \u00a7c{0} ont \u00e9t\u00e9 pris de votre compte. takenFromOthersAccount = \u00a7c{0} a \u00e9t\u00e9 prise de {1} compte. teleportAAll = \u00a77Teleporting request sent to all players... @@ -351,6 +355,7 @@ weatherStorm = \u00a77Vous avez d\u00e9fini l''orage dans {0} weatherStormFor = \u00a77Vous avez d\u00e9fini l''orage dans {0} pour {1} secondes. weatherSun = \u00a77Vous avez mis le beau temps dans {0} weatherSunFor = \u00a77Vous avez mis le beau temps dans {0} pour {1} secondes. +whoisGamemode = \u00a79 - Gamemode: {0} whoisGeoLocation = \u00a79 - Emplacement: {0} whoisHealth = \u00a79 - Vie: {0} / 20 whoisIPAddress = \u00a79 - Adresse IP: {0} @@ -366,5 +371,3 @@ year = ann\u00e9e years = ann\u00e9es youAreHealed = \u00a77Vous avez \u00e9t\u00e9 soign\u00e9. youHaveNewMail = \u00a7cVous avez {0} messages! \u00a7fEntrez \u00a77/mail read\u00a7f pour voir votre courrier. - - diff --git a/Essentials/src/messages_nl.properties b/Essentials/src/messages_nl.properties index f5d9fdc70..502bcf6b0 100644 --- a/Essentials/src/messages_nl.properties +++ b/Essentials/src/messages_nl.properties @@ -33,18 +33,19 @@ cantFindGeoIpDB = De GeoIP database kon niet gevonden worden! cantReadGeoIpDB = Fout bij het lezen van de GeoIP database! cantSpawnItem = \u00a7cJe bent niet bevoegd om {0} te spawnen. commandFailed = Opdracht {0} mislukt: -commandHelpFailedForPlugin=Fout bij het \u200b\u200bkrijgen van hulp voor: {0} +commandHelpFailedForPlugin=Fout bij het \u200b\u200bkrijgen van hulp voor: {0} commandNotLoaded = \u00a7cOpdracht {0} is fout geladen. compassBearing = \u00a77Ligging: {0} ({1} graden). configFileMoveError = Het verplaatsen van config.yml naar de backup locatie is mislukt. configFileRenameError = Fout bij het hernoemen van de tijdelijke map naar config.yml -connectedPlayers = Spelers online: +connectedPlayers = Spelers online: connectionFailed = Fout bij het verbinden. cooldownWithMessage = \u00a7cAfkoeltijd: {0} corruptNodeInConfig = \u00a74Waarschuwing: Het configuratiebestand bevat een fout {0}. couldNotFindTemplate = Het sjabloon kon niet worden gevonden {0} creatingConfigFromTemplate = Bezig met aanmaken van een config vanaf sjabloon: {0} creatingEmptyConfig = Bezig met een lege config aanmaken: {0} +creative=creative day = dag days = dagen defaultBanReason = De Ban Hamer heeft gesproken! @@ -78,6 +79,7 @@ failedToWriteConfig = Fout bij het cre\u00ebren van config {0} fileRenameError = Hernoemen van {0} mislukt foreverAlone = \u00a7cJe hebt niemand waarnaar je kan reageren. freedMemory = {0} MB gelost. +gameMode=\u00a77Set game mode {0} for {1}. gcchunks = chunks, gcentities = entities gcfree = Vrij geheugen: {0} MB @@ -103,8 +105,8 @@ hour = uur hours = uren ignorePlayer = Je negeert {0} vanaf nu. illegalDate = Illegaal data formaat. -infoChapter = Selecteer hoofdstuk: -infoChapterPages = Hoofdstuk {0}, Pagina \u00a7c{1}\u00a7f van de \u00a7c{2}\u00a7f: +infoChapter = Selecteer hoofdstuk: +infoChapterPages = Hoofdstuk {0}, Pagina \u00a7c{1}\u00a7f van de \u00a7c{2}\u00a7f: infoFileDoesNotExist = Bestand info.txt bestaat niet. Bezig met aanmaken. infoPages = Pagina \u00a7c{0}\u00a7f van de \u00a7c{1}\u00a7f: infoUnknownChapter = Onbekend hoofdstuk. @@ -123,7 +125,7 @@ is = is itemCannotBeSold = Dat voorwerp kan niet aan de server worden verkocht. itemMustBeStacked = Voorwerp moet geruild worden als stapel. Een hoeveelheid van 2 moet dus geruild worden als twee stapels, etc. itemNotEnough1 = \u00a7cJe hebt niet genoeg van dat voorwerp om te verkopen. -itemNotEnough2 = \u00a77Type /sell itemname Als je alles daarvan wilt verkopen +itemNotEnough2 = \u00a77Type /sell itemname Als je alles daarvan wilt verkopen itemNotEnough3 = \u00a77/sell itemname -1 zorgt ervoor dat ze allemaal behalve 1 worden verkocht, etc. itemSellAir = Je wilde serieus lucht verkopen? Plaats een voorwerp in je hand. itemSold = \u00a77Verkocht voor \u00a7c{0} \u00a77({1} {2} voorwerpen voor {3} per stuk) @@ -169,6 +171,7 @@ missingPrefixSuffix = Er mist een prefix of suffix voor {0} mobSpawnError = Fout bij het veranderen van de mob spawner. mobSpawnLimit = Grootte van de mob hang af van het server limiet mobSpawnTarget = Target blok moet een mob spawner zijn. +mobsAvailable=\u00a77Mobs: {0} moneyRecievedFrom = \u00a7a{0} is ontvangen van {1} moneySentTo = \u00a7a{0} is verzonden naar {1} moneyTaken = {0} van je bankrekening afgehaald. @@ -188,7 +191,7 @@ nickInUse = \u00a7cDie naam is al in gebruik. nickNamesAlpha = \u00a7cNicknames moeten alfanumeriek zijn. nickNoMore = \u00a7Je hebt geen nickname meer. nickOthersPermission = \u00a7cJe hebt geen toestemming om de nickname van anderen te veranderen -nickSet = \u00a77Je nickname is nu \u00a7c{0} +nickSet = \u00a77Je nickname is nu \u00a7c{0} noAccessCommand = \u00a7cJe hebt geen toegang tot die opdracht. noAccessPermission = \u00a7cJe hebt hier geen toegang voor {0}. noDestroyPermission = \u00a7cJe hebt geen toegang om dat te vernietigen {0}. @@ -249,13 +252,13 @@ powerToolListEmpty = {0} has no commands assigned. powerToolNoSuchCommandAssigned = Command \u00a7c{0}\u00a7f has not been assigned to {1}. powerToolRemove = Command \u00a7c{0}\u00a7f removed from {1}. powerToolRemoveAll = All commands removed from {0}. -powerToolsEnabled=All of your power tools have been enabled. powerToolsDisabled=All of your power tools have been disabled. +powerToolsEnabled=All of your power tools have been enabled. protectionOwner = \u00a76[EssentialsProtect] Beschermingeigenaar: {0} questionFormat = \u00a77[Vraag]\u00a7f {0} reloadAllPlugins = \u00a77Alle plugins zijn herladen. repair = You have successfully repaired your: \u00a7e{0}. -repairAlreadyFixed = \u00a77This item does not need repairing. +repairAlreadyFixed = \u00a77This item does not need repairing. repairInvalidType = \u00a7cThis item cannot be repaired. repairNone = There were no items that needing repairing. requestAccepted = \u00a77Teleporteer aanvraag geaccepteerd. @@ -283,6 +286,7 @@ spawnSet = \u00a77Spawn locatie voor de groep {0} ingesteld. spawned = gespawned suicideMessage = \u00a77Vaarwel vreedzame wereld... suicideSuccess = \u00a77{0} pleegde zelfmoord +survival=survival takenFromAccount = \u00a7c{0} is van je bank rekening afgehaald. takenFromOthersAccount = \u00a7c{0} is overgenomen uit {1} account. teleportAAll = \u00a77Teleporting request sent to all players... @@ -351,6 +355,7 @@ weatherStorm = \u00a77Je hebt het weer naar storm gezet in de {0} weatherStormFor = \u00a77Je hebt het weer in de {0} naar storm gezet voor {1} seconde weatherSun = \u00a77Je hebt het weer naar zon gezet in de {0} weatherSunFor = \u00a77Je hebt het weer in de {0} naar zon gezet voor {1} seconde +whoisGamemode = \u00a79 - Gamemode: {0} whoisGeoLocation = \u00a79 - Locatie: {0} whoisHealth = \u00a79 - Levens: {0}/20 whoisIPAddress = \u00a79 - IP Adres: {0} @@ -366,5 +371,3 @@ year = jaar years = jaren youAreHealed = \u00a77Je bent genezen. youHaveNewMail = \u00a7cJe hebt {0} berichten!\u00a7f Type \u00a77/mail read\u00a7f om je berichten te bekijken. - - diff --git a/Essentials/src/plugin.yml b/Essentials/src/plugin.yml index 1240910ce..a82ec81a2 100644 --- a/Essentials/src/plugin.yml +++ b/Essentials/src/plugin.yml @@ -18,7 +18,7 @@ commands: back: description: Teleports you to your location prior to tp/spawn/warp. usage: /<command> - aliases: [eback] + aliases: [eback,return,ereturn] backup: description: Runs the backup if configured. usage: /<command> @@ -78,7 +78,7 @@ commands: eco: description: Manages the server economy. usage: /<command> [give|take|reset] [player] [amount] - aliases: [economy,emoney] + aliases: [economy,eeco,eeconomy] essentials: description: Reloads essentials. usage: /<command> @@ -90,10 +90,14 @@ commands: description: Throw a fireball. usage: /<command> aliases: [efireball] + gamemode: + description: Change player gamemode. + usage: /<command> [player] + aliases: [gm,creative,creativemode,egamemode,ecreative,ecreativemode,egm] getpos: description: Get your current coordinates. usage: /<command> - aliases: [coords,egetpos] + aliases: [coords,egetpos,whereami,ewhereami] gc: description: Reports garbage collection info; useful to developers. usage: /<command> @@ -104,8 +108,8 @@ commands: aliases: [egive] god: description: Enables your godly powers. - usage: /<command> - aliases: [tgm,godmode,egod,egodmode,etgm] + usage: /<command> [player] + aliases: [tgm,godmode,egod,etgm,egodmode] heal: description: Heals you or the given player. usage: /<command> <player> @@ -169,7 +173,7 @@ commands: lightning: description: The power of Thor. Strike at cursor or player. usage: /<command> [player] - aliases: [strike,smite,elightning,estrike,esmite] + aliases: [strike,smite,thor,shock,elightning,estrike,esmite,ethor,eshock] mail: description: Manages inter-player, intra-server mail. usage: /<command> [read|clear|send [to] [message]] @@ -177,7 +181,7 @@ commands: me: description: Describes an action in the context of the player. usage: /<command> [description] - aliases: [eme] + aliases: [action,describe,eme,eaction,edescribe] motd: description: Views the Message Of The Day. usage: /<command> @@ -212,7 +216,7 @@ commands: aliases: [pt,epowertool,ept] powertooltoggle: description: Enables or disables all current powertools - usage: /<command> + usage: /<command> aliases: [ptt,epowertooltoggle,eptt] ptime: description: Adjust player's client time. Add @ prefix to fix. @@ -305,39 +309,47 @@ commands: tpa: description: Request to teleport to the specified player. usage: /<command> <player> + aliases: [call,etpa,ecal] tpaall: description: Requests all players online to teleport to you. usage: /<command> <player> + aliases: [etpaall] tpaccept: description: Accepts a teleport request. usage: /<command> - aliases: [tpyes] + aliases: [tpyes,etpaccept,etpyes] tpahere: description: Request that the specified player teleport to you. usage: /<command> <player> + aliases: [etpahere] tpall: description: Teleport all online players to another player. usage: /<command> <player> + aliases: [etpall] tpdeny: description: Reject a teleport request. usage: /<command> - aliases: [tpno] + aliases: [tpno,etpdeny,etpno] tphere: description: Teleport a player to you. usage: /<command> [player] - aliases: [s] + aliases: [s,etphere] tpo: description: Teleport override for tptoggle. usage: /<command> <player> + aliases: [etpo] tpohere: description: Teleport here override for tptoggle. usage: /<command> <player> + aliases: [etpohere] tppos: description: Teleport to coordinates. usage: /<command> <x> <y> <z> [yaw] [pitch] + aliases: [etppos] tptoggle: description: Blocks all forms of teleportation. usage: /<command> + aliases: [etptoggle] tree: description: Spawn a tree where you are looking. usage: /<command> [tree|birch|redwood] diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChat.java b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChat.java index 7a10d9a92..c0559ddef 100644 --- a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChat.java +++ b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChat.java @@ -24,8 +24,12 @@ public class EssentialsChat extends JavaPlugin chatListener = new HashMap<String, IEssentialsChatListener>(); - final EssentialsChatPlayerListener playerListener = new EssentialsChatPlayerListener(getServer(), ess, chatListener); - pluginManager.registerEvent(Type.PLAYER_CHAT, playerListener, Priority.High, this); + final EssentialsChatPlayerListenerLowest playerListenerLowest = new EssentialsChatPlayerListenerLowest(getServer(), ess, chatListener); + final EssentialsChatPlayerListenerNormal playerListenerNormal = new EssentialsChatPlayerListenerNormal(getServer(), ess, chatListener); + final EssentialsChatPlayerListenerHighest playerListenerHighest = new EssentialsChatPlayerListenerHighest(getServer(), ess, chatListener); + pluginManager.registerEvent(Type.PLAYER_CHAT, playerListenerLowest, Priority.Lowest, this); + pluginManager.registerEvent(Type.PLAYER_CHAT, playerListenerNormal, Priority.Normal, this); + pluginManager.registerEvent(Type.PLAYER_CHAT, playerListenerHighest, Priority.Highest, this); if (!this.getDescription().getVersion().equals(ess.getDescription().getVersion())) { LOGGER.log(Level.WARNING, Util.i18n("versionMismatchAll")); diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayer.java b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayer.java new file mode 100644 index 000000000..aeaa38d89 --- /dev/null +++ b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayer.java @@ -0,0 +1,163 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package com.earth2me.essentials.chat; + +import com.earth2me.essentials.ChargeException; +import com.earth2me.essentials.IEssentials; +import com.earth2me.essentials.Trade; +import com.earth2me.essentials.User; +import com.earth2me.essentials.Util; +import java.util.Map; +import java.util.logging.Logger; +import org.bukkit.Location; +import org.bukkit.Server; +import org.bukkit.World; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.event.player.PlayerChatEvent; +import org.bukkit.event.player.PlayerListener; + + +/** + * + * @author Seiji + */ +public abstract class EssentialsChatPlayer extends PlayerListener +{ + protected transient IEssentials ess; + protected final static Logger logger = Logger.getLogger("Minecraft"); + protected final transient Map<String, IEssentialsChatListener> listeners; + protected final transient Server server; + + public EssentialsChatPlayer(Server server, IEssentials ess, Map<String, IEssentialsChatListener> listeners) + { + this.ess = ess; + this.listeners = listeners; + this.server = server; + } + + public void onPlayerChat(final PlayerChatEvent event) + { + } + + public boolean isAborted(final PlayerChatEvent event) + { + return isAborted(event, "chat"); + } + + public boolean isAborted(final PlayerChatEvent event, final String command) + { + if (event.isCancelled()) + { + return true; + } + for (IEssentialsChatListener listener : listeners.values()) + { + if (listener.shouldHandleThisChat(event)) + { + return true; + } + } + + final User user = ess.getUser(event.getPlayer()); + if (!isAffordableFor(user, command)) + { + event.setCancelled(true); + return true; + } + return false; + } + + public String getChatType(final String message) + { + switch (message.charAt(0)) + { + case '!': + return "shout"; + case '?': + return "question"; + default: + return ""; + } + } + + protected void charge(final CommandSender sender, final String command) throws ChargeException + { + if (sender instanceof Player) + { + final Trade charge = new Trade(command, ess); + charge.charge(ess.getUser((Player)sender)); + } + } + + protected boolean isAffordableFor(final CommandSender sender, final String command) + { + if (sender instanceof Player) + { + try + { + final Trade charge = new Trade(command, ess); + charge.isAffordableFor(ess.getUser((Player)sender)); + } + catch (ChargeException e) + { + return false; + } + } + else + { + return false; + } + + return true; + } + + protected void sendLocalChat(final User sender, final long radius, final PlayerChatEvent event) + { + event.setCancelled(true); + logger.info(Util.format("localFormat", sender.getName(), event.getMessage())); + final Location loc = sender.getLocation(); + final World world = loc.getWorld(); + final int x = loc.getBlockX(); + final int y = loc.getBlockY(); + final int z = loc.getBlockZ(); + for (Player p : server.getOnlinePlayers()) + { + String type = "[L]"; + final User u = ess.getUser(p); + //TODO: remove reference to op + if (u.isIgnoredPlayer(sender.getName()) && !sender.isOp()) + { + continue; + } + if (!u.equals(sender)) + { + final Location l = u.getLocation(); + final int dx = x - l.getBlockX(); + final int dy = y - l.getBlockY(); + final int dz = z - l.getBlockZ(); + final long delta = dx * dx + dy * dy + dz * dz; + if (delta > radius || world != l.getWorld()) + { + if (!u.isAuthorized("essentials.chat.spy")) + { + continue; + } + else + { + type = type.concat("[Spy]"); + } + } + } + + String message = String.format(event.getFormat(), type.concat(sender.getDisplayName()), event.getMessage()); + for (IEssentialsChatListener listener : listeners.values()) + { + message = listener.modifyMessage(event, p, message); + } + u.sendMessage(message); + } + } +} diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListener.java b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListener.java deleted file mode 100644 index 85e821e7f..000000000 --- a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListener.java +++ /dev/null @@ -1,146 +0,0 @@ -package com.earth2me.essentials.chat; - -import com.earth2me.essentials.ChargeException; -import com.earth2me.essentials.IEssentials; -import com.earth2me.essentials.Trade; -import com.earth2me.essentials.User; -import com.earth2me.essentials.Util; -import java.util.Map; -import java.util.logging.Logger; -import org.bukkit.Location; -import org.bukkit.Server; -import org.bukkit.World; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.bukkit.event.player.PlayerChatEvent; -import org.bukkit.event.player.PlayerListener; - - -public class EssentialsChatPlayerListener extends PlayerListener -{ - private static final Logger LOGGER = Logger.getLogger("Minecraft"); - private final transient IEssentials ess; - private final transient Server server; - private final transient Map<String, IEssentialsChatListener> listeners; - - public EssentialsChatPlayerListener(final Server server, final IEssentials ess, final Map<String, IEssentialsChatListener> listeners) - { - this.server = server; - this.ess = ess; - this.listeners = listeners; - } - - @Override - public void onPlayerChat(final PlayerChatEvent event) - { - if (event.isCancelled()) - { - return; - } - - for (IEssentialsChatListener listener : listeners.values()) - { - if (listener.shouldHandleThisChat(event)) - { - return; - } - } - - final User user = ess.getUser(event.getPlayer()); - - if (user.isAuthorized("essentials.chat.color")) - { - event.setMessage(event.getMessage().replaceAll("&([0-9a-f])", "§$1")); - } - - event.setFormat(ess.getSettings().getChatFormat(user.getGroup()).replace('&', '§').replace("§§", "&").replace("{DISPLAYNAME}", "%1$s").replace("{GROUP}", user.getGroup()).replace("{MESSAGE}", "%2$s").replace("{WORLDNAME}", user.getWorld().getName()).replace("{SHORTWORLDNAME}", user.getWorld().getName().substring(0, 1).toUpperCase())); - - long radius = ess.getSettings().getChatRadius(); - if (radius < 1) - { - return; - } - radius *= radius; - - try { - if (event.getMessage().startsWith("!") && event.getMessage().length() > 1) - { - if (user.isAuthorized("essentials.chat.shout")) - { - charge(user,"chat-shout"); - event.setMessage(event.getMessage().substring(1)); - event.setFormat(Util.format("shoutFormat", event.getFormat())); - return; - } - user.sendMessage(Util.i18n("notAllowedToShout")); - event.setCancelled(true); - return; - } - - if (event.getMessage().startsWith("?") && event.getMessage().length() > 1) - { - if (user.isAuthorized("essentials.chat.question")) - { - charge(user,"chat-question"); - event.setMessage(event.getMessage().substring(1)); - event.setFormat(Util.format("questionFormat", event.getFormat())); - return; - } - user.sendMessage(Util.i18n("notAllowedToQuestion")); - event.setCancelled(true); - return; - } - } - catch (ChargeException ex) - { - ess.showError(user, ex, "Shout"); - return; - } - - event.setCancelled(true); - LOGGER.info(Util.format("localFormat", user.getName(), event.getMessage())); - - final Location loc = user.getLocation(); - final World world = loc.getWorld(); - final int x = loc.getBlockX(); - final int y = loc.getBlockY(); - final int z = loc.getBlockZ(); - - for (Player p : server.getOnlinePlayers()) - { - final User u = ess.getUser(p); - if (u.isIgnoredPlayer(user.getName()) && !user.isOp()) - { - continue; - } - if (!u.equals(user) && !u.isAuthorized("essentials.chat.spy")) - { - final Location l = u.getLocation(); - final int dx = x - l.getBlockX(); - final int dy = y - l.getBlockY(); - final int dz = z - l.getBlockZ(); - final long delta = dx*dx + dy*dy + dz*dz; - if (delta > radius || world != l.getWorld()) - { - continue; - } - } - String message = String.format(event.getFormat(), user.getDisplayName(), event.getMessage()); - - for (IEssentialsChatListener listener : listeners.values()) - { - message = listener.modifyMessage(event, p, message); - } - - u.sendMessage(message); - } - } - protected void charge(final CommandSender sender, final String command) throws ChargeException - { - if (sender instanceof Player) - { - final Trade charge = new Trade(command, ess); - charge.charge(ess.getUser((Player)sender)); - } - } -} diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerHighest.java b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerHighest.java new file mode 100644 index 000000000..17a219acd --- /dev/null +++ b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerHighest.java @@ -0,0 +1,50 @@ +package com.earth2me.essentials.chat; + +import com.earth2me.essentials.ChargeException; +import com.earth2me.essentials.IEssentials; +import com.earth2me.essentials.User; +import java.util.Map; +import org.bukkit.Server; +import org.bukkit.event.player.PlayerChatEvent; + + +public class EssentialsChatPlayerListenerHighest extends EssentialsChatPlayer +{ + public EssentialsChatPlayerListenerHighest(Server server, IEssentials ess, Map<String, IEssentialsChatListener> listeners) + { + super(server, ess, listeners); + } + + @Override + public void onPlayerChat(final PlayerChatEvent event) + { + if (isAborted(event)) + { + return; + } + + /** + * This file should handle charging the user for the action before returning control back + */ + final User user = ess.getUser(event.getPlayer()); + final String chatType = getChatType(event.getMessage()); + final StringBuilder command = new StringBuilder(); + command.append("chat"); + + if (chatType.length() > 0) + { + command.append("-").append(chatType); + } + + try + { + charge(user, command.toString()); + } + catch (ChargeException e) + { + ess.showError(user, e, command.toString()); + event.setCancelled(true); + return; + } + } +} diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerLowest.java b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerLowest.java new file mode 100644 index 000000000..a7ade803b --- /dev/null +++ b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerLowest.java @@ -0,0 +1,38 @@ +package com.earth2me.essentials.chat; + +import com.earth2me.essentials.ChargeException; +import com.earth2me.essentials.IEssentials; +import com.earth2me.essentials.User; +import com.earth2me.essentials.Util; +import java.util.Map; +import org.bukkit.Server; +import org.bukkit.event.player.PlayerChatEvent; + + +public class EssentialsChatPlayerListenerLowest extends EssentialsChatPlayer +{ + public EssentialsChatPlayerListenerLowest(Server server, IEssentials ess, Map<String, IEssentialsChatListener> listeners) + { + super(server, ess, listeners); + } + + @Override + public void onPlayerChat(final PlayerChatEvent event) + { + if (isAborted(event)) + { + return; + } + + /** + * This listener should apply the general chat formatting only...then return control back + * the event handler + */ + final User user = ess.getUser(event.getPlayer()); + if (user.isAuthorized("essentials.chat.color")) + { + event.setMessage(event.getMessage().replaceAll("&([0-9a-f])", "\u00a7$1")); + } + event.setFormat(ess.getSettings().getChatFormat(user.getGroup()).replace('&', '\u00a7').replace("\u00a7\u00a7", "&").replace("{DISPLAYNAME}", "%1$s").replace("{GROUP}", user.getGroup()).replace("{MESSAGE}", "%2$s").replace("{WORLDNAME}", user.getWorld().getName()).replace("{SHORTWORLDNAME}", user.getWorld().getName().substring(0, 1).toUpperCase())); + } +} diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java new file mode 100644 index 000000000..d726cb569 --- /dev/null +++ b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerNormal.java @@ -0,0 +1,76 @@ +package com.earth2me.essentials.chat; + +import com.earth2me.essentials.ChargeException; +import com.earth2me.essentials.IEssentials; +import com.earth2me.essentials.User; +import com.earth2me.essentials.Util; +import java.util.Map; +import org.bukkit.Server; +import org.bukkit.event.player.PlayerChatEvent; + + +public class EssentialsChatPlayerListenerNormal extends EssentialsChatPlayer +{ + public EssentialsChatPlayerListenerNormal(Server server, IEssentials ess, Map<String, IEssentialsChatListener> listeners) + { + super(server, ess, listeners); + } + + @Override + public void onPlayerChat(final PlayerChatEvent event) + { + if (isAborted(event)) + { + return; + } + + /** + * This file should handle detection of the local chat features... + * if local chat is enabled, we need to handle it here + */ + final User user = ess.getUser(event.getPlayer()); + final String chatType = getChatType(event.getMessage()); + long radius = ess.getSettings().getChatRadius(); + if (radius < 1) + { + return; + } + radius *= radius; + try + { + if (event.getMessage().length() > 0 && chatType.length() > 0) + { + StringBuilder permission = new StringBuilder(); + permission.append("essentials.chat.").append(chatType); + + StringBuilder command = new StringBuilder(); + command.append("chat-").append(chatType); + + StringBuilder format = new StringBuilder(); + format.append(chatType).append("Format"); + + StringBuilder errorMsg = new StringBuilder(); + errorMsg.append("notAllowedTo").append(chatType.substring(0, 1).toUpperCase()).append(chatType.substring(1)); + + if (user.isAuthorized(permission.toString())) + { + charge(user, command.toString()); + event.setMessage(event.getMessage().substring(1)); + event.setFormat(Util.format(format.toString(), event.getFormat())); + return; + } + + user.sendMessage(Util.i18n(errorMsg.toString())); + event.setCancelled(true); + return; + } + } + catch (ChargeException ex) + { + ess.showError(user, ex, "Shout"); + event.setCancelled(true); + return; + } + sendLocalChat(user, radius, event); + } +} diff --git a/WebPush/index.php b/WebPush/index.php index ab018bf27..fc3405fe2 100644 --- a/WebPush/index.php +++ b/WebPush/index.php @@ -22,14 +22,15 @@ $build = $_GET['buildid']; $branch = $_GET['branch']; $version = $_GET['version']; -if ($build == "" || $branch == "" || $version == "") -{ - die(); +include('../build/function.php'); +updateval($branch); + +if ($build == "" || $branch == "" || $version == "") { + die('Invalid'); } //Don't upload dev builds atm. -if ($branch == "bt2") -{ +if ($branch == "bt2") { die(); } diff --git a/WebPush/upload.php b/WebPush/upload.php index cf5c2112e..f971062ed 100644 --- a/WebPush/upload.php +++ b/WebPush/upload.php @@ -1,35 +1,32 @@ <?php + include_once('simple_html_dom.php'); -function uploadit($build, $branch, $file, $version, $changes) -{ +function uploadit($build, $branch, $file, $version, $changes) { file_put_contents('status.log', "\nUploading file $file to devbukkit! ", FILE_APPEND); $slug = "essentials"; $plugin = "Essentials"; $url = "http://ci.earth2me.net/guestAuth/repository/download/$branch/$build:id/$file"; $filename = explode('.', $file); $request_url = "http://dev.bukkit.org/server-mods/$slug/upload-file.json"; - + include ('apikey.php'); - + $params['name'] = $filename[0] . '-' . $version; $params['game_versions'] = 176; $params['change_log'] = $changes; $params['change_markup_type'] = "html"; $params['fileurl'] = $url; - - if (stripos($version, 'Dev') !== false) - { + + if (stripos($version, 'Dev') !== false) { $params['file_type'] = "a"; } - elseif (stripos($version, 'Pre') !== false) - { + elseif (stripos($version, 'Pre') !== false) { $params['file_type'] = "b"; } - else - { + else { $params['file_type'] = "r"; - } + } $content = file_get_contents($url); file_put_contents($file, $content); @@ -42,13 +39,11 @@ function uploadit($build, $branch, $file, $version, $changes) curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); $result = curl_exec($ch); - - if ($result === false) - { + + if ($result === false) { $result = curl_error($ch); } - elseif ($result == "") - { + elseif ($result == "") { $result = "Success uploading $file - $version"; } curl_close($ch); @@ -57,8 +52,7 @@ function uploadit($build, $branch, $file, $version, $changes) return true; } -function getChanges($job, $project) -{ +function getChanges($job, $project) { $commitblacklist = array( 'Merge branch', 'Merge pull', @@ -72,20 +66,15 @@ function getChanges($job, $project) $html->load_file($url); $output = "Change Log:<ul>"; - foreach ($html->find('.changelist') as $list) - { - foreach ($list->find('.comment') as $comment) - { + foreach ($html->find('.changelist') as $list) { + foreach ($list->find('.comment') as $comment) { $text = $comment->innertext; - foreach ($commitblacklist as $matchtext) - { - if (stripos($text, $matchtext) !== FALSE) - { + foreach ($commitblacklist as $matchtext) { + if (stripos($text, $matchtext) !== FALSE) { $text = ""; } } - if ($text != "") - { + if ($text != "") { $output .= "<li>$text</li>\n"; } } |