mirror of
https://github.com/essentials/Essentials.git
synced 2025-09-06 20:50:46 +02:00
Compare commits
101 Commits
groupmanag
...
ess-releas
Author | SHA1 | Date | |
---|---|---|---|
|
d11a295ffd | ||
|
ffea359661 | ||
|
037456c99d | ||
|
5125a137f4 | ||
|
3f1c996959 | ||
|
53a7cd732f | ||
|
4fd026ff99 | ||
|
d9fbd68529 | ||
|
49d80462d1 | ||
|
1d859e49ad | ||
|
a2c43d822c | ||
|
7907565377 | ||
|
d1c014fe16 | ||
|
465041b98b | ||
|
ed56afda26 | ||
|
23f14bc2d5 | ||
|
c829a32555 | ||
|
ae984c2055 | ||
|
0c416c8366 | ||
|
51be2131f7 | ||
|
575a8142ff | ||
|
093a1f677b | ||
|
8311da2653 | ||
|
b5976a52e0 | ||
|
4e6c98ac57 | ||
|
a2c692af39 | ||
|
a131527a15 | ||
|
0b925e6fc0 | ||
|
97c8f5192e | ||
|
7c372cd978 | ||
|
02fe58161c | ||
|
2ba2ebaa43 | ||
|
549500eaf2 | ||
|
8e7589e450 | ||
|
9b69403ee1 | ||
|
6269ce9a3f | ||
|
0f6625aea9 | ||
|
dbceccaa3e | ||
|
6c7ba6a76f | ||
|
f76a517339 | ||
|
2c747ecf36 | ||
|
1f8b60081e | ||
|
a800359e0b | ||
|
4854961901 | ||
|
50a815bdb9 | ||
|
1690b9d83d | ||
|
7804516793 | ||
|
c54e9b5dba | ||
|
71936cfe22 | ||
|
27890e2b22 | ||
|
da6df89126 | ||
|
95ff197910 | ||
|
2215b0f53f | ||
|
3887fdd47d | ||
|
7e9328bd25 | ||
|
9d9af25c7f | ||
|
5a2fd19bcf | ||
|
3a50850734 | ||
|
812de5c35c | ||
|
bffea1d7c8 | ||
|
b00f458e67 | ||
|
80ef955eae | ||
|
44509ff6e4 | ||
|
e1d4129869 | ||
|
00655f724d | ||
|
4590e7ea26 | ||
|
2ac1ce4f56 | ||
|
f726035660 | ||
|
57bb1ee475 | ||
|
889dde7549 | ||
|
ada2fe01a2 | ||
|
cf29a0ba6a | ||
|
c929ebb89a | ||
|
8159530906 | ||
|
7e8ba9a256 | ||
|
b145ec59ea | ||
|
429a7275ee | ||
|
3bd0608b6e | ||
|
9307e0cb71 | ||
|
4672e51806 | ||
|
18811122b3 | ||
|
cbaf126a25 | ||
|
8e7abe325e | ||
|
ed9e4ecd28 | ||
|
bd866de950 | ||
|
4ecb6b5fdb | ||
|
0d6bca2080 | ||
|
05ef05dcac | ||
|
7ba097c640 | ||
|
6adacbb357 | ||
|
69f62574c4 | ||
|
b00c31730f | ||
|
f09180659d | ||
|
c12373bf41 | ||
|
04666b66b4 | ||
|
363aee70d5 | ||
|
01d03d5d41 | ||
|
4575fc5aff | ||
|
27e9e3aa88 | ||
|
b0187698b9 | ||
|
0364d4e0de |
@@ -24,7 +24,7 @@ public class Backup implements Runnable
|
||||
{
|
||||
this.ess = ess;
|
||||
server = ess.getServer();
|
||||
if (server.getOnlinePlayers().length > 0)
|
||||
if (!ess.getOnlinePlayers().isEmpty())
|
||||
{
|
||||
ess.runTaskAsynchronously(new Runnable()
|
||||
{
|
||||
@@ -146,20 +146,21 @@ public class Backup implements Runnable
|
||||
}
|
||||
finally
|
||||
{
|
||||
ess.scheduleSyncDelayedTask(new Runnable()
|
||||
class BackupEnableSaveTask implements Runnable
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
server.dispatchCommand(cs, "save-on");
|
||||
if (server.getOnlinePlayers().length == 0)
|
||||
if (ess.getOnlinePlayers().isEmpty())
|
||||
{
|
||||
stopTask();
|
||||
}
|
||||
active = false;
|
||||
LOGGER.log(Level.INFO, tl("backupFinished"));
|
||||
}
|
||||
});
|
||||
}
|
||||
ess.scheduleSyncDelayedTask(new BackupEnableSaveTask());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@@ -142,20 +142,13 @@ public class Enchantments
|
||||
ALIASENCHANTMENTS.put("unlimitedarrows", Enchantment.ARROW_INFINITE);
|
||||
ALIASENCHANTMENTS.put("ai", Enchantment.ARROW_INFINITE);
|
||||
|
||||
try // 1.7 update
|
||||
{
|
||||
ENCHANTMENTS.put("luck", Enchantment.LUCK);
|
||||
ALIASENCHANTMENTS.put("luckofsea", Enchantment.LUCK);
|
||||
ALIASENCHANTMENTS.put("luckofseas", Enchantment.LUCK);
|
||||
ALIASENCHANTMENTS.put("rodluck", Enchantment.LUCK);
|
||||
ENCHANTMENTS.put("luck", Enchantment.LUCK);
|
||||
ALIASENCHANTMENTS.put("luckofsea", Enchantment.LUCK);
|
||||
ALIASENCHANTMENTS.put("luckofseas", Enchantment.LUCK);
|
||||
ALIASENCHANTMENTS.put("rodluck", Enchantment.LUCK);
|
||||
|
||||
ENCHANTMENTS.put("lure", Enchantment.LURE);
|
||||
ALIASENCHANTMENTS.put("rodlure", Enchantment.LURE);
|
||||
}
|
||||
catch (java.lang.NoSuchFieldError e)
|
||||
{
|
||||
Essentials.wrongVersion();
|
||||
}
|
||||
ENCHANTMENTS.put("lure", Enchantment.LURE);
|
||||
ALIASENCHANTMENTS.put("rodlure", Enchantment.LURE);
|
||||
}
|
||||
|
||||
public static Enchantment getByName(String name)
|
||||
|
@@ -35,10 +35,17 @@ import com.earth2me.essentials.textreader.IText;
|
||||
import com.earth2me.essentials.textreader.KeywordReplacer;
|
||||
import com.earth2me.essentials.textreader.SimpleTextInput;
|
||||
import com.earth2me.essentials.utils.DateUtil;
|
||||
import com.google.common.base.Function;
|
||||
import com.google.common.base.Throwables;
|
||||
import com.google.common.collect.Iterables;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.logging.Level;
|
||||
@@ -100,6 +107,7 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials
|
||||
private transient Metrics metrics;
|
||||
private transient EssentialsTimer timer;
|
||||
private final transient List<String> vanishedPlayers = new ArrayList<String>();
|
||||
private transient Method oldGetOnlinePlayers;
|
||||
|
||||
public Essentials()
|
||||
{
|
||||
@@ -129,14 +137,17 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials
|
||||
}
|
||||
i18n = new I18n(this);
|
||||
i18n.onEnable();
|
||||
i18n.updateLocale("en");
|
||||
LOGGER.log(Level.INFO, tl("usingTempFolderForTesting"));
|
||||
LOGGER.log(Level.INFO, dataFolder.toString());
|
||||
this.initialize(null, server, new PluginDescriptionFile(new FileReader(new File("src" + File.separator + "plugin.yml"))), dataFolder, null, null);
|
||||
settings = new Settings(this);
|
||||
i18n.updateLocale("en");
|
||||
userMap = new UserMap(this);
|
||||
permissionsHandler = new PermissionsHandler(this, false);
|
||||
Economy.setEss(this);
|
||||
confList = new ArrayList<IConf>();
|
||||
jails = new Jails(this);
|
||||
registerListeners(server.getPluginManager());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -178,6 +189,16 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials
|
||||
LOGGER.log(Level.INFO, getServer().getBukkitVersion());
|
||||
}
|
||||
execTimer.mark("BukkitCheck");
|
||||
|
||||
for (Method method : Server.class.getDeclaredMethods())
|
||||
{
|
||||
if (method.getName().endsWith("getOnlinePlayers") && method.getReturnType() == Player[].class)
|
||||
{
|
||||
oldGetOnlinePlayers = method;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
final EssentialsUpgrade upgrade = new EssentialsUpgrade(this);
|
||||
@@ -304,14 +325,14 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials
|
||||
@Override
|
||||
public void onDisable()
|
||||
{
|
||||
for (Player p : getServer().getOnlinePlayers())
|
||||
for (User user : getOnlineUsers())
|
||||
{
|
||||
User user = getUser(p);
|
||||
if (user.isVanished())
|
||||
{
|
||||
user.setVanished(false);
|
||||
user.sendMessage(tl("unvanishedReload"));
|
||||
}
|
||||
user.stopTransaction();
|
||||
}
|
||||
cleanupOpenInventories();
|
||||
if (i18n != null)
|
||||
@@ -325,6 +346,8 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials
|
||||
Economy.setEss(null);
|
||||
Trade.closeLog();
|
||||
getUserMap().getUUIDMap().forceWriteUUIDMap();
|
||||
|
||||
HandlerList.unregisterAll(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -538,9 +561,8 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials
|
||||
|
||||
public void cleanupOpenInventories()
|
||||
{
|
||||
for (Player player : getServer().getOnlinePlayers())
|
||||
for (User user : getOnlineUsers())
|
||||
{
|
||||
User user = getUser(player);
|
||||
if (user.isRecipeSee())
|
||||
{
|
||||
user.getBase().getOpenInventory().getTopInventory().clear();
|
||||
@@ -624,6 +646,14 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials
|
||||
{
|
||||
return getUser((Player)base);
|
||||
}
|
||||
if (base instanceof org.bukkit.OfflinePlayer)
|
||||
{
|
||||
return getUser(((org.bukkit.OfflinePlayer)base).getUniqueId());
|
||||
}
|
||||
if (base instanceof UUID)
|
||||
{
|
||||
return getUser((UUID)base);
|
||||
}
|
||||
if (base instanceof String)
|
||||
{
|
||||
return getOfflineUser((String)base);
|
||||
@@ -649,7 +679,7 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials
|
||||
@Override
|
||||
public User getOfflineUser(final String name)
|
||||
{
|
||||
final User user = userMap.getUser(name);
|
||||
final User user = userMap.getUser(name);
|
||||
if (user != null && user.getBase() instanceof OfflinePlayer)
|
||||
{
|
||||
//This code should attempt to use the last known name of a user, if Bukkit returns name as null.
|
||||
@@ -690,7 +720,6 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials
|
||||
LOGGER.log(Level.INFO, "Constructing new userfile from base player {0}", base.getName());
|
||||
}
|
||||
user = new User(base, this);
|
||||
user.setLastAccountName(base.getName());
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -711,7 +740,7 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials
|
||||
event.getPlayer().sendMessage("Essentials failed to load, read the log file.");
|
||||
}
|
||||
}, this);
|
||||
for (Player player : getServer().getOnlinePlayers())
|
||||
for (Player player : getOnlinePlayers())
|
||||
{
|
||||
player.sendMessage("Essentials failed to load, read the log file.");
|
||||
}
|
||||
@@ -771,7 +800,7 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials
|
||||
|
||||
IText broadcast = new SimpleTextInput(message);
|
||||
|
||||
final Player[] players = getServer().getOnlinePlayers();
|
||||
final Collection<Player> players = getOnlinePlayers();
|
||||
|
||||
for (Player player : players)
|
||||
{
|
||||
@@ -790,7 +819,7 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials
|
||||
}
|
||||
}
|
||||
|
||||
return players.length;
|
||||
return players.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -804,6 +833,12 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials
|
||||
{
|
||||
return this.getScheduler().runTaskLaterAsynchronously(this, run, delay);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BukkitTask runTaskTimerAsynchronously(final Runnable run, final long delay, final long period)
|
||||
{
|
||||
return this.getScheduler().runTaskTimerAsynchronously(this, run, delay, period);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int scheduleSyncDelayedTask(final Runnable run)
|
||||
@@ -871,6 +906,43 @@ public class Essentials extends JavaPlugin implements net.ess3.api.IEssentials
|
||||
return vanishedPlayers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Player> getOnlinePlayers()
|
||||
{
|
||||
try
|
||||
{
|
||||
return (Collection<Player>)getServer().getOnlinePlayers(); // Needed for sanity here, the Bukkit API is a bit broken in the sense it only allows subclasses of Player to this list
|
||||
}
|
||||
catch (NoSuchMethodError ex)
|
||||
{
|
||||
try
|
||||
{
|
||||
return Arrays.asList((Player[])oldGetOnlinePlayers.invoke(getServer()));
|
||||
}
|
||||
catch (InvocationTargetException ex1)
|
||||
{
|
||||
throw Throwables.propagate(ex.getCause());
|
||||
}
|
||||
catch (IllegalAccessException ex1)
|
||||
{
|
||||
throw new RuntimeException("Error invoking oldGetOnlinePlayers", ex1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<User> getOnlineUsers()
|
||||
{
|
||||
return Iterables.transform(getOnlinePlayers(), new Function<Player, User>()
|
||||
{
|
||||
|
||||
@Override
|
||||
public User apply(Player player)
|
||||
{
|
||||
return getUser(player);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static class EssentialsWorldListener implements Listener, Runnable
|
||||
{
|
||||
|
@@ -56,8 +56,7 @@ public class EssentialsBlockListener implements Listener
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
if (user.hasUnlimited(is) && user.getBase().getGameMode() == GameMode.SURVIVAL)
|
||||
{
|
||||
ess.scheduleSyncDelayedTask(
|
||||
new Runnable()
|
||||
class UnlimitedItemSpawnTask implements Runnable
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
@@ -65,7 +64,8 @@ public class EssentialsBlockListener implements Listener
|
||||
user.getBase().getInventory().addItem(is);
|
||||
user.getBase().updateInventory();
|
||||
}
|
||||
});
|
||||
}
|
||||
ess.scheduleSyncDelayedTask(new UnlimitedItemSpawnTask());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -15,6 +15,7 @@ import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.Future;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
@@ -35,9 +36,10 @@ public class EssentialsConf extends YamlConfiguration
|
||||
protected final File configFile;
|
||||
protected String templateName = null;
|
||||
protected static final Charset UTF8 = Charset.forName("UTF-8");
|
||||
private Class<?> resourceClass = EssentialsConf.class;
|
||||
private Class<?> resourceClass = EssentialsConf.class;
|
||||
private static final ExecutorService EXECUTOR_SERVICE = Executors.newSingleThreadExecutor();
|
||||
private final AtomicInteger pendingDiskWrites = new AtomicInteger(0);
|
||||
private final AtomicBoolean transaction = new AtomicBoolean(false);
|
||||
|
||||
public EssentialsConf(final File configFile)
|
||||
{
|
||||
@@ -95,7 +97,7 @@ public class EssentialsConf extends YamlConfiguration
|
||||
LOGGER.log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!configFile.exists())
|
||||
{
|
||||
if (legacyFileExists())
|
||||
@@ -187,22 +189,22 @@ public class EssentialsConf extends YamlConfiguration
|
||||
LOGGER.log(Level.SEVERE, "The file " + configFile.toString() + " is broken, it has been renamed to " + broken.toString(), ex.getCause());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public boolean legacyFileExists()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public void convertLegacyFile()
|
||||
{
|
||||
LOGGER.log(Level.SEVERE, "Unable to import legacy config file.");
|
||||
}
|
||||
|
||||
|
||||
public boolean altFileExists()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public void convertAltFile()
|
||||
{
|
||||
LOGGER.log(Level.SEVERE, "Unable to import alt config file.");
|
||||
@@ -277,6 +279,17 @@ public class EssentialsConf extends YamlConfiguration
|
||||
this.resourceClass = resClass;
|
||||
}
|
||||
|
||||
public void startTransaction()
|
||||
{
|
||||
transaction.set(true);
|
||||
}
|
||||
|
||||
public void stopTransaction()
|
||||
{
|
||||
transaction.set(false);
|
||||
save();
|
||||
}
|
||||
|
||||
public void save()
|
||||
{
|
||||
try
|
||||
@@ -297,9 +310,14 @@ public class EssentialsConf extends YamlConfiguration
|
||||
@Override
|
||||
public synchronized void save(final File file) throws IOException
|
||||
{
|
||||
delayedSave(file);
|
||||
if (!transaction.get())
|
||||
{
|
||||
delayedSave(file);
|
||||
}
|
||||
}
|
||||
|
||||
//This may be aborted if there are stagnant requests sitting in queue.
|
||||
//This needs fixed to discard outstanding save requests.
|
||||
public synchronized void forceSave()
|
||||
{
|
||||
try
|
||||
@@ -320,9 +338,13 @@ public class EssentialsConf extends YamlConfiguration
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized void cleanup()
|
||||
{
|
||||
forceSave();
|
||||
}
|
||||
|
||||
private Future<?> delayedSave(final File file)
|
||||
{
|
||||
//long startTime = System.nanoTime();
|
||||
if (file == null)
|
||||
{
|
||||
throw new IllegalArgumentException("File cannot be null");
|
||||
@@ -335,12 +357,8 @@ public class EssentialsConf extends YamlConfiguration
|
||||
return null;
|
||||
}
|
||||
|
||||
pendingDiskWrites.incrementAndGet();
|
||||
|
||||
Future<?> future = EXECUTOR_SERVICE.submit(new WriteRunner(configFile, data, pendingDiskWrites));
|
||||
|
||||
//LOGGER.log(Level.INFO, configFile + " prepared for writing in " + (System.nanoTime() - startTime) + " nsec.");
|
||||
|
||||
return future;
|
||||
}
|
||||
|
||||
|
@@ -55,7 +55,7 @@ public class EssentialsEntityListener implements Listener
|
||||
attacker.updateActivity(true);
|
||||
}
|
||||
else if (eAttack instanceof Projectile && eDefend instanceof Player)
|
||||
{
|
||||
{
|
||||
final Projectile projectile = (Projectile)event.getDamager();
|
||||
//This should return a ProjectileSource on 1.7.3 beta +
|
||||
final Object shooter = projectile.getShooter();
|
||||
@@ -105,8 +105,8 @@ public class EssentialsEntityListener implements Listener
|
||||
final String command = powertoolPlayer.matcher(tempCommand).replaceAll(defender.getName());
|
||||
if (command != null && !command.isEmpty() && !command.equals(tempCommand))
|
||||
{
|
||||
ess.scheduleSyncDelayedTask(
|
||||
new Runnable()
|
||||
|
||||
class PowerToolInteractTask implements Runnable
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
@@ -114,7 +114,8 @@ public class EssentialsEntityListener implements Listener
|
||||
attacker.getServer().dispatchCommand(attacker.getBase(), command);
|
||||
LOGGER.log(Level.INFO, String.format("[PT] %s issued server command: /%s", attacker.getName(), command));
|
||||
}
|
||||
});
|
||||
}
|
||||
ess.scheduleSyncDelayedTask(new PowerToolInteractTask());
|
||||
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
|
@@ -5,7 +5,6 @@ import com.earth2me.essentials.textreader.IText;
|
||||
import com.earth2me.essentials.textreader.KeywordReplacer;
|
||||
import com.earth2me.essentials.textreader.TextInput;
|
||||
import com.earth2me.essentials.textreader.TextPager;
|
||||
import com.earth2me.essentials.utils.DateUtil;
|
||||
import com.earth2me.essentials.utils.LocationUtil;
|
||||
import java.io.IOException;
|
||||
import java.util.Iterator;
|
||||
@@ -37,25 +36,25 @@ public class EssentialsPlayerListener implements Listener
|
||||
{
|
||||
private static final Logger LOGGER = Logger.getLogger("Essentials");
|
||||
private final transient IEssentials ess;
|
||||
|
||||
|
||||
public EssentialsPlayerListener(final IEssentials parent)
|
||||
{
|
||||
this.ess = parent;
|
||||
}
|
||||
|
||||
|
||||
@EventHandler(priority = EventPriority.NORMAL)
|
||||
public void onPlayerRespawn(final PlayerRespawnEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
updateCompass(user);
|
||||
user.setDisplayNick();
|
||||
|
||||
|
||||
if (ess.getSettings().isTeleportInvulnerability())
|
||||
{
|
||||
user.enableInvulnerabilityAfterTeleport();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
public void onPlayerChat(final AsyncPlayerChatEvent event)
|
||||
{
|
||||
@@ -89,11 +88,11 @@ public class EssentialsPlayerListener implements Listener
|
||||
ess.getLogger().info("Ignore could not block chat due to custom chat plugin event.");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
user.updateActivity(true);
|
||||
user.setDisplayNick();
|
||||
}
|
||||
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
public void onPlayerMove(final PlayerMoveEvent event)
|
||||
{
|
||||
@@ -103,19 +102,19 @@ public class EssentialsPlayerListener implements Listener
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (!ess.getSettings().cancelAfkOnMove() && !ess.getSettings().getFreezeAfkPlayers())
|
||||
{
|
||||
event.getHandlers().unregister(this);
|
||||
|
||||
|
||||
if (ess.getSettings().isDebug())
|
||||
{
|
||||
LOGGER.log(Level.INFO, "Unregistering move listener");
|
||||
}
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
if (user.isAfk() && ess.getSettings().getFreezeAfkPlayers())
|
||||
{
|
||||
@@ -146,12 +145,12 @@ public class EssentialsPlayerListener implements Listener
|
||||
user.updateActivity(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onPlayerQuit(final PlayerQuitEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
|
||||
|
||||
if (ess.getSettings().allowSilentJoinQuit() && user.isAuthorized("essentials.silentquit"))
|
||||
{
|
||||
event.setQuitMessage(null);
|
||||
@@ -164,7 +163,7 @@ public class EssentialsPlayerListener implements Listener
|
||||
.replace("{PLAYER}", player.getDisplayName())
|
||||
.replace("{USERNAME}", player.getName()));
|
||||
}
|
||||
|
||||
|
||||
if (ess.getSettings().removeGodOnDisconnect() && user.isGodModeEnabled())
|
||||
{
|
||||
user.setGodModeEnabled(false);
|
||||
@@ -178,10 +177,23 @@ public class EssentialsPlayerListener implements Listener
|
||||
{
|
||||
user.getBase().getOpenInventory().getTopInventory().clear();
|
||||
}
|
||||
|
||||
for (HumanEntity viewer : user.getBase().getInventory().getViewers())
|
||||
{
|
||||
if (viewer instanceof Player)
|
||||
{
|
||||
User uviewer = ess.getUser((Player)viewer);
|
||||
if (uviewer.isInvSee())
|
||||
{
|
||||
uviewer.getBase().closeInventory();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
user.updateActivity(false);
|
||||
user.dispose();
|
||||
}
|
||||
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onPlayerJoin(final PlayerJoinEvent event)
|
||||
{
|
||||
@@ -199,42 +211,69 @@ public class EssentialsPlayerListener implements Listener
|
||||
event.setJoinMessage(null);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void delayedJoin(final Player player, final String message)
|
||||
{
|
||||
if (!player.isOnline())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
ess.getBackup().onPlayerJoin();
|
||||
final User user = ess.getUser(player);
|
||||
|
||||
|
||||
if (user.isNPC())
|
||||
final User dUser = ess.getUser(player);
|
||||
|
||||
|
||||
if (dUser.isNPC())
|
||||
{
|
||||
user.setNPC(false);
|
||||
dUser.setNPC(false);
|
||||
}
|
||||
|
||||
|
||||
final long currentTime = System.currentTimeMillis();
|
||||
user.checkMuteTimeout(currentTime);
|
||||
user.updateActivity(false);
|
||||
|
||||
ess.scheduleSyncDelayedTask(new Runnable()
|
||||
dUser.checkMuteTimeout(currentTime);
|
||||
dUser.updateActivity(false);
|
||||
|
||||
IText tempInput = null;
|
||||
|
||||
if (!ess.getSettings().isCommandDisabled("motd"))
|
||||
{
|
||||
try
|
||||
{
|
||||
tempInput = new TextInput(dUser.getSource(), "motd", true, ess);
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
if (ess.getSettings().isDebug())
|
||||
{
|
||||
LOGGER.log(Level.WARNING, ex.getMessage(), ex);
|
||||
}
|
||||
else
|
||||
{
|
||||
LOGGER.log(Level.WARNING, ex.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final IText input = tempInput;
|
||||
|
||||
class DelayJoinTask implements Runnable
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
final User user = ess.getUser(player);
|
||||
|
||||
if (!user.getBase().isOnline())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
user.startTransaction();
|
||||
|
||||
user.setLastAccountName(user.getBase().getName());
|
||||
user.setLastLogin(currentTime);
|
||||
user.setDisplayNick();
|
||||
updateCompass(user);
|
||||
|
||||
|
||||
if (!ess.getVanishedPlayers().isEmpty() && !user.isAuthorized("essentials.vanish.see"))
|
||||
{
|
||||
for (String p : ess.getVanishedPlayers())
|
||||
@@ -246,15 +285,22 @@ public class EssentialsPlayerListener implements Listener
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (user.isAuthorized("essentials.sleepingignored"))
|
||||
{
|
||||
user.getBase().setSleepingIgnored(true);
|
||||
}
|
||||
|
||||
if ((ess.getSettings().allowSilentJoinQuit() && user.isAuthorized("essentials.silentjoin")) || message == null)
|
||||
|
||||
if (ess.getSettings().allowSilentJoinQuit() && (user.isAuthorized("essentials.silentjoin") || user.isAuthorized("essentials.silentjoin.vanish")))
|
||||
{
|
||||
// Do nothing - silently join
|
||||
if (user.isAuthorized("essentials.silentjoin.vanish"))
|
||||
{
|
||||
user.setVanished(true);
|
||||
}
|
||||
}
|
||||
else if (message == null)
|
||||
{
|
||||
//NOOP
|
||||
}
|
||||
else if (ess.getSettings().isCustomJoinMessage())
|
||||
{
|
||||
@@ -267,29 +313,14 @@ public class EssentialsPlayerListener implements Listener
|
||||
{
|
||||
ess.getServer().broadcastMessage(message);
|
||||
}
|
||||
|
||||
if (!ess.getSettings().isCommandDisabled("motd") && user.isAuthorized("essentials.motd"))
|
||||
|
||||
if (input != null && user.isAuthorized("essentials.motd"))
|
||||
{
|
||||
try
|
||||
{
|
||||
final IText input = new TextInput(user.getSource(), "motd", true, ess);
|
||||
final IText output = new KeywordReplacer(input, user.getSource(), ess);
|
||||
final TextPager pager = new TextPager(output, true);
|
||||
pager.showPage("1", null, "motd", user.getSource());
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
if (ess.getSettings().isDebug())
|
||||
{
|
||||
LOGGER.log(Level.WARNING, ex.getMessage(), ex);
|
||||
}
|
||||
else
|
||||
{
|
||||
LOGGER.log(Level.WARNING, ex.getMessage());
|
||||
}
|
||||
}
|
||||
final IText output = new KeywordReplacer(input, user.getSource(), ess);
|
||||
final TextPager pager = new TextPager(output, true);
|
||||
pager.showPage("1", null, "motd", user.getSource());
|
||||
}
|
||||
|
||||
|
||||
if (!ess.getSettings().isCommandDisabled("mail") && user.isAuthorized("essentials.mail"))
|
||||
{
|
||||
final List<String> mail = user.getMails();
|
||||
@@ -302,7 +333,7 @@ public class EssentialsPlayerListener implements Listener
|
||||
user.sendMessage(tl("youHaveNewMail", mail.size()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (user.isAuthorized("essentials.fly.safelogin"))
|
||||
{
|
||||
user.getBase().setFallDistance(0);
|
||||
@@ -311,13 +342,20 @@ public class EssentialsPlayerListener implements Listener
|
||||
user.getBase().setAllowFlight(true);
|
||||
user.getBase().setFlying(true);
|
||||
user.getBase().sendMessage(tl("flyMode", tl("enabled"), user.getDisplayName()));
|
||||
}
|
||||
}
|
||||
}
|
||||
user.getBase().setFlySpeed(0.1f);
|
||||
user.getBase().setWalkSpeed(0.2f);
|
||||
|
||||
|
||||
if (!user.isAuthorized("essentials.speed"))
|
||||
{
|
||||
user.getBase().setFlySpeed(0.1f);
|
||||
user.getBase().setWalkSpeed(0.2f);
|
||||
}
|
||||
|
||||
user.stopTransaction();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
ess.scheduleSyncDelayedTask(new DelayJoinTask());
|
||||
}
|
||||
|
||||
// Makes the compass item ingame always point to the first essentials home. #EasterEgg
|
||||
@@ -334,64 +372,26 @@ public class EssentialsPlayerListener implements Listener
|
||||
user.getBase().setCompassTarget(updateLoc);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
public void onPlayerLogin2(final PlayerLoginEvent event)
|
||||
{
|
||||
switch (event.getResult())
|
||||
{
|
||||
case KICK_BANNED:
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
final String banReason = tl("banFormat", tl("defaultBanReason"), "Console");
|
||||
event.disallow(Result.KICK_BANNED, banReason);
|
||||
}
|
||||
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH)
|
||||
public void onPlayerLogin(final PlayerLoginEvent event)
|
||||
{
|
||||
switch (event.getResult())
|
||||
{
|
||||
case KICK_FULL:
|
||||
case KICK_BANNED:
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
|
||||
if (event.getResult() == Result.KICK_BANNED || user.getBase().isBanned())
|
||||
{
|
||||
final boolean banExpired = user.checkBanTimeout(System.currentTimeMillis());
|
||||
if (!banExpired)
|
||||
final User kfuser = ess.getUser(event.getPlayer());
|
||||
if (kfuser.isAuthorized("essentials.joinfullserver"))
|
||||
{
|
||||
String banReason = user.getBanReason();
|
||||
if (banReason == null || banReason.isEmpty() || banReason.equalsIgnoreCase("ban"))
|
||||
{
|
||||
banReason = event.getKickMessage();
|
||||
}
|
||||
if (user.getBanTimeout() > 0)
|
||||
{
|
||||
//TODO: TL This
|
||||
banReason += "\n\n" + "Expires in " + DateUtil.formatDateDiff(user.getBanTimeout());
|
||||
}
|
||||
event.disallow(Result.KICK_BANNED, banReason);
|
||||
event.allow();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (event.getResult() == Result.KICK_FULL && !user.isAuthorized("essentials.joinfullserver"))
|
||||
{
|
||||
event.disallow(Result.KICK_FULL, tl("serverFull"));
|
||||
return;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
event.allow();
|
||||
}
|
||||
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
public void onPlayerTeleport(final PlayerTeleportEvent event)
|
||||
{
|
||||
@@ -411,7 +411,7 @@ public class EssentialsPlayerListener implements Listener
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
public void onPlayerEggThrow(final PlayerEggThrowEvent event)
|
||||
{
|
||||
@@ -423,7 +423,7 @@ public class EssentialsPlayerListener implements Listener
|
||||
user.getBase().updateInventory();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
public void onPlayerBucketEmpty(final PlayerBucketEmptyEvent event)
|
||||
{
|
||||
@@ -441,7 +441,7 @@ public class EssentialsPlayerListener implements Listener
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void onPlayerCommandPreprocess(final PlayerCommandPreprocessEvent event)
|
||||
{
|
||||
@@ -449,10 +449,9 @@ public class EssentialsPlayerListener implements Listener
|
||||
final String cmd = event.getMessage().toLowerCase(Locale.ENGLISH).split(" ")[0].replace("/", "").toLowerCase(Locale.ENGLISH);
|
||||
if (ess.getSettings().getSocialSpyCommands().contains(cmd) || ess.getSettings().getSocialSpyCommands().contains("*"))
|
||||
{
|
||||
for (Player onlinePlayer : ess.getServer().getOnlinePlayers())
|
||||
for (User spyer : ess.getOnlineUsers())
|
||||
{
|
||||
final User spyer = ess.getUser(onlinePlayer);
|
||||
if (spyer.isSocialSpyEnabled() && !player.equals(onlinePlayer))
|
||||
if (spyer.isSocialSpyEnabled() && !player.equals(spyer.getBase()))
|
||||
{
|
||||
spyer.sendMessage(player.getDisplayName() + " : " + event.getMessage());
|
||||
}
|
||||
@@ -464,7 +463,7 @@ public class EssentialsPlayerListener implements Listener
|
||||
user.updateActivity(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@EventHandler(priority = EventPriority.NORMAL)
|
||||
public void onPlayerChangedWorldFlyReset(final PlayerChangedWorldEvent event)
|
||||
{
|
||||
@@ -489,7 +488,7 @@ public class EssentialsPlayerListener implements Listener
|
||||
{
|
||||
user.getBase().setFlySpeed(user.getBase().getFlySpeed() * 0.99999f);
|
||||
}
|
||||
|
||||
|
||||
if (user.getBase().getWalkSpeed() > ess.getSettings().getMaxWalkSpeed() && !user.isAuthorized("essentials.speed.bypass"))
|
||||
{
|
||||
user.getBase().setWalkSpeed((float)ess.getSettings().getMaxWalkSpeed());
|
||||
@@ -500,7 +499,7 @@ public class EssentialsPlayerListener implements Listener
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onPlayerChangedWorld(final PlayerChangedWorldEvent event)
|
||||
{
|
||||
@@ -512,7 +511,7 @@ public class EssentialsPlayerListener implements Listener
|
||||
{
|
||||
user.sendMessage(tl("noGodWorldWarning"));
|
||||
}
|
||||
|
||||
|
||||
if (!user.getWorld().getName().equals(newWorld))
|
||||
{
|
||||
user.sendMessage(tl("currentWorld", newWorld));
|
||||
@@ -522,7 +521,7 @@ public class EssentialsPlayerListener implements Listener
|
||||
user.setVanished(user.isAuthorized("essentials.vanish"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@EventHandler(priority = EventPriority.NORMAL)
|
||||
public void onPlayerInteract(final PlayerInteractEvent event)
|
||||
{
|
||||
@@ -571,9 +570,8 @@ public class EssentialsPlayerListener implements Listener
|
||||
try
|
||||
{
|
||||
final Location otarget = LocationUtil.getTarget(user.getBase());
|
||||
|
||||
ess.scheduleSyncDelayedTask(
|
||||
new Runnable()
|
||||
|
||||
class DelayedClickJumpTask implements Runnable
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
@@ -587,7 +585,8 @@ public class EssentialsPlayerListener implements Listener
|
||||
}
|
||||
user.getBase().teleport(loc, TeleportCause.PLUGIN);
|
||||
}
|
||||
});
|
||||
}
|
||||
ess.scheduleSyncDelayedTask(new DelayedClickJumpTask());
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -597,7 +596,7 @@ public class EssentialsPlayerListener implements Listener
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private boolean usePowertools(final User user, final int id)
|
||||
{
|
||||
final List<String> commandList = user.getPowertool(id);
|
||||
@@ -621,8 +620,8 @@ public class EssentialsPlayerListener implements Listener
|
||||
else
|
||||
{
|
||||
used = true;
|
||||
ess.scheduleSyncDelayedTask(
|
||||
new Runnable()
|
||||
|
||||
class PowerToolUseTask implements Runnable
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
@@ -630,12 +629,14 @@ public class EssentialsPlayerListener implements Listener
|
||||
user.getServer().dispatchCommand(user.getBase(), command);
|
||||
LOGGER.log(Level.INFO, String.format("[PT] %s issued server command: /%s", user.getName(), command));
|
||||
}
|
||||
});
|
||||
}
|
||||
ess.scheduleSyncDelayedTask(new PowerToolUseTask());
|
||||
|
||||
}
|
||||
}
|
||||
return used;
|
||||
}
|
||||
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||
public void onPlayerPickupItem(final PlayerPickupItemEvent event)
|
||||
{
|
||||
@@ -647,14 +648,14 @@ public class EssentialsPlayerListener implements Listener
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
|
||||
public void onInventoryClickEvent(final InventoryClickEvent event)
|
||||
{
|
||||
Player refreshPlayer = null;
|
||||
final Inventory top = event.getView().getTopInventory();
|
||||
final InventoryType type = top.getType();
|
||||
|
||||
|
||||
if (type == InventoryType.PLAYER)
|
||||
{
|
||||
final User user = ess.getUser((Player)event.getWhoClicked());
|
||||
@@ -699,7 +700,7 @@ public class EssentialsPlayerListener implements Listener
|
||||
refreshPlayer = user.getBase();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (refreshPlayer != null)
|
||||
{
|
||||
final Player player = refreshPlayer;
|
||||
@@ -713,7 +714,7 @@ public class EssentialsPlayerListener implements Listener
|
||||
}, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onInventoryCloseEvent(final InventoryCloseEvent event)
|
||||
{
|
||||
@@ -752,7 +753,7 @@ public class EssentialsPlayerListener implements Listener
|
||||
refreshPlayer = user.getBase();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (refreshPlayer != null)
|
||||
{
|
||||
final Player player = refreshPlayer;
|
||||
@@ -766,7 +767,7 @@ public class EssentialsPlayerListener implements Listener
|
||||
}, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||
public void onPlayerFishEvent(final PlayerFishEvent event)
|
||||
{
|
||||
|
@@ -48,7 +48,7 @@ public class EssentialsTimer implements Runnable
|
||||
}
|
||||
lastPoll = startTime;
|
||||
int count = 0;
|
||||
for (Player player : ess.getServer().getOnlinePlayers())
|
||||
for (Player player : ess.getOnlinePlayers())
|
||||
{
|
||||
count++;
|
||||
if (skip1 > 0)
|
||||
|
@@ -1,6 +1,7 @@
|
||||
package com.earth2me.essentials;
|
||||
|
||||
import static com.earth2me.essentials.I18n.tl;
|
||||
import com.earth2me.essentials.craftbukkit.BanLookup;
|
||||
import com.earth2me.essentials.craftbukkit.FakeWorld;
|
||||
import com.earth2me.essentials.settings.Spawns;
|
||||
import com.earth2me.essentials.storage.YamlStorageWriter;
|
||||
@@ -14,6 +15,7 @@ import java.util.*;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import net.ess3.api.IEssentials;
|
||||
import org.bukkit.BanList;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
@@ -500,13 +502,15 @@ public class EssentialsUpgrade
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Boolean ignoreUFCache = doneFile.getBoolean("ignore-userfiles-cache", false);
|
||||
|
||||
final File userdir = new File(ess.getDataFolder(), "userdata");
|
||||
if (!userdir.exists())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
int countFiles = 0;
|
||||
int countReqFiles = 0;
|
||||
for (String string : userdir.list())
|
||||
@@ -515,12 +519,12 @@ public class EssentialsUpgrade
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
countFiles++;
|
||||
|
||||
|
||||
final String name = string.substring(0, string.length() - 4);
|
||||
UUID uuid = null;
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
uuid = UUID.fromString(name);
|
||||
@@ -529,37 +533,37 @@ public class EssentialsUpgrade
|
||||
{
|
||||
countReqFiles++;
|
||||
}
|
||||
|
||||
|
||||
if (countFiles > 100)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (countReqFiles < 1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
ess.getLogger().info("#### Starting Essentials UUID userdata conversion in a few seconds. ####");
|
||||
ess.getLogger().info("We recommend you take a backup of your server before upgrading from the old username system.");
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
Thread.sleep(10000);
|
||||
Thread.sleep(15000);
|
||||
}
|
||||
catch (InterruptedException ex)
|
||||
{
|
||||
// NOOP
|
||||
}
|
||||
|
||||
uuidFileConvert(ess);
|
||||
uuidFileConvert(ess, ignoreUFCache);
|
||||
|
||||
doneFile.setProperty("uuidFileChange", true);
|
||||
doneFile.save();
|
||||
}
|
||||
|
||||
public static void uuidFileConvert(IEssentials ess)
|
||||
public static void uuidFileConvert(IEssentials ess, Boolean ignoreUFCache)
|
||||
{
|
||||
ess.getLogger().info("Starting Essentials UUID userdata conversion");
|
||||
|
||||
@@ -593,7 +597,7 @@ public class EssentialsUpgrade
|
||||
|
||||
countFiles++;
|
||||
|
||||
final String name = string.substring(0, string.length() - 4);
|
||||
String name = string.substring(0, string.length() - 4);
|
||||
EssentialsUserConf config;
|
||||
UUID uuid = null;
|
||||
try
|
||||
@@ -608,7 +612,9 @@ public class EssentialsUpgrade
|
||||
conf.setProperty("lastAccountName", name);
|
||||
conf.save();
|
||||
|
||||
String uuidString = conf.getString("uuid", null);
|
||||
String uuidConf = ignoreUFCache ? "force-uuid" : "uuid";
|
||||
|
||||
String uuidString = conf.getString(uuidConf, null);
|
||||
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
@@ -625,7 +631,7 @@ public class EssentialsUpgrade
|
||||
uuid = UUID.nameUUIDFromBytes(("NPC:" + name).getBytes(Charsets.UTF_8));
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
org.bukkit.OfflinePlayer player = ess.getServer().getOfflinePlayer(name);
|
||||
uuid = player.getUniqueId();
|
||||
}
|
||||
@@ -634,7 +640,7 @@ public class EssentialsUpgrade
|
||||
{
|
||||
countBukkit++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (uuid != null)
|
||||
@@ -642,19 +648,114 @@ public class EssentialsUpgrade
|
||||
conf.forceSave();
|
||||
config = new EssentialsUserConf(name, uuid, new File(userdir, uuid + ".yml"));
|
||||
config.convertLegacyFile();
|
||||
ess.getUserMap().trackUUID(uuid, name);
|
||||
ess.getUserMap().trackUUID(uuid, name, false);
|
||||
continue;
|
||||
}
|
||||
countFails++;
|
||||
}
|
||||
}
|
||||
ess.getUserMap().getUUIDMap().forceWriteUUIDMap();
|
||||
|
||||
|
||||
ess.getLogger().info("Converted " + countFiles + "/" + countFiles + ". Conversion complete.");
|
||||
ess.getLogger().info("Converted via cache: " + countEssCache + " :: Converted via lookup: " + countBukkit + " :: Failed to convert: " + countFails);
|
||||
ess.getLogger().info("To rerun the conversion type /essentials uuidconvert");
|
||||
}
|
||||
|
||||
public void banFormatChange()
|
||||
{
|
||||
if (doneFile.getBoolean("banFormatChange", false))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
ess.getLogger().info("Starting Essentials ban format conversion");
|
||||
|
||||
final File userdir = new File(ess.getDataFolder(), "userdata");
|
||||
if (!userdir.exists())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
int countFiles = 0;
|
||||
|
||||
ess.getLogger().info("Found " + userdir.list().length + " files to convert...");
|
||||
|
||||
for (String string : userdir.list())
|
||||
{
|
||||
if (!string.endsWith(".yml") || string.length() < 5)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
final int showProgress = countFiles % 250;
|
||||
|
||||
if (showProgress == 0)
|
||||
{
|
||||
ess.getLogger().info("Converted " + countFiles + "/" + userdir.list().length);
|
||||
}
|
||||
|
||||
countFiles++;
|
||||
final File pFile = new File(userdir, string);
|
||||
final EssentialsConf conf = new EssentialsConf(pFile);
|
||||
conf.load();
|
||||
|
||||
String banReason;
|
||||
Long banTimeout;
|
||||
|
||||
try
|
||||
{
|
||||
banReason = conf.getConfigurationSection("ban").getString("reason");
|
||||
}
|
||||
catch (NullPointerException n)
|
||||
{
|
||||
banReason = null;
|
||||
}
|
||||
|
||||
final String playerName = conf.getString("lastAccountName");
|
||||
if (playerName != null && playerName.length() > 1 && banReason != null && banReason.length() > 1)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (conf.getConfigurationSection("ban").contains("timeout"))
|
||||
{
|
||||
banTimeout = Long.parseLong(conf.getConfigurationSection("ban").getString("timeout"));
|
||||
}
|
||||
else
|
||||
{
|
||||
banTimeout = 0L;
|
||||
}
|
||||
}
|
||||
catch (NumberFormatException n)
|
||||
{
|
||||
banTimeout = 0L;
|
||||
}
|
||||
|
||||
if (BanLookup.isBanned(ess, playerName))
|
||||
{
|
||||
updateBan(playerName, banReason, banTimeout);
|
||||
}
|
||||
}
|
||||
conf.removeProperty("ban");
|
||||
conf.save();
|
||||
}
|
||||
|
||||
doneFile.setProperty("banFormatChange", true);
|
||||
doneFile.save();
|
||||
ess.getLogger().info("Ban format update complete.");
|
||||
}
|
||||
|
||||
private void updateBan(String playerName, String banReason, Long banTimeout)
|
||||
{
|
||||
if (banTimeout == 0)
|
||||
{
|
||||
Bukkit.getBanList(BanList.Type.NAME).addBan(playerName, banReason, null, Console.NAME);
|
||||
}
|
||||
else
|
||||
{
|
||||
Bukkit.getBanList(BanList.Type.NAME).addBan(playerName, banReason, new Date(banTimeout), Console.NAME);
|
||||
}
|
||||
}
|
||||
|
||||
public void beforeSettings()
|
||||
{
|
||||
if (!ess.getDataFolder().exists())
|
||||
@@ -674,6 +775,7 @@ public class EssentialsUpgrade
|
||||
updateSpawnsToNewSpawnsConfig();
|
||||
updateJailsToNewJailsConfig();
|
||||
uuidFileChange();
|
||||
banFormatChange();
|
||||
warnMetrics();
|
||||
}
|
||||
}
|
||||
|
@@ -12,8 +12,8 @@ import org.bukkit.Bukkit;
|
||||
|
||||
public class EssentialsUserConf extends EssentialsConf
|
||||
{
|
||||
final String username;
|
||||
final UUID uuid;
|
||||
public final String username;
|
||||
public final UUID uuid;
|
||||
|
||||
public EssentialsUserConf(final String username, final UUID uuid, final File configFile)
|
||||
{
|
||||
|
@@ -12,6 +12,7 @@ import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import java.util.regex.Pattern;
|
||||
import net.ess3.api.IEssentials;
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
|
||||
public class I18n implements net.ess3.api.II18n
|
||||
@@ -23,16 +24,28 @@ public class I18n implements net.ess3.api.II18n
|
||||
private transient ResourceBundle customBundle;
|
||||
private transient ResourceBundle localeBundle;
|
||||
private final transient ResourceBundle defaultBundle;
|
||||
private final transient Map<String, MessageFormat> messageFormatCache = new HashMap<String, MessageFormat>();
|
||||
private transient Map<String, MessageFormat> messageFormatCache = new HashMap<String, MessageFormat>();
|
||||
private final transient IEssentials ess;
|
||||
private static final Pattern NODOUBLEMARK = Pattern.compile("''");
|
||||
private static final ResourceBundle NULL_BUNDLE = new ResourceBundle()
|
||||
{
|
||||
public Enumeration<String> getKeys()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
protected Object handleGetObject(String key)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
public I18n(final IEssentials ess)
|
||||
{
|
||||
this.ess = ess;
|
||||
customBundle = ResourceBundle.getBundle(MESSAGES, defaultLocale, new FileResClassLoader(I18n.class.getClassLoader(), ess));
|
||||
localeBundle = ResourceBundle.getBundle(MESSAGES, defaultLocale);
|
||||
defaultBundle = ResourceBundle.getBundle(MESSAGES, Locale.ENGLISH);
|
||||
localeBundle = defaultBundle;
|
||||
customBundle = NULL_BUNDLE;
|
||||
}
|
||||
|
||||
public void onEnable()
|
||||
@@ -110,27 +123,43 @@ public class I18n implements net.ess3.api.II18n
|
||||
|
||||
public void updateLocale(final String loc)
|
||||
{
|
||||
if (loc == null || loc.isEmpty())
|
||||
if (loc != null && !loc.isEmpty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
final String[] parts = loc.split("[_\\.]");
|
||||
if (parts.length == 1)
|
||||
{
|
||||
currentLocale = new Locale(parts[0]);
|
||||
}
|
||||
if (parts.length == 2)
|
||||
{
|
||||
currentLocale = new Locale(parts[0], parts[1]);
|
||||
}
|
||||
if (parts.length == 3)
|
||||
{
|
||||
currentLocale = new Locale(parts[0], parts[1], parts[2]);
|
||||
final String[] parts = loc.split("[_\\.]");
|
||||
if (parts.length == 1)
|
||||
{
|
||||
currentLocale = new Locale(parts[0]);
|
||||
}
|
||||
if (parts.length == 2)
|
||||
{
|
||||
currentLocale = new Locale(parts[0], parts[1]);
|
||||
}
|
||||
if (parts.length == 3)
|
||||
{
|
||||
currentLocale = new Locale(parts[0], parts[1], parts[2]);
|
||||
}
|
||||
}
|
||||
ResourceBundle.clearCache();
|
||||
messageFormatCache = new HashMap<String, MessageFormat>();
|
||||
Logger.getLogger("Essentials").log(Level.INFO, String.format("Using locale %s", currentLocale.toString()));
|
||||
customBundle = ResourceBundle.getBundle(MESSAGES, currentLocale, new FileResClassLoader(I18n.class.getClassLoader(), ess));
|
||||
localeBundle = ResourceBundle.getBundle(MESSAGES, currentLocale);
|
||||
|
||||
try
|
||||
{
|
||||
localeBundle = ResourceBundle.getBundle(MESSAGES, currentLocale);
|
||||
}
|
||||
catch (MissingResourceException ex)
|
||||
{
|
||||
localeBundle = NULL_BUNDLE;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
customBundle = ResourceBundle.getBundle(MESSAGES, currentLocale, new FileResClassLoader(I18n.class.getClassLoader(), ess));
|
||||
}
|
||||
catch (MissingResourceException ex)
|
||||
{
|
||||
customBundle = NULL_BUNDLE;
|
||||
}
|
||||
}
|
||||
|
||||
public static String capitalCase(final String input)
|
||||
@@ -166,7 +195,7 @@ public class I18n implements net.ess3.api.II18n
|
||||
{
|
||||
}
|
||||
}
|
||||
return super.getResource(string);
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -183,7 +212,7 @@ public class I18n implements net.ess3.api.II18n
|
||||
{
|
||||
}
|
||||
}
|
||||
return super.getResourceAsStream(string);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -6,6 +6,7 @@ import com.earth2me.essentials.api.IWarps;
|
||||
import com.earth2me.essentials.metrics.Metrics;
|
||||
import com.earth2me.essentials.perm.PermissionsHandler;
|
||||
import com.earth2me.essentials.register.payment.Methods;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import org.bukkit.World;
|
||||
@@ -63,12 +64,14 @@ public interface IEssentials extends Plugin
|
||||
BukkitTask runTaskAsynchronously(Runnable run);
|
||||
|
||||
BukkitTask runTaskLaterAsynchronously(Runnable run, long delay);
|
||||
|
||||
BukkitTask runTaskTimerAsynchronously(Runnable run, long delay, long period);
|
||||
|
||||
int scheduleSyncDelayedTask(Runnable run);
|
||||
|
||||
int scheduleSyncDelayedTask(Runnable run, long delay);
|
||||
|
||||
int scheduleSyncRepeatingTask(final Runnable run, long delay, long period);
|
||||
int scheduleSyncRepeatingTask(Runnable run, long delay, long period);
|
||||
|
||||
TNTExplodeListener getTNTListener();
|
||||
|
||||
@@ -76,7 +79,7 @@ public interface IEssentials extends Plugin
|
||||
|
||||
AlternativeCommandsHandler getAlternativeCommandsHandler();
|
||||
|
||||
void showError(final CommandSource sender, final Throwable exception, final String commandLabel);
|
||||
void showError(CommandSource sender, Throwable exception, String commandLabel);
|
||||
|
||||
IItemDb getItemDb();
|
||||
|
||||
@@ -89,4 +92,8 @@ public interface IEssentials extends Plugin
|
||||
EssentialsTimer getTimer();
|
||||
|
||||
List<String> getVanishedPlayers();
|
||||
|
||||
Collection<Player> getOnlinePlayers();
|
||||
|
||||
Iterable<User> getOnlineUsers();
|
||||
}
|
||||
|
@@ -193,6 +193,8 @@ public interface ISettings extends IConf
|
||||
int getMailsPerMinute();
|
||||
|
||||
long getEconomyLagWarning();
|
||||
|
||||
long getPermissionsLagWarning();
|
||||
|
||||
void setEssentialsChatActive(boolean b);
|
||||
|
||||
|
@@ -198,7 +198,7 @@ public class Jails extends AsyncStorageObjectHolder<com.earth2me.essentials.sett
|
||||
private class JailListener implements Listener
|
||||
{
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||
public void onBlockBreak(final BlockBreakEvent event)
|
||||
public void onJailBlockBreak(final BlockBreakEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
if (user.isJailed())
|
||||
@@ -208,7 +208,7 @@ public class Jails extends AsyncStorageObjectHolder<com.earth2me.essentials.sett
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||
public void onBlockPlace(final BlockPlaceEvent event)
|
||||
public void onJailBlockPlace(final BlockPlaceEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
if (user.isJailed())
|
||||
@@ -218,7 +218,7 @@ public class Jails extends AsyncStorageObjectHolder<com.earth2me.essentials.sett
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||
public void onBlockDamage(final BlockDamageEvent event)
|
||||
public void onJailBlockDamage(final BlockDamageEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
if (user.isJailed())
|
||||
@@ -228,7 +228,7 @@ public class Jails extends AsyncStorageObjectHolder<com.earth2me.essentials.sett
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||
public void onEntityDamageByEntity(final EntityDamageByEntityEvent event)
|
||||
public void onJailEntityDamageByEntity(final EntityDamageByEntityEvent event)
|
||||
{
|
||||
if (event.getCause() != DamageCause.ENTITY_ATTACK || event.getEntity().getType() != EntityType.PLAYER)
|
||||
{
|
||||
@@ -246,7 +246,7 @@ public class Jails extends AsyncStorageObjectHolder<com.earth2me.essentials.sett
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||
public void onPlayerInteract(final PlayerInteractEvent event)
|
||||
public void onJailPlayerInteract(final PlayerInteractEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
if (user.isJailed())
|
||||
@@ -256,7 +256,7 @@ public class Jails extends AsyncStorageObjectHolder<com.earth2me.essentials.sett
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onPlayerRespawn(final PlayerRespawnEvent event)
|
||||
public void onJailPlayerRespawn(final PlayerRespawnEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
if (!user.isJailed() || user.getJail() == null || user.getJail().isEmpty())
|
||||
@@ -282,7 +282,7 @@ public class Jails extends AsyncStorageObjectHolder<com.earth2me.essentials.sett
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH)
|
||||
public void onPlayerTeleport(final PlayerTeleportEvent event)
|
||||
public void onJailPlayerTeleport(final PlayerTeleportEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
if (!user.isJailed() || user.getJail() == null || user.getJail().isEmpty())
|
||||
@@ -309,7 +309,7 @@ public class Jails extends AsyncStorageObjectHolder<com.earth2me.essentials.sett
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onPlayerJoin(final PlayerJoinEvent event)
|
||||
public void onJailPlayerJoin(final PlayerJoinEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
final long currentTime = System.currentTimeMillis();
|
||||
|
@@ -21,6 +21,24 @@ import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class Kit
|
||||
{
|
||||
final IEssentials ess;
|
||||
final String kitName;
|
||||
final Map<String, Object> kit;
|
||||
final Trade charge;
|
||||
|
||||
public Kit(final String kitName, final IEssentials ess) throws Exception
|
||||
{
|
||||
this.kitName = kitName;
|
||||
this.ess = ess;
|
||||
this.kit = ess.getSettings().getKit(kitName);
|
||||
this.charge = new Trade("kit-" + kitName, new Trade("kit-kit", ess), ess);
|
||||
|
||||
if (kit == null)
|
||||
{
|
||||
throw new Exception(tl("kitNotFound"));
|
||||
}
|
||||
}
|
||||
|
||||
//TODO: Convert this to use one of the new text classes?
|
||||
public static String listKits(final IEssentials ess, final User user) throws Exception
|
||||
{
|
||||
@@ -43,9 +61,9 @@ public class Kit
|
||||
{
|
||||
cost = tl("kitCost", NumberUtil.displayCurrency(costPrice, ess));
|
||||
}
|
||||
final Map<String, Object> kit = ess.getSettings().getKit(kitItem);
|
||||
|
||||
if (Kit.getNextUse(user, kitItem, kit) != 0)
|
||||
Kit kit = new Kit(kitItem, ess);
|
||||
if (kit.getNextUse(user) != 0)
|
||||
{
|
||||
name = tl("kitDelay", name);
|
||||
}
|
||||
@@ -62,14 +80,26 @@ public class Kit
|
||||
|
||||
}
|
||||
|
||||
public static void checkTime(final User user, final String kitName, final Map<String, Object> els) throws Exception
|
||||
public String getName()
|
||||
{
|
||||
final Calendar time = new GregorianCalendar();
|
||||
long nextUse = getNextUse(user, kitName, els);
|
||||
return kitName;
|
||||
}
|
||||
|
||||
public void checkPerms(final User user) throws Exception
|
||||
{
|
||||
if (!user.isAuthorized("essentials.kits." + kitName))
|
||||
{
|
||||
throw new Exception(tl("noKitPermission", "essentials.kits." + kitName));
|
||||
}
|
||||
}
|
||||
|
||||
public void checkDelay(final User user) throws Exception
|
||||
{
|
||||
long nextUse = getNextUse(user);
|
||||
|
||||
if (nextUse == 0L)
|
||||
{
|
||||
user.setKitTimestamp(kitName, time.getTimeInMillis());
|
||||
return;
|
||||
}
|
||||
else if (nextUse < 0L)
|
||||
{
|
||||
@@ -83,7 +113,23 @@ public class Kit
|
||||
}
|
||||
}
|
||||
|
||||
public static long getNextUse(final User user, final String kitName, final Map<String, Object> els) throws Exception
|
||||
public void checkAffordable(final User user) throws Exception
|
||||
{
|
||||
charge.isAffordableFor(user);
|
||||
}
|
||||
|
||||
public void setTime(final User user) throws Exception
|
||||
{
|
||||
final Calendar time = new GregorianCalendar();
|
||||
user.setKitTimestamp(kitName, time.getTimeInMillis());
|
||||
}
|
||||
|
||||
public void chargeUser(final User user) throws Exception
|
||||
{
|
||||
charge.charge(user);
|
||||
}
|
||||
|
||||
public long getNextUse(final User user) throws Exception
|
||||
{
|
||||
if (user.isAuthorized("essentials.kit.exemptdelay"))
|
||||
{
|
||||
@@ -96,7 +142,7 @@ public class Kit
|
||||
try
|
||||
{
|
||||
// Make sure delay is valid
|
||||
delay = els.containsKey("delay") ? ((Number)els.get("delay")).doubleValue() : 0.0d;
|
||||
delay = kit.containsKey("delay") ? ((Number)kit.get("delay")).doubleValue() : 0.0d;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
@@ -134,7 +180,7 @@ public class Kit
|
||||
}
|
||||
}
|
||||
|
||||
public static List<String> getItems(final IEssentials ess, final User user, final String kitName, final Map<String, Object> kit) throws Exception
|
||||
public List<String> getItems(final User user) throws Exception
|
||||
{
|
||||
if (kit == null)
|
||||
{
|
||||
@@ -166,7 +212,12 @@ public class Kit
|
||||
}
|
||||
}
|
||||
|
||||
public static void expandItems(final IEssentials ess, final User user, final List<String> items) throws Exception
|
||||
public void expandItems(final User user) throws Exception
|
||||
{
|
||||
expandItems(user, getItems(user));
|
||||
}
|
||||
|
||||
public void expandItems(final User user, final List<String> items) throws Exception
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -187,11 +238,12 @@ public class Kit
|
||||
|
||||
final String[] parts = kitItem.split(" +");
|
||||
final ItemStack parseStack = ess.getItemDb().get(parts[0], parts.length > 1 ? Integer.parseInt(parts[1]) : 1);
|
||||
|
||||
if (parseStack.getType() == Material.AIR) {
|
||||
|
||||
if (parseStack.getType() == Material.AIR)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
final MetaItemStack metaStack = new MetaItemStack(parseStack);
|
||||
|
||||
if (parts.length > 2)
|
||||
@@ -213,10 +265,12 @@ public class Kit
|
||||
for (ItemStack itemStack : overfilled.values())
|
||||
{
|
||||
int spillAmount = itemStack.getAmount();
|
||||
if (!allowOversizedStacks) {
|
||||
itemStack.setAmount(spillAmount < itemStack.getMaxStackSize() ? spillAmount : itemStack.getMaxStackSize());
|
||||
if (!allowOversizedStacks)
|
||||
{
|
||||
itemStack.setAmount(spillAmount < itemStack.getMaxStackSize() ? spillAmount : itemStack.getMaxStackSize());
|
||||
}
|
||||
while (spillAmount > 0) {
|
||||
while (spillAmount > 0)
|
||||
{
|
||||
user.getWorld().dropItemNaturally(user.getLocation(), itemStack);
|
||||
spillAmount -= itemStack.getAmount();
|
||||
}
|
||||
|
@@ -128,7 +128,7 @@ public class MetaItemStack
|
||||
|
||||
public void parseStringMeta(final CommandSource sender, final boolean allowUnsafe, String[] string, int fromArg, final IEssentials ess) throws Exception
|
||||
{
|
||||
if (string[fromArg].startsWith("{"))
|
||||
if (string[fromArg].startsWith("{") && hasMetaPermission(sender, "vanilla", false, true, ess))
|
||||
{
|
||||
try
|
||||
{
|
||||
|
@@ -30,6 +30,7 @@ import org.bukkit.material.Colorable;
|
||||
public enum MobData
|
||||
{
|
||||
BABY_AGEABLE("baby", Ageable.class, Data.BABY, true),
|
||||
ADULT_AGEABLE("adult", Ageable.class, Data.ADULT, true),
|
||||
BABY_PIG("piglet", EntityType.PIG, Data.BABY, false),
|
||||
BABY_WOLF("puppy", EntityType.WOLF, Data.BABY, false),
|
||||
BABY_CHICKEN("chick", EntityType.CHICKEN, Data.BABY, false),
|
||||
@@ -83,6 +84,7 @@ public enum MobData
|
||||
TUXEDO_CAT("tuxedo", EntityType.OCELOT, Ocelot.Type.BLACK_CAT, false),
|
||||
VILLAGER_ZOMBIE("villager", EntityType.ZOMBIE.getEntityClass(), Data.VILLAGER, true),
|
||||
BABY_ZOMBIE("baby", EntityType.ZOMBIE.getEntityClass(), Data.BABYZOMBIE, true),
|
||||
ADULT_ZOMBIE("adult", EntityType.ZOMBIE.getEntityClass(), Data.ADULTZOMBIE, true),
|
||||
DIAMOND_SWORD_ZOMBIE("diamondsword", EntityType.ZOMBIE.getEntityClass(), Material.DIAMOND_SWORD, true),
|
||||
GOLD_SWORD_ZOMBIE("goldsword", EntityType.ZOMBIE.getEntityClass(), Material.GOLD_SWORD, true),
|
||||
IRON_SWORD_ZOMBIE("ironsword", EntityType.ZOMBIE.getEntityClass(), Material.IRON_SWORD, true),
|
||||
@@ -113,8 +115,10 @@ public enum MobData
|
||||
|
||||
public enum Data
|
||||
{
|
||||
ADULT,
|
||||
BABY,
|
||||
CHEST,
|
||||
ADULTZOMBIE,
|
||||
BABYZOMBIE,
|
||||
VILLAGER,
|
||||
HORSESADDLE,
|
||||
@@ -214,10 +218,18 @@ public enum MobData
|
||||
{
|
||||
((Wolf)spawned).setAngry(true);
|
||||
}
|
||||
else if (this.value.equals(Data.ADULT))
|
||||
{
|
||||
((Ageable)spawned).setAdult();
|
||||
}
|
||||
else if (this.value.equals(Data.BABY))
|
||||
{
|
||||
((Ageable)spawned).setBaby();
|
||||
}
|
||||
else if (this.value.equals(Data.ADULTZOMBIE))
|
||||
{
|
||||
((Zombie)spawned).setBaby(false);
|
||||
}
|
||||
else if (this.value.equals(Data.BABYZOMBIE))
|
||||
{
|
||||
((Zombie)spawned).setBaby(true);
|
||||
|
@@ -1481,12 +1481,27 @@ public class OfflinePlayer implements Player
|
||||
@Override
|
||||
public boolean isBanned()
|
||||
{
|
||||
if (base.getName() == null && getName() != null)
|
||||
{
|
||||
return server.getBanList(BanList.Type.NAME).isBanned(getName());
|
||||
}
|
||||
return base.isBanned();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBanned(boolean banned)
|
||||
{
|
||||
if (base.getName() == null && getName() != null)
|
||||
{
|
||||
if (banned)
|
||||
{
|
||||
server.getBanList(BanList.Type.NAME).addBan(getName(), null, null, null);
|
||||
}
|
||||
else
|
||||
{
|
||||
server.getBanList(BanList.Type.NAME).pardon(getName());
|
||||
}
|
||||
}
|
||||
base.setBanned(banned);
|
||||
}
|
||||
|
||||
|
@@ -44,38 +44,43 @@ public class PlayerList
|
||||
}
|
||||
|
||||
// Produce a user summary: There are 5 out of maximum 10 players online.
|
||||
public static String listSummary(final IEssentials ess, final boolean showHidden)
|
||||
public static String listSummary(final IEssentials ess, final User user, final boolean showHidden)
|
||||
{
|
||||
Server server = ess.getServer();
|
||||
int playerHidden = 0;
|
||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||
int hiddenCount = 0;
|
||||
for (User onlinePlayer : ess.getOnlineUsers())
|
||||
{
|
||||
if (ess.getUser(onlinePlayer).isHidden())
|
||||
if (onlinePlayer.isHidden() || (user != null && !user.getBase().canSee(onlinePlayer.getBase())))
|
||||
{
|
||||
playerHidden++;
|
||||
if (showHidden || user.getBase().canSee(onlinePlayer.getBase()))
|
||||
{
|
||||
hiddenCount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
String online;
|
||||
if (showHidden && playerHidden > 0)
|
||||
if (hiddenCount > 0)
|
||||
{
|
||||
online = tl("listAmountHidden", server.getOnlinePlayers().length - playerHidden, playerHidden, server.getMaxPlayers());
|
||||
online = tl("listAmountHidden", ess.getOnlinePlayers().size() - playerHidden, hiddenCount, server.getMaxPlayers());
|
||||
}
|
||||
else
|
||||
{
|
||||
online = tl("listAmount", server.getOnlinePlayers().length - playerHidden, server.getMaxPlayers());
|
||||
online = tl("listAmount", ess.getOnlinePlayers().size() - playerHidden, server.getMaxPlayers());
|
||||
}
|
||||
return online;
|
||||
}
|
||||
|
||||
// Build the basic player list, divided by groups.
|
||||
public static Map<String, List<User>> getPlayerLists(final IEssentials ess, final boolean showHidden)
|
||||
public static Map<String, List<User>> getPlayerLists(final IEssentials ess, final User sender, final boolean showHidden)
|
||||
{
|
||||
Server server = ess.getServer();
|
||||
final Map<String, List<User>> playerList = new HashMap<String, List<User>>();
|
||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||
for (User onlineUser : ess.getOnlineUsers())
|
||||
{
|
||||
final User onlineUser = ess.getUser(onlinePlayer);
|
||||
if (onlineUser.isHidden() && !showHidden)
|
||||
if ((sender == null && !showHidden && onlineUser.isHidden()) ||
|
||||
(sender != null && !showHidden && !sender.getBase().canSee(onlineUser.getBase())))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
@@ -100,35 +100,20 @@ public class Potions
|
||||
POTIONS.put("wither", PotionEffectType.WITHER);
|
||||
ALIASPOTIONS.put("decay", PotionEffectType.WITHER);
|
||||
|
||||
POTIONS.put("healthboost", PotionEffectType.HEALTH_BOOST);
|
||||
ALIASPOTIONS.put("boost", PotionEffectType.HEALTH_BOOST);
|
||||
|
||||
try // 1.6 update
|
||||
{
|
||||
POTIONS.put("healthboost", PotionEffectType.HEALTH_BOOST);
|
||||
ALIASPOTIONS.put("boost", PotionEffectType.HEALTH_BOOST);
|
||||
POTIONS.put("absorption", PotionEffectType.ABSORPTION);
|
||||
ALIASPOTIONS.put("absorb", PotionEffectType.ABSORPTION);
|
||||
|
||||
POTIONS.put("absorption", PotionEffectType.ABSORPTION);
|
||||
ALIASPOTIONS.put("absorb", PotionEffectType.ABSORPTION);
|
||||
|
||||
POTIONS.put("saturation", PotionEffectType.SATURATION);
|
||||
ALIASPOTIONS.put("food", PotionEffectType.SATURATION);
|
||||
}
|
||||
catch (java.lang.NoSuchFieldError e)
|
||||
{
|
||||
Essentials.wrongVersion();
|
||||
}
|
||||
POTIONS.put("saturation", PotionEffectType.SATURATION);
|
||||
ALIASPOTIONS.put("food", PotionEffectType.SATURATION);
|
||||
|
||||
try // 1.7 update
|
||||
{
|
||||
POTIONS.put("waterbreathing", PotionEffectType.WATER_BREATHING);
|
||||
ALIASPOTIONS.put("underwaterbreathing", PotionEffectType.WATER_BREATHING);
|
||||
ALIASPOTIONS.put("waterbreath", PotionEffectType.WATER_BREATHING);
|
||||
ALIASPOTIONS.put("underwaterbreath", PotionEffectType.WATER_BREATHING);
|
||||
ALIASPOTIONS.put("air", PotionEffectType.WATER_BREATHING);
|
||||
}
|
||||
catch (java.lang.NoSuchFieldError e)
|
||||
{
|
||||
Essentials.wrongVersion();
|
||||
}
|
||||
POTIONS.put("waterbreathing", PotionEffectType.WATER_BREATHING);
|
||||
ALIASPOTIONS.put("underwaterbreathing", PotionEffectType.WATER_BREATHING);
|
||||
ALIASPOTIONS.put("waterbreath", PotionEffectType.WATER_BREATHING);
|
||||
ALIASPOTIONS.put("underwaterbreath", PotionEffectType.WATER_BREATHING);
|
||||
ALIASPOTIONS.put("air", PotionEffectType.WATER_BREATHING);
|
||||
}
|
||||
|
||||
public static PotionEffectType getByName(String name)
|
||||
|
@@ -51,7 +51,8 @@ public class Settings implements net.ess3.api.ISettings
|
||||
@Override
|
||||
public Set<String> getMultipleHomes()
|
||||
{
|
||||
return config.getConfigurationSection("sethome-multiple").getKeys(false);
|
||||
final ConfigurationSection section = config.getConfigurationSection("sethome-multiple");
|
||||
return section == null ? null : section.getKeys(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -94,7 +95,6 @@ public class Settings implements net.ess3.api.ISettings
|
||||
{
|
||||
return chatRadius;
|
||||
}
|
||||
|
||||
// #easteregg
|
||||
private char chatShout = '!';
|
||||
|
||||
@@ -108,7 +108,6 @@ public class Settings implements net.ess3.api.ISettings
|
||||
{
|
||||
return chatShout;
|
||||
}
|
||||
|
||||
// #easteregg
|
||||
private char chatQuestion = '?';
|
||||
|
||||
@@ -122,7 +121,6 @@ public class Settings implements net.ess3.api.ISettings
|
||||
{
|
||||
return chatQuestion;
|
||||
}
|
||||
|
||||
private boolean teleportSafety;
|
||||
|
||||
public boolean _isTeleportSafetyEnabled()
|
||||
@@ -559,11 +557,12 @@ public class Settings implements net.ess3.api.ISettings
|
||||
mailsPerMinute = _getMailsPerMinute();
|
||||
maxMoney = _getMaxMoney();
|
||||
minMoney = _getMinMoney();
|
||||
permissionsLagWarning = _getPermissionsLagWarning();
|
||||
economyLagWarning = _getEconomyLagWarning();
|
||||
economyLog = _isEcoLogEnabled();
|
||||
economyLogUpdate = _isEcoLogUpdateEnabled();
|
||||
economyDisabled = _isEcoDisabled();
|
||||
allowSilentJoin = _isJoinQuitMessagesDisabled();
|
||||
allowSilentJoin = _allowSilentJoinQuit();
|
||||
customJoinMessage = _getCustomJoinMessage();
|
||||
isCustomJoinMessage = !customJoinMessage.equals("none");
|
||||
customQuitMessage = _getCustomQuitMessage();
|
||||
@@ -1139,8 +1138,8 @@ public class Settings implements net.ess3.api.ISettings
|
||||
|
||||
private long _getEconomyLagWarning()
|
||||
{
|
||||
// Default to 20ms
|
||||
final long value = (long)(config.getDouble("economy-lag-warning", 20.0) * 1000000);
|
||||
// Default to 25ms
|
||||
final long value = (long)(config.getDouble("economy-lag-warning", 25.0) * 1000000);
|
||||
return value;
|
||||
}
|
||||
|
||||
@@ -1149,6 +1148,22 @@ public class Settings implements net.ess3.api.ISettings
|
||||
{
|
||||
return economyLagWarning;
|
||||
}
|
||||
|
||||
// #easteregg
|
||||
private long permissionsLagWarning;
|
||||
|
||||
private long _getPermissionsLagWarning()
|
||||
{
|
||||
// Default to 25ms
|
||||
final long value = (long)(config.getDouble("permissions-lag-warning", 25.0) * 1000000);
|
||||
return value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getPermissionsLagWarning()
|
||||
{
|
||||
return permissionsLagWarning;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getMaxTempban()
|
||||
@@ -1163,9 +1178,9 @@ public class Settings implements net.ess3.api.ISettings
|
||||
}
|
||||
private boolean allowSilentJoin;
|
||||
|
||||
public boolean _isJoinQuitMessagesDisabled()
|
||||
public boolean _allowSilentJoinQuit()
|
||||
{
|
||||
return config.getBoolean("allow-silent-join-quit");
|
||||
return config.getBoolean("allow-silent-join-quit", false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -216,6 +216,15 @@ public class SpawnMob
|
||||
{
|
||||
sender.sendMessage(tl("mobDataList", StringUtil.joinList(MobData.getValidHelp(spawned))));
|
||||
}
|
||||
|
||||
if (spawned instanceof Zombie)
|
||||
{
|
||||
((Zombie)spawned).setBaby(false);
|
||||
}
|
||||
else if(spawned instanceof Ageable)
|
||||
{
|
||||
((Ageable)spawned).setAdult();
|
||||
}
|
||||
|
||||
if (spawned instanceof Zombie || type == EntityType.SKELETON)
|
||||
{
|
||||
@@ -285,7 +294,10 @@ public class SpawnMob
|
||||
|
||||
if (type == EntityType.PIG_ZOMBIE)
|
||||
{
|
||||
final EntityEquipment invent = ((LivingEntity)spawned).getEquipment();
|
||||
final PigZombie zombie = ((PigZombie)spawned);
|
||||
zombie.setVillager(false);
|
||||
|
||||
final EntityEquipment invent = zombie.getEquipment();
|
||||
invent.setItemInHand(new ItemStack(Material.GOLD_SWORD, 1));
|
||||
invent.setItemInHandDropChance(0.1f);
|
||||
|
||||
@@ -295,7 +307,10 @@ public class SpawnMob
|
||||
|
||||
if (type == EntityType.ZOMBIE)
|
||||
{
|
||||
final EntityEquipment invent = ((LivingEntity)spawned).getEquipment();
|
||||
final Zombie zombie = ((Zombie)spawned);
|
||||
zombie.setVillager(false);
|
||||
|
||||
final EntityEquipment invent = zombie.getEquipment();
|
||||
invent.setBoots(new ItemStack(Material.GOLD_BOOTS, 1));
|
||||
invent.setBootsDropChance(0.0f);
|
||||
}
|
||||
|
@@ -102,7 +102,7 @@ public class Teleport implements net.ess3.api.ITeleport
|
||||
teleportee.setLastLocation();
|
||||
final Location loc = target.getLocation();
|
||||
|
||||
if (LocationUtil.isBlockUnsafe(loc.getWorld(), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()))
|
||||
if (LocationUtil.isBlockUnsafeForUser(teleportee, loc.getWorld(), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()))
|
||||
{
|
||||
if (ess.getSettings().isTeleportSafetyEnabled())
|
||||
{
|
||||
@@ -147,8 +147,8 @@ public class Teleport implements net.ess3.api.ITeleport
|
||||
public void teleport(Player entity, Trade chargeFor, TeleportCause cause) throws Exception
|
||||
{
|
||||
ITarget target = new PlayerTarget(entity);
|
||||
teleportOwner.sendMessage(tl("teleportToPlayer", entity.getDisplayName()));
|
||||
teleport(teleportOwner, target, chargeFor, cause);
|
||||
teleportOwner.sendMessage(tl("teleporting", target.getLocation().getWorld().getName(), target.getLocation().getBlockX(), target.getLocation().getBlockY(), target.getLocation().getBlockZ()));
|
||||
}
|
||||
|
||||
//This is used when teleporting to stored location
|
||||
@@ -177,7 +177,7 @@ public class Teleport implements net.ess3.api.ITeleport
|
||||
if (chargeFor != null)
|
||||
{
|
||||
chargeFor.isAffordableFor(teleportOwner);
|
||||
|
||||
|
||||
//This code is to make sure that commandcosts are checked in the initial world, and not in the resulting world.
|
||||
if (!chargeFor.getCommandCost(teleportOwner).equals(BigDecimal.ZERO))
|
||||
{
|
||||
@@ -256,6 +256,10 @@ public class Teleport implements net.ess3.api.ITeleport
|
||||
{
|
||||
Location loc = ess.getWarps().getWarp(warp);
|
||||
teleportee.sendMessage(tl("warpingTo", warp, loc.getWorld().getName(), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()));
|
||||
if (!teleportee.equals(teleportOwner))
|
||||
{
|
||||
teleportOwner.sendMessage(tl("warpingTo", warp, loc.getWorld().getName(), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()));
|
||||
}
|
||||
teleport(teleportee, new LocationTarget(loc), chargeFor, cause);
|
||||
}
|
||||
|
||||
|
@@ -1,6 +1,7 @@
|
||||
package com.earth2me.essentials;
|
||||
|
||||
import static com.earth2me.essentials.I18n.tl;
|
||||
import java.util.UUID;
|
||||
import net.ess3.api.IEssentials;
|
||||
import net.ess3.api.IUser;
|
||||
import org.bukkit.Location;
|
||||
@@ -13,7 +14,7 @@ public class TimedTeleport implements Runnable
|
||||
private final IUser teleportOwner;
|
||||
private final IEssentials ess;
|
||||
private final Teleport teleport;
|
||||
private final String timer_teleportee;
|
||||
private final UUID timer_teleportee;
|
||||
private int timer_task = -1;
|
||||
private final long timer_started; // time this task was initiated
|
||||
private final long timer_delay; // how long to delay the teleportPlayer
|
||||
@@ -42,14 +43,14 @@ public class TimedTeleport implements Runnable
|
||||
this.timer_initX = Math.round(teleportUser.getBase().getLocation().getX() * MOVE_CONSTANT);
|
||||
this.timer_initY = Math.round(teleportUser.getBase().getLocation().getY() * MOVE_CONSTANT);
|
||||
this.timer_initZ = Math.round(teleportUser.getBase().getLocation().getZ() * MOVE_CONSTANT);
|
||||
this.timer_teleportee = teleportUser.getName();
|
||||
this.timer_teleportee = teleportUser.getBase().getUniqueId();
|
||||
this.timer_teleportTarget = target;
|
||||
this.timer_chargeFor = chargeFor;
|
||||
this.timer_cause = cause;
|
||||
this.timer_respawn = respawn;
|
||||
this.timer_canMove = user.isAuthorized("essentials.teleport.timer.move");
|
||||
|
||||
timer_task = ess.scheduleSyncRepeatingTask(this, 20, 20);
|
||||
timer_task = ess.runTaskTimerAsynchronously(this, 20, 20).getTaskId();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -62,7 +63,7 @@ public class TimedTeleport implements Runnable
|
||||
return;
|
||||
}
|
||||
|
||||
IUser teleportUser = ess.getUser(this.timer_teleportee);
|
||||
final IUser teleportUser = ess.getUser(this.timer_teleportee);
|
||||
|
||||
if (teleportUser == null || !teleportUser.getBase().isOnline())
|
||||
{
|
||||
@@ -88,49 +89,65 @@ public class TimedTeleport implements Runnable
|
||||
return;
|
||||
}
|
||||
|
||||
timer_health = teleportUser.getBase().getHealth(); // in case user healed, then later gets injured
|
||||
final long now = System.currentTimeMillis();
|
||||
if (now > timer_started + timer_delay)
|
||||
class DelayedTeleportTask implements Runnable
|
||||
{
|
||||
try
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
teleport.cooldown(false);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
teleportOwner.sendMessage(tl("cooldownWithMessage", ex.getMessage()));
|
||||
if (teleportOwner != teleportUser)
|
||||
{
|
||||
teleportUser.sendMessage(tl("cooldownWithMessage", ex.getMessage()));
|
||||
}
|
||||
}
|
||||
try
|
||||
{
|
||||
cancelTimer(false);
|
||||
teleportUser.sendMessage(tl("teleportationCommencing"));
|
||||
if (timer_chargeFor != null)
|
||||
{
|
||||
timer_chargeFor.isAffordableFor(teleportOwner);
|
||||
}
|
||||
if (timer_respawn)
|
||||
{
|
||||
teleport.respawnNow(teleportUser, timer_cause);
|
||||
}
|
||||
else
|
||||
{
|
||||
teleport.now(teleportUser, timer_teleportTarget, timer_cause);
|
||||
}
|
||||
if (timer_chargeFor != null)
|
||||
{
|
||||
timer_chargeFor.charge(teleportOwner);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ess.showError(teleportOwner.getSource(), ex, "\\ teleport");
|
||||
}
|
||||
|
||||
timer_health = teleportUser.getBase().getHealth(); // in case user healed, then later gets injured
|
||||
final long now = System.currentTimeMillis();
|
||||
if (now > timer_started + timer_delay)
|
||||
{
|
||||
try
|
||||
{
|
||||
teleport.cooldown(false);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
teleportOwner.sendMessage(tl("cooldownWithMessage", ex.getMessage()));
|
||||
if (teleportOwner != teleportUser)
|
||||
{
|
||||
teleportUser.sendMessage(tl("cooldownWithMessage", ex.getMessage()));
|
||||
}
|
||||
}
|
||||
try
|
||||
{
|
||||
cancelTimer(false);
|
||||
teleportUser.sendMessage(tl("teleportationCommencing"));
|
||||
|
||||
try
|
||||
{
|
||||
if (timer_chargeFor != null)
|
||||
{
|
||||
timer_chargeFor.isAffordableFor(teleportOwner);
|
||||
}
|
||||
if (timer_respawn)
|
||||
{
|
||||
teleport.respawnNow(teleportUser, timer_cause);
|
||||
}
|
||||
else
|
||||
{
|
||||
teleport.now(teleportUser, timer_teleportTarget, timer_cause);
|
||||
}
|
||||
if (timer_chargeFor != null)
|
||||
{
|
||||
timer_chargeFor.charge(teleportOwner);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ess.showError(teleportOwner.getSource(), ex, "\\ teleport");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
ess.scheduleSyncDelayedTask(new DelayedTeleportTask());
|
||||
}
|
||||
|
||||
//If we need to cancelTimer a pending teleportPlayer call this method
|
||||
@@ -146,7 +163,7 @@ public class TimedTeleport implements Runnable
|
||||
if (notifyUser)
|
||||
{
|
||||
teleportOwner.sendMessage(tl("pendingTeleportCancelled"));
|
||||
if (timer_teleportee != null && !timer_teleportee.equals(teleportOwner.getName()))
|
||||
if (timer_teleportee != null && !timer_teleportee.equals(teleportOwner.getBase().getUniqueId()))
|
||||
{
|
||||
ess.getUser(timer_teleportee).sendMessage(tl("pendingTeleportCancelled"));
|
||||
}
|
||||
|
@@ -3,6 +3,7 @@ package com.earth2me.essentials;
|
||||
import static com.earth2me.essentials.I18n.tl;
|
||||
import com.earth2me.essentials.craftbukkit.InventoryWorkaround;
|
||||
import com.earth2me.essentials.craftbukkit.SetExpFix;
|
||||
import com.earth2me.essentials.utils.NumberUtil;
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
@@ -28,7 +29,7 @@ public class Trade
|
||||
private final transient BigDecimal money;
|
||||
private final transient ItemStack itemStack;
|
||||
private final transient Integer exp;
|
||||
private final transient com.earth2me.essentials.IEssentials ess;
|
||||
private final transient IEssentials ess;
|
||||
|
||||
|
||||
public enum TradeType
|
||||
@@ -59,7 +60,7 @@ public class Trade
|
||||
@Deprecated
|
||||
public Trade(final double money, final com.earth2me.essentials.IEssentials ess)
|
||||
{
|
||||
this(null, null, BigDecimal.valueOf(money), null, null, ess);
|
||||
this(null, null, BigDecimal.valueOf(money), null, null, (IEssentials)ess);
|
||||
}
|
||||
|
||||
public Trade(final BigDecimal money, final IEssentials ess)
|
||||
@@ -77,7 +78,7 @@ public class Trade
|
||||
this(null, null, null, null, exp, ess);
|
||||
}
|
||||
|
||||
private Trade(final String command, final Trade fallback, final BigDecimal money, final ItemStack item, final Integer exp, final com.earth2me.essentials.IEssentials ess)
|
||||
private Trade(final String command, final Trade fallback, final BigDecimal money, final ItemStack item, final Integer exp, final IEssentials ess)
|
||||
{
|
||||
this.command = command;
|
||||
this.fallbackTrade = fallback;
|
||||
@@ -99,7 +100,7 @@ public class Trade
|
||||
&& getMoney().signum() > 0
|
||||
&& !user.canAfford(getMoney()))
|
||||
{
|
||||
throw new ChargeException(tl("notEnoughMoney"));
|
||||
throw new ChargeException(tl("notEnoughMoney", NumberUtil.displayCurrency(getMoney(), ess)));
|
||||
}
|
||||
|
||||
if (getItemStack() != null
|
||||
@@ -113,7 +114,7 @@ public class Trade
|
||||
&& (money = getCommandCost(user)).signum() > 0
|
||||
&& !user.canAfford(money))
|
||||
{
|
||||
throw new ChargeException(tl("notEnoughMoney"));
|
||||
throw new ChargeException(tl("notEnoughMoney", NumberUtil.displayCurrency(money, ess)));
|
||||
}
|
||||
|
||||
if (exp != null && exp > 0
|
||||
@@ -223,7 +224,7 @@ public class Trade
|
||||
}
|
||||
if (!user.canAfford(getMoney()) && getMoney().signum() > 0)
|
||||
{
|
||||
throw new ChargeException(tl("notEnoughMoney"));
|
||||
throw new ChargeException(tl("notEnoughMoney", NumberUtil.displayCurrency(getMoney(), ess)));
|
||||
}
|
||||
user.takeMoney(getMoney());
|
||||
}
|
||||
@@ -245,7 +246,7 @@ public class Trade
|
||||
final BigDecimal cost = getCommandCost(user);
|
||||
if (!user.canAfford(cost) && cost.signum() > 0)
|
||||
{
|
||||
throw new ChargeException(tl("notEnoughMoney"));
|
||||
throw new ChargeException(tl("notEnoughMoney", NumberUtil.displayCurrency(cost, ess)));
|
||||
}
|
||||
user.takeMoney(cost);
|
||||
}
|
||||
|
@@ -45,45 +45,56 @@ public class UUIDMap
|
||||
userList.createNewFile();
|
||||
}
|
||||
|
||||
final BufferedReader reader = new BufferedReader(new FileReader(userList));
|
||||
try
|
||||
synchronized (pendingDiskWrites)
|
||||
{
|
||||
while (true)
|
||||
if (ess.getSettings().isDebug())
|
||||
{
|
||||
final String line = reader.readLine();
|
||||
if (line == null)
|
||||
ess.getLogger().log(Level.INFO, "Reading usermap from disk");
|
||||
}
|
||||
|
||||
names.clear();
|
||||
history.clear();
|
||||
|
||||
final BufferedReader reader = new BufferedReader(new FileReader(userList));
|
||||
try
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
final String[] values = splitPattern.split(line);
|
||||
if (values.length == 2)
|
||||
final String line = reader.readLine();
|
||||
if (line == null)
|
||||
{
|
||||
final String name = values[0];
|
||||
final UUID uuid = UUID.fromString(values[1]);
|
||||
names.put(name, uuid);
|
||||
if (!history.containsKey(uuid))
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
final String[] values = splitPattern.split(line);
|
||||
if (values.length == 2)
|
||||
{
|
||||
final ArrayList<String> list = new ArrayList<String>();
|
||||
list.add(name);
|
||||
history.put(uuid, list);
|
||||
}
|
||||
else
|
||||
{
|
||||
final ArrayList<String> list = history.get(uuid);
|
||||
if (!list.contains(name))
|
||||
final String name = values[0];
|
||||
final UUID uuid = UUID.fromString(values[1]);
|
||||
names.put(name, uuid);
|
||||
if (!history.containsKey(uuid))
|
||||
{
|
||||
final ArrayList<String> list = new ArrayList<String>();
|
||||
list.add(name);
|
||||
history.put(uuid, list);
|
||||
}
|
||||
else
|
||||
{
|
||||
final ArrayList<String> list = history.get(uuid);
|
||||
if (!list.contains(name))
|
||||
{
|
||||
list.add(name);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
reader.close();
|
||||
finally
|
||||
{
|
||||
reader.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (IOException ex)
|
||||
@@ -99,6 +110,10 @@ public class UUIDMap
|
||||
|
||||
public void forceWriteUUIDMap()
|
||||
{
|
||||
if (ess.getSettings().isDebug())
|
||||
{
|
||||
ess.getLogger().log(Level.INFO, "Forcing usermap write to disk");
|
||||
}
|
||||
try
|
||||
{
|
||||
Future<?> future = _writeUUIDMap();;
|
||||
@@ -119,7 +134,7 @@ public class UUIDMap
|
||||
|
||||
public Future<?> _writeUUIDMap()
|
||||
{
|
||||
final ConcurrentSkipListMap<String, UUID> names = ess.getUserMap().getNames().clone();
|
||||
final ConcurrentSkipListMap<String, UUID> names = ess.getUserMap().getNames();
|
||||
if (names.size() < 1)
|
||||
{
|
||||
return null;
|
||||
|
@@ -10,6 +10,7 @@ import com.earth2me.essentials.utils.NumberUtil;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Calendar;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.UUID;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import net.ess3.api.IEssentials;
|
||||
@@ -28,7 +29,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, net.es
|
||||
{
|
||||
private static final Logger logger = Logger.getLogger("Essentials");
|
||||
private CommandSource replyTo = null;
|
||||
private transient String teleportRequester;
|
||||
private transient UUID teleportRequester;
|
||||
private transient boolean teleportRequestHere;
|
||||
private transient Location teleportLocation;
|
||||
private transient boolean vanished;
|
||||
@@ -171,7 +172,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, net.es
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new ChargeException(tl("notEnoughMoney"));
|
||||
throw new ChargeException(tl("notEnoughMoney", NumberUtil.displayCurrency(value, ess)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -194,7 +195,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, net.es
|
||||
}
|
||||
catch (MaxMoneyException ex)
|
||||
{
|
||||
//We shouldn't be able to throw an exception on subtract money
|
||||
ess.getLogger().log(Level.WARNING, "Invalid call to takeMoney, total balance can't be more than the max-money limit.", ex);
|
||||
}
|
||||
sendMessage(tl("takenFromAccount", NumberUtil.displayCurrency(value, ess)));
|
||||
if (initiator != null)
|
||||
@@ -237,7 +238,11 @@ public class User extends UserData implements Comparable<User>, IReplyTo, net.es
|
||||
|
||||
private void _dispose()
|
||||
{
|
||||
this.base = new OfflinePlayer(base.getUniqueId(), ess.getServer());
|
||||
if (!base.isOnline())
|
||||
{
|
||||
this.base = new OfflinePlayer(getConfigUUID(), ess.getServer());
|
||||
}
|
||||
cleanup();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -262,7 +267,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, net.es
|
||||
public void requestTeleport(final User player, final boolean here)
|
||||
{
|
||||
teleportRequestTime = System.currentTimeMillis();
|
||||
teleportRequester = player == null ? null : player.getName();
|
||||
teleportRequester = player == null ? null : player.getBase().getUniqueId();
|
||||
teleportRequestHere = here;
|
||||
if (player == null)
|
||||
{
|
||||
@@ -274,7 +279,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, net.es
|
||||
}
|
||||
}
|
||||
|
||||
public String getTeleportRequest()
|
||||
public UUID getTeleportRequest()
|
||||
{
|
||||
return teleportRequester;
|
||||
}
|
||||
@@ -295,10 +300,13 @@ public class User extends UserData implements Comparable<User>, IReplyTo, net.es
|
||||
String nickname;
|
||||
String suffix = "";
|
||||
final String nick = getNickname();
|
||||
if (ess.getSettings().isCommandDisabled("nick") || nick == null || nick.isEmpty() || nick.equalsIgnoreCase(getName()))
|
||||
if (ess.getSettings().isCommandDisabled("nick") || nick == null || nick.isEmpty() || nick.equals(getName()))
|
||||
{
|
||||
nickname = getName();
|
||||
}
|
||||
else if (nick.equalsIgnoreCase(getName())) {
|
||||
nickname = nick;
|
||||
}
|
||||
else
|
||||
{
|
||||
nickname = ess.getSettings().getNicknamePrefix() + nick;
|
||||
@@ -529,6 +537,11 @@ public class User extends UserData implements Comparable<User>, IReplyTo, net.es
|
||||
{
|
||||
return hidden;
|
||||
}
|
||||
|
||||
public boolean isHidden(final Player player)
|
||||
{
|
||||
return hidden || !player.canSee(getBase());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setHidden(final boolean hidden)
|
||||
@@ -581,18 +594,6 @@ public class User extends UserData implements Comparable<User>, IReplyTo, net.es
|
||||
return false;
|
||||
}
|
||||
|
||||
//Returns true if status expired during this check
|
||||
public boolean checkBanTimeout(final long currentTime)
|
||||
{
|
||||
if (getBanTimeout() > 0 && getBanTimeout() < currentTime && this.getBase().isBanned())
|
||||
{
|
||||
setBanTimeout(0);
|
||||
this.getBase().setBanned(false);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public void updateActivity(final boolean broadcast)
|
||||
{
|
||||
if (isAfk() && ess.getSettings().cancelAfkOnInteract())
|
||||
@@ -622,9 +623,8 @@ public class User extends UserData implements Comparable<User>, IReplyTo, net.es
|
||||
this.getBase().kickPlayer(kickReason);
|
||||
|
||||
|
||||
for (Player player : ess.getServer().getOnlinePlayers())
|
||||
for (User user : ess.getOnlineUsers())
|
||||
{
|
||||
final User user = ess.getUser(player);
|
||||
if (user.isAuthorized("essentials.kick.notify"))
|
||||
{
|
||||
user.sendMessage(tl("playerKicked", Console.NAME, getName(), kickReason));
|
||||
@@ -746,6 +746,11 @@ public class User extends UserData implements Comparable<User>, IReplyTo, net.es
|
||||
{
|
||||
return teleportInvulnerabilityTimestamp != 0 && teleportInvulnerabilityTimestamp >= System.currentTimeMillis();
|
||||
}
|
||||
|
||||
public boolean canInteractVanished()
|
||||
{
|
||||
return isAuthorized("essentials.vanish.interact");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isVanished()
|
||||
@@ -759,11 +764,11 @@ public class User extends UserData implements Comparable<User>, IReplyTo, net.es
|
||||
vanished = set;
|
||||
if (set)
|
||||
{
|
||||
for (Player p : ess.getServer().getOnlinePlayers())
|
||||
for (User user : ess.getOnlineUsers())
|
||||
{
|
||||
if (!ess.getUser(p).isAuthorized("essentials.vanish.see"))
|
||||
if (!user.isAuthorized("essentials.vanish.see"))
|
||||
{
|
||||
p.hidePlayer(getBase());
|
||||
user.getBase().hidePlayer(getBase());
|
||||
}
|
||||
}
|
||||
setHidden(true);
|
||||
@@ -775,7 +780,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, net.es
|
||||
}
|
||||
else
|
||||
{
|
||||
for (Player p : ess.getServer().getOnlinePlayers())
|
||||
for (Player p : ess.getOnlinePlayers())
|
||||
{
|
||||
p.showPlayer(getBase());
|
||||
}
|
||||
|
@@ -50,7 +50,15 @@ public abstract class UserData extends PlayerExtension implements IConf
|
||||
{
|
||||
config.forceSave();
|
||||
config.getFile().delete();
|
||||
ess.getUserMap().removeUser(this.getBase().getName());
|
||||
if (config.username != null)
|
||||
{
|
||||
ess.getUserMap().removeUser(config.username);
|
||||
}
|
||||
}
|
||||
|
||||
public final void cleanup()
|
||||
{
|
||||
config.cleanup();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -116,23 +124,26 @@ public abstract class UserData extends PlayerExtension implements IConf
|
||||
|
||||
public void setMoney(BigDecimal value, boolean throwError) throws MaxMoneyException
|
||||
{
|
||||
money = value;
|
||||
BigDecimal maxMoney = ess.getSettings().getMaxMoney();
|
||||
BigDecimal minMoney = ess.getSettings().getMinMoney();
|
||||
if (money.compareTo(maxMoney) > 0)
|
||||
if (value.compareTo(maxMoney) > 0)
|
||||
{
|
||||
money = maxMoney;
|
||||
if (throwError)
|
||||
{
|
||||
throw new MaxMoneyException();
|
||||
}
|
||||
money = maxMoney;
|
||||
}
|
||||
else
|
||||
{
|
||||
money = value;
|
||||
}
|
||||
if (money.compareTo(minMoney) < 0)
|
||||
{
|
||||
money = minMoney;
|
||||
}
|
||||
config.setProperty("money", money);
|
||||
config.save();
|
||||
stopTransaction();
|
||||
}
|
||||
private Map<String, Object> homes;
|
||||
|
||||
@@ -656,27 +667,6 @@ public abstract class UserData extends PlayerExtension implements IConf
|
||||
config.save();
|
||||
}
|
||||
|
||||
public String getBanReason()
|
||||
{
|
||||
return config.getString("ban.reason", "");
|
||||
}
|
||||
|
||||
public void setBanReason(String reason)
|
||||
{
|
||||
config.setProperty("ban.reason", StringUtil.sanitizeString(reason));
|
||||
config.save();
|
||||
}
|
||||
|
||||
public long getBanTimeout()
|
||||
{
|
||||
return config.getLong("ban.timeout", 0);
|
||||
}
|
||||
|
||||
public void setBanTimeout(long time)
|
||||
{
|
||||
config.setProperty("ban.timeout", time);
|
||||
config.save();
|
||||
}
|
||||
private long lastLogin;
|
||||
|
||||
private long _getLastLogin()
|
||||
@@ -830,7 +820,7 @@ public abstract class UserData extends PlayerExtension implements IConf
|
||||
this.lastAccountName = lastAccountName;
|
||||
config.setProperty("lastAccountName", lastAccountName);
|
||||
config.save();
|
||||
ess.getUserMap().trackUUID(base.getUniqueId(), lastAccountName);
|
||||
ess.getUserMap().trackUUID(getConfigUUID(), lastAccountName, true);
|
||||
}
|
||||
|
||||
public void setNPC(boolean set)
|
||||
@@ -960,8 +950,23 @@ public abstract class UserData extends PlayerExtension implements IConf
|
||||
return new HashMap<String, Object>();
|
||||
}
|
||||
|
||||
public UUID getConfigUUID()
|
||||
{
|
||||
return config.uuid;
|
||||
}
|
||||
|
||||
public void save()
|
||||
{
|
||||
config.save();
|
||||
}
|
||||
|
||||
public void startTransaction()
|
||||
{
|
||||
config.startTransaction();
|
||||
}
|
||||
|
||||
public void stopTransaction()
|
||||
{
|
||||
config.stopTransaction();
|
||||
}
|
||||
}
|
||||
|
@@ -4,6 +4,9 @@ import com.earth2me.essentials.utils.StringUtil;
|
||||
import com.google.common.cache.Cache;
|
||||
import com.google.common.cache.CacheBuilder;
|
||||
import com.google.common.cache.CacheLoader;
|
||||
import com.google.common.cache.RemovalCause;
|
||||
import com.google.common.cache.RemovalListener;
|
||||
import com.google.common.cache.RemovalNotification;
|
||||
import com.google.common.util.concurrent.UncheckedExecutionException;
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
@@ -15,14 +18,13 @@ import java.util.concurrent.ConcurrentSkipListMap;
|
||||
import java.util.concurrent.ConcurrentSkipListSet;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import net.ess3.api.IEssentials;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
||||
public class UserMap extends CacheLoader<UUID, User> implements IConf
|
||||
public class UserMap extends CacheLoader<String, User> implements IConf
|
||||
{
|
||||
private final transient IEssentials ess;
|
||||
private final transient Cache<UUID, User> users;
|
||||
private final transient Cache<String, User> users;
|
||||
private final transient ConcurrentSkipListSet<UUID> keys = new ConcurrentSkipListSet<UUID>();
|
||||
private final transient ConcurrentSkipListMap<String, UUID> names = new ConcurrentSkipListMap<String, UUID>();
|
||||
private final transient ConcurrentSkipListMap<UUID, ArrayList<String>> history = new ConcurrentSkipListMap<UUID, ArrayList<String>>();
|
||||
@@ -33,6 +35,8 @@ public class UserMap extends CacheLoader<UUID, User> implements IConf
|
||||
super();
|
||||
this.ess = ess;
|
||||
uuidMap = new UUIDMap(ess);
|
||||
//RemovalListener<UUID, User> remListener = new UserMapRemovalListener();
|
||||
//users = CacheBuilder.newBuilder().maximumSize(ess.getSettings().getMaxUserCacheCount()).softValues().removalListener(remListener).build(this);
|
||||
users = CacheBuilder.newBuilder().maximumSize(ess.getSettings().getMaxUserCacheCount()).softValues().build(this);
|
||||
}
|
||||
|
||||
@@ -51,7 +55,6 @@ public class UserMap extends CacheLoader<UUID, User> implements IConf
|
||||
return;
|
||||
}
|
||||
keys.clear();
|
||||
names.clear();
|
||||
users.invalidateAll();
|
||||
for (String string : userdir.list())
|
||||
{
|
||||
@@ -84,37 +87,23 @@ public class UserMap extends CacheLoader<UUID, User> implements IConf
|
||||
{
|
||||
try
|
||||
{
|
||||
final String sanitizedName = StringUtil.sanitizeFileName(name);
|
||||
final String sanitizedName = StringUtil.safeString(name);
|
||||
if (names.containsKey(sanitizedName))
|
||||
{
|
||||
final UUID uuid = names.get(sanitizedName);
|
||||
return users.get(uuid);
|
||||
}
|
||||
|
||||
for (Player player : ess.getServer().getOnlinePlayers())
|
||||
{
|
||||
String sanitizedPlayer = StringUtil.sanitizeFileName(player.getName());
|
||||
if (sanitizedPlayer.equalsIgnoreCase(sanitizedName))
|
||||
{
|
||||
User user = new User(player, ess);
|
||||
trackUUID(user.getBase().getUniqueId(), user.getName());
|
||||
return new User(player, ess);
|
||||
}
|
||||
return getUser(uuid);
|
||||
}
|
||||
|
||||
final File userFile = getUserFileFromString(sanitizedName);
|
||||
if (userFile.exists())
|
||||
{
|
||||
ess.getLogger().info("Importing user " + name + " to usermap.");
|
||||
User user = new User(new OfflinePlayer(sanitizedName, ess.getServer()), ess);
|
||||
trackUUID(user.getBase().getUniqueId(), user.getName());
|
||||
trackUUID(user.getBase().getUniqueId(), user.getName(), true);
|
||||
return user;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
catch (ExecutionException ex)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
catch (UncheckedExecutionException ex)
|
||||
{
|
||||
return null;
|
||||
@@ -125,7 +114,7 @@ public class UserMap extends CacheLoader<UUID, User> implements IConf
|
||||
{
|
||||
try
|
||||
{
|
||||
return users.get(uuid);
|
||||
return users.get(uuid.toString());
|
||||
}
|
||||
catch (ExecutionException ex)
|
||||
{
|
||||
@@ -137,31 +126,48 @@ public class UserMap extends CacheLoader<UUID, User> implements IConf
|
||||
}
|
||||
}
|
||||
|
||||
public void trackUUID(final UUID uuid, final String name)
|
||||
public void trackUUID(final UUID uuid, final String name, boolean replace)
|
||||
{
|
||||
if (uuid != null)
|
||||
{
|
||||
keys.add(uuid);
|
||||
if (name != null && name.length() > 0)
|
||||
{
|
||||
final String keyName = StringUtil.sanitizeFileName(name);
|
||||
if (!names.containsKey(keyName) || !names.get(keyName).equals(uuid))
|
||||
final String keyName = StringUtil.safeString(name);
|
||||
if (!names.containsKey(keyName))
|
||||
{
|
||||
names.put(keyName, uuid);
|
||||
uuidMap.writeUUIDMap();
|
||||
}
|
||||
else if (!names.get(keyName).equals(uuid))
|
||||
{
|
||||
if (replace)
|
||||
{
|
||||
ess.getLogger().info("Found new UUID for " + name + ". Replacing " + names.get(keyName).toString() + " with " + uuid.toString());
|
||||
names.put(keyName, uuid);
|
||||
uuidMap.writeUUIDMap();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ess.getSettings().isDebug())
|
||||
{
|
||||
ess.getLogger().info("Found old UUID for " + name + " (" + uuid.toString() + "). Not adding to usermap.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public User load(final UUID uuid) throws Exception
|
||||
public User load(final String stringUUID) throws Exception
|
||||
{
|
||||
UUID uuid = UUID.fromString(stringUUID);
|
||||
Player player = ess.getServer().getPlayer(uuid);
|
||||
if (player != null)
|
||||
{
|
||||
final User user = new User(player, ess);
|
||||
trackUUID(uuid, user.getName());
|
||||
trackUUID(uuid, user.getName(), true);
|
||||
return user;
|
||||
}
|
||||
|
||||
@@ -172,7 +178,7 @@ public class UserMap extends CacheLoader<UUID, User> implements IConf
|
||||
player = new OfflinePlayer(uuid, ess.getServer());
|
||||
final User user = new User(player, ess);
|
||||
((OfflinePlayer)player).setName(user.getLastAccountName());
|
||||
trackUUID(uuid, user.getName());
|
||||
trackUUID(uuid, user.getName(), false);
|
||||
return user;
|
||||
}
|
||||
|
||||
@@ -186,8 +192,18 @@ public class UserMap extends CacheLoader<UUID, User> implements IConf
|
||||
loadAllUsersAsync(ess);
|
||||
}
|
||||
|
||||
public void invalidateAll()
|
||||
{
|
||||
users.invalidateAll();
|
||||
}
|
||||
|
||||
public void removeUser(final String name)
|
||||
{
|
||||
if (names == null)
|
||||
{
|
||||
ess.getLogger().warning("Name collection is null, cannot remove user.");
|
||||
return;
|
||||
}
|
||||
UUID uuid = names.get(name);
|
||||
if (uuid != null)
|
||||
{
|
||||
@@ -195,12 +211,12 @@ public class UserMap extends CacheLoader<UUID, User> implements IConf
|
||||
users.invalidate(uuid);
|
||||
}
|
||||
names.remove(name);
|
||||
names.remove(StringUtil.sanitizeFileName(name));
|
||||
names.remove(StringUtil.safeString(name));
|
||||
}
|
||||
|
||||
public Set<UUID> getAllUniqueUsers()
|
||||
{
|
||||
return Collections.unmodifiableSet(keys);
|
||||
return Collections.unmodifiableSet(keys.clone());
|
||||
}
|
||||
|
||||
public int getUniqueUsers()
|
||||
@@ -208,12 +224,12 @@ public class UserMap extends CacheLoader<UUID, User> implements IConf
|
||||
return keys.size();
|
||||
}
|
||||
|
||||
public ConcurrentSkipListMap<String, UUID> getNames()
|
||||
protected ConcurrentSkipListMap<String, UUID> getNames()
|
||||
{
|
||||
return names;
|
||||
}
|
||||
|
||||
public ConcurrentSkipListMap<UUID, ArrayList<String>> getHistory()
|
||||
protected ConcurrentSkipListMap<UUID, ArrayList<String>> getHistory()
|
||||
{
|
||||
return history;
|
||||
}
|
||||
@@ -239,4 +255,16 @@ public class UserMap extends CacheLoader<UUID, User> implements IConf
|
||||
final File userFolder = new File(ess.getDataFolder(), "userdata");
|
||||
return new File(userFolder, StringUtil.sanitizeFileName(name) + ".yml");
|
||||
}
|
||||
// class UserMapRemovalListener implements RemovalListener
|
||||
// {
|
||||
// @Override
|
||||
// public void onRemoval(final RemovalNotification notification)
|
||||
// {
|
||||
// Object value = notification.getValue();
|
||||
// if (value != null)
|
||||
// {
|
||||
// ((User)value).cleanup();
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
@@ -3,6 +3,7 @@ package com.earth2me.essentials.api;
|
||||
import com.earth2me.essentials.EssentialsConf;
|
||||
import com.earth2me.essentials.EssentialsUserConf;
|
||||
import static com.earth2me.essentials.I18n.tl;
|
||||
import com.earth2me.essentials.Trade;
|
||||
import com.earth2me.essentials.User;
|
||||
import static com.earth2me.essentials.api.Economy.add;
|
||||
import static com.earth2me.essentials.api.Economy.divide;
|
||||
@@ -51,6 +52,7 @@ public class Economy
|
||||
private static void createNPCFile(String name)
|
||||
{
|
||||
File folder = new File(ess.getDataFolder(), "userdata");
|
||||
name = StringUtil.safeString(name);
|
||||
if (!folder.exists())
|
||||
{
|
||||
folder.mkdirs();
|
||||
@@ -62,7 +64,7 @@ public class Economy
|
||||
npcConfig.setProperty("lastAccountName", name);
|
||||
npcConfig.setProperty("money", ess.getSettings().getStartingBalance());
|
||||
npcConfig.forceSave();
|
||||
ess.getUserMap().trackUUID(npcUUID, name);
|
||||
ess.getUserMap().trackUUID(npcUUID, name, false);
|
||||
}
|
||||
|
||||
private static void deleteNPC(String name)
|
||||
@@ -77,6 +79,10 @@ public class Economy
|
||||
{
|
||||
throw new RuntimeException(noCallBeforeLoad);
|
||||
}
|
||||
if (name == null)
|
||||
{
|
||||
throw new RuntimeException("Economy username cannot be null");
|
||||
}
|
||||
return ess.getUser(name);
|
||||
}
|
||||
|
||||
@@ -147,6 +153,7 @@ public class Economy
|
||||
{
|
||||
//TODO: Update API to show max balance errors
|
||||
}
|
||||
Trade.log("API", "Set", "API", name, new Trade(balance, ess), null, null, null, ess);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -174,6 +181,7 @@ public class Economy
|
||||
{
|
||||
BigDecimal result = getMoneyExact(name).add(amount, MATH_CONTEXT);
|
||||
setMoney(name, result);
|
||||
Trade.log("API", "Add", "API", name, new Trade(amount, ess), null, null, null, ess);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -201,6 +209,7 @@ public class Economy
|
||||
{
|
||||
BigDecimal result = getMoneyExact(name).subtract(amount, MATH_CONTEXT);
|
||||
setMoney(name, result);
|
||||
Trade.log("API", "Subtract", "API", name, new Trade(amount, ess), null, null, null, ess);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -228,6 +237,7 @@ public class Economy
|
||||
{
|
||||
BigDecimal result = getMoneyExact(name).divide(amount, MATH_CONTEXT);
|
||||
setMoney(name, result);
|
||||
Trade.log("API", "Divide", "API", name, new Trade(amount, ess), null, null, null, ess);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -255,6 +265,7 @@ public class Economy
|
||||
{
|
||||
BigDecimal result = getMoneyExact(name).multiply(amount, MATH_CONTEXT);
|
||||
setMoney(name, result);
|
||||
Trade.log("API", "Multiply", "API", name, new Trade(amount, ess), null, null, null, ess);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -271,6 +282,7 @@ public class Economy
|
||||
throw new RuntimeException(noCallBeforeLoad);
|
||||
}
|
||||
setMoney(name, ess.getSettings().getStartingBalance());
|
||||
Trade.log("API", "Reset", "API", name, new Trade(BigDecimal.ZERO, ess), null, null, null, ess);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -450,4 +462,3 @@ public class Economy
|
||||
deleteNPC(name);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -53,7 +53,7 @@ public class Commandbalancetop extends EssentialsCommand
|
||||
{
|
||||
if (cacheage > System.currentTimeMillis() - CACHETIME)
|
||||
{
|
||||
outputCache(sender, page);
|
||||
outputCache(sender, commandLabel, page);
|
||||
return;
|
||||
}
|
||||
if (ess.getUserMap().getUniqueUsers() > MINUSERS)
|
||||
@@ -65,7 +65,7 @@ public class Commandbalancetop extends EssentialsCommand
|
||||
{
|
||||
lock.readLock().unlock();
|
||||
}
|
||||
ess.runTaskAsynchronously(new Viewer(sender, page, force));
|
||||
ess.runTaskAsynchronously(new Viewer(sender, commandLabel, page, force));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -73,12 +73,12 @@ public class Commandbalancetop extends EssentialsCommand
|
||||
{
|
||||
sender.sendMessage(tl("orderBalances", ess.getUserMap().getUniqueUsers()));
|
||||
}
|
||||
ess.runTaskAsynchronously(new Viewer(sender, page, force));
|
||||
ess.runTaskAsynchronously(new Viewer(sender, commandLabel, page, force));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static void outputCache(final CommandSource sender, int page)
|
||||
private static void outputCache(final CommandSource sender, String command, int page)
|
||||
{
|
||||
final Calendar cal = Calendar.getInstance();
|
||||
cal.setTimeInMillis(cacheage);
|
||||
@@ -167,12 +167,14 @@ public class Commandbalancetop extends EssentialsCommand
|
||||
private final transient CommandSource sender;
|
||||
private final transient int page;
|
||||
private final transient boolean force;
|
||||
private final transient String commandLabel;
|
||||
|
||||
public Viewer(final CommandSource sender, final int page, final boolean force)
|
||||
public Viewer(final CommandSource sender, final String commandLabel, final int page, final boolean force)
|
||||
{
|
||||
this.sender = sender;
|
||||
this.page = page;
|
||||
this.force = force;
|
||||
this.commandLabel = commandLabel;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -183,7 +185,7 @@ public class Commandbalancetop extends EssentialsCommand
|
||||
{
|
||||
if (!force && cacheage > System.currentTimeMillis() - CACHETIME)
|
||||
{
|
||||
outputCache(sender, page);
|
||||
outputCache(sender, commandLabel, page);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -191,7 +193,7 @@ public class Commandbalancetop extends EssentialsCommand
|
||||
{
|
||||
lock.readLock().unlock();
|
||||
}
|
||||
ess.runTaskAsynchronously(new Calculator(new Viewer(sender, page, false), force));
|
||||
ess.runTaskAsynchronously(new Calculator(new Viewer(sender, commandLabel, page, false), force));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -7,6 +7,8 @@ import com.earth2me.essentials.OfflinePlayer;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.utils.FormatUtil;
|
||||
import java.util.logging.Level;
|
||||
import org.bukkit.BanList;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Server;
|
||||
|
||||
|
||||
@@ -60,13 +62,13 @@ public class Commandban extends EssentialsCommand
|
||||
{
|
||||
banReason = tl("defaultBanReason");
|
||||
}
|
||||
|
||||
ess.getServer().getBanList(BanList.Type.NAME).addBan(user.getName(), banReason, null, senderName);
|
||||
|
||||
user.setBanReason(tl("banFormat", banReason, senderName));
|
||||
user.getBase().setBanned(true);
|
||||
user.setBanTimeout(0);
|
||||
user.getBase().kickPlayer(tl("banFormat", banReason, senderName));
|
||||
|
||||
server.getLogger().log(Level.INFO, tl("playerBanned", senderName, user.getName(), banReason));
|
||||
String banDisplay = tl("banFormat", banReason, senderName);
|
||||
|
||||
user.getBase().kickPlayer(banDisplay);
|
||||
server.getLogger().log(Level.INFO, tl("playerBanned", senderName, user.getName(), banDisplay));
|
||||
|
||||
if (nomatch)
|
||||
{
|
||||
|
@@ -6,9 +6,12 @@ import static com.earth2me.essentials.I18n.tl;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.utils.FormatUtil;
|
||||
import java.util.logging.Level;
|
||||
import org.bukkit.BanList;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Server;
|
||||
|
||||
|
||||
//TODO: Add kick to online players matching ip ban.
|
||||
public class Commandbanip extends EssentialsCommand
|
||||
{
|
||||
public Commandbanip()
|
||||
@@ -49,9 +52,19 @@ public class Commandbanip extends EssentialsCommand
|
||||
throw new PlayerNotFoundException();
|
||||
}
|
||||
|
||||
ess.getServer().banIP(ipAddress);
|
||||
server.getLogger().log(Level.INFO, tl("playerBanIpAddress", senderName, ipAddress));
|
||||
String banReason;
|
||||
if (args.length > 1)
|
||||
{
|
||||
banReason = FormatUtil.replaceFormat(getFinalArg(args, 1).replace("\\n", "\n").replace("|", "\n"));
|
||||
}
|
||||
else
|
||||
{
|
||||
banReason = tl("defaultBanReason");
|
||||
}
|
||||
|
||||
ess.broadcastMessage("essentials.ban.notify", tl("playerBanIpAddress", senderName, ipAddress));
|
||||
ess.getServer().getBanList(BanList.Type.IP).addBan(ipAddress, banReason, null, senderName);
|
||||
server.getLogger().log(Level.INFO, tl("playerBanIpAddress", senderName, ipAddress, banReason));
|
||||
|
||||
ess.broadcastMessage("essentials.ban.notify", tl("playerBanIpAddress", senderName, ipAddress, banReason));
|
||||
}
|
||||
}
|
||||
|
@@ -5,8 +5,7 @@ import static com.earth2me.essentials.I18n.tl;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.utils.NumberUtil;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Collection;
|
||||
import java.util.Locale;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -36,7 +35,7 @@ public class Commandclearinventory extends EssentialsCommand
|
||||
|
||||
private void parseCommand(Server server, CommandSource sender, String[] args, boolean allowOthers, boolean allowAll) throws Exception
|
||||
{
|
||||
List<Player> players = new ArrayList<Player>();
|
||||
Collection<Player> players = new ArrayList<Player>();
|
||||
int offset = 0;
|
||||
|
||||
if (sender.isPlayer())
|
||||
@@ -48,7 +47,7 @@ public class Commandclearinventory extends EssentialsCommand
|
||||
{
|
||||
sender.sendMessage(tl("inventoryClearingFromAll"));
|
||||
offset = 1;
|
||||
players = Arrays.asList(server.getOnlinePlayers());
|
||||
players = ess.getOnlinePlayers();
|
||||
}
|
||||
else if (allowOthers && args.length > 0 && args[0].trim().length() > 2)
|
||||
{
|
||||
|
@@ -0,0 +1,221 @@
|
||||
package com.earth2me.essentials.commands;
|
||||
|
||||
import static com.earth2me.essentials.I18n.tl;
|
||||
import java.util.*;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.Recipe;
|
||||
import org.bukkit.inventory.ShapedRecipe;
|
||||
import org.bukkit.inventory.ShapelessRecipe;
|
||||
import com.earth2me.essentials.ChargeException;
|
||||
import com.earth2me.essentials.Trade;
|
||||
import com.earth2me.essentials.Trade.OverflowType;
|
||||
import com.earth2me.essentials.User;
|
||||
import net.ess3.api.MaxMoneyException;
|
||||
|
||||
|
||||
public class Commandcondense extends EssentialsCommand
|
||||
{
|
||||
public Commandcondense()
|
||||
{
|
||||
super("condense");
|
||||
}
|
||||
private Map<ItemStack, SimpleRecipe> condenseList = new HashMap<ItemStack, SimpleRecipe>();
|
||||
|
||||
@Override
|
||||
public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
List<ItemStack> is = new ArrayList<ItemStack>();
|
||||
|
||||
boolean validateReverse = false;
|
||||
if (args.length > 0)
|
||||
{
|
||||
is = ess.getItemDb().getMatching(user, args);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (ItemStack stack : user.getBase().getInventory().getContents())
|
||||
{
|
||||
if (stack == null || stack.getType() == Material.AIR)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
is.add(stack);
|
||||
}
|
||||
validateReverse = true;
|
||||
}
|
||||
|
||||
boolean didConvert = false;
|
||||
for (final ItemStack itemStack : is)
|
||||
{
|
||||
if (condenseStack(user, itemStack, validateReverse))
|
||||
{
|
||||
didConvert = true;
|
||||
}
|
||||
}
|
||||
user.getBase().updateInventory();
|
||||
|
||||
if (didConvert)
|
||||
{
|
||||
user.sendMessage(tl("itemsConverted"));
|
||||
}
|
||||
else
|
||||
{
|
||||
user.sendMessage(tl("itemsNotConverted"));
|
||||
throw new NoChargeException();
|
||||
}
|
||||
}
|
||||
|
||||
private boolean condenseStack(final User user, final ItemStack stack, final boolean validateReverse) throws ChargeException, MaxMoneyException
|
||||
{
|
||||
final SimpleRecipe condenseType = getCondenseType(stack);
|
||||
if (condenseType != null)
|
||||
{
|
||||
final ItemStack input = condenseType.getInput();
|
||||
final ItemStack result = condenseType.getResult();
|
||||
|
||||
if (validateReverse)
|
||||
{
|
||||
boolean pass = false;
|
||||
for (Recipe revRecipe : ess.getServer().getRecipesFor(input))
|
||||
{
|
||||
if (getStackOnRecipeMatch(revRecipe, result) != null)
|
||||
{
|
||||
pass = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!pass)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
int amount = 0;
|
||||
|
||||
for (final ItemStack contents : user.getBase().getInventory().getContents())
|
||||
{
|
||||
if (contents != null && contents.isSimilar(stack))
|
||||
{
|
||||
amount += contents.getAmount();
|
||||
}
|
||||
}
|
||||
|
||||
int output = ((amount / input.getAmount()) * result.getAmount());
|
||||
amount -= amount % input.getAmount();
|
||||
|
||||
if (amount > 0)
|
||||
{
|
||||
input.setAmount(amount);
|
||||
result.setAmount(output);
|
||||
final Trade remove = new Trade(input, ess);
|
||||
final Trade add = new Trade(result, ess);
|
||||
remove.charge(user);
|
||||
add.pay(user, OverflowType.DROP);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private SimpleRecipe getCondenseType(final ItemStack stack)
|
||||
{
|
||||
if (condenseList.containsKey(stack))
|
||||
{
|
||||
return condenseList.get(stack);
|
||||
}
|
||||
|
||||
final Iterator<Recipe> intr = ess.getServer().recipeIterator();
|
||||
while (intr.hasNext())
|
||||
{
|
||||
final Recipe recipe = intr.next();
|
||||
final Collection<ItemStack> recipeItems = getStackOnRecipeMatch(recipe, stack);
|
||||
|
||||
if (recipeItems != null && (recipeItems.size() == 4 || recipeItems.size() == 9)
|
||||
&& (recipeItems.size() > recipe.getResult().getAmount()))
|
||||
{
|
||||
final ItemStack input = stack.clone();
|
||||
input.setAmount(recipeItems.size());
|
||||
final SimpleRecipe newRecipe = new SimpleRecipe(recipe.getResult(), input);
|
||||
condenseList.put(stack, newRecipe);
|
||||
return newRecipe;
|
||||
}
|
||||
}
|
||||
|
||||
condenseList.put(stack, null);
|
||||
return null;
|
||||
}
|
||||
|
||||
private Collection<ItemStack> getStackOnRecipeMatch(final Recipe recipe, final ItemStack stack)
|
||||
{
|
||||
final Collection<ItemStack> inputList;
|
||||
|
||||
if (recipe instanceof ShapedRecipe)
|
||||
{
|
||||
ShapedRecipe sRecipe = (ShapedRecipe)recipe;
|
||||
inputList = sRecipe.getIngredientMap().values();
|
||||
}
|
||||
else if (recipe instanceof ShapelessRecipe)
|
||||
{
|
||||
ShapelessRecipe slRecipe = (ShapelessRecipe)recipe;
|
||||
inputList = slRecipe.getIngredientList();
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
boolean match = true;
|
||||
Iterator<ItemStack> iter = inputList.iterator();
|
||||
while (iter.hasNext())
|
||||
{
|
||||
ItemStack inputSlot = iter.next();
|
||||
if (inputSlot == null)
|
||||
{
|
||||
iter.remove();
|
||||
continue;
|
||||
}
|
||||
|
||||
if (inputSlot.getDurability() == Short.MAX_VALUE)
|
||||
{
|
||||
inputSlot.setDurability((short)0);
|
||||
}
|
||||
if (!inputSlot.isSimilar(stack))
|
||||
{
|
||||
match = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (match)
|
||||
{
|
||||
return inputList;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
private class SimpleRecipe implements Recipe
|
||||
{
|
||||
private ItemStack result;
|
||||
private ItemStack input;
|
||||
|
||||
private SimpleRecipe(ItemStack result, ItemStack input)
|
||||
{
|
||||
this.result = result;
|
||||
this.input = input;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getResult()
|
||||
{
|
||||
return result.clone();
|
||||
}
|
||||
|
||||
public ItemStack getInput()
|
||||
{
|
||||
return input.clone();
|
||||
}
|
||||
}
|
||||
}
|
@@ -18,8 +18,13 @@ public class Commandcustomtext extends EssentialsCommand
|
||||
|
||||
@Override
|
||||
protected void run(final Server server, final CommandSource sender, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
final IText input = new TextInput(sender, "custom", true, ess);
|
||||
{
|
||||
if (sender.isPlayer())
|
||||
{
|
||||
ess.getUser(sender.getPlayer()).setDisplayNick();
|
||||
}
|
||||
|
||||
final IText input = new TextInput(sender, "custom", true, ess);
|
||||
final IText output = new KeywordReplacer(input, sender, ess);
|
||||
final TextPager pager = new TextPager(output);
|
||||
String chapter = commandLabel;
|
||||
|
@@ -105,8 +105,10 @@ public class Commandeco extends EssentialsLoopCommand
|
||||
private void set(BigDecimal amount, final User player, final CommandSource sender) throws MaxMoneyException
|
||||
{
|
||||
BigDecimal minBalance = ess.getSettings().getMinMoney();
|
||||
BigDecimal maxBalance = ess.getSettings().getMaxMoney();
|
||||
boolean underMinimum = (amount.compareTo(minBalance) < 0);
|
||||
player.setMoney(underMinimum ? minBalance : amount);
|
||||
boolean aboveMax = (amount.compareTo(maxBalance) > 0);
|
||||
player.setMoney(underMinimum ? minBalance : aboveMax ? maxBalance : amount);
|
||||
player.sendMessage(tl("setBal", NumberUtil.displayCurrency(player.getMoney(), ess)));
|
||||
if (sender != null)
|
||||
{
|
||||
|
@@ -11,6 +11,7 @@ import com.earth2me.essentials.utils.NumberUtil;
|
||||
import com.google.common.base.Charsets;
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import org.bukkit.Material;
|
||||
@@ -164,7 +165,7 @@ public class Commandessentials extends EssentialsCommand
|
||||
{
|
||||
return;
|
||||
}
|
||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||
for (Player onlinePlayer : ess.getOnlinePlayers())
|
||||
{
|
||||
onlinePlayer.playSound(onlinePlayer.getLocation(), Sound.NOTE_PIANO, 1, noteMap.get(note));
|
||||
}
|
||||
@@ -213,7 +214,7 @@ public class Commandessentials extends EssentialsCommand
|
||||
{
|
||||
logger.info(s);
|
||||
}
|
||||
for (Player player : ess.getServer().getOnlinePlayers())
|
||||
for (Player player : ess.getOnlinePlayers())
|
||||
{
|
||||
player.sendMessage(playerMoo);
|
||||
player.playSound(player.getLocation(), Sound.COW_IDLE, 1, 1.0f);
|
||||
@@ -263,15 +264,14 @@ public class Commandessentials extends EssentialsCommand
|
||||
{
|
||||
sender.sendMessage("This sub-command will delete users who havent logged in in the last <days> days.");
|
||||
sender.sendMessage("Optional parameters define the minium amount required to prevent deletion.");
|
||||
sender.sendMessage("Unless you define larger default values, this command wil ignore people who have more than 0 money/homes/bans.");
|
||||
throw new Exception("/<command> cleanup <days> [money] [homes] [ban count]");
|
||||
sender.sendMessage("Unless you define larger default values, this command wil ignore people who have more than 0 money/homes.");
|
||||
throw new Exception("/<command> cleanup <days> [money] [homes]");
|
||||
}
|
||||
sender.sendMessage(tl("cleaning"));
|
||||
|
||||
final long daysArg = Long.parseLong(args[1]);
|
||||
final double moneyArg = args.length >= 3 ? Double.parseDouble(args[2].replaceAll("[^0-9\\.]", "")) : 0;
|
||||
final int homesArg = args.length >= 4 && NumberUtil.isInt(args[3]) ? Integer.parseInt(args[3]) : 0;
|
||||
final int bansArg = args.length >= 5 && NumberUtil.isInt(args[4]) ? Integer.parseInt(args[4]) : 0;
|
||||
final UserMap userMap = ess.getUserMap();
|
||||
|
||||
ess.runTaskAsynchronously(new Runnable()
|
||||
@@ -288,8 +288,6 @@ public class Commandessentials extends EssentialsCommand
|
||||
continue;
|
||||
}
|
||||
|
||||
int ban = user.getBanReason().isEmpty() ? 0 : 1;
|
||||
|
||||
long lastLog = user.getLastLogout();
|
||||
if (lastLog == 0)
|
||||
{
|
||||
@@ -299,7 +297,7 @@ public class Commandessentials extends EssentialsCommand
|
||||
{
|
||||
user.setLastLogin(currTime);
|
||||
}
|
||||
|
||||
|
||||
if (user.isNPC())
|
||||
{
|
||||
continue;
|
||||
@@ -310,7 +308,7 @@ public class Commandessentials extends EssentialsCommand
|
||||
int homeCount = user.getHomes().size();
|
||||
double moneyCount = user.getMoney().doubleValue();
|
||||
|
||||
if ((lastLog == 0) || (ban > bansArg) || (timeDiff < milliDays)
|
||||
if ((lastLog == 0) || (timeDiff < milliDays)
|
||||
|| (homeCount > homesArg) || (moneyCount > moneyArg))
|
||||
{
|
||||
continue;
|
||||
@@ -328,14 +326,17 @@ public class Commandessentials extends EssentialsCommand
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void run_uuidconvert(final Server server, final CommandSource sender, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
sender.sendMessage("Starting Essentials UUID userdata conversion, this may lag the server.");
|
||||
EssentialsUpgrade.uuidFileConvert(ess);
|
||||
|
||||
Boolean ignoreUFCache = (args.length > 2 && args[1].toLowerCase(Locale.ENGLISH).contains("ignore"));
|
||||
EssentialsUpgrade.uuidFileConvert(ess, ignoreUFCache);
|
||||
|
||||
sender.sendMessage("UUID conversion complete, check your server log for more information.");
|
||||
}
|
||||
|
||||
|
||||
private void run_uuidtest(final Server server, final CommandSource sender, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
if (args.length < 2)
|
||||
@@ -344,23 +345,38 @@ public class Commandessentials extends EssentialsCommand
|
||||
}
|
||||
String name = args[1];
|
||||
sender.sendMessage("Looking up UUID for " + name);
|
||||
|
||||
for (Player player : server.getOnlinePlayers())
|
||||
|
||||
UUID onlineUUID = null;
|
||||
|
||||
for (Player player : ess.getOnlinePlayers())
|
||||
{
|
||||
if (player.getName().equalsIgnoreCase(name))
|
||||
{
|
||||
sender.sendMessage("Online player: " + player.getUniqueId().toString());
|
||||
onlineUUID = player.getUniqueId();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
UUID essUUID = ess.getUserMap().getUser(name).getConfigUUID();
|
||||
|
||||
org.bukkit.OfflinePlayer player = ess.getServer().getOfflinePlayer(name);
|
||||
UUID bukkituuid = player.getUniqueId();
|
||||
sender.sendMessage("Bukkit Lookup: " + bukkituuid.toString());
|
||||
|
||||
UUID npcuuid = UUID.nameUUIDFromBytes(("NPC:" + name).getBytes(Charsets.UTF_8));
|
||||
|
||||
if (onlineUUID != null && onlineUUID != bukkituuid)
|
||||
{
|
||||
sender.sendMessage("Online player: " + onlineUUID.toString());
|
||||
}
|
||||
|
||||
if (essUUID != null && essUUID != bukkituuid)
|
||||
{
|
||||
sender.sendMessage("Essentials config: " + essUUID.toString());
|
||||
}
|
||||
|
||||
UUID npcuuid = UUID.nameUUIDFromBytes(("NPC:" + name).getBytes(Charsets.UTF_8));
|
||||
sender.sendMessage("NPC UUID: " + npcuuid.toString());
|
||||
|
||||
|
||||
UUID offlineuuid = UUID.nameUUIDFromBytes(("OfflinePlayer:" + name).getBytes(Charsets.UTF_8));
|
||||
sender.sendMessage("Offline Mode UUID: " + offlineuuid.toString());
|
||||
sender.sendMessage("Offline Mode UUID: " + offlineuuid.toString());
|
||||
}
|
||||
}
|
||||
|
@@ -117,13 +117,13 @@ public class Commandexp extends EssentialsCommand
|
||||
|
||||
private void showMatch(final Server server, final CommandSource sender, final String match) throws PlayerNotFoundException
|
||||
{
|
||||
boolean skipHidden = sender.isPlayer() && !ess.getUser(sender.getPlayer()).isAuthorized("essentials.vanish.interact");
|
||||
boolean skipHidden = sender.isPlayer() && !ess.getUser(sender.getPlayer()).canInteractVanished();
|
||||
boolean foundUser = false;
|
||||
final List<Player> matchedPlayers = server.matchPlayer(match);
|
||||
for (Player matchPlayer : matchedPlayers)
|
||||
{
|
||||
final User player = ess.getUser(matchPlayer);
|
||||
if (skipHidden && player.isHidden())
|
||||
if (skipHidden && player.isHidden(sender.getPlayer()) && !sender.getPlayer().canSee(matchPlayer))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -138,13 +138,13 @@ public class Commandexp extends EssentialsCommand
|
||||
|
||||
private void expMatch(final Server server, final CommandSource sender, final String match, String amount, final boolean give) throws NotEnoughArgumentsException, PlayerNotFoundException
|
||||
{
|
||||
boolean skipHidden = sender.isPlayer() && !ess.getUser(sender.getPlayer()).isAuthorized("essentials.vanish.interact");
|
||||
boolean skipHidden = sender.isPlayer() && !ess.getUser(sender.getPlayer()).canInteractVanished();
|
||||
boolean foundUser = false;
|
||||
final List<Player> matchedPlayers = server.matchPlayer(match);
|
||||
for (Player matchPlayer : matchedPlayers)
|
||||
{
|
||||
final User player = ess.getUser(matchPlayer);
|
||||
if (skipHidden && player.isHidden())
|
||||
if (skipHidden && player.isHidden(sender.getPlayer()) && !sender.getPlayer().canSee(matchPlayer))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
@@ -84,13 +84,13 @@ public class Commandgamemode extends EssentialsCommand
|
||||
throw new NotEnoughArgumentsException(tl("gameModeInvalid"));
|
||||
}
|
||||
|
||||
boolean skipHidden = sender.isPlayer() && !ess.getUser(sender.getPlayer()).isAuthorized("essentials.vanish.interact");
|
||||
boolean skipHidden = sender.isPlayer() && !ess.getUser(sender.getPlayer()).canInteractVanished();
|
||||
boolean foundUser = false;
|
||||
final List<Player> matchedPlayers = server.matchPlayer(name);
|
||||
for (Player matchPlayer : matchedPlayers)
|
||||
{
|
||||
final User player = ess.getUser(matchPlayer);
|
||||
if (skipHidden && player.isHidden())
|
||||
if (skipHidden && player.isHidden(sender.getPlayer()) && !sender.getPlayer().canSee(matchPlayer))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
@@ -6,6 +6,8 @@ import com.earth2me.essentials.utils.DateUtil;
|
||||
import com.earth2me.essentials.utils.NumberUtil;
|
||||
import java.lang.management.ManagementFactory;
|
||||
import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Chunk;
|
||||
import org.bukkit.Server;
|
||||
@@ -56,11 +58,19 @@ public class Commandgc extends EssentialsCommand
|
||||
worldType = "The End";
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
int tileEntities = 0;
|
||||
|
||||
for (Chunk chunk : w.getLoadedChunks()) {
|
||||
tileEntities += chunk.getTileEntities().length;
|
||||
|
||||
try
|
||||
{
|
||||
for (Chunk chunk : w.getLoadedChunks())
|
||||
{
|
||||
tileEntities += chunk.getTileEntities().length;
|
||||
}
|
||||
}
|
||||
catch (java.lang.ClassCastException ex)
|
||||
{
|
||||
Bukkit.getLogger().log(Level.SEVERE, "Corrupted chunk data on world " + w, ex);
|
||||
}
|
||||
|
||||
sender.sendMessage(tl("gcWorld", worldType, w.getName(), w.getLoadedChunks().length, w.getEntities().size(), tileEntities));
|
||||
|
@@ -45,6 +45,7 @@ public class Commandhelp extends EssentialsCommand
|
||||
}
|
||||
else
|
||||
{
|
||||
user.setDisplayNick();
|
||||
output = new KeywordReplacer(input, user.getSource(), ess);
|
||||
}
|
||||
final TextPager pager = new TextPager(output);
|
||||
|
@@ -18,6 +18,11 @@ public class Commandinfo extends EssentialsCommand
|
||||
@Override
|
||||
protected void run(final Server server, final CommandSource sender, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
if (sender.isPlayer())
|
||||
{
|
||||
ess.getUser(sender.getPlayer()).setDisplayNick();
|
||||
}
|
||||
|
||||
final IText input = new TextInput(sender, "info", true, ess);
|
||||
final IText output = new KeywordReplacer(input, sender, ess);
|
||||
final TextPager pager = new TextPager(output);
|
||||
|
@@ -28,7 +28,7 @@ public class Commandkick extends EssentialsCommand
|
||||
if (sender.isPlayer())
|
||||
{
|
||||
User user = ess.getUser(sender.getPlayer());
|
||||
if (target.isHidden() && !user.isAuthorized("essentials.vanish.interact"))
|
||||
if (target.isHidden(sender.getPlayer()) && !user.canInteractVanished() && !sender.getPlayer().canSee(target.getBase()))
|
||||
{
|
||||
throw new PlayerNotFoundException();
|
||||
}
|
||||
|
@@ -20,7 +20,7 @@ public class Commandkickall extends EssentialsCommand
|
||||
String kickReason = args.length > 0 ? getFinalArg(args, 0) : tl("kickDefault");
|
||||
kickReason = FormatUtil.replaceFormat(kickReason.replace("\\n", "\n").replace("|", "\n"));
|
||||
|
||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||
for (Player onlinePlayer : ess.getOnlinePlayers())
|
||||
{
|
||||
if (!sender.isPlayer() || !onlinePlayer.getName().equalsIgnoreCase(sender.getPlayer().getName()))
|
||||
{
|
||||
|
@@ -3,12 +3,12 @@ package com.earth2me.essentials.commands;
|
||||
import com.earth2me.essentials.CommandSource;
|
||||
import static com.earth2me.essentials.I18n.tl;
|
||||
import com.earth2me.essentials.Kit;
|
||||
import com.earth2me.essentials.Trade;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.utils.StringUtil;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.logging.Level;
|
||||
import org.bukkit.Server;
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ public class Commandkit extends EssentialsCommand
|
||||
{
|
||||
super("kit");
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
@@ -31,16 +31,16 @@ public class Commandkit extends EssentialsCommand
|
||||
else if (args.length > 1 && user.isAuthorized("essentials.kit.others"))
|
||||
{
|
||||
final User userTo = getPlayer(server, user, args, 1);
|
||||
final String kitName = StringUtil.sanitizeString(args[0].toLowerCase(Locale.ENGLISH)).trim();
|
||||
giveKit(userTo, user, kitName);
|
||||
final String kitNames = StringUtil.sanitizeString(args[0].toLowerCase(Locale.ENGLISH)).trim();
|
||||
giveKits(userTo, user, kitNames);
|
||||
}
|
||||
else
|
||||
{
|
||||
final String kitName = StringUtil.sanitizeString(args[0].toLowerCase(Locale.ENGLISH)).trim();
|
||||
giveKit(user, user, kitName);
|
||||
final String kitNames = StringUtil.sanitizeString(args[0].toLowerCase(Locale.ENGLISH)).trim();
|
||||
giveKits(user, user, kitNames);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void run(final Server server, final CommandSource sender, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
@@ -53,41 +53,73 @@ public class Commandkit extends EssentialsCommand
|
||||
else
|
||||
{
|
||||
final User userTo = getPlayer(server, args, 1, true, false);
|
||||
final String kitName = args[0].toLowerCase(Locale.ENGLISH);
|
||||
|
||||
final Map<String, Object> kit = ess.getSettings().getKit(kitName);
|
||||
final List<String> items = Kit.getItems(ess, userTo, kitName, kit);
|
||||
Kit.expandItems(ess, userTo, items);
|
||||
|
||||
sender.sendMessage(tl("kitGiveTo", kitName, userTo.getDisplayName()));
|
||||
userTo.sendMessage(tl("kitReceive", kitName));
|
||||
final String[] kits = args[0].toLowerCase(Locale.ENGLISH).split(",");
|
||||
|
||||
for (final String kitName : kits)
|
||||
{
|
||||
final Kit kit = new Kit(kitName, ess);
|
||||
kit.expandItems(userTo);
|
||||
|
||||
sender.sendMessage(tl("kitGiveTo", kitName, userTo.getDisplayName()));
|
||||
userTo.sendMessage(tl("kitReceive", kitName));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void giveKit(User userTo, User userFrom, String kitName) throws Exception
|
||||
{
|
||||
if (kitName.isEmpty())
|
||||
|
||||
private void giveKits(final User userTo, final User userFrom, final String kitNames) throws Exception
|
||||
{
|
||||
if (kitNames.isEmpty())
|
||||
{
|
||||
throw new Exception(tl("kitError2"));
|
||||
throw new Exception(tl("kitNotFound"));
|
||||
}
|
||||
String[] kitList = kitNames.split(",");
|
||||
|
||||
List<Kit> kits = new ArrayList<Kit>();
|
||||
|
||||
for (final String kitName : kitList)
|
||||
{
|
||||
if (kitName.isEmpty())
|
||||
{
|
||||
throw new Exception(tl("kitNotFound"));
|
||||
}
|
||||
|
||||
Kit kit = new Kit(kitName, ess);
|
||||
kit.checkPerms(userFrom);
|
||||
kit.checkDelay(userFrom);
|
||||
kit.checkAffordable(userFrom);
|
||||
kits.add(kit);
|
||||
}
|
||||
|
||||
final Map<String, Object> kit = ess.getSettings().getKit(kitName);
|
||||
|
||||
if (!userFrom.isAuthorized("essentials.kits." + kitName))
|
||||
for (final Kit kit : kits)
|
||||
{
|
||||
throw new Exception(tl("noKitPermission", "essentials.kits." + kitName));
|
||||
try
|
||||
{
|
||||
|
||||
kit.checkDelay(userFrom);
|
||||
kit.checkAffordable(userFrom);
|
||||
kit.setTime(userFrom);
|
||||
kit.expandItems(userTo);
|
||||
kit.chargeUser(userTo);
|
||||
|
||||
if (!userFrom.equals(userTo))
|
||||
{
|
||||
userFrom.sendMessage(tl("kitGiveTo", kit.getName(), userTo.getDisplayName()));
|
||||
}
|
||||
|
||||
userTo.sendMessage(tl("kitReceive", kit.getName()));
|
||||
|
||||
}
|
||||
catch (NoChargeException ex)
|
||||
{
|
||||
if (ess.getSettings().isDebug())
|
||||
{
|
||||
ess.getLogger().log(Level.INFO, "Soft kit error, abort spawning " + kit.getName(), ex);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ess.showError(userFrom.getSource(), ex, "\\ kit: " + kit.getName());
|
||||
}
|
||||
}
|
||||
|
||||
final List<String> items = Kit.getItems(ess, userTo, kitName, kit);
|
||||
|
||||
final Trade charge = new Trade("kit-" + kitName, ess);
|
||||
charge.isAffordableFor(userFrom);
|
||||
|
||||
Kit.checkTime(userFrom, kitName, kit);
|
||||
Kit.expandItems(ess, userTo, items);
|
||||
|
||||
charge.charge(userFrom);
|
||||
userFrom.sendMessage(tl("kitGiveTo", kitName, userTo.getDisplayName()));
|
||||
userTo.sendMessage(tl("kitReceive", kitName));
|
||||
}
|
||||
}
|
||||
|
@@ -31,7 +31,8 @@ public class Commandkittycannon extends EssentialsCommand
|
||||
ocelot.setTamed(true);
|
||||
ocelot.setBaby();
|
||||
ocelot.setVelocity(user.getBase().getEyeLocation().getDirection().multiply(2));
|
||||
ess.scheduleSyncDelayedTask(new Runnable()
|
||||
|
||||
class KittyCannonExplodeTask implements Runnable
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
@@ -40,6 +41,8 @@ public class Commandkittycannon extends EssentialsCommand
|
||||
ocelot.remove();
|
||||
loc.getWorld().createExplosion(loc, 0F);
|
||||
}
|
||||
}, 20);
|
||||
}
|
||||
ess.scheduleSyncDelayedTask(new KittyCannonExplodeTask(), 20);
|
||||
|
||||
}
|
||||
}
|
||||
|
@@ -21,12 +21,14 @@ public class Commandlist extends EssentialsCommand
|
||||
public void run(final Server server, final CommandSource sender, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
boolean showHidden = true;
|
||||
User user = null;
|
||||
if (sender.isPlayer())
|
||||
{
|
||||
showHidden = ess.getUser(sender.getPlayer()).isAuthorized("essentials.list.hidden") || ess.getUser(sender.getPlayer()).isAuthorized("essentials.vanish.interact");
|
||||
user = ess.getUser(sender.getPlayer());
|
||||
showHidden = user.isAuthorized("essentials.list.hidden") || user.canInteractVanished();
|
||||
}
|
||||
sender.sendMessage(PlayerList.listSummary(ess, showHidden));
|
||||
final Map<String, List<User>> playerList = PlayerList.getPlayerLists(ess, showHidden);
|
||||
sender.sendMessage(PlayerList.listSummary(ess, user, showHidden));
|
||||
final Map<String, List<User>> playerList = PlayerList.getPlayerLists(ess, user, showHidden);
|
||||
|
||||
if (args.length > 0)
|
||||
{
|
||||
|
@@ -1,14 +1,18 @@
|
||||
package com.earth2me.essentials.commands;
|
||||
|
||||
import com.earth2me.essentials.CommandSource;
|
||||
import static com.earth2me.essentials.I18n.tl;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.textreader.IText;
|
||||
import com.earth2me.essentials.textreader.SimpleTextInput;
|
||||
import com.earth2me.essentials.textreader.SimpleTextPager;
|
||||
import com.earth2me.essentials.textreader.TextPager;
|
||||
import com.earth2me.essentials.utils.FormatUtil;
|
||||
import com.earth2me.essentials.utils.StringUtil;
|
||||
import org.bukkit.Server;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static com.earth2me.essentials.I18n.tl;
|
||||
import java.util.UUID;
|
||||
|
||||
|
||||
@@ -34,10 +38,11 @@ public class Commandmail extends EssentialsCommand
|
||||
user.sendMessage(tl("noMail"));
|
||||
throw new NoChargeException();
|
||||
}
|
||||
for (String messages : mail)
|
||||
{
|
||||
user.sendMessage(messages);
|
||||
}
|
||||
|
||||
IText input = new SimpleTextInput(mail);
|
||||
final TextPager pager = new TextPager(input);
|
||||
pager.showPage(args.length > 1 ? args[1] : null, null, commandLabel + " " + args[0], user.getSource());
|
||||
|
||||
user.sendMessage(tl("mailClear"));
|
||||
return;
|
||||
}
|
||||
@@ -47,24 +52,26 @@ public class Commandmail extends EssentialsCommand
|
||||
{
|
||||
throw new Exception(tl("noPerm", "essentials.mail.send"));
|
||||
}
|
||||
|
||||
|
||||
if (user.isMuted())
|
||||
{
|
||||
throw new Exception(tl("voiceSilenced"));
|
||||
}
|
||||
|
||||
User u = ess.getUser(args[1]);
|
||||
User u = getPlayer(server, args[1], true, true);
|
||||
if (u == null)
|
||||
{
|
||||
throw new Exception(tl("playerNeverOnServer", args[1]));
|
||||
}
|
||||
|
||||
final String mail = tl("mailFormat", user.getName(), StringUtil.sanitizeString(FormatUtil.stripFormat(getFinalArg(args, 2))));
|
||||
if (mail.length() > 1000)
|
||||
{
|
||||
throw new Exception(tl("mailTooLong"));
|
||||
}
|
||||
|
||||
if (!u.isIgnoredPlayer(user))
|
||||
{
|
||||
final String mail = user.getName() + ": " + StringUtil.sanitizeString(FormatUtil.stripFormat(getFinalArg(args, 2)));
|
||||
if (mail.length() > 1000)
|
||||
{
|
||||
throw new Exception(tl("mailTooLong"));
|
||||
}
|
||||
if (Math.abs(System.currentTimeMillis() - timestamp) > 60000)
|
||||
{
|
||||
timestamp = System.currentTimeMillis();
|
||||
@@ -75,9 +82,11 @@ public class Commandmail extends EssentialsCommand
|
||||
{
|
||||
throw new Exception(tl("mailDelay", ess.getSettings().getMailsPerMinute()));
|
||||
}
|
||||
u.addMail(mail);
|
||||
u.addMail(tl("mailMessage", mail));
|
||||
}
|
||||
user.sendMessage(tl("mailSent"));
|
||||
|
||||
user.sendMessage(tl("mailSentTo", u.getDisplayName(), u.getName()));
|
||||
user.sendMessage(mail);
|
||||
return;
|
||||
}
|
||||
if (args.length > 1 && "sendall".equalsIgnoreCase(args[0]))
|
||||
@@ -86,7 +95,7 @@ public class Commandmail extends EssentialsCommand
|
||||
{
|
||||
throw new Exception(tl("noPerm", "essentials.mail.sendall"));
|
||||
}
|
||||
ess.runTaskAsynchronously(new SendAll(user.getName() + ": " + FormatUtil.stripFormat(getFinalArg(args, 1))));
|
||||
ess.runTaskAsynchronously(new SendAll(tl("mailFormat", user.getName(), FormatUtil.stripFormat(getFinalArg(args, 1)))));
|
||||
user.sendMessage(tl("mailSent"));
|
||||
return;
|
||||
}
|
||||
@@ -112,30 +121,30 @@ public class Commandmail extends EssentialsCommand
|
||||
}
|
||||
else if (args.length >= 3 && "send".equalsIgnoreCase(args[0]))
|
||||
{
|
||||
User u = ess.getUser(args[1]);
|
||||
User u = getPlayer(server, args[1], true, true);
|
||||
if (u == null)
|
||||
{
|
||||
throw new Exception(tl("playerNeverOnServer", args[1]));
|
||||
}
|
||||
u.addMail("Server: " + getFinalArg(args, 2));
|
||||
u.addMail(tl("mailFormat", "Server", getFinalArg(args, 2)));
|
||||
sender.sendMessage(tl("mailSent"));
|
||||
return;
|
||||
}
|
||||
else if (args.length >= 2 && "sendall".equalsIgnoreCase(args[0]))
|
||||
{
|
||||
ess.runTaskAsynchronously(new SendAll("Server: " + getFinalArg(args, 1)));
|
||||
ess.runTaskAsynchronously(new SendAll(tl("mailFormat", "Server", getFinalArg(args, 1))));
|
||||
sender.sendMessage(tl("mailSent"));
|
||||
return;
|
||||
}
|
||||
else if (args.length >= 2)
|
||||
{
|
||||
//allow sending from console without "send" argument, since it's the only thing the console can do
|
||||
User u = ess.getUser(args[0]);
|
||||
User u = getPlayer(server, args[0], true, true);
|
||||
if (u == null)
|
||||
{
|
||||
throw new Exception(tl("playerNeverOnServer", args[0]));
|
||||
}
|
||||
u.addMail("Server: " + getFinalArg(args, 1));
|
||||
u.addMail(tl("mailFormat", "Server", getFinalArg(args, 1)));
|
||||
sender.sendMessage(tl("mailSent"));
|
||||
return;
|
||||
}
|
||||
|
@@ -18,6 +18,11 @@ public class Commandmotd extends EssentialsCommand
|
||||
@Override
|
||||
public void run(final Server server, final CommandSource sender, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
if (sender.isPlayer())
|
||||
{
|
||||
ess.getUser(sender.getPlayer()).setDisplayNick();
|
||||
}
|
||||
|
||||
final IText input = new TextInput(sender, "motd", true, ess);
|
||||
final IText output = new KeywordReplacer(input, sender, ess);
|
||||
final TextPager pager = new TextPager(output);
|
||||
|
@@ -101,12 +101,11 @@ public class Commandnear extends EssentialsCommand
|
||||
final World world = loc.getWorld();
|
||||
final StringBuilder output = new StringBuilder();
|
||||
final long radiusSquared = radius * radius;
|
||||
boolean showHidden = user.isAuthorized("essentials.vanish.interact");
|
||||
boolean showHidden = user.canInteractVanished();
|
||||
|
||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||
for (User player: ess.getOnlineUsers())
|
||||
{
|
||||
final User player = ess.getUser(onlinePlayer);
|
||||
if (!player.equals(user) && (!player.isHidden() || showHidden))
|
||||
if (!player.equals(user) && (!player.isHidden(user.getBase()) || showHidden || user.getBase().canSee(player.getBase())))
|
||||
{
|
||||
final Location playerLoc = player.getLocation();
|
||||
if (playerLoc.getWorld() != world)
|
||||
|
@@ -64,8 +64,13 @@ public class Commandnick extends EssentialsLoopCommand
|
||||
final String nick = args[0];
|
||||
if (target.getName().equalsIgnoreCase(nick))
|
||||
{
|
||||
String oldName = target.getDisplayName();
|
||||
setNickname(server, sender, target, nick);
|
||||
target.sendMessage(tl("nickNoMore"));
|
||||
if (!target.getDisplayName().equalsIgnoreCase(oldName))
|
||||
{
|
||||
target.sendMessage(tl("nickNoMore"));
|
||||
}
|
||||
target.sendMessage(tl("nickSet", target.getDisplayName()));
|
||||
}
|
||||
else if ("off".equalsIgnoreCase(nick))
|
||||
{
|
||||
@@ -104,7 +109,7 @@ public class Commandnick extends EssentialsLoopCommand
|
||||
private boolean nickInUse(final Server server, final User target, String nick)
|
||||
{
|
||||
final String lowerNick = FormatUtil.stripFormat(nick.toLowerCase(Locale.ENGLISH));
|
||||
for (final Player onlinePlayer : server.getOnlinePlayers())
|
||||
for (final Player onlinePlayer : ess.getOnlinePlayers())
|
||||
{
|
||||
if (target.getBase().getName().equals(onlinePlayer.getName()))
|
||||
{
|
||||
@@ -117,8 +122,9 @@ public class Commandnick extends EssentialsLoopCommand
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (ess.getUser(lowerNick) != null && ess.getUser(lowerNick) != target) {
|
||||
return true;
|
||||
if (ess.getUser(lowerNick) != null && ess.getUser(lowerNick) != target)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@@ -3,8 +3,7 @@ package com.earth2me.essentials.commands;
|
||||
import com.earth2me.essentials.CommandSource;
|
||||
import static com.earth2me.essentials.I18n.tl;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Collection;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.World;
|
||||
@@ -22,7 +21,7 @@ public class Commandnuke extends EssentialsCommand
|
||||
@Override
|
||||
protected void run(final Server server, final CommandSource sender, final String commandLabel, final String[] args) throws NoSuchFieldException, NotEnoughArgumentsException
|
||||
{
|
||||
List<Player> targets;
|
||||
Collection<Player> targets;
|
||||
if (args.length > 0)
|
||||
{
|
||||
targets = new ArrayList<Player>();
|
||||
@@ -35,7 +34,7 @@ public class Commandnuke extends EssentialsCommand
|
||||
}
|
||||
else
|
||||
{
|
||||
targets = Arrays.asList(server.getOnlinePlayers());
|
||||
targets = ess.getOnlinePlayers();
|
||||
}
|
||||
ess.getTNTListener().enable();
|
||||
for (Player player : targets)
|
||||
|
@@ -27,7 +27,14 @@ public class Commandpay extends EssentialsLoopCommand
|
||||
throw new NotEnoughArgumentsException();
|
||||
}
|
||||
|
||||
amount = new BigDecimal(args[1].replaceAll("[^0-9\\.]", ""));
|
||||
String stringAmount = args[1].replaceAll("[^0-9\\.]", "");
|
||||
|
||||
if (stringAmount.length() < 1)
|
||||
{
|
||||
throw new NotEnoughArgumentsException();
|
||||
}
|
||||
|
||||
amount = new BigDecimal(stringAmount);
|
||||
loopOnlinePlayers(server, user.getSource(), false, user.isAuthorized("essentials.pay.multiple"), args[0], args);
|
||||
}
|
||||
|
||||
@@ -43,6 +50,6 @@ public class Commandpay extends EssentialsLoopCommand
|
||||
catch (MaxMoneyException ex)
|
||||
{
|
||||
sender.sendMessage(tl("maxMoney"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -197,9 +197,9 @@ public class Commandptime extends EssentialsCommand
|
||||
}
|
||||
else
|
||||
{
|
||||
for (Player player : server.getOnlinePlayers())
|
||||
for (User user : ess.getOnlineUsers())
|
||||
{
|
||||
users.add(ess.getUser(player));
|
||||
users.add(user);
|
||||
}
|
||||
}
|
||||
return users;
|
||||
@@ -220,9 +220,9 @@ public class Commandptime extends EssentialsCommand
|
||||
// If that fails, Is the argument something like "*" or "all"?
|
||||
else if (selector.equalsIgnoreCase("*") || selector.equalsIgnoreCase("all"))
|
||||
{
|
||||
for (Player player : server.getOnlinePlayers())
|
||||
for (User u : ess.getOnlineUsers())
|
||||
{
|
||||
users.add(ess.getUser(player));
|
||||
users.add(u);
|
||||
}
|
||||
}
|
||||
// We failed to understand the world target...
|
||||
|
@@ -147,9 +147,9 @@ public class Commandpweather extends EssentialsCommand
|
||||
}
|
||||
else
|
||||
{
|
||||
for (Player player : server.getOnlinePlayers())
|
||||
for (User user : ess.getOnlineUsers())
|
||||
{
|
||||
users.add(ess.getUser(player));
|
||||
users.add(user);
|
||||
}
|
||||
}
|
||||
return users;
|
||||
@@ -170,9 +170,9 @@ public class Commandpweather extends EssentialsCommand
|
||||
// If that fails, Is the argument something like "*" or "all"?
|
||||
else if (selector.equalsIgnoreCase("*") || selector.equalsIgnoreCase("all"))
|
||||
{
|
||||
for (Player player : server.getOnlinePlayers())
|
||||
for (User u : ess.getOnlineUsers())
|
||||
{
|
||||
users.add(ess.getUser(player));
|
||||
users.add(u);
|
||||
}
|
||||
}
|
||||
// We failed to understand the world target...
|
||||
|
@@ -24,12 +24,11 @@ public class Commandrealname extends EssentialsCommand
|
||||
throw new NotEnoughArgumentsException();
|
||||
}
|
||||
final String whois = args[0].toLowerCase(Locale.ENGLISH);
|
||||
boolean skipHidden = sender.isPlayer() && !ess.getUser(sender.getPlayer()).isAuthorized("essentials.vanish.interact");
|
||||
boolean skipHidden = sender.isPlayer() && !ess.getUser(sender.getPlayer()).canInteractVanished();
|
||||
boolean foundUser = false;
|
||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||
for (User u: ess.getOnlineUsers())
|
||||
{
|
||||
final User u = ess.getUser(onlinePlayer);
|
||||
if (skipHidden && u.isHidden())
|
||||
if (skipHidden && u.isHidden(sender.getPlayer()) && !sender.getPlayer().canSee(u.getBase()))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
@@ -63,11 +63,22 @@ public class Commandrecipe extends EssentialsCommand
|
||||
}
|
||||
else if (selectedRecipe instanceof ShapedRecipe)
|
||||
{
|
||||
shapedRecipe(sender, (ShapedRecipe)selectedRecipe);
|
||||
shapedRecipe(sender, (ShapedRecipe)selectedRecipe, sender.isPlayer());
|
||||
}
|
||||
else if (selectedRecipe instanceof ShapelessRecipe)
|
||||
{
|
||||
shapelessRecipe(sender, (ShapelessRecipe)selectedRecipe);
|
||||
if (recipesOfType.size() == 1 && itemType.getType() == Material.FIREWORK)
|
||||
{
|
||||
ShapelessRecipe shapelessRecipe = new ShapelessRecipe(itemType);
|
||||
shapelessRecipe.addIngredient(Material.SULPHUR);
|
||||
shapelessRecipe.addIngredient(Material.PAPER);
|
||||
shapelessRecipe.addIngredient(Material.FIREWORK_CHARGE);
|
||||
shapelessRecipe(sender, shapelessRecipe, sender.isPlayer());
|
||||
}
|
||||
else
|
||||
{
|
||||
shapelessRecipe(sender, (ShapelessRecipe)selectedRecipe, sender.isPlayer());
|
||||
}
|
||||
}
|
||||
|
||||
if (recipesOfType.size() > 1 && args.length == 1)
|
||||
@@ -81,11 +92,11 @@ public class Commandrecipe extends EssentialsCommand
|
||||
sender.sendMessage(tl("recipeFurnace", getMaterialName(recipe.getInput())));
|
||||
}
|
||||
|
||||
public void shapedRecipe(final CommandSource sender, final ShapedRecipe recipe)
|
||||
public void shapedRecipe(final CommandSource sender, final ShapedRecipe recipe, final boolean showWindow)
|
||||
{
|
||||
final Map<Character, ItemStack> recipeMap = recipe.getIngredientMap();
|
||||
|
||||
if (sender.isPlayer())
|
||||
if (showWindow)
|
||||
{
|
||||
final User user = ess.getUser(sender.getPlayer());
|
||||
user.getBase().closeInventory();
|
||||
@@ -141,10 +152,10 @@ public class Commandrecipe extends EssentialsCommand
|
||||
}
|
||||
}
|
||||
|
||||
public void shapelessRecipe(final CommandSource sender, final ShapelessRecipe recipe)
|
||||
public void shapelessRecipe(final CommandSource sender, final ShapelessRecipe recipe, final boolean showWindow)
|
||||
{
|
||||
final List<ItemStack> ingredients = recipe.getIngredientList();
|
||||
if (sender.isPlayer())
|
||||
if (showWindow)
|
||||
{
|
||||
final User user = ess.getUser(sender.getPlayer());
|
||||
user.setRecipeSee(true);
|
||||
|
@@ -158,21 +158,36 @@ public class Commandremove extends EssentialsCommand
|
||||
for (ToRemove toRemove : removeTypes)
|
||||
{
|
||||
|
||||
if (e instanceof Tameable && ((Tameable)e).isTamed())
|
||||
// We should skip any TAMED animals unless we are specifially targetting them.
|
||||
if (e instanceof Tameable && ((Tameable)e).isTamed()
|
||||
&& !removeTypes.contains(ToRemove.TAMED))
|
||||
{
|
||||
if (toRemove == ToRemove.TAMED)
|
||||
{
|
||||
e.remove();
|
||||
removed++;
|
||||
}
|
||||
else
|
||||
{
|
||||
continue;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
// We should skip any NAMED animals unless we are specifially targetting them.
|
||||
if (e instanceof LivingEntity && ((LivingEntity)e).getCustomName() != null
|
||||
&& !removeTypes.contains(ToRemove.NAMED))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
switch (toRemove)
|
||||
{
|
||||
case TAMED:
|
||||
if (e instanceof Tameable && ((Tameable)e).isTamed())
|
||||
{
|
||||
e.remove();
|
||||
removed++;
|
||||
}
|
||||
break;
|
||||
case NAMED:
|
||||
if (e instanceof LivingEntity && ((LivingEntity)e).getCustomName() != null)
|
||||
{
|
||||
e.remove();
|
||||
removed++;
|
||||
}
|
||||
break;
|
||||
case DROPS:
|
||||
if (e instanceof Item)
|
||||
{
|
||||
@@ -305,6 +320,7 @@ public class Commandremove extends EssentialsCommand
|
||||
ENTITIES,
|
||||
ALL,
|
||||
CUSTOM,
|
||||
TAMED
|
||||
TAMED,
|
||||
NAMED
|
||||
}
|
||||
}
|
@@ -18,9 +18,14 @@ public class Commandrules extends EssentialsCommand
|
||||
@Override
|
||||
public void run(final Server server, final CommandSource sender, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
if (sender.isPlayer())
|
||||
{
|
||||
ess.getUser(sender.getPlayer()).setDisplayNick();
|
||||
}
|
||||
|
||||
final IText input = new TextInput(sender, "rules", true, ess);
|
||||
final IText output = new KeywordReplacer(input, sender, ess);
|
||||
final TextPager pager = new TextPager(output);
|
||||
pager.showPage(args.length > 0 ? args[0] : null, args.length > 1 ? args[1] : null, "rules", sender);
|
||||
pager.showPage(args.length > 0 ? args[0] : null, args.length > 1 ? args[1] : null, commandLabel, sender);
|
||||
}
|
||||
}
|
||||
|
@@ -4,12 +4,16 @@ import com.earth2me.essentials.CommandSource;
|
||||
import static com.earth2me.essentials.I18n.tl;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.UserMap;
|
||||
import com.earth2me.essentials.craftbukkit.BanLookup;
|
||||
import com.earth2me.essentials.utils.DateUtil;
|
||||
import com.earth2me.essentials.utils.FormatUtil;
|
||||
import com.earth2me.essentials.utils.StringUtil;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import org.bukkit.BanList;
|
||||
import java.util.UUID;
|
||||
import org.bukkit.BanEntry;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Server;
|
||||
|
||||
@@ -39,33 +43,45 @@ public class Commandseen extends EssentialsCommand
|
||||
{
|
||||
throw new NotEnoughArgumentsException();
|
||||
}
|
||||
try
|
||||
User player = ess.getOfflineUser(args[0]);
|
||||
if (player == null)
|
||||
{
|
||||
User user = getPlayer(server, sender, args, 0);
|
||||
seenOnline(server, sender, user, showBan, extra);
|
||||
}
|
||||
catch (NoSuchFieldException e)
|
||||
{
|
||||
User player = ess.getOfflineUser(args[0]);
|
||||
if (player == null)
|
||||
if (ipLookup && FormatUtil.validIP(args[0]))
|
||||
{
|
||||
if (ipLookup && FormatUtil.validIP(args[0]))
|
||||
seenIP(server, sender, args[0]);
|
||||
return;
|
||||
}
|
||||
else if (ess.getServer().getBanList(BanList.Type.IP).isBanned(args[0]))
|
||||
{
|
||||
sender.sendMessage(tl("isIpBanned", args[0]));
|
||||
return;
|
||||
}
|
||||
else if (BanLookup.isBanned(ess, args[0]))
|
||||
{
|
||||
sender.sendMessage(tl("whoisBanned", showBan ? BanLookup.getBanEntry(ess, args[0]).getReason() : tl("true")));
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
try
|
||||
{
|
||||
seenIP(server, sender, args[0]);
|
||||
return;
|
||||
player = getPlayer(server, sender, args, 0);
|
||||
}
|
||||
else if (FormatUtil.validIP(args[0]) && (server.getIPBans().contains(args[0])))
|
||||
{
|
||||
sender.sendMessage(tl("isIpBanned", args[0]));
|
||||
return;
|
||||
}
|
||||
else
|
||||
catch (NoSuchFieldException e)
|
||||
{
|
||||
throw new PlayerNotFoundException();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (player.getBase().isOnline() && canInteractWith(sender, player))
|
||||
{
|
||||
seenOnline(server, sender, player, showBan, extra);
|
||||
}
|
||||
else
|
||||
{
|
||||
seenOffline(server, sender, player, showBan, extra);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void seenOnline(final Server server, final CommandSource sender, final User user, final boolean showBan, final boolean extra) throws Exception
|
||||
@@ -135,10 +151,23 @@ public class Commandseen extends EssentialsCommand
|
||||
sender.sendMessage(tl("seenAccounts", StringUtil.joinListSkip(", ", user.getName(), history)));
|
||||
}
|
||||
|
||||
if (user.getBase().isBanned())
|
||||
if (BanLookup.isBanned(ess, user))
|
||||
{
|
||||
sender.sendMessage(tl("whoisBanned", showBan ? user.getBanReason() : tl("true")));
|
||||
final BanEntry banEntry = BanLookup.getBanEntry(ess, user.getName());
|
||||
final String reason = showBan ? banEntry.getReason() : tl("true");
|
||||
sender.sendMessage(tl("whoisBanned", reason));
|
||||
if (banEntry.getExpiration() != null)
|
||||
{
|
||||
Date expiry = banEntry.getExpiration();
|
||||
String expireString = tl("now");
|
||||
if (expiry.after(new Date()))
|
||||
{
|
||||
expireString = DateUtil.formatDateDiff(expiry.getTime());
|
||||
}
|
||||
sender.sendMessage(tl("whoisTempBanned", expireString));
|
||||
}
|
||||
}
|
||||
|
||||
final String location = user.getGeoLocation();
|
||||
if (location != null && (!(sender.isPlayer()) || ess.getUser(sender.getPlayer()).isAuthorized("essentials.geoip.show")))
|
||||
{
|
||||
@@ -162,7 +191,7 @@ public class Commandseen extends EssentialsCommand
|
||||
{
|
||||
final UserMap userMap = ess.getUserMap();
|
||||
|
||||
if (server.getIPBans().contains(ipAddress))
|
||||
if (ess.getServer().getBanList(BanList.Type.IP).isBanned(ipAddress))
|
||||
{
|
||||
sender.sendMessage(tl("isIpBanned", ipAddress));
|
||||
}
|
||||
|
@@ -2,6 +2,7 @@ package com.earth2me.essentials.commands;
|
||||
|
||||
import static com.earth2me.essentials.I18n.tl;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.utils.LocationUtil;
|
||||
import com.earth2me.essentials.utils.NumberUtil;
|
||||
import java.util.Locale;
|
||||
import org.bukkit.Location;
|
||||
@@ -40,11 +41,11 @@ public class Commandsethome extends EssentialsCommand
|
||||
name = args[1].toLowerCase(Locale.ENGLISH);
|
||||
if (user.isAuthorized("essentials.sethome.others"))
|
||||
{
|
||||
usersHome = ess.getUser(args[0]);
|
||||
usersHome = getPlayer(server, args[0], true, true);
|
||||
if (usersHome == null)
|
||||
{
|
||||
throw new PlayerNotFoundException();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -56,6 +57,12 @@ public class Commandsethome extends EssentialsCommand
|
||||
{
|
||||
throw new NoSuchFieldException(tl("invalidHomeName"));
|
||||
}
|
||||
|
||||
if (!ess.getSettings().isTeleportSafetyEnabled() && LocationUtil.isBlockUnsafeForUser(usersHome, location.getWorld(), location.getBlockX(), location.getBlockY(), location.getBlockZ()))
|
||||
{
|
||||
throw new Exception(tl("unsafeTeleportDestination", location.getWorld().getName(), location.getBlockX(), location.getBlockY(), location.getBlockZ()));
|
||||
}
|
||||
|
||||
usersHome.setHome(name, location);
|
||||
user.sendMessage(tl("homeSet", user.getLocation().getWorld().getName(), user.getLocation().getBlockX(), user.getLocation().getBlockY(), user.getLocation().getBlockZ(), name));
|
||||
|
||||
|
@@ -72,13 +72,13 @@ public class Commandspeed extends EssentialsCommand
|
||||
|
||||
private void speedOtherPlayers(final Server server, final CommandSource sender, final boolean isFly, final boolean isBypass, final float speed, final String name) throws PlayerNotFoundException
|
||||
{
|
||||
boolean skipHidden = sender.isPlayer() && !ess.getUser(sender.getPlayer()).isAuthorized("essentials.vanish.interact");
|
||||
boolean skipHidden = sender.isPlayer() && !ess.getUser(sender.getPlayer()).canInteractVanished();
|
||||
boolean foundUser = false;
|
||||
final List<Player> matchedPlayers = server.matchPlayer(name);
|
||||
for (Player matchPlayer : matchedPlayers)
|
||||
{
|
||||
final User player = ess.getUser(matchPlayer);
|
||||
if (skipHidden && player.isHidden())
|
||||
if (skipHidden && player.isHidden(sender.getPlayer()) && !sender.getPlayer().canSee(matchPlayer))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
@@ -4,10 +4,8 @@ import com.earth2me.essentials.CommandSource;
|
||||
import static com.earth2me.essentials.I18n.tl;
|
||||
import com.earth2me.essentials.User;
|
||||
import java.util.Locale;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.command.PluginCommand;
|
||||
|
||||
|
||||
public class Commandsudo extends EssentialsCommand
|
||||
@@ -27,7 +25,7 @@ public class Commandsudo extends EssentialsCommand
|
||||
}
|
||||
|
||||
final User user = getPlayer(server, sender, args, 0);
|
||||
if(args[1].toLowerCase(Locale.ENGLISH).startsWith("c:"))
|
||||
if (args[1].toLowerCase(Locale.ENGLISH).startsWith("c:"))
|
||||
{
|
||||
if (user.isAuthorized("essentials.sudo.exempt") && sender.isPlayer())
|
||||
{
|
||||
@@ -36,11 +34,10 @@ public class Commandsudo extends EssentialsCommand
|
||||
user.getBase().chat(getFinalArg(args, 1).substring(2));
|
||||
return;
|
||||
}
|
||||
final String command = args[1];
|
||||
final String[] arguments = new String[args.length - 2];
|
||||
final String[] arguments = new String[args.length - 1];
|
||||
if (arguments.length > 0)
|
||||
{
|
||||
System.arraycopy(args, 2, arguments, 0, args.length - 2);
|
||||
System.arraycopy(args, 1, arguments, 0, args.length - 1);
|
||||
}
|
||||
|
||||
if (user.isAuthorized("essentials.sudo.exempt") && sender.isPlayer())
|
||||
@@ -48,24 +45,28 @@ public class Commandsudo extends EssentialsCommand
|
||||
throw new Exception(tl("sudoExempt"));
|
||||
}
|
||||
|
||||
sender.sendMessage(tl("sudoRun", user.getDisplayName(), command, getFinalArg(arguments, 0)));
|
||||
final String command = getFinalArg(arguments, 0);
|
||||
|
||||
final PluginCommand execCommand = ess.getServer().getPluginCommand(command);
|
||||
if (execCommand != null)
|
||||
sender.sendMessage(tl("sudoRun", user.getDisplayName(), command, ""));
|
||||
|
||||
if (command != null && command.length() > 0)
|
||||
{
|
||||
ess.scheduleSyncDelayedTask(
|
||||
new Runnable()
|
||||
class SudoCommandTask implements Runnable
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
try
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
LOGGER.log(Level.INFO, String.format("[Sudo] %s issued server command: /%s %s", user.getName(), command, getFinalArg(arguments, 0)));
|
||||
execCommand.execute(user.getBase(), command, arguments);
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
sender.sendMessage(tl("errorCallingCommand", command));
|
||||
ess.getServer().dispatchCommand(user.getBase(), command);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
sender.sendMessage(tl("errorCallingCommand", command));
|
||||
}
|
||||
}
|
||||
}
|
||||
ess.scheduleSyncDelayedTask(new SudoCommandTask());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -5,8 +5,10 @@ import com.earth2me.essentials.Console;
|
||||
import static com.earth2me.essentials.I18n.tl;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.utils.DateUtil;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.logging.Level;
|
||||
import org.bukkit.BanList;
|
||||
import org.bukkit.Server;
|
||||
|
||||
|
||||
@@ -44,6 +46,7 @@ public class Commandtempban extends EssentialsCommand
|
||||
}
|
||||
final String time = getFinalArg(args, 1);
|
||||
final long banTimestamp = DateUtil.parseDateDiff(time, true);
|
||||
String banReason = DateUtil.removeTimePattern(time);
|
||||
|
||||
final long maxBanLength = ess.getSettings().getMaxTempban() * 1000;
|
||||
if (maxBanLength > 0 && ((banTimestamp - GregorianCalendar.getInstance().getTimeInMillis()) > maxBanLength)
|
||||
@@ -53,14 +56,19 @@ public class Commandtempban extends EssentialsCommand
|
||||
throw new NoChargeException();
|
||||
}
|
||||
|
||||
final String senderName = sender.isPlayer() ? sender.getPlayer().getDisplayName() : Console.NAME;
|
||||
final String banReason = tl("tempBanned", DateUtil.formatDateDiff(banTimestamp), senderName);
|
||||
user.setBanReason(banReason);
|
||||
user.setBanTimeout(banTimestamp);
|
||||
user.getBase().setBanned(true);
|
||||
user.getBase().kickPlayer(banReason);
|
||||
if (banReason.length() < 2)
|
||||
{
|
||||
banReason = tl("defaultBanReason");
|
||||
}
|
||||
|
||||
final String message = tl("playerBanned", senderName, user.getName(), banReason, DateUtil.formatDateDiff(banTimestamp));
|
||||
final String senderName = sender.isPlayer() ? sender.getPlayer().getDisplayName() : Console.NAME;
|
||||
ess.getServer().getBanList(BanList.Type.NAME).addBan(user.getName(), banReason, new Date(banTimestamp), senderName);
|
||||
final String expiry = DateUtil.formatDateDiff(banTimestamp);
|
||||
|
||||
final String banDisplay = tl("tempBanned", expiry, senderName, banReason);
|
||||
user.getBase().kickPlayer(banDisplay);
|
||||
|
||||
final String message = tl("playerTempBanned", senderName, user.getName(), expiry, banReason);
|
||||
server.getLogger().log(Level.INFO, message);
|
||||
ess.broadcastMessage("essentials.ban.notify", message);
|
||||
}
|
||||
|
@@ -40,11 +40,31 @@ public class Commandtp extends EssentialsCommand
|
||||
charge.isAffordableFor(user);
|
||||
user.getTeleport().teleport(player.getBase(), charge, TeleportCause.COMMAND);
|
||||
throw new NoChargeException();
|
||||
case 3:
|
||||
if (!user.isAuthorized("essentials.tp.position"))
|
||||
{
|
||||
throw new Exception(tl("noPerm", "essentials.tp.position"));
|
||||
}
|
||||
final double x2 = args[0].startsWith("~") ? user.getLocation().getX() + Integer.parseInt(args[0].substring(1)) : Integer.parseInt(args[0]);
|
||||
final double y2 = args[1].startsWith("~") ? user.getLocation().getY() + Integer.parseInt(args[1].substring(1)) : Integer.parseInt(args[1]);
|
||||
final double z2 = args[2].startsWith("~") ? user.getLocation().getZ() + Integer.parseInt(args[2].substring(1)) : Integer.parseInt(args[2]);
|
||||
if (x2 > 30000000 || y2 > 30000000 || z2 > 30000000 || x2 < -30000000 || y2 < -30000000 || z2 < -30000000)
|
||||
{
|
||||
throw new NotEnoughArgumentsException(tl("teleportInvalidLocation"));
|
||||
}
|
||||
final Location locpos = new Location(user.getWorld(), x2, y2, z2, user.getLocation().getYaw(), user.getLocation().getPitch());
|
||||
user.getTeleport().now(locpos, false, TeleportCause.COMMAND);
|
||||
user.sendMessage(tl("teleporting", locpos.getWorld().getName(), locpos.getBlockX(), locpos.getBlockY(), locpos.getBlockZ()));
|
||||
break;
|
||||
case 4:
|
||||
if (!user.isAuthorized("essentials.tp.others"))
|
||||
{
|
||||
throw new Exception(tl("noPerm", "essentials.tp.others"));
|
||||
}
|
||||
if (!user.isAuthorized("essentials.tp.position"))
|
||||
{
|
||||
throw new Exception(tl("noPerm", "essentials.tp.position"));
|
||||
}
|
||||
final User target2 = getPlayer(server, user, args, 0);
|
||||
final double x = args[1].startsWith("~") ? target2.getLocation().getX() + Integer.parseInt(args[1].substring(1)) : Integer.parseInt(args[1]);
|
||||
final double y = args[2].startsWith("~") ? target2.getLocation().getY() + Integer.parseInt(args[2].substring(1)) : Integer.parseInt(args[2]);
|
||||
@@ -53,14 +73,14 @@ public class Commandtp extends EssentialsCommand
|
||||
{
|
||||
throw new NotEnoughArgumentsException(tl("teleportInvalidLocation"));
|
||||
}
|
||||
final Location loc = new Location(target2.getWorld(), x, y, z, target2.getLocation().getYaw(), target2.getLocation().getPitch());
|
||||
final Location locposother = new Location(target2.getWorld(), x, y, z, target2.getLocation().getYaw(), target2.getLocation().getPitch());
|
||||
if (!target2.isTeleportEnabled())
|
||||
{
|
||||
throw new Exception(tl("teleportDisabled", target2.getDisplayName()));
|
||||
}
|
||||
target2.getTeleport().now(loc, false, TeleportCause.COMMAND);
|
||||
user.sendMessage(tl("teleporting", loc.getWorld().getName(), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()));
|
||||
target2.sendMessage(tl("teleporting", loc.getWorld().getName(), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()));
|
||||
user.sendMessage(tl("teleporting", locposother.getWorld().getName(), locposother.getBlockX(), locposother.getBlockY(), locposother.getBlockZ()));
|
||||
target2.getTeleport().now(locposother, false, TeleportCause.COMMAND);
|
||||
target2.sendMessage(tl("teleporting", locposother.getWorld().getName(), locposother.getBlockX(), locposother.getBlockY(), locposother.getBlockZ()));
|
||||
break;
|
||||
case 2:
|
||||
default:
|
||||
@@ -83,8 +103,8 @@ public class Commandtp extends EssentialsCommand
|
||||
{
|
||||
throw new Exception(tl("noPerm", "essentials.worlds." + toPlayer.getWorld().getName()));
|
||||
}
|
||||
target.getTeleport().now(toPlayer.getBase(), false, TeleportCause.COMMAND);
|
||||
target.sendMessage(tl("teleportAtoB", user.getDisplayName(), toPlayer.getDisplayName()));
|
||||
target.getTeleport().now(toPlayer.getBase(), false, TeleportCause.COMMAND);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -101,8 +121,8 @@ public class Commandtp extends EssentialsCommand
|
||||
if (args.length == 2)
|
||||
{
|
||||
final User toPlayer = getPlayer(server, args, 1, true, false);
|
||||
target.getTeleport().now(toPlayer.getBase(), false, TeleportCause.COMMAND);
|
||||
target.sendMessage(tl("teleportAtoB", Console.NAME, toPlayer.getDisplayName()));
|
||||
target.getTeleport().now(toPlayer.getBase(), false, TeleportCause.COMMAND);
|
||||
}
|
||||
else if (args.length > 3)
|
||||
{
|
||||
@@ -114,9 +134,9 @@ public class Commandtp extends EssentialsCommand
|
||||
throw new NotEnoughArgumentsException(tl("teleportInvalidLocation"));
|
||||
}
|
||||
final Location loc = new Location(target.getWorld(), x, y, z, target.getLocation().getYaw(), target.getLocation().getPitch());
|
||||
sender.sendMessage(tl("teleporting", loc.getWorld().getName(), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()));
|
||||
target.getTeleport().now(loc, false, TeleportCause.COMMAND);
|
||||
target.sendMessage(tl("teleporting", loc.getWorld().getName(), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()));
|
||||
sender.sendMessage(tl("teleporting", loc.getWorld().getName(), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@@ -34,9 +34,8 @@ public class Commandtpaall extends EssentialsCommand
|
||||
private void teleportAAllPlayers(final Server server, final CommandSource sender, final User target)
|
||||
{
|
||||
sender.sendMessage(tl("teleportAAll"));
|
||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||
for (User player : ess.getOnlineUsers())
|
||||
{
|
||||
final User player = ess.getUser(onlinePlayer);
|
||||
if (target == player)
|
||||
{
|
||||
continue;
|
||||
|
@@ -37,9 +37,8 @@ public class Commandtpall extends EssentialsCommand
|
||||
{
|
||||
sender.sendMessage(tl("teleportAll"));
|
||||
final Location loc = target.getLocation();
|
||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||
for (User player : ess.getOnlineUsers())
|
||||
{
|
||||
final User player = ess.getUser(onlinePlayer);
|
||||
if (target == player)
|
||||
{
|
||||
continue;
|
||||
|
@@ -22,7 +22,6 @@ public class Commandtree extends EssentialsCommand
|
||||
TreeType tree = TreeType.BIRCH;
|
||||
try // update check
|
||||
{
|
||||
|
||||
if (args.length < 1)
|
||||
{
|
||||
throw new NotEnoughArgumentsException();
|
||||
|
@@ -5,6 +5,8 @@ import com.earth2me.essentials.Console;
|
||||
import static com.earth2me.essentials.I18n.tl;
|
||||
import com.earth2me.essentials.User;
|
||||
import java.util.logging.Level;
|
||||
import org.bukkit.BanList;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.Server;
|
||||
|
||||
@@ -28,8 +30,7 @@ public class Commandunban extends EssentialsCommand
|
||||
{
|
||||
final User user = getPlayer(server, args, 0, true, true);
|
||||
name = user.getName();
|
||||
user.getBase().setBanned(false);
|
||||
user.setBanTimeout(0);
|
||||
ess.getServer().getBanList(BanList.Type.NAME).pardon(name);
|
||||
}
|
||||
catch (NoSuchFieldException e)
|
||||
{
|
||||
@@ -39,12 +40,12 @@ public class Commandunban extends EssentialsCommand
|
||||
{
|
||||
throw new Exception(tl("playerNotFound"), e);
|
||||
}
|
||||
player.setBanned(false);
|
||||
ess.getServer().getBanList(BanList.Type.NAME).pardon(name);
|
||||
}
|
||||
|
||||
final String senderName = sender.isPlayer() ? sender.getPlayer().getDisplayName() : Console.NAME;
|
||||
server.getLogger().log(Level.INFO, tl("playerUnbanned", senderName, name));
|
||||
|
||||
|
||||
ess.broadcastMessage("essentials.ban.notify", tl("playerUnbanned", senderName, name));
|
||||
}
|
||||
}
|
||||
|
@@ -6,6 +6,8 @@ import static com.earth2me.essentials.I18n.tl;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.utils.FormatUtil;
|
||||
import java.util.logging.Level;
|
||||
import org.bukkit.BanList;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Server;
|
||||
|
||||
|
||||
@@ -23,7 +25,7 @@ public class Commandunbanip extends EssentialsCommand
|
||||
{
|
||||
throw new NotEnoughArgumentsException();
|
||||
}
|
||||
|
||||
|
||||
String ipAddress;
|
||||
if (FormatUtil.validIP(args[0]))
|
||||
{
|
||||
@@ -47,7 +49,8 @@ public class Commandunbanip extends EssentialsCommand
|
||||
throw new PlayerNotFoundException();
|
||||
}
|
||||
|
||||
ess.getServer().unbanIP(ipAddress);
|
||||
|
||||
ess.getServer().getBanList(BanList.Type.IP).pardon(ipAddress);
|
||||
final String senderName = sender.isPlayer() ? sender.getPlayer().getDisplayName() : Console.NAME;
|
||||
server.getLogger().log(Level.INFO, tl("playerUnbanIpAddress", senderName, ipAddress));
|
||||
|
||||
|
@@ -70,7 +70,7 @@ public class Commandweather extends EssentialsCommand
|
||||
final World world = server.getWorld(args[0]);
|
||||
if (world == null)
|
||||
{
|
||||
throw new Exception(tl("weatherInvalidWorldWorld", args[0]));
|
||||
throw new Exception(tl("weatherInvalidWorld", args[0]));
|
||||
}
|
||||
if (args.length > 2)
|
||||
{
|
||||
|
@@ -54,10 +54,21 @@ public abstract class EssentialsCommand implements IEssentialsCommand
|
||||
return getPlayer(server, args, pos, true, false);
|
||||
}
|
||||
|
||||
// Get online players - only show vanished if source has permission
|
||||
protected User getPlayer(final Server server, final CommandSource sender, final String searchTerm) throws PlayerNotFoundException, NotEnoughArgumentsException
|
||||
{
|
||||
if (sender.isPlayer())
|
||||
{
|
||||
User user = ess.getUser(sender.getPlayer());
|
||||
return getPlayer(server, user, searchTerm, user.canInteractVanished(), false);
|
||||
}
|
||||
return getPlayer(server, searchTerm, true, false);
|
||||
}
|
||||
|
||||
// Get online players - only show vanished if source has permission
|
||||
protected User getPlayer(final Server server, final User user, final String[] args, final int pos) throws PlayerNotFoundException, NotEnoughArgumentsException
|
||||
{
|
||||
return getPlayer(server, user, args, pos, user.isAuthorized("essentials.vanish.interact"), false);
|
||||
return getPlayer(server, user, args, pos, user.canInteractVanished(), false);
|
||||
}
|
||||
|
||||
// Get online or offline players, this method allows for raw access
|
||||
@@ -114,21 +125,21 @@ public abstract class EssentialsCommand implements IEssentialsCommand
|
||||
{
|
||||
throw new PlayerNotFoundException();
|
||||
}
|
||||
if (!getHidden && user.isHidden() && !user.equals(sourceUser))
|
||||
|
||||
if (getHidden || canInteractWith(sourceUser, user))
|
||||
{
|
||||
throw new PlayerNotFoundException();
|
||||
return user;
|
||||
}
|
||||
return user;
|
||||
throw new PlayerNotFoundException();
|
||||
}
|
||||
final List<Player> matches = server.matchPlayer(searchTerm);
|
||||
|
||||
if (matches.isEmpty())
|
||||
{
|
||||
final String matchText = searchTerm.toLowerCase(Locale.ENGLISH);
|
||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||
for (User userMatch : ess.getOnlineUsers())
|
||||
{
|
||||
final User userMatch = ess.getUser(onlinePlayer);
|
||||
if (getHidden || !userMatch.isHidden() || userMatch.equals(sourceUser))
|
||||
if (getHidden || canInteractWith(sourceUser, userMatch))
|
||||
{
|
||||
final String displayName = FormatUtil.stripFormat(userMatch.getDisplayName()).toLowerCase(Locale.ENGLISH);
|
||||
if (displayName.contains(matchText))
|
||||
@@ -143,13 +154,13 @@ public abstract class EssentialsCommand implements IEssentialsCommand
|
||||
for (Player player : matches)
|
||||
{
|
||||
final User userMatch = ess.getUser(player);
|
||||
if (userMatch.getDisplayName().startsWith(searchTerm) && (getHidden || !userMatch.isHidden() || userMatch.equals(sourceUser)))
|
||||
if (userMatch.getDisplayName().startsWith(searchTerm) && (getHidden || canInteractWith(sourceUser, userMatch)))
|
||||
{
|
||||
return userMatch;
|
||||
}
|
||||
}
|
||||
final User userMatch = ess.getUser(matches.get(0));
|
||||
if (getHidden || !userMatch.isHidden() || userMatch.equals(sourceUser))
|
||||
if (getHidden || canInteractWith(sourceUser, userMatch))
|
||||
{
|
||||
return userMatch;
|
||||
}
|
||||
@@ -199,4 +210,34 @@ public abstract class EssentialsCommand implements IEssentialsCommand
|
||||
}
|
||||
return bldr.toString();
|
||||
}
|
||||
|
||||
boolean canInteractWith(CommandSource interactor, User interactee)
|
||||
{
|
||||
if (interactor == null)
|
||||
{
|
||||
return !interactee.isHidden();
|
||||
}
|
||||
|
||||
if (interactor.isPlayer())
|
||||
{
|
||||
return canInteractWith(ess.getUser(interactor.getPlayer()), interactee);
|
||||
}
|
||||
|
||||
return true; // console
|
||||
}
|
||||
|
||||
private static boolean canInteractWith(User interactor, User interactee)
|
||||
{
|
||||
if (interactor == null)
|
||||
{
|
||||
return !interactee.isHidden();
|
||||
}
|
||||
|
||||
if (interactor.equals(interactee))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return interactor.getBase().canSee(interactee.getBase());
|
||||
}
|
||||
}
|
||||
|
@@ -3,7 +3,9 @@ package com.earth2me.essentials.commands;
|
||||
import com.earth2me.essentials.ChargeException;
|
||||
import com.earth2me.essentials.CommandSource;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.utils.FormatUtil;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.UUID;
|
||||
import net.ess3.api.MaxMoneyException;
|
||||
import org.bukkit.Server;
|
||||
@@ -35,11 +37,10 @@ public abstract class EssentialsLoopCommand extends EssentialsCommand
|
||||
}
|
||||
else if (matchWildcards && searchTerm.contentEquals("*"))
|
||||
{
|
||||
boolean skipHidden = sender.isPlayer() && !ess.getUser(sender.getPlayer()).isAuthorized("essentials.vanish.interact");
|
||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||
boolean skipHidden = sender.isPlayer() && !ess.getUser(sender.getPlayer()).canInteractVanished();
|
||||
for (User onlineUser : ess.getOnlineUsers())
|
||||
{
|
||||
final User onlineUser = ess.getUser(onlinePlayer);
|
||||
if (skipHidden && onlineUser.isHidden())
|
||||
if (skipHidden && onlineUser.isHidden(sender.getPlayer()) && !sender.getPlayer().canSee(onlineUser.getBase()))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -79,14 +80,13 @@ public abstract class EssentialsLoopCommand extends EssentialsCommand
|
||||
throw new PlayerNotFoundException();
|
||||
}
|
||||
|
||||
boolean skipHidden = sender.isPlayer() && !ess.getUser(sender.getPlayer()).isAuthorized("essentials.vanish.interact");
|
||||
boolean skipHidden = sender.isPlayer() && !ess.getUser(sender.getPlayer()).canInteractVanished();
|
||||
|
||||
if (matchWildcards && (searchTerm.contentEquals("**") || searchTerm.contentEquals("*")))
|
||||
{
|
||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||
for (User onlineUser : ess.getOnlineUsers())
|
||||
{
|
||||
final User onlineUser = ess.getUser(onlinePlayer);
|
||||
if (skipHidden && onlineUser.isHidden())
|
||||
if (skipHidden && onlineUser.isHidden(sender.getPlayer()) && !sender.getPlayer().canSee(onlineUser.getBase()))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -101,15 +101,36 @@ public abstract class EssentialsLoopCommand extends EssentialsCommand
|
||||
}
|
||||
boolean foundUser = false;
|
||||
final List<Player> matchedPlayers = server.matchPlayer(searchTerm);
|
||||
for (Player matchPlayer : matchedPlayers)
|
||||
|
||||
if (matchedPlayers.isEmpty())
|
||||
{
|
||||
final User player = ess.getUser(matchPlayer);
|
||||
if (skipHidden && player.isHidden())
|
||||
final String matchText = searchTerm.toLowerCase(Locale.ENGLISH);
|
||||
for (User player : ess.getOnlineUsers())
|
||||
{
|
||||
continue;
|
||||
if (skipHidden && player.isHidden(sender.getPlayer()) && !sender.getPlayer().canSee(player.getBase()))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
final String displayName = FormatUtil.stripFormat(player.getDisplayName()).toLowerCase(Locale.ENGLISH);
|
||||
if (displayName.contains(matchText))
|
||||
{
|
||||
foundUser = true;
|
||||
updatePlayer(server, sender, player, commandArgs);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (Player matchPlayer : matchedPlayers)
|
||||
{
|
||||
final User player = ess.getUser(matchPlayer);
|
||||
if (skipHidden && player.isHidden(sender.getPlayer()) && !sender.getPlayer().canSee(matchPlayer))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
foundUser = true;
|
||||
updatePlayer(server, sender, player, commandArgs);
|
||||
}
|
||||
foundUser = true;
|
||||
updatePlayer(server, sender, player, commandArgs);
|
||||
}
|
||||
if (!foundUser)
|
||||
{
|
||||
@@ -118,7 +139,7 @@ public abstract class EssentialsLoopCommand extends EssentialsCommand
|
||||
}
|
||||
else
|
||||
{
|
||||
final User player = getPlayer(server, searchTerm, !skipHidden, false);
|
||||
final User player = getPlayer(server, sender, searchTerm);
|
||||
updatePlayer(server, sender, player, commandArgs);
|
||||
}
|
||||
}
|
||||
|
@@ -37,13 +37,13 @@ public abstract class EssentialsToggleCommand extends EssentialsCommand
|
||||
throw new PlayerNotFoundException();
|
||||
}
|
||||
|
||||
boolean skipHidden = sender.isPlayer() && !ess.getUser(sender.getPlayer()).isAuthorized("essentials.vanish.interact");
|
||||
boolean skipHidden = sender.isPlayer() && !ess.getUser(sender.getPlayer()).canInteractVanished();
|
||||
boolean foundUser = false;
|
||||
final List<Player> matchedPlayers = server.matchPlayer(args[0]);
|
||||
for (Player matchPlayer : matchedPlayers)
|
||||
{
|
||||
final User player = ess.getUser(matchPlayer);
|
||||
if (skipHidden && player.isHidden())
|
||||
if (skipHidden && player.isHidden(sender.getPlayer()) && !sender.getPlayer().canSee(matchPlayer))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
@@ -0,0 +1,36 @@
|
||||
package com.earth2me.essentials.craftbukkit;
|
||||
|
||||
import com.earth2me.essentials.User;
|
||||
import java.util.Iterator;
|
||||
import java.util.Set;
|
||||
import net.ess3.api.IEssentials;
|
||||
import org.bukkit.BanEntry;
|
||||
import org.bukkit.BanList;
|
||||
|
||||
|
||||
public class BanLookup
|
||||
{
|
||||
public static Boolean isBanned(IEssentials ess, User user)
|
||||
{
|
||||
return isBanned(ess, user.getName());
|
||||
}
|
||||
|
||||
public static Boolean isBanned(IEssentials ess, String name)
|
||||
{
|
||||
return getBanEntry(ess, name) != null;
|
||||
}
|
||||
|
||||
public static BanEntry getBanEntry(IEssentials ess, String name)
|
||||
{
|
||||
Set<BanEntry> benteries = ess.getServer().getBanList(BanList.Type.NAME).getBanEntries();
|
||||
for (BanEntry banEnt : benteries)
|
||||
{
|
||||
if (banEnt.getTarget().equals(name))
|
||||
{
|
||||
return banEnt;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
@@ -24,6 +24,7 @@ package com.earth2me.essentials.metrics;
|
||||
* should not be interpreted as representing official policies, either expressed or implied, of anybody else.
|
||||
*/
|
||||
|
||||
import com.earth2me.essentials.IEssentials;
|
||||
import java.io.*;
|
||||
import java.net.Proxy;
|
||||
import java.net.URL;
|
||||
@@ -352,7 +353,7 @@ public class Metrics
|
||||
boolean onlineMode = Bukkit.getServer().getOnlineMode(); // TRUE if online mode is enabled
|
||||
String pluginVersion = description.getVersion();
|
||||
String serverVersion = Bukkit.getVersion();
|
||||
int playersOnline = Bukkit.getServer().getOnlinePlayers().length;
|
||||
int playersOnline = ((IEssentials)plugin).getOnlinePlayers().size();
|
||||
|
||||
// END server software specific section -- all code below does not use any code outside of this class / Java
|
||||
|
||||
|
@@ -25,7 +25,14 @@ public class PermissionsExHandler extends SuperpermsHandler
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return user.getGroupsNames()[0];
|
||||
|
||||
String[] groupsNames = user.getGroupsNames();
|
||||
if (groupsNames == null || groupsNames.length == 0)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return groupsNames[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -36,7 +43,14 @@ public class PermissionsExHandler extends SuperpermsHandler
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return Arrays.asList(user.getGroupsNames());
|
||||
|
||||
String[] groupsNames = user.getGroupsNames();
|
||||
if (groupsNames == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return Arrays.asList(groupsNames);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -1,5 +1,6 @@
|
||||
package com.earth2me.essentials.perm;
|
||||
|
||||
import com.earth2me.essentials.Essentials;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
@@ -13,46 +14,50 @@ public class PermissionsHandler implements IPermissionsHandler
|
||||
{
|
||||
private transient IPermissionsHandler handler = new NullPermissionsHandler();
|
||||
private transient String defaultGroup = "default";
|
||||
private final transient Plugin plugin;
|
||||
private final transient Essentials ess;
|
||||
private static final Logger LOGGER = Logger.getLogger("Essentials");
|
||||
private transient boolean useSuperperms = false;
|
||||
|
||||
public PermissionsHandler(final Plugin plugin)
|
||||
public PermissionsHandler(final Essentials plugin)
|
||||
{
|
||||
this.plugin = plugin;
|
||||
this.ess = plugin;
|
||||
}
|
||||
|
||||
public PermissionsHandler(final Plugin plugin, final boolean useSuperperms)
|
||||
public PermissionsHandler(final Essentials plugin, final boolean useSuperperms)
|
||||
{
|
||||
this.plugin = plugin;
|
||||
this.ess = plugin;
|
||||
this.useSuperperms = useSuperperms;
|
||||
}
|
||||
|
||||
public PermissionsHandler(final Plugin plugin, final String defaultGroup)
|
||||
public PermissionsHandler(final Essentials plugin, final String defaultGroup)
|
||||
{
|
||||
this.plugin = plugin;
|
||||
this.ess = plugin;
|
||||
this.defaultGroup = defaultGroup;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getGroup(final Player base)
|
||||
{
|
||||
final long start = System.nanoTime();
|
||||
String group = handler.getGroup(base);
|
||||
if (group == null)
|
||||
{
|
||||
group = defaultGroup;
|
||||
}
|
||||
checkPermLag(start);
|
||||
return group;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getGroups(final Player base)
|
||||
{
|
||||
final long start = System.nanoTime();
|
||||
List<String> groups = handler.getGroups(base);
|
||||
if (groups == null || groups.isEmpty())
|
||||
{
|
||||
groups = Collections.singletonList(defaultGroup);
|
||||
}
|
||||
checkPermLag(start);
|
||||
return Collections.unmodifiableList(groups);
|
||||
}
|
||||
|
||||
@@ -65,7 +70,10 @@ public class PermissionsHandler implements IPermissionsHandler
|
||||
@Override
|
||||
public boolean inGroup(final Player base, final String group)
|
||||
{
|
||||
return handler.inGroup(base, group);
|
||||
final long start = System.nanoTime();
|
||||
final boolean result = handler.inGroup(base, group);
|
||||
checkPermLag(start);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -77,28 +85,32 @@ public class PermissionsHandler implements IPermissionsHandler
|
||||
@Override
|
||||
public String getPrefix(final Player base)
|
||||
{
|
||||
final long start = System.nanoTime();
|
||||
String prefix = handler.getPrefix(base);
|
||||
if (prefix == null)
|
||||
{
|
||||
prefix = "";
|
||||
}
|
||||
checkPermLag(start);
|
||||
return prefix;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSuffix(final Player base)
|
||||
{
|
||||
final long start = System.nanoTime();
|
||||
String suffix = handler.getSuffix(base);
|
||||
if (suffix == null)
|
||||
{
|
||||
suffix = "";
|
||||
}
|
||||
checkPermLag(start);
|
||||
return suffix;
|
||||
}
|
||||
|
||||
public void checkPermissions()
|
||||
{
|
||||
final PluginManager pluginManager = plugin.getServer().getPluginManager();
|
||||
final PluginManager pluginManager = ess.getServer().getPluginManager();
|
||||
|
||||
final Plugin permExPlugin = pluginManager.getPlugin("PermissionsEx");
|
||||
if (permExPlugin != null && permExPlugin.isEnabled())
|
||||
@@ -172,7 +184,7 @@ public class PermissionsHandler implements IPermissionsHandler
|
||||
if (!(handler instanceof ZPermissionsHandler))
|
||||
{
|
||||
LOGGER.log(Level.INFO, "Essentials: Using zPermissions based permissions.");
|
||||
handler = new ZPermissionsHandler(plugin);
|
||||
handler = new ZPermissionsHandler(ess);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -191,7 +203,7 @@ public class PermissionsHandler implements IPermissionsHandler
|
||||
{
|
||||
LOGGER.log(Level.INFO, "Essentials: Using config file enhanced permissions.");
|
||||
LOGGER.log(Level.INFO, "Permissions listed in as player-commands will be given to all users.");
|
||||
handler = new ConfigPermissionsHandler(plugin);
|
||||
handler = new ConfigPermissionsHandler(ess);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -205,4 +217,13 @@ public class PermissionsHandler implements IPermissionsHandler
|
||||
{
|
||||
return handler.getClass().getSimpleName().replace("Handler", "");
|
||||
}
|
||||
|
||||
private void checkPermLag(long start)
|
||||
{
|
||||
final long elapsed = System.nanoTime() - start;
|
||||
if (elapsed > ess.getSettings().getPermissionsLagWarning())
|
||||
{
|
||||
ess.getLogger().log(Level.INFO, "Lag Notice - Slow Permissions System (" + getName() + ") Response - Request took over {0}ms!", elapsed / 1000000.0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -29,7 +29,7 @@ public class SignBlockListener implements Listener
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onBlockBreak(final BlockBreakEvent event)
|
||||
public void onSignBlockBreak(final BlockBreakEvent event)
|
||||
{
|
||||
if (ess.getSettings().areSignsDisabled())
|
||||
{
|
||||
@@ -86,7 +86,7 @@ public class SignBlockListener implements Listener
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
|
||||
public void onSignChange2(final SignChangeEvent event)
|
||||
public void onSignSignChange2(final SignChangeEvent event)
|
||||
{
|
||||
if (ess.getSettings().areSignsDisabled())
|
||||
{
|
||||
@@ -113,7 +113,7 @@ public class SignBlockListener implements Listener
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onSignChange(final SignChangeEvent event)
|
||||
public void onSignSignChange(final SignChangeEvent event)
|
||||
{
|
||||
if (ess.getSettings().areSignsDisabled())
|
||||
{
|
||||
@@ -138,7 +138,7 @@ public class SignBlockListener implements Listener
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||
public void onBlockPlace(final BlockPlaceEvent event)
|
||||
public void onSignBlockPlace(final BlockPlaceEvent event)
|
||||
{
|
||||
if (ess.getSettings().areSignsDisabled())
|
||||
{
|
||||
@@ -172,7 +172,7 @@ public class SignBlockListener implements Listener
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||
public void onBlockBurn(final BlockBurnEvent event)
|
||||
public void onSignBlockBurn(final BlockBurnEvent event)
|
||||
{
|
||||
if (ess.getSettings().areSignsDisabled())
|
||||
{
|
||||
@@ -201,7 +201,7 @@ public class SignBlockListener implements Listener
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||
public void onBlockIgnite(final BlockIgniteEvent event)
|
||||
public void onSignBlockIgnite(final BlockIgniteEvent event)
|
||||
{
|
||||
if (ess.getSettings().areSignsDisabled())
|
||||
{
|
||||
@@ -230,7 +230,7 @@ public class SignBlockListener implements Listener
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onBlockPistonExtend(final BlockPistonExtendEvent event)
|
||||
public void onSignBlockPistonExtend(final BlockPistonExtendEvent event)
|
||||
{
|
||||
if (ess.getSettings().areSignsDisabled())
|
||||
{
|
||||
@@ -261,7 +261,7 @@ public class SignBlockListener implements Listener
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onBlockPistonRetract(final BlockPistonRetractEvent event)
|
||||
public void onSignBlockPistonRetract(final BlockPistonRetractEvent event)
|
||||
{
|
||||
if (ess.getSettings().areSignsDisabled())
|
||||
{
|
||||
@@ -271,23 +271,33 @@ public class SignBlockListener implements Listener
|
||||
|
||||
if (event.isSticky())
|
||||
{
|
||||
final Block block = event.getBlock();
|
||||
if (((block.getType() == WALL_SIGN
|
||||
|| block.getType() == SIGN_POST)
|
||||
&& EssentialsSign.isValidSign(new EssentialsSign.BlockSign(block)))
|
||||
|| EssentialsSign.checkIfBlockBreaksSigns(block))
|
||||
final Block pistonBaseBlock = event.getBlock();
|
||||
final Block[] affectedBlocks = new Block[]
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
for (EssentialsSign sign : ess.getSettings().enabledSigns())
|
||||
pistonBaseBlock,
|
||||
pistonBaseBlock.getRelative(event.getDirection()),
|
||||
event.getRetractLocation().getBlock()
|
||||
};
|
||||
|
||||
for (Block block : affectedBlocks)
|
||||
{
|
||||
if (sign.areHeavyEventRequired() && sign.getBlocks().contains(block.getType())
|
||||
&& !sign.onBlockPush(block, ess))
|
||||
if (((block.getType() == WALL_SIGN
|
||||
|| block.getType() == SIGN_POST)
|
||||
&& EssentialsSign.isValidSign(new EssentialsSign.BlockSign(block)))
|
||||
|| EssentialsSign.checkIfBlockBreaksSigns(block))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
for (EssentialsSign sign : ess.getSettings().enabledSigns())
|
||||
{
|
||||
if (sign.areHeavyEventRequired() && sign.getBlocks().contains(block.getType())
|
||||
&& !sign.onBlockPush(block, ess))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -20,7 +20,7 @@ public class SignEntityListener implements Listener
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onEntityExplode(final EntityExplodeEvent event)
|
||||
public void onSignEntityExplode(final EntityExplodeEvent event)
|
||||
{
|
||||
if (ess.getSettings().areSignsDisabled())
|
||||
{
|
||||
@@ -50,7 +50,7 @@ public class SignEntityListener implements Listener
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||
public void onEntityChangeBlock(final EntityChangeBlockEvent event)
|
||||
public void onSignEntityChangeBlock(final EntityChangeBlockEvent event)
|
||||
{
|
||||
if (ess.getSettings().areSignsDisabled())
|
||||
{
|
||||
|
@@ -37,6 +37,7 @@ public class SignInfo extends EssentialsSign
|
||||
final IText input;
|
||||
try
|
||||
{
|
||||
player.setDisplayNick();
|
||||
input = new TextInput(player.getSource(), "info", true, ess);
|
||||
final IText output = new KeywordReplacer(input, player.getSource(), ess);
|
||||
final TextPager pager = new TextPager(output);
|
||||
|
@@ -59,10 +59,11 @@ public class SignKit extends EssentialsSign
|
||||
charge.isAffordableFor(player);
|
||||
try
|
||||
{
|
||||
final Map<String, Object> kit = ess.getSettings().getKit(kitName);
|
||||
Kit.checkTime(player, kitName, kit);
|
||||
final List<String> items = Kit.getItems(ess, player, kitName, kit);
|
||||
Kit.expandItems(ess, player, items);
|
||||
final Kit kit = new Kit(kitName, ess);
|
||||
kit.checkDelay(player);
|
||||
kit.setTime(player);
|
||||
kit.expandItems(player);
|
||||
|
||||
charge.charge(player);
|
||||
Trade.log("Sign", "Kit", "Interact", username, null, username, charge, sign.getBlock().getLocation(), ess);
|
||||
}
|
||||
|
@@ -26,7 +26,7 @@ public class SignPlayerListener implements Listener
|
||||
//This is because when the block place is cancelled (for example not enough space for the block to be placed),
|
||||
//the event will be marked as cancelled, thus preventing 30% of sign purchases.
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onPlayerInteract(final PlayerInteractEvent event)
|
||||
public void onSignPlayerInteract(final PlayerInteractEvent event)
|
||||
{
|
||||
if (ess.getSettings().areSignsDisabled())
|
||||
{
|
||||
|
@@ -118,27 +118,39 @@ public class SignTrade extends EssentialsSign
|
||||
@Override
|
||||
protected boolean onSignBreak(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException, MaxMoneyException
|
||||
{
|
||||
if ((sign.getLine(3).length() > 3 && sign.getLine(3).substring(2).equalsIgnoreCase(username))
|
||||
|| player.isAuthorized("essentials.signs.trade.override"))
|
||||
final String signOwner = sign.getLine(3);
|
||||
|
||||
final boolean isOwner = (signOwner.length() > 3 && signOwner.substring(2).equalsIgnoreCase(username));
|
||||
final boolean canBreak = isOwner ? true : player.isAuthorized("essentials.signs.trade.override");
|
||||
final boolean canCollect = isOwner ? true : player.isAuthorized("essentials.signs.trade.override.collect");
|
||||
|
||||
if (canBreak)
|
||||
{
|
||||
try
|
||||
{
|
||||
final Trade stored1 = getTrade(sign, 1, AmountType.TOTAL, false, ess);
|
||||
final Trade stored2 = getTrade(sign, 2, AmountType.TOTAL, false, ess);
|
||||
Map<Integer, ItemStack> withdraw1 = stored1.pay(player, OverflowType.RETURN);
|
||||
Map<Integer, ItemStack> withdraw2 = stored2.pay(player, OverflowType.RETURN);
|
||||
|
||||
if (!canCollect)
|
||||
{
|
||||
Trade.log("Sign", "Trade", "Destroy", signOwner, stored2, username, stored1, sign.getBlock().getLocation(), ess);
|
||||
return true;
|
||||
}
|
||||
|
||||
final Map<Integer, ItemStack> withdraw1 = stored1.pay(player, OverflowType.RETURN);
|
||||
final Map<Integer, ItemStack> withdraw2 = stored2.pay(player, OverflowType.RETURN);
|
||||
|
||||
if (withdraw1 == null && withdraw2 == null)
|
||||
{
|
||||
Trade.log("Sign", "Trade", "Break", username, stored2, username, stored1, sign.getBlock().getLocation(), ess);
|
||||
Trade.log("Sign", "Trade", "Break", signOwner, stored2, username, stored1, sign.getBlock().getLocation(), ess);
|
||||
return true;
|
||||
}
|
||||
|
||||
setAmount(sign, 1, BigDecimal.valueOf(withdraw1 == null ? 0L : withdraw1.get(0).getAmount()), ess);
|
||||
Trade.log("Sign", "Trade", "Withdraw", username, stored1, username, withdraw1 == null ? null : new Trade(withdraw1.get(0), ess), sign.getBlock().getLocation(), ess);
|
||||
Trade.log("Sign", "Trade", "Withdraw", signOwner, stored1, username, withdraw1 == null ? null : new Trade(withdraw1.get(0), ess), sign.getBlock().getLocation(), ess);
|
||||
|
||||
setAmount(sign, 2, BigDecimal.valueOf(withdraw2 == null ? 0L : withdraw2.get(0).getAmount()), ess);
|
||||
Trade.log("Sign", "Trade", "Withdraw", username, stored2, username, withdraw2 == null ? null : new Trade(withdraw2.get(0), ess), sign.getBlock().getLocation(), ess);
|
||||
Trade.log("Sign", "Trade", "Withdraw", signOwner, stored2, username, withdraw2 == null ? null : new Trade(withdraw2.get(0), ess), sign.getBlock().getLocation(), ess);
|
||||
|
||||
sign.updateSign();
|
||||
}
|
||||
|
@@ -66,8 +66,6 @@ public class KeywordReplacer implements IText
|
||||
if (sender.isPlayer())
|
||||
{
|
||||
user = ess.getUser(sender.getPlayer());
|
||||
//This is just so any displayname lookups below show the correct nickname
|
||||
user.setDisplayNick();
|
||||
}
|
||||
execTimer.mark("User Grab");
|
||||
|
||||
@@ -168,14 +166,14 @@ public class KeywordReplacer implements IText
|
||||
break;
|
||||
case ONLINE:
|
||||
int playerHidden = 0;
|
||||
for (Player p : ess.getServer().getOnlinePlayers())
|
||||
for (User u : ess.getOnlineUsers())
|
||||
{
|
||||
if (ess.getUser(p).isHidden())
|
||||
if (u.isHidden())
|
||||
{
|
||||
playerHidden++;
|
||||
}
|
||||
}
|
||||
replacer = Integer.toString(ess.getServer().getOnlinePlayers().length - playerHidden);
|
||||
replacer = Integer.toString(ess.getOnlinePlayers().size() - playerHidden);
|
||||
break;
|
||||
case UNIQUE:
|
||||
replacer = Integer.toString(ess.getUserMap().getUniqueUsers());
|
||||
@@ -207,11 +205,11 @@ public class KeywordReplacer implements IText
|
||||
}
|
||||
else
|
||||
{
|
||||
showHidden = user.isAuthorized("essentials.list.hidden") || user.isAuthorized("essentials.vanish.interact");
|
||||
showHidden = user.isAuthorized("essentials.list.hidden") || user.canInteractVanished();
|
||||
}
|
||||
|
||||
//First lets build the per group playerlist
|
||||
final Map<String, List<User>> playerList = PlayerList.getPlayerLists(ess, showHidden);
|
||||
final Map<String, List<User>> playerList = PlayerList.getPlayerLists(ess, user, showHidden);
|
||||
outputList = new HashMap<String, String>();
|
||||
for (String groupName : playerList.keySet())
|
||||
{
|
||||
@@ -224,7 +222,7 @@ public class KeywordReplacer implements IText
|
||||
|
||||
//Now lets build the all user playerlist
|
||||
final StringBuilder playerlistBuilder = new StringBuilder();
|
||||
for (Player p : ess.getServer().getOnlinePlayers())
|
||||
for (Player p : ess.getOnlinePlayers())
|
||||
{
|
||||
if (ess.getUser(p).isHidden())
|
||||
{
|
||||
|
@@ -9,9 +9,15 @@ import java.util.regex.Pattern;
|
||||
|
||||
public class DateUtil
|
||||
{
|
||||
private static Pattern timePattern = Pattern.compile("(?:([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]*)?)?", Pattern.CASE_INSENSITIVE);
|
||||
|
||||
public static String removeTimePattern(String input)
|
||||
{
|
||||
return timePattern.matcher(input).replaceFirst("").trim();
|
||||
}
|
||||
|
||||
public static long parseDateDiff(String time, boolean future) throws Exception
|
||||
{
|
||||
Pattern timePattern = Pattern.compile("(?:([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]*)?)?", Pattern.CASE_INSENSITIVE);
|
||||
Matcher m = timePattern.matcher(time);
|
||||
int years = 0;
|
||||
int months = 0;
|
||||
|
@@ -61,15 +61,7 @@ public class LocationUtil
|
||||
HOLLOW_MATERIALS.add(Material.FENCE_GATE.getId());
|
||||
HOLLOW_MATERIALS.add(Material.WATER_LILY.getId());
|
||||
HOLLOW_MATERIALS.add(Material.NETHER_WARTS.getId());
|
||||
|
||||
try // 1.6 update
|
||||
{
|
||||
HOLLOW_MATERIALS.add(Material.CARPET.getId());
|
||||
}
|
||||
catch (java.lang.NoSuchFieldError e)
|
||||
{
|
||||
Essentials.wrongVersion();
|
||||
}
|
||||
HOLLOW_MATERIALS.add(Material.CARPET.getId());
|
||||
|
||||
for (Integer integer : HOLLOW_MATERIALS)
|
||||
{
|
||||
@@ -222,6 +214,22 @@ public class LocationUtil
|
||||
return HOLLOW_MATERIALS.contains(world.getBlockAt(x, y - 1, z).getType().getId());
|
||||
}
|
||||
|
||||
public static boolean isBlockUnsafeForUser(final IUser user, final World world, final int x, final int y, final int z)
|
||||
{
|
||||
if (user.getBase().isOnline() && world.equals(user.getBase().getWorld())
|
||||
&& (user.getBase().getGameMode() == GameMode.CREATIVE || user.isGodModeEnabled())
|
||||
&& user.getBase().getAllowFlight())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (isBlockDamaging(world, x, y, z))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return isBlockAboveAir(world, x, y, z);
|
||||
}
|
||||
|
||||
public static boolean isBlockUnsafe(final World world, final int x, final int y, final int z)
|
||||
{
|
||||
if (isBlockDamaging(world, x, y, z))
|
||||
@@ -265,9 +273,9 @@ public class LocationUtil
|
||||
|
||||
public static Location getSafeDestination(final IUser user, final Location loc) throws Exception
|
||||
{
|
||||
if (loc.getWorld().equals(user.getBase().getWorld())
|
||||
&& ((user.getBase().getGameMode() == GameMode.CREATIVE
|
||||
|| user.isGodModeEnabled()) && user.getBase().getAllowFlight()))
|
||||
if (user.getBase().isOnline() && loc.getWorld().equals(user.getBase().getWorld())
|
||||
&& (user.getBase().getGameMode() == GameMode.CREATIVE || user.isGodModeEnabled())
|
||||
&& user.getBase().getAllowFlight())
|
||||
{
|
||||
if (shouldFly(loc))
|
||||
{
|
||||
|
@@ -7,18 +7,19 @@ import java.util.regex.Pattern;
|
||||
public class StringUtil
|
||||
{
|
||||
private static final Pattern INVALIDFILECHARS = Pattern.compile("[^a-z0-9-]");
|
||||
private static final Pattern STRICTINVALIDCHARS = Pattern.compile("[^a-z0-9]");
|
||||
private static final Pattern INVALIDCHARS = Pattern.compile("[^\t\n\r\u0020-\u007E\u0085\u00A0-\uD7FF\uE000-\uFFFC]");
|
||||
|
||||
//Used to clean file names before saving to disk
|
||||
public static String sanitizeFileName(final String name)
|
||||
{
|
||||
return safeString(name);
|
||||
return INVALIDFILECHARS.matcher(name.toLowerCase(Locale.ENGLISH)).replaceAll("_");
|
||||
}
|
||||
|
||||
//Used to clean strings/names before saving as filenames/permissions
|
||||
public static String safeString(final String string)
|
||||
{
|
||||
return INVALIDFILECHARS.matcher(string.toLowerCase(Locale.ENGLISH)).replaceAll("_");
|
||||
return STRICTINVALIDCHARS.matcher(string.toLowerCase(Locale.ENGLISH)).replaceAll("_");
|
||||
}
|
||||
|
||||
//Less restrictive string sanitizing, when not used as perm or filename
|
||||
|
@@ -35,8 +35,8 @@ change-displayname: true
|
||||
# The value of change-displayname (above) has to be true.
|
||||
#change-playerlist: true
|
||||
|
||||
# When essentialschat.jar isn't used, force essentials to add the prefix and suffix from permission plugins to displayname.
|
||||
# This setting is ignored if essentialschat.jar is used, and defaults to 'true'.
|
||||
# When EssentialsChat.jar isn't used, force essentials to add the prefix and suffix from permission plugins to displayname.
|
||||
# This setting is ignored if EssentialsChat.jar is used, and defaults to 'true'.
|
||||
# The value of change-displayname (above) has to be true.
|
||||
# Do not edit this setting unless you know what you are doing!
|
||||
#add-prefix-suffix: false
|
||||
@@ -60,7 +60,7 @@ teleport-invulnerability: 4
|
||||
heal-cooldown: 60
|
||||
|
||||
# What to prevent from /item and /give.
|
||||
# e.g item-spawn-blacklist: 46,11,10
|
||||
# e.g item-spawn-blacklist: 10,11,46
|
||||
item-spawn-blacklist:
|
||||
|
||||
# Set this to true if you want permission based item spawn rules.
|
||||
@@ -86,7 +86,7 @@ spawnmob-limit: 10
|
||||
# Shall we notify users when using /lightning?
|
||||
warn-on-smite: true
|
||||
|
||||
# motd and rules are now configured in the files motd.txt and rules.txt.
|
||||
# The motd and rules are now configured in the files motd.txt and rules.txt.
|
||||
|
||||
# When a command conflicts with another plugin, by default, Essentials will try to force the OTHER plugin to take priority.
|
||||
# Commands in this list, will tell Essentials to 'not give up' the command to other plugins.
|
||||
@@ -94,7 +94,7 @@ warn-on-smite: true
|
||||
#
|
||||
# If you have two plugin with the same command and you wish to force Essentials to take over, you need an alias.
|
||||
# To force essentials to take 'god' alias 'god' to 'egod'.
|
||||
# See http://wiki.bukkit.org/Commands.yml#aliases for more information
|
||||
# See http://wiki.bukkit.org/Commands.yml#aliases for more information.
|
||||
|
||||
overridden-commands:
|
||||
# - god
|
||||
@@ -110,6 +110,7 @@ disabled-commands:
|
||||
# These commands will be shown to players with socialSpy enabled.
|
||||
# You can add commands from other plugins you may want to track or
|
||||
# remove commands that are used for something you dont want to spy on.
|
||||
# Set - '*' in order to listen on all possible commands.
|
||||
socialspy-commands:
|
||||
- msg
|
||||
- w
|
||||
@@ -222,8 +223,9 @@ player-commands:
|
||||
# Note: All items MUST be followed by a quantity!
|
||||
# All kit names should be lower case, and will be treated as lower in permissions/costs.
|
||||
# Syntax: - itemID[:DataValue/Durability] Amount [Enchantment:Level].. [itemmeta:value]...
|
||||
# For Item meta information visit http://wiki.ess3.net/wiki/Item_Meta
|
||||
# For Item Meta information visit http://wiki.ess3.net/wiki/Item_Meta
|
||||
# 'delay' refers to the cooldown between how often you can use each kit, measured in seconds.
|
||||
# Set delay to -1 for a one time kit.
|
||||
# For more information, visit http://wiki.ess3.net/wiki/Kits
|
||||
kits:
|
||||
tools:
|
||||
@@ -258,7 +260,7 @@ kits:
|
||||
# Essentials Sign Control
|
||||
# See http://wiki.ess3.net/wiki/Sign_Tutorial for instructions on how to use these.
|
||||
# To enable signs, remove # symbol. To disable all signs, comment/remove each sign.
|
||||
# Essentials Colored sign support will be enabled when any sign types are enabled.
|
||||
# Essentials colored sign support will be enabled when any sign types are enabled.
|
||||
# Color is not an actual sign, it's for enabling using color codes on signs, when the correct permissions are given.
|
||||
|
||||
enabledSigns:
|
||||
@@ -321,11 +323,11 @@ debug: false
|
||||
# For more information, visit http://wiki.ess3.net/wiki/Locale
|
||||
#locale: en
|
||||
|
||||
# Turn off god mode when people exit.
|
||||
# Turn off god mode when people leave the server.
|
||||
remove-god-on-disconnect: false
|
||||
|
||||
# Auto-AFK
|
||||
# After this timeout in seconds, the user will be set as afk.
|
||||
# After this timeout in seconds, the user will be set as AFK.
|
||||
# This feature requires the player to have essentials.afk.auto node.
|
||||
# Set to -1 for no timeout.
|
||||
auto-afk: 300
|
||||
@@ -336,21 +338,21 @@ auto-afk: 300
|
||||
# Set to -1 for no timeout.
|
||||
auto-afk-kick: -1
|
||||
|
||||
# Set this to true, if you want to freeze the player, if he is afk.
|
||||
# Other players or monsters can't push him out of afk mode then.
|
||||
# This will also enable temporary god mode for the afk player.
|
||||
# The player has to use the command /afk to leave the afk mode.
|
||||
# Set this to true, if you want to freeze the player, if the player is AFK.
|
||||
# Other players or monsters can't push the player out of AFK mode then.
|
||||
# This will also enable temporary god mode for the AFK player.
|
||||
# The player has to use the command /afk to leave the AFK mode.
|
||||
freeze-afk-players: false
|
||||
|
||||
# When the player is afk, should he be able to pickup items?
|
||||
# When the player is AFK, should he be able to pickup items?
|
||||
# Enable this, when you don't want people idling in mob traps.
|
||||
disable-item-pickup-while-afk: false
|
||||
|
||||
# This setting controls if a player is marked as active on interaction.
|
||||
# When this setting is false, you will need to manually un-AFK using the /afk command.
|
||||
# When this setting is false, the player would need to manually un-AFK using the /afk command.
|
||||
cancel-afk-on-interact: true
|
||||
|
||||
# Should we automatically remove afk status when the player moves?
|
||||
# Should we automatically remove afk status when a player moves?
|
||||
# Player will be removed from AFK on chat/command regardless of this setting.
|
||||
# Disable this to reduce server lag.
|
||||
cancel-afk-on-move: true
|
||||
@@ -358,8 +360,9 @@ cancel-afk-on-move: true
|
||||
# You can disable the death messages of Minecraft here.
|
||||
death-messages: true
|
||||
|
||||
# Should operators be able to join and part silently.
|
||||
# You can control this with permissions if it is enabled.
|
||||
# Should players with permissions be able to join and part silently?
|
||||
# You can control this with essentials.silentjoin and essentials.silentquit permissions if it is enabled.
|
||||
# In addition, people with essentials.silentjoin.vanish will be vanished on join.
|
||||
allow-silent-join-quit: false
|
||||
|
||||
# You can set a custom join message here, set to "none" to disable.
|
||||
@@ -399,7 +402,7 @@ repair-enchanted: true
|
||||
# Warning: Mixing and overleveling some enchantments can cause issues with clients, servers and plugins.
|
||||
unsafe-enchantments: false
|
||||
|
||||
#Do you want essentials to keep track of previous location for /back in the teleport listener?
|
||||
#Do you want Essentials to keep track of previous location for /back in the teleport listener?
|
||||
#If you set this to true any plugin that uses teleport will have the previous location registered.
|
||||
register-back-in-listener: false
|
||||
|
||||
@@ -446,8 +449,9 @@ sethome-multiple:
|
||||
staff: 10
|
||||
|
||||
# In this example someone with 'essentials.sethome.multiple' and 'essentials.sethome.multiple.vip' will have 5 homes.
|
||||
# Remember, they MUST have both permission nodes in order to be able to set multiple homes.
|
||||
|
||||
# Set timeout in seconds for players to accept tpa before request is cancelled.
|
||||
# Set the timeout, in seconds for players to accept a tpa before the request is cancelled.
|
||||
# Set to 0 for no timeout.
|
||||
tpa-accept-cancellation: 120
|
||||
|
||||
@@ -459,7 +463,7 @@ tpa-accept-cancellation: 120
|
||||
|
||||
# For more information, visit http://wiki.ess3.net/wiki/Essentials_Economy
|
||||
|
||||
# Defines the balance with which new players begin. Defaults to 0.
|
||||
# Defines the balance with which new players begin. Defaults to 0.
|
||||
starting-balance: 0
|
||||
|
||||
# worth-# defines the value of an item when it is sold to the server via /sell.
|
||||
@@ -474,6 +478,8 @@ command-costs:
|
||||
#kit-tools: 1500
|
||||
|
||||
# Set this to a currency symbol you want to use.
|
||||
# Remember, if you want to use special characters in this document,
|
||||
# such as accented letters, you MUST save the file as UTF-8, not ANSI.
|
||||
currency-symbol: '$'
|
||||
|
||||
# Set the maximum amount of money a player can have.
|
||||
@@ -508,7 +514,7 @@ hide-permissionless-help: true
|
||||
# +------------------------------------------------------+ #
|
||||
############################################################
|
||||
|
||||
# This section requires essentialschat.jar to work.
|
||||
# This section requires the EssentialsChat.jar to work.
|
||||
|
||||
chat:
|
||||
|
||||
@@ -521,7 +527,6 @@ chat:
|
||||
|
||||
# Chat formatting can be done in two ways, you can either define a standard format for all chat.
|
||||
# Or you can give a group specific chat format, to give some extra variation.
|
||||
# If set to the default chat format which "should" be compatible with ichat.
|
||||
# For more information of chat formatting, check out the wiki: http://wiki.ess3.net/wiki/Chat_Formatting
|
||||
|
||||
format: '<{DISPLAYNAME}> {MESSAGE}'
|
||||
@@ -539,7 +544,7 @@ chat:
|
||||
# +------------------------------------------------------+ #
|
||||
############################################################
|
||||
|
||||
# This section requires essentialsprotect.jar to work.
|
||||
# This section requires the EssentialsProtect.jar to work.
|
||||
|
||||
protect:
|
||||
|
||||
@@ -654,7 +659,7 @@ protect:
|
||||
# +------------------------------------------------------+ #
|
||||
############################################################
|
||||
|
||||
# This section requires essentialsantibuild.jar to work.
|
||||
# This section requires the EssentialsAntiBuild.jar to work.
|
||||
|
||||
# Disable various default physics and behaviors
|
||||
# For more information, visit http://wiki.ess3.net/wiki/AntiBuild
|
||||
@@ -729,4 +734,4 @@ respawn-listener-priority: high
|
||||
# When users die, should they respawn at their first home or bed, instead of the spawnpoint?
|
||||
respawn-at-home: false
|
||||
|
||||
# End of File <-- No seriously, you're done with configuration.
|
||||
# End of file <-- No seriously, you're done with configuration.
|
||||
|
@@ -53,4 +53,4 @@ Minecraft colors:
|
||||
&6Time of world:&r {WORLDTIME24}
|
||||
&6Date of world:&r {WORLDDATE}
|
||||
&6Plugin list:&r {PLUGINS}
|
||||
&6Version of Craftbukkit:&r {VERSION}
|
||||
&6Version of CraftBukkit:&r {VERSION}
|
||||
|
@@ -4579,15 +4579,27 @@ salmonfish,349,1
|
||||
rawsalmon,349,1
|
||||
rasalmon,349,1
|
||||
salmon,349,1
|
||||
sfish,349,1
|
||||
fishs,349,1
|
||||
rawclownfish,349,2
|
||||
raclownfish,349,2
|
||||
clownfish,349,2
|
||||
rawnemo,349,2
|
||||
ranemo,349,2
|
||||
nemo,349,2
|
||||
nemofish,349,2
|
||||
fishnemo,349,2
|
||||
clfish,349,2
|
||||
fishcl,349,2
|
||||
nfish,349,2
|
||||
fishn,349,2
|
||||
rawpufferfish,349,3
|
||||
rapufferfish,349,3
|
||||
pufferfish,349,3
|
||||
pufffish,349,3
|
||||
fishpuff,349,3
|
||||
pfish,349,3
|
||||
fishp,349,3
|
||||
cookedfish,350,0
|
||||
cookfish,350,0
|
||||
cfish,350,0
|
||||
|
|
@@ -27,7 +27,7 @@ balance=\u00a7aBalance\:\u00a7c {0}
|
||||
balanceOther=\u00a7aBalance of {0}\u00a7a\:\u00a7c {1}
|
||||
balanceTop=\u00a76Top balances ({0})
|
||||
banExempt=\u00a74You cannot ban that player.
|
||||
banFormat=\u00a74Banned\:\n\u00a7r{0}
|
||||
banFormat=\u00a7cYou have been banned\:\n\u00a7r{0}
|
||||
bed=\u00a7obed\u00a7r
|
||||
bedMissing=\u00a74Your bed is either unset, missing or blocked.
|
||||
bedNull=\u00a7mbed\u00a7r
|
||||
@@ -99,7 +99,7 @@ enchantmentNotFound=\u00a74Enchantment not found\!
|
||||
enchantmentPerm=\u00a74You do not have the permission for\u00a7c {0}\u00a74.
|
||||
enchantmentRemoved=\u00a76The enchantment\u00a7c {0} \u00a76has been removed from your item in hand.
|
||||
enchantments=\u00a76Enchantments\:\u00a7r {0}
|
||||
errorCallingCommand=Error calling command /{0}.
|
||||
errorCallingCommand=Error calling the command /{0}
|
||||
errorWithMessage=\u00a7cError\:\u00a74 {0}
|
||||
essentialsHelp1=The file is broken and Essentials can''t open it. Essentials is now disabled. If you can''t fix the file yourself, go to http\://tiny.cc/EssentialsChat
|
||||
essentialsHelp2=The file is broken and Essentials can''t open it. Essentials is now disabled. If you can''t fix the file yourself, either type /essentialshelp in game or go to http\://tiny.cc/EssentialsChat
|
||||
@@ -129,7 +129,7 @@ gcmax=\u00a76Maximum memory\:\u00a7c {0} MB.
|
||||
gctotal=\u00a76Allocated memory\:\u00a7c {0} MB.
|
||||
geoIpUrlEmpty=GeoIP download url is empty.
|
||||
geoIpUrlInvalid=GeoIP download url is invalid.
|
||||
geoipJoinFormat=\u00a76Player \u00a7c{0} \u00a76comes from\u00a7c {1}\u00a76.
|
||||
geoipJoinFormat=\u00a76Player \u00a7c{0} \u00a76comes from \u00a7c{1}\u00a76.
|
||||
giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
|
||||
godDisabledFor=\u00a7cdisabled\u00a76 for\u00a7c {0}
|
||||
godEnabledFor=\u00a7aenabled\u00a76 for\u00a7c {0}
|
||||
@@ -155,7 +155,7 @@ holdBook=\u00a74You are not holding a writable book.
|
||||
holdFirework=\u00a74You must be holding a firework to add effects.
|
||||
holdPotion=\u00a74You must be holding a potion to apply effects to it.
|
||||
holeInFloor=\u00a74Hole in floor\!
|
||||
homeSet=\u00a76Home set.
|
||||
homeSet=\u00a76Home set to current location.
|
||||
homes=\u00a76Homes\:\u00a7r {0}
|
||||
hour=hour
|
||||
hours=hours
|
||||
@@ -321,8 +321,8 @@ pWeatherPlayers=\u00a76These players have their own weather\:\u00a7r
|
||||
pWeatherReset=\u00a76Player weather has been reset for\: \u00a7c{0}
|
||||
pWeatherSet=\u00a76Player weather is set to \u00a7c{0}\u00a76 for\: \u00a7c{1}.
|
||||
pendingTeleportCancelled=\u00a74Pending teleportation request cancelled.
|
||||
playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address\:\u00a7c {1}\u00a76.
|
||||
playerBanned=\u00a76Player\u00a7c {0} \u00a76banned\u00a7c {1} \u00a76for \u00a7c{2}\u00a76.
|
||||
playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address\u00a7c {1} \u00a76for\: \u00a7c{2}\u00a76.
|
||||
playerBanned=\u00a76Player\u00a7c {0} \u00a76banned\u00a7c {1} \u00a76for\: \u00a7c{2}\u00a76.
|
||||
playerInJail=\u00a74Player is already in jail\u00a7c {0}\u00a74.
|
||||
playerJailed=\u00a76Player\u00a7c {0} \u00a76jailed.
|
||||
playerJailedFor=\u00a76Player\u00a7c {0} \u00a76jailed for {1}.
|
||||
@@ -345,7 +345,7 @@ potions=\u00a76Potions\:\u00a7r {0}\u00a76.
|
||||
powerToolAir=\u00a74Command can''t be attached to air.
|
||||
powerToolAlreadySet=\u00a74Command \u00a7c{0}\u00a74 is already assigned to \u00a7c{1}\u00a74.
|
||||
powerToolAttach=\u00a7c{0}\u00a76 command assigned to {1}.
|
||||
powerToolClearAll=\u00a76All power tool commands have been cleared.
|
||||
powerToolClearAll=\u00a76All powertool commands have been cleared.
|
||||
powerToolList=\u00a76Item \u00a7c{1} \u00a76has the following commands\: \u00a7c{0}\u00a76.
|
||||
powerToolListEmpty=\u00a74Item \u00a7c{0} \u00a74has no commands assigned.
|
||||
powerToolNoSuchCommandAssigned=\u00a74Command \u00a7c{0}\u00a74 has not been assigned to \u00a7c{1}\u00a74.
|
||||
@@ -404,7 +404,7 @@ soloMob=\u00a74That mob likes to be alone.
|
||||
spawnSet=\u00a76Spawn location set for group\u00a7c {0}\u00a76.
|
||||
spawned=spawned
|
||||
sudoExempt=\u00a74You cannot sudo this user.
|
||||
sudoRun=\u00a76Forcing\u00a7c {0} \u00a76to run\:\u00a7r /{1} {2}
|
||||
sudoRun=\u00a76Forcing\u00a7c {0} \u00a76to run\:\u00a7r /{1}
|
||||
suicideMessage=\u00a76Goodbye cruel world...
|
||||
suicideSuccess=\u00a76Player \u00a7c{0} \u00a76took their own life.
|
||||
survival=survival
|
||||
@@ -420,12 +420,13 @@ teleportRequest=\u00a7c{0}\u00a76 has requested to teleport to you.
|
||||
teleportRequestTimeoutInfo=\u00a76This request will timeout after\u00a7c {0} seconds\u00a76.
|
||||
teleportTop=\u00a76Teleporting to top.
|
||||
teleportationCommencing=\u00a76Teleportation commencing...
|
||||
teleportationDisabled=\u00a76Teleportation disabled.
|
||||
teleportationDisabledFor=\u00a76Teleportation disabled for \u00a7c{0}\u00a76.
|
||||
teleportationEnabled=\u00a76Teleportation enabled.
|
||||
teleportationEnabledFor=\u00a76Teleportation enabled for \u00a7c{0}\u00a76.
|
||||
teleportationDisabled=\u00a76Teleportation \u00a7cdisabled\u00a76.
|
||||
teleportationDisabledFor=\u00a76Teleportation \u00a7cdisabled \u00a76for \u00a7c{0}\u00a76.
|
||||
teleportationEnabled=\u00a76Teleportation \u00a7cenabled\u00a76.
|
||||
teleportationEnabledFor=\u00a76Teleportation \u00a7cenabled \u00a76for \u00a7c{0}\u00a76.
|
||||
teleporting=\u00a76Teleporting...
|
||||
tempBanned=Temporarily banned from server for {0}.
|
||||
teleportToPlayer=\u00a76Teleporting to \u00a7c{0}\u00a76.
|
||||
tempBanned=\u00a7cYou have been temporarily banned for {0}\:\n\u00a7r{2}
|
||||
tempbanExempt=\u00a74You may not tempban that player.
|
||||
thunder=\u00a76You\u00a7c {0} \u00a76thunder in your world.
|
||||
thunderDuration=\u00a76You\u00a7c {0} \u00a76thunder in your world for\u00a7c {1} \u00a76seconds.
|
||||
@@ -473,7 +474,7 @@ voiceSilenced=\u00a76Your voice has been silenced\!
|
||||
walking=walking
|
||||
warpDeleteError=\u00a74Problem deleting the warp file.
|
||||
warpList={0}
|
||||
warpListPermission=\u00a74You do not have Permission to list warps.
|
||||
warpListPermission=\u00a74You do not have permission to list warps.
|
||||
warpNotExist=\u00a74That warp does not exist.
|
||||
warpOverwrite=\u00a74You cannot overwrite that warp.
|
||||
warpSet=\u00a76Warp\u00a7c {0} \u00a76set.
|
||||
@@ -531,19 +532,26 @@ banExemptOffline=\u00a74You may not ban offline players.
|
||||
tempbanExemptOffline=\u00a74You may not tempban offline players.
|
||||
mayNotJailOffline=\u00a74You may not jail offline players.
|
||||
muteExemptOffline=\u00a74You may not mute offline players.
|
||||
ignoreExempt=\u00a74You cannot ignore that player.
|
||||
ignoreExempt=\u00a74You may not ignore that player.
|
||||
unsafeTeleportDestination=\u00a74The teleport destination is unsafe and teleport-safety is disabled.
|
||||
noMetaJson=JSON Metadata is not supported in this version of Bukkit.
|
||||
maxMoney=\u00a74This transaction would exceed the balance limit for this account.
|
||||
skullChanged=\u00a76Skull changed to \u00a7c{0}.\u00a76.
|
||||
skullChanged=\u00a76Skull changed to \u00a7c{0}\u00a76.
|
||||
alphaNames=\u00a74Player names can only contain letters, numbers and underscores.
|
||||
givenSkull=\u00a76You have been given the skull of \u00a7c{0}\u00a76.
|
||||
noPermissionSkull=\u00a74You do not have permission to modify that skull.
|
||||
teleportInvalidLocation=Value of coordinates cannot be over 30000000
|
||||
invalidSkull=\u00a74Please hold a player skull.
|
||||
weatherInvalidWorld=World named {0} not found!
|
||||
weatherInvalidWorld=World named {0} not found\!
|
||||
gameModeInvalid=\u00a74You need to specify a valid player/mode.
|
||||
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000 characters.
|
||||
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
|
||||
seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
|
||||
seenAccounts=\u00a76Player has also been known as\:\u00a7c {0}
|
||||
unableToSpawnItem=\u00a74Cannot spawn \u00a7c{0}\u00a74, this is not a spawnable item.
|
||||
itemsConverted=\u00a76Converted all items into blocks.
|
||||
itemsNotConverted=\u00a74You have no items that can be converted into blocks.
|
||||
mailSentTo=\u00a7c{0}\u00a76 has been sent the following mail\:
|
||||
mailMessage={0}
|
||||
whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0}
|
||||
playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76.
|
||||
mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1}
|
||||
|
@@ -92,7 +92,7 @@ downloadingGeoIp=Stahuji GeoIP databazi ... muze to chvilku trvat (staty\: 0.6 M
|
||||
duplicatedUserdata=Duplikovane data hrace\: {0} and {1}
|
||||
durability=\u00a77Tomuto nastroji zbyva \u00a7c{0}\u00a77 pouziti.
|
||||
editBookContents=\u00a7eNyni muzes upravovat obsah teto knihy.
|
||||
enableUnlimited=\u00a77Davam neomezene mnozstvi {0} hraci {1}.
|
||||
enableUnlimited=\u00a76D\u00e1t neomezen\u00e9 mno\u017estv\u00ed\u00a7c {0} \u00a76na \u00a7c{1}\u00a76.
|
||||
enabled=povoleno
|
||||
enchantmentApplied=\u00a77Enchant {0} byl aplikovan na tvuj nastroj v ruce.
|
||||
enchantmentNotFound=\u00a7cTento enchant neexistuje
|
||||
@@ -103,7 +103,7 @@ errorCallingCommand=Chyba pri volani prikazu /{0}
|
||||
errorWithMessage=\u00a7cChyba\: {0}
|
||||
essentialsHelp1=Soubor je poskozen a Essentials jej nemuze otevrit. Essentials jsou zablokovany. Pokud nemuzete soubor opravit sami, navstivte http\://tiny.cc/EssentialsChat
|
||||
essentialsHelp2=Soubor je poskozen a Essentials jej nemuze otevrit. Essentials jsou zablokovany. Pokud nemuzete soubor opravit sami, pak napiste /essentialshelp ve hre nebo navstivte http\://tiny.cc/EssentialsChat
|
||||
essentialsReload=\u00a77Essentials znovu nacteny. {0}
|
||||
essentialsReload=\u00a76Essentials restartovan\u00fd\u00a7c {0}.
|
||||
exp=\u00a7c{0} \u00a77ma\u00a7c {1} \u00a77exp (level\u00a7c {2}\u00a77) a potrebuje\u00a7c {3} \u00a77 exp aby dosahl dalsiho levelu.
|
||||
expSet=\u00a7c{0} \u00a77ma nyni\u00a7c {1} \u00a77exp.
|
||||
extinguish=\u00a77Uhasil ses.
|
||||
@@ -113,7 +113,7 @@ failedToCreateConfig=Chyba pri vytvoreni configu {0}
|
||||
failedToWriteConfig=Chyba pri zapisovani do configu {0}
|
||||
false=\u00a74Ne\u00a7f
|
||||
feed=\u00a77Nasytil jsi se.
|
||||
feedOther=\u00a77Nasytil jsi hrace {0}.
|
||||
feedOther=\u00a76Nasytil jsi hrace \u00a7c{0}\u00a76.
|
||||
fileRenameError=Prejmenovani souboru {0} selhalo.
|
||||
fireworkColor=\u00a74Vlozeny neplatne parametry, nejprve musis nastavit barvu.
|
||||
fireworkEffectsCleared=\u00a76Vsechny efekty byly odstraneny.
|
||||
@@ -122,7 +122,7 @@ flyMode=\u00a77Povolil jsi letani hraci {0} hraci {1}.
|
||||
flying=letani
|
||||
foreverAlone=\u00a7cNemas komu odepsat.
|
||||
fullStack=\u00a74Jiz mas cely stack.
|
||||
gameMode=\u00a77Nastavil jsi herni mod na {0} hraci {1}.
|
||||
gameMode=\u00a76Herni mod hrace \u00a7c{1} \u00a76byl nastaven na \u00a7c {0}\u00a76.
|
||||
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76"\: \u00a7c{2}\u00a76 chunku, \u00a7c{3}\u00a76 entit, \u00a7c{4}\u00a76 tile-entit.
|
||||
gcfree=Volna pamet\: {0} MB
|
||||
gcmax=Dostupna pamet\: {0} MB
|
||||
@@ -131,7 +131,7 @@ geoIpUrlEmpty=Odkaz na stazeni GeoIP je prazdny.
|
||||
geoIpUrlInvalid=Odkaz na stazeni GeoIP je chybny.
|
||||
geoipJoinFormat=Hrac {0} prichazi z {1}
|
||||
giveSpawn=\u00a76Dal jsi\u00a7c {0} \u00a76\u00a7c {1} hraci\u00a7c {2}\u00a76.
|
||||
godDisabledFor=zakazan pro {0}
|
||||
godDisabledFor=\u00a7cvypnuto\u00a76 pro\u00a7c {0}
|
||||
godEnabledFor=povolen pro {0}
|
||||
godMode=\u00a76Nesmrtelnost\u00a7c {0}\u00a76.
|
||||
groupDoesNotExist=\u00a74Nikdo z teto skupiny neni online\!
|
||||
@@ -168,10 +168,10 @@ infoPages=\u00a7e ---- \u00a76{2} \u00a7e--\u00a76 Strana \u00a74{0}\u00a76/\u00
|
||||
infoUnknownChapter=\u00a74Neznama kapitola.
|
||||
insufficientFunds=\u00a74Nemas k dispozici dostatek hotovosti.
|
||||
invalidCharge=\u00a7cNeplatny poplatek.
|
||||
invalidFireworkFormat=\u00a76Nastaveni \u00a74{0} \u00a76nema platnou hodnotu pro \u00a74{1}\u00a76.
|
||||
invalidFireworkFormat=\u00a74Nastaveni \u00a7c{0} \u00a74neni platna hodnota pro \u00a7c{1}\u00a74.
|
||||
invalidHome=Domov {0} neexistuje.
|
||||
invalidHomeName=\u00a74Spatny nazev domova
|
||||
invalidMob=\u00a74Invalid mob type.
|
||||
invalidMob=\u00a74Neplatny druh moba
|
||||
invalidNumber=Neplatne cislo.
|
||||
invalidPotion=\u00a74Nespravny lektvar.
|
||||
invalidPotionMeta=\u00a74Nespravna metadata lektvaru\: \u00a7c{0}\u00a74.
|
||||
@@ -203,11 +203,11 @@ kickDefault=Vyhozen ze serveru
|
||||
kickExempt=\u00a7cNemuzes vyhodit tuhle osobu.
|
||||
kickedAll=\u00a74Vykopl jsi vsechny hrace ze serveru.
|
||||
kill=\u00a77Zabit {0}.
|
||||
killExempt=\u00a74Nemuzes zabit hrace {0}
|
||||
killExempt=\u00a74Nemuzes zabit hrace \u00a7c{0}\u00a74.
|
||||
kitCost=\ \u00a77\u00a7o({0})\u00a7r
|
||||
kitError2=\u00a7cTento kit neexistuje, nebo je chybne definovan.
|
||||
kitError=\u00a7cNejsou zadne validni kity.
|
||||
kitGiveTo=\u00a76Davam kit\u00a7c {0}\u00a76 hraci {1}\u00a7.
|
||||
kitGiveTo=\u00a76Davam kit \u00a7c {0}\u00a76 hraci \u00a7c{1}\u00a76.
|
||||
kitInvFull=\u00a7cMel jsi plny inventar, obsah kitu je na zemi.
|
||||
kitNotFound=\u00a74Tento kit neexistuje.
|
||||
kitOnce=\u00a74Jiz nemuzes tento kit pouzivat.
|
||||
@@ -224,10 +224,10 @@ listGroupTag=\u00a76{0}\u00a7r\: \u00a7r
|
||||
listHiddenTag=\u00a77[SKRYTY]\u00a7f
|
||||
loadWarpError=Chyba pri nacitani warpu\: {0}
|
||||
localFormat=[L]<{0}> {1}
|
||||
mailClear=\u00a7cPokud chces vymazat mail, napis /mail clear.
|
||||
mailClear=\u00a76Pokud chces vymazat mail, napis\u00a7c /mail clear\u00a76.
|
||||
mailCleared=\u00a77Mail vymazan\!
|
||||
mailSent=\u00a77Mail odeslan\!
|
||||
markMailAsRead=\u00a7cPokud chces mail oznacit jako precteny, napis /mail clear
|
||||
markMailAsRead=\u00a76Pokud chces vymazat mail, napis\u00a7c /mail clear\u00a76.
|
||||
markedAsAway=\u00a77Jsi oznacen jako "AFK".
|
||||
markedAsNotAway=\u00a77Jiz nejsi oznacen jako "AFK".
|
||||
matchingIPAddress=\u00a76Nasledujici hraci byli prihlaseni z teto IP\:
|
||||
@@ -236,7 +236,7 @@ mayNotJail=\u00a7cNesmis uveznit tuto postavu
|
||||
me=ja
|
||||
minute=minuta
|
||||
minutes=minuty
|
||||
missingItems=Nemas {0}x {1}.
|
||||
missingItems=\u00a74Nemas \u00a7c{0}x {1}\u00a74.
|
||||
mobSpawnError=Chyba pri pokusu o zmenu mob spawneru.
|
||||
mobSpawnLimit=Pocet mobu limitovan serverem.
|
||||
mobSpawnTarget=Musis se divat na spawner.
|
||||
@@ -246,8 +246,8 @@ moneySentTo=\u00a7a{0} bylo odeslano hraci\: {1}
|
||||
month=mesic
|
||||
months=mesice
|
||||
moreThanZero=Mnozstvi musi byt vetsi nez 0.
|
||||
moveSpeed=\u00a77Nastavena rychlost {0} na {1} hraci {2}.
|
||||
msgFormat=\u00a76[{0}\u00a76 -> {1}\u00a76] \u00a7r{2}
|
||||
moveSpeed=\u00a76Nastavena \u00a7c{0} \u00a76rychlost hrace \u00a7c{2} \u00a76na \u00a7c{1}\u00a76.
|
||||
msgFormat=\u00a76[\u00a7c{0}\u00a76 -> \u00a7c{1}\u00a76] \u00a7r{2}
|
||||
multipleCharges=\u00a74Nelze pouzit vice jak jeden naboj pro tento ohnostroj.
|
||||
multiplePotionEffects=\u00a74Nelze pouzit vice jak jeden efekt na tento lektvar.
|
||||
muteExempt=\u00a7cTohoto hrace nemuzes umlcet.
|
||||
@@ -262,12 +262,12 @@ nickDisplayName=\u00a77Musis nejdrive povolit change-displayname v Essentials co
|
||||
nickInUse=\u00a7cTento nick jiz nekdo ma.
|
||||
nickNamesAlpha=\u00a7cNick musi byt alfanumericky.
|
||||
nickNoMore=\u00a77Uz nemas zadny nick.
|
||||
nickSet=\u00a77Nyni mas nickname\: \u00a7c{0}
|
||||
nickSet=\u00a76Tvuj nick je nyni \u00a7c{0}\u00a76.
|
||||
nickTooLong=\u00a74Tento nick je prilis dlouhy.
|
||||
noAccessCommand=\u00a7cNemas povoleni na tento prikaz.
|
||||
noAccessPermission=\u00a7cNemas povoleni k tomuto {0}.
|
||||
noAccessPermission=\u00a74Nem\u00e1\u0161 opr\u00e1vn\u011bn\u00ed k tomuto \u00a7c{0}\u00a74.
|
||||
noBreakBedrock=Nemas opravneni nicit bedrock.
|
||||
noDestroyPermission=\u00a7cNemas povoleni nicit ten {0}.
|
||||
noDestroyPermission=\u00a74Ty nem\u016f\u017ee\u0161 ni\u010dit \u00a7c{0}\u00a74.
|
||||
noDurability=\u00a7cTento predmet nema zadnou vydrz.
|
||||
noGodWorldWarning=\u00a7cVarovani\! God-mode je v tomto svete zakazan.
|
||||
noHelpFound=\u00a7cZadne shodujici prikazy.
|
||||
@@ -300,8 +300,8 @@ now=nyni
|
||||
nuke=Prsi na tebe smrt \:)
|
||||
numberRequired=Hlupaku, musis vyplnit cislo.
|
||||
onlyDayNight=/time podporuje pouze day/night.
|
||||
onlyPlayerSkulls=\u00a74Muze nastavit pouze majitel hrackych hlav (397\:3).
|
||||
onlyPlayers=Pouze hraci ve hre mohou pouzit\: {0}.
|
||||
onlyPlayerSkulls=\u00a74M\u016f\u017ee nastavit pouze majitel hlavy hr\u00e1\u010de (\u00a7c397\:3\u00a74).
|
||||
onlyPlayers=\u00a74Jen hraci ve hre muzou pouzit \u00a7c{0}\u00a74.
|
||||
onlySunStorm=/weather podporuje pouze sun/storm.
|
||||
orderBalances=Usporadavam bohatstvi {0} hracu, prosim vydrz ...
|
||||
oversizedTempban=\u00a74Nemuzes potrestat hrace ne tak dlouhou dobu.
|
||||
@@ -321,9 +321,9 @@ pWeatherPlayers=\u00a76Tito hraci maji sve vlastni pocasi\:\u00a7r
|
||||
pWeatherReset=\u00a76Hracovo pocasi bylo resetovano na\: \u00a7c{0}
|
||||
pWeatherSet=\u00a76Pocasi pro hrace \u00a7c{1}\u00a76 bylo nastaveno na\: \u00a7c{0}.
|
||||
pendingTeleportCancelled=\u00a7cNevyresena zadost o teleportaci byla zrusena.
|
||||
playerBanIpAddress=\u00a76Hraci\u00a7c {0} \u00a76byla zabanovana IP adresa {1}\u00a76.
|
||||
playerBanned=\u00a76Admin\u00a7c {0} \u00a76zabanoval {1} \u00a76za {2}.
|
||||
playerInJail=\u00a7cHrac je jiz uveznen {0}.
|
||||
playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address\u00a7c {1} \u00a76for\: \u00a7c{2}\u00a76.
|
||||
playerBanned=\u00a76Hr\u00e1\u010d\u00a7c {0} \u00a76byl potrest\u00e1n\u00a7c {1} \u00a76za \u00a7c{2}\u00a76.
|
||||
playerInJail=\u00a74Hr\u00e1\u010d u\u017e je ve v\u011bzen\u00ed\u00a7c {0}\u00a74.
|
||||
playerJailed=\u00a77Hrac {0} byl uveznen.
|
||||
playerJailedFor=\u00a77Hrac {0} uveznen za {1}.
|
||||
playerKicked=\u00a7cAdmin {0} vyhodil {1} za {2}
|
||||
@@ -340,33 +340,33 @@ posX=\u00a76X\: {0} (+Vychod <-> -Zapad)
|
||||
posY=\u00a76Y\: {0} (+Nahoru <-> -Dolu)
|
||||
posYaw=\u00a76Odchylka\: {0}
|
||||
posZ=\u00a76Z\: {0} (+Jih <-> -Sever)
|
||||
possibleWorlds=\u00a77Mozne svety jsou cisla 0 az {0}.
|
||||
possibleWorlds=\u00a76Mozne svety jsou cisla v rozmezi \u00a7c0\u00a76 - \u00a7c{0}\u00a76.
|
||||
potions=\u00a7 6 \u00a76Lektvary\:\u00a7r {0}.
|
||||
powerToolAir=Prikaz nemuze byt spojen se vzduchem.
|
||||
powerToolAlreadySet=Prikaz \u00a7c{0}\u00a7f je jiz spojen s {1}.
|
||||
powerToolAlreadySet=\u00a74Prikaz \u00a7c{0}\u00a74 jiz je prirazen \u00a7c{1}\u00a74.
|
||||
powerToolAttach=\u00a7c{0}\u00a7f prikaz pripsan k {1}.
|
||||
powerToolClearAll=Vsechny mocne nastroje byli smazany.
|
||||
powerToolList=Hrac {1} ma tyto prikazy\: \u00a7c{0}\u00a7f.
|
||||
powerToolListEmpty={0} nema pripsany zadne prikazy.
|
||||
powerToolNoSuchCommandAssigned=Prikaz \u00a7c{0}\u00a7f nebyl pripsan k {1}.
|
||||
powerToolRemove=Prikaz \u00a7c{0}\u00a7f odstranen z {1}.
|
||||
powerToolRemoveAll=Vsechny prikazy zruseny od {0}.
|
||||
powerToolNoSuchCommandAssigned=\u00a74Prikaz \u00a7c{0}\u00a74 neni prirazen \u00a7c{1}\u00a74.
|
||||
powerToolRemove=\u00a76Prikaz \u00a7c{0}\u00a76 odstranen z \u00a7c{1}\u00a76.
|
||||
powerToolRemoveAll=\u00a76Vsechny prikazy byly odstraneny z \u00a7c{0}\u00a76.
|
||||
powerToolsDisabled=Vsechny tve mocne nastroje byli zablokovany.
|
||||
powerToolsEnabled=Vsechny tve mocne nastroje byli povoleny.
|
||||
questionFormat=\u00a77[Otazka]\u00a7f {0}
|
||||
readNextPage=Napis /{0} {1} pro precteni dalsi stranky.
|
||||
recipe=\u00a76Recept na \u00a76{0}&6 ({1} z {2})
|
||||
recipe=\u00a76Vypis receptu \u00a7c{0}\u00a76 (\u00a7c{1}\u00a76 z \u00a7c{2}\u00a76)
|
||||
recipeBadIndex=Pro toto cislo neexistuje zadny recept.
|
||||
recipeFurnace=\u00a76Prepal \u00a7c{0}
|
||||
recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
|
||||
recipeGridItem=\u00a0\u00a7{0}X \u00a76is \u00a7c{1}
|
||||
recipeFurnace=\u00a76Prepal\: \u00a7 6 \u00a7c {0}.
|
||||
recipeGrid=\u00a7c{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
|
||||
recipeGridItem=\u00a7c X \u00a76je \u00a7c {0} {1}
|
||||
recipeMore=\u00a76Pouzij /{0} \u00a7c{1}\u00a76 <cislo> pro zobrazeni dalsich receptu pro \u00a7c{2}\u00a76.
|
||||
recipeNone=Zadny recept na {0} neexistuje
|
||||
recipeNothing=neni
|
||||
recipeShapeless=\u00a76Zkombinuj \u00a7c{0}
|
||||
recipeWhere=\u00a76Kde\: {0}
|
||||
removed=\u00a77Odstraneno {0} entitit.
|
||||
repair=Uspesne jsi opravil svuj nastroj\: \u00a7e{0}.
|
||||
repair=\u00a76Uspesne jsi opravil tvoji \u00a7c{0}\u00a76.
|
||||
repairAlreadyFixed=\u00a77Tento item nepotrebuje opravu.
|
||||
repairEnchanted=\u00a77Nemas opravneni opravovat enchantovane itemy.
|
||||
repairInvalidType=\u00a7cTento item nemuze byt opraven.
|
||||
@@ -378,19 +378,19 @@ requestDeniedFrom=\u00a77{0} odmitl tvou zadost o teleport.
|
||||
requestSent=\u00a77Zadost odeslana hraci {0}\u00a77.
|
||||
requestTimedOut=\u00a7cZadost o teleportaci vyprsela.
|
||||
requiredBukkit=* \! * Potrebujete minimalne verzi {0} Bukkitu, stahnete si ji z http\://dl.bukkit.org/downloads/craftbukkit/
|
||||
resetBal=\u00a76Hotovost vsech online hracu byla resetovana na \u00a7a{0}\u00a76.
|
||||
resetBalAll=\u00a76Hotovost vsech online hracu byla resetovana na \u00a7a{0}\u00a76.
|
||||
returnPlayerToJailError=Nastala chyba pri pokusu navraceni hrace {0} do vezeni\: {1}
|
||||
resetBal=\u00a76Hotovost vsech online hracu byla resetovana na \u00a7c{0}\u00a76.
|
||||
resetBalAll=\u00a76Hotovost vsech hracu byla resetovana na \u00a7c{0}\u00a76.
|
||||
returnPlayerToJailError=\u00a74Nastala chyba pri pokusu navratit hrace \u00a7c{0}\u00a74 do vezeni\: \u00a7c{1}\u00a74\!
|
||||
runningPlayerMatch=\u00a76Zahajeno hledani odpovidajicich hracu ''\u00a7c{0}\u00a76'' (..muze to chvilku trvat...)
|
||||
second=sekunda
|
||||
seconds=sekundy
|
||||
seenOffline=Hrac {0} je offline od {1}
|
||||
seenOnline=Hrac {0} je online od {1}
|
||||
seenOffline=\u00a76Hrac \u00a7c{0} \u00a76je \u00a74offline\u00a76 od \u00a7c{1}\u00a76.
|
||||
seenOnline=\u00a76Hrac \u00a7c{0} \u00a76je \u00a7aonline\u00a76 od \u00a7c{1}\u00a76.
|
||||
serverFull=Server je plny
|
||||
serverTotal=Maximum serveru\: {0}
|
||||
setBal=\u00a7aTva hotovost byla nastavena na {0}.
|
||||
setBalOthers=\u00a7aHotovost hrace {0}\u00a7a nastavena na {1}.
|
||||
setSpawner=Zmenil jsi spawner na\: {0}
|
||||
setSpawner=\u00a76Typ spawneru zmenen na\u00a7c {0}\u00a76.
|
||||
sheepMalformedColor=Deformovana barva.
|
||||
shoutFormat=\u00a77[Shout]\u00a7f {0}
|
||||
signFormatFail=\u00a74[{0}]
|
||||
@@ -399,12 +399,12 @@ signFormatTemplate=[{0}]
|
||||
signProtectInvalidLocation=\u00a74Nemas opravneni zde vytvaret cedule.
|
||||
similarWarpExist=Warp s podobnym nebo stejnym jmenem jiz existuje.
|
||||
slimeMalformedSize=Zdeformovana velikost.
|
||||
socialSpy=\u00a76SocialSpy pro {0}\u00a76\: {1}
|
||||
socialSpy=\u00a76SocialSpy hrace \u00a7c{0}\u00a76\: \u00a7c{1}
|
||||
soloMob=Tento mob ma rad, kdyz je sam.
|
||||
spawnSet=\u00a77Spawn-lokace nastavena pro skupinu\: {0}.
|
||||
spawned=spawnut
|
||||
sudoExempt=Nemuzes ovladat tohoto hrace
|
||||
sudoRun=Nutis hrace {0} k behu\: /{1} {2}
|
||||
sudoRun=\u00a76Forcing\u00a7c {0} \u00a76to run\:\u00a7r /{1}
|
||||
suicideMessage=\u00a77Sbohem kruty svete...
|
||||
suicideSuccess=\u00a77{0} si vzal svuj zivot
|
||||
survival=Survival
|
||||
@@ -412,7 +412,7 @@ takenFromAccount=\u00a7c{0} bylo odecteno z tveho uctu.
|
||||
takenFromOthersAccount=\u00a7c{0} bylo odebrano z {1}\u00a7c uctu. Nova hodnota\: {2}
|
||||
teleportAAll=\u00a77Zadost o teleportaci odeslana vsem hracum...
|
||||
teleportAll=\u00a77Teleportuji v\u00c5\u00a1echny hrace...
|
||||
teleportAtoB=\u00a77{0}\u00a77 vas teleportoval k {1}\u00a77.
|
||||
teleportAtoB=\u00a7c{0} \u00a76te teleportoval k hraci \u00a7c{1}\u00a76.
|
||||
teleportDisabled={0} mas teleportaci zablokovanou.
|
||||
teleportHereRequest=\u00a7c{0}\u00a7c vas pozadal aby jste se warpnul k nemu.
|
||||
teleportNewPlayerError=Teleportace noveho hrace selhala
|
||||
@@ -420,18 +420,19 @@ teleportRequest=\u00a7c{0}\u00a7c se chce teleportovat k tobe.
|
||||
teleportRequestTimeoutInfo=\u00a77Tato zadost vyprsi za {0} sekund.
|
||||
teleportTop=\u00a77Teleportuji na vrch.
|
||||
teleportationCommencing=\u00a77Teleportace zahajena...
|
||||
teleportationDisabled=\u00a77Teleportace zakazana.
|
||||
teleportationDisabledFor=\u00a76Teleportace zablokovana hraci {0}
|
||||
teleportationEnabled=\u00a77Teleportace povolena.
|
||||
teleportationEnabledFor=\u00a76Teleportace dovolena hraci {0}
|
||||
teleportationDisabled=\u00a76Teleportace \u00a74vypnuta\u00a76.
|
||||
teleportationDisabledFor=\u00a76Teleportace \u00a74vypnuta\u00a76 hraci \u00a7c{0}\u00a76.
|
||||
teleportationEnabled=\u00a76Teleportace \u00a7azapnuta\u00a76.
|
||||
teleportationEnabledFor=\u00a76Teleportace \u00a7azapnuta\u00a76 hraci \u00a7c{0}\u00a76.
|
||||
teleporting=\u00a77Teleportuji...
|
||||
tempBanned=Docasne zabanovany na dobu {0}
|
||||
teleportToPlayer=\u00a76Teleportuji k hraci \u00a7c{0}\u00a76.
|
||||
tempBanned=\u00a7cYou have been temporarily banned for {0}\:\n\u00a7r{2}
|
||||
tempbanExempt=\u00a77Nemel by jsi docasne zabanovat tohoto hrace.
|
||||
thunder=Nastavil jsi {0} bouri ve tvem svete.
|
||||
thunderDuration=Nastavil jsi {0} bouri ve svete po {1} sekund.
|
||||
timeBeforeHeal=Potrebny cas pro dalsi uzdraveni\: {0}
|
||||
timeBeforeTeleport=Potrebny cas pro dalsi teleport\: {0}
|
||||
timeFormat=\u00a73{0}\u00a7f nebo \u00a73{1}\u00a7f nebo \u00a73{2}\u00a7f
|
||||
timeFormat=\u00a7c{0}\u00a76 nebo \u00a7c{1}\u00a76 nebo \u00a7c{2}\u00a76
|
||||
timeSetPermission=\u00a7cNejsi autorizovany ke zmene casu.
|
||||
timeWorldCurrent=Ve svete {0} je prave \u00a73{1}
|
||||
timeWorldSet=Cas byl nastaven na {0} ve\: \u00a7c{1}
|
||||
@@ -451,7 +452,7 @@ unignorePlayer=Prestal jsi ignorovat hrace {0}.
|
||||
unknownItemId=Nezname ID itemu\: {0}
|
||||
unknownItemInList=Neznamy item {0} v {1} seznamu.
|
||||
unknownItemName=Neznamy nazev itemu\: {0}
|
||||
unlimitedItemPermission=\u00a7cNemas opravneni pro neomezeny item\: {0}.
|
||||
unlimitedItemPermission=\u00a74Nemas prava mit neomezeny item \u00a7c{0}\u00a74.
|
||||
unlimitedItems=Neomezene itemy\:
|
||||
unmutedPlayer=Hrac {0} byl umlcen.
|
||||
unvanishedReload=\u00a74Probehl reload serveru; jsi zase viditelny.
|
||||
@@ -480,7 +481,7 @@ warpSet=\u00a77Warp {0} vytvoren.
|
||||
warpUsePermission=\u00a7cNemas opravneni pouzit tento warp.
|
||||
warpingTo=\u00a77Warpuji te do {0}.
|
||||
warps=Warpy\: {0}
|
||||
warpsCount=\u00a77Mame zde {0} warpu. Strana {1} z {2}.
|
||||
warpsCount=\u00a76Je zde \u00a7c{0} \u00a76warpu. Zobrazuji stranku \u00a7c{1} \u00a76of \u00a7c{2}\u00a76.
|
||||
weatherStorm=\u00a77Nastavil jsi bourku v {0}
|
||||
weatherStormFor=\u00a77Nastavil jsi bourku v {0} na {1} sekund.
|
||||
weatherSun=\u00a77Nastavil jsi slunecne pocasi v {0}
|
||||
@@ -525,25 +526,33 @@ radiusTooBig=\u00a74Polomer je prilis velky. Maximalni mozny polomer je {0} blok
|
||||
isIpBanned=\u00a76IP \u00a7c{0} \u00a76je zabanovana.
|
||||
mobDataList=\u00a76Spravny nazev mobu\:\u00a7r {0}
|
||||
vanish=\u00a76Vanish pro hrace {0} je\u00a76\: {1}
|
||||
noLocationFound=\u00a74Nebylo nalezeno platn\u00e9 um\u00edst\u011bn\u00ed.
|
||||
noLocationFound=\u00a74Nebylo nalezeno platne umisteni.
|
||||
coordsKeyword={0}, {1}, {2}
|
||||
banExemptOffline=\u00a74Nemuzes zabanovat hrace, kteri nejsou pripojeni.
|
||||
tempbanExemptOffline=\u00a74Nemuzes docasne zabanovat hrace, kteri nejsou pripojeni.
|
||||
banExemptOffline=\u00a74Nemuzes zabanovat hrace ktery neni ve hre.
|
||||
tempbanExemptOffline=\u00a74Nemuzes docasne zabanovat hrace ktery neni ve hre.
|
||||
mayNotJailOffline=\u00a7Nemuzes uveznit hrace, kteri nejsou pripojeni.
|
||||
muteExemptOffline=\u00a7Nemuzes umlcet hrace, kteri nejsou pripojeni.
|
||||
muteExemptOffline=\u00a7Nemuzes umlcet hrace ktery neni ve hre.
|
||||
ignoreExempt=\u00a74Nemuzes ignorovat tohoto hrace.
|
||||
unsafeTeleportDestination=\u00a74The teleport destination is unsafe and teleport-safety is disabled.
|
||||
noMetaJson=JSON Metadata is not supported in this version of Bukkit.
|
||||
maxMoney=\u00a74This transaction would exceed the balance limit for this account.
|
||||
skullChanged=\u00a76Skull changed to \u00a7c{0}.\u00a76.
|
||||
alphaNames=\u00a74Player names can only contain letters, numbers and underscores.
|
||||
givenSkull=\u00a76You have been given the Skull of \u00a7c{0}\u00a76.
|
||||
noPermissionSkull=\u00a74You do not have permission to modify that Skull.
|
||||
teleportInvalidLocation=Value of coordinates cannot be over 30000000
|
||||
invalidSkull=\u00a74Please hold a player Skull.
|
||||
weatherInvalidWorld=World named {0} not found\!
|
||||
gameModeInvalid=\u00a74You need to specify a valid player/mode.
|
||||
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
|
||||
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
|
||||
seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
|
||||
unableToSpawnItem=\u00a74Cannot spawn \u00a7c{0}\u00a74, this is not a spawnable item.
|
||||
unsafeTeleportDestination=\u00a74Teleportace zde je nebezpecna a nastaveni teleport-safety je vypnuto.
|
||||
noMetaJson=JSON Metadata nejsou podporovana v teto verzi Bukkitu.
|
||||
maxMoney=\u00a74Tato transakce by prekrocila financni limit tohoto uctu.
|
||||
skullChanged=\u00a76Hlava zmenena na \u00a7c{0}\u00a76.
|
||||
alphaNames=\u00a74Nick muze obsahovat pouze pismena, cisla a podtrzitka
|
||||
givenSkull=\u00a76Ziskal si hlavu hrace \u00a7c{0}\u00a76.
|
||||
noPermissionSkull=\u00a74Nemas prava na upravu teto hlavy.
|
||||
teleportInvalidLocation=Souradnice nemohou prekrocit 30 000 000
|
||||
invalidSkull=\u00a74Vem si hlavu nejprve do ruky.
|
||||
weatherInvalidWorld=Svet s nazvem {0} nebyl nalezen\!
|
||||
gameModeInvalid=\u00a74Chybny nick hrace nebo herni mod.
|
||||
mailTooLong=\u00a74Mailov\u00e1 zpr\u00e1va je velmi dlouh\u00e1. Limit je pod 1000 znak\u016f.
|
||||
mailDelay=Bylo odeslano prilis mnoho mailu. Pockej minutu. Maximum\: {0}
|
||||
seenAccounts=\u00a76Hrac je take znamy jako\:\u00a7c {0}
|
||||
unableToSpawnItem=\u00a74Nepodarilo se spawnout \u00a7c{0}\u00a74, nejedna se o item, ktery jde spawnout.
|
||||
itemsConverted=\u00a76Converted all items into blocks.
|
||||
itemsNotConverted=\u00a74You have no items that can be converted into blocks.
|
||||
mailSentTo=\u00a7c{0}\u00a76 has been sent the following mail\:
|
||||
mailMessage={0}
|
||||
|
||||
whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0}
|
||||
playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76.
|
||||
mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1}
|
||||
|
@@ -92,7 +92,7 @@ downloadingGeoIp=Downloader GeoIP database... dette tager m\u00e5ske noget tid (
|
||||
duplicatedUserdata=Duplikerede brugerdata\: {0} og {1}.
|
||||
durability=\u00a76Dette v\u00e6rkt\u00f8j har \u00a7c{0}\u00a76 anvendelser tilbage.
|
||||
editBookContents=\u00a7eDu kan nu \u00e6ndre denne bogs indhold.
|
||||
enableUnlimited=\u00a76Giver ubegr\u00e6nset antal af\u00a7c {0} \u00a76til {1}.
|
||||
enableUnlimited=\u00a76Giver et ubegr\u00e6nset antal af\u00a7c {0} \u00a76til \u00a7c{1}\u00a76.
|
||||
enabled=aktiveret
|
||||
enchantmentApplied=\u00a76Fortryllelsen\u00a7c {0} \u00a76er blevet anvendt til elementet i din h\u00e5nd.
|
||||
enchantmentNotFound=\u00a74Fortryllelsen blev ikke fundet\!
|
||||
@@ -103,7 +103,7 @@ errorCallingCommand=Kunne ikke finde kommandoen /{0}
|
||||
errorWithMessage=\u00a7cFejl\:\u00a74 {0}
|
||||
essentialsHelp1=Filen er \u00f8delagt, og Essentials kan ikke \u00e5bne den. Essentials er nu deaktiveret. Hvis du ikke selv kan fikse fejlen, s\u00e5 bes\u00f8g http\://tiny.cc/EssentialsChat
|
||||
essentialsHelp2=Filen er \u00f8delagt, og Essentials kan ikke \u00e5bne den. Essentials er nu deaktiveret. Hvis du ikke selv kan fikse fejlen, s\u00e5 skriv enten /essentialshelp i spillet eller bes\u00f8g http\://tiny.cc/EssentialsChat
|
||||
essentialsReload=\u00a76Essentials er genindl\u00e6st\u00a7c {0}
|
||||
essentialsReload=\u00a76Essentials blev genindl\u00e6st\u00a7c {0}.
|
||||
exp=\u00a7c{0} \u00a76har\u00a7c {1} \u00a76exp (level\u00a7c {2}\u00a76) og beh\u00f8ver\u00a7c {3} \u00a76mere exp for at stige i level.
|
||||
expSet=\u00a7c{0} \u00a76har nu\u00a7c {1} \u00a76exp.
|
||||
extinguish=\u00a76Du slukkede selv.
|
||||
@@ -113,7 +113,7 @@ failedToCreateConfig=Kunne ikke oprette konfig {0}.
|
||||
failedToWriteConfig=Kunne ikke skrive konfig {0}.
|
||||
false=\u00a74falsk\u00a7r
|
||||
feed=\u00a76Din appetit blev m\u00e6ttet.
|
||||
feedOther=\u00a76Du m\u00e6ttede appetitten hos {0}\u00a76.
|
||||
feedOther=\u00a76Du tilfredsstillede \u00a7c{0}s appetit\u00a76.
|
||||
fileRenameError=Omd\u00f8bning af filen {0} fejlede\!
|
||||
fireworkColor=\u00a74Ugyldig fyrv\u00e6rkeriladningsparametre indsat. Der skal s\u00e6ttes en farve f\u00f8rst.
|
||||
fireworkEffectsCleared=\u00a76Fjernede alle effekter fra den holdte stak.
|
||||
@@ -122,7 +122,7 @@ flyMode=\u00a76Set flytilstand \u00a7c {0} \u00a76for {1}\u00a76.
|
||||
flying=flyve
|
||||
foreverAlone=\u00a74Der er ingen, du kan sende et svar til.
|
||||
fullStack=\u00a74Du har allerede en fuld stak.
|
||||
gameMode=\u00a76Set spiltilstand\u00a7c {0} \u00a76for {1}\u00a76.
|
||||
gameMode=\u00a76\u00c6ndrede spiltilstand til\u00a7c {0} \u00a76for \u00a7c{1}\u00a76.
|
||||
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76"\: \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 enheder, \u00a7c{4}\u00a76 tiles.
|
||||
gcfree=\u00a76Fri hukommelse\:\u00a7c {0} MB.
|
||||
gcmax=\u00a76Maksimum hukommelse\:\u00a7c {0} MB.
|
||||
@@ -131,7 +131,7 @@ geoIpUrlEmpty=GeoIP download url er tom.
|
||||
geoIpUrlInvalid=GeoIP download url er ugyldig.
|
||||
geoipJoinFormat=\u00a76Spilleren \u00a7c{0} \u00a76kommer fra \u00a7c{1}\u00a76.
|
||||
giveSpawn=\u00a76Giver\u00a7c {0} \u00a76af\u00a7c {1} til\u00a7c {2}\u00a76.
|
||||
godDisabledFor=\u00a74deaktiverede\u00a76 for\u00a7c {0}
|
||||
godDisabledFor=\u00a7cdeaktiveret\u00a76 for\u00a7c {0}
|
||||
godEnabledFor=\u00a7aaktiveret\u00a76 for\u00a7c {0}
|
||||
godMode=\u00a76Gudetilstand\u00a7c {0}\u00a76.
|
||||
groupDoesNotExist=\u00a74Der er ingen online i denne gruppe\!
|
||||
@@ -168,10 +168,10 @@ infoPages=\u00a7e ---- \u00a76{2} \u00a7e--\u00a76 Side \u00a7c{0}\u00a76/\u00a7
|
||||
infoUnknownChapter=\u00a74Ukendt kapitel.
|
||||
insufficientFunds=\u00a74Ikke tilstr\u00e6kkelige midler.
|
||||
invalidCharge=\u00a74Ugyldig ladning.
|
||||
invalidFireworkFormat=\u00a76Valget \u00a74{0} \u00a76er ikke en gyldig v\u00e6rdi for \u00a74{1}\u00a76.
|
||||
invalidFireworkFormat=\u00a74Muligheden \u00a7c{0} \u00a74er ikke en gyldig v\u00e6rdi til \u00a7c{1}\u00a74.
|
||||
invalidHome=\u00a74Hjemmet\u00a7c {0} \u00a74eksisterer ikke\!
|
||||
invalidHomeName=\u00a74Ugyldigt navn til dit hjem.
|
||||
invalidMob=\u00a74Invalid mob type.
|
||||
invalidMob=\u00a74Ugyldig mob type.
|
||||
invalidNumber=Ugyldigt nummer.
|
||||
invalidPotion=\u00a74Ugyldig eliksir.
|
||||
invalidPotionMeta=\u00a74Ugyldig eliksir meta\: \u00a7c{0}\u00a74.
|
||||
@@ -203,11 +203,11 @@ kickDefault=Smidt ud fra serveren.
|
||||
kickExempt=\u00a74Du kan ikke smide den person ud.
|
||||
kickedAll=\u00a74Smed alle ud fra serveren.
|
||||
kill=\u00a76Dr\u00e6bte\u00a7c {0}\u00a76.
|
||||
killExempt=\u00a74Du kan ikke dr\u00e6be {0}
|
||||
killExempt=\u00a74Du kan ikke dr\u00e6be \u00a7c{0}\u00a74.
|
||||
kitCost=\ \u00a77\u00a7o({0})\u00a7r
|
||||
kitError2=\u00a74Det kit er ikke defineret korrekt. Kontakt en administrator.
|
||||
kitError=\u00a74Der er ingen gyldige kits.
|
||||
kitGiveTo=\u00a76Giver kittet\u00a7c {0}\u00a76 til {1}\u00a7.
|
||||
kitGiveTo=\u00a76Giver kit\u00a7c {0}\u00a76 til \u00a7c{1}\u00a76.
|
||||
kitInvFull=\u00a7cDin inventory er fuld, placerer kit p\u00e5 gulvet.
|
||||
kitNotFound=\u00a74Det kit eksisterer ikke.
|
||||
kitOnce=\u00a74Du kan ikke benytte dig af det kit igen.
|
||||
@@ -224,10 +224,10 @@ listGroupTag=\u00a76{0}\u00a7r\: \u00a7r
|
||||
listHiddenTag=\u00a77[SKJULT]\u00a7r
|
||||
loadWarpError=\u00a74Kunne ikke indl\u00e6se warp {0}.
|
||||
localFormat=[L]<{0}> {1}
|
||||
mailClear=\u00a76For at markere din mail som l\u00e6st, skriv\u00a7c /mail clear.
|
||||
mailClear=\u00a76For at markere alt post som l\u00e6st, skriv\u00a7c /mail clear\u00a76.
|
||||
mailCleared=\u00a76Mail Ryddet\!
|
||||
mailSent=\u00a76Mail sendt\!
|
||||
markMailAsRead=\u00a76For at markere din mail som l\u00e6st, skriv\u00a7c /mail clear.
|
||||
markMailAsRead=\u00a76For at markere alt post som l\u00e6st, skriv\u00a7c /mail clear\u00a76.
|
||||
markedAsAway=\u00a76Du er nu markeret som v\u00e6rende v\u00e6k.
|
||||
markedAsNotAway=\u00a76Du er ikke l\u00e6ngere markeret som v\u00e6rende v\u00e6k.
|
||||
matchingIPAddress=\u00a76De f\u00f8lgende spillere er tidligere logget ind fra den IP adresse\:
|
||||
@@ -236,7 +236,7 @@ mayNotJail=\u00a74Du kan ikke s\u00e6tte den person i f\u00e6ngsel\!
|
||||
me=mig
|
||||
minute=minut
|
||||
minutes=minutter
|
||||
missingItems=\u00a74Du har ikke {0}x {1}.
|
||||
missingItems=\u00a74Du har ikke \u00a7c{0}x {1}\u00a74.
|
||||
mobSpawnError=\u00a74Fejl under \u00e6ndring af mob spawner.
|
||||
mobSpawnLimit=Mob m\u00e6ngde begr\u00e6nset til serverens gr\u00e6nse.
|
||||
mobSpawnTarget=\u00a74M\u00e5lblokken skal v\u00e6re en mob spawner.
|
||||
@@ -246,8 +246,8 @@ moneySentTo=\u00a7a{0} er blevet sendt til {1}.
|
||||
month=m\u00e5ned
|
||||
months=m\u00e5neder
|
||||
moreThanZero=\u00a74M\u00e6ngder skal v\u00e6re st\u00f8rre end 0.
|
||||
moveSpeed=\u00a76Satte {0} hastighed til\u00a7c {1} \u00a76for {2}\u00a76.
|
||||
msgFormat=\u00a76[{0}\u00a76 -> {1}\u00a76] \u00a7r{2}
|
||||
moveSpeed=\u00a76Satte {0} hastighed til\u00a7c {1} \u00a76for \u00a7c{2}\u00a76.
|
||||
msgFormat=\u00a76[\u00a7c{0}\u00a76 -> \u00a7c{1}\u00a76] \u00a7r{2}
|
||||
multipleCharges=\u00a74Du kan ikke tilf\u00f8je mere end \u00e9n ladning til dette fyrv\u00e6rkeri.
|
||||
multiplePotionEffects=\u00a74Du kan ikke tilf\u00f8je mere end \u00e9n effekt til denne eliksir.
|
||||
muteExempt=\u00a74Du kan ikke g\u00f8re den spiller tavs.
|
||||
@@ -262,12 +262,12 @@ nickDisplayName=\u00a74Du skal aktivere change-displayname i Essentials-konfigge
|
||||
nickInUse=\u00a74Det navn bruges allerede.
|
||||
nickNamesAlpha=\u00a74Kaldenavne skal v\u00e6re alfanumeriske.
|
||||
nickNoMore=\u00a76Du har ikke l\u00e6ngere et kaldenavn.
|
||||
nickSet=\u00a76Dit kaldenavn er nu \u00a7c{0}
|
||||
nickSet=\u00a76Dit kaldenavn er nu \u00a7c{0}\u00a76.
|
||||
nickTooLong=\u00a74Det kaldenavn er for langt.
|
||||
noAccessCommand=\u00a74Du har ikke adgang til den kommando.
|
||||
noAccessPermission=\u00a74Du har ikke tilladelse til at tilg\u00e5 {0}.
|
||||
noAccessPermission=\u00a74Du har ikke tilladelse til at bruge den \u00a7c{0}\u00a74.
|
||||
noBreakBedrock=\u00a74Du er ikke tilladt at \u00f8del\u00e6gge bedrock.
|
||||
noDestroyPermission=\u00a74Du har ikke tilladelse til at \u00f8del\u00e6gge den {0}.
|
||||
noDestroyPermission=\u00a74Du har ikke tilladelse til at \u00f8del\u00e6gge den \u00a7c{0}\u00a74.
|
||||
noDurability=\u00a74Dette element har ingen holdbarhed.
|
||||
noGodWorldWarning=\u00a74Advarsel\! Gud-tilstand er deaktiveret i denne verden.
|
||||
noHelpFound=\u00a74Ingen matchende kommandoer.
|
||||
@@ -300,8 +300,8 @@ now=nu
|
||||
nuke=\u00a75Lad d\u00f8den regne over dem.
|
||||
numberRequired=Der skal v\u00e6re et tal, dit fjollehoved.
|
||||
onlyDayNight=/time underst\u00f8tter kun day/night.
|
||||
onlyPlayerSkulls=\u00a74Du kan kun \u00e6ndre ejeren af spillerhoveder. (397\:3).
|
||||
onlyPlayers=\u00a74Kun in-game spillere kan bruge {0}.
|
||||
onlyPlayerSkulls=\u00a74Du kan kun indstille ejeren af spillerkranier (\u00a7c397\:3\u00a74).
|
||||
onlyPlayers=\u00a74Kun spillere p\u00e5 serveren kan bruge \u00a7c{0}\u00a74.
|
||||
onlySunStorm=\u00a74/weather underst\u00f8tter kun sun/storm.
|
||||
orderBalances=\u00a76Tjekker saldi af\u00a7c {0} \u00a76brugere. Vent venligst...
|
||||
oversizedTempban=\u00a74Du kan ikke bandlyse den spiller i det tidsrum.
|
||||
@@ -321,9 +321,9 @@ pWeatherPlayers=\u00a76Disse spillere har brugerdefineret vejr\:\u00a7r
|
||||
pWeatherReset=\u00a76Spillervejret blev nulstillet for\: \u00a7c{0}
|
||||
pWeatherSet=\u00a76Spillervejret blev \u00e6ndret til \u00a7c{0}\u00a76 for\: \u00a7c{1}.
|
||||
pendingTeleportCancelled=\u00a74Afventende teleporteringsanmodning afvist.
|
||||
playerBanIpAddress=\u00a76Spilleren\u00a7c {0} \u00a76bandlyste IP-adressen {1}\u00a76.
|
||||
playerBanned=\u00a76Spilleren\u00a7c {0} \u00a76bandlyste {1} \u00a76med grunden\: {2}.
|
||||
playerInJail=\u00a74Spilleren er allerede i f\u00e6ngsel\u00a7c {0}\u00a76.
|
||||
playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address\u00a7c {1} \u00a76for\: \u00a7c{2}\u00a76.
|
||||
playerBanned=\u00a76Spilleren\u00a7c {0} blev \u00a76bandlyst\u00a7c {1} \u00a76i \u00a7c{2}\u00a76.
|
||||
playerInJail=\u00a74Spilleren er allerede i f\u00e6ngsel\u00a7c {0}\u00a74.
|
||||
playerJailed=\u00a76Spilleren\u00a7c {0} \u00a76blev f\u00e6ngslet.
|
||||
playerJailedFor=\u00a76Spilleren\u00a7c {0} \u00a76blev f\u00e6ngslet i {1}.
|
||||
playerKicked=\u00a76Spilleren\u00a7c {0} \u00a76smed {1} ud med grunden\: {2}.
|
||||
@@ -340,33 +340,33 @@ posX=\u00a76X\: {0} (+\u00d8st <-> -Vest)
|
||||
posY=\u00a76Y\: {0} (+Op <-> -Ned)
|
||||
posYaw=\u00a76Yaw\: {0} (Rotation)
|
||||
posZ=\u00a76Z\: {0} (+Syd <-> -Nord)
|
||||
possibleWorlds=\u00a76Mulige verdener er tallene 0 til {0}.
|
||||
possibleWorlds=\u00a76Mulige verdener er tal fra \u00a7c0\u00a76 til \u00a7c{0}\u00a76.
|
||||
potions=\u00a76Eliksirer\:\u00a7r {0}\u00a76.
|
||||
powerToolAir=\u00a74Kommandoen kan ikke fastg\u00f8res til luft.
|
||||
powerToolAlreadySet=\u00a74Kommandoen \u00a7c{0}\u00a74 er allerede fastgjort til {1}.
|
||||
powerToolAlreadySet=\u00a74Kommandoen \u00a7c{0}\u00a74 er allerede tildelt til \u00a7c{1}\u00a74.
|
||||
powerToolAttach=\u00a7c{0}\u00a76 kommando fastgjort til {1}.
|
||||
powerToolClearAll=\u00a76Alle magtv\u00e6rkt\u00f8jskommandoer er blevet ryddet.
|
||||
powerToolList=\u00a76Element \u00a7c{1} \u00a76har de f\u00f8lgende kommandoer\: \u00a7c{0}\u00a76.
|
||||
powerToolListEmpty=\u00a74Element \u00a7c{0} \u00a74har ingen kommandoer tildelt.
|
||||
powerToolNoSuchCommandAssigned=\u00a74Kommandoen \u00a7c{0}\u00a74 er ikke blevet tildelt {1}.
|
||||
powerToolRemove=\u00a76Kommando \u00a7c{0}\u00a76 fjernet fra {1}.
|
||||
powerToolRemoveAll=\u00a76Alle kommandoer fjernet fra {0}.
|
||||
powerToolNoSuchCommandAssigned=\u00a74Kommandoen \u00a7c{0}\u00a74 er ikke blevet tildelt \u00a7c{1}\u00a74.
|
||||
powerToolRemove=\u00a76Kommando \u00a7c{0}\u00a76 fjernet fra \u00a7c{1}\u00a76.
|
||||
powerToolRemoveAll=\u00a76Alle kommandoer fjernet fra \u00a7c{0}\u00a76.
|
||||
powerToolsDisabled=\u00a76Alle dine magtv\u00e6rkt\u00f8jer er deaktiveret.
|
||||
powerToolsEnabled=\u00a76Alle dine magtv\u00e6rkt\u00f8jer er aktiveret.
|
||||
questionFormat=\u00a72[Sp\u00f8rgsm\u00e5l]\u00a7r {0}
|
||||
readNextPage=\u00a76Skriv\u00a7c /{0} {1} \u00a76for at l\u00e6se den n\u00e6ste side.
|
||||
recipe=\u00a76Opskrift til \u00a7c{0}\u00a76 ({1} of {2})
|
||||
recipe=\u00a76Opskrivt for \u00a7c{0}\u00a76 (\u00a7c{1}\u00a76 af \u00a7c{2}\u00a76)
|
||||
recipeBadIndex=Der er ingen opskrift af det nummer.
|
||||
recipeFurnace=\u00a76Smelt \u00a7c{0}
|
||||
recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
|
||||
recipeGridItem=\ \u00a7{0}X \u00a76er \u00a7c{1}
|
||||
recipeFurnace=\u00a76Smelt\: \u00a7c{0}\u00a76.
|
||||
recipeGrid=\u00a7c{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
|
||||
recipeGridItem=\u00a7c{0}X \u00a76er \u00a7c{1}
|
||||
recipeMore=\u00a76Skriv /{0} \u00a7c{1}\u00a76 <nummer> for at \u00e6ndre andre opskrifter for \u00a7c{2}\u00a76.
|
||||
recipeNone=Ingen opskrift eksisterer for {0}
|
||||
recipeNothing=intet
|
||||
recipeShapeless=\u00a76Kombiner \u00a7c{0}
|
||||
recipeWhere=\u00a76Hvor\: {0}
|
||||
removed=\u00a76Fjernede\u00a7c {0} \u00a76enheder.
|
||||
repair=\u00a76Du har med succes repareret din(e)\: \u00a7c{0}.
|
||||
repair=\u00a76Du har succesfuldt repareret din\: \u00a7c{0}\u00a76.
|
||||
repairAlreadyFixed=\u00a74Dette element beh\u00f8ver ikke reparation.
|
||||
repairEnchanted=\u00a74Du har ikke tilladelse til at reparere fortryllede elementer.
|
||||
repairInvalidType=\u00a74Dette element kan ikke repareres.
|
||||
@@ -378,19 +378,19 @@ requestDeniedFrom=\u00a7c{0} \u00a76afviste din teleporteringsanmodning.
|
||||
requestSent=\u00a76Anmodning sendt til\u00a7c {0}\u00a76.
|
||||
requestTimedOut=\u00a74Teleporteringsanmoding udl\u00f8b.
|
||||
requiredBukkit=\u00a76* \! * Du skal minimum bruge build {0} af CraftBukkit. Download det fra http\://dl.bukkit.org/downloads/craftbukkit/
|
||||
resetBal=\u00a76Saldo er blevet nulstillet til \u00a7a{0} \u00a76for alle online spillere.
|
||||
resetBalAll=\u00a76Saldo er blevet nulstillet til \u00a7a{0} \u00a76for alle spillere.
|
||||
returnPlayerToJailError=\u00a74Der opstod en fejl, da spilleren\u00a7c {0} \u00a74skulle retuneres til f\u00e6ngsel\: {1}\!
|
||||
resetBal=\u00a76Saldo er blevet nulstillet til \u00a7c{0} \u00a76for alle online spillere.
|
||||
resetBalAll=\u00a76Saldo er blevet nulstillet til \u00a7c{0} \u00a76for alle spillere.
|
||||
returnPlayerToJailError=\u00a74Der opstod en fejl under fors\u00f8get p\u00e5 at returnere spilleren\u00a7c {0} \u00a74til f\u00e6ngsel\: \u00a7c{1}\u00a74\!
|
||||
runningPlayerMatch=\u00a76S\u00f8ger efter spillere, der matcher ''\u00a7c{0}\u00a76'' (dette kan tage lidt tid)
|
||||
second=sekund
|
||||
seconds=sekunder
|
||||
seenOffline=\u00a76Spilleren\u00a7c {0} \u00a76har v\u00e6ret \u00a74offline\u00a76 siden {1}.
|
||||
seenOnline=\u00a76Spiller\u00a7c {0} \u00a76har v\u00e6ret \u00a7aonline\u00a76 siden {1}.
|
||||
seenOffline=\u00a76Spilleren\u00a7c {0} \u00a76har v\u00e6ret \u00a74offline\u00a76 siden \u00a7c{1}\u00a76.
|
||||
seenOnline=\u00a76Spilleren\u00a7c {0} \u00a76har v\u00e6ret \u00a7aonline\u00a76 siden \u00a7c{1}\u00a76.
|
||||
serverFull=Serveren er fyldt op\!
|
||||
serverTotal=\u00a76Server Total\:\u00a7c {0}
|
||||
setBal=\u00a7aDin saldo blev \u00e6ndret til {0}.
|
||||
setBalOthers=\u00a7aDu \u00e6ndrede {0}\u00a7a''s saldo til {1}.
|
||||
setSpawner=\u00a76\u00c6ndrede spawner type til\u00a7c {0}
|
||||
setSpawner=\u00a76\u00c6ndrede spawner type til\u00a7c {0}\u00a76.
|
||||
sheepMalformedColor=\u00a74Forkert udformet farve.
|
||||
shoutFormat=\u00a76[R\u00e5b]\u00a7r {0}
|
||||
signFormatFail=\u00a74[{0}]
|
||||
@@ -399,12 +399,12 @@ signFormatTemplate=[{0}]
|
||||
signProtectInvalidLocation=\u00a74Du har ikke tilladelse til at lave et skilt her.
|
||||
similarWarpExist=\u00a74Et warp med et lignende navn eksisterer allerede.
|
||||
slimeMalformedSize=\u00a74Forkert udformet st\u00f8rrelse.
|
||||
socialSpy=\u00a76SocialSpy for {0}\u00a76\: {1}
|
||||
socialSpy=\u00a76SocialSpy for \u00a7c{0}\u00a76\: \u00a7c{1}
|
||||
soloMob=\u00a74Det mob kan lide at v\u00e6re alene.
|
||||
spawnSet=\u00a76Spawn lokation \u00e6ndret for gruppen\u00a7c {0}\u00a76.
|
||||
spawned=spawnede
|
||||
sudoExempt=\u00a74Du kan ikke sudo denne spiller.
|
||||
sudoRun=\u00a76Tvinger\u00a7c {0} \u00a76til at l\u00f8be\:\u00a7r /{1} {2}
|
||||
sudoRun=\u00a76Forcing\u00a7c {0} \u00a76to run\:\u00a7r /{1}
|
||||
suicideMessage=\u00a76Farvel, grusomme verden...
|
||||
suicideSuccess=\u00a76{0} \u00a76tog sit eget liv.
|
||||
survival=overlevelse
|
||||
@@ -412,7 +412,7 @@ takenFromAccount=\u00a7a{0} er blevet taget fra din konto.
|
||||
takenFromOthersAccount=\u00a7a{0} taget fra {1}\u00a7a konto. Ny saldo\: {2}.
|
||||
teleportAAll=\u00a76Teleporteringsanmodning sendt til alle spillere...
|
||||
teleportAll=\u00a76Teleporterer alle spillere...
|
||||
teleportAtoB=\u00a7c{0}\u00a76 teleporterede dig til {1}\u00a76.
|
||||
teleportAtoB=\u00a7c{0}\u00a76 teleporterede dig til \u00a7c{1}\u00a76.
|
||||
teleportDisabled=\u00a7c{0} \u00a74har deaktiveret teleportering.
|
||||
teleportHereRequest=\u00a7c{0}\u00a76 har anmodet om, at du teleporterer til spilleren.
|
||||
teleportNewPlayerError=\u00a74Kunne ikke teleportere ny spiller\!
|
||||
@@ -420,18 +420,19 @@ teleportRequest=\u00a7c{0}\u00a76 har anmodet om at teleportere til dig.
|
||||
teleportRequestTimeoutInfo=\u00a76Denne anmodning vil udl\u00f8be efter\u00a7c {0} sekunder\u00a76.
|
||||
teleportTop=\u00a76Teleporterer til toppen.
|
||||
teleportationCommencing=\u00a76Teleportering begynder...
|
||||
teleportationDisabled=\u00a76Teleportering deaktiveret.
|
||||
teleportationDisabledFor=\u00a76Teleportering deaktiveret for {0}.
|
||||
teleportationEnabled=\u00a76Teleportering aktiveret.
|
||||
teleportationEnabledFor=\u00a76Teleportering aktiveret for {0}.
|
||||
teleportationDisabled=\u00a76Teleportering \u00a7cdeaktiveret\u00a76.
|
||||
teleportationDisabledFor=\u00a76Teleportering \u00a7cdeaktiveret \u00a76for \u00a7c{0}\u00a76.
|
||||
teleportationEnabled=\u00a76Teleportering \u00a7caktiveret\u00a76.
|
||||
teleportationEnabledFor=\u00a76Teleportering \u00a7caktiveret \u00a76for \u00a7c{0}\u00a76.
|
||||
teleporting=\u00a76Teleporterer...
|
||||
tempBanned=Midlertidigt bandlyst fra serveren med grunden {0}.
|
||||
teleportToPlayer=\u00a76Teleporterer til \u00a7c{0}\u00a76.
|
||||
tempBanned=\u00a7cYou have been temporarily banned for {0}\:\n\u00a7r{2}
|
||||
tempbanExempt=\u00a74Du kan ikke tempbanne den spiller.
|
||||
thunder=\u00a76Du har\u00a7c {0} \u00a76torden i din verden.
|
||||
thunderDuration=\u00a76Du har\u00a7c {0} \u00a76torden i din verden i\u00a7c {1} \u00a76sekunder.
|
||||
timeBeforeHeal=\u00a74Tid inden n\u00e6ste helbredelse\:\u00a7c {0}\u00a76.
|
||||
timeBeforeTeleport=\u00a74Tid inden n\u00e6ste teleport\:\u00a7c {0}\u00a76.
|
||||
timeFormat=\u00a7c{0}\u00a76 eller \u00a7c{1}\u00a76 eller \u00a7c{2}\u00a76.
|
||||
timeFormat=\u00a7c{0}\u00a76 eller \u00a7c{1}\u00a76 eller \u00a7c{2}\u00a76
|
||||
timeSetPermission=\u00a74Du er ikke autoriseret til at \u00e6ndre tiden.
|
||||
timeWorldCurrent=\u00a76Den nuv\u00e6rende tid i\u00a7c {0} \u00a76er \u00a7c{1}\u00a76.
|
||||
timeWorldSet=\u00a76Tiden blev \u00e6ndret til\u00a7c {0} \u00a76i\: \u00a7c{1}\u00a76.
|
||||
@@ -451,7 +452,7 @@ unignorePlayer=\u00a76Du ignorerer ikke spilleren\u00a7c {0} \u00a76mere.
|
||||
unknownItemId=\u00a74Ukendt element ID\:\u00a7r {0}\u00a74.
|
||||
unknownItemInList=\u00a74Ukendt element {0} i {1} list.
|
||||
unknownItemName=\u00a74Ukendt elementnavn\: {0}.
|
||||
unlimitedItemPermission=\u00a7cIngen tilladelse til ubegr\u00e6nset ting {0}.
|
||||
unlimitedItemPermission=\u00a74Ingen tilladelse til ubegr\u00e6nset element \u00a7c{0}\u00a74.
|
||||
unlimitedItems=\u00a76Ubegr\u00e6nsede ting\:\u00a7r
|
||||
unmutedPlayer=\u00a76Spilleren\u00a7c {0} \u00a76har f\u00e5et sin stemme tilbage.
|
||||
unvanishedReload=\u00a74En reload har tvunget dig til at blive synlig.
|
||||
@@ -480,7 +481,7 @@ warpSet=\u00a76Warp\u00a7c {0} \u00a76blev sat.
|
||||
warpUsePermission=\u00a74Du har ikke tilladelse til at bruge det warp.
|
||||
warpingTo=\u00a76Warper til\u00a7c {0}\u00a76.
|
||||
warps=\u00a76Warps\:\u00a7r {0}
|
||||
warpsCount=\u00a76Der er\u00a7c {0} \u00a76warps. Viser side {1} af {2}.
|
||||
warpsCount=\u00a76Der er\u00a7c {0} \u00a76warps. Viser side \u00a7c{1} \u00a76af \u00a7c{2}\u00a76.
|
||||
weatherStorm=\u00a76Du \u00e6ndrede vejret til \u00a7cstorm\u00a76 i\u00a7c {0}\u00a76.
|
||||
weatherStormFor=\u00a76Du \u00e6ndrede vejret til \u00a7cstorm\u00a76 i\u00a7c {0} \u00a76i {1} sekunder.
|
||||
weatherSun=\u00a76Du \u00e6ndrede vejret til \u00a7csolrigt\u00a76 i\u00a7c {0}\u00a76.
|
||||
@@ -532,18 +533,26 @@ tempbanExemptOffline=\u00a74Du kan ikke midlertidigt bandlyse offline spillere.
|
||||
mayNotJailOffline=\u00a74Du kan ikke s\u00e6tte offline spillere i f\u00e6ngsel.
|
||||
muteExemptOffline=\u00a74Du kan ikke g\u00f8re offline spillere tavse.
|
||||
ignoreExempt=\u00a74Du kan ikke ignorere den spiller.
|
||||
unsafeTeleportDestination=\u00a74The teleport destination is unsafe and teleport-safety is disabled.
|
||||
noMetaJson=JSON Metadata is not supported in this version of Bukkit.
|
||||
maxMoney=\u00a74This transaction would exceed the balance limit for this account.
|
||||
skullChanged=\u00a76Skull changed to \u00a7c{0}.\u00a76.
|
||||
alphaNames=\u00a74Player names can only contain letters, numbers and underscores.
|
||||
givenSkull=\u00a76You have been given the Skull of \u00a7c{0}\u00a76.
|
||||
noPermissionSkull=\u00a74You do not have permission to modify that Skull.
|
||||
teleportInvalidLocation=Value of coordinates cannot be over 30000000
|
||||
invalidSkull=\u00a74Please hold a player Skull.
|
||||
weatherInvalidWorld=World named {0} not found\!
|
||||
gameModeInvalid=\u00a74You need to specify a valid player/mode.
|
||||
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
|
||||
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
|
||||
seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
|
||||
unableToSpawnItem=\u00a74Cannot spawn \u00a7c{0}\u00a74, this is not a spawnable item.
|
||||
unsafeTeleportDestination=\u00a74Teleport destinationen er usikker og teleport-safety er deaktiveret.
|
||||
noMetaJson=JSON Metadata er ikke underst\u00f8ttet i denne version af Bukkit.
|
||||
maxMoney=\u00a74Denne transaktion vil overstige saldoen af denne konto.
|
||||
skullChanged=\u00a76Kranie \u00e6ndret til \u00a7c{0}\u00a76.
|
||||
alphaNames=\u00a74Spillernavne kan kun indeholde bogstaver, tal og underscores.
|
||||
givenSkull=\u00a76Du er blevet givet \u00a7c{0}\u00a76s kranie.
|
||||
noPermissionSkull=\u00a74Du har ikke tilladelse til at modificere det kranie.
|
||||
teleportInvalidLocation=V\u00e6rdi af koordinater kan ikke overstige 30000000
|
||||
invalidSkull=\u00a74Hold venligst et spillerkranie.
|
||||
weatherInvalidWorld=En verden kaldet {0} blev ikke fundet\!
|
||||
gameModeInvalid=\u00a74Du skal angive en gyldig spiller/tilstand.
|
||||
mailTooLong=\u00a74Mailbeskeden er for lang. Pr\u00f8v at holde den under 1000 tegn.
|
||||
mailDelay=For mange mails er blevet sendt inden for det sidste minut. Maksimum\: {0}
|
||||
seenAccounts=\u00a76Spilleren er ogs\u00e5 kendt som\:\u00a7c {0}
|
||||
unableToSpawnItem=\u00a74Kan ikke spawne \u00a7c{0}\u00a74, da det ikke er spawnbart element.
|
||||
itemsConverted=\u00a76Converted all items into blocks.
|
||||
itemsNotConverted=\u00a74You have no items that can be converted into blocks.
|
||||
mailSentTo=\u00a7c{0}\u00a76 has been sent the following mail\:
|
||||
mailMessage={0}
|
||||
|
||||
whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0}
|
||||
playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76.
|
||||
mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1}
|
||||
|
@@ -92,7 +92,7 @@ downloadingGeoIp=Lade GeoIP-Datenbank ... dies kann etwas dauern (country\: 0.6
|
||||
duplicatedUserdata=Doppelte Datei in userdata\: {0} und {1}.
|
||||
durability=\u00a76Dieses Werkzeug kann noch \u00a7c{0}\u00a76 mal benutzt werden.
|
||||
editBookContents=\u00a7eDu darfst jetzt den Inhalt dieses Buches bearbeiten.
|
||||
enableUnlimited=\u00a76Gebe {1} unbegrenzte Mengen von\u00a7c {0}\u00a76.
|
||||
enableUnlimited=\u00a76Gebe \u00a7c{1}\u00a76. unendlichen einen Stack\u00a7c {0} \u00a76.
|
||||
enabled=aktiviert
|
||||
enchantmentApplied=\u00a76Der Gegenstand in deiner Hand wurde mit\u00a7c {0} \u00a76verzaubert.
|
||||
enchantmentNotFound=\u00a74Verzauberung nicht gefunden\!
|
||||
@@ -103,7 +103,7 @@ errorCallingCommand=Fehler beim Aufrufen des Befehls /{0}
|
||||
errorWithMessage=\u00a7cFehler\:\u00a74 {0}
|
||||
essentialsHelp1=Die Datei ist besch\u00e4digt und Essentials kann sie nicht \u00f6ffnen. Essentials ist jetzt deaktiviert. Wenn du die Datei selbst nicht reparieren kannst, gehe auf http\://tiny.cc/EssentialsChat
|
||||
essentialsHelp2=Die Datei ist besch\u00e4digt und Essentials kann sie nicht \u00f6ffnen. Essentials ist jetzt deaktiviert. Wenn du die Datei selbst nicht reparieren kannst, versuche /essentialshelp oder gehe auf http\://tiny.cc/EssentialsChat
|
||||
essentialsReload=\u00a76Essentials neu geladen\u00a7c {0}
|
||||
essentialsReload=\u00a76Essentials neu geladen\u00a7c {0}.
|
||||
exp=\u00a7c{0} \u00a76hat\u00a7c {1} \u00a76Exp (Level\u00a7c {2}\u00a76) und braucht\u00a7c {3} \u00a76Punkte f\u00fcr den n\u00e4chsten Level.
|
||||
expSet=\u00a7c{0} \u00a76hat jetzt\u00a7c {1} \u00a76Exp.
|
||||
extinguish=\u00a76Du hast dich selbst gel\u00f6scht.
|
||||
@@ -113,7 +113,7 @@ failedToCreateConfig=Fehler beim Erstellen der Konfiguration {0}.
|
||||
failedToWriteConfig=Fehler beim Schreiben der Konfiguration {0}.
|
||||
false=\u00a74nein\u00a7r
|
||||
feed=\u00a76Dein Hunger wurde gestillt.
|
||||
feedOther=\u00a76Du hast den Hunger von {0} \u00a76gestillt.
|
||||
feedOther=\u00a76Du hast dein Hunger von \u00a7c{0}\u00a76gestillt.
|
||||
fileRenameError=Umbenennen von {0} gescheitert\!
|
||||
fireworkColor=\u00a74Ung\u00fcltige Feuerwerksparameter angegeben, setze zuerst eine Farbe.
|
||||
fireworkEffectsCleared=\u00a76Alle Effekte vom Stapel in der Hand entfernt.
|
||||
@@ -131,7 +131,7 @@ geoIpUrlEmpty=GeoIP Download-URL ist leer.
|
||||
geoIpUrlInvalid=GeoIP Download-URL ist ung\u00fcltig.
|
||||
geoipJoinFormat=\u00a76Spieler \u00a7c{0} \u00a76kommt aus \u00a7c{1}\u00a76.
|
||||
giveSpawn=\u00a76Gebe \u00a7c{2} {0}\u00a76x\u00a7c {1}\u00a76.
|
||||
godDisabledFor=\u00a74deaktiviert\u00a76 f\u00fcr\u00a7c {0}
|
||||
godDisabledFor=\u00a7cdeaktiviert\u00a76 f\u00fcr\u00a7c {0}
|
||||
godEnabledFor=\u00a7aaktiviert\u00a76 f\u00fcr\u00a7c {0}
|
||||
godMode=\u00a76Unsterblichkeit\u00a7c {0}\u00a76.
|
||||
groupDoesNotExist=\u00a74Kein Mitglied dieser Gruppe ist online\!
|
||||
@@ -171,7 +171,7 @@ invalidCharge=\u00a74Ung\u00fcltige Kosten.
|
||||
invalidFireworkFormat=\u00a76Die Option \u00a74{0} \u00a76ist kein g\u00fcltiger Wert f\u00fcr \u00a74{1}\u00a76.
|
||||
invalidHome=\u00a74Zuhause\u00a7c {0} \u00a74existiert nicht\!
|
||||
invalidHomeName=\u00a74Ung\u00fcltiger Name\!
|
||||
invalidMob=\u00a74Invalid mob type.
|
||||
invalidMob=\u00a74Unbekannter Mob-Typ.
|
||||
invalidNumber=Ung\u00fcltige Nummer.
|
||||
invalidPotion=\u00a74Ung\u00fcltiger Zaubertrank.
|
||||
invalidPotionMeta=\u00a74Ung\u00fcltige Zaubertrank-Eigenschaft\: \u00a7c{0}\u00a74.
|
||||
@@ -203,11 +203,11 @@ kickDefault=Vom Server geworfen.
|
||||
kickExempt=\u00a74Du kannst diesen Spieler nicht rauswerfen.
|
||||
kickedAll=\u00a74Alle Spieler vom Server geworfen.
|
||||
kill=\u00a7c{0} \u00a76get\u00f6tet.
|
||||
killExempt=\u00a74Du kannst {0}\u00a74 nicht t\u00f6ten
|
||||
killExempt=\u00a74Du kannst \u00a7c{0}\u00a74 nicht t\u00f6ten.
|
||||
kitCost=\ \u00a77\u00a7o({0})\u00a7r
|
||||
kitError2=\u00a74Diese Ausr\u00fcstung ist nicht korrekt definiert. Kontaktiere einen Administrator.
|
||||
kitError=\u00a74Es gibt keine g\u00fcltigen Ausr\u00fcstungen.
|
||||
kitGiveTo=\u00a76Gebe {1}\u00a76 die\u00a7c {0}\u00a76-Ausr\u00fcstung.
|
||||
kitGiveTo=\u00a76Gebe \u00a7c{1}\u00a76 Kit \u00a7c {0}\u00a76 .
|
||||
kitInvFull=\u00a74Dein Inventar ist voll, lege Ausr\u00fcstung auf den Boden.
|
||||
kitNotFound=\u00a74Diese Ausr\u00fcstung gibt es nicht.
|
||||
kitOnce=\u00a74Du kannst diese Ausr\u00fcstung nicht nochmals bekommen.
|
||||
@@ -224,10 +224,10 @@ listGroupTag=\u00a76{0}\u00a7r\:\u00a7r
|
||||
listHiddenTag=\u00a77[Versteckt]\u00a7r
|
||||
loadWarpError=\u00a74Fehler beim Laden von Warp-Punkt {0}.
|
||||
localFormat=[L]<{0}> {1}
|
||||
mailClear=\u00a76Um deine Nachrichten zu l\u00f6schen, schreibe\u00a7c /mail clear
|
||||
mailClear=\u00a76Um deine Nachrichten zu l\u00f6schen, schreibe\u00a7c /mail clear.
|
||||
mailCleared=\u00a76Nachrichten gel\u00f6scht\!
|
||||
mailSent=\u00a76Nachricht gesendet\!
|
||||
markMailAsRead=\u00a76Um deine Nachrichten zu l\u00f6schen, schreibe\u00a7c /mail clear
|
||||
markMailAsRead=\u00a76Um deine Nachrichten zu l\u00f6schen, schreibe\u00a7c /mail clear.
|
||||
markedAsAway=\u00a76Du wirst als abwesend angezeigt.
|
||||
markedAsNotAway=\u00a76Du wirst nicht mehr als abwesend angezeigt.
|
||||
matchingIPAddress=\u00a76Die folgenden Spieler haben sich vorher schonmal mit der IP-Adresse eingeloggt\:
|
||||
@@ -236,7 +236,7 @@ mayNotJail=\u00a74Du kannst diese Person nicht einsperren.
|
||||
me=mir
|
||||
minute=Minute
|
||||
minutes=Minuten
|
||||
missingItems=\u00a74Du ben\u00f6tigst {0}x {1}.
|
||||
missingItems=\u00a74Du hast nicht \u00a7c{0}x {1}\u00a74.
|
||||
mobSpawnError=\u00a74Fehler beim \u00c4ndern des Monster-Spawner.
|
||||
mobSpawnLimit=Anzahl an Monster auf Serverlimit beschr\u00e4nkt.
|
||||
mobSpawnTarget=\u00a74Zielblock muss ein Monster-Spawner sein.
|
||||
@@ -246,12 +246,12 @@ moneySentTo=\u00a7aDu hast {1}\u00a7a {0} gegeben.
|
||||
month=Monat
|
||||
months=Monate
|
||||
moreThanZero=\u00a74Anzahl muss gr\u00f6sser als 0 sein.
|
||||
moveSpeed=\u00a76Setze {0}-Geschwindigkeit f\u00fcr {2} \u00a76auf \u00a7c{1}\u00a76.
|
||||
msgFormat=\u00a76[{0}\u00a76 -> {1}\u00a76] \u00a7r{2}
|
||||
moveSpeed=\u00a76Setze {0}-Geschwindigkeit f\u00fcr \u00a7c{2} \u00a76auf \u00a7c{1}.
|
||||
msgFormat=\u00a76[\u00a7c{0}\u00a76 -> \u00a7c{1}\u00a76] \u00a7r{2}
|
||||
multipleCharges=\u00a74Du kannst einem Feuerwerk nur einen Feuerwerksstern geben.
|
||||
multiplePotionEffects=\u00a74Du kannst diesem Trank nur einen Effekt geben.
|
||||
muteExempt=\u00a74Du darfst diesen Spieler nicht stumm machen.
|
||||
muteNotify=\u00a7c{0} \u00a76hat \u00a7c{1}\u00a76 stumm gemacht.
|
||||
muteNotify=\u00a7c{0} \u00a76hat Spieler \u00a7c{1}\u00a76 stumm geschaltet.
|
||||
mutedPlayer=\u00a76Spieler\u00a7c {0}\u00a76 ist nicht mehr stumm.
|
||||
mutedPlayerFor=\u00a76Spieler\u00a7c {0} \u00a76ist nun stumm f\u00fcr\u00a7c {1} \u00a76.
|
||||
mutedUserSpeaks={0} versuchte zu sprechen, aber ist stumm geschaltet.
|
||||
@@ -262,12 +262,12 @@ nickDisplayName=\u00a74Du musst change-displayname in der Essentials-Konfigurati
|
||||
nickInUse=\u00a74Dieser Name wird bereits verwendet.
|
||||
nickNamesAlpha=\u00a74Nicknamen d\u00fcrfen nur alphanumerische Zeichen enthalten.
|
||||
nickNoMore=\u00a76Du hast keinen Spitznamen mehr.
|
||||
nickSet=\u00a76Dein Spitzname ist nun \u00a7c{0}
|
||||
nickSet=\u00a76Dein Spitzname ist nun \u00a7c{0}.
|
||||
nickTooLong=\u00a74Dieser Spitzname ist zu lang.
|
||||
noAccessCommand=\u00a74Du hast keinen Zugriff auf diesen Befehl.
|
||||
noAccessPermission=\u00a74Du hast keine Rechte, den Block {0} zu benutzen.
|
||||
noAccessPermission=\u00a74Du hast keine Rechte dies zu betreten \u00a7c{0}\u00a74.
|
||||
noBreakBedrock=\u00a74Du darfst Grundgestein nicht zerst\u00f6ren.
|
||||
noDestroyPermission=\u00a74Du hast keine Rechte, den Block {0} zu zerst\u00f6ren.
|
||||
noDestroyPermission=\u00a74Du hast keine Rechte dies zu zerst\u00f6ren \u00a7c{0}\u00a74.
|
||||
noDurability=\u00a74Dieser Gegenstand hat keine Haltbarkeit.
|
||||
noGodWorldWarning=\u00a74Warnung\! Unsterblichkeitsmodus ist in dieser Welt deaktiviert.
|
||||
noHelpFound=\u00a74Keine \u00fcbereinstimmenden Befehle.
|
||||
@@ -300,8 +300,8 @@ now=jetzt
|
||||
nuke=\u00a75M\u00f6ge der Tod auf Sie hernieder prasseln\!
|
||||
numberRequired=Ein Zahl wird ben\u00f6tigt.
|
||||
onlyDayNight=/time unterst\u00fctzt nur day und night.
|
||||
onlyPlayerSkulls=\u00a74Du kannst den Besitzer nur bei Spieler-Sch\u00e4deln (397\:3) \u00e4ndern.
|
||||
onlyPlayers=\u00a74Nur Spieler k\u00f6nnen {0} benutzen.
|
||||
onlyPlayerSkulls=\u00a74Du kannst nur den Besitzer von Spielerk\u00f6pfen (\u00a7c397\:3\u00a74) \u00e4ndern.
|
||||
onlyPlayers=\u00a74Nur in-Game-Spieler k\u00f6nnen \u00a7c{0} \u00a74benutzen.
|
||||
onlySunStorm=\u00a74/weather unterst\u00fctzt nur sun und storm.
|
||||
orderBalances=\u00a76Ordne die Kontost\u00e4nde von\u00a7c {0} \u00a76Benutzern, bitte warten ...
|
||||
oversizedTempban=\u00a74Du darfst einen Spieler nicht f\u00fcr so eine lange Zeit sperren.
|
||||
@@ -321,8 +321,8 @@ pWeatherPlayers=\u00a76Diese Spieler haben ihr eigenes Wetter\:\u00a7r
|
||||
pWeatherReset=\u00a76Das Spielerwetter wurde zur\u00fcckgesetzt f\u00fcr\: \u00a7c{0}
|
||||
pWeatherSet=\u00a76Spielerwetter gesetzt auf \u00a7c{0}\u00a76 f\u00fcr\: \u00a7c{1}.
|
||||
pendingTeleportCancelled=\u00a74Laufende Teleportierung abgebrochen.
|
||||
playerBanIpAddress=\u00a76Spieler\u00a7c {0} \u00a76hat die IP Adresse {1} \u00a76gesperrt.
|
||||
playerBanned=\u00a76Spieler\u00a7c {0} \u00a76hat {1} \u00a76gesperrt f\u00fcr {2}.
|
||||
playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address\u00a7c {1} \u00a76for\: \u00a7c{2}\u00a76.
|
||||
playerBanned=\u00a76Spieler\u00a7c {0} \u00a76wurde gebannt\u00a7c {1} \u00a76f\u00fcr \u00a7c{2}\u00a76.
|
||||
playerInJail=\u00a74Spieler ist bereits in Gef\u00e4ngnis\u00a7c {0}\u00a76.
|
||||
playerJailed=\u00a76Spieler\u00a7c {0} \u00a76eingesperrt.
|
||||
playerJailedFor=\u00a76Spieler\u00a7c {0} \u00a76eingesperrt f\u00fcr {1}.
|
||||
@@ -340,33 +340,33 @@ posX=\u00a76X\: {0} (+Ost <-> -West)
|
||||
posY=\u00a76Y\: {0} (+Hoch <-> -Runter)
|
||||
posYaw=\u00a76Yaw\: {0} (Drehung)
|
||||
posZ=\u00a76Z\: {0} (+S\u00fcd <-> -Nord)
|
||||
possibleWorlds=\u00a76M\u00f6gliche Welten sind nummeriert von 0 bis {0}.
|
||||
possibleWorlds=\u00a76M\u00f6gliche Welten sind die Nummern \u00a7c0\u00a76 bis \u00a7c{0}\u00a76.
|
||||
potions=\u00a76Zaubertr\u00e4nke\:\u00a7r {0}\u00a76.
|
||||
powerToolAir=\u00a74Befehl kann nicht mit Luft verbunden werden.
|
||||
powerToolAlreadySet=\u00a74Befehl \u00a7c{0}\u00a74 ist bereits an {1} gebunden.
|
||||
powerToolAlreadySet=\u00a74Der Command \u00a7c{0}\u00a74 ist bereits \u00a7c{c{1}\u00a74 zugewiesen.
|
||||
powerToolAttach=\u00a76Befehl \u00a7c{0}\u00a7f erfolgreich an {1} gebunden.
|
||||
powerToolClearAll=\u00a76Alle Powertoolbefehle wurden entfernt.
|
||||
powerToolList=\u00a76Gegenstand \u00a7c{1} \u00a76hat die folgenden Befehle\: \u00a7c{0}\u00a76.
|
||||
powerToolListEmpty=\u00a74Gegenstand \u00a7c{0} $4hat keinen Befehl.
|
||||
powerToolNoSuchCommandAssigned=\u00a74Befehl \u00a7c{0}\u00a74 wurde nicht an {1} gebunden.
|
||||
powerToolRemove=\u00a76Befehl \u00a7c{0}\u00a76 erfolgreich von {1} entfernt.
|
||||
powerToolRemoveAll=\u00a76Alle Befehle von {0} entfernt.
|
||||
powerToolNoSuchCommandAssigned=\u00a74Command \u00a7c{0}\u00a74 has not been assigned to \u00a7c{1}\u00a74.
|
||||
powerToolRemove=\u00a76Command \u00a7c{0}\u00a76 removed from \u00a7c{1}\u00a76.
|
||||
powerToolRemoveAll=\u00a76All commands removed from \u00a7c{0}\u00a76.
|
||||
powerToolsDisabled=\u00a76Alle deine Powertools wurden deaktiviert.
|
||||
powerToolsEnabled=\u00a76Alle deine Powertools wurden aktiviert.
|
||||
questionFormat=\u00a72[Frage]\u00a7r {0}
|
||||
readNextPage=\u00a76Tippe\u00a7c /{0} {1} \u00a76f\u00fcr die n\u00e4chste Seite.
|
||||
recipe=\u00a76Rezept f\u00fcr \u00a7c{0}\u00a76 ({1} von {2})
|
||||
recipe=\u00a76Recipe for \u00a7c{0}\u00a76 (\u00a7c{1}\u00a76 of \u00a7c{2}\u00a76)
|
||||
recipeBadIndex=Es gibt kein Rezept mit dieser Nummer.
|
||||
recipeFurnace=\u00a76Schmelze \u00a7c{0}
|
||||
recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
|
||||
recipeGridItem=\u00a0\u00a7{0}X \u00a76ist \u00a7c{1}
|
||||
recipeFurnace=\u00a76Smelt\: \u00a7c{0}\u00a76.
|
||||
recipeGrid=\u00a7c{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
|
||||
recipeGridItem=\u00a7c{0}X \u00a76ist \u00a7c{1}
|
||||
recipeMore=\u00a76Tippe /{0} \u00a7c{1}\u00a76 <Nummer> um andere Rezepte f\u00fcr \u00a7c{2}\u00a76 anzuschauen.
|
||||
recipeNone=Keine Rezepte f\u00fcr {0}
|
||||
recipeNothing=nichts
|
||||
recipeShapeless=\u00a76Kombiniere \u00a7c{0}
|
||||
recipeWhere=\u00a76Wo\: {0}
|
||||
removed=\u00a7c{0} \u00a76Einheiten entfernt.
|
||||
repair=\u00a76Du hast erfolgreich deine\u00a7c {0}\u00a76 repariert.
|
||||
repair=\u00a76Dein \u00a7c{0}\u00a76wurde erfolgreich repariert.
|
||||
repairAlreadyFixed=\u00a74Dieser Gegenstand ben\u00f6tigt keine Reparatur.
|
||||
repairEnchanted=\u00a74Du darfst keine verzauberten Gegenst\u00e4nde reparieren.
|
||||
repairInvalidType=\u00a74Dieser Gegenstand kann nicht repariert werden.
|
||||
@@ -379,18 +379,18 @@ requestSent=\u00a76Anfrage gesendet an\u00a7c {0}\u00a76.
|
||||
requestTimedOut=\u00a74Teleportierungsanfrage ist abgelaufen.
|
||||
requiredBukkit=\u00a76* \! * Du brauchst mindestens CraftBukkit Build \#{0}, lade es von http\://dl.bukkit.org/downloads/craftbukkit/
|
||||
resetBal=\u00a76Kontostand aller Spieler auf dem Server auf \u00a7a{0} \u00a76gesetzt.
|
||||
resetBalAll=\u00a76Kontostand aller Spieler auf \u00a7a{0} \u00a76gesetzt.
|
||||
returnPlayerToJailError=\u00a74Fehler beim Zur\u00fcckversetzen von\u00a7c {0} \u00a74in''s Gef\u00e4ngis\: {1}\!
|
||||
resetBalAll=\u00a76Balance has been reset to \u00a7c{0} \u00a76for all players.
|
||||
returnPlayerToJailError=\u00a74Fehler beim Zur\u00fcckversetzen von\u00a7c {0} \u00a74in Gef\u00e4ngis\: {1}\!
|
||||
runningPlayerMatch=\u00a76Suche nach Spielern mit ''\u00a7c{0}\u00a76'' im Namen (das kann etwas dauern)
|
||||
second=Sekunde
|
||||
seconds=Sekunden
|
||||
seenOffline=\u00a76Spieler\u00a7c {0} \u00a76ist \u00a74offline\u00a76 seit {1}
|
||||
seenOnline=\u00a76Spieler\u00a7c {0} \u00a76ist \u00a7aonline\u00a76 seit {1}
|
||||
seenOffline=\u00a76SSpieler\u00a7c {0} \u00a76ist \u00a74offline\u00a76 seit \u00a7c{1}\u00a76.
|
||||
seenOnline=\u00a76SSpieler\u00a7c {0} \u00a76ist \u00a74online\u00a76 seit \u00a7c{1}\u00a76.
|
||||
serverFull=Server ist voll
|
||||
serverTotal=\u00a76Server insgesamt\:\u00a7c {0}
|
||||
setBal=\u00a7aDein Kontostand wurde auf {0} gesetzt.
|
||||
setBalOthers=\u00a7aDu hast den Kontostand von {0}\u00a7a auf {1} gesetzt.
|
||||
setSpawner=\u00a76Mob-Spawner-Typ zu \u00a7c{0}\u00a76 ge\u00e4ndert
|
||||
setSpawner=\u00a76Mob-Spawner-Typ zu \u00a7c{0}\u00a76 ge\u00e4ndert.
|
||||
sheepMalformedColor=\u00a74Ung\u00fcltige Farbe.
|
||||
shoutFormat=\u00a76[Schrei]\u00a7r {0}
|
||||
signFormatFail=\u00a74[{0}]
|
||||
@@ -399,12 +399,12 @@ signFormatTemplate=[{0}]
|
||||
signProtectInvalidLocation=\u00a74Du hast keine Rechte ein Schild hier zu setzen.
|
||||
similarWarpExist=\u00a74Ein Warp-Punkt mit einem \u00e4hnlichen Namen existiert bereits.
|
||||
slimeMalformedSize=\u00a74Ung\u00fcltige Gr\u00f6sse.
|
||||
socialSpy=\u00a76SocialSpy f\u00fcr {0}\u00a76\: {1}
|
||||
socialSpy=\u00a76SocialSpy f\u00fcr \u00a7c {0} \u00a7 6\: \u00a7c {1}
|
||||
soloMob=\u00a74Das Monster m\u00f6chte allein sein.
|
||||
spawnSet=\u00a76Spawn-Punkt gesetzt f\u00fcr Gruppe \u00a7c{0}\u00a76.
|
||||
spawned=erzeugt
|
||||
sudoExempt=\u00a74Du kannst f\u00fcr diesen Spieler kein sudo-Kommando ausf\u00fchren.
|
||||
sudoRun=\u00a7c{0}\u00a76 benutzt via sudo das Kommando\:\u00a7r /{1} {2}
|
||||
sudoRun=\u00a76Forcing\u00a7c {0} \u00a76to run\:\u00a7r /{1}
|
||||
suicideMessage=\u00a76Ad\u00e9, du schn\u00f6de Welt...
|
||||
suicideSuccess=\u00a76{0} \u00a76hat sich das Leben genommen.
|
||||
survival=\u00dcberleben
|
||||
@@ -420,18 +420,19 @@ teleportRequest=\u00a7c{0}\u00a76 fragt, ob er sich zu dir teleportieren darf.
|
||||
teleportRequestTimeoutInfo=\u00a76Diese Anfrage wird nach\u00a7c {0} Sekunden\u00a76 ung\u00fcltig.
|
||||
teleportTop=\u00a76Teleportiere nach oben.
|
||||
teleportationCommencing=\u00a76Teleportierung gestartet...
|
||||
teleportationDisabled=\u00a76Teleportierung deaktiviert.
|
||||
teleportationDisabledFor=\u00a76Teleportation deaktiviert f\u00fcr {0}.
|
||||
teleportationEnabled=\u00a76Teleportierung aktiviert.
|
||||
teleportationEnabledFor=\u00a76Teleportation enabled for {0}
|
||||
teleportationDisabled=\u00a76Teleportation \u00a7cdeaktiviert\u00a76.
|
||||
teleportationDisabledFor=\u00a76Teleportation \u00a7cdisabled \u00a76for \u00a7c{0}\u00a76.
|
||||
teleportationEnabled=\u00a76Teleportation \u00a7cenabled\u00a76.
|
||||
teleportationEnabledFor=\u00a76Teleportation \u00a7cenabled \u00a76for \u00a7c{0}\u00a76.
|
||||
teleporting=\u00a76Teleportiere...
|
||||
tempBanned=Zeitlich gesperrt vom Server f\u00fcr {0}
|
||||
teleportToPlayer=\u00a76teleportieren zu \u00a7c{0}\u00a76.
|
||||
tempBanned=\u00a7cYou have been temporarily banned for {0}\:\n\u00a7r{2}
|
||||
tempbanExempt=\u00a74Du kannst diesen Spieler nicht zeitlich sperren.
|
||||
thunder=\u00a76Es donnert nun in deiner Welt \u00a7c{0}\u00a76.
|
||||
thunderDuration=\u00a76Es donnert nun f\u00fcr\u00a7c {1} \u00a76Sekunden in deiner Welt\u00a7c {0}\u00a76.
|
||||
timeBeforeHeal=\u00a74Zeit bis zur n\u00e4chsten Heilung\:\u00a7c {0}\u00a76.
|
||||
timeBeforeTeleport=\u00a74Zeit bis zum n\u00e4chsten Teleport\:\u00a7c {0}
|
||||
timeFormat=\u00a7c{0}\u00a76 oder \u00a7c{1}\u00a76 oder \u00a7c{2}\u00a76.
|
||||
timeFormat=\u00a7c{0}\u00a76 or \u00a7c{1}\u00a76 or \u00a7c{2}\u00a76
|
||||
timeSetPermission=\u00a74Du hast keine Berechtigung die Zeit zu \u00e4ndern.
|
||||
timeWorldCurrent=\u00a76Die aktuelle Zeit in\u00a7c {0} \u00a76ist \u00a7c{1}
|
||||
timeWorldSet=Die Zeit in \u00a7c{1}\u00a7f wurde zu {0} gesetzt.
|
||||
@@ -446,12 +447,12 @@ true=\u00a7aja\u00a7r
|
||||
typeTpaccept=\u00a76Um zu teleportieren, schreibe \u00a7c/tpaccept\u00a76.
|
||||
typeTpdeny=\u00a76Um diese Anfrage abzulehnen, schreibe \u00a7c/tpdeny\u00a76.
|
||||
typeWorldName=\u00a76Du kannst auch den Namen der Welt eingeben.
|
||||
unableToSpawnMob=\u00a74Fehler beim Erzeugen eines Monster.
|
||||
unableToSpawnMob=\u00a74Fehler beim Erzeugen des Monsters.
|
||||
unignorePlayer=\u00a76Du ignorierst Spieler\u00a7c {0} \u00a76nicht mehr.
|
||||
unknownItemId=\u00a74Unbekannte Gegenstandsnummer\:\u00a7r {0}\u00a74.
|
||||
unknownItemInList=\u00a74Unbekannter Gegenstand {0} in Liste {1}.
|
||||
unknownItemName=\u00a74Unbekannter Gegenstand\: {0}.
|
||||
unlimitedItemPermission=\u00a74Du hast keine Rechte f\u00fcr unendlich {0}.
|
||||
unlimitedItemPermission=\u00a74No permission for unlimited item \u00a7c{0}\u00a74.
|
||||
unlimitedItems=\u00a76Unendliche Objekte\:\u00a7r
|
||||
unmutedPlayer=\u00a76Spieler\u00a7c {0}\u00a76 ist nicht mehr stumm.
|
||||
unvanishedReload=\u00a74Ein Neuladen des Servers hat dich sichtbar gemacht.
|
||||
@@ -470,7 +471,7 @@ vanished=\u00a76Du bist nun vollst\u00e4ndig unsichtbar f\u00fcr normale Benutze
|
||||
versionMismatch=\u00a74Versionen nicht identisch\! Bitte aktualisiere {0}.
|
||||
versionMismatchAll=\u00a74Versionen ungleich\! Bitte aktualisiere alle Essentials jars auf die gleiche Version.
|
||||
voiceSilenced=\u00a76Du bist nun stumm\!
|
||||
walking=geht
|
||||
walking=Bewegungs
|
||||
warpDeleteError=\u00a74Fehler beim L\u00f6schen der Warp-Datei.
|
||||
warpList={0}
|
||||
warpListPermission=\u00a74Du hast keine Berechtigung, die Warp-Punkte anzuzeigen.
|
||||
@@ -480,7 +481,7 @@ warpSet=\u00a76Warp-Punkt\u00a7c {0} \u00a76wurde erstellt.
|
||||
warpUsePermission=\u00a74Du hast keinen Zugriff f\u00fcr diesen Warp-Punkt.
|
||||
warpingTo=\u00a76Teleportiere zu Warp-Punkt\u00a7c {0}\u00a76.
|
||||
warps=\u00a76Warp-Punkte\:\u00a7r {0}
|
||||
warpsCount=\u00a76Es gibt\u00a7c {0} \u00a76Warp-Punkte. Zeige Seite {1} von {2}.
|
||||
warpsCount=\u00a76There are\u00a7c {0} \u00a76warps. Showing page \u00a7c{1} \u00a76of \u00a7c{2}\u00a76.
|
||||
weatherStorm=\u00a76In \u00a7c{0} \u00a76st\u00fcrmt es nun.
|
||||
weatherStormFor=\u00a76In \u00a7c{0} \u00a76st\u00fcrmt es nun f\u00fcr {1} Sekunden.
|
||||
weatherSun=\u00a76In \u00a7c{0}\u00a76 scheint nun die \u00a7cSonne\u00a76.
|
||||
@@ -532,18 +533,26 @@ tempbanExemptOffline=\u00a74Du darfst abgemeldete Spieler nicht tempor\u00e4r ba
|
||||
mayNotJailOffline=\u00a74Du darfst abgemeldete Spieler nicht einsperren.
|
||||
muteExemptOffline=\u00a74Du darfst abgemeldete Spieler nicht stummschalten.
|
||||
ignoreExempt=\u00a74Du kannst diesen Spieler nicht ignorieren.
|
||||
unsafeTeleportDestination=\u00a74The teleport destination is unsafe and teleport-safety is disabled.
|
||||
noMetaJson=JSON Metadata is not supported in this version of Bukkit.
|
||||
maxMoney=\u00a74This transaction would exceed the balance limit for this account.
|
||||
skullChanged=\u00a76Skull changed to \u00a7c{0}.\u00a76.
|
||||
alphaNames=\u00a74Player names can only contain letters, numbers and underscores.
|
||||
givenSkull=\u00a76You have been given the Skull of \u00a7c{0}\u00a76.
|
||||
noPermissionSkull=\u00a74You do not have permission to modify that Skull.
|
||||
teleportInvalidLocation=Value of coordinates cannot be over 30000000
|
||||
invalidSkull=\u00a74Please hold a player Skull.
|
||||
weatherInvalidWorld=World named {0} not found\!
|
||||
gameModeInvalid=\u00a74You need to specify a valid player/mode.
|
||||
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
|
||||
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
|
||||
seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
|
||||
unsafeTeleportDestination=\u00a74Das Teleport-Ziel ist nicht sicher und der Teleportschutz ist nicht aktiv.
|
||||
noMetaJson=JSON MetaDaten werden in dieser Bukkit-Version nicht unterst\u00fctzt.
|
||||
maxMoney=\u00a74Diese \u00dcberweisung \u00fcberschreitet das Limit des Empf\u00e4ngers.
|
||||
skullChanged=\u00a76Skull changed to \u00a7c{0}\u00a76.
|
||||
alphaNames=\u00a74Spieler Namen k\u00f6nnen nur Buchstaben, Zahlen und Unterstriche enthalten.
|
||||
givenSkull=\u00a76Dir wurde der Kopf von \u00a7c{0}\u00a76 gegeben.
|
||||
noPermissionSkull=$4Du hast nicht die Berechtigung diesen Kopf zu \u00e4ndern.
|
||||
teleportInvalidLocation=Der Wert der angegebenen Koordinaten darf nicht \u00fcber 30000000 sein
|
||||
invalidSkull=\u00a74Bitte halte einen Spielerkopf in der Hand.
|
||||
weatherInvalidWorld=Welt mit dem Namen {0} wurde nicht gefunden\!
|
||||
gameModeInvalid=\u00a74Sie m\u00fcssen einen g\u00fcltigen Spieler/Modus angeben.
|
||||
mailTooLong=\u00a74Nachricht zu lang. Schreibe nicht mehr als 1000 Zeichen.
|
||||
mailDelay=In der letzten Minute wurden zu viele Mails gesendet. Maximum\: {0}
|
||||
seenAccounts=\u00a76Player has also been known as\:\u00a7c {0}
|
||||
unableToSpawnItem=\u00a74Cannot spawn \u00a7c{0}\u00a74, this is not a spawnable item.
|
||||
itemsConverted=\u00a76Converted all items into blocks.
|
||||
itemsNotConverted=\u00a74You have no items that can be converted into blocks.
|
||||
mailSentTo=\u00a7c{0}\u00a76 has been sent the following mail\:
|
||||
mailMessage={0}
|
||||
|
||||
whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0}
|
||||
playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76.
|
||||
mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1}
|
||||
|
@@ -27,7 +27,7 @@ balance=\u00a7aBalance\:\u00a7c {0}
|
||||
balanceOther=\u00a7aBalance of {0}\u00a7a\:\u00a7c {1}
|
||||
balanceTop=\u00a76Top balances ({0})
|
||||
banExempt=\u00a74You cannot ban that player.
|
||||
banFormat=\u00a74Banned\:\n\u00a7r{0}
|
||||
banFormat=\u00a7cYou have been banned\:\n\u00a7r{0}
|
||||
bed=\u00a7obed\u00a7r
|
||||
bedMissing=\u00a74Your bed is either unset, missing or blocked.
|
||||
bedNull=\u00a7mbed\u00a7r
|
||||
@@ -99,7 +99,7 @@ enchantmentNotFound=\u00a74Enchantment not found\!
|
||||
enchantmentPerm=\u00a74You do not have the permission for\u00a7c {0}\u00a74.
|
||||
enchantmentRemoved=\u00a76The enchantment\u00a7c {0} \u00a76has been removed from your item in hand.
|
||||
enchantments=\u00a76Enchantments\:\u00a7r {0}
|
||||
errorCallingCommand=Error calling command /{0}.
|
||||
errorCallingCommand=Error calling the command /{0}
|
||||
errorWithMessage=\u00a7cError\:\u00a74 {0}
|
||||
essentialsHelp1=The file is broken and Essentials can''t open it. Essentials is now disabled. If you can''t fix the file yourself, go to http\://tiny.cc/EssentialsChat
|
||||
essentialsHelp2=The file is broken and Essentials can''t open it. Essentials is now disabled. If you can''t fix the file yourself, either type /essentialshelp in game or go to http\://tiny.cc/EssentialsChat
|
||||
@@ -129,7 +129,7 @@ gcmax=\u00a76Maximum memory\:\u00a7c {0} MB.
|
||||
gctotal=\u00a76Allocated memory\:\u00a7c {0} MB.
|
||||
geoIpUrlEmpty=GeoIP download url is empty.
|
||||
geoIpUrlInvalid=GeoIP download url is invalid.
|
||||
geoipJoinFormat=\u00a76Player \u00a7c{0} \u00a76comes from\u00a7c {1}\u00a76.
|
||||
geoipJoinFormat=\u00a76Player \u00a7c{0} \u00a76comes from \u00a7c{1}\u00a76.
|
||||
giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
|
||||
godDisabledFor=\u00a7cdisabled\u00a76 for\u00a7c {0}
|
||||
godEnabledFor=\u00a7aenabled\u00a76 for\u00a7c {0}
|
||||
@@ -155,7 +155,7 @@ holdBook=\u00a74You are not holding a writable book.
|
||||
holdFirework=\u00a74You must be holding a firework to add effects.
|
||||
holdPotion=\u00a74You must be holding a potion to apply effects to it.
|
||||
holeInFloor=\u00a74Hole in floor\!
|
||||
homeSet=\u00a76Home set.
|
||||
homeSet=\u00a76Home set to current location.
|
||||
homes=\u00a76Homes\:\u00a7r {0}
|
||||
hour=hour
|
||||
hours=hours
|
||||
@@ -321,8 +321,8 @@ pWeatherPlayers=\u00a76These players have their own weather\:\u00a7r
|
||||
pWeatherReset=\u00a76Player weather has been reset for\: \u00a7c{0}
|
||||
pWeatherSet=\u00a76Player weather is set to \u00a7c{0}\u00a76 for\: \u00a7c{1}.
|
||||
pendingTeleportCancelled=\u00a74Pending teleportation request cancelled.
|
||||
playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address\:\u00a7c {1}\u00a76.
|
||||
playerBanned=\u00a76Player\u00a7c {0} \u00a76banned\u00a7c {1} \u00a76for \u00a7c{2}\u00a76.
|
||||
playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address\u00a7c {1} \u00a76for\: \u00a7c{2}\u00a76.
|
||||
playerBanned=\u00a76Player\u00a7c {0} \u00a76banned\u00a7c {1} \u00a76for\: \u00a7c{2}\u00a76.
|
||||
playerInJail=\u00a74Player is already in jail\u00a7c {0}\u00a74.
|
||||
playerJailed=\u00a76Player\u00a7c {0} \u00a76jailed.
|
||||
playerJailedFor=\u00a76Player\u00a7c {0} \u00a76jailed for {1}.
|
||||
@@ -345,7 +345,7 @@ potions=\u00a76Potions\:\u00a7r {0}\u00a76.
|
||||
powerToolAir=\u00a74Command can''t be attached to air.
|
||||
powerToolAlreadySet=\u00a74Command \u00a7c{0}\u00a74 is already assigned to \u00a7c{1}\u00a74.
|
||||
powerToolAttach=\u00a7c{0}\u00a76 command assigned to {1}.
|
||||
powerToolClearAll=\u00a76All power tool commands have been cleared.
|
||||
powerToolClearAll=\u00a76All powertool commands have been cleared.
|
||||
powerToolList=\u00a76Item \u00a7c{1} \u00a76has the following commands\: \u00a7c{0}\u00a76.
|
||||
powerToolListEmpty=\u00a74Item \u00a7c{0} \u00a74has no commands assigned.
|
||||
powerToolNoSuchCommandAssigned=\u00a74Command \u00a7c{0}\u00a74 has not been assigned to \u00a7c{1}\u00a74.
|
||||
@@ -404,7 +404,7 @@ soloMob=\u00a74That mob likes to be alone.
|
||||
spawnSet=\u00a76Spawn location set for group\u00a7c {0}\u00a76.
|
||||
spawned=spawned
|
||||
sudoExempt=\u00a74You cannot sudo this user.
|
||||
sudoRun=\u00a76Forcing\u00a7c {0} \u00a76to run\:\u00a7r /{1} {2}
|
||||
sudoRun=\u00a76Forcing\u00a7c {0} \u00a76to run\:\u00a7r /{1}
|
||||
suicideMessage=\u00a76Goodbye cruel world...
|
||||
suicideSuccess=\u00a76Player \u00a7c{0} \u00a76took their own life.
|
||||
survival=survival
|
||||
@@ -420,12 +420,13 @@ teleportRequest=\u00a7c{0}\u00a76 has requested to teleport to you.
|
||||
teleportRequestTimeoutInfo=\u00a76This request will timeout after\u00a7c {0} seconds\u00a76.
|
||||
teleportTop=\u00a76Teleporting to top.
|
||||
teleportationCommencing=\u00a76Teleportation commencing...
|
||||
teleportationDisabled=\u00a76Teleportation disabled.
|
||||
teleportationDisabledFor=\u00a76Teleportation disabled for \u00a7c{0}\u00a76.
|
||||
teleportationEnabled=\u00a76Teleportation enabled.
|
||||
teleportationEnabledFor=\u00a76Teleportation enabled for \u00a7c{0}\u00a76.
|
||||
teleportationDisabled=\u00a76Teleportation \u00a7cdisabled\u00a76.
|
||||
teleportationDisabledFor=\u00a76Teleportation \u00a7cdisabled \u00a76for \u00a7c{0}\u00a76.
|
||||
teleportationEnabled=\u00a76Teleportation \u00a7cenabled\u00a76.
|
||||
teleportationEnabledFor=\u00a76Teleportation \u00a7cenabled \u00a76for \u00a7c{0}\u00a76.
|
||||
teleporting=\u00a76Teleporting...
|
||||
tempBanned=Temporarily banned from server for {0}.
|
||||
teleportToPlayer=\u00a76Teleporting to \u00a7c{0}\u00a76.
|
||||
tempBanned=\u00a7cYou have been temporarily banned for {0}\:\n\u00a7r{2}
|
||||
tempbanExempt=\u00a74You may not tempban that player.
|
||||
thunder=\u00a76You\u00a7c {0} \u00a76thunder in your world.
|
||||
thunderDuration=\u00a76You\u00a7c {0} \u00a76thunder in your world for\u00a7c {1} \u00a76seconds.
|
||||
@@ -473,7 +474,7 @@ voiceSilenced=\u00a76Your voice has been silenced\!
|
||||
walking=walking
|
||||
warpDeleteError=\u00a74Problem deleting the warp file.
|
||||
warpList={0}
|
||||
warpListPermission=\u00a74You do not have Permission to list warps.
|
||||
warpListPermission=\u00a74You do not have permission to list warps.
|
||||
warpNotExist=\u00a74That warp does not exist.
|
||||
warpOverwrite=\u00a74You cannot overwrite that warp.
|
||||
warpSet=\u00a76Warp\u00a7c {0} \u00a76set.
|
||||
@@ -531,19 +532,26 @@ banExemptOffline=\u00a74You may not ban offline players.
|
||||
tempbanExemptOffline=\u00a74You may not tempban offline players.
|
||||
mayNotJailOffline=\u00a74You may not jail offline players.
|
||||
muteExemptOffline=\u00a74You may not mute offline players.
|
||||
ignoreExempt=\u00a74You cannot ignore that player.
|
||||
ignoreExempt=\u00a74You may not ignore that player.
|
||||
unsafeTeleportDestination=\u00a74The teleport destination is unsafe and teleport-safety is disabled.
|
||||
noMetaJson=JSON Metadata is not supported in this version of Bukkit.
|
||||
maxMoney=\u00a74This transaction would exceed the balance limit for this account.
|
||||
skullChanged=\u00a76Skull changed to \u00a7c{0}.\u00a76.
|
||||
skullChanged=\u00a76Skull changed to \u00a7c{0}\u00a76.
|
||||
alphaNames=\u00a74Player names can only contain letters, numbers and underscores.
|
||||
givenSkull=\u00a76You have been given the skull of \u00a7c{0}\u00a76.
|
||||
noPermissionSkull=\u00a74You do not have permission to modify that skull.
|
||||
teleportInvalidLocation=Value of coordinates cannot be over 30000000
|
||||
invalidSkull=\u00a74Please hold a player skull.
|
||||
weatherInvalidWorld=World named {0} not found!
|
||||
weatherInvalidWorld=World named {0} not found\!
|
||||
gameModeInvalid=\u00a74You need to specify a valid player/mode.
|
||||
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000 characters.
|
||||
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
|
||||
seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
|
||||
seenAccounts=\u00a76Player has also been known as\:\u00a7c {0}
|
||||
unableToSpawnItem=\u00a74Cannot spawn \u00a7c{0}\u00a74, this is not a spawnable item.
|
||||
itemsConverted=\u00a76Converted all items into blocks.
|
||||
itemsNotConverted=\u00a74You have no items that can be converted into blocks.
|
||||
mailSentTo=\u00a7c{0}\u00a76 has been sent the following mail\:
|
||||
mailMessage={0}
|
||||
whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0}
|
||||
playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76.
|
||||
mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1}
|
||||
|
@@ -9,8 +9,8 @@ addedToOthersAccount=\u00a7a{0} han sidos agregados a la cuenta de {1}\u00a7a. N
|
||||
adventure=aventura
|
||||
alertBroke=rompi\u00f3\:
|
||||
alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} en\: {3}
|
||||
alertPlaced=puesto\:
|
||||
alertUsed=Usado\:
|
||||
alertPlaced=colocado\:
|
||||
alertUsed=usado\:
|
||||
antiBuildBreak=\u00a74No puedes romper\u00a7c {0} \u00a74bloques aqu\u00ed.
|
||||
antiBuildCraft=\n\n\u00a74No tienes permiso para crear\u00a7c {0}\u00a74.
|
||||
antiBuildDrop=\u00a74No puedes tirar \u00a7c {0}\u00a74.
|
||||
@@ -22,11 +22,11 @@ backAfterDeath=\u00a76Usa el comando \u00a7c/back \u00a76para volver al lugar de
|
||||
backUsageMsg=\u00a76Volviendo a la ubicaci\u00f3n anterior.
|
||||
backupDisabled=\u00a74No se ha configurado un c\u00f3digo externo de copias de seguridad.
|
||||
backupFinished=Copia de seguridad completada.
|
||||
backupStarted=Comenzando copia de seguridad...
|
||||
balance=\u00a7aCantidad de dinero\: {0}
|
||||
balanceOther=\u00a7aEl dinero de {0}\u00a7a es en total\:\u00a7c {1}
|
||||
balanceTop=\u00a77Ranking de econom\u00edas ({0})
|
||||
banExempt=\u00a74No puedes banear a este jugador.
|
||||
backupStarted=\u00a76Copia de seguridad empezada.
|
||||
balance=\u00a7aDinero\:\u00a7c {0}
|
||||
balanceOther=\u00a7aDinero de {0} \u00a7a\:\u00a7c {1}
|
||||
balanceTop=\u00a76Ranking de econom\u00edas ({0})
|
||||
banExempt=\u00a74No puedes banear a ese jugador.
|
||||
banFormat=\u00a74Baneado\: \u00a7r {0}
|
||||
bed=\u00a7ocama\u00a7r
|
||||
bedMissing=\u00a7cTu cama no esta, se encuentra obstru\u00edda o no esta segura
|
||||
@@ -35,9 +35,9 @@ bedSet=\u00a76Cama establecida como lugar de aparicion\!
|
||||
bigTreeFailure=\u00a7cError al generar el \u00e1rbol grande. Prueba de nuevo en tierra, tierra h\u00fameda o hierba.
|
||||
bigTreeSuccess=\u00a76\u00c1rbol grande generado.
|
||||
blockList=\u00a76Essentials ha cedido los siguientes comandos a otros plugins\:
|
||||
bookAuthorSet=\u00a76Autor del libro cambiado a {0}.
|
||||
bookAuthorSet=\u00a76Ahora el autor de este libro es {0}.
|
||||
bookLocked=\u00a76El libro ha sido bloqueado.
|
||||
bookTitleSet=\u00a76Se ha cambiado el t\u00edtulo del libo a {0}.
|
||||
bookTitleSet=\u00a76Ahora el t\u00edtulo del libro es {0}.
|
||||
broadcast=\u00a7r\u00a76[\u00a74Difundido\u00a76]\u00a7a {0}
|
||||
buildAlert=\u00a74No tienes permisos para construir.
|
||||
bukkitFormatChanged=Formato de la versi\u00f3n de Bukkit cambiado. Versi\u00f3n no comprobada.
|
||||
@@ -46,7 +46,7 @@ canTalkAgain=\u00a77Ya puedes hablar de nuevo.
|
||||
cannotStackMob=\u00a74No tienes permiso para apilar tantos mobs.
|
||||
cantFindGeoIpDB=No se puede encontrar la base de datos del Geo IP.
|
||||
cantReadGeoIpDB=\u00a1Error al leer la base de datos de GeoIP\!
|
||||
cantSpawnItem=\u00a7cNo tienes acceso para producir este objeto {0}
|
||||
cantSpawnItem=\u00a74No tienes acceso para producir el \u00edtem\u00a7c {0}\u00a74.
|
||||
chatTypeAdmin=[A]
|
||||
chatTypeLocal=[L]
|
||||
chatTypeSpy=[Esp\u00eda]
|
||||
@@ -55,14 +55,14 @@ cleaning=Limpiando archivos de usuario.
|
||||
commandFailed=Comando {0} fallido\:
|
||||
commandHelpFailedForPlugin=Error al obtener ayuda para el plugin\: {0}
|
||||
commandNotLoaded=\u00a74El comando {0} no est\u00e1 cargado correctamente.
|
||||
compassBearing=\u00a76Bearing\: {0} ({1} grados).
|
||||
compassBearing=\u00a76Transporte\: {0} ({1} grados).
|
||||
configFileMoveError=Error al mover config.yml a la carpeta de la copia de seguridad.
|
||||
configFileRenameError=Error al renombrar archivo temp a config.yml.
|
||||
connectedPlayers=\u00a76Jugadores conectados\u00a7r
|
||||
connectionFailed=No se ha podido abrir la conexion.
|
||||
cooldownWithMessage=\u00a74Tiempo restante\:\u00a76 {0}
|
||||
corruptNodeInConfig=\u00a74Advertencia\: Tu archivo de configuraci\u00f3n tiene un nodo {0} incorrecto.
|
||||
couldNotFindTemplate=\u00a74No se puede encontrar la plantilla\u00a77 {0}
|
||||
couldNotFindTemplate=\u00a74No se puede encontrar la plantilla\u00a76 {0}
|
||||
creatingConfigFromTemplate=Creando configuraci\u00f3n desde la plantilla\: {0}
|
||||
creatingEmptyConfig=Creando configuraci\u00f3n vac\u00eda\: {0}
|
||||
creative=creativo
|
||||
@@ -74,25 +74,25 @@ defaultBanReason=\u00a1Baneado por mal comportamiento\!
|
||||
deleteFileError=No se puede eliminar archivo\: {0}
|
||||
deleteHome=\u00a77El hogar\u00a7c {0} \u00a77ha sido eliminado.
|
||||
deleteJail=\u00a77La c\u00e1rcel {0} \u00a77ha sido eliminada.
|
||||
deleteWarp=\u00a77El warp\u00a7c {0} \u00a77ha sido borrado.
|
||||
deleteWarp=\u00a76El warp\u00a7c {0} \u00a76ha sido borrado.
|
||||
deniedAccessCommand=\u00a7c{0} \u00a74ha denegado el acceso al comando.
|
||||
denyBookEdit=\u00a74No puedes desbloquear este libro.
|
||||
denyChangeAuthor=\u00a74No puedes cambiar el autor de este libro.
|
||||
denyChangeTitle=\u00a74No puedes cambiar el t\u00edtulo de este libro.
|
||||
depth=\u00a77Te encuentras en el nivel del mar.
|
||||
depthAboveSea=\u00a77Est\u00e1s {0} bloque(s) por encima del mar.
|
||||
depthBelowSea=\u00a76Est\u00e1s a\u00a7c {0} \u00a76bloque(s) por debajo del mar.
|
||||
depthAboveSea=\u00a76Est\u00e1s\u00a7c {0} \u00a76bloque(s) por encima del mar.
|
||||
depthBelowSea=\u00a76Est\u00e1s a\u00a7c {0} \u00a76bloque(s) por debajo del nivel del mar.
|
||||
destinationNotSet=\u00a1Destino no establecido\!
|
||||
disableUnlimited=\u00a77Desactivando colocacion ilimitada de \u00a7c{0} \u00a76para {1}.
|
||||
disableUnlimited=\u00a76La colocaci\u00f3n ilimitada de \u00a7c{0} \u00a76ha sido desactivada para {1}\u00a76.
|
||||
disabled=desactivado
|
||||
disabledToSpawnMob=\u00a74El spawn de este mob est\u00e1 deshabilitado en la configuraci\u00f3n.
|
||||
distance=\u00a76Distancia\: {0}
|
||||
dontMoveMessage=\u00a77El teletransporte comenzar\u00e1 en\u00a7c {0}\u00a77. Por favor, no te muevas.
|
||||
dontMoveMessage=\u00a76El teletransporte comenzar\u00e1 en\u00a7c {0}\u00a76. Por favor, no te muevas.
|
||||
downloadingGeoIp=Descargando base de datos de GeoIP... Puede tardar unos minutos (pa\u00edses\: 0.6 MB, ciudades\: 20 MB)
|
||||
duplicatedUserdata=Datos de usuario duplicados\: {0} y {1}
|
||||
durability=\u00a77Esta herramienta tiene \u00a7c{0}\u00a77 usos restantes.
|
||||
editBookContents=\u00a7eAhora puedes editar los contenidos de este libro.
|
||||
enableUnlimited=\u00a77Dando cantidad ilimitada de {0} a {1}.
|
||||
enableUnlimited=\u00a76Dando cantidad ilimitada de\u00a7c {0} \u00a76a \u00a7c{1}\u00a76.
|
||||
enabled=activado
|
||||
enchantmentApplied=\u00a76El encantamiento\u00a7c {0} \u00a76fue aplicado al objeto de tu mano.
|
||||
enchantmentNotFound=\u00a74\u00a1No se ha encontrado \u00e9ste encantamiento\!
|
||||
@@ -103,46 +103,46 @@ errorCallingCommand=Error al ejecutar el comando /{0}
|
||||
errorWithMessage=\u00a7cError\:\u00a74 {0}
|
||||
essentialsHelp1=Archivo corrupto, no es posible abrirlo. Essentials est\u00e1 ahora desactivado. Si no puedes arreglar el archivo, ve a http\://tiny.cc/EssentialsChat
|
||||
essentialsHelp2=Archivo corrupto, no es posible abrirlo. Essentials est\u00e1 ahora desactivado. Si no puedes arreglar el archivo, escribe /essentialshelp dentro del juego o ve a http\://tiny.cc/EssentialsChat
|
||||
essentialsReload=\u00a76El plugin Essentials ha sido recargado. La versi\u00f3n es\u00a7c {0}
|
||||
essentialsReload=\u00a76Essentials ha sido recargado. La versi\u00f3n es\u00a7c {0}.
|
||||
exp=\u00a7c{0} \u00a76tiene\u00a7c {1} \u00a76 de exp. (nivel\u00a7c {2}\u00a76) y necesita\u00a7c {3} \u00a76de exp para subir su nivel.
|
||||
expSet=\u00a7c{0} \u00a76ahora tiene\u00a7c {1} \u00a76de exp.
|
||||
extinguish=\u00a76Te has suicidado.
|
||||
extinguishOthers=\u00a76Has matado a {0}\u00a76.
|
||||
extinguishOthers=\u00a77Has matado a {0}.
|
||||
failedToCloseConfig=Error al cerrar configuraci\u00f3n {0}.
|
||||
failedToCreateConfig=Error al crear configuraci\u00f3n {0}.
|
||||
failedToWriteConfig=Error al escribir configuraci\u00f3n {0}.
|
||||
false=\u00a74falso\u00a7f
|
||||
feed=\u00a77Apetito satisfecho.
|
||||
feedOther=\u00a77Acabas de ser alimentado de poder UltraMinecraftiano\! Ahora tienes {0} muslitos llenos\!
|
||||
false=\u00a74no\u00a7r
|
||||
feed=\u00a76Tu apetito est\u00e1 satisfecho.
|
||||
feedOther=\u00a76Satisficiste el apetito de \u00a7c{0}\u00a76.
|
||||
fileRenameError=Error al renombrar el archivo {0}
|
||||
fireworkColor=\u00a74Par\u00e1metros inv\u00e1lidos. Inserta primero el color.
|
||||
fireworkEffectsCleared=\u00a77Borrados todos los efectos.
|
||||
fireworkSyntax=\u00a77Uso del cohete\:\u00a7c color\:<color> [color\:<color>] [forma\:<shape>] [efecto de explosi\u00f3n\:<effect>]\n\u00a77Para usar m\u00faltiples colores/efectos, separa los nombres mediante comas\: \u00a7cred,blue,pink\n\u00a77Formas\:\u00a7c star, ball, large, creeper, burst \u00a76Efectos\:\u00a7c trail, twinkle.
|
||||
flyMode=\u00a77Modo de vuelo\u00a7c {0} \u00a77para\u00a7c {1}\u00a77.
|
||||
flyMode=\u00a76Modo de vuelo\u00a7c {0} \u00a76para\u00a7c {1}\u00a76.
|
||||
flying=volando
|
||||
foreverAlone=\u00a7cNo tienes nadie a quien puedas responder.
|
||||
fullStack=\u00a74Ya tienes el stack completo.
|
||||
gameMode=\u00a76El modo de juego de\u00a7c {1} ha sido cambiado a\u00a7c {0}\u00a76.
|
||||
gameMode=\u00a76El modo de juego de\u00a7c {1} \u00a76ha sido cambiado a\u00a7c {0}\u00a76.
|
||||
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76"\: \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entidades, \u00a7c{4}\u00a76 tiles.
|
||||
gcfree=Memoria libre\: {0} MB
|
||||
gcmax=Memoria maxima\: {0} MB
|
||||
gctotal=Memoria asignada\: {0} MB.
|
||||
gcfree=\u00a76Memoria libre\:\u00a7c {0} MB.
|
||||
gcmax=\u00a76Memoria m\u00e1xima\:\u00a7c {0} MB.
|
||||
gctotal=\u00a76Memoria asignada\:\u00a7c {0} MB.
|
||||
geoIpUrlEmpty=El link para descargar GeoIP esta vacio.
|
||||
geoIpUrlInvalid=El link para descargar GeoIP es inv\u00e1lido.
|
||||
geoipJoinFormat=\u00a76El jugador \u00a7c{0} \u00a76viene de \u00a7c{1}\u00a76.
|
||||
giveSpawn=\u00a77Se ha dado\u00a7c {0} \u00a76de\u00a7c {1} a\u00a7c {2}\u00a76.
|
||||
godDisabledFor=desactivado para {0}
|
||||
godEnabledFor=activado para {0}
|
||||
godDisabledFor=\u00a7cdeshabilitado\u00a76 para\u00a7c {0}
|
||||
godEnabledFor=\u00a7aactivado\u00a76 para\u00a7c {0}
|
||||
godMode=\u00a77Modo de dios \u00a7c{0}\u00a77.
|
||||
groupDoesNotExist=\u00a74Nadie conectado en este grupo\!
|
||||
groupNumber=\u00a7c{0}\u00a7f conectados, para ver la lista completa\:\u00a7c /{1} {2}
|
||||
hatArmor=\u00a7cNo puedes usar este item como sombrero\!
|
||||
hatEmpty=\u00a7cNo est\u00e1s usando un sombrero.
|
||||
hatFail=\u00a7cDebes tener un item en tu mano para usarlo de sombrero.
|
||||
hatArmor=\u00a7c\u00a1No puedes usar este \u00edtem como sombrero\!
|
||||
hatEmpty=\u00a74No est\u00e1s usando sombrero.
|
||||
hatFail=\u00a74Necesitas tener un \u00edtem en tu mano para poder usarlo de sombrero.
|
||||
hatPlaced=\u00a7eDisfruta de tu nuevo sombrero\!
|
||||
hatRemoved=\u00a7eTu sombrero ha sido borrado.
|
||||
haveBeenReleased=\u00a77Has sido liberado.
|
||||
heal=\u00a77Has sido curado.
|
||||
heal=\u00a76Has sido curado.
|
||||
healDead=\u00a74\u00a1Est\u00e1 muerto, no puedes curarlo\!
|
||||
healOther=\u00a77Has curado a {0}.
|
||||
helpConsole=Para obtener ayuda de la consola, escribe ?.
|
||||
@@ -150,51 +150,51 @@ helpFrom=\u00a76Comandos de {0}\:
|
||||
helpLine=\u00a76/{0}\u00a7r\: {1}
|
||||
helpMatching=\u00a77Comandos que coinciden con "{0}"\:
|
||||
helpOp=\u00a74[Ayuda de Op]\u00a7r \u00a76{0}\:\u00a7r {1}
|
||||
helpPlugin=\u00a74{0}\u00a7f\: Ayuda con los plugins\: /help {1}
|
||||
helpPlugin=\u00a74{0}\u00a7r\: Ayuda para el plugin\: /help {1}
|
||||
holdBook=\u00a74No tienes un libro para escribir.
|
||||
holdFirework=\u00a74No tienes algun cohete al que agregar efectos.
|
||||
holdPotion=\u00a74No tienes pociones a las que agregar efectos.
|
||||
holeInFloor=\u00a74\u00a1No hay suelo en el spawn\! \u00a1Alguien lo ha roto\!
|
||||
holeInFloor=\u00a74\u00a1No hay suelo en el punto de aparici\u00f3n\!
|
||||
homeSet=\u00a77Hogar establecido.
|
||||
homes=\u00a76Hogares\:\u00a7r {0}
|
||||
hour=hora
|
||||
hours=horas
|
||||
ignoredList=\u00a77Ignorado\:\u00a7r {0}
|
||||
ignoredList=\u00a76Ignorado\:\u00a7r {0}
|
||||
ignorePlayer=A partir de ahora ignoras al jugador {0}.
|
||||
illegalDate=Formato de fecha ilegal.
|
||||
infoChapter=\u00a76Seleccionar cap\u00edtulo\:
|
||||
infoChapterPages=\u00a7e ---- \u00a77{0} \u00a7e--\u00a77 P\u00e1gina \u00a7c{1}\u00a77 de \u00a7c{2} \u00a7e----
|
||||
infoPages=\u00a7e ---- \u00a77{2} \u00a7e--\u00a77 P\u00e1gina \u00a74{0}\u00a77/\u00a74{1} \u00a7e----
|
||||
infoUnknownChapter=\u00a74Cap\u00edtulo desconocido.
|
||||
infoUnknownChapter=\u00a74Desconocido.
|
||||
insufficientFunds=\u00a74Te falta dinero.
|
||||
invalidCharge=\u00a74Carga no v\u00e1lida.
|
||||
invalidFireworkFormat=\u00a77La opci\u00f3n \u00a74 {0} \u00a77no es un valor v\u00e1lido para\u00a74 {1}\u00a77.
|
||||
invalidHome=\u00a1El hogar {0} no existe\!
|
||||
invalidHomeName=\u00a74Nombre de casa inv\u00e1lido\!
|
||||
invalidMob=\u00a74Invalid mob type.
|
||||
invalidFireworkFormat=\u00a74La opci\u00f3n \u00a7c{0} \u00a74no es un valor v\u00e1lido para \u00a7c{1}\u00a74.
|
||||
invalidHome=\u00a74\u00a1El hogar\u00a7c {0} \u00a74no existe\!
|
||||
invalidHomeName=\u00a74\u00a1Nombre de hogar inv\u00e1lido\!
|
||||
invalidMob=\u00a74Tipo de mob inv\u00e1lido.
|
||||
invalidNumber=N\u00famero inv\u00e1lido.
|
||||
invalidPotion=\u00a74Poci\u00f3n inv\u00e1lida.
|
||||
invalidPotionMeta=\u00a74Opciones de poci\u00f3n inv\u00e1lidas\: \u00a7c{0}\u00a74.
|
||||
invalidSignLine=La l\u00ednea {0} en el cartel no es v\u00e1lida.
|
||||
invalidWarpName=\u00a7cEste warp no ha sido encontrado. \u00bfEs posible que alguien lo haya borrado, o es un bug de Essentials?
|
||||
invalidWarpName=\u00a74\u00a1Nombre del Warp no reconocido\!
|
||||
invalidWorld=\u00a74Mundo erroneo o no cargado.
|
||||
is=es
|
||||
itemCannotBeSold=\u00a1Ese objeto no puede ser vendido al servidor\!
|
||||
itemCannotBeSold=\u00a74\u00a1Ese objeto no puede ser vendido al servidor\!
|
||||
itemMustBeStacked=El objeto tiene que ser intercambiado en montones. Una cantidad de 2s ser\u00edan dos montones, etc.
|
||||
itemNames=Nombre corto del art\u00edculo\: {0}
|
||||
itemNotEnough1=\u00a7cNo tienes suficientes unidades de ese objeto para venderlo.
|
||||
itemNotEnough2=\u00a77Si pensabas en vender todos tus objetos de ese tipo, usa /sell nombredeobjeto
|
||||
itemNames=\u00a76Nombre corto del \u00edtem\:\u00a7r {0}
|
||||
itemNotEnough1=\u00a74No tienes la suficiente cantidad del \u00edtem para venderlo.
|
||||
itemNotEnough2=\u00a76Si quieres vender todos tus \u00edtems que sean como ese, escribe /sell nombre_del_\u00edtem (en ingl\u00e9s).
|
||||
itemNotEnough3=\u00a77/sell nombredeobjeto -1 vendera todos excepto un objeto, etc.
|
||||
itemSellAir=\u00bf\u00bf\u00bfRealmente intentas vender AIRE??? \u00a1\u00a1\u00a1Pon un objeto en tu mano\!\!\!
|
||||
itemSold=\u00a77Vendido por \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}
|
||||
itemSpawn=\u00a76Dando {0} de {1}
|
||||
itemType=\u00a76Objeto\:\u00a7c {0} \u00a76-\u00a7c {1}
|
||||
itemsCsvNotLoaded=\u00a1No se ha podido cargar el archivo items.csv\!
|
||||
jailAlreadyIncarcerated=\u00a74Ese jugador ya est\u00e1 en la c\u00e1rcel\:\u00a7c {0}
|
||||
jailMessage=\u00a7c\u00a1Por el crimen hacer, en la carcel unos dias vas a estar\!
|
||||
jailNotExist=Esa c\u00e1rcel no existe.
|
||||
jailReleased=\u00a77Jugador \u00a7e{0}\u00a77 liberado.
|
||||
jailMessage=\u00a7c\u00a1Por el crimen hacer, a la c\u00e1rcel ir\u00e1s\!
|
||||
jailNotExist=\u00a74Esa c\u00e1rcel no existe.
|
||||
jailReleased=\u00a76El jugador \u00a7c{0}\u00a76 ha salido de la c\u00e1rcel.
|
||||
jailReleasedPlayerNotify=\u00a77\u00a1Has sido liberado\!
|
||||
jailSentenceExtended=Tiempo en la c\u00e1rcel extendido a {0}
|
||||
jailSet=\u00a76La c\u00e1rcel {0} ha sido creada.
|
||||
@@ -203,12 +203,12 @@ kickDefault=Has sido expulsado del servidor\! Nota\: Revisa tu comportamiento
|
||||
kickExempt=\u00a74No puedes expulsar a ese jugador.
|
||||
kickedAll=\u00a74Todos los jugadores han sido expulsados.
|
||||
kill=\u00a77Has matado a\u00a7c {0}\u00a77.
|
||||
killExempt=\u00a74No puedes matar a {0}
|
||||
killExempt=\u00a74No puedes matar a \u00a7c{0}\u00a74.
|
||||
kitCost=\ \u00a77\u00a7o({0})\u00a7r
|
||||
kitError2=\u00a74El kit que has especificado esta mal hecho o tiene algun bug. Por favor, habla con un administrador inmediatamente.
|
||||
kitError2=\u00a74Este kit est\u00e1 mal creado. Por favor, contacta con un administrador.
|
||||
kitError=\u00a7cNo hay ning\u00fan kit v\u00e1lido.
|
||||
kitGiveTo=\u00a76El kit\u00a7c {0}\u00a76 se ha dado a {1}\u00a7.
|
||||
kitInvFull=\u00a7cTu preciado inventario no tiene hueco para este kit. El kit se lanzar\u00e1 al suelo.
|
||||
kitGiveTo=\u00a76Dando kit\u00a7c {0}\u00a76 a \u00a7c{1}\u00a76.
|
||||
kitInvFull=\u00a74Tu preciado inventario no tiene hueco para este kit. El kit se lanzar\u00e1 al suelo.
|
||||
kitNotFound=\u00a74Ese kit no existe.
|
||||
kitOnce=\u00a74No puedes volver a usar este kit.
|
||||
kitReceive=\u00a76Kit\u00a7c {0}\u00a76 recibido.
|
||||
@@ -216,27 +216,27 @@ kitTimed=\u00a7c No puedes usar ese kit de nuevo para otro {0}.
|
||||
kits=\u00a77Kits disponibles\: {0}
|
||||
leatherSyntax=\u00a76Color sintax\: color\:<red>,<green>,<blue> ejemplo\: color\:255,0,0.
|
||||
lightningSmited=\u00a76\u00a1Has sido golpeado m\u00e1gicamente\!
|
||||
lightningUse=\u00a77Golpeando a {0}
|
||||
lightningUse=\u00a76Golpeando al jugador\u00a7c {0}
|
||||
listAfkTag=\u00a78[Ausente]\u00a7r
|
||||
listAmount=\u00a79Hay \u00a7c{0}\u00a79 jugadores de un m\u00e1ximo de \u00a7c{1}\u00a79 jugadores \u00a72en linea\u00a79.
|
||||
listAmountHidden=\u00a79Hay \u00a7c{0}\u00a79 jugadores de un maximo de \u00a7c{1}\u00a79 jugadores online.
|
||||
listAmountHidden=\u00a76Hay \u00a7c{0}\u00a76/{1}\u00a76 jugadores de un m\u00e1ximo de \u00a7c{2}\u00a76 jugadores conectados.
|
||||
listGroupTag=\u00a76{0}\u00a7r\: \u00a7r
|
||||
listHiddenTag=\u00a78[Oculto]\u00a7r
|
||||
loadWarpError=Error al cargar el teletransporte {0}
|
||||
loadWarpError=\u00a74Error al cargar el Warp {0}.
|
||||
localFormat=[L]<{0}> {1}
|
||||
mailClear=\u00a77Para marcar tu email como le\u00eddo, escribe \u00a7c/mail clear\u00a77.
|
||||
mailCleared=\u00a77Email limpiado\!
|
||||
mailClear=\u00a76Para marcar tu correo como le\u00eddo, escribe\u00a7c /mail clear\u00a76.
|
||||
mailCleared=\u00a76\u00a1El correo ha sido limpiado\!
|
||||
mailSent=\u00a76\u00a1El correo ha sido enviado\!
|
||||
markMailAsRead=\u00a7cPara marcar tu email como leido, escribe /mail clear
|
||||
markMailAsRead=\u00a76Para marcar tu correo como le\u00eddo, escribe\u00a7c /mail clear\u00a76.
|
||||
markedAsAway=\u00a77Has sido anunciado como AFK (Away-From-Keyboard/Ausente o Lejos del teclado).
|
||||
markedAsNotAway=\u00a77Ya no estas AFK.
|
||||
matchingIPAddress=\u00a77Los siguientes jugadores entraron previamente con la IP\:
|
||||
maxHomes=No puedes establecer m\u00e1s de {0} hogares.
|
||||
matchingIPAddress=\u00a76Los siguientes jugadores entraron previamente con la IP\:
|
||||
maxHomes=\u00a74No puedes tener m\u00e1s de\u00a7c {0} \u00a74hogares.
|
||||
mayNotJail=\u00a7cNo puedes encarcelar a esa persona.
|
||||
me=yo
|
||||
minute=minuto
|
||||
minutes=minutos
|
||||
missingItems=No tienes {0}x de {1}.
|
||||
missingItems=\u00a74No tienes \u00a7c{0}x {1}\u00a74.
|
||||
mobSpawnError=Error al cambiar la localizaci\u00f3n para el nacimiento de los mobs.
|
||||
mobSpawnLimit=Cantidad de criaturas (mobs) limitadas por el l\u00edmite del servidor.
|
||||
mobSpawnTarget=El bloque seleccionado ser\u00e1 el lugar donde van a aparecer los mobs.
|
||||
@@ -246,227 +246,228 @@ moneySentTo=\u00a7a{0} ha sido enviado a {1}
|
||||
month=mes
|
||||
months=meses
|
||||
moreThanZero=Las cantidades han de ser mayores que 0.
|
||||
moveSpeed=\u00a76Has establecido la velocidad de {0} a\u00a7c {1} \u00a76para {2}\u00a76.
|
||||
msgFormat=\u00a76[{0}\u00a76 -> {1}\u00a76] \u00a7r{2}
|
||||
moveSpeed=\u00a76Establecida velocidad de {0} a\u00a7c {1} \u00a76durante \u00a7c{2}\u00a76.
|
||||
msgFormat=\u00a76[\u00a7c{0}\u00a76 -> \u00a7c{1}\u00a76] \u00a7r{2}
|
||||
multipleCharges=\u00a74Solo puedes aplicar una carga a este cohete.
|
||||
multiplePotionEffects=\u00a74No puedes aplicarle m\u00e1s de un efecto a esta poci\u00f3n.
|
||||
muteExempt=\u00a7cNo puedes silenciar a ese jugador.
|
||||
muteNotify=\u00a7c{0} \u00a76ha silenciado a \u00a7c{1}\u00a76.
|
||||
mutedPlayer=\u00a77El jugador\u00a7c {0} \u00a77est\u00e1 silenciado.
|
||||
mutedPlayerFor=\u00a77Jugador\u00a7c {0} \u00a77silenciado por\u00a7c {1}\u00a77.
|
||||
mutedPlayer=\u00a76El jugador\u00a7c {0} \u00a76est\u00e1 silenciado.
|
||||
mutedPlayerFor=\u00a76Jugador\u00a7c {0} \u00a76silenciado por\u00a7c {1}\u00a76.
|
||||
mutedUserSpeaks={0} intent\u00f3 hablar, pero est\u00e1 silenciado.
|
||||
nearbyPlayers=Jugadores cercanos\: {0}
|
||||
negativeBalanceError=El usuario no tiene permitido tener dinero negativo.
|
||||
nickChanged=Se ha establecido un nombre diferente a un jugador.
|
||||
nearbyPlayers=\u00a76Jugadores cercanos\:\u00a7r {0}
|
||||
negativeBalanceError=\u00a74El jugador no tiene permitido tener dinero por debajo de 0$.
|
||||
nickChanged=\u00a76Nick cambiado.
|
||||
nickDisplayName=\u00a74Tienes que activar el cambio de nick en la configuraci\u00f3n del plugin Essentials.
|
||||
nickInUse=\u00a74Ese nick ya est\u00e1 en uso. Prueba a usar otro.
|
||||
nickNamesAlpha=\u00a74No puedes usar s\u00edmbolos raros.
|
||||
nickNoMore=\u00a76Ya no tienes un nombre personalizado. VUELVES A SER TU.
|
||||
nickSet=\u00a76Tu nombre se ha personalizado y ahora es\u00a7c {0}
|
||||
nickTooLong=\u00a74Ese nombre es demasiado largo.
|
||||
noAccessCommand=\u00a7cNo tienes permiso para ejecutar ese comando.
|
||||
noAccessPermission=\u00a7cNo tienes permisos para eso {0} .
|
||||
nickSet=\u00a76Tu seud\u00f3nimo ahora es \u00a7c{0}\u00a76.
|
||||
nickTooLong=\u00a74Ese nick es demasiado largo.
|
||||
noAccessCommand=\u00a74No tienes permiso para ejecutar ese comando.
|
||||
noAccessPermission=\u00a74No tienes permiso para interactuar con \u00a7c{0}\u00a74.
|
||||
noBreakBedrock=No puedes romper piedra base.
|
||||
noDestroyPermission=\u00a7cNo tienes permisos para romper eso {0}.
|
||||
noDurability=\u00a7cEste item no tiene durabilidad.
|
||||
noGodWorldWarning=\u00a7cAdvertencia\! El Modo de dios ha sido desactivado en este mundo.
|
||||
noHelpFound=\u00a7cNo hay comandos relacionados.
|
||||
noHomeSetPlayer=El jugador no ha establecido un hogar.
|
||||
noDestroyPermission=\u00a74No tienes permiso para destruir ese \u00a7c{0}\u00a74.
|
||||
noDurability=\u00a74Este \u00edtem no tiene durabilidad.
|
||||
noGodWorldWarning=\u00a74\u00a1Advertencia\! El modo de dios ha sido desactivado en este mundo.
|
||||
noHelpFound=\u00a74No hay comandos relacionados.
|
||||
noHomeSetPlayer=\u00a76El jugador no ha establecido hogares.
|
||||
noIgnored=\u00a76No est\u00e1s ignorando a nadie.
|
||||
noKitPermission=\u00a7cNecesitas el permiso \u00a74{0}\u00a7c para usar ese kit.
|
||||
noKits=\u00a77No hay kits disponibles a\u00fan.
|
||||
noMail=\u00a77No tienes correo nuevo.
|
||||
noMatchingPlayers=\u00a77No se encontr\u00f3 al jugador buscado.
|
||||
noMail=\u00a76No tienes correo nuevo.
|
||||
noMatchingPlayers=\u00a76No se encontr\u00f3 al jugador buscado.
|
||||
noMetaFirework=\u00a74No tienes permiso para usar los efectos de los fuegos artificiales.
|
||||
noMetaPerm=\u00a74No tienes permiso para aplicar \u00a7c{0}\u00a74 efectos a este item.
|
||||
noMetaPerm=\u00a74No tienes permiso para aplicar \u00a7c{0}\u00a74 efectos a este \u00edtem.
|
||||
noNewMail=\u00a77No tienes correo nuevo.
|
||||
noPendingRequest=No tienes ninguna petici\u00f3n pendiente.
|
||||
noPerm=\u00a7cNo tienes el permiso de \u00a7f{0}\u00a7c.
|
||||
noPermToSpawnMob=\u00a7cNo tienes permisos para spawnear a este mob.
|
||||
noPlacePermission=\u00a7cNo tienes permiso para colocar este bloque en este lugar.
|
||||
noPotionEffectPerm=\u00a74No tienes permiso para aplicar efectos \u00a7c {0} \u00a74a esta poci\u00f3n.
|
||||
noPendingRequest=\u00a74No tienes peticiones pendientes.
|
||||
noPerm=\u00a74No tienes el permiso \u00a7c{0}\u00a74.
|
||||
noPermToSpawnMob=\u00a74No tienes permiso para generar esa criatura.
|
||||
noPlacePermission=\u00a74No tienes permiso para colocar un bloque junto a eso.
|
||||
noPotionEffectPerm=\u00a74No tienes permiso para aplicar el efecto\u00a7c {0} \u00a74a esta poci\u00f3n.
|
||||
noPowerTools=\u00a76No tienes ninguna herramienta el\u00e9ctrica asignada.
|
||||
noWarpsDefined=\u00a77No hay teletransportes definidos a\u00fan.
|
||||
noWarpsDefined=\u00a76No hay warps disponibles.
|
||||
none=ninguno
|
||||
notAllowedToQuestion=\u00a7cNo est\u00e1s autorizado para usar las preguntas.
|
||||
notAllowedToShout=\u00a7cNo est\u00e1s autorizado para gritar.
|
||||
notEnoughExperience=No tienes suficiente experiencia.
|
||||
notEnoughMoney=No tienes el dinero suficiente.
|
||||
notAllowedToQuestion=\u00a74No est\u00e1s autorizado para hacer una pregunta.
|
||||
notAllowedToShout=\u00a74No est\u00e1s autorizado para gritar.
|
||||
notEnoughExperience=\u00a74No tienes la experiencia necesaria.
|
||||
notEnoughMoney=\u00a74No tienes dinero suficiente.
|
||||
notFlying=no esta volando
|
||||
notRecommendedBukkit=* \! * La versi\u00f3n de bukkit no es la recomendada para esta versi\u00f3n de Essentials.
|
||||
notRecommendedBukkit=\u00a74* \! * La versi\u00f3n de bukkit no es la recomendada para esta versi\u00f3n del plugin Essentials.
|
||||
notSupportedYet=No soportado por el momento.
|
||||
nothingInHand=\u00a7cNo tienes nada en tu mano.
|
||||
now=ahora
|
||||
nuke=\u00a7aQue la muerta afecte al que no despierte.
|
||||
nuke=\u00a75Que la muerta afecte al que no despierte.
|
||||
numberRequired=Es necesario un n\u00famero, amigo.
|
||||
onlyDayNight=\u00a7c/time \u00a74solo se utiliza con los valores \u00a7cday \u00a74o \u00a7cnight \u00a74(\u00a76d\u00eda\u00a74/\u00a76noche\u00a74).
|
||||
onlyPlayerSkulls=\u00a74Solo puede establecer el propietario de las cabezas del jugador (397\:3).
|
||||
onlyPlayers=Solo los jugadores conectados pueden usar {0}.
|
||||
onlyDayNight=\u00a76/time \u00a74\u00fanicamente funciona con los valores \u00a76Day\u00a74 o \u00a76Night\u00a74 (d\u00eda/noche).
|
||||
onlyPlayerSkulls=\u00a74Solo puedes indicar el propietario de las calaveras de jugadores (\u00a7c397\:3\u00a74).
|
||||
onlyPlayers=\u00a74Solo jugadores dentro del juego pueden usar \u00a7c{0}\u00a74.
|
||||
onlySunStorm=\u00a7c/weather \u00a74solo acepta los valores \u00a7csun \u00a74o \u00a7cstorm \u00a74(\u00a76sol\u00a74/\u00a76tormenta\u00a74).
|
||||
orderBalances=Creando un ranking de {0} usuarios segun su presupuesto, espera...
|
||||
oversizedTempban=\u00a74No puedes banear por ese periodo de tiempo.
|
||||
pTimeCurrent=\u00a7e{0}''s\u00a7f la hora es {1}.
|
||||
pTimeCurrentFixed=\u00a7c{0}\u00a77 la hora ha sido corregida a\u00a7c {1}\u00a77.
|
||||
pTimeCurrent=\u00a76La hora de \u00a7c{0} es\u00a7c {1}\u00a76.
|
||||
pTimeCurrentFixed=\u00a7c{0}\u00a76 la hora ha sido corregida a\u00a7c {1}\u00a76.
|
||||
pTimeNormal=\u00a7c{0} \u00a77\: el tiempo es normal (coincide con el del servidor).
|
||||
pTimeOthersPermission=\u00a7cNo est\u00e1s autorizado para especificar la hora de otros usuarios.
|
||||
pTimeOthersPermission=\u00a74No tienes permitido cambiar la hora de otros jugadores.
|
||||
pTimePlayers=\u00a77Estos jugadores tienen establecida su propia hora\:\u00a7r
|
||||
pTimeReset=La hora del usuario ha sido reiniciada a las\: \u00a7e{0}
|
||||
pTimeSet=La hora del jugador ha sido cambiada a\: \u00a73{0}\u00a7f for\: \u00a7e{1}.
|
||||
pTimeSetFixed=La hora del jugador ha sido fijada a las\: \u00a73{0}\u00a7f for\: \u00a7e{1}.
|
||||
pWeatherCurrent=\u00a77El clima de\u00a7c {0}\u00a77 es\u00a7c {1}\u00a77.
|
||||
pWeatherCurrent=\u00a76El clima de\u00a7c {0}\u00a76 es\u00a7c {1}\u00a76.
|
||||
pWeatherInvalidAlias=\u00a74Tipo de clima inv\u00e1lido
|
||||
pWeatherNormal=\u00a77El clima de \u00a7c{0} \u00a77es normal y coincide con el servidor.
|
||||
pWeatherNormal=\u00a76El clima de \u00a7c{0} \u00a76es normal y coincide con el servidor.
|
||||
pWeatherOthersPermission=\u00a74No est\u00e1s autorizado para cambiar el clima de otros jugadores.
|
||||
pWeatherPlayers=\u00a77Jugadores que tienen su propio clima\: \u00a7r
|
||||
pWeatherReset=\u00a77Clima reseteado para\: \u00a7c{0}
|
||||
pWeatherSet=\u00a77Clima establecido en \u00a7c{0}\u00a77 para\: \u00a7c{1}\u00a77.
|
||||
pendingTeleportCancelled=\u00a7cPetici\u00f3n de teletransporte cancelada.
|
||||
playerBanIpAddress=\u00a76La IP \u00a7c {1} \u00a76ha sido baneada por\u00a7c {0}\u00a76.
|
||||
playerBanned=\u00a7c{1} \u00a76ha sido baneado por\u00a7c {0}\u00a76 a causa de {2}\u00a76.
|
||||
playerInJail=\u00a7cEl jugador {0} ya est\u00e1 en la c\u00e1rcel.
|
||||
pWeatherReset=\u00a76Clima reseteado para\: \u00a7c{0}
|
||||
pWeatherSet=\u00a76Clima establecido en \u00a7c{0}\u00a76 para\: \u00a7c{1}.
|
||||
pendingTeleportCancelled=\u00a74Petici\u00f3n de teletransporte cancelada.
|
||||
playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address\u00a7c {1} \u00a76for\: \u00a7c{2}\u00a76.
|
||||
playerBanned=\u00a7c{0} \u00a76 ha sido baneado\:\u00a7c {1} \u00a76por \u00a7c{2}\u00a76.
|
||||
playerInJail=\u00a74El jugador\u00a7c {0}\u00a74 ya est\u00e1 en la c\u00e1rcel.
|
||||
playerJailed=\u00a77Jugador {0} encarcelado.
|
||||
playerJailedFor=\u00a77El jugador {0} ha sido encarcelado durante {1}.
|
||||
playerKicked=\u00a7c\u00a1El jugador {0} ha echado a {1}\u00a7c\! \u00a77Motivo\: &r{2}\u00a77.
|
||||
playerMuted=\u00a77Has sido silenciado.
|
||||
playerMutedFor=\u00a77Has sido silenciado durante {0}.
|
||||
playerNeverOnServer=\u00a74\u00a1El jugador \u00a7c{0} \u00a74nunca ha entrado al servidor\!
|
||||
playerNotFound=\u00a7cJugador no encontrado.
|
||||
playerNotFound=\u00a74Jugador no encontrado.
|
||||
playerUnbanIpAddress=\u00a76La IP {1} ha sido desbaneada por\u00a7c {0}.
|
||||
playerUnbanned=\u00a7c{1} \u00a76ha sido desbaneado por\u00a7c {0}\u00a76.
|
||||
playerUnmuted=\u00a77Has sido desmuteado.
|
||||
pong=PING PONG\!
|
||||
playerUnmuted=\u00a76Ya no est\u00e1s silenciado.
|
||||
pong=\u00a1PONG\!
|
||||
posPitch=\u00a77Giro\: {0} (\u00c1ngulo de cabeza)
|
||||
posX=\u00a77X\: {0} (+Este <-> -Oeste)
|
||||
posY=\u00a77Y\: {0} (+Arriba <-> -abajo)
|
||||
posYaw=\u00a77Yaw\: {0} (Rotaci\u00f3n)
|
||||
posZ=\u00a77Z\: {0} (+Sur <-> -Norte)
|
||||
possibleWorlds=\u00a77Los mundos posibles son desde el numero 0 hasta el {0}.
|
||||
possibleWorlds=\u00a76Posibles mundos son los n\u00fameros desde el \u00a7c0\u00a76 hasta el \u00a7c{0}\u00a76.
|
||||
potions=\u00a77Pociones\:\u00a7r {0}\u00a76.
|
||||
powerToolAir=El comando no se puede ejecutar en el aire.
|
||||
powerToolAlreadySet=El comando \u00a7c{0}\u00a7f ya esta asignado a {1}.
|
||||
powerToolAlreadySet=\u00a74El comando \u00a7c{0}\u00a74 ya est\u00e1 asignado a \u00a7c{1}\u00a74.
|
||||
powerToolAttach=\u00a77El comando \u00a7c{0}\u00a77 ha sido asignado a {1}\u00a77.
|
||||
powerToolClearAll=\u00a77Todos los comandos de la herramienta el\u00e9ctrica han sido eliminados.
|
||||
powerToolList=\u00a77El objeto \u00a7c{1} \u00a77tiene asignados los comandos\: \u00a7c{0}\u00a77.
|
||||
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}.
|
||||
powerToolList=\u00a76El \u00edtem \u00a7c{1} \u00a76tiene asignados los comandos\: \u00a7c{0}\u00a76.
|
||||
powerToolListEmpty=\u00a74El \u00edtem\u00a7c {0} \u00a74no tiene comandos asignados.
|
||||
powerToolNoSuchCommandAssigned=\u00a74El comando \u00a7c{0}\u00a74 no ha sido asignado a \u00a7c{1}\u00a74.
|
||||
powerToolRemove=\u00a76Comando \u00a7c{0}\u00a76 borrado de \u00a7c{1}\u00a76.
|
||||
powerToolRemoveAll=\u00a76Todos los comandos borrados de \u00a7c{0}\u00a76.
|
||||
powerToolsDisabled=\u00a77Todas tus herramientas de poder han sido desactivadas.
|
||||
powerToolsEnabled=\u00a77Todas tus herramientas de poder han sido activadas.
|
||||
questionFormat=\u00a76[\u00a7bPregunta\u00a76]\u00a7f {0}
|
||||
questionFormat=\u00a72[Pregunta]\u00a7r {0}
|
||||
readNextPage=\u00a77Escribe\u00a7c /{0} {1} \u00a77para leer la p\u00e1gina siguiente.
|
||||
recipe=\u00a77Crafteo para \u00a7c{0}\u00a76 ({1} de {2})
|
||||
recipe=\u00a76Receta para \u00a7c{0}\u00a76 (\u00a7c{1}\u00a76 de \u00a7c{2}\u00a76)
|
||||
recipeBadIndex=No hay ning\u00fan crafteo con ese n\u00famero.
|
||||
recipeFurnace=\u00a77Fundici\u00f3n \u00a7c {0}
|
||||
recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
|
||||
recipeGridItem=\ \u00a7{0}X \u00a76is \u00a7c{1}
|
||||
recipeMore=\u00a77Escribe /{0} \u00a7c{1}\u00a77 <number> para ver otros crafteos de \u00a7c{2}\u00a77.
|
||||
recipeFurnace=\u00a76Fundir\: \u00a7c{0}\u00a76.
|
||||
recipeGrid=\u00a7c{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
|
||||
recipeGridItem=\u00a7c{0}X \u00a76es \u00a7c{1}
|
||||
recipeMore=\u00a76Escribe /{0} \u00a7c{1}\u00a76 <number> para ver otros crafteos de \u00a7c{2}\u00a76.
|
||||
recipeNone=No existen crafteos para {0}
|
||||
recipeNothing=nada
|
||||
recipeShapeless=\u00a77Combinar \u00a7c{0}
|
||||
recipeWhere=\u00a77Donde\: {0}
|
||||
removed=\u00a77{0} entidades removidas.
|
||||
repair=Has reparado satisfactoriamente tu\: \u00a7e{0}.
|
||||
repairAlreadyFixed=\u00a77Este objeto no necesita ser reparado.
|
||||
repairEnchanted=\u00a77No tienes permisos para reparar items encantados.
|
||||
repairInvalidType=\u00a7cError\: \u00a74tipo de item invalido.
|
||||
repairNone=\u00a74No hay objetos que necesiten reparaci\u00f3n.
|
||||
requestAccepted=\u00a77Peticion de teletransporte aceptada.
|
||||
requestAcceptedFrom=\u00a77{0} ha aceptado tu peticion de teletransporte.
|
||||
requestDenied=\u00a77Peticion de teletransporte denegada.
|
||||
requestDeniedFrom=\u00a77{0} ha denegado tu peticion de teletransporte.
|
||||
requestSent=\u00a77Peticion enviada a {0}\u00a77.
|
||||
requestTimedOut=\u00a7cA la solicitud de teletransporte se le ha acabado el tiempo.
|
||||
removed=\u00a76Eliminadas\u00a7c {0} \u00a76entidades.
|
||||
repair=\u00a76Has reparado exit\u00f3samente tu\: \u00a7c{0}\u00a76.
|
||||
repairAlreadyFixed=\u00a74Este \u00edtem no necesita reparaci\u00f3n.
|
||||
repairEnchanted=\u00a74No tienes permiso para reparar un \u00edtem encantado.
|
||||
repairInvalidType=\u00a74Ese \u00edtem no puede ser reparado.
|
||||
repairNone=\u00a74No hay \u00edtems que necesiten ser reparados.
|
||||
requestAccepted=\u00a76Petici\u00f3n de teletransporte aceptada.
|
||||
requestAcceptedFrom=\u00a7c{0} \u00a76ha aceptado tu teletransportaci\u00f3n.
|
||||
requestDenied=\u00a76Petici\u00f3n de teletransporte denegada.
|
||||
requestDeniedFrom=\u00a7c{0} \u00a76ha denegado tu teletransportaci\u00f3n.
|
||||
requestSent=\u00a76La petici\u00f3n ha sido enviada a\u00a7c {0}\u00a76.
|
||||
requestTimedOut=\u00a74El tiempo de la solicitud de teletransporte se ha agotado.
|
||||
requiredBukkit=\u00a75* \! * \u00a7cNecesitas al menos el build {0} de CraftBukkit, descargalo desde \u00a7bhttp\://dl.bukkit.org/downloads/craftbukkit/
|
||||
resetBal=\u00a77Econom\u00eda establecida a \u00a7a{0} \u00a76para \u00a7cTODOS \u00a77los jugadores que est\u00e1n conectados.
|
||||
resetBalAll=\u00a76Econom\u00eda establecida a \u00a7a{0} \u00a76para TODOS los jugadores.
|
||||
returnPlayerToJailError=\u00a7cError al intentar regresar al jugador {0} a la carcel\: {1}
|
||||
resetBal=\u00a76Dinero reestablecido a \u00a7c{0} \u00a76a todos los jugadores conectados.
|
||||
resetBalAll=\u00a76Dinero reestablecido a \u00a7c{0} \u00a76a todos los jugadores.
|
||||
returnPlayerToJailError=\u00a74\u00a1Ha ocurrido un error al intentar enviar al jugador\u00a7c {0} \u00a74a la c\u00e1rcel\: \u00a7c{1}\u00a74\!
|
||||
runningPlayerMatch=\u00a77Ejecutando busqueda de jugadores ''\u00a7c{0}\u00a77'' (puede tardar)
|
||||
second=segundo
|
||||
seconds=segundos
|
||||
seenOffline=El jugador {0} esta desconectado desde {1}
|
||||
seenOnline=El jugador {0} esta conectado desde {1}
|
||||
serverFull=\u00a7cLo sentimos, el servidor esta \u00a74LLENO\u00a7c. Prueba mas tarde
|
||||
serverTotal=\u00a77Total\:\u00a7c {0}
|
||||
setBal=\u00a7aSu econom\u00eda personal ha sido establecida a {0}.
|
||||
seenOffline=\u00a76El jugador\u00a7c {0} \u00a76ha estado \u00a74desconectado\u00a76 desde \u00a7c{1}\u00a76.
|
||||
seenOnline=\u00a76El jugador\u00a7c {0} \u00a76ha estado \u00a7aconectado\u00a76 desde \u00a7c{1}\u00a76.
|
||||
serverFull=\u00a1El servidor est\u00e1 lleno\!
|
||||
serverTotal=\u00a76Total\:\u00a7c {0}
|
||||
setBal=\u00a7aEconom\u00eda personal establecida en {0}.
|
||||
setBalOthers=\u00a7aLa economia de {0}\u00a7a ha sido establecida a {1}.
|
||||
setSpawner=Cambiado tipo de spawner a {0}
|
||||
sheepMalformedColor=Color malformado.
|
||||
shoutFormat=\u00a7a[\u00a7eMundo\u00a7a]\u00a7f {0}
|
||||
setSpawner=\u00a7Cambiado tipo de generador a\u00a7c {0}\u00a76.
|
||||
sheepMalformedColor=\u00a74Color malformado.
|
||||
shoutFormat=\u00a76[Mundo]\u00a7r {0}
|
||||
signFormatFail=\u00a74[{0}]
|
||||
signFormatSuccess=\u00a71[{0}]
|
||||
signFormatTemplate=[{0}]
|
||||
signProtectInvalidLocation=\u00a74No puedes poner carteles en este sitio.
|
||||
similarWarpExist=Ya existe un teletransporte con ese nombre.
|
||||
slimeMalformedSize=Medidas malformadas.
|
||||
socialSpy=\u00a77Esp\u00eda del chat de {0} \u00a77ha sido {1}
|
||||
soloMob=\u00a7cParece que este mob prefiere estar marginado...
|
||||
spawnSet=\u00a77El lugar de muerte, aparicion o el sitio del comando /spawn ha sido colocado para el grupo {0}.
|
||||
similarWarpExist=\u00a74Ya existe un warp con ese nombre.
|
||||
slimeMalformedSize=\u00a74Medidas malformadas.
|
||||
socialSpy=\u00a76Esp\u00eda de chat para \u00a7c{0}\u00a76\: \u00a7c{1}
|
||||
soloMob=\u00a74A este mob le gusta estar solo.
|
||||
spawnSet=\u00a76El lugar de aparici\u00f3n o el sitio del comando /spawn ha sido colocado para el grupo\u00a7c {0}\u00a76.
|
||||
spawned=nacido
|
||||
sudoExempt=\u00a7cNo puedes obligar a este usuario\! Motivo\: es op o tiene rango superior.
|
||||
sudoRun=Forzando {0} a ejecutar\: /{1} {2}
|
||||
suicideMessage=\u00a77Adios mundo cruel...
|
||||
suicideSuccess=\u00a77{0} \u00a7fse ha quitado la vida porque le han suspendido en mates...
|
||||
sudoExempt=\u00a74No puedes usar el comando sudo con este jugador.
|
||||
sudoRun=\u00a76Forcing\u00a7c {0} \u00a76to run\:\u00a7r /{1}
|
||||
suicideMessage=\u00a76Adi\u00f3s mundo cruel...
|
||||
suicideSuccess=\u00a76{0} \u00a7cse ha suicidado...
|
||||
survival=supervivencia
|
||||
takenFromAccount=\u00a7a{0} han sido sacados de tu cuenta econ\u00f3mica.
|
||||
takenFromOthersAccount=\u00a7c{0} han sidos sacados de la cuenta economica de {1}\u00a7c . Nuevo presupuesto\: {2}
|
||||
takenFromOthersAccount=\u00a7a{0} han sido sacados de la cuenta de {1}\u00a7a. \u00a72Nuevo balance\: {2}.
|
||||
teleportAAll=\u00a77Peticion de teletransporte enviada a todos los jugadores...
|
||||
teleportAll=\u00a77Teletransportando a todos los jugadores...
|
||||
teleportAtoB=\u00a77{0}\u00a77 te ha teletransportado hasta {1}\u00a77.
|
||||
teleportDisabled=\u00a7a{0} \u00a7etiene desactivado los teletransportes\!
|
||||
teleportHereRequest=\u00a7c{0}\u00a77te ha pedido que te teletransportes con \u00e9l.
|
||||
teleportNewPlayerError=\u00a7cError al teletransportar al nuevo jugador\!
|
||||
teleportRequest=\u00a7c{0}\u00a77 te ha pedido teletransportarse contigo.
|
||||
teleportRequestTimeoutInfo=\u00a7cA esta solicitud se le acabara el tiempo despues de {0} \u00a7csegundos.
|
||||
teleportTop=\u00a77Teletransportandote a la cima.
|
||||
teleportationCommencing=\u00a77Comenzando teletransporte...
|
||||
teleportationDisabled=\u00a77Teletransporte desactivado.
|
||||
teleportationDisabledFor=\u00a76Teletransporte desactivado para {0}.
|
||||
teleportationEnabled=\u00a77Teletransporte activado.
|
||||
teleportationEnabledFor=\u00a77Teleportation enabled for {0}
|
||||
teleporting=\u00a77Teletransportando...
|
||||
tempBanned=Baneado temporalmente del servidor durante {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.
|
||||
teleportAtoB=\u00a7c{0}\u00a76 te ha teletransportado a \u00a7c{1}\u00a76.
|
||||
teleportDisabled=\u00a7c{0} \u00a74tiene la teletransportaci\u00f3n desactivada.
|
||||
teleportHereRequest=\u00a7c{0}\u00a76te ha pedido que te teletransportes hasta \u00e9l.
|
||||
teleportNewPlayerError=\u00a74\u00a1Ha ocurrido un error al teletransportar al nuevo jugador\!
|
||||
teleportRequest=\u00a7c{0}\u00a76 te ha pedido teletransportarse hasta ti.
|
||||
teleportRequestTimeoutInfo=\u00a76La solicitud ser\u00e1 autom\u00e1ticamente cancelada despu\u00e9s de\u00a7c {0} segundos\u00a76.
|
||||
teleportTop=\u00a76Teletransportandote hasta la cima.
|
||||
teleportationCommencing=\u00a76Teletransportando...
|
||||
teleportationDisabled=\u00a76Teletransporte \u00a7cdeshabilitado\u00a76.
|
||||
teleportationDisabledFor=\u00a76Teletransporte \u00a7cdeshabilitado \u00a76para \u00a7c{0}\u00a76.
|
||||
teleportationEnabled=\u00a76Teletransporte \u00a7chabilitado\u00a76.
|
||||
teleportationEnabledFor=\u00a76Teletransporte \u00a7chabilitado \u00a76para \u00a7c{0}\u00a76.
|
||||
teleporting=\u00a76Teletransportando...
|
||||
teleportToPlayer=\u00a76Teletransport\u00e1ndose a \u00a7c{0}\u00a76.
|
||||
tempBanned=\u00a7cYou have been temporarily banned for {0}\:\n\u00a7r{2}
|
||||
tempbanExempt=\u00a74Ese jugador no puede recibir un baneo temporal tuyo.
|
||||
thunder=\u00a76Has cambiado los truenos a\u00a7c {0} \u00a76en tu mundo.
|
||||
thunderDuration=\u00a76Has\u00a7c {0} \u00a76una tormenta en tu mundo durante\u00a7c {1} \u00a76segundos.
|
||||
timeBeforeHeal=Tiempo antes de la siguiente curacion\: {0}
|
||||
timeBeforeTeleport=Tiempo antes del proximo teletransporte\: {0}
|
||||
timeFormat=\u00a73{0}\u00a7f o \u00a73{1}\u00a7f o \u00a73{2}\u00a7f
|
||||
timeSetPermission=\u00a7cNo estas autorizado para establecer la hora.
|
||||
timeWorldCurrent=La hora actual en {0} es \u00a73{1}
|
||||
timeWorldSet=La hora ha sido establecida a {0} en\: \u00a7c{1}
|
||||
timeBeforeTeleport=\u00a74Tiempo antes del pr\u00f3ximo teletransporte\:\u00a7c {0}\u00a74.
|
||||
timeFormat=\u00a7c{0}\u00a76 o \u00a7c{1}\u00a76 o \u00a7c{2}\u00a76
|
||||
timeSetPermission=\u00a74No tienes permitido cambiar la hora.
|
||||
timeWorldCurrent=\u00a76La hora actual en\u00a7c {0} \u00a76es \u00a7c{1}\u00a76.
|
||||
timeWorldSet=\u00a76La hora ha sido establecida a\u00a7c {0} \u00a76en el mundo\: \u00a7c{1}\u00a76.
|
||||
totalWorthAll=\u00a7aVendidos todos los objetos por un valor total de \u00a7c {1}\u00a7a.
|
||||
totalWorthBlocks=\u00a7aVendidos todos los bloques por un total de \u00a7c{1}\u00a7a.
|
||||
tps=TPS actual \= {0}
|
||||
tps=\u00a76Ticks por segundo \= {0}
|
||||
tradeSignEmpty=Esta tienda no tiene nada disponible para ti.
|
||||
tradeSignEmptyOwner=No hay nada que recojer de esta tienda.
|
||||
treeFailure=\u00a7cError al generar el \u00e1rbol. Prueba de nuevo en tierra, tierra h\u00fameda o hierba.
|
||||
treeSpawned=\u00a77\u00c1rbol generado.
|
||||
true=activado
|
||||
typeTpaccept=\u00a77Escribe \u00a7c/tpaccept \u00a76para aceptar el teletransporte.
|
||||
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.
|
||||
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=\u00a77Jugador {0} desmuteado.
|
||||
unvanishedReload=\u00a7cUn reinicio te ha forzado a ser visible.
|
||||
true=\u00a7as\u00ed\u00a7f
|
||||
typeTpaccept=\u00a76Escribe \u00a7c/tpaccept \u00a76para aceptar el teletransporte.
|
||||
typeTpdeny=\u00a76Para denegar la teletransportaci\u00f3n, escribe \u00a7c/tpdeny\u00a76.
|
||||
typeWorldName=\u00a76T\u00fa tambi\u00e9n puedes escribir el nombre de un mundo espec\u00edfico.
|
||||
unableToSpawnMob=\u00a74No puedes generar criaturas.
|
||||
unignorePlayer=\u00a76Ya no ignoras al jugador\u00a7c {0}\u00a76.
|
||||
unknownItemId=\u00a74ID de \u00edtem desconocida\:\u00a7r {0}\u00a74.
|
||||
unknownItemInList=\u00a74\u00cdtem desconocido {0} en {1} lista.
|
||||
unknownItemName=\u00a74Nombre de \u00edtem desconocido\: {0}.
|
||||
unlimitedItemPermission=\u00a74Sin permiso para art\u00edculo ilimitado \u00a7c{0}\u00a74.
|
||||
unlimitedItems=\u00a76\u00cdtems ilimitados\:\u00a7r
|
||||
unmutedPlayer=\u00a76El jugador\u00a7c {0} \u00a76ya no est\u00e1 silenciado.
|
||||
unvanishedReload=\u00a74Un reinicio o una recarga del servidor te ha forzado a perder la invisibilidad.
|
||||
upgradingFilesError=Error mientras se actualizaban los archivos
|
||||
uptime=\u00a76Tiempo encendido\:\u00a7c {0}
|
||||
userAFK=\u00a75{0} \u00a75se encuentra ausente y es probable que no responda.
|
||||
userAFK=\u00a77{0} \u00a75se encuentra ausente y es probable que no responda.
|
||||
userDoesNotExist=El usuario {0} no existe
|
||||
userIsAway={0} \u00a7festa ahora ausente\!
|
||||
userIsNotAway={0} \u00a7fya no esta ausente\!
|
||||
userJailed=\u00a77Has sido encarcelado\!
|
||||
userIsAway=\u00a77{0} \u00a77\u00a1est\u00e1 ausente\!
|
||||
userIsNotAway=\u00a77{0} \u00a77\u00a1ya no est\u00e1 ausente\!
|
||||
userJailed=\u00a76\u00a1Has sido encarcelado\!
|
||||
userUnknown=\u00a74Aviso\: \u00a7cel jugador \u00a74{0} \u00a7cnunca ha visitado el servidor\!
|
||||
userdataMoveBackError=Error al mover userdata/{0}.tmp a userdata/{1}
|
||||
userdataMoveError=Error al mover userdata/{0} a userdata/{1}.tmp
|
||||
usingTempFolderForTesting=Usando carpeta temporal para pruebas\:
|
||||
vanished=\u00a7aHas desaparecido.
|
||||
vanished=\u00a76Ahora eres invisible para los usuarios normales, ellos no podr\u00e1n detectarte ni con comandos.
|
||||
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
|
||||
@@ -474,13 +475,13 @@ walking=caminando
|
||||
warpDeleteError=Problema al borrar el archivo de teletransporte.
|
||||
warpList={0}
|
||||
warpListPermission=\u00a7cNo tienes permiso para listar esos teletransportes.
|
||||
warpNotExist=Ese teletransporte no existe.
|
||||
warpOverwrite=\u00a7cNo puedes sobreescribir ese atajo.
|
||||
warpSet=\u00a77Atajo {0} establecido.
|
||||
warpUsePermission=\u00a7cNo tienes permisos para usar ese teletransporte.
|
||||
warpingTo=\u00a77Teletransportandote a {0}...
|
||||
warpNotExist=\u00a74Ese Warp no existe.
|
||||
warpOverwrite=\u00a74No puedes sobrescribir ese Warp.
|
||||
warpSet=\u00a76El Warp\u00a7c {0} \u00a76ha sido establecido.
|
||||
warpUsePermission=\u00a74No tienes permisos para usar ese Warp.
|
||||
warpingTo=\u00a76Teletransportadote a\u00a7c {0}\u00a76...
|
||||
warps=\u00a76Warps\:\u00a7r {0}
|
||||
warpsCount=\u00a77Hay {0} teletransportes. Mostrando pagina {1} de {2}.
|
||||
warpsCount=\u00a76Hay\u00a7c {0} \u00a76puntos de teletransporte. Mostrando p\u00e1gina \u00a7c{1} \u00a76de \u00a7c{2}\u00a76.
|
||||
weatherStorm=\u00a77Has establecido el tiempo como tormenta en este mundo.
|
||||
weatherStormFor=\u00a77Has establecido el tiempo como tormenta en este {1} durante {0} segundos.
|
||||
weatherSun=\u00a77Has establecido el tiempo como sol en este mundo.
|
||||
@@ -488,19 +489,19 @@ weatherSunFor=\u00a77Has establecido el tiempo como sol en este {1} durante {0}
|
||||
whoisAFK=\u00a77 - Ausente\:\u00a7r {0}
|
||||
whoisBanned=\u00a77 - Baneado\:\u00a7f {0}
|
||||
whoisExp=\u00a77 - Exp\:\u00a7f {0} (Nivel {1})
|
||||
whoisFly=\u00a77 - Modo de vuelo\:\u00a7f {0} ({1})
|
||||
whoisFly=\u00a77 - Modo volar\:\u00a7f {0} ({1})
|
||||
whoisGamemode=\u00a77 - Modo de juego\:\u00a7f {0}
|
||||
whoisGeoLocation=\u00a77 - Localizacion\:\u00a7f {0}
|
||||
whoisGeoLocation=\u00a77 - Ubicaci\u00f3n\:\u00a7f {0}
|
||||
whoisGod=\u00a77 - Modo de dios\:\u00a7f {0}
|
||||
whoisHealth=\u00a77 - Salud\:\u00a7f {0}/20
|
||||
whoisIPAddress=\u00a77 - Direccion IP\:\u00a7f {0}
|
||||
whoisIPAddress=\u00a77 - Direcci\u00f3n IP\:\u00a7f {0}
|
||||
whoisJail=\u00a77 - C\u00e1rcel\:\u00a7r {0}
|
||||
whoisLocation=\u00a76 - Localizacion\:\u00a7f ({0}, {1}, {2}, {3})
|
||||
whoisLocation=\u00a77 - Ubicaci\u00f3n\:\u00a7f ({0}, {1}, {2}, {3})
|
||||
whoisMoney=\u00a77 - Dinero\:\u00a7f {0}
|
||||
whoisMuted=\u00a77 - Silenciado\:\u00a7r {0}
|
||||
whoisNick=\u00a77 - Nick\:\u00a7r {0}
|
||||
whoisMuted=\u00a77 - Silenciado\:\u00a7f {0}
|
||||
whoisNick=\u00a77 - Nick\:\u00a7f {0}
|
||||
whoisOp=\u00a77 - OP\:\u00a7f {0}
|
||||
whoisTop=\u00a7a \=\=\= \u00a72QuienEs\:\u00a7e {0} \u00a7a \=\=\=
|
||||
whoisTop=\u00a76 \=\=\= Acerca de\:\u00a7c {0} \u00a76 \=\=\=
|
||||
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
|
||||
@@ -513,7 +514,7 @@ kitDelay=\u00a7m{0}\u00a7r
|
||||
giveSpawnFailure=\u00a74Espacio insuficiente, \u00a7c{0} \u00a7c{1} \u00a74se ha perdido.
|
||||
noKitGroup=\u00a74No tienes acceso a este kit.
|
||||
inventoryClearingFromAll=\u00a77Limpiando el inventario de todos los usuarios...
|
||||
inventoryClearingAllItems=\u00a7aLimpiando todos los objetos del inventario a\u00a77 {0}\u00a7a.
|
||||
inventoryClearingAllItems=\u00a76Limpiado todos los objetos del inventario a\u00a76 {0}.
|
||||
inventoryClearingAllArmor=\u00a7eLimpiado objetos y armaduras de\u00a7a {0}\u00a7e.
|
||||
inventoryClearingAllStack=\u00a76Inventario limpiado completamente a \u00a7c {0} \u00a76de {1}\u00a76.
|
||||
inventoryClearingStack=\u00a76Eliminado\u00a7c {0} \u00a76de\u00a7c {1} \u00a76de {2}\u00a76.
|
||||
@@ -524,7 +525,7 @@ totalSellableBlocks=\u00a7aEl valor total de la venta de todos tus bloques es \u
|
||||
radiusTooBig=\u00a74\u00a1Radio demasiado grande\! Lo m\u00e1ximo es {0}.
|
||||
isIpBanned=\u00a76IP \u00a7c{0} \u00a76est\u00e1 baneada.
|
||||
mobDataList=\u00a77Datos de mobs v\u00e1lidos\:\u00a7r {0}
|
||||
vanish=\u00a76Ocultaci\u00f3n m\u00e1gica para {0}\u00a76\: {1}
|
||||
vanish=\u00a76Invisibilidad m\u00e1gica para {0}\u00a76\:\u00a7c {1}
|
||||
noLocationFound=\u00a74Localizaci\u00f3n inv\u00e1lida.
|
||||
coordsKeyword={0}, {1}, {2}
|
||||
banExemptOffline=\u00a74No puedes banear a jugadores que no est\u00e1n conectados.
|
||||
@@ -532,18 +533,26 @@ tempbanExemptOffline=\u00a74No puedes banear temporalmente a jugadores que no es
|
||||
mayNotJailOffline=\u00a74No puedes encarcelar a jugadores que no est\u00e1n conectados.
|
||||
muteExemptOffline=\u00a74No puedes silenciar a jugadores que no est\u00e1n conectados.
|
||||
ignoreExempt=\u00a74No puedes ignorar a este jugador.
|
||||
unsafeTeleportDestination=\u00a74The teleport destination is unsafe and teleport-safety is disabled.
|
||||
noMetaJson=JSON Metadata is not supported in this version of Bukkit.
|
||||
maxMoney=\u00a74This transaction would exceed the balance limit for this account.
|
||||
skullChanged=\u00a76Skull changed to \u00a7c{0}.\u00a76.
|
||||
alphaNames=\u00a74Player names can only contain letters, numbers and underscores.
|
||||
givenSkull=\u00a76You have been given the Skull of \u00a7c{0}\u00a76.
|
||||
noPermissionSkull=\u00a74You do not have permission to modify that Skull.
|
||||
teleportInvalidLocation=Value of coordinates cannot be over 30000000
|
||||
invalidSkull=\u00a74Please hold a player Skull.
|
||||
weatherInvalidWorld=World named {0} not found\!
|
||||
gameModeInvalid=\u00a74You need to specify a valid player/mode.
|
||||
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
|
||||
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
|
||||
seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
|
||||
unableToSpawnItem=\u00a74Cannot spawn \u00a7c{0}\u00a74, this is not a spawnable item.
|
||||
unsafeTeleportDestination=\u00a74El destino es inseguro y el teletransporte seguro est\u00e1 desactivado.
|
||||
noMetaJson=El formato JSON Metadata no esta soportado para esta versi\u00f3n de bukkit.
|
||||
maxMoney=\u00a74Esta transacci\u00f3n supera el l\u00edmite del dinero para esta cuenta.
|
||||
skullChanged=\u00a76Calavera cambiada a \u00a7c{0}\u00a76.
|
||||
alphaNames=\u00a74Los nombres de jugadores s\u00f3lo pueden contener letras, n\u00fameros y gui\u00f3n bajo.
|
||||
givenSkull=\u00a76Se te ha dado el cr\u00e1neo de \u00a7c{0}\u00a76.
|
||||
noPermissionSkull=\u00a74No tienes permiso de modificar ese cr\u00e1neo.
|
||||
teleportInvalidLocation=El valor de las coordenadas no puede ser mayor a 30000000
|
||||
invalidSkull=\u00a74Por favor sost\u00e9n un cr\u00e1neo de un jugador.
|
||||
weatherInvalidWorld=\u00a1No se ha podido encontrar el mundo llamado "{0}"\!
|
||||
gameModeInvalid=\u00a74Necesitas especificar un jugador/modo v\u00e1lido.
|
||||
mailTooLong=\u00a74Mensaje muy largo. Intenta mantenerte debajo de 1000 caracteres.
|
||||
mailDelay=Demasiados correos han sido enviados en el \u00faltimo minuto. M\u00e1ximo\: {0}
|
||||
seenAccounts=\u00a76El jugador ha sido tambi\u00e9n conocido como\:\u00a7c {0}
|
||||
unableToSpawnItem=\u00a74No se puede generar \u00a7c{0}\u00a74, no es un objeto generable.
|
||||
itemsConverted=\u00a76Converted all items into blocks.
|
||||
itemsNotConverted=\u00a74You have no items that can be converted into blocks.
|
||||
mailSentTo=\u00a7c{0}\u00a76 has been sent the following mail\:
|
||||
mailMessage={0}
|
||||
|
||||
whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0}
|
||||
playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76.
|
||||
mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1}
|
||||
|
@@ -7,9 +7,9 @@ action=\u00a75* {0} \u00a75{1}
|
||||
addedToAccount=\u00a7a{0} on lisatud teie kontole.
|
||||
addedToOthersAccount=\u00a7a{0} lisatud {1}\u00a7a kontole. Uus summa\: {2}
|
||||
adventure=seiklus
|
||||
alertBroke=purustas\:
|
||||
alertBroke=l\u00f5hkus\:
|
||||
alertFormat=\u00a73[{0}] \u00a7r {1} \u00a76 {2} asukohas\: {3}
|
||||
alertPlaced=pani maha\:
|
||||
alertPlaced=asetas\:
|
||||
alertUsed=kasutas\:
|
||||
antiBuildBreak=\u00a74Teil ei ole siin luba lammutada\u00a7c {0} \u00a74plokke.
|
||||
antiBuildCraft=\u00a74Teil ei ole luba valmistada\u00a7c {0}\u00a74.
|
||||
@@ -18,111 +18,111 @@ antiBuildInteract=\u00a74Teil ei ole luba suhelda\u00a7c {0}\u00a74''iga.
|
||||
antiBuildPlace=\u00a74Teil ei ole luba siia asetada\u00a7c {0} \u00a74.
|
||||
antiBuildUse=\u00a74Teil ei ole luba kasutada\u00a7c {0}\u00a74.
|
||||
autoAfkKickReason=Teid kickiti, sest olite eemal rohkem kui {0} minutit.
|
||||
backAfterDeath=\u00a76Kasutage /back k\u00e4sku, et oma surmapaigale naasta.
|
||||
backAfterDeath=\u00a76Kasuta k\u00e4sku /back, et oma surmapaigale naasta.
|
||||
backUsageMsg=\u00a76Tagasi viimine eelmisesse asukohta.
|
||||
backupDisabled=\u00a74V\u00e4line backup skript ei ole konfigureeritud.
|
||||
backupFinished=\u00a76Backup valmis.
|
||||
backupStarted=\u00a76Backup alustatud.
|
||||
backupFinished=\u00a76Varukoopia on valmis.
|
||||
backupStarted=\u00a76Varukoopia tegemine alustatud.
|
||||
balance=\u00a7aRaha\:\u00a7c {0}
|
||||
balanceOther=\u00a7aM\u00e4ngija {0}\u00a7a raha\:\u00a7c {1}
|
||||
balanceOther=\u00a7aM\u00e4ngijal {0}\u00a7a on raha\:\u00a7c {1}
|
||||
balanceTop=\u00a76Top rikkaimad({0})
|
||||
banExempt=\u00a74Te ei saa bannida seda m\u00e4ngijat.
|
||||
banFormat=\u00a74Bannitud\:\n\u00a7r{0}
|
||||
banExempt=\u00a74Sa ei saa blokeerida seda m\u00e4ngijat.
|
||||
banFormat=\u00a74Blokeeritud\:\n\u00a7r{0}
|
||||
bed=\u00a7ovoodi\u00a7r
|
||||
bedMissing=\u00a74Teie voodi on kas m\u00e4\u00e4ramata, kadunud v\u00f5i blokeeritud.
|
||||
bedMissing=\u00a74Sinu voodi on kas m\u00e4\u00e4ramata, kadunud v\u00f5i takistatud.
|
||||
bedNull=\u00a7mvoodi\u00a7r
|
||||
bedSet=\u00a76Voodi spawn m\u00e4\u00e4ratud\!
|
||||
bedSet=\u00a76Voodikoht m\u00e4\u00e4ratud\!
|
||||
bigTreeFailure=\u00a74Suure puu generatsiooni viga. Proovige uuesti muru v\u00f5i mulla peal.
|
||||
bigTreeSuccess=\u00a76Suur puu spawnitud.
|
||||
bigTreeSuccess=\u00a76Suur puu on tekitatud.
|
||||
blockList=\u00a76Essentials lootis j\u00e4rgnevad k\u00e4sud teisele pluginale\:
|
||||
bookAuthorSet=\u00a76Raamatu autor m\u00e4\u00e4ratud kasutajale {0}.
|
||||
bookAuthorSet=\u00a76Raamatu autoriks on m\u00e4\u00e4ratud {0}.
|
||||
bookLocked=\u00a76See raamat on n\u00fc\u00fcd lukus.
|
||||
bookTitleSet=\u00a76Raamatu pealkiri m\u00e4\u00e4ratud j\u00e4rgnevaks\: {0}.
|
||||
bookTitleSet=\u00a76Raamatu pealkirjaks on m\u00e4\u00e4ratud "{0}".
|
||||
broadcast=\u00a7r\u00a76[\u00a74Teade\u00a76]\u00a7a {0}
|
||||
buildAlert=\u00a74Teil ei ole luba ehitada.
|
||||
bukkitFormatChanged=Bukkit versiooni formaat muudetud. Versioon ei ole kontrollitud.
|
||||
burnMsg=\u00a76S\u00fc\u00fctasite m\u00e4ngija\u00a7c {0} \u00a76p\u00f5lema\u00a7c {1} sekundiks\u00a76.
|
||||
canTalkAgain=\u00a76Te saate j\u00e4lle r\u00e4\u00e4kida.
|
||||
cannotStackMob=\u00a74Teil ei ole luba stackida mitmeid loomi.
|
||||
burnMsg=\u00a76S\u00fc\u00fctasid m\u00e4ngija\u00a7c {0} \u00a76p\u00f5lema\u00a7c {1} sekundiks\u00a76.
|
||||
canTalkAgain=\u00a76Sa saad j\u00e4lle r\u00e4\u00e4kida.
|
||||
cannotStackMob=\u00a74Sul ei ole luba kihistada mitmeid elukaid.
|
||||
cantFindGeoIpDB=Ei leia GeoIP andmebaasi\!
|
||||
cantReadGeoIpDB=Tekkis viga lugedes GeoIP andmebaasi\!
|
||||
cantSpawnItem=\u00a74Teil ei ole luba spawnida eset\u00a7c {0}\u00a74.
|
||||
cantSpawnItem=\u00a74Sul ei ole luba tekitada eset\u00a7c {0}\u00a74.
|
||||
chatTypeAdmin=[A]
|
||||
chatTypeLocal=[L]
|
||||
chatTypeSpy=[Spioon]
|
||||
cleaned=Kasutajafailid Puhastatud.
|
||||
cleaned=Kasutajafailid puhastatud.
|
||||
cleaning=Kasutajafailide puhastus.
|
||||
commandFailed=K\u00e4sk {0} eba\u00f5nnestus\:
|
||||
commandHelpFailedForPlugin=Viga saades abi pluginale\: {0}
|
||||
commandNotLoaded=\u00a74K\u00e4sk {0} on ebakoheselt laetud.
|
||||
compassBearing=\u00a76Laager\: {0} ({1} kraadi).
|
||||
compassBearing=\u00a76Suund\: {0} ({1} kraadi).
|
||||
configFileMoveError=Viga liigutades config.yml backup asukohta.
|
||||
configFileRenameError=Viga temp faili \u00fcmber nimetamisega config.yml-ks.
|
||||
connectedPlayers=\u00a76\u00dchendatud m\u00e4ngijad\u00a7r
|
||||
connectionFailed=\u00dchenduse avamine eba\u00f5nnestus.
|
||||
cooldownWithMessage=\u00a74Maha jahtumine\: {0}
|
||||
corruptNodeInConfig=\u00a74Teade\: Teie konfiguratsioon failis on vigane {0} node.
|
||||
corruptNodeInConfig=\u00a74Teade\: Sinu konfiguratsioonifailis on vigane {0} node.
|
||||
couldNotFindTemplate=\u00a74Ei leidnud \u0161ablooni {0}
|
||||
creatingConfigFromTemplate=Koniguratsiooni loomine \u0161abloonist\: {0}
|
||||
creatingConfigFromTemplate=Seadete loomine \u0161abloonist\: {0}
|
||||
creatingEmptyConfig=Loon t\u00fchja konfiguratsiooni\: {0}
|
||||
creative=loominguline
|
||||
currency={0}{1}
|
||||
currentWorld=\u00a76Praegune Maailm\:\u00a7c {0}
|
||||
currentWorld=\u00a76Praegune maailm\:\u00a7c {0}
|
||||
day=p\u00e4ev
|
||||
days=p\u00e4eva
|
||||
defaultBanReason=Ban Hammer on r\u00e4\u00e4kinud\!
|
||||
defaultBanReason=Blokeerimishaamer on r\u00e4\u00e4kinud\!
|
||||
deleteFileError=Faili {0} ei saanud kustutada
|
||||
deleteHome=\u00a76Kodu\u00a7c {0} \u00a76on eemaldatud.
|
||||
deleteJail=\u00a76Vangla\u00a7c {0} \u00a76on eemaldatud.
|
||||
deleteWarp=\u00a76L\u00f5im\u00a7c {0} \u00a76on eemaldatud.
|
||||
deniedAccessCommand=\u00a7c{0} \u00a74keelati ligip\u00e4\u00e4s k\u00e4sule.
|
||||
denyBookEdit=\u00a74Te ei saa avada seda raamatut.
|
||||
denyChangeAuthor=\u00a74Te ei saa muuta k\u00e4esoleva raamatu autorit.
|
||||
denyChangeTitle=\u00a74Te ei saa muuta k\u00e4esoleva raamatu pealkirja.
|
||||
depth=\u00a76Te olete merepinnal.
|
||||
depthAboveSea=\u00a76Te olete\u00a7c {0} \u00a76plokk(i) \u00fcle merepinna.
|
||||
depthBelowSea=\u00a76Te olete\u00a7c {0} \u00a76plokk(i) allpool merepinda.
|
||||
deniedAccessCommand=\u00a74M\u00e4ngijal \u00a7c{0} \u00a74keelati ligip\u00e4\u00e4s k\u00e4sule.
|
||||
denyBookEdit=\u00a74Sa ei saa avada seda raamatut.
|
||||
denyChangeAuthor=\u00a74Sa ei saa muuta selle raamatu autorit.
|
||||
denyChangeTitle=\u00a74Sa ei saa muuta selle raamatu pealkirja.
|
||||
depth=\u00a76Sa oled merepinnal.
|
||||
depthAboveSea=\u00a76Sa oled\u00a7c {0} \u00a76plokk(i) merepinnast k\u00f5rgemal.
|
||||
depthBelowSea=\u00a76Sa oled\u00a7c {0} \u00a76plokk(i) merepinnast madalamal.
|
||||
destinationNotSet=Sihtpaik ei ole m\u00e4\u00e4ratud\!
|
||||
disableUnlimited=\u00a76Peatatud l\u00f5pmatu plokki asetamine \u00a7c {0} \u00a76m\u00e4ngijale {1}.
|
||||
disabled=peatatud
|
||||
disabledToSpawnMob=\u00a74Selle mob-i spawnimine on peatatud konfiguratsioonis.
|
||||
disabled=keelatud
|
||||
disabledToSpawnMob=\u00a74Selle eluka tekitamine on konfiguratsioonis keelatud.
|
||||
distance=\u00a76Kaugus\: {0}
|
||||
dontMoveMessage=\u00a76Teleportatsioon algab\u00a7c {0}\u00a76 sekundi p\u00e4rast. \u00c4ra liigu.
|
||||
dontMoveMessage=\u00a76Teleportatsioon algab\u00a7c {0}\u00a76 p\u00e4rast. \u00c4ra liigu.
|
||||
downloadingGeoIp=GeoIP andmebaasi allalaadimine... see v\u00f5ib v\u00f5tta aega (riik\: 0.6 MB, linn\: 20MB)
|
||||
duplicatedUserdata=Topelt kasutaja andmed\: {0} ja {1}.
|
||||
durability=\u00a76Sellel esemel on \u00a7c{0}\u00a76 kasutust j\u00e4rel
|
||||
editBookContents=\u00a7eTe v\u00f5ite n\u00fc\u00fcd muuta k\u00e4esoleva raamatu sisu.
|
||||
enableUnlimited=\u00a76Annan piiramatus koguses \u00a7c {0} \u00a76m\u00e4ngijale {1}.
|
||||
editBookContents=\u00a7eSa v\u00f5id n\u00fc\u00fcd muuta selle raamatu sisu.
|
||||
enableUnlimited=\u00a76Annan piiramatus koguses\u00a7c {0} \u00a76m\u00e4ngijale \u00a7c{1}\u00a76.
|
||||
enabled=lubatud
|
||||
enchantmentApplied=\u00a76Loits\u00a7c {0} \u00a76on lisatud k\u00e4esolevale esemele.
|
||||
enchantmentNotFound=\u00a74Loitsu ei leitud\!
|
||||
enchantmentPerm=\u00a74Teil ei ole luba j\u00e4rgnevaks\:\u00a7c {0}\u00a74.
|
||||
enchantmentPerm=\u00a74Sul ei ole luba j\u00e4rgnevaks\:\u00a7c {0}\u00a74.
|
||||
enchantmentRemoved=\u00a76Loits\u00a7c {0} \u00a76on eemaldatud k\u00e4esolevalt esemelt.
|
||||
enchantments=\u00a76Loitsud\:\u00a7r {0}
|
||||
errorCallingCommand=Viga kutsudes k\u00e4sku /{0}
|
||||
errorWithMessage=\u00a7cViga\:\u00a74 {0}
|
||||
essentialsHelp1=Fail on katki/vigane ja Essentials ei saa seda avada. Essentials on n\u00fc\u00fcd suletud. Kui te ei suuda faili ise korda teha, siis k\u00fclastage http\://tiny.cc/EssentialsChat
|
||||
essentialsHelp2=Fail on katki/vigane ja Essentials ei saa seda avada. Essentials on n\u00fc\u00fcd suletud. Kui te ei suuda faili ise korda teha, siis kas kirjutage /essentialshelp m\u00e4ngus v\u00f5i k\u00fclastage http\://tiny.cc/EssentialsChat
|
||||
essentialsReload=\u00a76Essentials Uuesti Laetud\u00a7c {0}
|
||||
essentialsReload=\u00a76Essentials taaslaetud\u00a7c {0}.
|
||||
exp=\u00a7c{0}\u00a76''il on\u00a7c {1} \u00a76exp (level\u00a7c {2}\u00a76) ja vajab veel\u00a7c {3} \u00a76exp j\u00e4rgmiseks leveliks.
|
||||
expSet=\u00a7c{0}\u00a76''il on n\u00fc\u00fcd\u00a7c {1} \u00a76exp.
|
||||
extinguish=\u00a76Te kustutasite end.
|
||||
extinguishOthers=\u00a76Kustutasite m\u00e4ngija {0}\u00a76.
|
||||
failedToCloseConfig=Esines viga konfiguratsiooni {0} sulgemisega.
|
||||
failedToCreateConfig=Viga konfiguratsiooni {0} tegemisega.
|
||||
failedToCreateConfig=Esines viga konfiguratsiooni {0} loomisel.
|
||||
failedToWriteConfig=Esines viga kirjutamisega konfiguratsiooni {0}.
|
||||
false=\u00a74false\u00a7r
|
||||
feed=\u00a76Teie isu on kadunud.
|
||||
feedOther=\u00a76Rahuldasite m\u00e4ngija {0}\u00a76 isu.
|
||||
fileRenameError=Faili {0} \u00fcmber nimetamine eba\u00f5nnestus\!
|
||||
fireworkColor=\u00a74Vigane ilutulestiku parameetrid sisestatud, peate esmalt v\u00e4rvi paika panema.
|
||||
fireworkEffectsCleared=\u00a76K\u00f5ik effektid eemaldatud k\u00e4esoleval kogusel.
|
||||
fireworkSyntax=\u00a76Ilutulestiku parameetrid\:\u00a7c color\:<color> [fade\:<color>] [shape\:<shape>] [effect\:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas\: \u00a7cred,blue,pink\n\u00a76Shapes\:\u00a7c star, ball, large, creeper, burst \u00a76Effects\:\u00a7c trail, twinkle.
|
||||
flyMode=\u00a76M\u00e4\u00e4rasid lendamise\u00a7c {0} \u00a76m\u00e4ngijale {1}\u00a76.
|
||||
feedOther=\u00a76Rahuldasid \u00a7c{0}\u00a76 isu.
|
||||
fileRenameError=Faili {0} \u00fcmbernimetamine eba\u00f5nnestus\!
|
||||
fireworkColor=\u00a74Vigsed ilutulestiku parameetrid sisestatud, peate esmalt v\u00e4rvi paika panema.
|
||||
fireworkEffectsCleared=\u00a76K\u00f5ik effektid eemaldatud k\u00e4esoleval esemel.
|
||||
fireworkSyntax=\u00a76Ilutulestiku parameetrid\:\u00a7c v\u00e4rv\:<color> [hajutus\:<color>] [kuju\:<shape>] [effekt\:<effect>]\n\u00a76Et kasutada mitmeid effekte/v\u00e4rve korraga, eralda nad \u00fcksteisest komaga\: \u00a7cred,blue,pink\n\u00a76Kujud\:\u00a7c star, ball, large, creeper, burst \u00a76Effektid\:\u00a7c trail, twinkle.
|
||||
flyMode=\u00a76Lubasid lendamise\u00a7c {0} \u00a76m\u00e4ngijale {1}\u00a76.
|
||||
flying=lendab
|
||||
foreverAlone=\u00a74Teil ei ole mitte kellelegi vastata.
|
||||
fullStack=\u00a74Teil on juba t\u00e4is kogus.
|
||||
gameMode=\u00a76M\u00e4\u00e4rasid m\u00e4ngu moodi\u00a7c {0} \u00a76m\u00e4ngijale {1}\u00a76.
|
||||
foreverAlone=\u00a74Sul ei ole mitte kellelegi vastata.
|
||||
fullStack=\u00a74Sul on juba t\u00e4is kuhi.
|
||||
gameMode=\u00a7c{1} \u00a76m\u00e4ngure\u017eiimiks on seatud \u00a7c{0}\u00a76.
|
||||
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76"\: \u00a7c{2}\u00a76 t\u00fckki, \u00a7c{3}\u00a76 \u00fcksust, \u00a7c{4}\u00a76 plaati.
|
||||
gcfree=\u00a76Vaba m\u00e4lu\:\u00a7c {0} MB.
|
||||
gcmax=\u00a76Maksimaalne m\u00e4lu\:\u00a7c {0} MB.
|
||||
@@ -131,20 +131,20 @@ geoIpUrlEmpty=GeoIP allalaadimise url on t\u00fchi.
|
||||
geoIpUrlInvalid=GeoIP allalaadimise url on vigane.
|
||||
geoipJoinFormat=\u00a76M\u00e4ngija \u00a7c{0} \u00a76tuleb asukohast \u00a7c{1}\u00a76.
|
||||
giveSpawn=\u00a76Annan\u00a7c {0} \u00a7c {1}\u00a76''i\u00a7c m\u00e4ngijale\u00a7c {2}\u00a76.
|
||||
godDisabledFor=\u00a74keelatud\u00a76 m\u00e4ngijal\u00a7c {0}
|
||||
godDisabledFor=\u00a7ckeelatud\u00a76 m\u00e4ngijale\u00a7c {0}
|
||||
godEnabledFor=\u00a7alubatud\u00a76 m\u00e4ngijal\u00a7c {0}
|
||||
godMode=\u00a76God mode\u00a7c {0}\u00a76.
|
||||
groupDoesNotExist=\u00a74Selles gruppis ei ole mitte kedagi sees\!
|
||||
groupNumber=\u00a7c{0}\u00a7f sees, t\u00e4is listiks\:\u00a7c /{1} {2}
|
||||
godMode=\u00a76Jumalare\u017eiim\u00a7c {0}\u00a76.
|
||||
groupDoesNotExist=\u00a74Selles grupis ei ole mitte kedagi v\u00f5rgus\!
|
||||
groupNumber=\u00a7c{0}\u00a7f v\u00f5rgus, terve nimekiri\:\u00a7c /{1} {2}
|
||||
hatArmor=\u00a74K\u00e4esolevat eset ei saa m\u00fctsina kasutada\!
|
||||
hatEmpty=\u00a74Te ei kanna m\u00fctsi.
|
||||
hatEmpty=\u00a74Sa ei kanna m\u00fctsi.
|
||||
hatFail=\u00a74Teil peab olema k\u00e4es olema midagi mida kanda.
|
||||
hatPlaced=\u00a76Naudi oma uut m\u00fctsi\!
|
||||
hatRemoved=\u00a76Teie m\u00fcts on eemaldatud.
|
||||
haveBeenReleased=\u00a76Teid on vabastatud.
|
||||
heal=\u00a76Teid on elustatud.
|
||||
healDead=\u00a74Sa ei saa elustada kedagi kes on surnud\!
|
||||
healOther=\u00a76Elustasite m\u00e4ngija\u00a7c {0}\u00a76.
|
||||
haveBeenReleased=\u00a76Sind on vabastatud.
|
||||
heal=\u00a76Sind on tervendatud.
|
||||
healDead=\u00a74Sa ei saa surnuid tervendada\!
|
||||
healOther=\u00a76Tervendasid\u00a7c {0}\u00a76.
|
||||
helpConsole=Et vaadata abi konsoolist, kirjuta ?.
|
||||
helpFrom=\u00a76K\u00e4sud m\u00e4ngijalt {0}\:
|
||||
helpLine=\u00a76/{0}\u00a7r\: {1}
|
||||
@@ -161,17 +161,17 @@ hour=tund
|
||||
hours=tundi
|
||||
ignoredList=\u00a76Ignoreerid\:\u00a7r {0}
|
||||
ignorePlayer=\u00a76Te ignoreerite m\u00e4ngijat\u00a7c {0}\u00a76.
|
||||
illegalDate=Illegaalne kuup\u00e4eva formaat.
|
||||
illegalDate=Vigane kuup\u00e4eva vorming.
|
||||
infoChapter=\u00a76Vali peat\u00fckk\:
|
||||
infoChapterPages=\u00a7e ---- \u00a76{0} \u00a7e--\u00a76 Leht \u00a7c{1}\u00a76/\u00a7c{2} \u00a7e----
|
||||
infoPages=\u00a7e ---- \u00a76{2} \u00a7e--\u00a76 Leht \u00a7c{0}\u00a76/\u00a7c{1} \u00a7e----
|
||||
infoUnknownChapter=\u00a74Tundmatu peat\u00fckk.
|
||||
insufficientFunds=\u00a74Ebapiisavas koguses raha.
|
||||
invalidCharge=\u00a74Vigane tasu.
|
||||
invalidFireworkFormat=\u00a76Valik \u00a74{0} \u00a76ei ole kehtiv summa \u00a74{1}\u00a76 jaoks.
|
||||
invalidFireworkFormat=\u00a74Valik \u00a7c{0} \u00a74ei ole sobiv v\u00e4\u00e4rtus \u00a7c{1}\u00a74 jaoks.
|
||||
invalidHome=\u00a74Kodu\u00a7c {0} \u00a74ei ole m\u00e4\u00e4ratud\!
|
||||
invalidHomeName=\u00a74Vigane kodu nimi\!
|
||||
invalidMob=\u00a74Invalid mob type.
|
||||
invalidMob=\u00a74Kehtetu eluka liik.
|
||||
invalidNumber=Vigane Number.
|
||||
invalidPotion=\u00a74Vigane n\u00f5iajook.
|
||||
invalidPotionMeta=\u00a74Vigane n\u00f5iajoogi meta\: \u00a7c{0}\u00a74.
|
||||
@@ -182,7 +182,7 @@ is=on
|
||||
itemCannotBeSold=\u00a74K\u00e4esolevat eset ei saa serverile m\u00fc\u00fca.
|
||||
itemMustBeStacked=\u00a74Eset saad vahetada stackina. Kogus 2s oleks kaks stacki, jne.
|
||||
itemNames=\u00a76Eseme l\u00fchendid\:\u00a7r {0}
|
||||
itemNotEnough1=\u00a74Teil pole piisavalt k\u00e4esolevat eset,et seda m\u00fc\u00fca.
|
||||
itemNotEnough1=\u00a74Sul pole k\u00e4es piisavat hulka eset, et seda m\u00fc\u00fca.
|
||||
itemNotEnough2=\u00a76Kui teil oli plaanis m\u00fc\u00fca k\u00f5ik oma esemed sellest t\u00fc\u00fcbist, siis kasutage /sell esemenimi.
|
||||
itemNotEnough3=\u00a76/sell esemenimi -1 m\u00fc\u00fcb k\u00f5ik peale \u00fche, jne.
|
||||
itemSellAir=Te t\u00f5esti proovisite m\u00fc\u00fca \u00d5hku? V\u00f5tke ese endale k\u00e4tte.
|
||||
@@ -199,90 +199,90 @@ jailReleasedPlayerNotify=\u00a76Teid on vabastatud\!
|
||||
jailSentenceExtended=\u00a76Vangi aega pikendati j\u00e4rgnevalt\: {0}
|
||||
jailSet=\u00a76Vangla\u00a7c {0} \u00a76on m\u00e4\u00e4ratud.
|
||||
jumpError=\u00a74See teeks teie arvuti ajule haiget.
|
||||
kickDefault=Kickitud serverist.
|
||||
kickExempt=\u00a74Te ei saa seda m\u00e4ngijat kickida.
|
||||
kickedAll=\u00a74Kickitud k\u00f5ik m\u00e4ngijad serverist.
|
||||
kickDefault=Serverist v\u00e4lja visatud.
|
||||
kickExempt=\u00a74Sa ei saa seda m\u00e4ngijat m\u00e4ngust v\u00e4lja visata.
|
||||
kickedAll=\u00a74K\u00f5ik m\u00e4ngijad on serverist v\u00e4lja visatud.
|
||||
kill=\u00a76Tapsid\u00a7c {0}\u00a76-i.
|
||||
killExempt=\u00a74Te ei saa tappa {0}\u00a74-i
|
||||
killExempt=\u00a74Sa ei saa tappa \u00a7c{0}\u00a74.
|
||||
kitCost=\ \u00a77\u00a7o({0})\u00a7r
|
||||
kitError2=\u00a74See kit on ebakorrektselt seadistatud. Kontakteeru omanikuga.
|
||||
kitError=\u00a74Ei leidnud \u00fchtegi kit-i.
|
||||
kitGiveTo=\u00a76Annan kit-i\u00a7c {0}\u00a76 m\u00e4ngijale {1}\u00a7.
|
||||
kitInvFull=\u00a74Teie seljakott on t\u00e4is, panime abipaki maha.
|
||||
kitError2=\u00a74See abipakk on ebakorrektselt seadistatud. Kontakteeru omanikuga.
|
||||
kitError=\u00a74Ei leitud \u00fchtegi abipakki.
|
||||
kitGiveTo=\u00a76Annan abipaki\u00a7c {0}\u00a76 m\u00e4ngijale \u00a7c{1}\u00a76.
|
||||
kitInvFull=\u00a74Sinu seljakott on t\u00e4is, panime abipaki maha.
|
||||
kitNotFound=\u00a74Antud abipakki ei ole olemas.
|
||||
kitOnce=\u00a74Te ei saa seda abipakki uuesti kasutada.
|
||||
kitReceive=\u00a76Saite abipaki\u00a7c {0}\u00a76.
|
||||
kitTimed=\u00a74Te saate seda abipakki kasutada peale\u00a7c {0}\u00a74.
|
||||
kits=\u00a76Abipakkid\:\u00a7r {0}
|
||||
leatherSyntax=\u00a76Nahast v\u00e4rvi Syntax\: color\:<red>,<green>,<blue> eg\: color\:255,0,0.
|
||||
kitReceive=\u00a76Said abipaki\u00a7c {0}\u00a76.
|
||||
kitTimed=\u00a74Sa saad seda abipakki kasutada peale\u00a7c {0}\u00a74.
|
||||
kits=\u00a76Abipakid\:\u00a7r {0}
|
||||
leatherSyntax=\u00a76Nahav\u00e4rvi s\u00fcntaks\: color\:<red>,<green>,<blue> eg\: color\:255,0,0.
|
||||
lightningSmited=\u00a76Pikne on teid l\u00f6\u00f6nud\!
|
||||
lightningUse=\u00a76Viskad pikse noole m\u00e4ngijale\u00a7c {0}
|
||||
listAfkTag=\u00a77[Eemal]\u00a7r
|
||||
listAmount=\u00a76Serveris on \u00a7c{0}\u00a76/\u00a7c{1}\u00a76 m\u00e4ngijat sees.
|
||||
listAmountHidden=\u00a76Serveris on \u00a7c{0}\u00a76/{1}\u00a76 maksimaalsest \u00a7c{2}\u00a76 m\u00e4ngijat sees.
|
||||
listAmount=\u00a76V\u00f5rgus on \u00a7c{0}\u00a76/\u00a7c{1}\u00a76 m\u00e4ngijat.
|
||||
listAmountHidden=\u00a76V\u00f5rgus on \u00a7c{0}\u00a76 (\u00a7c{1}\u00a76)/\u00a7c{2}\u00a76 m\u00e4ngijat.
|
||||
listGroupTag=\u00a76{0}\u00a7r\: \u00a7r
|
||||
listHiddenTag=\u00a77[PEIDETUD]\u00a7r
|
||||
loadWarpError=\u00a74Viga laadides l\u00f5imu {0}.
|
||||
loadWarpError=\u00a74L\u00f5imu {0} laadimisel tekkis viga.
|
||||
localFormat=[L]<{0}> {1}
|
||||
mailClear=\u00a76Et m\u00e4rkida posti loetuks, kirjuta\u00a7c /mail clear.
|
||||
mailCleared=\u00a76Post puhastatud\!
|
||||
mailSent=\u00a76Post saadetud\!
|
||||
markMailAsRead=\u00a76Et m\u00e4rkida enda posti loetuks, kirjuta\u00a7c /mail clear.
|
||||
mailClear=\u00a76Et m\u00e4rkida kirjad loetuks, kirjuta\u00a7c /mail clear\u00a76.
|
||||
mailCleared=\u00a76Kirjad on puhastatud\!
|
||||
mailSent=\u00a76Kiri saadetud\!
|
||||
markMailAsRead=\u00a76Et m\u00e4rkida kirjad loetuks, kirjuta\u00a7c /mail clear\u00a76.
|
||||
markedAsAway=\u00a76Teid on m\u00e4rgitud kui eemal.
|
||||
markedAsNotAway=\u00a76Te ei ole enam m\u00e4rgitud kui eemal.
|
||||
matchingIPAddress=\u00a76J\u00e4rgnevad m\u00e4ngijad on eelnevalt sisse loginud sellelt IP aadressilt\:
|
||||
maxHomes=\u00a74Te ei saa m\u00e4\u00e4rata rohkem kui\u00a7c {0} \u00a74kodu.
|
||||
mayNotJail=\u00a74Te ei tohi antud m\u00e4ngijat vangistada\!
|
||||
maxHomes=\u00a74Sa ei saa m\u00e4\u00e4rata rohkem kui\u00a7c {0} \u00a74kodu.
|
||||
mayNotJail=\u00a74Sa ei tohi antud m\u00e4ngijat vangistada\!
|
||||
me=mina
|
||||
minute=minut
|
||||
minutes=minutit
|
||||
missingItems=\u00a74Teil ei ole {0}x {1}.
|
||||
mobSpawnError=\u00a74Viga vahetades mob spawnerit.
|
||||
mobSpawnLimit=Mob kogus piiratud serveri piirile.
|
||||
mobSpawnTarget=\u00a74Sihitud plokk peab olema mob spawner.
|
||||
mobsAvailable=\u00a76Mobid\:\u00a7r {0}
|
||||
missingItems=\u00a74Sul ei ole \u00a7c{0}x {1}\u00a74.
|
||||
mobSpawnError=\u00a74Elukatekitaja vahetamisel tekkis viga.
|
||||
mobSpawnLimit=Elukate hulk piiratud serveri limiidile.
|
||||
mobSpawnTarget=\u00a74Sihitud plokk peab olema elukatekitaja.
|
||||
mobsAvailable=\u00a76Elukad\:\u00a7r {0}
|
||||
moneyRecievedFrom=\u00a7a{0} on saadud kasutajalt {1}.
|
||||
moneySentTo=\u00a7a{0} on saadetud m\u00e4ngijale {1}.
|
||||
month=kuu
|
||||
months=kuud
|
||||
moreThanZero=\u00a74Kogused peavad olema suuremad kui 0.
|
||||
moveSpeed=\u00a76M\u00e4\u00e4rasite {0} kiiruse\u00a7c {1} \u00a76m\u00e4ngijale {2}\u00a76.
|
||||
msgFormat=\u00a76[{0}\u00a76 -> {1}\u00a76] \u00a7r{2}
|
||||
moveSpeed=\u00a7c{1} \u00a76{0}kiiruseks on seatud \u00a7c{2}\u00a76.
|
||||
msgFormat=\u00a76[\u00a7c{0}\u00a76 -> \u00a7c{1}\u00a76] \u00a7r{2}
|
||||
multipleCharges=\u00a74Te ei saa lisada rohkem kui \u00fche laadimise k\u00e4esolevale ilutulestikule.
|
||||
multiplePotionEffects=\u00a74Te ei saa lisada rohkem kui \u00fche effekti k\u00e4esolevale n\u00f5iajoogile.
|
||||
muteExempt=\u00a74Te ei saa muteda antud m\u00e4ngijat.
|
||||
muteNotify=\u00a7c{0} \u00a76mutes m\u00e4ngija \u00a7c{1}\u00a76.
|
||||
mutedPlayer=\u00a76M\u00e4ngija\u00a7c {0} \u00a76mutetud.
|
||||
mutedPlayerFor=\u00a76M\u00e4ngija\u00a7c {0} \u00a76mutetud\u00a7c {1}\u00a76.
|
||||
mutedUserSpeaks={0} \u00fcritas r\u00e4\u00e4kida, aga on muted.
|
||||
muteExempt=\u00a74Sa ei tohi vaigistada antud m\u00e4ngijat.
|
||||
muteNotify=\u00a7c{0} \u00a76vaigistas m\u00e4ngija \u00a7c{1}\u00a76.
|
||||
mutedPlayer=\u00a76M\u00e4ngija\u00a7c {0} \u00a76on vaigistatud.
|
||||
mutedPlayerFor=\u00a76M\u00e4ngija\u00a7c {0} \u00a76on vaigistatud\u00a7c {1}\u00a76.
|
||||
mutedUserSpeaks={0} \u00fcritas r\u00e4\u00e4kida, aga on vaigistatud.
|
||||
nearbyPlayers=\u00a76M\u00e4ngijad l\u00e4heduses\:\u00a7r {0}
|
||||
negativeBalanceError=\u00a74Kasutajal ei ole lubatud olla negatiivne raha summa.
|
||||
negativeBalanceError=\u00a74Kasutajal ei ole tohi olla negatiivne rahasumma.
|
||||
nickChanged=\u00a76H\u00fc\u00fcdnimi muudetud.
|
||||
nickDisplayName=\u00a74Te peate lubama change-displayname Essentials configus.
|
||||
nickInUse=\u00a74Antud nimi on juba kasutusel.
|
||||
nickNamesAlpha=\u00a74H\u00fc\u00fcdnimed peavad olema t\u00e4ht-numbrilised.
|
||||
nickNoMore=\u00a76Teilt eemaldati h\u00fc\u00fcdnimi.
|
||||
nickSet=\u00a76Teie h\u00fc\u00fcdnimi on n\u00fc\u00fcd \u00a7c{0}
|
||||
nickSet=\u00a76Sinu h\u00fc\u00fcdnimi on n\u00fc\u00fcd \u00a7c{0}\u00a76.
|
||||
nickTooLong=\u00a74Antud h\u00fc\u00fcdnimi on liiga pikk.
|
||||
noAccessCommand=\u00a74Teil ei ole sellele k\u00e4sule juurdep\u00e4\u00e4su.
|
||||
noAccessPermission=\u00a74Teil ei ole \u00f5igust sellele {0}-ile.
|
||||
noAccessPermission=\u00a74Sul pole \u00f5igust \u00a7c{0}\u00a74 avamiseks.
|
||||
noBreakBedrock=\u00a74Teil ei ole lubatud purustada aluskivi.
|
||||
noDestroyPermission=\u00a74Teil ei ole luba purustada seda {0}.
|
||||
noDestroyPermission=\u00a74Sul pole \u00f5igust \u00a7c{0}\u00a74 l\u00f5hkumiseks.
|
||||
noDurability=\u00a74K\u00e4esoleval esemel puudub vastupidavus.
|
||||
noGodWorldWarning=\u00a74Hoiatus\! God mood ei ole lubatud selles maailmas.
|
||||
noGodWorldWarning=\u00a74Hoiatus\! Jumalare\u017eiim ei ole selles maailmas lubatud.
|
||||
noHelpFound=\u00a74Klappivaid k\u00e4ske ei ole.
|
||||
noHomeSetPlayer=\u00a76M\u00e4ngija ei ole m\u00e4\u00e4ranud kodu.
|
||||
noIgnored=\u00a76Te ei ignoreeri mitte kedagi.
|
||||
noKitPermission=\u00a74Te vajate \u00a7c{0}\u00a74 luba, et kasutada seda kit-i.
|
||||
noKits=\u00a76\u00dchtegi kit-i ei ole hetkel saadaval.
|
||||
noMail=\u00a76Teil ei ole uut posti.
|
||||
noKitPermission=\u00a74Te vajate \u00a7c{0}\u00a74 luba, et kasutada seda abipakki.
|
||||
noKits=\u00a76\u00dchtegi abipakki ei ole hetkel saadaval.
|
||||
noMail=\u00a76Teil ei ole \u00fchtegi kirja.
|
||||
noMatchingPlayers=\u00a76Klappivaid m\u00e4ngijaid ei leitud.
|
||||
noMetaFirework=\u00a74Teil ei ole luba, et m\u00e4\u00e4rata ilutulestiku meta.
|
||||
noMetaPerm=\u00a74Teil ei ole luba lisada \u00a7c{0}\u00a74 meta-t k\u00e4esolevale esemele.
|
||||
noNewMail=\u00a76Teil ei ole uut posti.
|
||||
noMetaFirework=\u00a74Teil ei ole luba, et m\u00e4\u00e4rata ilutulestiku effekte.
|
||||
noMetaPerm=\u00a74Teil ei ole luba lisada \u00a7c{0}\u00a74 effekte k\u00e4esolevale esemele.
|
||||
noNewMail=\u00a76Teil ei ole \u00fchtegi uut kirja.
|
||||
noPendingRequest=\u00a74Teil ei ole ootel taotlust.
|
||||
noPerm=\u00a74Teil ei ole \u00a7c{0}\u00a74 permissionit.
|
||||
noPermToSpawnMob=\u00a74Teil ei ole luba spawnida antud mob-i.
|
||||
noPermToSpawnMob=\u00a74Sul ei ole luba tekitada antud elukat.
|
||||
noPlacePermission=\u00a74Teil ei ole luba asetada plokki selle m\u00e4rgi l\u00e4heduses.
|
||||
noPotionEffectPerm=\u00a74Teil ei ole luba, et lisada n\u00f5iajoogi effekti \u00a7c{0} \u00a74k\u00e4esolevale n\u00f5iajoogile.
|
||||
noPowerTools=\u00a76Teil ei ole power tool-e m\u00e4\u00e4ratud.
|
||||
@@ -293,18 +293,18 @@ notAllowedToShout=\u00a74Te ei ole autoriseeritud, et karjuda.
|
||||
notEnoughExperience=\u00a74Teil ei ole piisavalt exp-d.
|
||||
notEnoughMoney=\u00a74Teil pole piisavalt raha.
|
||||
notFlying=ei lenda
|
||||
notRecommendedBukkit=\u00a74* \! * Bukkit versioon ei ole soovitatud build Essentials''ile.
|
||||
notRecommendedBukkit=\u00a74* \! * Bukkit''i versioon ei ole soovitatud build Essentials''ile.
|
||||
notSupportedYet=Ei ole veel toetatud.
|
||||
nothingInHand=\u00a74Teil ei ole mitte midagi k\u00e4es.
|
||||
now=n\u00fc\u00fcd
|
||||
nuke=\u00a75Las surm sajab neile peale.
|
||||
numberRequired=Number l\u00e4heb sinna, rumaluke.
|
||||
onlyDayNight=/time toetab ainult day/night.
|
||||
onlyPlayerSkulls=\u00a74Te saate m\u00e4\u00e4rata ainult m\u00e4ngija kolju omaniku (397\:3).
|
||||
onlyPlayers=\u00a74Ainult in-game m\u00e4ngijad saavad kasutada {0}.
|
||||
onlyPlayerSkulls=\u00a74Sa saad m\u00e4\u00e4rata ainult m\u00e4ngija kolju (\u00a7c397\:3\u00a74) omaniku.
|
||||
onlyPlayers=\u00a74K\u00e4sku \u00a7c{0}\u00a74 saab kasutada ainult m\u00e4ngusiseselt.
|
||||
onlySunStorm=\u00a74/weather toetab ainult sun/storm.
|
||||
orderBalances=\u00a76J\u00e4rjestan\u00a7c {0} \u00a76m\u00e4ngija raha, palun oota...
|
||||
oversizedTempban=\u00a74Te ei saa bannida m\u00e4ngijat nii pikaks ajaks.
|
||||
oversizedTempban=\u00a74Sa ei saa blokeerida m\u00e4ngijat nii pikaks ajaks.
|
||||
pTimeCurrent=\u00a7c{0}\u00a76''i aeg on\u00a7c {1}\u00a76.
|
||||
pTimeCurrentFixed=\u00a7c{0}\u00a76''i aeg on peatatud\u00a7c {1}\u00a76.
|
||||
pTimeNormal=\u00a7c{0}\u00a76''i aeg on normaalne ja kattub serveriga.
|
||||
@@ -321,52 +321,52 @@ pWeatherPlayers=\u00a76Nendel m\u00e4ngijatel on oma ilm\:\u00a7r
|
||||
pWeatherReset=\u00a76M\u00e4ngija ilm on taastatud m\u00e4ngjale\: \u00a7c{0}
|
||||
pWeatherSet=\u00a76M\u00e4ngija ilm on seatud \u00a7c{0}\u00a76 m\u00e4ngijale\: \u00a7c{1}.
|
||||
pendingTeleportCancelled=\u00a74Ootel teleport kutse h\u00fcljatud.
|
||||
playerBanIpAddress=\u00a76M\u00e4ngija\u00a7c {0} \u00a76bannis IP aadressi\u00a7c {1}\u00a76.
|
||||
playerBanned=\u00a76M\u00e4ngija\u00a7c {0} \u00a76bannis m\u00e4ngija\u00a7c {1} \u00a76p\u00f5hjusega {2}.
|
||||
playerInJail=\u00a74M\u00e4ngija on juba vangis\u00a7c {0}\u00a76.
|
||||
playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address\u00a7c {1} \u00a76for\: \u00a7c{2}\u00a76.
|
||||
playerBanned=\u00a76M\u00e4ngija\u00a7c {0} \u00a76blokeeris\u00a7c {1} \u00a76p\u00f5hjusega \u00a7c{2}\u00a76.
|
||||
playerInJail=\u00a74M\u00e4ngija on juba vangis\u00a7c {0}\u00a74.
|
||||
playerJailed=\u00a76M\u00e4ngija\u00a7c {0} \u00a76vangistatud.
|
||||
playerJailedFor=\u00a76M\u00e4ngija\u00a7c {0} \u00a76vangistatud p\u00f5hjusega {1}.
|
||||
playerKicked=\u00a76M\u00e4ngija\u00a7c {0} \u00a76kickiti {1} p\u00f5hjusega {2}.
|
||||
playerMuted=\u00a76Teid on mutetud\!
|
||||
playerMutedFor=\u00a76Teid on mutetud m\u00e4\u00e4ratud ajaks\:\u00a7c {0}.
|
||||
playerKicked=\u00a76M\u00e4ngija\u00a7c {0} \u00a76viskas {1} v\u00e4lja p\u00f5hjusega {2}.
|
||||
playerMuted=\u00a76Sa oled vaigistatud\!
|
||||
playerMutedFor=\u00a76Sind on vaigistatud m\u00e4\u00e4ratud ajaks\:\u00a7c {0}.
|
||||
playerNeverOnServer=\u00a74M\u00e4ngija\u00a7c {0} \u00a74ei ole kunagi siin m\u00e4nginud.
|
||||
playerNotFound=\u00a74M\u00e4ngijat ei leitud.
|
||||
playerUnbanIpAddress=\u00a76M\u00e4ngija\u00a7c {0} \u00a76unbannis IP\: {1}.
|
||||
playerUnbanned=\u00a76M\u00e4ngija\u00a7c {0} \u00a76unbannis\u00a7c {1}.
|
||||
playerUnmuted=\u00a76Teie mute on eemaldatud.
|
||||
playerUnbanIpAddress=\u00a76M\u00e4ngija\u00a7c {0} \u00a76eemaldas IP {1} blokeeringu.
|
||||
playerUnbanned=\u00a76M\u00e4ngija\u00a7c {0} \u00a76eemaldas\u00a7c {1} \u00a76blokeeringu.
|
||||
playerUnmuted=\u00a76Sinu vaigistus on eemaldatud.
|
||||
pong=Pong\!
|
||||
posPitch=\u00a76Pitch\: {0} (pea nurk)
|
||||
posX=\u00a76X\: {0} (+Ida <-> -L\u00e4\u00e4s)
|
||||
posY=\u00a76Y\: {0} (+\u00dcles <-> -Alla)
|
||||
posYaw=\u00a76Yaw\: {0} (P\u00f6\u00f6re)
|
||||
posZ=\u00a76Z\: {0} (+L\u00f5una <-> -P\u00f5hi)
|
||||
possibleWorlds=\u00a76V\u00f5imalikud maailmad on numbrid 0 l\u00e4bi {0}.
|
||||
possibleWorlds=\u00a76V\u00f5imalikud maailmad on numbrite \u00a7c0\u00a76 kuni \u00a7c{0}\u00a76 vahel.
|
||||
potions=\u00a76N\u00f5iajoogid\:\u00a7r {0}\u00a76.
|
||||
powerToolAir=\u00a74K\u00e4sku ei saa m\u00e4\u00e4rata \u00f5hule.
|
||||
powerToolAlreadySet=\u00a74K\u00e4sk \u00a7c{0}\u00a74 on juba m\u00e4\u00e4ratud esemele {1}.
|
||||
powerToolAlreadySet=\u00a74K\u00e4sk \u00a7c{0}\u00a74 on juba lisatud esemele \u00a7c{1}\u00a74.
|
||||
powerToolAttach=\u00a7c{0}\u00a76 k\u00e4sk m\u00e4\u00e4ratud esemele {1}.
|
||||
powerToolClearAll=\u00a76K\u00f5ik powertool k\u00e4sud puhastatud.
|
||||
powerToolList=\u00a76Esemel \u00a7c{1} \u00a76on j\u00e4rgnevad k\u00e4sud\: \u00a7c{0}\u00a76.
|
||||
powerToolListEmpty=\u00a74Esemel \u00a7c{0} \u00a74ei ole m\u00e4\u00e4ratud k\u00e4ske.
|
||||
powerToolNoSuchCommandAssigned=\u00a74K\u00e4sk \u00a7c{0}\u00a74 ei ole m\u00e4\u00e4ratud esemele {1}.
|
||||
powerToolRemove=\u00a76K\u00e4sk \u00a7c{0}\u00a76 eemaldatud esemelt {1}.
|
||||
powerToolRemoveAll=\u00a76K\u00f5ik k\u00e4sud eemaldatud esemelt {0}.
|
||||
powerToolNoSuchCommandAssigned=\u00a74K\u00e4sk \u00a7c{0}\u00a74 ei ole lisatud esemele \u00a7c{1}\u00a74.
|
||||
powerToolRemove=\u00a76K\u00e4sk \u00a7c{0}\u00a76 eemaldatud esemelt \u00a7c{1}\u00a76.
|
||||
powerToolRemoveAll=\u00a76K\u00f5ik k\u00e4sud eemaldatud esemelt \u00a7c{0}\u00a76.
|
||||
powerToolsDisabled=\u00a76K\u00f5ik su power tool-id on disabled.
|
||||
powerToolsEnabled=\u00a76K\u00f5ik su power tool-id on enabled.
|
||||
powerToolsEnabled=\u00a76K\u00f5ik su power tool-id on lubatud.
|
||||
questionFormat=\u00a72[K\u00fcsimus]\u00a7r {0}
|
||||
readNextPage=\u00a76Kirjuta\u00a7c /{0} {1}\u00a76, et lugeda j\u00e4rgmist lehte.
|
||||
recipe=\u00a76Retsept esemele \u00a7c{0}\u00a76 ({1} koguses {2})
|
||||
recipe=\u00a76Retsept esemele \u00a7c{0}\u00a76 (\u00a7c{1}\u00a76 koguses \u00a7c{2}\u00a76)
|
||||
recipeBadIndex=Ei leidunud restepti antud numbriga.
|
||||
recipeFurnace=\u00a76Sulata \u00a7c{0}
|
||||
recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
|
||||
recipeGridItem=\u00a0\u00a7{0}X \u00a76on \u00a7c{1}
|
||||
recipeFurnace=\u00a76Sulata\: \u00a7c{0}\u00a76.
|
||||
recipeGrid=\u00a7c{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
|
||||
recipeGridItem=\u00a7c{0}X \u00a76on \u00a7c{1}
|
||||
recipeMore=\u00a76Kirjuta /{0} \u00a7c{1}\u00a76 <number>, et n\u00e4ha \u00a7c{2}\u00a76 retsepti.
|
||||
recipeNone=Mitte \u00fchtegi retsepti ei ole olemas j\u00e4rgnevale esemele\: {0}
|
||||
recipeNothing=mitte midagi
|
||||
recipeShapeless=\u00a76Kombineeri \u00a7c{0}
|
||||
recipeWhere=\u00a76Kus\: {0}
|
||||
removed=\u00a76Eemaldatud\u00a7c {0} \u00a76\u00fcksust.
|
||||
repair=\u00a76Te olete edukalt parandanud oma\: \u00a7c{0}.
|
||||
repair=\u00a76Te olete edukalt parandanud oma\: \u00a7c{0}\u00a76.
|
||||
repairAlreadyFixed=\u00a74Antud ese ei tarvi parandamist.
|
||||
repairEnchanted=\u00a74Teil ei ole lubatud parandada loitsitud esemeid.
|
||||
repairInvalidType=\u00a74K\u00e4esolevat eset ei saa parandada.
|
||||
@@ -377,20 +377,20 @@ requestDenied=\u00a76Teleport kutse h\u00fcljatud.
|
||||
requestDeniedFrom=\u00a7c{0} \u00a76h\u00fclgas teie teleport kutse.
|
||||
requestSent=\u00a76Kutse saadetud m\u00e4ngijale\u00a7c {0}\u00a76.
|
||||
requestTimedOut=\u00a74Teleport kutse aegus.
|
||||
requiredBukkit=\u00a76* \! * Teil on vaja v\u00e4hemalt build {0} CraftBukkit''it, laadige see alla http\://dl.bukkit.org/downloads/craftbukkit/
|
||||
resetBal=\u00a76Raha on taastatud j\u00e4rgnevaks\: \u00a7a{0} \u00a76k\u00f5ikidele serveris olevatele m\u00e4ngijatele.
|
||||
resetBalAll=\u00a76Raha on taastatud j\u00e4rgnevaks\: \u00a7a{0} \u00a76k\u00f5ikidele m\u00e4ngijatele.
|
||||
returnPlayerToJailError=\u00a74Ilmnes viga tagastades m\u00e4ngijat\u00a7c {0} \u00a74vanglasse\: {1}\!
|
||||
requiredBukkit=\u00a76* \! * Teil on vaja v\u00e4hemalt build {0} CraftBukkit''it, laadige see alla aadressilt http\://dl.bukkit.org/downloads/craftbukkit/
|
||||
resetBal=\u00a76Raha on taastatud summaks \u00a7c{0} \u00a76k\u00f5ikidel online m\u00e4ngijatel.
|
||||
resetBalAll=\u00a76Raha on taastatud summaks \u00a7c{0} \u00a76k\u00f5ikidel m\u00e4ngijatel.
|
||||
returnPlayerToJailError=\u00a74Tekkis viga tagastades m\u00e4ngija\u00a7c {0} \u00a74vanglasse\: \u00a7c{1}\u00a74\!
|
||||
runningPlayerMatch=\u00a76Jooksutan otsingu m\u00e4ngjatele ''\u00a7c{0}\u00a76'' (see v\u00f5ib v\u00f5tta aega)
|
||||
second=sekund
|
||||
seconds=sekundit
|
||||
seenOffline=\u00a76M\u00e4ngija\u00a7c {0} \u00a76on \u00a74offline\u00a76 alates {1}.
|
||||
seenOnline=\u00a76M\u00e4ngija\u00a7c {0} \u00a76on \u00a7aonline\u00a76 alates {1}.
|
||||
seenOffline=\u00a76M\u00e4ngija\u00a7c {0} \u00a76on olnud \u00a74v\u00f5rgust v\u00e4ljas\u00a76 alates \u00a7c{1}\u00a76.
|
||||
seenOnline=\u00a76M\u00e4ngija\u00a7c {0} \u00a76on olnud \u00a7av\u00f5rgus\u00a76 alates \u00a7c{1}\u00a76.
|
||||
serverFull=Server on t\u00e4is\!
|
||||
serverTotal=\u00a76Serveril kokku\:\u00a7c {0}
|
||||
setBal=\u00a7aTeie raha m\u00e4\u00e4rati j\u00e4rgnevaks\: {0}.
|
||||
setBalOthers=\u00a7aM\u00e4\u00e4rasite {0}\u00a7a''i raha j\u00e4rgnevaks\: {1}.
|
||||
setSpawner=\u00a76Muutsite spawneri t\u00fc\u00fcbi j\u00e4rgnevaks\:\u00a7c {0}
|
||||
setSpawner=\u00a76Muutsid elukatekitaja t\u00fc\u00fcbi j\u00e4rgnevaks\:\u00a7c {0}\u00a76.
|
||||
sheepMalformedColor=\u00a74Moondunud v\u00e4rv.
|
||||
shoutFormat=\u00a76[H\u00fc\u00fcd]\u00a7r {0}
|
||||
signFormatFail=\u00a74[{0}]
|
||||
@@ -399,12 +399,12 @@ signFormatTemplate=[{0}]
|
||||
signProtectInvalidLocation=\u00a74Teil ei ole lubatud siia m\u00e4rki teha.
|
||||
similarWarpExist=\u00a74L\u00f5im sarnase nimiga on juba olemas.
|
||||
slimeMalformedSize=\u00a74Moondunud suurus.
|
||||
socialSpy=\u00a76SocialSpy m\u00e4ngijale {0}\u00a76\: {1}
|
||||
soloMob=\u00a74Antud mob-ile meeldib olla \u00fcksi.
|
||||
socialSpy=\u00a76SocialSpy on \u00a7c{1}\u00a76 m\u00e4ngijale \u00a7c{0}
|
||||
soloMob=\u00a74Antud elukale meeldib olla \u00fcksi.
|
||||
spawnSet=\u00a76Spawn asukoht m\u00e4\u00e4ratud gruppile\u00a7c {0}\u00a76.
|
||||
spawned=spawnitud
|
||||
spawned=tekkis
|
||||
sudoExempt=\u00a74Te ei saa sudo-da antud kasutajat.
|
||||
sudoRun=\u00a76Sunnin\u00a7c {0}\u00a76''i kirjutama k\u00e4sku\:\u00a7r /{1} {2}
|
||||
sudoRun=\u00a76Forcing\u00a7c {0} \u00a76to run\:\u00a7r /{1}
|
||||
suicideMessage=\u00a76Headaega julm maailm...
|
||||
suicideSuccess=\u00a76{0} \u00a76v\u00f5ttis endalt elu.
|
||||
survival=elluj\u00e4\u00e4mine
|
||||
@@ -412,7 +412,7 @@ takenFromAccount=\u00a7a{0} on v\u00f5etud teie kontolt.
|
||||
takenFromOthersAccount=\u00a7a{0} v\u00f5etud m\u00e4ngija {1}\u00a7a kontolt. Uus raha summa\: {2}.
|
||||
teleportAAll=\u00a76Teleporteerumise kutse saadetud k\u00f5igile...
|
||||
teleportAll=\u00a76Teleporteerun k\u00f5ik m\u00e4ngijad...
|
||||
teleportAtoB=\u00a7c{0}\u00a76 teleportis teid m\u00e4ngija {1}\u00a76 juurde.
|
||||
teleportAtoB=\u00a7c{0}\u00a76 teleportis su \u00a7c{1}\u00a76 juurde.
|
||||
teleportDisabled=\u00a7c{0}\u00a74-il on teleportimine disabled.
|
||||
teleportHereRequest=\u00a7c{0}\u00a76 saatis teile kutse, et telepordiksid nende juurde.
|
||||
teleportNewPlayerError=\u00a74Viga teleportimisel uut m\u00e4ngijat\!
|
||||
@@ -420,18 +420,19 @@ teleportRequest=\u00a7c{0}\u00a76 soovib teie juurde teleportida.
|
||||
teleportRequestTimeoutInfo=\u00a76See kutse aegub peale\u00a7c {0} sekundit\u00a76.
|
||||
teleportTop=\u00a76Teleporteerud \u00fcles.
|
||||
teleportationCommencing=\u00a76Teleporteerumine algab...
|
||||
teleportationDisabled=\u00a76Teleportimine keelatud.
|
||||
teleportationDisabledFor=\u00a76Teleporimine keelatud m\u00e4ngijale {0}.
|
||||
teleportationEnabled=\u00a76Teleportimine lubatud.
|
||||
teleportationEnabledFor=\u00a76Teleporteerumine lubatud m\u00e4ngijale {0}.
|
||||
teleportationDisabled=\u00a76Teleportimine \u00a7ckeelatud\u00a76.
|
||||
teleportationDisabledFor=\u00a76Teleporimine \u00a7ckeelatud \u00a76m\u00e4ngijale \u00a7c{0}\u00a76.
|
||||
teleportationEnabled=\u00a76Teleportimine \u00a7clubatud\u00a76.
|
||||
teleportationEnabledFor=\u00a76Teleporimine \u00a7clubatud \u00a76m\u00e4ngijale \u00a7c{0}\u00a76.
|
||||
teleporting=\u00a76Teleportimine...
|
||||
tempBanned=Ajutiselt bannitud serverist j\u00e4rgnevaks ajaks\: {0}.
|
||||
tempbanExempt=\u00a74Te ei v\u00f5i tempbannida seda m\u00e4ngijat.
|
||||
teleportToPlayer=\u00a76Telepordin \u00a7c{0}\u00a76 juurde.
|
||||
tempBanned=\u00a7cYou have been temporarily banned for {0}\:\n\u00a7r{2}
|
||||
tempbanExempt=\u00a74Sa ei v\u00f5i seda m\u00e4ngijat ajutiselt blokeerida.
|
||||
thunder=\u00a76Sa\u00a7c {0} \u00a76\u00e4ikeseliseks oma maailmas.
|
||||
thunderDuration=\u00a76Sa\u00a7c {0} \u00a76\u00e4ikeliseks oma maailmas\u00a7c {1} \u00a76sekundiks.
|
||||
timeBeforeHeal=\u00a74Aeg enne j\u00e4rgmist elustamist\:\u00a7c {0}\u00a76.
|
||||
timeBeforeTeleport=\u00a74Aeg enne j\u00e4rgmist teleportimist\:\u00a7c {0}\u00a76.
|
||||
timeFormat=\u00a7c{0}\u00a76 v\u00f5i \u00a7c{1}\u00a76 v\u00f5i \u00a7c{2}\u00a76.
|
||||
timeFormat=\u00a7c{0}\u00a76, \u00a7c{1}\u00a76 v\u00f5i \u00a7c{2}\u00a76
|
||||
timeSetPermission=\u00a74Teil ei ole lubatud aega muuta.
|
||||
timeWorldCurrent=\u00a76Praegune aeg maailmas\u00a7c {0} \u00a76on \u00a7c{1}\u00a76.
|
||||
timeWorldSet=\u00a76Aeg on m\u00e4\u00e4ratud j\u00e4rgnevaks\:\u00a7c {0} \u00a76maailmas\: \u00a7c{1}\u00a76.
|
||||
@@ -441,25 +442,25 @@ tps=\u00a76Praegune TPS \= {0}
|
||||
tradeSignEmpty=\u00a74Vahetus m\u00e4rgil ei ole mitte midagi saadaval teile.
|
||||
tradeSignEmptyOwner=\u00a74Ei ole mitte midagi mida korjata sellelt vahetus m\u00e4rgilt.
|
||||
treeFailure=\u00a74Puidu generatsiooni viga. Proovi uuesti muru v\u00f5i mulla peal.
|
||||
treeSpawned=\u00a76Puu spawnitud.
|
||||
treeSpawned=\u00a76Puu on tekitatud.
|
||||
true=\u00a7atrue\u00a7r
|
||||
typeTpaccept=\u00a76Et teleportida, kirjuta \u00a7c/tpaccept\u00a76.
|
||||
typeTpdeny=\u00a76Et h\u00fcljata seda kutset, kirjuta \u00a7c/tpdeny\u00a76.
|
||||
typeWorldName=\u00a76V\u00f5ite kirjutada ka teatud maailma nime.
|
||||
unableToSpawnMob=\u00a74Tekkis viga spawnides mob-i.
|
||||
unableToSpawnMob=\u00a74Eluka tekitamisel tekkis viga.
|
||||
unignorePlayer=\u00a76Sa ei ignoreeri enam m\u00e4ngijat\u00a7c {0}\u00a76.
|
||||
unknownItemId=\u00a74Tundmatu eseme id\:\u00a7r {0}\u00a74.
|
||||
unknownItemInList=\u00a74Tundmatu ese {0} {1} listis.
|
||||
unknownItemName=\u00a74Tundmatu eseme nimi\: {0}.
|
||||
unlimitedItemPermission=\u00a74Puuduvad \u00f5igused l\u00f5pmatult esemete jaoks {0}.
|
||||
unlimitedItemPermission=\u00a74Puuduvad \u00f5igused l\u00f5pmatu eseme \u00a7c{0}\u00a74 jaoks.
|
||||
unlimitedItems=\u00a76L\u00f5pmatud esemed\:\u00a7r
|
||||
unmutedPlayer=\u00a76M\u00e4ngija\u00a7c {0} \u00a76unmuted.
|
||||
unvanishedReload=\u00a74Reload sundis sind muutuma n\u00e4htavaks.
|
||||
unmutedPlayer=\u00a76M\u00e4ngija\u00a7c {0} \u00a76vaigistus eemaldatud.
|
||||
unvanishedReload=\u00a74Taaslaadimine sundis sind muutuma n\u00e4htavaks.
|
||||
upgradingFilesError=Viga uuendades faile.
|
||||
uptime=\u00a76Uptime\:\u00a7c {0}
|
||||
userAFK=\u00a77{0} \u00a75on hetkel Eemal ja ei pruugi vastata.
|
||||
userAFK=\u00a77{0} \u00a75on hetkel eemal ja ei pruugi vastata.
|
||||
userDoesNotExist=\u00a74Kasutaja\u00a7c {0} \u00a74ei ole olemas.
|
||||
userIsAway=\u00a77* {0} \u00a77on n\u00fc\u00fcd Eemal.
|
||||
userIsAway=\u00a77* {0} \u00a77on n\u00fc\u00fcd eemal.
|
||||
userIsNotAway=\u00a77* {0} \u00a77on tagasi.
|
||||
userJailed=\u00a76Teid on vangistatud\!
|
||||
userUnknown=\u00a74Hoiatus\: Kasutaja ''\u00a7c{0}\u00a74'' ei ole kunagi selle serveriga liitunud.
|
||||
@@ -480,24 +481,24 @@ warpSet=\u00a76L\u00f5im\u00a7c {0} \u00a76m\u00e4\u00e4ratud.
|
||||
warpUsePermission=\u00a74Teil ei ole \u00d5igust, et seda l\u00f5imu kasutada.
|
||||
warpingTo=\u00a76Kasutate l\u00f5imu, et liikuda asukohta\:\u00a7c {0}\u00a76.
|
||||
warps=\u00a76L\u00f5imud\:\u00a7r {0}
|
||||
warpsCount=\u00a76Kokku on\u00a7c {0} \u00a76l\u00f5imu. N\u00e4itan lehte {1}/{2}.
|
||||
warpsCount=\u00a76Kokku on\u00a7c {0} \u00a76l\u00f5imu. N\u00e4itan lehte \u00a7c{1}\u00a76/\u00a7c{2}\u00a76.
|
||||
weatherStorm=\u00a76Te m\u00e4\u00e4rasite ilma \u00a7ctormiseks\u00a76 maailmas\u00a7c {0}\u00a76.
|
||||
weatherStormFor=\u00a76M\u00e4\u00e4rasite ilma \u00a7ctormiseks\u00a76 maailmas\u00a7c {0}\u00a76 {1} sekundiks.
|
||||
weatherSun=\u00a76M\u00e4\u00e4rasite ilma \u00a7cp\u00e4ikeselisek\u00a76 maailmas\u00a7c {0}\u00a76.
|
||||
weatherSunFor=\u00a76M\u00e4\u00e4rasite ilma \u00a7cp\u00e4ikeliseks\u00a76 maailmas\u00a7c {0}\u00a76 {1} sekundiks.
|
||||
whoisAFK=\u00a76 - Eemal\:\u00a7r {0}
|
||||
whoisBanned=\u00a76 - Bannitud\:\u00a7r {0}
|
||||
whoisBanned=\u00a76 - Blokeeritud\:\u00a7r {0}
|
||||
whoisExp=\u00a76 - Exp\:\u00a7r {0} (Level {1})
|
||||
whoisFly=\u00a76 - Lendab?\:\u00a7r {0} ({1})
|
||||
whoisGamemode=\u00a76 - M\u00e4ngumood\:\u00a7r {0}
|
||||
whoisFly=\u00a76 - Lennure\u017eiim\:\u00a7r {0} ({1})
|
||||
whoisGamemode=\u00a76 - M\u00e4ngure\u017eiim\:\u00a7r {0}
|
||||
whoisGeoLocation=\u00a76 - Asukoht\:\u00a7r {0}
|
||||
whoisGod=\u00a76 - Jumala mood\:\u00a7r {0}
|
||||
whoisGod=\u00a76 - Jumalare\u017eiim\:\u00a7r {0}
|
||||
whoisHealth=\u00a76 - Tervis\:\u00a7r {0}/20
|
||||
whoisIPAddress=\u00a76 - IP Aadress\:\u00a7r {0}
|
||||
whoisJail=\u00a76 - Vangis\:\u00a7r {0}
|
||||
whoisLocation=\u00a76 - Asukoht\:\u00a7r ({0}, {1}, {2}, {3})
|
||||
whoisMoney=\u00a76 - Raha\:\u00a7r {0}
|
||||
whoisMuted=\u00a76 - Mutetud\:\u00a7r {0}
|
||||
whoisMuted=\u00a76 - Vaigistatud\:\u00a7r {0}
|
||||
whoisNick=\u00a76 - H\u00fc\u00fcdnimi\:\u00a7r {0}
|
||||
whoisOp=\u00a76 - OP\:\u00a7r {0}
|
||||
whoisTop=\u00a76 \=\=\=\=\=\= WhoIs\:\u00a7c {0} \u00a76\=\=\=\=\=\=
|
||||
@@ -506,12 +507,12 @@ worthMeta=\u00a7aStack {0}''i metadataga {1} v\u00e4\u00e4rt \u00a7c{2}\u00a7a
|
||||
worthSet=\u00a76V\u00e4\u00e4rtus m\u00e4\u00e4ratud
|
||||
year=aasta
|
||||
years=aastat
|
||||
youAreHealed=\u00a76Teid on elustatud.
|
||||
youHaveNewMail=\u00a76Teil on\u00a7c {0} \u00a76lugemata s\u00f5numit\! Kirjuta \u00a7c/mail read\u00a76, et lugeda enda posti.
|
||||
youAreHealed=\u00a76Sind on tervendatud.
|
||||
youHaveNewMail=\u00a76Teil on\u00a7c {0} \u00a76lugemata s\u00f5numit\! Kirjutage \u00a7c/mail read\u00a76, et lugeda enda kirju.
|
||||
whoisHunger=\u00a76 - N\u00e4lg\:\u00a7r {0}/20 (+{1} k\u00fcllastus)
|
||||
kitDelay=\u00a7m{0}\u00a7r
|
||||
giveSpawnFailure=\u00a74Pole piisavalt ruumi, \u00a7c{0} \u00a7c{1} \u00a74kadus \u00e4ra.
|
||||
noKitGroup=\u00a74Teil ei ole luba sellele abipakile.
|
||||
giveSpawnFailure=\u00a74Pole piisavalt ruumi, \u00a7c{0} \u00a7c{1} \u00a74j\u00e4i saamata.
|
||||
noKitGroup=\u00a74Sul ei ole juurdep\u00e4\u00e4su sellele abipakile.
|
||||
inventoryClearingFromAll=\u00a76T\u00fchjendan k\u00f5ikide m\u00e4ngijate seljakoti...
|
||||
inventoryClearingAllItems=\u00a76Puhastati k\u00f5ik seljakoti esemed\: {0}\u00a76.
|
||||
inventoryClearingAllArmor=\u00a76Puhastati k\u00f5ik seljakoti esemed ja armor\: {0}\u00a76.
|
||||
@@ -522,28 +523,36 @@ localNoOne=
|
||||
totalSellableAll=\u00a7aKogusumma k\u00f5ikide m\u00fc\u00fcvate esemete ja plokkide v\u00e4\u00e4rtus on \u00a7c{1}\u00a7a.
|
||||
totalSellableBlocks=\u00a7aKogusumma k\u00f5ikide m\u00fc\u00fcdavate plokkide v\u00e4\u00e4rtus on \u00a7c{1}\u00a7a.
|
||||
radiusTooBig=\u00a74Raadius on liiga suur\! Maksimaalne raadius on {0}.
|
||||
isIpBanned=\u00a76IP \u00a7c{0} \u00a76on bannitud.
|
||||
isIpBanned=\u00a76IP \u00a7c{0} \u00a76on blokeeritud.
|
||||
mobDataList=\u00a76Kehtiv mob data\:\u00a7r {0}
|
||||
vanish=\u00a76Vanish m\u00e4ngijale {0}\u00a76\: {1}
|
||||
vanish=\u00a76Haihtumine\u00a76 {1} \u00a76 m\u00e4ngijale {0}
|
||||
noLocationFound=\u00a74Ei leidnud sobivat asukohta.
|
||||
coordsKeyword={0}, {1}, {2}
|
||||
banExemptOffline=\u00a74Te ei v\u00f5i bannida m\u00e4ngijaid kes ei ole serveris sees.
|
||||
tempbanExemptOffline=\u00a74Te ei v\u00f5i tempbannida m\u00e4ngijaid kes ei ole serveris sees.
|
||||
mayNotJailOffline=\u00a74Te ei v\u00f5i vangistada m\u00e4ngijaid kes ei ole serveris sees.
|
||||
muteExemptOffline=\u00a74Te ei v\u00f5i muteda m\u00e4ngijaid keda pole serveris sees.
|
||||
tempbanExemptOffline=\u00a74Sa ei tohi ajutiselt blokeerida v\u00f5rgust v\u00e4ljas olevaid m\u00e4ngijaid.
|
||||
mayNotJailOffline=\u00a74Sa ei tohi vangistada v\u00f5rgust v\u00e4ljas olevaid m\u00e4ngijaid.
|
||||
muteExemptOffline=\u00a74Sa ei tohi vaigistada v\u00f5rgust v\u00e4ljas olevaid m\u00e4ngijaid.
|
||||
ignoreExempt=\u00a74Te ei saa seda m\u00e4ngijat ignoreerida.
|
||||
unsafeTeleportDestination=\u00a74The teleport destination is unsafe and teleport-safety is disabled.
|
||||
noMetaJson=JSON Metadata is not supported in this version of Bukkit.
|
||||
maxMoney=\u00a74This transaction would exceed the balance limit for this account.
|
||||
skullChanged=\u00a76Skull changed to \u00a7c{0}.\u00a76.
|
||||
alphaNames=\u00a74Player names can only contain letters, numbers and underscores.
|
||||
givenSkull=\u00a76You have been given the Skull of \u00a7c{0}\u00a76.
|
||||
noPermissionSkull=\u00a74You do not have permission to modify that Skull.
|
||||
teleportInvalidLocation=Value of coordinates cannot be over 30000000
|
||||
invalidSkull=\u00a74Please hold a player Skull.
|
||||
weatherInvalidWorld=World named {0} not found\!
|
||||
gameModeInvalid=\u00a74You need to specify a valid player/mode.
|
||||
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
|
||||
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
|
||||
seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
|
||||
unableToSpawnItem=\u00a74Cannot spawn \u00a7c{0}\u00a74, this is not a spawnable item.
|
||||
unsafeTeleportDestination=\u00a75Teleportimise sihtpunkt on ohtlik ja teleportimise-ohutus on maha v\u00f5etud.
|
||||
noMetaJson=See Bukkiti versioon ei toeta JSON metaandmeid.
|
||||
maxMoney=\u00a74See tehing \u00fcletab selle konto liimiti.
|
||||
skullChanged=\u00a76Kolju muudetud\: \u00a7c{0}\u00a76.
|
||||
alphaNames=\u00a74H\u00fc\u00fcdnimed nimed v\u00f5ivad sisaldada ainult t\u00e4hti, numbreid ning allkriipse.
|
||||
givenSkull=\u00a76Sulle anti \u00a7c{0} kolju\u00a76.
|
||||
noPermissionSkull=\u00a74Sul ei ole luba muuta seda koljut.
|
||||
teleportInvalidLocation=Koordinaatide v\u00e4\u00e4rtus ei saa olla \u00fcle 30000000
|
||||
invalidSkull=\u00a74Palun hoia k\u00e4es m\u00e4ngija koljut.
|
||||
weatherInvalidWorld=Maailma nimega {0} ei leitud\!
|
||||
gameModeInvalid=\u00a74Sa pead m\u00e4\u00e4rama kehtiva m\u00e4ngija/re\u017eiimi.
|
||||
mailTooLong=\u00a74Kiri on liiga pikk. P\u00fc\u00fcdke hoida kirja alla 1000 t\u00e4hem\u00e4rgi.
|
||||
mailDelay=Saatsid liiga palju kirju viimase minuti jooskul. Maksimaalne kirjade saatmise arv\: {0}
|
||||
seenAccounts=\u00a76M\u00e4ngija on tuntud ka kui\:\u00a7c {0}
|
||||
unableToSpawnItem=\u00a74Ei saa tekitada \u00a7c{0}\u00a74, see ei ole tekitatav ese.
|
||||
itemsConverted=\u00a76Converted all items into blocks.
|
||||
itemsNotConverted=\u00a74You have no items that can be converted into blocks.
|
||||
mailSentTo=\u00a7c{0}\u00a76 has been sent the following mail\:
|
||||
mailMessage={0}
|
||||
|
||||
whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0}
|
||||
playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76.
|
||||
mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1}
|
||||
|
@@ -11,12 +11,12 @@ alertBroke=rikkoi\:
|
||||
alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} sijainnissa\: {3}
|
||||
alertPlaced=laittoi\:
|
||||
alertUsed=k\u00e4ytti\:
|
||||
antiBuildBreak=\u00a74You are not permitted to break\u00a7c {0} \u00a74blocks here.
|
||||
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
|
||||
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
|
||||
antiBuildInteract=\u00a74You are not permitted to interact with\u00a7c {0}\u00a74.
|
||||
antiBuildPlace=\u00a74You are not permitted to place\u00a7c {0} \u00a74here.
|
||||
antiBuildUse=\u00a74You are not permitted to use\u00a7c {0}\u00a74.
|
||||
antiBuildBreak=\u00a74Sinulla ei ole oikeuksia rikkoa\u00a7c {0} \u00a74palikoita t\u00e4\u00e4ll\u00e4.
|
||||
antiBuildCraft=\u00a74Sinulla ei ole oikeuksia tehd\u00e4\u00a7c {0}\u00a74.
|
||||
antiBuildDrop=\u00a74Sinulla ei ole oikeuksia tiputtaa\u00a7c {0}\u00a74.
|
||||
antiBuildInteract=\u00a74Sin\u00e4 et saa olla tekemisiss\u00e4\u00a7c {0}\u00a74kanssa.
|
||||
antiBuildPlace=\u00a74Sinulla ei ole oikeuksia laittaa\u00a7c {0} \u00a74t\u00e4h\u00e4n.
|
||||
antiBuildUse=\u00a74Sinulla ei ole oikeuksia k\u00e4ytt\u00e4\u00e4\u00a7c {0}\u00a74.
|
||||
autoAfkKickReason=Sinut on potkittu, koska olit tekem\u00e4tt\u00e4 mit\u00e4\u00e4n {0} minuuttia.
|
||||
backAfterDeath=\u00a77K\u00e4yt\u00e4 /back komentoa p\u00e4\u00e4st\u00e4ksesi takaisin sijaintiin, jossa kuolit.
|
||||
backUsageMsg=\u00a77Palautetaan \u00e4skeiseen sijaintiin.
|
||||
@@ -24,34 +24,34 @@ backupDisabled=Ulkoista varmuuskopio koodia ei ole konfiguroitu.
|
||||
backupFinished=Varmuuskopiointi suoritettu
|
||||
backupStarted=Varmuuskopiointi aloitettu
|
||||
balance=\u00a77Rahatilanne\: {0}
|
||||
balanceOther=\u00a7aBalance of {0}\u00a7a\:\u00a7c {1}
|
||||
balanceOther=\u00a7aSaldo {0}\u00a7a\:\u00a7c {1}
|
||||
balanceTop=\u00a77Top rahatilanteet ({0})
|
||||
banExempt=\u00a7cEt voi bannia pelaajaa.
|
||||
banFormat=\u00a74Banned\:\n\u00a7r{0}
|
||||
bed=\u00a7obed\u00a7r
|
||||
bedMissing=\u00a74Your bed is either unset, missing or blocked.
|
||||
bedNull=\u00a7mbed\u00a7r
|
||||
bedSet=\u00a76Bed spawn set\!
|
||||
banFormat=\u00a74Porttikiellot\:\n\u00a7r{0}
|
||||
bed=\u00a7os\u00e4nky\u00a7r
|
||||
bedMissing=\u00a74S\u00e4nkysi puuttui, se on kadoksissa tai tukittu.
|
||||
bedNull=\u00a7ms\u00e4nky\u00a7r
|
||||
bedSet=S\u00e4nky spawni asetettu\!
|
||||
bigTreeFailure=\u00a7cIson puun luominen ep\u00e4onnistui. Yrit\u00e4 uudelleen nurmikolla tai mullalla.
|
||||
bigTreeSuccess=\u00a77Iso puu luotu.
|
||||
blockList=Essentials siirsi seuraavat komennot muihin plugineihin\:
|
||||
bookAuthorSet=\u00a76Author of the book set to {0}.
|
||||
bookLocked=\u00a76This book is now locked.
|
||||
bookTitleSet=\u00a76Title of the book set to {0}.
|
||||
bookAuthorSet=\u00a76Kirjan tekij\u00e4 on nyt {0}.
|
||||
bookLocked=\u00a76T\u00e4m\u00e4 kirja on nyt lukittu.
|
||||
bookTitleSet=\u00a76Kirjan titteli on nyt {0}.
|
||||
broadcast=[\u00a7cIlmoitus\u00a7f]\u00a7a {0}
|
||||
buildAlert=\u00a7cSinulla ei ole oikeuksia rakentaa
|
||||
bukkitFormatChanged=Bukkitin versiomuoto muuttui. Versiota ei ole tarkistettu.
|
||||
burnMsg=\u00a77Asetit pelaajan {0} tuleen {1} sekunniksi.
|
||||
canTalkAgain=\u00a77Voit taas puhua
|
||||
cannotStackMob=\u00a74You do not have permission to stack multiple mobs.
|
||||
cannotStackMob=\u00a74Sinulla ei ole oikeutta pinota montaa mobia.
|
||||
cantFindGeoIpDB=Ei l\u00f6ydetty GeoIP tietokantaa\!
|
||||
cantReadGeoIpDB=Ei pystytty lukemaan GeoIP tietokantaa\!
|
||||
cantSpawnItem=\u00a7cSinulla ei ole oikeutta luoda tavaraa {0}
|
||||
chatTypeAdmin=[A]
|
||||
chatTypeLocal=[L]
|
||||
chatTypeSpy=[Spy]
|
||||
cleaned=Userfiles Cleaned.
|
||||
cleaning=Cleaning userfiles.
|
||||
chatTypeSpy=[Vakoilla]
|
||||
cleaned=K\u00e4ytt\u00e4j\u00e4tiedot on poistettu.
|
||||
cleaning=Poistetaan k\u00e4ytt\u00e4j\u00e4tietoja.
|
||||
commandFailed=Komento {0} ep\u00e4onnistui\:
|
||||
commandHelpFailedForPlugin=Virhe haettaessa apua komennoista\: {0}
|
||||
commandNotLoaded=\u00a7cKomento {0} on v\u00e4\u00e4rin ladattu.
|
||||
@@ -76,9 +76,9 @@ deleteHome=\u00a77Koti {0} on poistettu.
|
||||
deleteJail=\u00a77Vankila {0} on poistettu.
|
||||
deleteWarp=\u00a77Warp {0} on poistettu.
|
||||
deniedAccessCommand={0} p\u00e4\u00e4sy komentoon ev\u00e4ttiin.
|
||||
denyBookEdit=\u00a74You cannot unlock this book.
|
||||
denyBookEdit=Et voi avata t\u00e4t\u00e4 kirjaa.
|
||||
denyChangeAuthor=\u00a74You cannot change the author of this book
|
||||
denyChangeTitle=\u00a74You cannot change the title of this book.
|
||||
denyChangeTitle=\u00a74Et voi vaihtaa t\u00e4m\u00e4n kirjan titteli\u00e4.
|
||||
depth=\u00a77Olet merenpinnan tasolla.
|
||||
depthAboveSea=\u00a77Olet {0} palikkaa meritason yl\u00e4puolella.
|
||||
depthBelowSea=\u00a77Olet {0} palikkaa meritason alapuolella.
|
||||
@@ -86,13 +86,13 @@ destinationNotSet=Sijaintia ei ole m\u00e4\u00e4ritetty
|
||||
disableUnlimited=\u00a77Poistettu k\u00e4yt\u00f6st\u00e4 loputon laittaminen tavaralta "{0}", pelaajalta {1}.
|
||||
disabled=poissa k\u00e4yt\u00f6st\u00e4
|
||||
disabledToSpawnMob=T\u00e4m\u00e4n mobin luominen on poistettu k\u00e4yt\u00f6st\u00e4 config tiedostossa.
|
||||
distance=\u00a76Distance\: {0}
|
||||
distance=\u00a76Et\u00e4isyys\: {0}
|
||||
dontMoveMessage=\u00a77Teleportataan {0} kuluttua. \u00c4l\u00e4 liiku.
|
||||
downloadingGeoIp=Ladataan GeoIP tietokantaa ... t\u00e4m\u00e4 voi vied\u00e4 hetken (maa\: 0.6 MB, kaupunki\: 20MB)
|
||||
duplicatedUserdata=Kopioitu k\u00e4ytt\u00e4j\u00e4n tiedot\: {0} ja {1}
|
||||
durability=\u00a77T\u00e4ll\u00e4 ty\u00f6kalulla on \u00a7c{0}\u00a77 k\u00e4ytt\u00f6kertaa j\u00e4ljell\u00e4
|
||||
editBookContents=\u00a7eYou may now edit the contents of this book.
|
||||
enableUnlimited=\u00a77Annetaan loputon m\u00e4\u00e4r\u00e4 tavaraa "{0}" pelaajalle {1}.
|
||||
editBookContents=\u00a7eVoit nyt muokata t\u00e4m\u00e4n kirjan sis\u00e4lt\u00f6\u00e4.
|
||||
enableUnlimited=\u00a76Giving unlimited amount of\u00a7c {0} \u00a76to \u00a7c{1}\u00a76.
|
||||
enabled=k\u00e4yt\u00f6ss\u00e4
|
||||
enchantmentApplied=\u00a77Parannus "{0}" on lis\u00e4tty tavaraan k\u00e4dess\u00e4si.
|
||||
enchantmentNotFound=\u00a7cParannusta ei l\u00f6ydetty
|
||||
@@ -103,7 +103,7 @@ errorCallingCommand=Virhe kutsuttaessa komentoa /{0}
|
||||
errorWithMessage=\u00a7cVirhe\: {0}
|
||||
essentialsHelp1=Tiedosto on viallinen ja Essentials ei voi avata sit\u00e4. Essentials on nyt poistettu k\u00e4yt\u00f6st\u00e4. Jos et voi korjata tiedostoa itse, mene osoitteeseen http\://tiny.cc/EssentialsChat
|
||||
essentialsHelp2=Tiedosto on viallinen ja Essentials ei voi avata sit\u00e4. Essentials on nyt poistettu k\u00e4yt\u00f6st\u00e4. Jos et voi korjata tiedostoa itse, kirjoita /essentialshelp peliss\u00e4 tai mene osoitteeseen http\://tiny.cc/EssentialsChat
|
||||
essentialsReload=\u00a77Essentials ladattu uudelleen. Versio\: {0}
|
||||
essentialsReload=\u00a76Essentials reloaded\u00a7c {0}.
|
||||
exp=Pelaajalla \u00a7c{0} \u00a77on\u00a7c {1} \u00a77expi\u00e4 (taso\u00a7c {2}\u00a77) ja tarvitsee\u00a7c {3} \u00a77lis\u00e4\u00e4 expi\u00e4 seuravaan tasoon.
|
||||
expSet=Pelaajalla\u00a7c{0} \u00a77on nyt\u00a7c {1} \u00a77expi\u00e4.
|
||||
extinguish=\u00a77Sammutit itsesi.
|
||||
@@ -113,16 +113,16 @@ failedToCreateConfig=Virhe luotaessa tiedostoa config {0}
|
||||
failedToWriteConfig=Virhe muokattaessa tiedostoa config {0}
|
||||
false=v\u00e4\u00e4r\u00e4
|
||||
feed=\u00a77Ruokahalusi on tyydytetty.
|
||||
feedOther=\u00a77Tyydytit ruokahalun pelaajalta {0}.
|
||||
feedOther=\u00a76You satiated the appetite of \u00a7c{0}\u00a76.
|
||||
fileRenameError={0} uudelleen nime\u00e4minen ep\u00e4onnistui
|
||||
fireworkColor=\u00a74Invalid firework charge parameters inserted, must set a color first.
|
||||
fireworkEffectsCleared=\u00a76Removed all effects from held stack.
|
||||
fireworkSyntax=\u00a76Firework parameters\:\u00a7c color\:<color> [fade\:<color>] [shape\:<shape>] [effect\:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas\: \u00a7cred,blue,pink\n\u00a76Shapes\:\u00a7c star, ball, large, creeper, burst \u00a76Effects\:\u00a7c trail, twinkle.
|
||||
fireworkColor=\u00a74V\u00e4\u00e4r\u00e4nlaiset ilotulitteen parametrit, v\u00e4ri t\u00e4ytyy valita ensin.
|
||||
fireworkEffectsCleared=\u00a76Kaikki vaikutukset poistettu k\u00e4dess\u00e4si olevasta tavarasta.
|
||||
fireworkSyntax=\u00a76Ilotulitteen parametrit\:\u00a7c v\u00e4ri\:<v\u00e4ri> [h\u00e4ivytys\: <v\u00e4ri>] [muoto\:<muoto>] [effekti\:<effekti>]\n\u00a76K\u00e4ytt\u00e4\u00e4ksesi montaa v\u00e4ri\u00e4/effekti\u00e4, erota arvot pilkulla\: \u00a7cred,blue,pink\n\u00a76Muotoja\:\u00a7c star, ball, large, creeper, burst \u00a76Effektit<shape>\:\u00a7c trail, twinkle.
|
||||
flyMode=\u00a77Lento {0} pelaajalla {1}.
|
||||
flying=lent\u00e4v\u00e4
|
||||
foreverAlone=\u00a7cSinulla ei ole ket\u00e4\u00e4n kenelle vastata.
|
||||
fullStack=\u00a74You already have a full stack.
|
||||
gameMode=\u00a77Asetit pelimuodon "{0}" pelaajalle {1}.
|
||||
fullStack=\u00a74Sinulla on jo t\u00e4ysi pino.
|
||||
gameMode=\u00a76Set game mode\u00a7c {0} \u00a76for \u00a7c{1}\u00a76.
|
||||
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76"\: \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities, \u00a7c{4}\u00a76 tiles.
|
||||
gcfree=Vapaa muisti\: {0} MB
|
||||
gcmax=Maksimi muisti\: {0} MB
|
||||
@@ -130,20 +130,20 @@ gctotal=Sallittu muisti\: {0} MB
|
||||
geoIpUrlEmpty=GeoIP latausosoite on tyhj\u00e4.
|
||||
geoIpUrlInvalid=GeoIP latausosoite on viallinen.
|
||||
geoipJoinFormat=\u00a76Pelaaja \u00a7c{0} \u00a76tulee maasta \u00a7c{1}\u00a76.
|
||||
giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
|
||||
godDisabledFor=poistettu pelaajalta {0}
|
||||
giveSpawn=\u00a76Annetaan\u00a7c {0} \u00a7c {1} \u00a76pelaajalle\u00a7c {2}\u00a76.
|
||||
godDisabledFor=\u00a7cdisabled\u00a76 for\u00a7c {0}
|
||||
godEnabledFor=laitettu pelaajalle {0}
|
||||
godMode=\u00a77God muoto {0}.
|
||||
groupDoesNotExist=\u00a74There''s no one online in this group\!
|
||||
groupNumber=\u00a7c{0}\u00a7f online, for the full list\:\u00a7c /{1} {2}
|
||||
groupDoesNotExist=\u00a74Kukaan ei ole paikalla t\u00e4st\u00e4 ryhm\u00e4st\u00e4\!
|
||||
groupNumber=\u00a7c{0}\u00a7f paikalla, n\u00e4hd\u00e4ksesi kokolistan\:\u00a7c /{1} {2}
|
||||
hatArmor=\u00a7cVirhe, et voi k\u00e4ytt\u00e4\u00e4 t\u00e4t\u00e4 tavaraa hattuna\!
|
||||
hatEmpty=\u00a7cYou are not wearing a hat.
|
||||
hatFail=\u00a7cSinulla tulee olla jotain k\u00e4dess\u00e4si, mit\u00e4 k\u00e4ytt\u00e4\u00e4 hattuna.
|
||||
hatPlaced=\u00a7eNauti uudesta hatustasi\!
|
||||
hatRemoved=\u00a76Your hat has been removed.
|
||||
hatRemoved=\u00a76Hattusi on poistettu.
|
||||
haveBeenReleased=\u00a77Sinut on vapautettu
|
||||
heal=\u00a77Sinut on parannettu.
|
||||
healDead=\u00a74You cannot heal someone who is dead\!
|
||||
healDead=\u00a74Et voi parantaa pelaajaa, joka on kuollut\!
|
||||
healOther=\u00a77Paransit pelaajan {0}.
|
||||
helpConsole=Katsoaksesi apua konsolista, kirjoita ?.
|
||||
helpFrom=\u00a77Komennot {0}\:
|
||||
@@ -151,24 +151,24 @@ helpLine=\u00a76/{0}\u00a7r\: {1}
|
||||
helpMatching=\u00a77Komennot "{0}"\:
|
||||
helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}\:\u00a7f {1}
|
||||
helpPlugin=\u00a74{0}\u00a7f\: Plugin apu\: /help {1}
|
||||
holdBook=\u00a74You are not holding a writable book.
|
||||
holdFirework=\u00a74You must be holding a firework to add effects.
|
||||
holdPotion=\u00a74You must be holding a potion to apply effects to it.
|
||||
holdBook=\u00a74Et pid\u00e4 k\u00e4dess\u00e4si kirjoitettavaa kirjaa.
|
||||
holdFirework=\u00a74Sinul\u00f6a t\u00e4ytyy olla k\u00e4dess\u00e4si ilotulite lis\u00e4t\u00e4ksesi effektej\u00e4.
|
||||
holdPotion=\u00a74Sinul\u00f6a t\u00e4ytyy olla taikajuoma k\u00e4dess\u00e4si lis\u00e4t\u00e4ksesi siihen effektej\u00e4.
|
||||
holeInFloor=Reik\u00e4 lattiassa
|
||||
homeSet=\u00a77Koti asetettu.
|
||||
homes=Kodit\: {0}
|
||||
hour=tunti
|
||||
hours=tunnit
|
||||
ignoredList=\u00a76Ignored\:\u00a7r {0}
|
||||
ignoredList=\u00a76Huomiotta\:\u00a7r {0}
|
||||
ignorePlayer=J\u00e4tit huomiotta pelaajan {0}.
|
||||
illegalDate=Laiton p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4n muoto.
|
||||
infoChapter=\u00a76Select chapter\:
|
||||
infoChapterPages=\u00a7e ---- \u00a76{0} \u00a7e--\u00a76 Page \u00a7c{1}\u00a76 of \u00a7c{2} \u00a7e----
|
||||
infoChapter=\u00a76Valitse luku\:
|
||||
infoChapterPages=\u00a7e ---- \u00a76{0} \u00a7e--\u00a76 Sivu \u00a7c{1}\u00a76 kirjasta \u00a7c{2} \u00a7e----
|
||||
infoPages=\u00a7e ---- \u00a76{2} \u00a7e--\u00a76 Sivu \u00a74{0}\u00a76/\u00a74{1} \u00a7e----
|
||||
infoUnknownChapter=\u00a74Unknown chapter.
|
||||
infoUnknownChapter=\u00a74Tuntematon luku.
|
||||
insufficientFunds=\u00a74Insufficient funds available.
|
||||
invalidCharge=\u00a7cMit\u00e4t\u00f6n m\u00e4\u00e4r\u00e4ys.
|
||||
invalidFireworkFormat=\u00a76The option \u00a74{0} \u00a76is not a valid value for \u00a74{1}\u00a76.
|
||||
invalidFireworkFormat=\u00a74The option \u00a7c{0} \u00a74is not a valid value for \u00a7c{1}\u00a74.
|
||||
invalidHome=Kotia {0} ei ole olemassa
|
||||
invalidHomeName=\u00a74Invalid home name\!
|
||||
invalidMob=\u00a74Invalid mob type.
|
||||
@@ -203,18 +203,18 @@ kickDefault=Potkittu palvelimelta
|
||||
kickExempt=\u00a7cEt voi potkia h\u00e4nt\u00e4.
|
||||
kickedAll=\u00a7cPotkittu kaikki pelaajat palvelimelta
|
||||
kill=\u00a77Tappoi {0}.
|
||||
killExempt=\u00a74You can not kill {0}
|
||||
killExempt=\u00a74You cannot kill \u00a7c{0}\u00a74.
|
||||
kitCost=\ \u00a77\u00a7o({0})\u00a7r
|
||||
kitError2=\u00a74That kit is improperly defined. Contact an administrator.
|
||||
kitError=\u00a7cEi ole sopivia pakkauksia.
|
||||
kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to {1}\u00a7.
|
||||
kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to \u00a7c{1}\u00a76.
|
||||
kitInvFull=\u00a7cSinun reppusi on t\u00e4ynn\u00e4, laitetaan tavarat maahan
|
||||
kitNotFound=\u00a74That kit does not exist.
|
||||
kitNotFound=Tuota Kitti\u00e4 ei ole olemassa.
|
||||
kitOnce=\u00a74You can''t use that kit again.
|
||||
kitReceive=\u00a76Received kit\u00a7c {0}\u00a76.
|
||||
kitTimed=\u00a7cAika, jota ennen et voi k\u00e4ytt\u00e4\u00e4 t\u00e4t\u00e4 pakkausta uudelleen\: {0}.
|
||||
kits=\u00a77Pakkaukset\: {0}
|
||||
leatherSyntax=\u00a76Leather Color Syntax\: color\:<red>,<green>,<blue> eg\: color\:255,0,0.
|
||||
leatherSyntax=\u00a76Leather color syntax\: color\:<red>,<green>,<blue> eg\: color\:255,0,0.
|
||||
lightningSmited=\u00a77Sinut on salamoitu
|
||||
lightningUse=\u00a77Salamoidaan {0}
|
||||
listAfkTag=\u00a77[AFK]\u00a7f
|
||||
@@ -224,10 +224,10 @@ listGroupTag=\u00a76{0}\u00a7r\: \u00a7r
|
||||
listHiddenTag=\u00a77[HIDDEN]\u00a7f
|
||||
loadWarpError=Virhe ladattaessa warppia {0}
|
||||
localFormat=[L]<{0}> {1}
|
||||
mailClear=\u00a7cPoistaaksesi viestisi, kirjoita /mail clear
|
||||
mailClear=\u00a76To mark your mail as read, type\u00a7c /mail clear\u00a76.
|
||||
mailCleared=\u00a77Viestit poistettu\!
|
||||
mailSent=\u00a77Viesti l\u00e4hetetty\!
|
||||
markMailAsRead=\u00a7cMerkitse viestit luetuiksi, kirjoita /mail clear
|
||||
markMailAsRead=\u00a76To mark your mail as read, type\u00a7c /mail clear\u00a76.
|
||||
markedAsAway=\u00a77Sinut on laitettu poissaolevaksi.
|
||||
markedAsNotAway=\u00a77Sinua ei ole en\u00e4\u00e4 laitettu poissaolevaksi.
|
||||
matchingIPAddress=\u00a76The following players previously logged in from that IP address\:
|
||||
@@ -236,7 +236,7 @@ mayNotJail=\u00a7cEt voi laittaa tuota pelaajaa vankilaan
|
||||
me=min\u00e4
|
||||
minute=minuutti
|
||||
minutes=minuuttia
|
||||
missingItems=Sinulla ei ole {0}kpl {1}.
|
||||
missingItems=\u00a74You do not have \u00a7c{0}x {1}\u00a74.
|
||||
mobSpawnError=Virhe vaihdettaessa mob-luojan tyyppi\u00e4.
|
||||
mobSpawnLimit=Mobien m\u00e4\u00e4r\u00e4 rajoitettu palvelimen maksimim\u00e4\u00e4r\u00e4\u00e4n
|
||||
mobSpawnTarget=Kohteen pit\u00e4\u00e4 olla mob-luoja palikka.
|
||||
@@ -246,13 +246,13 @@ moneySentTo=\u00a7a{0} on l\u00e4hetetty pelaajalle {1}
|
||||
month=kuukausi
|
||||
months=kuukaudet
|
||||
moreThanZero=M\u00e4\u00e4r\u00e4n pit\u00e4\u00e4 olla enemm\u00e4n kuin 0.
|
||||
moveSpeed=\u00a76Set {0} speed to\u00a7c {1} \u00a76for {2}\u00a76.
|
||||
msgFormat=\u00a76[{0}\u00a76 -> {1}\u00a76] \u00a7r{2}
|
||||
moveSpeed=\u00a76Set {0} speed to\u00a7c {1} \u00a76for \u00a7c{2}\u00a76.
|
||||
msgFormat=\u00a76[\u00a7c{0}\u00a76 -> \u00a7c{1}\u00a76] \u00a7r{2}
|
||||
multipleCharges=\u00a74You cannot apply more than one charge to this firework.
|
||||
multiplePotionEffects=\u00a74You cannot apply more than one effect to this potion.
|
||||
muteExempt=\u00a7cEt voi hiljent\u00e4\u00e4 tuota pelaajaa.
|
||||
muteNotify=\u00a7c{0} \u00a76has muted \u00a7c{1}\u00a76.
|
||||
mutedPlayer=\u00a76Player\u00a7c {0} \u00a76muted.
|
||||
muteNotify=\u00a7c {0} \u00a76Mykisti Pelaaja \u00a7c {1} \u00a76.
|
||||
mutedPlayer=Pelaaja {0} voi taas puhua.
|
||||
mutedPlayerFor=\u00a76Player\u00a7c {0} \u00a76muted for\u00a7c {1}\u00a76.
|
||||
mutedUserSpeaks={0} yritti puhua, mutta oli hiljennetty.
|
||||
nearbyPlayers=Pelaajat l\u00e4hell\u00e4\: {0}
|
||||
@@ -262,12 +262,12 @@ nickDisplayName=\u00a77Sinun tulee ottaa k\u00e4ytt\u00f6\u00f6n change-displayn
|
||||
nickInUse=\u00a7cSe nimi on jo k\u00e4yt\u00f6ss\u00e4.
|
||||
nickNamesAlpha=\u00a7cLempinimen pit\u00e4\u00e4 olla aakkosista.
|
||||
nickNoMore=\u00a77Sinulla ei ole en\u00e4\u00e4 lempinime\u00e4.
|
||||
nickSet=\u00a77Lempinimesi on nyt \u00a7c{0}
|
||||
nickTooLong=\u00a74That nickname is too long.
|
||||
nickSet=\u00a77Lempinimesi on nyt \u00a7c{0}.
|
||||
nickTooLong=\u00a74Tuo lempinimi on liian pitk\u00e4.
|
||||
noAccessCommand=\u00a7cSinulla ei ole oikeutta tuohon komentoon.
|
||||
noAccessPermission=\u00a7cSinulla ei ole oikeutta tuohon {0}.
|
||||
noAccessPermission=\u00a74Sinulla ei ole oikeutta Tuohon \u00a7c {0} \u00a74.
|
||||
noBreakBedrock=Sinulla ei ole lupaa tuhota bedrock-palikoita.
|
||||
noDestroyPermission=\u00a7cSinulla ei ole lupaa tuhota sit\u00e4 {0}.
|
||||
noDestroyPermission=\u00a74You do not have permission to destroy that \u00a7c{0}\u00a74.
|
||||
noDurability=\u00a7cT\u00e4ll\u00e4 tavaralla ei ole kestoa.
|
||||
noGodWorldWarning=\u00a7cVaroitus\! God muoto ei ole k\u00e4yt\u00f6ss\u00e4 t\u00e4ss\u00e4 maailmassa.
|
||||
noHelpFound=\u00a7cEi komentoja.
|
||||
@@ -300,8 +300,8 @@ now=nyt
|
||||
nuke=Antaa kuoleman sateen kohdata heid\u00e4t
|
||||
numberRequired=Numero menee tuohon, h\u00f6lm\u00f6.
|
||||
onlyDayNight=/time tukee vain day/night.
|
||||
onlyPlayerSkulls=\u00a74You can only set the owner of player skulls (397\:3).
|
||||
onlyPlayers=Vain peliss\u00e4 olevat pelaajat voivat k\u00e4ytt\u00e4\u00e4 {0}.
|
||||
onlyPlayerSkulls=\u00a74You can only set the owner of player skulls (\u00a7c397\:3\u00a74).
|
||||
onlyPlayers=\u00a74Only in-game players can use \u00a7c{0}\u00a74.
|
||||
onlySunStorm=/weather tukee vain sun/storm.
|
||||
orderBalances=J\u00e4rjestet\u00e4\u00e4n rahatilanteita {0}, odota...
|
||||
oversizedTempban=\u00a74You may not ban a player for this period of time.
|
||||
@@ -314,16 +314,16 @@ pTimeReset=Pelaajan aika on resetoitu\: \u00a7e{0}
|
||||
pTimeSet=Pelaajan aika on asetettu \u00a73{0}\u00a7f koska\: \u00a7e{1}
|
||||
pTimeSetFixed=Pelaajan aika on korjattu \u00a73{0}\u00a7f koska\: \u00a7e{1}
|
||||
pWeatherCurrent=\u00a7c{0}\u00a76''s weather is\u00a7c {1}\u00a76.
|
||||
pWeatherInvalidAlias=\u00a74Invalid weather type
|
||||
pWeatherInvalidAlias=\u00a74Tota s\u00e4\u00e4n tyyppi\u00e4 ei ole olemassa
|
||||
pWeatherNormal=\u00a7c{0}\u00a76''s weather is normal and matches the server.
|
||||
pWeatherOthersPermission=\u00a74You are not authorized to set other players'' weather.
|
||||
pWeatherPlayers=\u00a76These players have their own weather\:\u00a7r
|
||||
pWeatherReset=\u00a76Player weather has been reset for\: \u00a7c{0}
|
||||
pWeatherSet=\u00a76Player weather is set to \u00a7c{0}\u00a76 for\: \u00a7c{1}.
|
||||
pendingTeleportCancelled=\u00a7cOdottava teleporttipyynt\u00f6 peruttu.
|
||||
playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address\u00a7c {1}\u00a76.
|
||||
playerBanned=\u00a76Player\u00a7c {0} \u00a76banned\u00a7c {1} \u00a76for {2}.
|
||||
playerInJail=\u00a7cPelaaja on jo vankilassa {0}.
|
||||
playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address\u00a7c {1} \u00a76for\: \u00a7c{2}\u00a76.
|
||||
playerBanned=\u00a76Player\u00a7c {0} \u00a76banned\u00a7c {1} \u00a76for\: \u00a7c{2}\u00a76.
|
||||
playerInJail=\u00a74Player is already in jail\u00a7c {0}\u00a74.
|
||||
playerJailed=\u00a77Pelaaja {0} laitettu vankilaan.
|
||||
playerJailedFor=\u00a77Pelaaja {0} laitettu vankilaan, koska {1}.
|
||||
playerKicked=\u00a7cPelaaja {0} potki pelaajan {1} koska {2}
|
||||
@@ -332,7 +332,7 @@ playerMutedFor=\u00a77Sinut on hiljennetty, koska {0}
|
||||
playerNeverOnServer=\u00a7cPelaaja {0} ei ole koskaan ollut t\u00e4ll\u00e4 palvelimella.
|
||||
playerNotFound=\u00a7cPelaajaa ei l\u00f6ydetty.
|
||||
playerUnbanIpAddress=\u00a76Player\u00a7c {0} \u00a76unbanned IP\: {1}.
|
||||
playerUnbanned=\u00a76Player\u00a7c {0} \u00a76unbanned\u00a7c {1}.
|
||||
playerUnbanned=\u00a76Player\u00a7c {0} \u00a76Poisti pelaajan \u00a7c {1} karkoituksen.
|
||||
playerUnmuted=\u00a77Sin\u00e4 voit taas puhua
|
||||
pong=Pong\!
|
||||
posPitch=\u00a76Pitch\: {0} (Head angle)
|
||||
@@ -340,28 +340,28 @@ posX=\u00a76X\: {0} (+East <-> -West)
|
||||
posY=\u00a76Y\: {0} (+Up <-> -Down)
|
||||
posYaw=\u00a76Yaw\: {0} (Rotation)
|
||||
posZ=\u00a76Z\: {0} (+South <-> -North)
|
||||
possibleWorlds=\u00a77Mahdollisia maailmoja on numerot v\u00e4lilt\u00e4 0 - {0}.
|
||||
possibleWorlds=\u00a76Possible worlds are the numbers \u00a7c0\u00a76 through \u00a7c{0}\u00a76.
|
||||
potions=\u00a76Potions\:\u00a7r {0}\u00a76.
|
||||
powerToolAir=Komentoa ei voi liitt\u00e4\u00e4 k\u00e4teen.
|
||||
powerToolAlreadySet=Komento \u00a7c{0}\u00a7f on liitetty kohteeseen {1}.
|
||||
powerToolAlreadySet=\u00a74Command \u00a7c{0}\u00a74 is already assigned to \u00a7c{1}\u00a74.
|
||||
powerToolAttach=\u00a7c{0}\u00a7f komento liitetty kohteeseen {1}.
|
||||
powerToolClearAll=Kaikki voimaty\u00f6kalun komennot on poistettu.
|
||||
powerToolList={1} omistaa seuraavat komennot\: \u00a7c{0}\u00a7f.
|
||||
powerToolListEmpty={0} ei ole komentoja liitetty.
|
||||
powerToolNoSuchCommandAssigned=Komentoa \u00a7c{0}\u00a7f ei ole liitetty kohteeseen {1}.
|
||||
powerToolRemove=Komento \u00a7c{0}\u00a7f poistettu kohteesta {1}.
|
||||
powerToolRemoveAll=Kaikki komennot poistettu kohteesta {0}.
|
||||
powerToolNoSuchCommandAssigned=\u00a74Command \u00a7c{0}\u00a74 has not been assigned to \u00a7c{1}\u00a74.
|
||||
powerToolRemove=\u00a76Command \u00a7c{0}\u00a76 removed from \u00a7c{1}\u00a76.
|
||||
powerToolRemoveAll=\u00a76All commands removed from \u00a7c{0}\u00a76.
|
||||
powerToolsDisabled=Kaikki voimaty\u00f6kalut on poistettu k\u00e4yt\u00f6st\u00e4.
|
||||
powerToolsEnabled=Kaikki voimaty\u00f6alut on otettu k\u00e4ytt\u00f6\u00f6n.
|
||||
questionFormat=\u00a77[Question]\u00a7f {0}
|
||||
readNextPage=Kirjoita /{0} {1} lukeaksesi seuraavan sivun
|
||||
recipe=\u00a76Recipe for \u00a7c{0}\u00a76 ({1} of {2})
|
||||
recipe=\u00a76Recipe for \u00a7c{0}\u00a76 (\u00a7c{1}\u00a76 of \u00a7c{2}\u00a76)
|
||||
recipeBadIndex=There is no recipe by that number.
|
||||
recipeFurnace=\u00a76Smelt \u00a7c{0}
|
||||
recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
|
||||
recipeGridItem=\ \u00a7{0}X \u00a76is \u00a7c{1}
|
||||
recipeFurnace=\u00a76Smelt\: \u00a7c{0}\u00a76.
|
||||
recipeGrid=\u00a7c{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
|
||||
recipeGridItem=\u00a7c{0}X \u00a76is \u00a7c{1}
|
||||
recipeMore=\u00a76Type /{0} \u00a7c{1}\u00a76 <number> to see other recipes for \u00a7c{2}\u00a76.
|
||||
recipeNone=No recipes exist for {0}
|
||||
recipeNone=No recipes exist for {0}.
|
||||
recipeNothing=nothing
|
||||
recipeShapeless=\u00a76Combine \u00a7c{0}
|
||||
recipeWhere=\u00a76Where\: {0}
|
||||
@@ -370,7 +370,7 @@ repair=Onnistuneesti korjasit ty\u00f6kalun\: \u00a7e{0}.
|
||||
repairAlreadyFixed=\u00a77T\u00e4m\u00e4 tavara ei kaipaa korjaamista.
|
||||
repairEnchanted=\u00a77Sinulla ei ole lupaa korjata kehitettyj\u00e4 tavaroita.
|
||||
repairInvalidType=\u00a7cT\u00e4t\u00e4 tavaraa ei voi korjata.
|
||||
repairNone=\u00a74There were no items that needed repairing.
|
||||
repairNone=Ei ollut tavaroita, jotka olivat korjauksen tarpeessa.
|
||||
requestAccepted=\u00a77Teleporttaus pyynt\u00f6 hyv\u00e4ksytty.
|
||||
requestAcceptedFrom=\u00a77{0} hyv\u00e4ksyi sinun teleportti pyynn\u00f6n.
|
||||
requestDenied=\u00a77Teleporttaus pyynt\u00f6 kielletty.
|
||||
@@ -378,19 +378,19 @@ requestDeniedFrom=\u00a77{0} kielt\u00e4ytyi sinun teleportti pyynn\u00f6st\u00e
|
||||
requestSent=\u00a77Pyynt\u00f6 l\u00e4hetetty pelaajalle {0}\u00a77.
|
||||
requestTimedOut=\u00a7cTeleportti pyynt\u00f6 aikakatkaistiin
|
||||
requiredBukkit=* \! * Tarvitset v\u00e4hint\u00e4\u00e4n {0} version CraftBukkitista, lataa se osoitteesta http\://dl.bukkit.org/downloads/craftbukkit/
|
||||
resetBal=\u00a76Balance has been reset to \u00a7a{0} \u00a76for all online players.
|
||||
resetBalAll=\u00a76Balance has been reset to \u00a7a{0} \u00a76for all players.
|
||||
returnPlayerToJailError=Virhe laitettaessa pelaaja {0} takaisin vankilaan\: {1}
|
||||
runningPlayerMatch=\u00a76Running search for players matching ''\u00a7c{0}\u00a76'' (this could take a little while)
|
||||
resetBal=\u00a76Balance has been reset to \u00a7c{0} \u00a76for all online players.
|
||||
resetBalAll=\u00a76Balance has been reset to \u00a7c{0} \u00a76for all players.
|
||||
returnPlayerToJailError=\u00a74Error occurred when trying to return player\u00a7c {0} \u00a74to jail\: \u00a7c{1}\u00a74\!
|
||||
runningPlayerMatch=\u00a76Running search for players matching ''\u00a7c{0}\u00a76'' (this could take a little while).
|
||||
second=sekunti
|
||||
seconds=sekuntia
|
||||
seenOffline=Pelaaja {0} on ollut offline jo {1}
|
||||
seenOnline=Pelaaja {0} on ollut online jo {1}
|
||||
seenOffline=\u00a76Player\u00a7c {0} \u00a76has been \u00a74offline\u00a76 since \u00a7c{1}\u00a76.
|
||||
seenOnline=\u00a76Player\u00a7c {0} \u00a76has been \u00a7aonline\u00a76 since \u00a7c{1}\u00a76.
|
||||
serverFull=Palvelin on t\u00e4ynn\u00e4
|
||||
serverTotal=Palvelimen kokonaism\u00e4\u00e4r\u00e4m\u00e4\u00e4r\u00e4\: {0}
|
||||
setBal=\u00a7aYour balance was set to {0}.
|
||||
setBal=\u00a7aSinun rahatilanne on asetettu {0}.
|
||||
setBalOthers=\u00a7aYou set {0}\u00a7a''s balance to {1}.
|
||||
setSpawner=Vaihdettu mob-luojan tyyppi {0}
|
||||
setSpawner=\u00a76Changed spawner type to\u00a7c {0}\u00a76.
|
||||
sheepMalformedColor=Viallinen v\u00e4ri.
|
||||
shoutFormat=\u00a77[Huuto]\u00a7f {0}
|
||||
signFormatFail=\u00a74[{0}]
|
||||
@@ -399,12 +399,12 @@ signFormatTemplate=[{0}]
|
||||
signProtectInvalidLocation=\u00a74Sinulla ei ole lupaa laittaa kyltti\u00e4 t\u00e4h\u00e4n.
|
||||
similarWarpExist=Tuon niminen warp on jo olemassa.
|
||||
slimeMalformedSize=Viallinen koko.
|
||||
socialSpy=\u00a76SocialSpy for {0}\u00a76\: {1}
|
||||
socialSpy=\u00a76SocialSpy for \u00a7c{0}\u00a76\: \u00a7c{1}
|
||||
soloMob=Tuo mob tykk\u00e4\u00e4 olevan yksin
|
||||
spawnSet=\u00a77Spawn sijainti m\u00e4\u00e4ritetty ryhm\u00e4lle {0}.
|
||||
spawned=luotu
|
||||
sudoExempt=Et voi sudoa t\u00e4t\u00e4 pelaajaa
|
||||
sudoRun=Pakotetaan {0} suorittamaan\: /{1} {2}
|
||||
sudoRun=\u00a76Forcing\u00a7c {0} \u00a76to run\:\u00a7r /{1}
|
||||
suicideMessage=\u00a77Hyv\u00e4sti julma maailma...
|
||||
suicideSuccess=\u00a77{0} riisti oman henkens\u00e4
|
||||
survival=selviytyminen
|
||||
@@ -420,18 +420,19 @@ teleportRequest=\u00a7c{0}\u00a7c on pyyt\u00e4nyt lupaa sinun luokse teleportta
|
||||
teleportRequestTimeoutInfo=\u00a77T\u00e4m\u00e4 pyynt\u00f6 aikakatkaistaan {0} sekunnin kuluttua.
|
||||
teleportTop=\u00a77Teleportataan p\u00e4\u00e4lle.
|
||||
teleportationCommencing=\u00a77Teleportataan...
|
||||
teleportationDisabled=\u00a77Teleporttaus poistettu k\u00e4yt\u00f6st\u00e4.
|
||||
teleportationDisabledFor=\u00a76Teleportation disabled for {0}.
|
||||
teleportationEnabled=\u00a77Teleportation otettu k\u00e4ytt\u00f6\u00f6n.
|
||||
teleportationEnabledFor=\u00a76Teleportation enabled for {0}
|
||||
teleportationDisabled=\u00a76Teleportation \u00a7cdisabled\u00a76.
|
||||
teleportationDisabledFor=\u00a76Teleportation \u00a7cdisabled \u00a76for \u00a7c{0}\u00a76.
|
||||
teleportationEnabled=\u00a76Teleportation \u00a7cenabled\u00a76.
|
||||
teleportationEnabledFor=\u00a76Teleportation \u00a7cenabled \u00a76for \u00a7c{0}\u00a76.
|
||||
teleporting=\u00a77Teleportataan...
|
||||
tempBanned=Olet v\u00e4liaikaisesti bannattu palvelimelta, koska {0}
|
||||
teleportToPlayer=\u00a76Teleportataan \u00a7c {0} \u00a76.
|
||||
tempBanned=\u00a7cYou have been temporarily banned for {0}\:\n\u00a7r{2}
|
||||
tempbanExempt=\u00a77Et voi bannia tuota pelaajaa
|
||||
thunder=Myrsky {0} maailmassasi
|
||||
thunderDuration=Myrsky {0} maailmassasi {1} sekuntia.
|
||||
timeBeforeHeal=Aika ennen seuraavaa parannusta\: {0}
|
||||
timeBeforeTeleport=Aika ennen seuraavaa teleporttausta\: {0}
|
||||
timeFormat=\u00a73{0}\u00a7f tai \u00a73{1}\u00a7f tai \u00a73{2}\u00a7f
|
||||
timeFormat=\u00a7c{0}\u00a76 or \u00a7c{1}\u00a76 or \u00a7c{2}\u00a76
|
||||
timeSetPermission=\u00a7cSinulla ei ole lupaa vaihtaa aikaa.
|
||||
timeWorldCurrent=T\u00e4m\u00e4nhetkinen aika maailmassa {0} on \u00a73{1}
|
||||
timeWorldSet=Aika vaihdettiin {0} maailmassa\: \u00a7c{1}
|
||||
@@ -451,7 +452,7 @@ unignorePlayer=Otat taas huomioon pelaajan {0}.
|
||||
unknownItemId=Tuntematon tavaran ID\: {0}
|
||||
unknownItemInList=Tuntematon tavara {0} listassa {1}.
|
||||
unknownItemName=Tuntematon tavaran nimi\: {0}
|
||||
unlimitedItemPermission=\u00a7cEi lupaa loputtomalle tavaralle {0}.
|
||||
unlimitedItemPermission=\u00a74No permission for unlimited item \u00a7c{0}\u00a74.
|
||||
unlimitedItems=Loputtomat tavarat\:
|
||||
unmutedPlayer=Pelaajat {0} voi taas puhua.
|
||||
unvanishedReload=\u00a7cSinut on pakotettu taas n\u00e4kyv\u00e4ksi uudelleen latauksen vuoksi.
|
||||
@@ -480,7 +481,7 @@ warpSet=\u00a77Warp {0} asetettu.
|
||||
warpUsePermission=\u00a7cSinulla ei ole oikeutta k\u00e4ytt\u00e4\u00e4 tuota warppia.
|
||||
warpingTo=\u00a77Sinut warpataan pian kohteeseen {0}.
|
||||
warps=Warpit\: {0}
|
||||
warpsCount=\u00a77Warppeja on {0} kpl. N\u00e4ytet\u00e4\u00e4n sivu {1} / {2}.
|
||||
warpsCount=\u00a76There are\u00a7c {0} \u00a76warps. Showing page \u00a7c{1} \u00a76of \u00a7c{2}\u00a76.
|
||||
weatherStorm=\u00a77Laitoit myrskyn maailmaan {0}
|
||||
weatherStormFor=\u00a77Laitoit myrskyn maailmaan {0} {1} sekunniksi
|
||||
weatherSun=\u00a77Laitoit auringon paistamaan maailmaan {0}
|
||||
@@ -522,7 +523,7 @@ localNoOne=
|
||||
totalSellableAll=\u00a7aThe total worth of all sellable items and blocks is \u00a7c{1}\u00a7a.
|
||||
totalSellableBlocks=\u00a7aThe total worth of all sellable blocks is \u00a7c{1}\u00a7a.
|
||||
radiusTooBig=\u00a74Radius is too big\! Maximum radius is {0}.
|
||||
isIpBanned=\u00a76IP \u00a7c{0} \u00a76is banned.
|
||||
isIpBanned=\u00a76IP \u00a7c {0} \u00a76On karkoitettu.
|
||||
mobDataList=\u00a76Valid mob data\:\u00a7r {0}
|
||||
vanish=\u00a76Vanish for {0}\u00a76\: {1}
|
||||
noLocationFound=\u00a74No valid location found.
|
||||
@@ -531,19 +532,27 @@ banExemptOffline=\u00a74You may not ban offline players.
|
||||
tempbanExemptOffline=\u00a74You may not tempban offline players.
|
||||
mayNotJailOffline=\u00a74You may not jail offline players.
|
||||
muteExemptOffline=\u00a74You may not mute offline players.
|
||||
ignoreExempt=\u00a74You can not ignore that player.
|
||||
ignoreExempt=\u00a74You may not ignore that player.
|
||||
unsafeTeleportDestination=\u00a74The teleport destination is unsafe and teleport-safety is disabled.
|
||||
noMetaJson=JSON Metadata is not supported in this version of Bukkit.
|
||||
maxMoney=\u00a74This transaction would exceed the balance limit for this account.
|
||||
skullChanged=\u00a76Skull changed to \u00a7c{0}.\u00a76.
|
||||
skullChanged=\u00a76Skull changed to \u00a7c{0}\u00a76.
|
||||
alphaNames=\u00a74Player names can only contain letters, numbers and underscores.
|
||||
givenSkull=\u00a76You have been given the Skull of \u00a7c{0}\u00a76.
|
||||
noPermissionSkull=\u00a74You do not have permission to modify that Skull.
|
||||
givenSkull=\u00a76You have been given the skull of \u00a7c{0}\u00a76.
|
||||
noPermissionSkull=\u00a74You do not have permission to modify that skull.
|
||||
teleportInvalidLocation=Value of coordinates cannot be over 30000000
|
||||
invalidSkull=\u00a74Please hold a player Skull.
|
||||
invalidSkull=\u00a74Please hold a player skull.
|
||||
weatherInvalidWorld=World named {0} not found\!
|
||||
gameModeInvalid=\u00a74You need to specify a valid player/mode.
|
||||
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000
|
||||
mailTooLong=\u00a74Mail message too long. Try to keep it below 1000 characters.
|
||||
mailDelay=Too many mails have been sent within the last minute. Maximum\: {0}
|
||||
seenAccounts=\u00a76Player has also been known as:\u00a7c {0}
|
||||
seenAccounts=\u00a76Player has also been known as\:\u00a7c {0}
|
||||
unableToSpawnItem=\u00a74Cannot spawn \u00a7c{0}\u00a74, this is not a spawnable item.
|
||||
itemsConverted=\u00a76Converted all items into blocks.
|
||||
itemsNotConverted=\u00a74You have no items that can be converted into blocks.
|
||||
mailSentTo=\u00a7c{0}\u00a76 has been sent the following mail\:
|
||||
mailMessage={0}
|
||||
|
||||
whoisTempBanned=\u00a76 - Ban expires:\u00a7r {0}
|
||||
playerTempBanned=\u00a76Player \u00a7c{0}\u00a76 temporarily banned \u00a7c{1}\u00a76 for \u00a7c{2}\u00a76: \u00a7c{3}\u00a76.
|
||||
mailFormat=\u00a76[\u00a7r{0}\u00a76] \u00a7r{1}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user