mirror of
https://github.com/essentials/Essentials.git
synced 2025-08-07 15:16:41 +02:00
Merge branch 'essmaster' into essrelease
This commit is contained in:
@@ -601,6 +601,13 @@ is divided into following sections:
|
||||
<propertyfile file="${built-jar.properties}">
|
||||
<entry key="${basedir}" value=""/>
|
||||
</propertyfile>
|
||||
<antcall target="-maybe-call-dep">
|
||||
<param name="call.built.properties" value="${built-jar.properties}"/>
|
||||
<param location="${project.EssentialsGroupManager}" name="call.subproject"/>
|
||||
<param location="${project.EssentialsGroupManager}/build.xml" name="call.script"/>
|
||||
<param name="call.target" value="jar"/>
|
||||
<param name="transfer.built-jar.properties" value="${built-jar.properties}"/>
|
||||
</antcall>
|
||||
</target>
|
||||
<target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/>
|
||||
<target depends="init" name="-check-automatic-build">
|
||||
@@ -1038,6 +1045,13 @@ is divided into following sections:
|
||||
<propertyfile file="${built-clean.properties}">
|
||||
<entry key="${basedir}" value=""/>
|
||||
</propertyfile>
|
||||
<antcall target="-maybe-call-dep">
|
||||
<param name="call.built.properties" value="${built-clean.properties}"/>
|
||||
<param location="${project.EssentialsGroupManager}" name="call.subproject"/>
|
||||
<param location="${project.EssentialsGroupManager}/build.xml" name="call.script"/>
|
||||
<param name="call.target" value="clean"/>
|
||||
<param name="transfer.built-clean.properties" value="${built-clean.properties}"/>
|
||||
</antcall>
|
||||
</target>
|
||||
<target depends="init" name="-do-clean">
|
||||
<delete dir="${build.dir}"/>
|
||||
|
@@ -3,8 +3,8 @@ build.xml.script.CRC32=3233ee78
|
||||
build.xml.stylesheet.CRC32=28e38971@1.38.2.45
|
||||
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
|
||||
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
|
||||
nbproject/build-impl.xml.data.CRC32=4b596d89
|
||||
nbproject/build-impl.xml.script.CRC32=dbc81ee1
|
||||
nbproject/build-impl.xml.data.CRC32=a830bc14
|
||||
nbproject/build-impl.xml.script.CRC32=64a00ba6
|
||||
nbproject/build-impl.xml.stylesheet.CRC32=0ae3a408@1.44.1.45
|
||||
nbproject/profiler-build-impl.xml.data.CRC32=ab78ce15
|
||||
nbproject/profiler-build-impl.xml.script.CRC32=abda56ed
|
||||
|
@@ -68,7 +68,7 @@ file.reference.craftbukkit-0.0.1-SNAPSHOT.jar=..\\lib\\craftbukkit-0.0.1-SNAPSHO
|
||||
file.reference.iCo4.jar=../lib/iCo4.jar
|
||||
file.reference.iCo5.jar=../lib/iCo5.jar
|
||||
file.reference.iCo6.jar=../lib/iCo6.jar
|
||||
file.reference.junit-4.5.jar=..\\lib\\junit_4\\junit-4.5.jar
|
||||
file.reference.junit-4.5.jar=../lib/junit_4/junit-4.5.jar
|
||||
file.reference.lombok-0.10.1.jar=../lib/lombok-0.10.1.jar
|
||||
file.reference.MultiCurrency.jar=../lib/MultiCurrency.jar
|
||||
file.reference.Permissions3.jar=../lib/Permissions3.jar
|
||||
@@ -80,7 +80,6 @@ jar.compress=true
|
||||
jar.index=${jnlp.enabled}
|
||||
javac.classpath=\
|
||||
${file.reference.Permissions3.jar}:\
|
||||
${file.reference.craftbukkit-0.0.1-SNAPSHOT.jar}:\
|
||||
${file.reference.iCo4.jar}:\
|
||||
${file.reference.iCo5.jar}:\
|
||||
${file.reference.iCo6.jar}:\
|
||||
@@ -89,7 +88,9 @@ javac.classpath=\
|
||||
${file.reference.PermissionsEx.jar}:\
|
||||
${file.reference.bPermissions.jar}:\
|
||||
${file.reference.PermissionsBukkit-1.2.jar}:\
|
||||
${file.reference.lombok-0.10.1.jar}
|
||||
${file.reference.lombok-0.10.1.jar}:\
|
||||
${reference.EssentialsGroupManager.jar}:\
|
||||
${file.reference.craftbukkit-0.0.1-SNAPSHOT.jar}
|
||||
# Space-separated list of extra javac options
|
||||
javac.compilerargs=
|
||||
javac.deprecation=false
|
||||
@@ -110,6 +111,7 @@ javadoc.noindex=false
|
||||
javadoc.nonavbar=false
|
||||
javadoc.notree=false
|
||||
javadoc.private=false
|
||||
javadoc.reference.PermissionsEx.jar=../lib/PermissionsEx-javadoc.jar
|
||||
javadoc.splitindex=true
|
||||
javadoc.use=true
|
||||
javadoc.version=false
|
||||
@@ -126,6 +128,8 @@ jnlp.signing.keystore=
|
||||
meta.inf.dir=${src.dir}/META-INF
|
||||
mkdist.disabled=true
|
||||
platform.active=default_platform
|
||||
project.EssentialsGroupManager=../EssentialsGroupManager
|
||||
reference.EssentialsGroupManager.jar=../EssentialsGroupManager/dist/EssentialsGroupManager.jar
|
||||
run.classpath=\
|
||||
${javac.classpath}:\
|
||||
${build.classes.dir}
|
||||
|
@@ -14,6 +14,15 @@
|
||||
<libraries xmlns="http://www.netbeans.org/ns/ant-project-libraries/1">
|
||||
<definitions>../lib/nblibraries.properties</definitions>
|
||||
</libraries>
|
||||
<references xmlns="http://www.netbeans.org/ns/ant-project-references/1"/>
|
||||
<references xmlns="http://www.netbeans.org/ns/ant-project-references/1">
|
||||
<reference>
|
||||
<foreign-project>EssentialsGroupManager</foreign-project>
|
||||
<artifact-type>jar</artifact-type>
|
||||
<script>build.xml</script>
|
||||
<target>jar</target>
|
||||
<clean-target>clean</clean-target>
|
||||
<id>jar</id>
|
||||
</reference>
|
||||
</references>
|
||||
</configuration>
|
||||
</project>
|
||||
|
@@ -33,7 +33,6 @@ import com.earth2me.essentials.register.payment.Methods;
|
||||
import com.earth2me.essentials.signs.SignBlockListener;
|
||||
import com.earth2me.essentials.signs.SignEntityListener;
|
||||
import com.earth2me.essentials.signs.SignPlayerListener;
|
||||
import java.math.BigInteger;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import org.bukkit.command.PluginCommand;
|
||||
@@ -58,12 +57,10 @@ public class Essentials extends JavaPlugin implements IEssentials
|
||||
private transient List<IConf> confList;
|
||||
private transient Backup backup;
|
||||
private transient ItemDb itemDb;
|
||||
private transient EssentialsUpdateTimer updateTimer;
|
||||
private transient final Methods paymentMethod = new Methods();
|
||||
private transient final static boolean enableErrorLogging = false;
|
||||
private transient final EssentialsErrorHandler errorHandler = new EssentialsErrorHandler();
|
||||
private transient PermissionsHandler permissionsHandler;
|
||||
private transient UserMap userMap;
|
||||
private transient ExecuteTimer execTimer;
|
||||
|
||||
@Override
|
||||
public ISettings getSettings()
|
||||
@@ -94,32 +91,36 @@ public class Essentials extends JavaPlugin implements IEssentials
|
||||
@Override
|
||||
public void onEnable()
|
||||
{
|
||||
execTimer = new ExecuteTimer();
|
||||
execTimer.start();
|
||||
final String[] javaversion = System.getProperty("java.version").split("\\.", 3);
|
||||
if (javaversion == null || javaversion.length < 2 || Integer.parseInt(javaversion[1]) < 6)
|
||||
{
|
||||
LOGGER.log(Level.SEVERE, "Java version not supported! Please install Java 1.6. You have " + System.getProperty("java.version"));
|
||||
}
|
||||
if (enableErrorLogging)
|
||||
{
|
||||
LOGGER.addHandler(errorHandler);
|
||||
}
|
||||
final EssentialsUpgrade upgrade = new EssentialsUpgrade(this);
|
||||
upgrade.beforeSettings();
|
||||
execTimer.mark("Upgrade");
|
||||
confList = new ArrayList<IConf>();
|
||||
settings = new Settings(this);
|
||||
confList.add(settings);
|
||||
execTimer.mark("Settings");
|
||||
upgrade.afterSettings();
|
||||
execTimer.mark("Upgrade2");
|
||||
Util.updateLocale(settings.getLocale(), this);
|
||||
userMap = new UserMap(this);
|
||||
confList.add(userMap);
|
||||
execTimer.mark("Init(Usermap)");
|
||||
spawn = new Spawn(getServer(), this.getDataFolder());
|
||||
confList.add(spawn);
|
||||
warps = new Warps(getServer(), this.getDataFolder());
|
||||
confList.add(warps);
|
||||
execTimer.mark("Init(Spawn/Warp)");
|
||||
worth = new Worth(this.getDataFolder());
|
||||
confList.add(worth);
|
||||
itemDb = new ItemDb(this);
|
||||
confList.add(itemDb);
|
||||
execTimer.mark("Init(Worth/ItemDB)");
|
||||
reload();
|
||||
backup = new Backup(this);
|
||||
|
||||
@@ -188,8 +189,10 @@ public class Essentials extends JavaPlugin implements IEssentials
|
||||
pm.registerEvent(Type.ENTITY_DAMAGE, entityListener, Priority.Lowest, this);
|
||||
pm.registerEvent(Type.ENTITY_COMBUST, entityListener, Priority.Lowest, this);
|
||||
pm.registerEvent(Type.ENTITY_DEATH, entityListener, Priority.Lowest, this);
|
||||
pm.registerEvent(Type.ENTITY_REGAIN_HEALTH, entityListener, Priority.Lowest, this);
|
||||
pm.registerEvent(Type.FOOD_LEVEL_CHANGE, entityListener, Priority.Lowest, this);
|
||||
|
||||
//TODO: Check if this should be here, and not above before reload()
|
||||
jail = new Jail(this);
|
||||
final JailPlayerListener jailPlayerListener = new JailPlayerListener(this);
|
||||
confList.add(jail);
|
||||
@@ -206,19 +209,19 @@ public class Essentials extends JavaPlugin implements IEssentials
|
||||
final EssentialsTimer timer = new EssentialsTimer(this);
|
||||
getScheduler().scheduleSyncRepeatingTask(this, timer, 1, 100);
|
||||
Economy.setEss(this);
|
||||
if (getSettings().isUpdateEnabled())
|
||||
{
|
||||
updateTimer = new EssentialsUpdateTimer(this);
|
||||
getScheduler().scheduleAsyncRepeatingTask(this, updateTimer, 20 * 60 * 10, 20 * 3600 * 6);
|
||||
}
|
||||
execTimer.mark("RegListeners");
|
||||
LOGGER.info(Util.format("loadinfo", this.getDescription().getName(), this.getDescription().getVersion(), Util.joinList(this.getDescription().getAuthors())));
|
||||
final String timeroutput = execTimer.end();
|
||||
if (getSettings().isDebug())
|
||||
{
|
||||
LOGGER.log(Level.INFO, "Essentials load " + timeroutput);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisable()
|
||||
{
|
||||
Trade.closeLog();
|
||||
LOGGER.removeHandler(errorHandler);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -229,6 +232,7 @@ public class Essentials extends JavaPlugin implements IEssentials
|
||||
for (IConf iConf : confList)
|
||||
{
|
||||
iConf.reloadConfig();
|
||||
execTimer.mark("Reload(" + iConf.getClass().getSimpleName() + ")");
|
||||
}
|
||||
|
||||
Util.updateLocale(settings.getLocale(), this);
|
||||
@@ -478,14 +482,6 @@ public class Essentials extends JavaPlugin implements IEssentials
|
||||
{
|
||||
LOGGER.log(logRecord);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (enableErrorLogging)
|
||||
{
|
||||
errorHandler.publish(logRecord);
|
||||
errorHandler.flush();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -608,10 +604,12 @@ public class Essentials extends JavaPlugin implements IEssentials
|
||||
@Override
|
||||
public int broadcastMessage(final IUser sender, final String message)
|
||||
{
|
||||
if (sender == null) {
|
||||
if (sender == null)
|
||||
{
|
||||
return getServer().broadcastMessage(message);
|
||||
}
|
||||
if (sender.isHidden()) {
|
||||
if (sender.isHidden())
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
final Player[] players = getServer().getOnlinePlayers();
|
||||
@@ -628,11 +626,6 @@ public class Essentials extends JavaPlugin implements IEssentials
|
||||
return players.length;
|
||||
}
|
||||
|
||||
public Map<BigInteger, String> getErrors()
|
||||
{
|
||||
return errorHandler.getErrors();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int scheduleAsyncDelayedTask(final Runnable run)
|
||||
{
|
||||
|
@@ -1,6 +1,8 @@
|
||||
package com.earth2me.essentials;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.entity.EntityCombustEvent;
|
||||
@@ -8,6 +10,8 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.entity.EntityDeathEvent;
|
||||
import org.bukkit.event.entity.EntityListener;
|
||||
import org.bukkit.event.entity.EntityRegainHealthEvent;
|
||||
import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason;
|
||||
import org.bukkit.event.entity.FoodLevelChangeEvent;
|
||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
@@ -15,6 +19,7 @@ import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class EssentialsEntityListener extends EntityListener
|
||||
{
|
||||
private static final Logger LOGGER = Logger.getLogger("Minecraft");
|
||||
private final IEssentials ess;
|
||||
|
||||
public EssentialsEntityListener(IEssentials ess)
|
||||
@@ -34,6 +39,7 @@ public class EssentialsEntityListener extends EntityListener
|
||||
{
|
||||
User defender = ess.getUser(eDefend);
|
||||
User attacker = ess.getUser(eAttack);
|
||||
attacker.updateActivity(true);
|
||||
ItemStack is = attacker.getItemInHand();
|
||||
List<String> commandList = attacker.getPowertool(is);
|
||||
if (commandList != null && !commandList.isEmpty())
|
||||
@@ -93,8 +99,16 @@ public class EssentialsEntityListener extends EntityListener
|
||||
{
|
||||
if (event.getEntity() instanceof Player && ess.getUser(event.getEntity()).isGodModeEnabled())
|
||||
{
|
||||
//TODO: Remove the following line, when we're happy to remove backwards compatability with 1185.
|
||||
event.setFoodLevel(20);
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEntityRegainHealth(EntityRegainHealthEvent event)
|
||||
{
|
||||
if (event.getRegainReason() == RegainReason.SATIATED && event.getEntity() instanceof Player
|
||||
&& ess.getUser(event.getEntity()).isAfk() && ess.getSettings().getFreezeAfkPlayers())
|
||||
{
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
|
@@ -1,128 +0,0 @@
|
||||
package com.earth2me.essentials;
|
||||
|
||||
import java.math.BigInteger;
|
||||
import java.security.MessageDigest;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.logging.Handler;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.LogRecord;
|
||||
|
||||
|
||||
class EssentialsErrorHandler extends Handler
|
||||
{
|
||||
private final Map<BigInteger, String> errors = new HashMap<BigInteger, String>();
|
||||
private final List<LogRecord> records = new LinkedList<LogRecord>();
|
||||
|
||||
public EssentialsErrorHandler()
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void publish(LogRecord lr)
|
||||
{
|
||||
if (lr.getThrown() == null || lr.getLevel().intValue() < Level.WARNING.intValue())
|
||||
{
|
||||
return;
|
||||
}
|
||||
synchronized (records)
|
||||
{
|
||||
records.add(lr);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void flush()
|
||||
{
|
||||
synchronized (records)
|
||||
{
|
||||
sortRecords();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() throws SecurityException
|
||||
{
|
||||
synchronized (records)
|
||||
{
|
||||
sortRecords();
|
||||
}
|
||||
}
|
||||
|
||||
private void sortRecords()
|
||||
{
|
||||
for (LogRecord lr : records)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (lr.getThrown() == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
Throwable tr = lr.getThrown();
|
||||
StackTraceElement[] elements = tr.getStackTrace();
|
||||
if (elements == null || elements.length <= 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
boolean essentialsFound = false;
|
||||
for (StackTraceElement stackTraceElement : elements)
|
||||
{
|
||||
if (stackTraceElement.getClassName().contains("com.earth2me.essentials"))
|
||||
{
|
||||
essentialsFound = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!essentialsFound && tr.getCause() != null)
|
||||
{
|
||||
Throwable cause = tr.getCause();
|
||||
StackTraceElement[] elements2 = cause.getStackTrace();
|
||||
if (elements2 != null)
|
||||
{
|
||||
for (StackTraceElement stackTraceElement : elements2)
|
||||
{
|
||||
if (stackTraceElement.getClassName().contains("com.earth2me.essentials"))
|
||||
{
|
||||
essentialsFound = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("[").append(lr.getLevel().getName()).append("] ").append(lr.getMessage()).append("\n");
|
||||
sb.append(tr.getMessage()).append("\n");
|
||||
for (StackTraceElement stackTraceElement : tr.getStackTrace())
|
||||
{
|
||||
sb.append(stackTraceElement.toString()).append("\n");
|
||||
}
|
||||
if (tr.getCause() != null && tr.getCause().getStackTrace() != null)
|
||||
{
|
||||
sb.append(tr.getCause().getMessage()).append("\n");
|
||||
for (StackTraceElement stackTraceElement : tr.getCause().getStackTrace())
|
||||
{
|
||||
sb.append(stackTraceElement.toString()).append("\n");
|
||||
}
|
||||
}
|
||||
String errorReport = sb.toString();
|
||||
byte[] bytesOfMessage = errorReport.getBytes("UTF-8");
|
||||
MessageDigest md = MessageDigest.getInstance("MD5");
|
||||
BigInteger bi = new BigInteger(md.digest(bytesOfMessage));
|
||||
errors.put(bi, errorReport);
|
||||
}
|
||||
catch (Throwable t)
|
||||
{
|
||||
//Ignore all exceptions inside the exception handler
|
||||
}
|
||||
}
|
||||
records.clear();
|
||||
}
|
||||
|
||||
Map<BigInteger, String> getErrors()
|
||||
{
|
||||
return errors;
|
||||
}
|
||||
}
|
@@ -47,7 +47,6 @@ public class EssentialsPlayerListener extends PlayerListener
|
||||
public void onPlayerRespawn(final PlayerRespawnEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
user.setDisplayNick(user.getNick());
|
||||
updateCompass(user);
|
||||
if (ess.getSettings().changeDisplayName())
|
||||
{
|
||||
@@ -169,6 +168,7 @@ public class EssentialsPlayerListener extends PlayerListener
|
||||
{
|
||||
user.setDisplayNick(user.getNick());
|
||||
}
|
||||
user.setLastLoginAddress(user.getAddress().getAddress().getHostAddress());
|
||||
user.updateActivity(false);
|
||||
if (user.isAuthorized("essentials.sleepingignored"))
|
||||
{
|
||||
@@ -213,7 +213,7 @@ public class EssentialsPlayerListener extends PlayerListener
|
||||
user.setNPC(false);
|
||||
|
||||
final long currentTime = System.currentTimeMillis();
|
||||
boolean banExpired = user.checkBanTimeout(currentTime);
|
||||
final boolean banExpired = user.checkBanTimeout(currentTime);
|
||||
user.checkMuteTimeout(currentTime);
|
||||
user.checkJailTimeout(currentTime);
|
||||
|
||||
@@ -319,6 +319,8 @@ public class EssentialsPlayerListener extends PlayerListener
|
||||
@Override
|
||||
public void onPlayerAnimation(final PlayerAnimationEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
user.updateActivity(true);
|
||||
usePowertools(event);
|
||||
}
|
||||
|
||||
|
@@ -1,84 +0,0 @@
|
||||
package com.earth2me.essentials;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
||||
class EssentialsUpdateTimer implements Runnable
|
||||
{
|
||||
private transient URL url;
|
||||
private final transient IEssentials ess;
|
||||
private static final Logger LOGGER = Logger.getLogger("Minecraft");
|
||||
private final transient Pattern pattern = Pattern.compile("git-Bukkit-([0-9]+).([0-9]+).([0-9]+)-[0-9]+-[0-9a-z]+-b([0-9]+)jnks.*");
|
||||
|
||||
public EssentialsUpdateTimer(final IEssentials ess)
|
||||
{
|
||||
this.ess = ess;
|
||||
try
|
||||
{
|
||||
url = new URL("http://essentialsupdate.appspot.com/check");
|
||||
}
|
||||
catch (MalformedURLException ex)
|
||||
{
|
||||
LOGGER.log(Level.SEVERE, "Invalid url!", ex);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
try
|
||||
{
|
||||
final StringBuilder builder = new StringBuilder();
|
||||
String bukkitVersion = ess.getServer().getVersion();
|
||||
final Matcher versionMatch = pattern.matcher(bukkitVersion);
|
||||
if (versionMatch.matches())
|
||||
{
|
||||
bukkitVersion = versionMatch.group(4);
|
||||
}
|
||||
builder.append("v=").append(URLEncoder.encode(ess.getDescription().getVersion(), "UTF-8"));
|
||||
builder.append("&b=").append(URLEncoder.encode(bukkitVersion, "UTF-8"));
|
||||
final URLConnection conn = url.openConnection();
|
||||
conn.setConnectTimeout(10000);
|
||||
conn.setDoOutput(true);
|
||||
conn.connect();
|
||||
final OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());
|
||||
writer.write(builder.toString());
|
||||
writer.flush();
|
||||
final BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
|
||||
final String ret = reader.readLine();
|
||||
writer.close();
|
||||
reader.close();
|
||||
if (!ret.isEmpty() && !ret.equalsIgnoreCase("OK"))
|
||||
{
|
||||
LOGGER.log(Level.INFO, "Essentials Update-Check: " + ret);
|
||||
if (ret.startsWith("New Version"))
|
||||
{
|
||||
for (Player player : ess.getServer().getOnlinePlayers())
|
||||
{
|
||||
final User user = ess.getUser(player);
|
||||
if (user.isAuthorized("essentials.admin.notices.update"))
|
||||
{
|
||||
user.sendMessage(ret);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
LOGGER.log(Level.SEVERE, "Failed to open connection", ex);
|
||||
}
|
||||
}
|
||||
}
|
84
Essentials/src/com/earth2me/essentials/ExecuteTimer.java
Normal file
84
Essentials/src/com/earth2me/essentials/ExecuteTimer.java
Normal file
@@ -0,0 +1,84 @@
|
||||
package com.earth2me.essentials;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
public class ExecuteTimer
|
||||
{
|
||||
private final List<ExecuteRecord> times;
|
||||
|
||||
public ExecuteTimer()
|
||||
{
|
||||
times = new ArrayList<ExecuteRecord>();
|
||||
}
|
||||
|
||||
public void start()
|
||||
{
|
||||
times.clear();
|
||||
mark("start");
|
||||
|
||||
}
|
||||
|
||||
public void mark(final String label)
|
||||
{
|
||||
if (!times.isEmpty() || "start".equals(label))
|
||||
{
|
||||
times.add(new ExecuteRecord(label, System.currentTimeMillis()));
|
||||
}
|
||||
}
|
||||
|
||||
public String end()
|
||||
{
|
||||
final StringBuilder output = new StringBuilder();
|
||||
output.append("execution time: ");
|
||||
String mark;
|
||||
long time0 = 0;
|
||||
long time1 = 0;
|
||||
long time2 = 0;
|
||||
long duration;
|
||||
|
||||
for (ExecuteRecord pair : times)
|
||||
{
|
||||
mark = (String)pair.getMark();
|
||||
time2 = (Long)pair.getTime();
|
||||
if (time1 > 0)
|
||||
{
|
||||
duration = time2 - time1;
|
||||
output.append(mark).append(": ").append(duration).append("ms - ");
|
||||
}
|
||||
else
|
||||
{
|
||||
time0 = time2;
|
||||
}
|
||||
time1 = time2;
|
||||
}
|
||||
duration = time1 - time0;
|
||||
output.append("Total: ").append(duration).append("ms");
|
||||
times.clear();
|
||||
return output.toString();
|
||||
}
|
||||
|
||||
|
||||
static private class ExecuteRecord
|
||||
{
|
||||
private final String mark;
|
||||
private final long time;
|
||||
|
||||
public ExecuteRecord(final String mark, final long time)
|
||||
{
|
||||
this.mark = mark;
|
||||
this.time = time;
|
||||
}
|
||||
|
||||
public String getMark()
|
||||
{
|
||||
return mark;
|
||||
}
|
||||
|
||||
public long getTime()
|
||||
{
|
||||
return time;
|
||||
}
|
||||
}
|
||||
}
|
@@ -124,8 +124,10 @@ public interface ISettings extends IConf
|
||||
boolean useBukkitPermissions();
|
||||
|
||||
boolean addPrefixSuffix();
|
||||
|
||||
boolean isUpdateEnabled();
|
||||
|
||||
boolean disablePrefix();
|
||||
|
||||
boolean disableSuffix();
|
||||
|
||||
long getAutoAfk();
|
||||
|
||||
@@ -134,4 +136,6 @@ public interface ISettings extends IConf
|
||||
boolean getFreezeAfkPlayers();
|
||||
|
||||
boolean areDeathMessagesEnabled();
|
||||
|
||||
public void setDebug(boolean debug);
|
||||
}
|
||||
|
@@ -378,10 +378,12 @@ public class Settings implements ISettings
|
||||
return config.getBoolean("protect.disable.warn-on-build-disallow", false);
|
||||
}
|
||||
|
||||
private boolean debug = false;
|
||||
|
||||
@Override
|
||||
public boolean isDebug()
|
||||
{
|
||||
return config.getBoolean("debug", false);
|
||||
return debug || config.getBoolean("debug", false);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -498,11 +500,15 @@ public class Settings implements ISettings
|
||||
{
|
||||
return config.getBoolean("add-prefix-suffix", ess.getServer().getPluginManager().isPluginEnabled("EssentialsChat"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isUpdateEnabled()
|
||||
|
||||
public boolean disablePrefix()
|
||||
{
|
||||
return config.getBoolean("update-check", false);
|
||||
return config.getBoolean("disablePrefix", false);
|
||||
}
|
||||
|
||||
public boolean disableSuffix()
|
||||
{
|
||||
return config.getBoolean("disableSuffix", false);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -528,4 +534,10 @@ public class Settings implements ISettings
|
||||
{
|
||||
return config.getBoolean("death-messages", true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDebug(final boolean debug)
|
||||
{
|
||||
this.debug = debug;
|
||||
}
|
||||
}
|
||||
|
@@ -9,20 +9,23 @@ import org.bukkit.Server;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.World.Environment;
|
||||
|
||||
public class Spawn implements IConf {
|
||||
|
||||
public class Spawn implements IConf
|
||||
{
|
||||
private static final Logger logger = Logger.getLogger("Minecraft");
|
||||
private final EssentialsConf config;
|
||||
private final Server server;
|
||||
|
||||
public Spawn(Server server, File dataFolder) {
|
||||
public Spawn(Server server, File dataFolder)
|
||||
{
|
||||
File configFile = new File(dataFolder, "spawn.yml");
|
||||
this.server = server;
|
||||
config = new EssentialsConf(configFile);
|
||||
config.load();
|
||||
}
|
||||
|
||||
public void setSpawn(Location loc, String group) {
|
||||
public void setSpawn(Location loc, String group)
|
||||
{
|
||||
Map<String, Object> map = new HashMap<String, Object>();
|
||||
map.put("world", loc.getWorld().getName());
|
||||
map.put("x", loc.getX());
|
||||
@@ -33,18 +36,24 @@ public class Spawn implements IConf {
|
||||
config.setProperty(group, map);
|
||||
config.save();
|
||||
|
||||
if ("default".equals(group)) {
|
||||
if ("default".equals(group))
|
||||
{
|
||||
loc.getWorld().setSpawnLocation(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
|
||||
}
|
||||
}
|
||||
|
||||
public Location getSpawn(String group) {
|
||||
if (config.getProperty(group) == null) {
|
||||
public Location getSpawn(String group)
|
||||
{
|
||||
if (config.getProperty(group) == null)
|
||||
{
|
||||
group = "default";
|
||||
}
|
||||
if (config.getProperty(group) == null) {
|
||||
for (World w : server.getWorlds()) {
|
||||
if (w.getEnvironment() != Environment.NORMAL) {
|
||||
if (config.getProperty(group) == null)
|
||||
{
|
||||
for (World w : server.getWorlds())
|
||||
{
|
||||
if (w.getEnvironment() != Environment.NORMAL)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
return w.getSpawnLocation();
|
||||
@@ -52,15 +61,19 @@ public class Spawn implements IConf {
|
||||
}
|
||||
String worldId = config.getString(group + ".world", "");
|
||||
World world = server.getWorlds().get(server.getWorlds().size() > 1 ? 1 : 0);
|
||||
for (World w : server.getWorlds()) {
|
||||
if (w.getEnvironment() != Environment.NORMAL) {
|
||||
for (World w : server.getWorlds())
|
||||
{
|
||||
if (w.getEnvironment() != Environment.NORMAL)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
world = w;
|
||||
break;
|
||||
}
|
||||
for (World w : server.getWorlds()) {
|
||||
if (!w.getName().equals(worldId)) {
|
||||
for (World w : server.getWorlds())
|
||||
{
|
||||
if (!w.getName().equals(worldId))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
world = w;
|
||||
@@ -70,18 +83,20 @@ public class Spawn implements IConf {
|
||||
double x = config.getDouble(group + ".x", config.getDouble("default.x", 0));
|
||||
double y = config.getDouble(group + ".y", config.getDouble("default.y", 0));
|
||||
double z = config.getDouble(group + ".z", config.getDouble("default.z", 0));
|
||||
float yaw = (float) config.getDouble(group + ".yaw", config.getDouble("default.yaw", 0));
|
||||
float pitch = (float) config.getDouble(group + ".pitch", config.getDouble("default.pitch", 0));
|
||||
float yaw = (float)config.getDouble(group + ".yaw", config.getDouble("default.yaw", 0));
|
||||
float pitch = (float)config.getDouble(group + ".pitch", config.getDouble("default.pitch", 0));
|
||||
Location retval = new Location(world, x, y, z, yaw, pitch);
|
||||
|
||||
if (y < 1) {
|
||||
if (y < 1)
|
||||
{
|
||||
retval.setY(world.getHighestBlockYAt(retval));
|
||||
}
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
public void reloadConfig() {
|
||||
public void reloadConfig()
|
||||
{
|
||||
config.load();
|
||||
}
|
||||
}
|
||||
|
@@ -37,7 +37,8 @@ public class TNTExplodeListener extends EntityListener implements Runnable
|
||||
timer = ess.scheduleSyncDelayedTask(this, 1000);
|
||||
return;
|
||||
}
|
||||
if (timer != -1) {
|
||||
if (timer != -1)
|
||||
{
|
||||
ess.getScheduler().cancelTask(timer);
|
||||
timer = ess.scheduleSyncDelayedTask(this, 1000);
|
||||
}
|
||||
@@ -54,28 +55,31 @@ public class TNTExplodeListener extends EntityListener implements Runnable
|
||||
{
|
||||
return;
|
||||
}
|
||||
try {
|
||||
final Set<ChunkPosition> set = new HashSet<ChunkPosition>(event.blockList().size());
|
||||
final Player[] players = ess.getServer().getOnlinePlayers();
|
||||
final List<ChunkPosition> blocksUnderPlayers = new ArrayList<ChunkPosition>(players.length);
|
||||
final Location loc = event.getLocation();
|
||||
for (Player player : players)
|
||||
try
|
||||
{
|
||||
if (player.getWorld().equals(loc.getWorld()))
|
||||
final Set<ChunkPosition> set = new HashSet<ChunkPosition>(event.blockList().size());
|
||||
final Player[] players = ess.getServer().getOnlinePlayers();
|
||||
final List<ChunkPosition> blocksUnderPlayers = new ArrayList<ChunkPosition>(players.length);
|
||||
final Location loc = event.getLocation();
|
||||
for (Player player : players)
|
||||
{
|
||||
blocksUnderPlayers.add(new ChunkPosition(player.getLocation().getBlockX(), player.getLocation().getBlockY() - 1, player.getLocation().getBlockZ()));
|
||||
if (player.getWorld().equals(loc.getWorld()))
|
||||
{
|
||||
blocksUnderPlayers.add(new ChunkPosition(player.getLocation().getBlockX(), player.getLocation().getBlockY() - 1, player.getLocation().getBlockZ()));
|
||||
}
|
||||
}
|
||||
for (Block block : event.blockList())
|
||||
{
|
||||
final ChunkPosition cp = new ChunkPosition(block.getX(), block.getY(), block.getZ());
|
||||
if (!blocksUnderPlayers.contains(cp))
|
||||
{
|
||||
set.add(cp);
|
||||
}
|
||||
}
|
||||
((CraftServer)ess.getServer()).getHandle().sendPacketNearby(loc.getX(), loc.getY(), loc.getZ(), 64.0, ((CraftWorld)loc.getWorld()).getHandle().worldProvider.dimension, new Packet60Explosion(loc.getX(), loc.getY(), loc.getZ(), 3.0F, set));
|
||||
}
|
||||
for (Block block : event.blockList())
|
||||
catch (Throwable ex)
|
||||
{
|
||||
final ChunkPosition cp = new ChunkPosition(block.getX(), block.getY(), block.getZ());
|
||||
if (!blocksUnderPlayers.contains(cp))
|
||||
{
|
||||
set.add(cp);
|
||||
}
|
||||
}
|
||||
((CraftServer)ess.getServer()).getHandle().sendPacketNearby(loc.getX(), loc.getY(), loc.getZ(), 64.0, ((CraftWorld)loc.getWorld()).getHandle().worldProvider.dimension, new Packet60Explosion(loc.getX(), loc.getY(), loc.getZ(), 3.0F, set));
|
||||
} catch (Throwable ex) {
|
||||
Logger.getLogger("Minecraft").log(Level.SEVERE, null, ex);
|
||||
}
|
||||
event.setCancelled(true);
|
||||
|
@@ -18,22 +18,22 @@ public class Trade
|
||||
private final transient Double money;
|
||||
private final transient ItemStack itemStack;
|
||||
private final transient IEssentials ess;
|
||||
|
||||
|
||||
public Trade(final String command, final IEssentials ess)
|
||||
{
|
||||
this(command, null, null, ess);
|
||||
}
|
||||
|
||||
|
||||
public Trade(final double money, final IEssentials ess)
|
||||
{
|
||||
this(null, money, null, ess);
|
||||
}
|
||||
|
||||
|
||||
public Trade(final ItemStack items, final IEssentials ess)
|
||||
{
|
||||
this(null, null, items, ess);
|
||||
}
|
||||
|
||||
|
||||
private Trade(final String command, final Double money, final ItemStack item, final IEssentials ess)
|
||||
{
|
||||
this.command = command;
|
||||
@@ -41,7 +41,7 @@ public class Trade
|
||||
this.itemStack = item;
|
||||
this.ess = ess;
|
||||
}
|
||||
|
||||
|
||||
public void isAffordableFor(final IUser user) throws ChargeException
|
||||
{
|
||||
final double mon = user.getMoney();
|
||||
@@ -52,13 +52,13 @@ public class Trade
|
||||
{
|
||||
throw new ChargeException(Util.i18n("notEnoughMoney"));
|
||||
}
|
||||
|
||||
|
||||
if (getItemStack() != null
|
||||
&& !InventoryWorkaround.containsItem(user.getInventory(), true, itemStack))
|
||||
{
|
||||
throw new ChargeException(Util.format("missingItems", getItemStack().getAmount(), getItemStack().getType().toString().toLowerCase().replace("_", " ")));
|
||||
}
|
||||
|
||||
|
||||
if (command != null && !command.isEmpty()
|
||||
&& !user.isAuthorized("essentials.nocommandcost.all")
|
||||
&& !user.isAuthorized("essentials.nocommandcost." + command)
|
||||
@@ -69,12 +69,12 @@ public class Trade
|
||||
throw new ChargeException(Util.i18n("notEnoughMoney"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void pay(final IUser user)
|
||||
{
|
||||
pay(user, true);
|
||||
}
|
||||
|
||||
|
||||
public boolean pay(final IUser user, final boolean dropItems)
|
||||
{
|
||||
boolean success = true;
|
||||
@@ -100,7 +100,7 @@ public class Trade
|
||||
}
|
||||
return success;
|
||||
}
|
||||
|
||||
|
||||
public void charge(final IUser user) throws ChargeException
|
||||
{
|
||||
if (getMoney() != null)
|
||||
@@ -134,18 +134,18 @@ public class Trade
|
||||
user.takeMoney(cost);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public Double getMoney()
|
||||
{
|
||||
return money;
|
||||
}
|
||||
|
||||
|
||||
public ItemStack getItemStack()
|
||||
{
|
||||
return itemStack;
|
||||
}
|
||||
private static FileWriter fw = null;
|
||||
|
||||
|
||||
public static void log(String type, String subtype, String event, String sender, Trade charge, String receiver, Trade pay, Location loc, IEssentials ess)
|
||||
{
|
||||
if (!ess.getSettings().isEcoLogEnabled())
|
||||
@@ -239,7 +239,7 @@ public class Trade
|
||||
Logger.getLogger("Minecraft").log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static void closeLog()
|
||||
{
|
||||
if (fw != null)
|
||||
|
@@ -12,7 +12,6 @@ import org.bukkit.entity.Player;
|
||||
|
||||
public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
{
|
||||
private boolean justPortaled = false;
|
||||
private CommandSender replyTo = null;
|
||||
private transient User teleportRequester;
|
||||
private transient boolean teleportRequestHere;
|
||||
@@ -156,16 +155,6 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
this.base = new OfflinePlayer(getName(), ess);
|
||||
}
|
||||
|
||||
public boolean getJustPortaled()
|
||||
{
|
||||
return justPortaled;
|
||||
}
|
||||
|
||||
public void setJustPortaled(final boolean value)
|
||||
{
|
||||
justPortaled = value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setReplyTo(final CommandSender user)
|
||||
{
|
||||
@@ -269,12 +258,21 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
|
||||
if (ess.getSettings().addPrefixSuffix())
|
||||
{
|
||||
final String prefix = ess.getPermissionsHandler().getPrefix(base).replace('&', '§').replace("{WORLDNAME}", this.getWorld().getName());
|
||||
final String suffix = ess.getPermissionsHandler().getSuffix(base).replace('&', '§').replace("{WORLDNAME}", this.getWorld().getName());
|
||||
|
||||
nickname.insert(0, prefix);
|
||||
nickname.append(suffix);
|
||||
if (suffix.length() < 2 || !suffix.substring(suffix.length() - 2, suffix.length() - 1).equals("§"))
|
||||
if (!ess.getSettings().disablePrefix())
|
||||
{
|
||||
final String prefix = ess.getPermissionsHandler().getPrefix(base).replace('&', '§').replace("{WORLDNAME}", this.getWorld().getName());
|
||||
nickname.insert(0, prefix);
|
||||
}
|
||||
if (!ess.getSettings().disableSuffix())
|
||||
{
|
||||
final String suffix = ess.getPermissionsHandler().getSuffix(base).replace('&', '§').replace("{WORLDNAME}", this.getWorld().getName());
|
||||
nickname.append(suffix);
|
||||
if (suffix.length() < 2 || !suffix.substring(suffix.length() - 2, suffix.length() - 1).equals("§"))
|
||||
{
|
||||
nickname.append("§f");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
nickname.append("§f");
|
||||
}
|
||||
@@ -286,16 +284,16 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
public void setDisplayNick(String name)
|
||||
{
|
||||
setDisplayName(name);
|
||||
//TODO: Maybe we need to limit nick length, or try use a string trim.
|
||||
if (name.length() <= 16)
|
||||
{
|
||||
setPlayerListName(name);
|
||||
}
|
||||
setPlayerListName(name.length() > 16 ? name.substring(0, 16) : name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDisplayName()
|
||||
{
|
||||
if (!(base instanceof OfflinePlayer) && ess.getSettings().changeDisplayName())
|
||||
{
|
||||
setDisplayNick(getNick());
|
||||
}
|
||||
return super.getDisplayName() == null ? super.getName() : super.getDisplayName();
|
||||
}
|
||||
|
||||
|
@@ -52,6 +52,7 @@ public abstract class UserData extends PlayerExtension implements IConf
|
||||
jailTimeout = _getJailTimeout();
|
||||
lastLogin = _getLastLogin();
|
||||
lastLogout = _getLastLogout();
|
||||
lastLoginAddress = _getLastLoginAddress();
|
||||
afk = getAfk();
|
||||
newplayer = getNew();
|
||||
geolocation = _getGeoLocation();
|
||||
@@ -668,6 +669,7 @@ public abstract class UserData extends PlayerExtension implements IConf
|
||||
config.setProperty("timestamps.login", time);
|
||||
config.save();
|
||||
}
|
||||
|
||||
private long lastLogout;
|
||||
|
||||
private long _getLastLogout()
|
||||
@@ -686,6 +688,26 @@ public abstract class UserData extends PlayerExtension implements IConf
|
||||
config.setProperty("timestamps.logout", time);
|
||||
config.save();
|
||||
}
|
||||
|
||||
private String lastLoginAddress;
|
||||
|
||||
private String _getLastLoginAddress()
|
||||
{
|
||||
return config.getString("ipAddress", "");
|
||||
}
|
||||
|
||||
public String getLastLoginAddress()
|
||||
{
|
||||
return lastLoginAddress;
|
||||
}
|
||||
|
||||
public void setLastLoginAddress(String address)
|
||||
{
|
||||
lastLoginAddress = address;
|
||||
config.setProperty("ipAddress", address);
|
||||
config.save();
|
||||
}
|
||||
|
||||
private boolean afk;
|
||||
|
||||
private boolean getAfk()
|
||||
|
@@ -52,7 +52,7 @@ public class UserMap implements Function<String, User>, IConf
|
||||
}
|
||||
catch (ComputationException ex)
|
||||
{
|
||||
Bukkit.getLogger().log(Level.INFO, "Failed to preload user "+name, ex);
|
||||
Bukkit.getLogger().log(Level.INFO, "Failed to preload user " + name, ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -21,28 +21,34 @@ public class Worth implements IConf
|
||||
{
|
||||
String itemname = itemStack.getType().toString().toLowerCase().replace("_", "");
|
||||
double result;
|
||||
result = config.getDouble("worth."+itemname+"."+itemStack.getDurability(), Double.NaN);
|
||||
if (Double.isNaN(result)) {
|
||||
result = config.getDouble("worth."+itemname+".0", Double.NaN);
|
||||
result = config.getDouble("worth." + itemname + "." + itemStack.getDurability(), Double.NaN);
|
||||
if (Double.isNaN(result))
|
||||
{
|
||||
result = config.getDouble("worth." + itemname + ".0", Double.NaN);
|
||||
}
|
||||
if (Double.isNaN(result)) {
|
||||
result = config.getDouble("worth."+itemname, Double.NaN);
|
||||
if (Double.isNaN(result))
|
||||
{
|
||||
result = config.getDouble("worth." + itemname, Double.NaN);
|
||||
}
|
||||
if (Double.isNaN(result)) {
|
||||
result = config.getDouble("worth-"+itemStack.getTypeId(), Double.NaN);
|
||||
if (Double.isNaN(result))
|
||||
{
|
||||
result = config.getDouble("worth-" + itemStack.getTypeId(), Double.NaN);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public void setPrice(ItemStack itemStack, double price)
|
||||
{
|
||||
if (itemStack.getType().getData() == null) {
|
||||
if (itemStack.getType().getData() == null)
|
||||
{
|
||||
config.setProperty("worth." + itemStack.getType().toString().toLowerCase().replace("_", ""), price);
|
||||
} else {
|
||||
// Bukkit-bug: getDurability still contains the correct value, while getData().getData() is 0.
|
||||
config.setProperty("worth." + itemStack.getType().toString().toLowerCase().replace("_", "")+"."+itemStack.getDurability(), price);
|
||||
}
|
||||
config.removeProperty("worth-"+itemStack.getTypeId());
|
||||
else
|
||||
{
|
||||
// Bukkit-bug: getDurability still contains the correct value, while getData().getData() is 0.
|
||||
config.setProperty("worth." + itemStack.getType().toString().toLowerCase().replace("_", "") + "." + itemStack.getDurability(), price);
|
||||
}
|
||||
config.removeProperty("worth-" + itemStack.getTypeId());
|
||||
config.save();
|
||||
}
|
||||
|
||||
@@ -50,5 +56,4 @@ public class Worth implements IConf
|
||||
{
|
||||
config.load();
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -23,6 +23,12 @@ public class Commandessentials extends EssentialsCommand
|
||||
@Override
|
||||
public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
if (args.length > 0 && args[0].equalsIgnoreCase("debug"))
|
||||
{
|
||||
ess.getSettings().setDebug(!ess.getSettings().isDebug());
|
||||
sender.sendMessage("Essentials " + ess.getDescription().getVersion() + " debug mode " + (ess.getSettings().isDebug() ? "enabled" : "disabled"));
|
||||
return;
|
||||
}
|
||||
final Map<String, Byte> noteMap = new HashMap<String, Byte>();
|
||||
noteMap.put("1F#", (byte)0x0);
|
||||
noteMap.put("1G", (byte)0x1);
|
||||
|
@@ -0,0 +1,44 @@
|
||||
package com.earth2me.essentials.commands;
|
||||
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.Util;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
||||
public class Commandgamemode extends EssentialsCommand
|
||||
{
|
||||
public Commandgamemode()
|
||||
{
|
||||
super("gamemode");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
Player player;
|
||||
if (args.length == 0)
|
||||
{
|
||||
if (sender instanceof Player)
|
||||
{
|
||||
player = ess.getUser(sender); }
|
||||
else
|
||||
{
|
||||
throw new NotEnoughArgumentsException();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
player = server.getPlayer(args[0]);
|
||||
if (player == null)
|
||||
{
|
||||
throw new Exception(Util.i18n("playerNotFound"));
|
||||
}
|
||||
}
|
||||
player.setGameMode(player.getGameMode() == GameMode.SURVIVAL ? GameMode.CREATIVE : GameMode.SURVIVAL);
|
||||
//TODO: add this to messages?
|
||||
sender.sendMessage(Util.format("gameMode", Util.i18n(player.getGameMode().toString().toLowerCase()), player.getDisplayName()));
|
||||
}
|
||||
}
|
@@ -31,7 +31,8 @@ public class Commandinvsee extends EssentialsCommand
|
||||
{
|
||||
invUser.getInventory().setContents(user.getSavedInventory());
|
||||
user.setSavedInventory(null);
|
||||
throw new Exception(Util.i18n("invRestored"));
|
||||
user.sendMessage(Util.i18n("invRestored"));
|
||||
throw new NoChargeException();
|
||||
}
|
||||
|
||||
if (user.getSavedInventory() == null)
|
||||
|
@@ -24,15 +24,13 @@ public class Commandme extends EssentialsCommand
|
||||
{
|
||||
throw new NotEnoughArgumentsException();
|
||||
}
|
||||
final StringBuilder message = new StringBuilder();
|
||||
message.append("* ");
|
||||
message.append(user.getDisplayName());
|
||||
message.append(' ');
|
||||
for (int i = 0; i < args.length; i++)
|
||||
|
||||
String message = getFinalArg(args, 0);
|
||||
if (user.isAuthorized("essentials.chat.color"))
|
||||
{
|
||||
message.append(args[i]);
|
||||
message.append(' ');
|
||||
message = message.replaceAll("&([0-9a-f])", "§$1");
|
||||
}
|
||||
ess.broadcastMessage(user, message.toString());
|
||||
|
||||
ess.broadcastMessage(user, Util.format("action", user.getDisplayName(), message));
|
||||
}
|
||||
}
|
||||
|
@@ -15,85 +15,51 @@ public class Commandnick extends EssentialsCommand
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(Server server, User user, String commandLabel, String[] args) throws Exception
|
||||
public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
if (args.length < 1)
|
||||
{
|
||||
throw new NotEnoughArgumentsException();
|
||||
}
|
||||
|
||||
if (!ess.getSettings().changeDisplayName()) {
|
||||
if (!ess.getSettings().changeDisplayName())
|
||||
{
|
||||
throw new Exception(Util.i18n("nickDisplayName"));
|
||||
}
|
||||
|
||||
if (args.length > 1)
|
||||
{
|
||||
if (!user.isAuthorized("essentials.nick.others"))
|
||||
{
|
||||
throw new Exception(Util.i18n("nickOthersPermission"));
|
||||
}
|
||||
|
||||
setOthersNickname(server, user, args);
|
||||
setNickname(server, getPlayer(server, args, 0), args[1]);
|
||||
user.sendMessage(Util.i18n("nickChanged"));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
String nick = args[0];
|
||||
if ("off".equalsIgnoreCase(nick) || user.getName().equalsIgnoreCase(nick))
|
||||
{
|
||||
user.setDisplayNick(user.getName());
|
||||
user.setNickname(null);
|
||||
user.sendMessage(Util.i18n("nickNoMore"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (nick.matches("[^a-zA-Z_0-9]"))
|
||||
{
|
||||
throw new Exception(Util.i18n("nickNamesAlpha"));
|
||||
}
|
||||
|
||||
for (Player p : server.getOnlinePlayers())
|
||||
{
|
||||
if (user == p)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
String dn = p.getDisplayName().toLowerCase();
|
||||
String n = p.getName().toLowerCase();
|
||||
String nk = nick.toLowerCase();
|
||||
if (nk.equals(dn) || nk.equals(n))
|
||||
{
|
||||
throw new Exception(Util.i18n("nickInUse"));
|
||||
}
|
||||
}
|
||||
|
||||
user.setDisplayNick(ess.getSettings().getNicknamePrefix() + nick);
|
||||
user.setNickname(nick);
|
||||
user.sendMessage(Util.format("nickSet", user.getDisplayName() + "§7."));
|
||||
setNickname(server, user, args[0]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
|
||||
public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
if (args.length < 2)
|
||||
{
|
||||
throw new NotEnoughArgumentsException();
|
||||
}
|
||||
|
||||
if (!ess.getSettings().changeDisplayName()) {
|
||||
sender.sendMessage(Util.i18n("nickDisplayName"));
|
||||
return;
|
||||
if (!ess.getSettings().changeDisplayName())
|
||||
{
|
||||
throw new Exception(Util.i18n("nickDisplayName"));
|
||||
}
|
||||
|
||||
setOthersNickname(server, sender, args);
|
||||
|
||||
setNickname(server, getPlayer(server, args, 0), args[1]);
|
||||
sender.sendMessage(Util.i18n("nickChanged"));
|
||||
}
|
||||
|
||||
private void setOthersNickname(Server server, CommandSender sender, String[] args) throws Exception
|
||||
private void setNickname(final Server server, final User target, final String nick) throws Exception
|
||||
{
|
||||
User target = getPlayer(server, args, 0);
|
||||
String nick = args[1];
|
||||
if ("off".equalsIgnoreCase(nick) || target.getName().equalsIgnoreCase(nick))
|
||||
if (nick.matches("[^a-zA-Z_0-9]"))
|
||||
{
|
||||
throw new Exception(Util.i18n("nickNamesAlpha"));
|
||||
}
|
||||
else if ("off".equalsIgnoreCase(nick) || target.getName().equalsIgnoreCase(nick))
|
||||
{
|
||||
target.setDisplayNick(target.getName());
|
||||
target.setNickname(null);
|
||||
@@ -101,10 +67,25 @@ public class Commandnick extends EssentialsCommand
|
||||
}
|
||||
else
|
||||
{
|
||||
target.setDisplayNick(ess.getSettings().getNicknamePrefix() + nick);
|
||||
target.setNickname(nick);
|
||||
final String formattedNick = nick.replace('&', '\u00a7').replace("\u00a7\u00a7", "&");
|
||||
for (Player p : server.getOnlinePlayers())
|
||||
{
|
||||
if (target.getBase() == p)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
String dn = p.getDisplayName().toLowerCase();
|
||||
String n = p.getName().toLowerCase();
|
||||
String nk = formattedNick.toLowerCase();
|
||||
if (nk.equals(dn) || nk.equals(n))
|
||||
{
|
||||
throw new Exception(Util.i18n("nickInUse"));
|
||||
}
|
||||
}
|
||||
|
||||
target.setDisplayNick(ess.getSettings().getNicknamePrefix() + formattedNick);
|
||||
target.setNickname(formattedNick);
|
||||
target.sendMessage(Util.format("nickSet", target.getDisplayName() + "§7."));
|
||||
}
|
||||
sender.sendMessage(Util.i18n("nickChanged"));
|
||||
}
|
||||
}
|
||||
|
@@ -22,13 +22,13 @@ public class Commandpowertool extends EssentialsCommand
|
||||
String command = getFinalArg(args, 0);
|
||||
|
||||
// check to see if this is a clear all command
|
||||
if(command != null && command.equalsIgnoreCase("clearall"))
|
||||
if(command != null && command.equalsIgnoreCase("c:"))
|
||||
{
|
||||
user.clearAllPowertools();
|
||||
user.sendMessage(Util.i18n("powerToolClearAll"));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
final ItemStack itemStack = user.getItemInHand();
|
||||
if (itemStack == null || itemStack.getType() == Material.AIR)
|
||||
{
|
||||
|
@@ -1,21 +0,0 @@
|
||||
package com.earth2me.essentials.commands;
|
||||
|
||||
import com.earth2me.essentials.Util;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
|
||||
public class Commandreloadall extends EssentialsCommand
|
||||
{
|
||||
public Commandreloadall()
|
||||
{
|
||||
super("reloadall");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
|
||||
{
|
||||
server.reload();
|
||||
sender.sendMessage(Util.i18n("reloadAllPlugins"));
|
||||
}
|
||||
}
|
@@ -29,7 +29,7 @@ public class Commandsell extends EssentialsCommand
|
||||
{
|
||||
is = user.getItemInHand();
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("inventory"))
|
||||
else if (args[0].equalsIgnoreCase("inventory") || args[0].equalsIgnoreCase("invent") || args[0].equalsIgnoreCase("all"))
|
||||
{
|
||||
for (ItemStack stack : user.getInventory().getContents())
|
||||
{
|
||||
@@ -103,28 +103,21 @@ public class Commandsell extends EssentialsCommand
|
||||
|
||||
|
||||
int max = 0;
|
||||
if (!isBulkSell)
|
||||
for (ItemStack s : user.getInventory().getContents())
|
||||
{
|
||||
for (ItemStack s : user.getInventory().getContents())
|
||||
if (s == null)
|
||||
{
|
||||
if (s == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (s.getTypeId() != is.getTypeId())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (s.getDurability() != is.getDurability())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
max += s.getAmount();
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
max += is.getAmount();
|
||||
if (s.getTypeId() != is.getTypeId())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (s.getDurability() != is.getDurability())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
max += s.getAmount();
|
||||
}
|
||||
|
||||
if (stack)
|
||||
@@ -140,20 +133,26 @@ public class Commandsell extends EssentialsCommand
|
||||
{
|
||||
amount -= amount % 64;
|
||||
}
|
||||
|
||||
if (amount > max || amount < 1)
|
||||
{
|
||||
user.sendMessage(Util.i18n("itemNotEnough1"));
|
||||
user.sendMessage(Util.i18n("itemNotEnough2"));
|
||||
throw new Exception(Util.i18n("itemNotEnough3"));
|
||||
if (!isBulkSell)
|
||||
{
|
||||
user.sendMessage(Util.i18n("itemNotEnough1"));
|
||||
user.sendMessage(Util.i18n("itemNotEnough2"));
|
||||
throw new Exception(Util.i18n("itemNotEnough3"));
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
final ItemStack ris = new ItemStack(is.getType(), amount, is.getDurability());
|
||||
InventoryWorkaround.removeItem(user.getInventory(), true, ris);
|
||||
user.updateInventory();
|
||||
Trade.log("Command", "Sell", "Item", user.getName(), new Trade(ris, ess), user.getName(), new Trade(worth*amount, ess), user.getLocation(), ess);
|
||||
Trade.log("Command", "Sell", "Item", user.getName(), new Trade(ris, ess), user.getName(), new Trade(worth * amount, ess), user.getLocation(), ess);
|
||||
user.giveMoney(worth * amount);
|
||||
user.sendMessage(Util.format("itemSold", Util.formatCurrency(worth * amount, ess), amount, Util.formatCurrency(worth, ess)));
|
||||
user.sendMessage(Util.format("itemSold", Util.formatCurrency(worth * amount, ess), amount, is.getType().toString().toLowerCase(), Util.formatCurrency(worth, ess)));
|
||||
logger.log(Level.INFO, Util.format("itemSoldConsole", user.getDisplayName(), is.getType().toString().toLowerCase(), Util.formatCurrency(worth * amount, ess), amount, Util.formatCurrency(worth, ess)));
|
||||
|
||||
}
|
||||
|
@@ -18,6 +18,6 @@ public class Commandsuicide extends EssentialsCommand
|
||||
user.setHealth(0);
|
||||
user.sendMessage(Util.i18n("suicideMessage"));
|
||||
ess.broadcastMessage(user,
|
||||
Util.format("suicideSuccess",user.getDisplayName()));
|
||||
Util.format("suicideSuccess", user.getDisplayName()));
|
||||
}
|
||||
}
|
||||
|
@@ -20,7 +20,7 @@ public class Commandunban extends EssentialsCommand
|
||||
{
|
||||
throw new NotEnoughArgumentsException();
|
||||
}
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
final User u = getPlayer(server, args, 0, true);
|
||||
@@ -29,7 +29,7 @@ public class Commandunban extends EssentialsCommand
|
||||
}
|
||||
catch (NoSuchFieldException e)
|
||||
{
|
||||
sender.sendMessage(Util.i18n("playerNotFound"));
|
||||
throw new Exception(Util.i18n("playerNotFound"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -8,6 +8,7 @@ import com.earth2me.essentials.Warps;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
|
||||
public class Commandwarp extends EssentialsCommand
|
||||
@@ -28,33 +29,7 @@ public class Commandwarp extends EssentialsCommand
|
||||
{
|
||||
throw new Exception(Util.i18n("warpListPermission"));
|
||||
}
|
||||
|
||||
Warps warps = ess.getWarps();
|
||||
if (warps.isEmpty())
|
||||
{
|
||||
throw new Exception(Util.i18n("noWarpsDefined"));
|
||||
}
|
||||
final List<String> warpNameList = new ArrayList<String>(warps.getWarpNames());
|
||||
final Iterator<String> iterator = warpNameList.iterator();
|
||||
while (iterator.hasNext())
|
||||
{
|
||||
final String warpName = iterator.next();
|
||||
if (ess.getSettings().getPerWarpPermission() && !user.isAuthorized("essentials.warp." + warpName))
|
||||
{
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
int page = 1;
|
||||
if (args.length > 0)
|
||||
{
|
||||
page = Integer.parseInt(args[0]);
|
||||
}
|
||||
if (warpNameList.size() > WARPS_PER_PAGE)
|
||||
{
|
||||
user.sendMessage(Util.format("warpsCount", warpNameList.size(), page, (int)Math.ceil(warpNameList.size() / (double)WARPS_PER_PAGE)));
|
||||
}
|
||||
final int warpPage = (page - 1) * WARPS_PER_PAGE;
|
||||
user.sendMessage(Util.joinList(warpNameList.subList(warpPage, warpPage+Math.min(warpNameList.size() - warpPage, WARPS_PER_PAGE))));
|
||||
warpList(user, args);
|
||||
throw new NoChargeException();
|
||||
}
|
||||
if (args.length > 0)
|
||||
@@ -75,6 +50,63 @@ public class Commandwarp extends EssentialsCommand
|
||||
}
|
||||
}
|
||||
|
||||
public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
|
||||
{
|
||||
if (args.length < 2 || args[0].matches("[0-9]+"))
|
||||
{
|
||||
warpList(null, args);
|
||||
throw new NoChargeException();
|
||||
}
|
||||
User otherUser = ess.getUser(server.getPlayer(args[1]));
|
||||
if (otherUser == null)
|
||||
{
|
||||
throw new Exception(Util.i18n("playerNotFound"));
|
||||
}
|
||||
warpUser(otherUser, args[0]);
|
||||
throw new NoChargeException();
|
||||
|
||||
}
|
||||
|
||||
private void warpList(User user, String[] args) throws Exception
|
||||
{
|
||||
Warps warps = ess.getWarps();
|
||||
if (warps.isEmpty())
|
||||
{
|
||||
throw new Exception(Util.i18n("noWarpsDefined"));
|
||||
}
|
||||
final List<String> warpNameList = new ArrayList<String>(warps.getWarpNames());
|
||||
|
||||
if (user != null)
|
||||
{
|
||||
final Iterator<String> iterator = warpNameList.iterator();
|
||||
while (iterator.hasNext())
|
||||
{
|
||||
final String warpName = iterator.next();
|
||||
if (ess.getSettings().getPerWarpPermission() && !user.isAuthorized("essentials.warp." + warpName))
|
||||
{
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
int page = 1;
|
||||
if (args.length > 0)
|
||||
{
|
||||
page = Integer.parseInt(args[0]);
|
||||
}
|
||||
|
||||
final int warpPage = (page - 1) * WARPS_PER_PAGE;
|
||||
final String warpList = Util.joinList(warpNameList.subList(warpPage, warpPage + Math.min(warpNameList.size() - warpPage, WARPS_PER_PAGE)));
|
||||
|
||||
if (warpNameList.size() > WARPS_PER_PAGE)
|
||||
{
|
||||
user.sendMessage(Util.format("warpsCount", warpNameList.size(), page, (int)Math.ceil(warpNameList.size() / (double)WARPS_PER_PAGE)));
|
||||
user.sendMessage(warpList);
|
||||
}
|
||||
else {
|
||||
user.sendMessage(Util.format("warps", warpList));
|
||||
}
|
||||
}
|
||||
|
||||
private void warpUser(User user, String name) throws Exception
|
||||
{
|
||||
Trade charge = new Trade(this.getName(), ess);
|
||||
|
@@ -53,17 +53,20 @@ public class Commandwhois extends EssentialsCommand
|
||||
sender.sendMessage("");
|
||||
sender.sendMessage(Util.format("whoisIs", u.getDisplayName(), u.getName()));
|
||||
sender.sendMessage(Util.format("whoisHealth", u.getHealth()));
|
||||
sender.sendMessage(Util.format("whoisOP", (u.isOp() ? Util.i18n("true") : Util.i18n("false"))));
|
||||
sender.sendMessage(Util.format("whoisGod", (u.isGodModeEnabled() ? Util.i18n("true") : Util.i18n("false"))));
|
||||
sender.sendMessage(Util.format("whoisGamemode", Util.i18n(u.getGameMode().toString().toLowerCase())));
|
||||
sender.sendMessage(Util.format("whoisLocation", u.getLocation().getWorld().getName(), u.getLocation().getBlockX(), u.getLocation().getBlockY(), u.getLocation().getBlockZ()));
|
||||
if (!ess.getSettings().isEcoDisabled())
|
||||
{
|
||||
sender.sendMessage(Util.format("whoisMoney", Util.formatCurrency(u.getMoney(), ess)));
|
||||
}
|
||||
sender.sendMessage(u.isAfk()
|
||||
? Util.i18n("whoisStatusAway")
|
||||
sender.sendMessage(u.isAfk()
|
||||
? Util.i18n("whoisStatusAway")
|
||||
: Util.i18n("whoisStatusAvailable"));
|
||||
sender.sendMessage(Util.format("whoisIPAddress", u.getAddress().getAddress().toString()));
|
||||
final String location = u.getGeoLocation();
|
||||
if (location != null
|
||||
if (location != null
|
||||
&& (sender instanceof Player ? ess.getUser(sender).isAuthorized("essentials.geoip.show") : true))
|
||||
{
|
||||
sender.sendMessage(Util.format("whoisGeoLocation", location));
|
||||
|
@@ -0,0 +1,69 @@
|
||||
package com.earth2me.essentials.perm;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import org.anjocaido.groupmanager.GroupManager;
|
||||
import org.anjocaido.groupmanager.permissions.AnjoPermissionsHandler;
|
||||
|
||||
|
||||
public class GroupManagerHandler implements IPermissionsHandler
|
||||
{
|
||||
private final transient GroupManager groupManager;
|
||||
|
||||
public GroupManagerHandler(final Plugin permissionsPlugin)
|
||||
{
|
||||
groupManager = ((GroupManager)permissionsPlugin);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getGroup(final Player base)
|
||||
{
|
||||
final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base);
|
||||
return handler.getGroup(base.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getGroups(final Player base)
|
||||
{
|
||||
final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base);
|
||||
return Arrays.asList(handler.getGroups(base.getName()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canBuild(final Player base, final String group)
|
||||
{
|
||||
final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base);
|
||||
return handler.canUserBuild(base.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean inGroup(final Player base, final String group)
|
||||
{
|
||||
AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base);
|
||||
return handler.inGroup(base.getName(), group);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(final Player base, final String node)
|
||||
{
|
||||
AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base);
|
||||
return handler.has(base, node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPrefix(final Player base)
|
||||
{
|
||||
AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base);
|
||||
return handler.getUserPrefix(base.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSuffix(final Player base)
|
||||
{
|
||||
AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(base);
|
||||
return handler.getUserSuffix(base.getName());
|
||||
}
|
||||
}
|
@@ -77,7 +77,7 @@ public class PermissionsExHandler implements IPermissionsHandler
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return user.getPrefix();
|
||||
return user.getPrefix(base.getWorld().getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -88,6 +88,7 @@ public class PermissionsExHandler implements IPermissionsHandler
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return user.getSuffix();
|
||||
|
||||
return user.getSuffix(base.getWorld().getName());
|
||||
}
|
||||
}
|
||||
|
@@ -111,17 +111,6 @@ public class PermissionsHandler implements IPermissionsHandler
|
||||
return;
|
||||
}
|
||||
|
||||
final Plugin permBukkitPlugin = pluginManager.getPlugin("PermissionsBukkit");
|
||||
if (permBukkitPlugin != null && permBukkitPlugin.isEnabled())
|
||||
{
|
||||
if (!(handler instanceof PermissionsBukkitHandler))
|
||||
{
|
||||
LOGGER.log(Level.INFO, "Essentials: Using PermissionsBukkit based permissions.");
|
||||
handler = new PermissionsBukkitHandler(permBukkitPlugin);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
final Plugin bPermPlugin = pluginManager.getPlugin("bPermissions");
|
||||
if (bPermPlugin != null && bPermPlugin.isEnabled())
|
||||
{
|
||||
@@ -132,6 +121,28 @@ public class PermissionsHandler implements IPermissionsHandler
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
final Plugin GMplugin = pluginManager.getPlugin("GroupManager");
|
||||
if (GMplugin != null && GMplugin.isEnabled())
|
||||
{
|
||||
if (!(handler instanceof GroupManagerHandler))
|
||||
{
|
||||
LOGGER.log(Level.INFO, "Essentials: Using GroupManager based permissions.");
|
||||
handler = new GroupManagerHandler(GMplugin);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
final Plugin permBukkitPlugin = pluginManager.getPlugin("PermissionsBukkit");
|
||||
if (permBukkitPlugin != null && permBukkitPlugin.isEnabled())
|
||||
{
|
||||
if (!(handler instanceof PermissionsBukkitHandler))
|
||||
{
|
||||
LOGGER.log(Level.INFO, "Essentials: Using PermissionsBukkit based permissions.");
|
||||
handler = new PermissionsBukkitHandler(permBukkitPlugin);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
final Plugin permPlugin = pluginManager.getPlugin("Permissions");
|
||||
if (permPlugin != null && permPlugin.isEnabled())
|
||||
|
@@ -35,10 +35,15 @@ public class SignProtection extends EssentialsSign
|
||||
protected boolean onSignCreate(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException, ChargeException
|
||||
{
|
||||
sign.setLine(3, "§4" + username);
|
||||
if (hasAdjacentBlock(sign.getBlock()) && isBlockProtected(sign.getBlock(), player, username, true) != SignProtectionState.NOT_ALLOWED)
|
||||
if (hasAdjacentBlock(sign.getBlock()))
|
||||
{
|
||||
sign.setLine(3, "§1" + username);
|
||||
return true;
|
||||
final SignProtectionState state = isBlockProtected(sign.getBlock(), player, username, true);
|
||||
if (state == SignProtectionState.NOSIGN || state == SignProtectionState.OWNER
|
||||
|| player.isAuthorized("essentials.signs.protection.override"))
|
||||
{
|
||||
sign.setLine(3, "§1" + username);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
player.sendMessage(Util.i18n("signProtectInvalidLocation"));
|
||||
return false;
|
||||
@@ -183,11 +188,6 @@ public class SignProtection extends EssentialsSign
|
||||
SignProtectionState retstate = SignProtectionState.NOSIGN;
|
||||
for (SignProtectionState state : signs.values())
|
||||
{
|
||||
|
||||
if (state == SignProtectionState.OWNER)
|
||||
{
|
||||
return state;
|
||||
}
|
||||
if (state == SignProtectionState.ALLOWED)
|
||||
{
|
||||
retstate = state;
|
||||
@@ -197,6 +197,16 @@ public class SignProtection extends EssentialsSign
|
||||
retstate = state;
|
||||
}
|
||||
}
|
||||
if (!secure || retstate == SignProtectionState.NOSIGN)
|
||||
{
|
||||
for (SignProtectionState state : signs.values())
|
||||
{
|
||||
if (state == SignProtectionState.OWNER)
|
||||
{
|
||||
return state;
|
||||
}
|
||||
}
|
||||
}
|
||||
return retstate;
|
||||
}
|
||||
|
||||
@@ -300,7 +310,7 @@ public class SignProtection extends EssentialsSign
|
||||
player.sendMessage(Util.format("noDestroyPermission", block.getType().toString().toLowerCase()));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean onBlockBreak(final Block block, final IEssentials ess)
|
||||
{
|
||||
@@ -324,7 +334,7 @@ public class SignProtection extends EssentialsSign
|
||||
|
||||
return state == SignProtectionState.NOSIGN;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean onBlockIgnite(final Block block, final IEssentials ess)
|
||||
{
|
||||
|
@@ -35,7 +35,7 @@ public class SignWarp extends EssentialsSign
|
||||
throw new SignException(ex.getMessage(), ex);
|
||||
}
|
||||
final String group = sign.getLine(2);
|
||||
if ("Everyone".equalsIgnoreCase(group))
|
||||
if ("Everyone".equalsIgnoreCase(group) || "Everybody".equalsIgnoreCase(group))
|
||||
{
|
||||
sign.setLine(2, "§2Everyone");
|
||||
}
|
||||
|
@@ -144,7 +144,6 @@ player-commands:
|
||||
- nick
|
||||
- pay
|
||||
- ping
|
||||
- portal
|
||||
- powertool
|
||||
- protect
|
||||
- r
|
||||
|
@@ -31,7 +31,6 @@ groups:
|
||||
- essentials.nick
|
||||
- essentials.pay
|
||||
- essentials.ping
|
||||
- essentials.portal
|
||||
- essentials.powertool
|
||||
- essentials.protect
|
||||
- essentials.sethome
|
||||
|
@@ -38,8 +38,7 @@ groups:
|
||||
essentials.msg: true
|
||||
essentials.nick: true
|
||||
essentials.pay: true
|
||||
essentials.ping: true
|
||||
essentials.portal: true
|
||||
essentials.ping: true
|
||||
essentials.powertool: true
|
||||
essentials.protect: true
|
||||
essentials.sethome: true
|
||||
|
@@ -37,7 +37,6 @@ groups:
|
||||
- essentials.nick
|
||||
- essentials.pay
|
||||
- essentials.ping
|
||||
- essentials.portal
|
||||
- essentials.powertool
|
||||
- essentials.protect
|
||||
- essentials.sethome
|
||||
|
@@ -2,371 +2,377 @@
|
||||
# Single quotes have to be doubled: ''
|
||||
# Translations start here
|
||||
# by:
|
||||
addedToAccount = \u00a7a{0} has been added to your account.
|
||||
addedToOthersAccount = \u00a7a{0} has been added to {1} account.
|
||||
alertBroke = broke:
|
||||
alertFormat = \u00a73[{0}] \u00a7f {1} \u00a76 {2} at: {3}
|
||||
alertPlaced = placed:
|
||||
alertUsed = used:
|
||||
action=* {0} {1}
|
||||
addedToAccount=\u00a7a{0} has been added to your account.
|
||||
addedToOthersAccount=\u00a7a{0} has been added to {1} account.
|
||||
alertBroke=broke:
|
||||
alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} at: {3}
|
||||
alertPlaced=placed:
|
||||
alertUsed=used:
|
||||
autoAfkKickReason=You have been kicked for idling more than {0} minutes.
|
||||
backAfterDeath = \u00a77Use the /back command to return to your death point.
|
||||
backUsageMsg = \u00a77Returning to previous location.
|
||||
backupFinished = Backup finished
|
||||
backupStarted = Backup started
|
||||
balance = \u00a77Balance: {0}
|
||||
balanceTop = \u00a77Top {0} balances
|
||||
banExempt = \u00a7cYou can not ban that player.
|
||||
banIpAddress = \u00a77Banned IP address
|
||||
bannedIpsFileError = Error reading banned-ips.txt
|
||||
bannedIpsFileNotFound = banned-ips.txt not found
|
||||
bannedPlayersFileError = Error reading banned-players.txt
|
||||
bannedPlayersFileNotFound = banned-players.txt not found
|
||||
bigTreeFailure = \u00a7cBig tree generation failure. Try again on grass or dirt.
|
||||
bigTreeSuccess = \u00a77Big tree spawned.
|
||||
broadcast = [\u00a7cBroadcast\u00a7f]\u00a7a {0}
|
||||
buildAlert = \u00a7cYou are not permitted to build
|
||||
bukkitFormatChanged = Bukkit version format changed. Version not checked.
|
||||
burnMsg = \u00a77You set {0} on fire for {1} seconds.
|
||||
canTalkAgain = \u00a77You can talk again
|
||||
cantFindGeoIpDB = Can''t find GeoIP database!
|
||||
cantReadGeoIpDB = Failed to read GeoIP database!
|
||||
cantSpawnItem = \u00a7cYou are not allowed to spawn the item {0}
|
||||
commandFailed = Command {0} failed:
|
||||
commandHelpFailedForPlugin = Error getting help for: {0}
|
||||
commandNotLoaded = \u00a7cCommand {0} is improperly loaded.
|
||||
compassBearing = \u00a77Bearing: {0} ({1} degrees).
|
||||
configFileMoveError = Failed to move config.yml to backup location.
|
||||
configFileRenameError = Failed to rename temp file to config.yml
|
||||
connectedPlayers = Connected players:
|
||||
connectionFailed = Failed to open connection.
|
||||
cooldownWithMessage = \u00a7cCooldown: {0}
|
||||
corruptNodeInConfig = \u00a74Notice: Your configuration file has a corrupt {0} node.
|
||||
couldNotFindTemplate = Could not find template {0}
|
||||
creatingConfigFromTemplate = Creating config from template: {0}
|
||||
creatingEmptyConfig = Creating empty config: {0}
|
||||
creatingPortal = Creating portal at {0},{1},{2}.
|
||||
day = day
|
||||
days = days
|
||||
defaultBanReason = The Ban Hammer has spoken!
|
||||
deleteFileError = Could not delete file: {0}
|
||||
deleteHome = \u00a77Home {0} has been removed.
|
||||
deleteJail = \u00a77Jail {0} has been removed.
|
||||
deleteWarp = \u00a77Warp {0} has been removed.
|
||||
deniedAccessCommand = {0} was denied access to command.
|
||||
dependancyDownloaded = [Essentials] Dependancy {0} downloaded successfully.
|
||||
dependancyException = [Essentials] An error occurred when trying to download a dependacy
|
||||
dependancyNotFound = [Essentials] A required dependancy was not found, downloading now.
|
||||
depth = \u00a77You are at sea level.
|
||||
depthAboveSea = \u00a77You are {0} block(s) above sea level.
|
||||
depthBelowSea = \u00a77You are {0} block(s) below sea level.
|
||||
destinationNotSet = Destination not set
|
||||
disableUnlimited = \u00a77Disabled unlimited placing of {0} for {1}.
|
||||
disabled = disabled
|
||||
dontMoveMessage = \u00a77Teleportation will commence in {0}. Don''t move.
|
||||
downloadingGeoIp = Downloading GeoIP database ... this might take a while (country: 0.6 MB, city: 20MB)
|
||||
duplicatedUserdata = Duplicated userdata: {0} and {1}
|
||||
enableUnlimited = \u00a77Giving unlimited amount of {0} to {1}.
|
||||
enabled = enabled
|
||||
errorCallingCommand = Error calling command /{0}
|
||||
errorWithMessage = \u00a7cError: {0}
|
||||
essentialsReload = \u00a77Essentials Reloaded {0}
|
||||
extinguish = \u00a77You extinguished yourself.
|
||||
extinguishOthers = \u00a77You extinguished {0}.
|
||||
failedToCloseConfig = Failed to close config {0}
|
||||
failedToCreateConfig = Failed to create config {0}
|
||||
failedToWriteConfig = Failed to write config {0}
|
||||
fileRenameError = Renaming file {0} failed
|
||||
foreverAlone = \u00a7cYou have nobody to whom you can reply.
|
||||
freedMemory = Freed {0} MB.
|
||||
gcchunks = chunks,
|
||||
gcentities = entities
|
||||
gcfree = Free memory: {0} MB
|
||||
gcmax = Maximum memory: {0} MB
|
||||
gctotal = Allocated memory: {0} MB
|
||||
generatingPortal = \u00a77Generating an exit portal.
|
||||
geoIpUrlEmpty = GeoIP download url is empty.
|
||||
geoIpUrlInvalid = GeoIP download url is invalid.
|
||||
geoipJoinFormat = Player {0} comes from {1}
|
||||
godDisabledFor = disabled for {0}
|
||||
godEnabledFor = enabled for {0}
|
||||
godMode = \u00a77God mode {0}.
|
||||
haveBeenReleased = \u00a77You have been released
|
||||
heal = \u00a77You have been healed.
|
||||
healOther = \u00a77Healed {0}.
|
||||
helpConsole = To view help from the console, type ?.
|
||||
helpOp = \u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
|
||||
helpPages = Page \u00a7c{0}\u00a7f of \u00a7c{1}\u00a7f:
|
||||
holeInFloor = Hole in floor
|
||||
homeSet = \u00a77Home set.
|
||||
homeSetToBed = \u00a77Your home is now set to this bed.
|
||||
homes = Homes: {0}
|
||||
hour = hour
|
||||
hours = hours
|
||||
ignorePlayer = You ignore player {0} from now on.
|
||||
illegalDate = Illegal date format.
|
||||
infoChapter = Select chapter:
|
||||
infoChapterPages = Chapter {0}, page \u00a7c{1}\u00a7f of \u00a7c{2}\u00a7f:
|
||||
infoFileDoesNotExist = File info.txt does not exist. Creating one for you.
|
||||
infoPages = Page \u00a7c{0}\u00a7f of \u00a7c{1}\u00a7f:
|
||||
infoUnknownChapter = Unknown chapter.
|
||||
invBigger = The other users inventory is bigger than yours.
|
||||
invRestored = Your inventory has been restored.
|
||||
invSee = You see the inventory of {0}.
|
||||
invSeeHelp = Use /invsee to restore your inventory.
|
||||
invalidCharge = \u00a7cInvalid charge.
|
||||
invalidMob = Invalid mob type.
|
||||
invalidServer = Invalid server!
|
||||
invalidSignLine = Line {0} on sign is invalid.
|
||||
invalidWorld = \u00a7cInvalid world.
|
||||
inventoryCleared = \u00a77Inventory Cleared.
|
||||
inventoryClearedOthers = \u00a77Inventory of \u00a7c{0}\u00a77 cleared.
|
||||
is = is
|
||||
itemCannotBeSold = That item cannot be sold to the server.
|
||||
itemMustBeStacked = Item must be traded in stacks. A quantity of 2s would be two stacks, etc.
|
||||
itemNotEnough1 = \u00a7cYou do not have enough of that item to sell.
|
||||
itemNotEnough2 = \u00a77If you meant to sell all of your items of that type, use /sell itemname
|
||||
itemNotEnough3 = \u00a77/sell itemname -1 will sell all but one item, etc.
|
||||
itemSellAir = You really tried to sell Air? Put an item in your hand.
|
||||
itemSold = \u00a77Sold for \u00a7c {0} \u00a77 ({1} items at {2} each)
|
||||
itemSoldConsole = {0} sold {1} for \u00a77 {2} \u00a77 ({3} items at {4} each)
|
||||
itemSpawn = \u00a77Giving {0} of {1}
|
||||
itemsCsvNotLoaded = Could not load items.csv.
|
||||
jailAlreadyIncarcerated = \u00a7cPerson is already in jail: {0}
|
||||
jailMessage = \u00a7cYou do the crime, you do the time.
|
||||
jailNotExist = That jail does not exist.
|
||||
jailReleased = \u00a77Player \u00a7e{0}\u00a77 unjailed.
|
||||
jailReleasedPlayerNotify = \u00a77You have been released!
|
||||
jailSentenceExtended = Jail time extend to: {0)
|
||||
jailSet = \u00a77Jail {0} has been set
|
||||
jumpError = That would hurt your computer''s brain.
|
||||
kickDefault = Kicked from server
|
||||
kickExempt = \u00a7cYou can not kick that person.
|
||||
kill = \u00a77Killed {0}.
|
||||
kitError = \u00a7cThere are no valid kits.
|
||||
kitError2 = \u00a7cThat kit does not exist or is improperly defined.
|
||||
kitErrorHelp = \u00a7cPerhaps an item is missing a quantity in the configuration?
|
||||
kitGive = \u00a77Giving kit {0}.
|
||||
kitInvFull = \u00a7cYour inventory was full, placing kit on the floor
|
||||
kitTimed = \u00a7cYou can''t use that kit again for another {0}.
|
||||
kits = \u00a77Kits: {0}
|
||||
lightningSmited = \u00a77You have just been smited
|
||||
lightningUse = \u00a77Smiting {0}
|
||||
loadWarpError = Failed to load warp {0}
|
||||
loadinfo = Loaded {0} build {1} by: {2}
|
||||
localFormat = Local: <{0}> {1}
|
||||
mailClear = \u00a7cTo mark your mail as read, type /mail clear
|
||||
mailCleared = \u00a77Mail Cleared!
|
||||
mailSent = \u00a77Mail sent!
|
||||
markMailAsRead = \u00a7cTo mark your mail as read, type /mail clear
|
||||
markedAsAway = \u00a77You are now marked as away.
|
||||
markedAsNotAway = \u00a77You are no longer marked as away.
|
||||
backAfterDeath=\u00a77Use the /back command to return to your death point.
|
||||
backUsageMsg=\u00a77Returning to previous location.
|
||||
backupFinished=Backup finished
|
||||
backupStarted=Backup started
|
||||
balance=\u00a77Balance: {0}
|
||||
balanceTop=\u00a77Top {0} balances
|
||||
banExempt=\u00a7cYou can not ban that player.
|
||||
banIpAddress=\u00a77Banned IP address
|
||||
bannedIpsFileError=Error reading banned-ips.txt
|
||||
bannedIpsFileNotFound=banned-ips.txt not found
|
||||
bannedPlayersFileError=Error reading banned-players.txt
|
||||
bannedPlayersFileNotFound=banned-players.txt not found
|
||||
bigTreeFailure=\u00a7cBig tree generation failure. Try again on grass or dirt.
|
||||
bigTreeSuccess= \u00a77Big tree spawned.
|
||||
broadcast=[\u00a7cBroadcast\u00a7f]\u00a7a {0}
|
||||
buildAlert=\u00a7cYou are not permitted to build
|
||||
bukkitFormatChanged=Bukkit version format changed. Version not checked.
|
||||
burnMsg=\u00a77You set {0} on fire for {1} seconds.
|
||||
canTalkAgain=\u00a77You can talk again
|
||||
cantFindGeoIpDB=Can''t find GeoIP database!
|
||||
cantReadGeoIpDB=Failed to read GeoIP database!
|
||||
cantSpawnItem=\u00a7cYou are not allowed to spawn the item {0}
|
||||
commandFailed=Command {0} failed:
|
||||
commandHelpFailedForPlugin=Error getting help for: {0}
|
||||
commandNotLoaded=\u00a7cCommand {0} is improperly loaded.
|
||||
compassBearing=\u00a77Bearing: {0} ({1} degrees).
|
||||
configFileMoveError=Failed to move config.yml to backup location.
|
||||
configFileRenameError=Failed to rename temp file to config.yml
|
||||
connectedPlayers=Connected players:
|
||||
connectionFailed=Failed to open connection.
|
||||
cooldownWithMessage=\u00a7cCooldown: {0}
|
||||
corruptNodeInConfig=\u00a74Notice: Your configuration file has a corrupt {0} node.
|
||||
couldNotFindTemplate=Could not find template {0}
|
||||
creatingConfigFromTemplate=Creating config from template: {0}
|
||||
creatingEmptyConfig=Creating empty config: {0}
|
||||
creative=creative
|
||||
day=day
|
||||
days=days
|
||||
defaultBanReason=The Ban Hammer has spoken!
|
||||
deleteFileError=Could not delete file: {0}
|
||||
deleteHome=\u00a77Home {0} has been removed.
|
||||
deleteJail=\u00a77Jail {0} has been removed.
|
||||
deleteWarp=\u00a77Warp {0} has been removed.
|
||||
deniedAccessCommand={0} was denied access to command.
|
||||
dependancyDownloaded=[Essentials] Dependancy {0} downloaded successfully.
|
||||
dependancyException=[Essentials] An error occurred when trying to download a dependacy
|
||||
dependancyNotFound=[Essentials] A required dependancy was not found, downloading now.
|
||||
depth=\u00a77You are at sea level.
|
||||
depthAboveSea=\u00a77You are {0} block(s) above sea level.
|
||||
depthBelowSea=\u00a77You are {0} block(s) below sea level.
|
||||
destinationNotSet=Destination not set
|
||||
disableUnlimited=\u00a77Disabled unlimited placing of {0} for {1}.
|
||||
disabled=disabled
|
||||
dontMoveMessage=\u00a77Teleportation will commence in {0}. Don''t move.
|
||||
downloadingGeoIp=Downloading GeoIP database ... this might take a while (country: 0.6 MB, city: 20MB)
|
||||
duplicatedUserdata=Duplicated userdata: {0} and {1}
|
||||
enableUnlimited=\u00a77Giving unlimited amount of {0} to {1}.
|
||||
enabled=enabled
|
||||
errorCallingCommand=Error calling command /{0}
|
||||
errorWithMessage=\u00a7cError: {0}
|
||||
essentialsReload=\u00a77Essentials Reloaded {0}
|
||||
extinguish=\u00a77You extinguished yourself.
|
||||
extinguishOthers=\u00a77You extinguished {0}.
|
||||
failedToCloseConfig=Failed to close config {0}
|
||||
failedToCreateConfig=Failed to create config {0}
|
||||
failedToWriteConfig=Failed to write config {0}
|
||||
false=false
|
||||
fileRenameError=Renaming file {0} failed
|
||||
foreverAlone=\u00a7cYou have nobody to whom you can reply.
|
||||
freedMemory=Freed {0} MB.
|
||||
gameMode=\u00a77Set game mode {0} for {1}.
|
||||
gcchunks= chunks,
|
||||
gcentities= entities
|
||||
gcfree=Free memory: {0} MB
|
||||
gcmax=Maximum memory: {0} MB
|
||||
gctotal=Allocated memory: {0} MB
|
||||
geoIpUrlEmpty=GeoIP download url is empty.
|
||||
geoIpUrlInvalid=GeoIP download url is invalid.
|
||||
geoipJoinFormat=Player {0} comes from {1}
|
||||
godDisabledFor=disabled for {0}
|
||||
godEnabledFor=enabled for {0}
|
||||
godMode=\u00a77God mode {0}.
|
||||
haveBeenReleased=\u00a77You have been released
|
||||
heal=\u00a77You have been healed.
|
||||
healOther=\u00a77Healed {0}.
|
||||
helpConsole=To view help from the console, type ?.
|
||||
helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
|
||||
helpPages=Page \u00a7c{0}\u00a7f of \u00a7c{1}\u00a7f:
|
||||
holeInFloor=Hole in floor
|
||||
homeSet=\u00a77Home set.
|
||||
homeSetToBed=\u00a77Your home is now set to this bed.
|
||||
homes=Homes: {0}
|
||||
hour=hour
|
||||
hours=hours
|
||||
ignorePlayer=You ignore player {0} from now on.
|
||||
illegalDate=Illegal date format.
|
||||
infoChapter=Select chapter:
|
||||
infoChapterPages=Chapter {0}, page \u00a7c{1}\u00a7f of \u00a7c{2}\u00a7f:
|
||||
infoFileDoesNotExist=File info.txt does not exist. Creating one for you.
|
||||
infoPages=Page \u00a7c{0}\u00a7f of \u00a7c{1}\u00a7f:
|
||||
infoUnknownChapter=Unknown chapter.
|
||||
invBigger=The other users inventory is bigger than yours.
|
||||
invRestored=Your inventory has been restored.
|
||||
invSee=You see the inventory of {0}.
|
||||
invSeeHelp=Use /invsee to restore your inventory.
|
||||
invalidCharge=\u00a7cInvalid charge.
|
||||
invalidMob=Invalid mob type.
|
||||
invalidServer=Invalid server!
|
||||
invalidSignLine=Line {0} on sign is invalid.
|
||||
invalidWorld=\u00a7cInvalid world.
|
||||
inventoryCleared=\u00a77Inventory Cleared.
|
||||
inventoryClearedOthers=\u00a77Inventory of \u00a7c{0}\u00a77 cleared.
|
||||
is=is
|
||||
itemCannotBeSold=That item cannot be sold to the server.
|
||||
itemMustBeStacked=Item must be traded in stacks. A quantity of 2s would be two stacks, etc.
|
||||
itemNotEnough1=\u00a7cYou do not have enough of that item to sell.
|
||||
itemNotEnough2=\u00a77If you meant to sell all of your items of that type, use /sell itemname
|
||||
itemNotEnough3=\u00a77/sell itemname -1 will sell all but one item, etc.
|
||||
itemSellAir=You really tried to sell Air? Put an item in your hand.
|
||||
itemSold=\u00a77Sold for \u00a7c{0} \u00a77({1} {2} at {3} each)
|
||||
itemSoldConsole={0} sold {1} for \u00a77{2} \u00a77({3} items at {4} each)
|
||||
itemSpawn=\u00a77Giving {0} of {1}
|
||||
itemsCsvNotLoaded=Could not load items.csv.
|
||||
jailAlreadyIncarcerated=\u00a7cPerson is already in jail: {0}
|
||||
jailMessage=\u00a7cYou do the crime, you do the time.
|
||||
jailNotExist=That jail does not exist.
|
||||
jailReleased=\u00a77Player \u00a7e{0}\u00a77 unjailed.
|
||||
jailReleasedPlayerNotify=\u00a77You have been released!
|
||||
jailSentenceExtended=Jail time extend to: {0)
|
||||
jailSet=\u00a77Jail {0} has been set
|
||||
jumpError=That would hurt your computer''s brain.
|
||||
kickDefault=Kicked from server
|
||||
kickExempt=\u00a7cYou can not kick that person.
|
||||
kill=\u00a77Killed {0}.
|
||||
kitError=\u00a7cThere are no valid kits.
|
||||
kitError2=\u00a7cThat kit does not exist or is improperly defined.
|
||||
kitErrorHelp=\u00a7cPerhaps an item is missing a quantity in the configuration?
|
||||
kitGive=\u00a77Giving kit {0}.
|
||||
kitInvFull=\u00a7cYour inventory was full, placing kit on the floor
|
||||
kitTimed=\u00a7cYou can''t use that kit again for another {0}.
|
||||
kits=\u00a77Kits: {0}
|
||||
lightningSmited=\u00a77You have just been smited
|
||||
lightningUse=\u00a77Smiting {0}
|
||||
loadWarpError=Failed to load warp {0}
|
||||
loadinfo=Loaded {0} build {1} by: {2}
|
||||
localFormat=Local: <{0}> {1}
|
||||
mailClear=\u00a7cTo mark your mail as read, type /mail clear
|
||||
mailCleared=\u00a77Mail Cleared!
|
||||
mailSent=\u00a77Mail sent!
|
||||
markMailAsRead=\u00a7cTo mark your mail as read, type /mail clear
|
||||
markedAsAway=\u00a77You are now marked as away.
|
||||
markedAsNotAway=\u00a77You are no longer marked as away.
|
||||
maxHomes=You cannot set more than {0} homes.
|
||||
mayNotJail = \u00a7cYou may not jail that person
|
||||
me = me
|
||||
minute = minute
|
||||
minutes = minutes
|
||||
missingItems = You do not have {0}x {1}.
|
||||
missingPrefixSuffix = Missing a prefix or suffix for {0}
|
||||
mobsAvailable = \u00a77Mobs: {0}
|
||||
mobSpawnError = Error while changing mob spawner.
|
||||
mobSpawnLimit = Mob quantity limited to server limit
|
||||
mobSpawnTarget = Target block must be a mob spawner.
|
||||
moneyRecievedFrom = \u00a7a{0} has been received from {1}
|
||||
moneySentTo = \u00a7a{0} has been sent to {1}
|
||||
moneyTaken = {0} taken from your bank account.
|
||||
month = month
|
||||
months = months
|
||||
moreThanZero = Quantities must be greater than 0.
|
||||
msgFormat = \u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
|
||||
muteExempt = \u00a7cYou may not mute that player.
|
||||
mutedPlayer = Player {0} muted.
|
||||
mutedPlayerFor = Player {0} muted for {1}.
|
||||
mutedUserSpeaks = {0} tried to speak, but is muted.
|
||||
needTpohere = You need access to /tpohere to teleport other players.
|
||||
negativeBalanceError = User is not allowed to have a negative balance.
|
||||
nickChanged = Nickname changed.
|
||||
mayNotJail=\u00a7cYou may not jail that person
|
||||
me=me
|
||||
minute=minute
|
||||
minutes=minutes
|
||||
missingItems=You do not have {0}x {1}.
|
||||
missingPrefixSuffix=Missing a prefix or suffix for {0}
|
||||
mobSpawnError=Error while changing mob spawner.
|
||||
mobSpawnLimit=Mob quantity limited to server limit
|
||||
mobSpawnTarget=Target block must be a mob spawner.
|
||||
mobsAvailable=\u00a77Mobs: {0}
|
||||
moneyRecievedFrom=\u00a7a{0} has been received from {1}
|
||||
moneySentTo=\u00a7a{0} has been sent to {1}
|
||||
moneyTaken={0} taken from your bank account.
|
||||
month=month
|
||||
months=months
|
||||
moreThanZero=Quantities must be greater than 0.
|
||||
msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
|
||||
muteExempt=\u00a7cYou may not mute that player.
|
||||
mutedPlayer=Player {0} muted.
|
||||
mutedPlayerFor=Player {0} muted for {1}.
|
||||
mutedUserSpeaks={0} tried to speak, but is muted.
|
||||
needTpohere=You need access to /tpohere to teleport other players.
|
||||
negativeBalanceError=User is not allowed to have a negative balance.
|
||||
nickChanged=Nickname changed.
|
||||
nickDisplayName=\u00a77You have to enable change-displayname in Essentials config.
|
||||
nickInUse = \u00a7cThat name is already in use.
|
||||
nickNamesAlpha = \u00a7cNicknames must be alphanumeric.
|
||||
nickNoMore = \u00a77You no longer have a nickname.
|
||||
nickOthersPermission = \u00a7cYou do not have permission to change the nickname of others
|
||||
nickSet = \u00a77Your nickname is now \u00a7c{0}
|
||||
noAccessCommand = \u00a7cYou do not have access to that command.
|
||||
noAccessPermission = \u00a7cYou do not have permission to access that {0}.
|
||||
noDestroyPermission = \u00a7cYou do not have permission to destroy that {0}.
|
||||
noHelpFound = \u00a7cNo matching commands.
|
||||
noHomeSet = You have not set a home.
|
||||
noHomeSetPlayer = Player has not set a home.
|
||||
noKitPermission = \u00a7cYou need the \u00a7c{0}\u00a7c permission to use that kit.
|
||||
noKits = \u00a77There are no kits available yet
|
||||
noMail = You do not have any mail
|
||||
noMailSendPerm = \u00a7cYou do not have the \u00a7fessentials.mail.send\u00a7c permission.
|
||||
noMotd = \u00a7cThere is no message of the day.
|
||||
noNewMail = \u00a77You have no new mail.
|
||||
noPendingRequest = You do not have a pending request.
|
||||
noPowerTools = You have no power tools assigned.
|
||||
noPlacePermission = \u00a7cYou do not have permission to place a block near that sign.
|
||||
noRules = \u00a7cThere are no rules specified yet.
|
||||
noWarpsDefined = No warps defined
|
||||
none = none
|
||||
notAllowedToQuestion = \u00a7cYou are not authorized to use question.
|
||||
notAllowedToShout = \u00a7cYou are not authorized to shout.
|
||||
notEnoughMoney = You do not have sufficient funds.
|
||||
notRecommendedBukkit = Bukkit version is not the recommended build for Essentials.
|
||||
notSupportedYet = Not supported yet.
|
||||
now = now
|
||||
numberRequired = A number goes there, silly.
|
||||
onlyDayNight = /time only supports day/night.
|
||||
onlyPlayers = Only in-game players can use {0}.
|
||||
onlySunStorm = /weather only supports sun/storm.
|
||||
pTimeCurrent = \u00a7e{0}''s\u00a7f time is {1}.
|
||||
pTimeCurrentFixed = \u00a7e{0}''s\u00a7f time is fixed to {1}.
|
||||
pTimeNormal = \u00a7e{0}''s\u00a7f time is normal and matches the server.
|
||||
pTimeOthersPermission = \u00a7cYou are not authorized to set other players'' time.
|
||||
pTimePlayers = These players have their own time:
|
||||
pTimeReset = Player time has been reset for: \u00a7e{0}
|
||||
pTimeSet = Player time is set to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
pTimeSetFixed = Player time is fixed to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
parseError = Error parsing {0} on line {1}
|
||||
pendingTeleportCancelled = \u00a7cPending teleportation request cancelled.
|
||||
permissionsError = Missing Permissions/GroupManager; chat prefixes/suffixes will be disabled.
|
||||
playerBanned = \u00a7cPlayer {0} banned {1} for {2}
|
||||
playerInJail = \u00a7cPlayer is already in jail {0}.
|
||||
playerJailed = \u00a77Player {0} jailed.
|
||||
playerJailedFor = \u00a77Player {0} jailed for {1}.
|
||||
playerKicked = \u00a7cPlayer {0} kicked {1} for {2}
|
||||
playerMuted = \u00a77You have been muted
|
||||
playerMutedFor = \u00a77You have been muted for {0}
|
||||
playerNeverOnServer = \u00a7cPlayer {0} was never on this server.
|
||||
playerNotFound = \u00a7cPlayer not found.
|
||||
playerUnmuted = \u00a77You have been unmuted
|
||||
pong = Pong!
|
||||
possibleWorlds = \u00a77Possible worlds are the numbers 0 through {0}.
|
||||
powerToolAir = Command can''t be attached to air.
|
||||
powerToolAlreadySet = Command \u00a7c{0}\u00a7f is already assigned to {1}.
|
||||
powerToolAttach = \u00a7c{0}\u00a7f command assigned to {1}.
|
||||
powerToolClearAll = All powertool commands have been cleared.
|
||||
powerToolList = {1} has the following commands: \u00a7c{0}\u00a7f.
|
||||
powerToolListEmpty = {0} has no commands assigned.
|
||||
powerToolNoSuchCommandAssigned = Command \u00a7c{0}\u00a7f has not been assigned to {1}.
|
||||
powerToolRemove = Command \u00a7c{0}\u00a7f removed from {1}.
|
||||
powerToolRemoveAll = All commands removed from {0}.
|
||||
powerToolsEnabled = All of your power tools have been enabled.
|
||||
powerToolsDisabled = All of your power tools have been disabled.
|
||||
protectionOwner = \u00a76[EssentialsProtect] Protection owner: {0}
|
||||
questionFormat = \u00a77[Question]\u00a7f {0}
|
||||
reloadAllPlugins = \u00a77Reloaded all plugins.
|
||||
repair = You have successfully repaired your: \u00a7e{0}.
|
||||
repairAlreadyFixed = \u00a77This item does not need repairing.
|
||||
repairInvalidType = \u00a7cThis item cannot be repaired.
|
||||
repairNone = There were no items that needing repairing.
|
||||
requestAccepted = \u00a77Teleport request accepted.
|
||||
requestAcceptedFrom = \u00a77{0} accepted your teleport request.
|
||||
requestDenied = \u00a77Teleport request denied.
|
||||
requestDeniedFrom = \u00a77{0} denied your teleport request.
|
||||
requestSent = \u00a77Request sent to {0}\u00a77.
|
||||
returnPlayerToJailError = Error occurred when trying to return player to jail.
|
||||
second = second
|
||||
seconds = seconds
|
||||
seenOffline = Player {0} is offline since {1}
|
||||
seenOnline = Player {0} is online since {1}
|
||||
serverFull = Server is full
|
||||
setSpawner = Changed spawner type to {0}
|
||||
sheepMalformedColor = Malformed color.
|
||||
shoutFormat = \u00a77[Shout]\u00a7f {0}
|
||||
signFormatFail = \u00a74[{0}]
|
||||
signFormatSuccess = \u00a71[{0}]
|
||||
signFormatTemplate = [{0}]
|
||||
signProtectInvalidLocation = \u00a74You are not allowed to create sign here.
|
||||
similarWarpExist = A warp with a similar name already exists.
|
||||
slimeMalformedSize = Malformed size.
|
||||
soloMob = That mob likes to be alone
|
||||
spawnSet = \u00a77Spawn location set for group {0}.
|
||||
spawned = spawned
|
||||
suicideMessage = \u00a77Goodbye Cruel World...
|
||||
suicideSuccess = \u00a77{0} took their own life
|
||||
takenFromAccount = \u00a7c{0} has been taken from your account.
|
||||
takenFromOthersAccount = \u00a7c{0} has been taken from {1} account.
|
||||
teleportAAll = \u00a77Teleporting request sent to all players...
|
||||
teleportAll = \u00a77Teleporting all players...
|
||||
teleportAtoB = \u00a77{0}\u00a77 teleported you to {1}\u00a77.
|
||||
teleportDisabled = {0} has teleportation disabled.
|
||||
teleportHereRequest = \u00a7c{0}\u00a7c has requested that you teleport to them.
|
||||
teleportNewPlayerError = Failed to teleport new player
|
||||
teleportRequest = \u00a7c{0}\u00a7c has requested to teleport to you.
|
||||
teleportTop = \u00a77Teleporting to top.
|
||||
teleportationCommencing = \u00a77Teleportation commencing...
|
||||
teleportationDisabled = \u00a77Teleportation disabled.
|
||||
teleportationEnabled = \u00a77Teleportation enabled.
|
||||
teleporting = \u00a77Teleporting...
|
||||
teleportingPortal = \u00a77Teleporting via portal.
|
||||
tempBanned = Temporarily banned from server for {0}
|
||||
tempbanExempt = \u00a77You may not tempban that player
|
||||
thunder = You {0} thunder in your world
|
||||
thunderDuration = You {0} thunder in your world for {1} seconds.
|
||||
timeBeforeHeal = Time before next heal: {0}
|
||||
timeBeforeTeleport = Time before next teleport: {0}
|
||||
timeFormat = \u00a73{0}\u00a7f or \u00a73{1}\u00a7f or \u00a73{2}\u00a7f
|
||||
timePattern = (?:([0-9]+)\\s*y[a-z]*[,\\s]*)?(?:([0-9]+)\\s*mo[a-z]*[,\\s]*)?(?:([0-9]+)\\s*w[a-z]*[,\\s]*)?(?:([0-9]+)\\s*d[a-z]*[,\\s]*)?(?:([0-9]+)\\s*h[a-z]*[,\\s]*)?(?:([0-9]+)\\s*m[a-z]*[,\\s]*)?(?:([0-9]+)\\s*(?:s[a-z]*)?)?
|
||||
timeSet = Time set in all worlds.
|
||||
timeSetPermission = \u00a7cYou are not authorized to set the time.
|
||||
timeWorldCurrent = The current time in {0} is \u00a73{1}
|
||||
timeWorldSet = The time was set to {0} in: \u00a7c{1}
|
||||
tradeCompleted = \u00a77Trade completed.
|
||||
tradeSignEmpty = The trade sign has nothing available for you.
|
||||
tradeSignEmptyOwner = There is nothing to collect from this trade sign.
|
||||
treeFailure = \u00a7cTree generation failure. Try again on grass or dirt.
|
||||
treeSpawned = \u00a77Tree spawned.
|
||||
typeTpaccept = \u00a77To teleport, type \u00a7c/tpaccept\u00a77.
|
||||
typeTpdeny = \u00a77To deny this request, type \u00a7c/tpdeny\u00a77.
|
||||
typeWorldName = \u00a77You can also type the name of a specific world.
|
||||
unableToSpawnMob = Unable to spawn mob.
|
||||
unbannedIP = Unbanned IP address.
|
||||
unbannedPlayer = Unbanned player.
|
||||
unignorePlayer = You are not ignoring player {0} anymore.
|
||||
unknownItemId = Unknown item id: {0}
|
||||
unknownItemInList = Unknown item {0} in {1} list.
|
||||
unknownItemName = Unknown item name: {0}
|
||||
unlimitedItemPermission = \u00a7cNo permission for unlimited item {0}.
|
||||
unlimitedItems = Unlimited items:
|
||||
unmutedPlayer = Player {0} unmuted.
|
||||
upgradingFilesError = Error while upgrading the files
|
||||
userCreatedPortal = {0} used a portal and generated an exit portal.
|
||||
userDoesNotExist = The user {0} does not exist.
|
||||
userIsAway = {0} is now AFK
|
||||
userIsNotAway = {0} is no longer AFK
|
||||
userJailed = \u00a77You have been jailed
|
||||
userUsedPortal = {0} used an existing exit portal.
|
||||
userdataMoveBackError = Failed to move userdata/{0}.tmp to userdata/{1}
|
||||
userdataMoveError = Failed to move userdata/{0} to userdata/{1}.tmp
|
||||
usingPortal = \u00a77Teleporting via portal to an existing portal.
|
||||
usingTempFolderForTesting = Using temp folder for testing:
|
||||
versionMismatch = Version mismatch! Please update {0} to the same version.
|
||||
versionMismatchAll = Version mismatch! Please update all Essentials jars to the same version.
|
||||
voiceSilenced = \u00a77Your voice has been silenced
|
||||
warpDeleteError = Problem deleting the warp file.
|
||||
warpListPermission = \u00a7cYou do not have Permission to list that warps.
|
||||
warpNotExist = That warp does not exist.
|
||||
warpSet = \u00a77Warp {0} set.
|
||||
warpUsePermission = \u00a7cYou do not have Permission to use that warp.
|
||||
warpingTo = \u00a77Warping to {0}.
|
||||
warpsCount = \u00a77There are {0} warps. Showing page {1} of {2}.
|
||||
weatherStorm = \u00a77You set the weather to storm in {0}
|
||||
weatherStormFor = \u00a77You set the weather to storm in {0} for {1} seconds
|
||||
weatherSun = \u00a77You set the weather to sun in {0}
|
||||
weatherSunFor = \u00a77You set the weather to sun in {0} for {1} seconds
|
||||
whoisGeoLocation = \u00a79 - Location: {0}
|
||||
whoisHealth = \u00a79 - Health: {0}/20
|
||||
whoisIPAddress = \u00a79 - IP Address: {0}
|
||||
whoisIs = {0} is {1}
|
||||
whoisLocation = \u00a79 - Location: ({0}, {1}, {2}, {3})
|
||||
whoisMoney = \u00a79 - Money: {0}
|
||||
whoisStatusAvailable = \u00a79 - Status: Available
|
||||
whoisStatusAway = \u00a79 - Status: \u00a7cAway\u00a7f
|
||||
worth = \u00a77Stack of {0} worth \u00a7c{1}\u00a77 ({2} item(s) at {3} each)
|
||||
worthMeta = \u00a77Stack of {0} with metadata of {1} worth \u00a7c{2}\u00a77 ({3} item(s) at {4} each)
|
||||
worthSet = Worth value set
|
||||
year = year
|
||||
years = years
|
||||
youAreHealed = \u00a77You have been healed.
|
||||
youHaveNewMail = \u00a7cYou have {0} messages!\u00a7f Type \u00a77/mail read\u00a7f to view your mail.
|
||||
nickInUse=\u00a7cThat name is already in use.
|
||||
nickNamesAlpha=\u00a7cNicknames must be alphanumeric.
|
||||
nickNoMore=\u00a77You no longer have a nickname.
|
||||
nickOthersPermission=\u00a7cYou do not have permission to change the nickname of others
|
||||
nickSet=\u00a77Your nickname is now \u00a7c{0}
|
||||
noAccessCommand=\u00a7cYou do not have access to that command.
|
||||
noAccessPermission=\u00a7cYou do not have permission to access that {0}.
|
||||
noDestroyPermission=\u00a7cYou do not have permission to destroy that {0}.
|
||||
noHelpFound=\u00a7cNo matching commands.
|
||||
noHomeSet=You have not set a home.
|
||||
noHomeSetPlayer=Player has not set a home.
|
||||
noKitPermission=\u00a7cYou need the \u00a7c{0}\u00a7c permission to use that kit.
|
||||
noKits=\u00a77There are no kits available yet
|
||||
noMail=You do not have any mail
|
||||
noMailSendPerm=\u00a7cYou do not have the \u00a7fessentials.mail.send\u00a7c permission.
|
||||
noMotd=\u00a7cThere is no message of the day.
|
||||
noNewMail=\u00a77You have no new mail.
|
||||
noPendingRequest=You do not have a pending request.
|
||||
noPlacePermission=\u00a7cYou do not have permission to place a block near that sign.
|
||||
noPowerTools=You have no power tools assigned.
|
||||
noRules=\u00a7cThere are no rules specified yet.
|
||||
noWarpsDefined=No warps defined
|
||||
none=none
|
||||
notAllowedToQuestion=\u00a7cYou are not authorized to use question.
|
||||
notAllowedToShout=\u00a7cYou are not authorized to shout.
|
||||
notEnoughMoney=You do not have sufficient funds.
|
||||
notRecommendedBukkit=Bukkit version is not the recommended build for Essentials.
|
||||
notSupportedYet=Not supported yet.
|
||||
now=now
|
||||
numberRequired=A number goes there, silly.
|
||||
onlyDayNight=/time only supports day/night.
|
||||
onlyPlayers=Only in-game players can use {0}.
|
||||
onlySunStorm=/weather only supports sun/storm.
|
||||
pTimeCurrent=\u00a7e{0}''s\u00a7f time is {1}.
|
||||
pTimeCurrentFixed=\u00a7e{0}''s\u00a7f time is fixed to {1}.
|
||||
pTimeNormal=\u00a7e{0}''s\u00a7f time is normal and matches the server.
|
||||
pTimeOthersPermission=\u00a7cYou are not authorized to set other players'' time.
|
||||
pTimePlayers=These players have their own time:
|
||||
pTimeReset=Player time has been reset for: \u00a7e{0}
|
||||
pTimeSet=Player time is set to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
pTimeSetFixed=Player time is fixed to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
parseError=Error parsing {0} on line {1}
|
||||
pendingTeleportCancelled=\u00a7cPending teleportation request cancelled.
|
||||
permissionsError=Missing Permissions/GroupManager; chat prefixes/suffixes will be disabled.
|
||||
playerBanned=\u00a7cPlayer {0} banned {1} for {2}
|
||||
playerInJail=\u00a7cPlayer is already in jail {0}.
|
||||
playerJailed=\u00a77Player {0} jailed.
|
||||
playerJailedFor= \u00a77Player {0} jailed for {1}.
|
||||
playerKicked=\u00a7cPlayer {0} kicked {1} for {2}
|
||||
playerMuted=\u00a77You have been muted
|
||||
playerMutedFor=\u00a77You have been muted for {0}
|
||||
playerNeverOnServer=\u00a7cPlayer {0} was never on this server.
|
||||
playerNotFound=\u00a7cPlayer not found.
|
||||
playerUnmuted=\u00a77You have been unmuted
|
||||
pong=Pong!
|
||||
possibleWorlds=\u00a77Possible worlds are the numbers 0 through {0}.
|
||||
powerToolAir=Command can''t be attached to air.
|
||||
powerToolAlreadySet=Command \u00a7c{0}\u00a7f is already assigned to {1}.
|
||||
powerToolAttach=\u00a7c{0}\u00a7f command assigned to {1}.
|
||||
powerToolClearAll=All powertool commands have been cleared.
|
||||
powerToolList={1} has the following commands: \u00a7c{0}\u00a7f.
|
||||
powerToolListEmpty={0} has no commands assigned.
|
||||
powerToolNoSuchCommandAssigned=Command \u00a7c{0}\u00a7f has not been assigned to {1}.
|
||||
powerToolRemove=Command \u00a7c{0}\u00a7f removed from {1}.
|
||||
powerToolRemoveAll=All commands removed from {0}.
|
||||
powerToolsDisabled=All of your power tools have been disabled.
|
||||
powerToolsEnabled=All of your power tools have been enabled.
|
||||
protectionOwner=\u00a76[EssentialsProtect] Protection owner: {0}
|
||||
questionFormat=\u00a77[Question]\u00a7f {0}
|
||||
reloadAllPlugins=\u00a77Reloaded all plugins.
|
||||
repair=You have successfully repaired your: \u00a7e{0}.
|
||||
repairAlreadyFixed=\u00a77This item does not need repairing.
|
||||
repairInvalidType=\u00a7cThis item cannot be repaired.
|
||||
repairNone=There were no items that needing repairing.
|
||||
requestAccepted=\u00a77Teleport request accepted.
|
||||
requestAcceptedFrom=\u00a77{0} accepted your teleport request.
|
||||
requestDenied=\u00a77Teleport request denied.
|
||||
requestDeniedFrom=\u00a77{0} denied your teleport request.
|
||||
requestSent=\u00a77Request sent to {0}\u00a77.
|
||||
returnPlayerToJailError=Error occurred when trying to return player to jail.
|
||||
second=second
|
||||
seconds=seconds
|
||||
seenOffline=Player {0} is offline since {1}
|
||||
seenOnline=Player {0} is online since {1}
|
||||
serverFull=Server is full
|
||||
setSpawner=Changed spawner type to {0}
|
||||
sheepMalformedColor=Malformed color.
|
||||
shoutFormat=\u00a77[Shout]\u00a7f {0}
|
||||
signFormatFail=\u00a74[{0}]
|
||||
signFormatSuccess=\u00a71[{0}]
|
||||
signFormatTemplate=[{0}]
|
||||
signProtectInvalidLocation=\u00a74You are not allowed to create sign here.
|
||||
similarWarpExist=A warp with a similar name already exists.
|
||||
slimeMalformedSize=Malformed size.
|
||||
soloMob=That mob likes to be alone
|
||||
spawnSet=\u00a77Spawn location set for group {0}.
|
||||
spawned=spawned
|
||||
suicideMessage=\u00a77Goodbye Cruel World...
|
||||
suicideSuccess= \u00a77{0} took their own life
|
||||
survival=survival
|
||||
takenFromAccount=\u00a7c{0} has been taken from your account.
|
||||
takenFromOthersAccount=\u00a7c{0} has been taken from {1} account.
|
||||
teleportAAll=\u00a77Teleporting request sent to all players...
|
||||
teleportAll=\u00a77Teleporting all players...
|
||||
teleportAtoB=\u00a77{0}\u00a77 teleported you to {1}\u00a77.
|
||||
teleportDisabled={0} has teleportation disabled.
|
||||
teleportHereRequest=\u00a7c{0}\u00a7c has requested that you teleport to them.
|
||||
teleportNewPlayerError=Failed to teleport new player
|
||||
teleportRequest=\u00a7c{0}\u00a7c has requested to teleport to you.
|
||||
teleportTop=\u00a77Teleporting to top.
|
||||
teleportationCommencing=\u00a77Teleportation commencing...
|
||||
teleportationDisabled=\u00a77Teleportation disabled.
|
||||
teleportationEnabled=\u00a77Teleportation enabled.
|
||||
teleporting=\u00a77Teleporting...
|
||||
teleportingPortal=\u00a77Teleporting via portal.
|
||||
tempBanned=Temporarily banned from server for {0}
|
||||
tempbanExempt=\u00a77You may not tempban that player
|
||||
thunder= You {0} thunder in your world
|
||||
thunderDuration=You {0} thunder in your world for {1} seconds.
|
||||
timeBeforeHeal=Time before next heal: {0}
|
||||
timeBeforeTeleport=Time before next teleport: {0}
|
||||
timeFormat=\u00a73{0}\u00a7f or \u00a73{1}\u00a7f or \u00a73{2}\u00a7f
|
||||
timePattern=(?:([0-9]+)\\s*y[a-z]*[,\\s]*)?(?:([0-9]+)\\s*mo[a-z]*[,\\s]*)?(?:([0-9]+)\\s*w[a-z]*[,\\s]*)?(?:([0-9]+)\\s*d[a-z]*[,\\s]*)?(?:([0-9]+)\\s*h[a-z]*[,\\s]*)?(?:([0-9]+)\\s*m[a-z]*[,\\s]*)?(?:([0-9]+)\\s*(?:s[a-z]*)?)?
|
||||
timeSet=Time set in all worlds.
|
||||
timeSetPermission=\u00a7cYou are not authorized to set the time.
|
||||
timeWorldCurrent=The current time in {0} is \u00a73{1}
|
||||
timeWorldSet=The time was set to {0} in: \u00a7c{1}
|
||||
tradeCompleted=\u00a77Trade completed.
|
||||
tradeSignEmpty=The trade sign has nothing available for you.
|
||||
tradeSignEmptyOwner=There is nothing to collect from this trade sign.
|
||||
treeFailure=\u00a7cTree generation failure. Try again on grass or dirt.
|
||||
treeSpawned=\u00a77Tree spawned.
|
||||
true=true
|
||||
typeTpaccept=\u00a77To teleport, type \u00a7c/tpaccept\u00a77.
|
||||
typeTpdeny=\u00a77To deny this request, type \u00a7c/tpdeny\u00a77.
|
||||
typeWorldName=\u00a77You can also type the name of a specific world.
|
||||
unableToSpawnMob=Unable to spawn mob.
|
||||
unbannedIP=Unbanned IP address.
|
||||
unbannedPlayer=Unbanned player.
|
||||
unignorePlayer=You are not ignoring player {0} anymore.
|
||||
unknownItemId=Unknown item id: {0}
|
||||
unknownItemInList=Unknown item {0} in {1} list.
|
||||
unknownItemName=Unknown item name: {0}
|
||||
unlimitedItemPermission=\u00a7cNo permission for unlimited item {0}.
|
||||
unlimitedItems=Unlimited items:
|
||||
unmutedPlayer=Player {0} unmuted.
|
||||
upgradingFilesError=Error while upgrading the files
|
||||
userDoesNotExist=The user {0} does not exist.
|
||||
userIsAway={0} is now AFK
|
||||
userIsNotAway={0} is no longer AFK
|
||||
userJailed=\u00a77You have been jailed
|
||||
userUsedPortal={0} used an existing exit portal.
|
||||
userdataMoveBackError=Failed to move userdata/{0}.tmp to userdata/{1}
|
||||
userdataMoveError=Failed to move userdata/{0} to userdata/{1}.tmp
|
||||
usingTempFolderForTesting=Using temp folder for testing:
|
||||
versionMismatch=Version mismatch! Please update {0} to the same version.
|
||||
versionMismatchAll=Version mismatch! Please update all Essentials jars to the same version.
|
||||
voiceSilenced=\u00a77Your voice has been silenced
|
||||
warpDeleteError=Problem deleting the warp file.
|
||||
warpListPermission=\u00a7cYou do not have Permission to list that warps.
|
||||
warpNotExist=That warp does not exist.
|
||||
warpSet=\u00a77Warp {0} set.
|
||||
warpUsePermission=\u00a7cYou do not have Permission to use that warp.
|
||||
warpingTo=\u00a77Warping to {0}.
|
||||
warps=Warps: {0}
|
||||
warpsCount=\u00a77There are {0} warps. Showing page {1} of {2}.
|
||||
weatherStorm=\u00a77You set the weather to storm in {0}
|
||||
weatherStormFor=\u00a77You set the weather to storm in {0} for {1} seconds
|
||||
weatherSun=\u00a77You set the weather to sun in {0}
|
||||
weatherSunFor=\u00a77You set the weather to sun in {0} for {1} seconds
|
||||
whoisGamemode=\u00a79 - Gamemode: {0}
|
||||
whoisGeoLocation=\u00a79 - Location: {0}
|
||||
whoisGod=\u00a79 - God mode: {0}
|
||||
whoisHealth=\u00a79 - Health: {0}/20
|
||||
whoisIPAddress=\u00a79 - IP Address: {0}
|
||||
whoisIs={0} is {1}
|
||||
whoisLocation=\u00a79 - Location: ({0}, {1}, {2}, {3})
|
||||
whoisMoney=\u00a79 - Money: {0}
|
||||
whoisOP=\u00a79 - OP: {0}
|
||||
whoisStatusAvailable=\u00a79 - Status: Available
|
||||
whoisStatusAway=\u00a79 - Status: \u00a7cAway\u00a7f
|
||||
worth=\u00a77Stack of {0} worth \u00a7c{1}\u00a77 ({2} item(s) at {3} each)
|
||||
worthMeta=\u00a77Stack of {0} with metadata of {1} worth \u00a7c{2}\u00a77 ({3} item(s) at {4} each)
|
||||
worthSet=Worth value set
|
||||
year=year
|
||||
years=years
|
||||
youAreHealed=\u00a77You have been healed.
|
||||
youHaveNewMail=\u00a7cYou have {0} messages!\u00a7f Type \u00a77/mail read\u00a7f to view your mail.
|
||||
|
@@ -2,372 +2,377 @@
|
||||
# Single quotes have to be doubled: ''
|
||||
# Translations start here
|
||||
# by: papand13, papand13@gmail.com
|
||||
addedToAccount = \u00a7a{0} er tilf\u00f8jet til din konto.
|
||||
addedToOthersAccount = \u00a7a{0} er blevet tilf\u00f8jet til {1} konto.
|
||||
alertBroke = \u00f8delagde:
|
||||
alertFormat = \u00a73[{0}] \u00a7f {1} \u00a76 {2} ved: {3}
|
||||
alertPlaced = placerede:
|
||||
alertUsed = brugte:
|
||||
action=* {0} {1}
|
||||
addedToAccount=\u00a7a{0} er tilf\u00f8jet til din konto.
|
||||
addedToOthersAccount=\u00a7a{0} er blevet tilf\u00f8jet til {1} konto.
|
||||
alertBroke=\u00f8delagde:
|
||||
alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} ved: {3}
|
||||
alertPlaced=placerede:
|
||||
alertUsed=brugte:
|
||||
autoAfkKickReason=You have been kicked for idling more than {0} minutes.
|
||||
backAfterDeath = \u00a77Brug /back kommandoen for at retunere til dit d\u00f8ds punkt.
|
||||
backUsageMsg = \u00a77Returnere til tidligere placering.
|
||||
backupFinished = Backup sluttede
|
||||
backupStarted = Backup startede
|
||||
balance = \u00a77Balance: {0}
|
||||
balanceTop = \u00a77 Top {0} saldi
|
||||
banExempt = \u00a7cDu kan ikke forbyde den p\u00e5g\u00e6ldende spiller.
|
||||
banIpAddress = \u00a77Bannede IP addresse
|
||||
bannedIpsFileError = Fejl i l\u00e6sning af banned-ips.txt
|
||||
bannedIpsFileNotFound = banned-ips.txt ikke fundet
|
||||
bannedPlayersFileError = Fejl i l\u00e6sning af banned-players.txt
|
||||
bannedPlayersFileNotFound = banned-players.txt ikke fundet
|
||||
bigTreeFailure = \u00a7cStort tr\u00e6 genererings fejl. Pr\u00f8v igen p\u00e5 gr\u00e6s eller jord.
|
||||
bigTreeSuccess = \u00a77Stort tr\u00e6 fremkaldt.
|
||||
broadcast = [\u00a7cMeddelelse\u00a7f]\u00a7a {0}
|
||||
buildAlert = \u00a7cDu er ikke tilladt at bygge!
|
||||
bukkitFormatChanged = Bukkit version format \u00e6ndret. Version er ikke checket.
|
||||
burnMsg = \u00a77Du satte ild til {0} for {1} sekunder.
|
||||
canTalkAgain = \u00a77Du kan snakke igen
|
||||
cantFindGeoIpDB = Kan ikke finde GeoIP database!
|
||||
cantReadGeoIpDB = Fejl ved l\u00e6sning af GeoIP database!
|
||||
cantSpawnItem = \u00a7cDu er ikke tilladt at spawne elementet {0}
|
||||
commandFailed = Kommando {0} fejlede:
|
||||
commandHelpFailedForPlugin=Fejl ved at f\u00e5 hj\u00e6lp til: {0}
|
||||
commandNotLoaded = \u00a7cCommand {0} er ikke indl\u00e6st korrekt.
|
||||
compassBearing = \u00a77B\u00e6rer: {0} ({1} grader).
|
||||
configFileMoveError = Kunne ikke flytte config.yml til backup placering.
|
||||
configFileRenameError = Kunne ikke omd\u00f8be temp fil til config.yml
|
||||
connectedPlayers = Tilsluttede spillere:
|
||||
connectionFailed = Failed ved \u00e5bning af forbindelse.
|
||||
cooldownWithMessage = \u00a7cNedk\u00f8lning: {0}
|
||||
corruptNodeInConfig = \u00a74Notice: Din konfigurations fil har en korrupt {0} node.
|
||||
couldNotFindTemplate = Kunne ikke finde skabelon {0}
|
||||
creatingConfigFromTemplate = Opretter config fra skabelon: {0}
|
||||
creatingEmptyConfig = Opretter tom config: {0}
|
||||
creatingPortal = Opretter portal ved {0},{1},{2}.
|
||||
day = dag
|
||||
days = dage
|
||||
defaultBanReason = Ban hammeren har talt!
|
||||
deleteFileError = Kunne ikke slette fil: {0}
|
||||
deleteHome = \u00a77Home {0} has been removed.
|
||||
deleteJail = \u00a77F\u00e6ngsel {0} er fjernet.
|
||||
deleteWarp = \u00a77Warp {0} er fjernet.
|
||||
deniedAccessCommand = {0} var n\u00e6gtet adgang til kommando.
|
||||
dependancyDownloaded = [Essentials] Dependancy {0} downloaded successfully.
|
||||
dependancyException = [Essentials] An error occured when trying to download a dependacy
|
||||
dependancyNotFound = [Essentials] A required dependancy was not found, downloading now.
|
||||
depth = \u00a77Du er ved havoverfladen.
|
||||
depthAboveSea = \u00a77Du er {0} blok(ke) over havoverfladen.
|
||||
depthBelowSea = \u00a77Du er {0} blok(ke) under havoverfladen.
|
||||
destinationNotSet = Destination er ikke sat
|
||||
disableUnlimited = \u00a77Deaktiverede ubergr\u00e6nset placering af {0} for {1}.
|
||||
disabled = deaktiveret
|
||||
dontMoveMessage = \u00a77Teleportering vil begynde om {0}. Bev\u00e6g dig ikke.
|
||||
downloadingGeoIp = Downloader GeoIP database ... det her kan tage et stykke tid (land: 0.6 MB, by: 20MB)
|
||||
duplicatedUserdata = Duplikerede userdata: {0} og {1}
|
||||
enableUnlimited = \u00a77Giver ubegr\u00e6nset m\u00e6ngde af {0} til {1}.
|
||||
enabled = aktiveret
|
||||
errorCallingCommand = Fejl ved opkald af kommando /{0}
|
||||
errorWithMessage = \u00a7cFejl: {0}
|
||||
essentialsReload = \u00a77Essentials Genindl\u00e6st {0}
|
||||
extinguish = \u00a77Du slukkede dig selv.
|
||||
extinguishOthers = \u00a77Du slukkede {0}.
|
||||
failedToCloseConfig = Fejlede i at lukke config {0}
|
||||
failedToCreateConfig = Fejl i oprettelse af config {0}
|
||||
failedToWriteConfig = Fejlede i at skrive config {0}
|
||||
fileRenameError = Resterende fil {0} fejlede
|
||||
foreverAlone = \u00a7cDu har ingen du kan svare.
|
||||
freedMemory = Befriede {0} MB.
|
||||
gcchunks = stykker,
|
||||
gcentities = enheder
|
||||
gcfree = Free memory: {0} MB
|
||||
gcmax = Maximum memory: {0} MB
|
||||
gctotal = Allocated memory: {0} MB
|
||||
generatingPortal = \u00a77Genererer en udgangs portal.
|
||||
geoIpUrlEmpty = GeoIP download url er tom.
|
||||
geoIpUrlInvalid = GeoIP download url er ugyldig.
|
||||
geoipJoinFormat = Spiller {0} kommer fra {1}
|
||||
godDisabledFor = deaktiveret for {0}
|
||||
godEnabledFor = aktiveret for {0}
|
||||
godMode = \u00a77Gud tilstand {0}.
|
||||
haveBeenReleased = \u00a77Du er blevet l\u00f8sladt
|
||||
heal = \u00a77Du er blevet helbredt.
|
||||
healOther = \u00a77Helbredt {0}.
|
||||
helpConsole = For at se hj\u00e6lp fra konsolen, skriv ?.
|
||||
helpOp = \u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
|
||||
helpPages = Side \u00a7c{0}\u00a7f af \u00a7c{1}\u00a7f:
|
||||
holeInFloor = Hul i gulv
|
||||
homeSet = \u00a77Hjem sat.
|
||||
homeSetToBed = \u00a77Dit hjem er nu sat til denne seng.
|
||||
homes = Homes: {0}
|
||||
hour = time
|
||||
hours = timer
|
||||
ignorePlayer = Du ignorere spiller {0} fra nu af.
|
||||
illegalDate = Ilegal dato format.
|
||||
infoChapter = V\u00e6lg kapitel:
|
||||
infoChapterPages = Kapitel {0}, side \u00a7c{1}\u00a7f af \u00a7c{2}\u00a7f:
|
||||
infoFileDoesNotExist = Fil info.txt eksisterer ikke. Laver en for dig.
|
||||
infoPages = Side \u00a7c{0}\u00a7f af \u00a7c{1}\u00a7f:
|
||||
infoUnknownChapter = Ukendt kapitel.
|
||||
invBigger = Den anden brugers inventory er st\u00f8rre end din.
|
||||
invRestored = Din inventory er blevet genoprettet.
|
||||
invSee = Du ser inventoryen af {0}.
|
||||
invSeeHelp = Brug /invsee for at genoprette din inventory.
|
||||
invalidCharge = \u00a7cUgyldig opladning.
|
||||
invalidMob = Ugyldig mob type.
|
||||
invalidServer = Ugyldig server!
|
||||
invalidSignLine = Linje {0} p\u00e5 skilt er ugyldig.
|
||||
invalidWorld = \u00a7cUgyldig verden.
|
||||
inventoryCleared = \u00a77Inventory ryddet.
|
||||
inventoryClearedOthers = \u00a77Inventory af \u00a7c{0}\u00a77 ryddet.
|
||||
is = er
|
||||
itemCannotBeSold = Det element kan ikke s\u00e6lges til serveren.
|
||||
itemMustBeStacked = Element skal handles i stakke. En m\u00e6ngde af 2s ville v\u00e6re to stakke, osv.
|
||||
itemNotEnough1 = \u00a7cDu har ikke nok af det element til at s\u00e6lge.
|
||||
itemNotEnough2 = \u00a77Hvis du ville have solgt alle dine elementer af den type, brug /sell elementnavn
|
||||
itemNotEnough3 = \u00a77/sell elementnavn -1 vil s\u00e6lge alle p\u00e5 n\u00e6r et element, osv.
|
||||
itemSellAir = Fors\u00f8gte du virkelig at s\u00e6lge luft? Kom et element i din h\u00e5nd.
|
||||
itemSold = \u00a77Solgte for \u00a7c {0} \u00a77 ({1} elementer for {2} hver)
|
||||
itemSoldConsole = {0} solgte {1} for \u00a77 {2} \u00a77 ({3} elementer for {4} hver)
|
||||
itemSpawn = \u00a77Giver {0} af {1}
|
||||
itemsCsvNotLoaded = Kunne ikke indl\u00e6se items.csv.
|
||||
jailAlreadyIncarcerated = \u00a7cPerson is already in jail: {0}
|
||||
jailMessage = \u00a7cBryd reglerne, og tag din straf.
|
||||
jailNotExist = Det f\u00e6ngsel eksisterer ikke.
|
||||
jailReleased = \u00a77Player \u00a7e{0}\u00a77 unjailed.
|
||||
jailReleasedPlayerNotify = \u00a77You have been released!
|
||||
jailSentenceExtended = Jail time extend to: {0)
|
||||
jailSet = \u00a77F\u00e6ngsel {0} er blevet sat
|
||||
jumpError = Det ville skade din computer''s hjerne.
|
||||
kickDefault = Kicket fra serveren
|
||||
kickExempt = \u00a77Du kan ikke sparke denne spiller.
|
||||
kill = \u00a77Dr\u00e6bte {0}.
|
||||
kitError = \u00a7cDer er ikke nogen gyldige pakker.
|
||||
kitError2 = \u00a7cDen pakke eksisterer ikke eller er forkert defineret.
|
||||
kitErrorHelp = \u00a7cM\u00e5ske mangler et element en m\u00e6ngde i konfigurationen?
|
||||
kitGive = \u00a77Giver pakke {0}.
|
||||
kitInvFull = \u00a7cDin inventory var fuld, placere pakken p\u00e5 gulvet
|
||||
kitTimed = \u00a7cDu kan ikke den pakke igen f\u00f8r om {0}.
|
||||
kits = \u00a77Pakker: {0}
|
||||
lightningSmited = \u00a77Du er blevet sl\u00e5et
|
||||
lightningUse = \u00a77Sl\u00e5r {0}
|
||||
loadWarpError = Kunne ikke indl\u00e6se warp {0}
|
||||
loadinfo = Indl\u00e6ste {0} byg {1} af {2}
|
||||
localFormat = Lokal: <{0}> {1}
|
||||
mailClear = \u00a7cFor at markere din post som l\u00e6st, skriv /mail clear
|
||||
mailCleared = \u00a77Post ryddet!
|
||||
mailSent = \u00a77Post sendt!
|
||||
markMailAsRead = \u00a7cTo marker din post som l\u00e6st, skriv /post ryd
|
||||
markedAsAway = \u00a77Du er nu markeret som v\u00e6k.
|
||||
markedAsNotAway = \u00a77Du er ikke l\u00e6ngere markeret som v\u00e6k.
|
||||
backAfterDeath=\u00a77Brug /back kommandoen for at retunere til dit d\u00f8ds punkt.
|
||||
backUsageMsg=\u00a77Returnere til tidligere placering.
|
||||
backupFinished=Backup sluttede
|
||||
backupStarted=Backup startede
|
||||
balance=\u00a77Balance: {0}
|
||||
balanceTop=\u00a77 Top {0} saldi
|
||||
banExempt=\u00a7cDu kan ikke forbyde den p\u00e5g\u00e6ldende spiller.
|
||||
banIpAddress=\u00a77Bannede IP addresse
|
||||
bannedIpsFileError=Fejl i l\u00e6sning af banned-ips.txt
|
||||
bannedIpsFileNotFound=banned-ips.txt ikke fundet
|
||||
bannedPlayersFileError=Fejl i l\u00e6sning af banned-players.txt
|
||||
bannedPlayersFileNotFound=banned-players.txt ikke fundet
|
||||
bigTreeFailure=\u00a7cStort tr\u00e6 genererings fejl. Pr\u00f8v igen p\u00e5 gr\u00e6s eller jord.
|
||||
bigTreeSuccess= \u00a77Stort tr\u00e6 fremkaldt.
|
||||
broadcast=[\u00a7cMeddelelse\u00a7f]\u00a7a {0}
|
||||
buildAlert=\u00a7cDu er ikke tilladt at bygge!
|
||||
bukkitFormatChanged=Bukkit version format \u00e6ndret. Version er ikke checket.
|
||||
burnMsg=\u00a77Du satte ild til {0} for {1} sekunder.
|
||||
canTalkAgain=\u00a77Du kan snakke igen
|
||||
cantFindGeoIpDB=Kan ikke finde GeoIP database!
|
||||
cantReadGeoIpDB=Fejl ved l\u00e6sning af GeoIP database!
|
||||
cantSpawnItem=\u00a7cDu er ikke tilladt at spawne elementet {0}
|
||||
commandFailed=Kommando {0} fejlede:
|
||||
commandHelpFailedForPlugin=Fejl ved at f\u00e5 hj\u00e6lp til: {0}
|
||||
commandNotLoaded=\u00a7cCommand {0} er ikke indl\u00e6st korrekt.
|
||||
compassBearing=\u00a77B\u00e6rer: {0} ({1} grader).
|
||||
configFileMoveError=Kunne ikke flytte config.yml til backup placering.
|
||||
configFileRenameError=Kunne ikke omd\u00f8be temp fil til config.yml
|
||||
connectedPlayers=Tilsluttede spillere:
|
||||
connectionFailed=Failed ved \u00e5bning af forbindelse.
|
||||
cooldownWithMessage=\u00a7cNedk\u00f8lning: {0}
|
||||
corruptNodeInConfig=\u00a74Notice: Din konfigurations fil har en korrupt {0} node.
|
||||
couldNotFindTemplate=Kunne ikke finde skabelon {0}
|
||||
creatingConfigFromTemplate=Opretter config fra skabelon: {0}
|
||||
creatingEmptyConfig=Opretter tom config: {0}
|
||||
creative=creative
|
||||
day=dag
|
||||
days=dage
|
||||
defaultBanReason=Ban hammeren har talt!
|
||||
deleteFileError=Kunne ikke slette fil: {0}
|
||||
deleteHome=\u00a77Home {0} has been removed.
|
||||
deleteJail=\u00a77F\u00e6ngsel {0} er fjernet.
|
||||
deleteWarp=\u00a77Warp {0} er fjernet.
|
||||
deniedAccessCommand={0} var n\u00e6gtet adgang til kommando.
|
||||
dependancyDownloaded=[Essentials] Dependancy {0} downloaded successfully.
|
||||
dependancyException=[Essentials] An error occured when trying to download a dependacy
|
||||
dependancyNotFound=[Essentials] A required dependancy was not found, downloading now.
|
||||
depth=\u00a77Du er ved havoverfladen.
|
||||
depthAboveSea=\u00a77Du er {0} blok(ke) over havoverfladen.
|
||||
depthBelowSea=\u00a77Du er {0} blok(ke) under havoverfladen.
|
||||
destinationNotSet=Destination er ikke sat
|
||||
disableUnlimited=\u00a77Deaktiverede ubergr\u00e6nset placering af {0} for {1}.
|
||||
disabled=deaktiveret
|
||||
dontMoveMessage=\u00a77Teleportering vil begynde om {0}. Bev\u00e6g dig ikke.
|
||||
downloadingGeoIp=Downloader GeoIP database ... det her kan tage et stykke tid (land: 0.6 MB, by: 20MB)
|
||||
duplicatedUserdata=Duplikerede userdata: {0} og {1}
|
||||
enableUnlimited=\u00a77Giver ubegr\u00e6nset m\u00e6ngde af {0} til {1}.
|
||||
enabled=aktiveret
|
||||
errorCallingCommand=Fejl ved opkald af kommando /{0}
|
||||
errorWithMessage=\u00a7cFejl: {0}
|
||||
essentialsReload=\u00a77Essentials Genindl\u00e6st {0}
|
||||
extinguish=\u00a77Du slukkede dig selv.
|
||||
extinguishOthers=\u00a77Du slukkede {0}.
|
||||
failedToCloseConfig=Fejlede i at lukke config {0}
|
||||
failedToCreateConfig=Fejl i oprettelse af config {0}
|
||||
failedToWriteConfig=Fejlede i at skrive config {0}
|
||||
false=false
|
||||
fileRenameError=Resterende fil {0} fejlede
|
||||
foreverAlone=\u00a7cDu har ingen du kan svare.
|
||||
freedMemory=Befriede {0} MB.
|
||||
gameMode=\u00a77Set game mode {0} for {1}.
|
||||
gcchunks= stykker,
|
||||
gcentities= enheder
|
||||
gcfree=Free memory: {0} MB
|
||||
gcmax=Maximum memory: {0} MB
|
||||
gctotal=Allocated memory: {0} MB
|
||||
geoIpUrlEmpty=GeoIP download url er tom.
|
||||
geoIpUrlInvalid=GeoIP download url er ugyldig.
|
||||
geoipJoinFormat=Spiller {0} kommer fra {1}
|
||||
godDisabledFor=deaktiveret for {0}
|
||||
godEnabledFor=aktiveret for {0}
|
||||
godMode=\u00a77Gud tilstand {0}.
|
||||
haveBeenReleased=\u00a77Du er blevet l\u00f8sladt
|
||||
heal=\u00a77Du er blevet helbredt.
|
||||
healOther=\u00a77Helbredt {0}.
|
||||
helpConsole=For at se hj\u00e6lp fra konsolen, skriv ?.
|
||||
helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
|
||||
helpPages=Side \u00a7c{0}\u00a7f af \u00a7c{1}\u00a7f:
|
||||
holeInFloor=Hul i gulv
|
||||
homeSet=\u00a77Hjem sat.
|
||||
homeSetToBed=\u00a77Dit hjem er nu sat til denne seng.
|
||||
homes=Homes: {0}
|
||||
hour=time
|
||||
hours=timer
|
||||
ignorePlayer=Du ignorere spiller {0} fra nu af.
|
||||
illegalDate=Ilegal dato format.
|
||||
infoChapter=V\u00e6lg kapitel:
|
||||
infoChapterPages=Kapitel {0}, side \u00a7c{1}\u00a7f af \u00a7c{2}\u00a7f:
|
||||
infoFileDoesNotExist=Fil info.txt eksisterer ikke. Laver en for dig.
|
||||
infoPages=Side \u00a7c{0}\u00a7f af \u00a7c{1}\u00a7f:
|
||||
infoUnknownChapter=Ukendt kapitel.
|
||||
invBigger=Den anden brugers inventory er st\u00f8rre end din.
|
||||
invRestored=Din inventory er blevet genoprettet.
|
||||
invSee=Du ser inventoryen af {0}.
|
||||
invSeeHelp=Brug /invsee for at genoprette din inventory.
|
||||
invalidCharge=\u00a7cUgyldig opladning.
|
||||
invalidMob=Ugyldig mob type.
|
||||
invalidServer=Ugyldig server!
|
||||
invalidSignLine=Linje {0} p\u00e5 skilt er ugyldig.
|
||||
invalidWorld=\u00a7cUgyldig verden.
|
||||
inventoryCleared=\u00a77Inventory ryddet.
|
||||
inventoryClearedOthers=\u00a77Inventory af \u00a7c{0}\u00a77 ryddet.
|
||||
is=er
|
||||
itemCannotBeSold=Det element kan ikke s\u00e6lges til serveren.
|
||||
itemMustBeStacked=Element skal handles i stakke. En m\u00e6ngde af 2s ville v\u00e6re to stakke, osv.
|
||||
itemNotEnough1=\u00a7cDu har ikke nok af det element til at s\u00e6lge.
|
||||
itemNotEnough2=\u00a77Hvis du ville have solgt alle dine elementer af den type, brug /sell elementnavn
|
||||
itemNotEnough3=\u00a77/sell elementnavn -1 vil s\u00e6lge alle p\u00e5 n\u00e6r et element, osv.
|
||||
itemSellAir=Fors\u00f8gte du virkelig at s\u00e6lge luft? Kom et element i din h\u00e5nd.
|
||||
itemSold=\u00a77Solgte for \u00a7c{0} \u00a77({1} {2} elementer for {3} hver)
|
||||
itemSoldConsole={0} solgte {1} for \u00a77{2} \u00a77({3} elementer for {4} hver)
|
||||
itemSpawn=\u00a77Giver {0} af {1}
|
||||
itemsCsvNotLoaded=Kunne ikke indl\u00e6se items.csv.
|
||||
jailAlreadyIncarcerated=\u00a7cPerson is already in jail: {0}
|
||||
jailMessage=\u00a7cBryd reglerne, og tag din straf.
|
||||
jailNotExist=Det f\u00e6ngsel eksisterer ikke.
|
||||
jailReleased=\u00a77Player \u00a7e{0}\u00a77 unjailed.
|
||||
jailReleasedPlayerNotify=\u00a77You have been released!
|
||||
jailSentenceExtended=Jail time extend to: {0)
|
||||
jailSet=\u00a77F\u00e6ngsel {0} er blevet sat
|
||||
jumpError=Det ville skade din computer''s hjerne.
|
||||
kickDefault=Kicket fra serveren
|
||||
kickExempt=\u00a77Du kan ikke sparke denne spiller.
|
||||
kill=\u00a77Dr\u00e6bte {0}.
|
||||
kitError=\u00a7cDer er ikke nogen gyldige pakker.
|
||||
kitError2=\u00a7cDen pakke eksisterer ikke eller er forkert defineret.
|
||||
kitErrorHelp=\u00a7cM\u00e5ske mangler et element en m\u00e6ngde i konfigurationen?
|
||||
kitGive=\u00a77Giver pakke {0}.
|
||||
kitInvFull=\u00a7cDin inventory var fuld, placere pakken p\u00e5 gulvet
|
||||
kitTimed=\u00a7cDu kan ikke den pakke igen f\u00f8r om {0}.
|
||||
kits=\u00a77Pakker: {0}
|
||||
lightningSmited=\u00a77Du er blevet sl\u00e5et
|
||||
lightningUse=\u00a77Sl\u00e5r {0}
|
||||
loadWarpError=Kunne ikke indl\u00e6se warp {0}
|
||||
loadinfo=Indl\u00e6ste {0} byg {1} af {2}
|
||||
localFormat=Lokal: <{0}> {1}
|
||||
mailClear=\u00a7cFor at markere din post som l\u00e6st, skriv /mail clear
|
||||
mailCleared=\u00a77Post ryddet!
|
||||
mailSent=\u00a77Post sendt!
|
||||
markMailAsRead=\u00a7cTo marker din post som l\u00e6st, skriv /post ryd
|
||||
markedAsAway=\u00a77Du er nu markeret som v\u00e6k.
|
||||
markedAsNotAway=\u00a77Du er ikke l\u00e6ngere markeret som v\u00e6k.
|
||||
maxHomes=You cannot set more than {0} homes.
|
||||
mayNotJail = \u00a7cDu m\u00e5 ikke f\u00e6ngsle den person
|
||||
me = mig
|
||||
minute = minut
|
||||
minutes = minutter
|
||||
missingItems = Du har ikke {0}x {1}.
|
||||
missingPrefixSuffix = Mangler et pr\u00e6fiks eller suffiks for {0}
|
||||
mobSpawnError = Fejl ved \u00e6ndring af mob fremkalder.
|
||||
mobSpawnLimit = Mob m\u00e6ngde begr\u00e6nset til server gr\u00e6nse
|
||||
mobSpawnTarget = M\u00e5l blok skal v\u00e6re en mob fremkalder.
|
||||
moneyRecievedFrom = \u00a7a{0} er modtaget fra {1}
|
||||
moneySentTo = \u00a7a{0} er sendt til {1}
|
||||
moneyTaken = {0} taget fra din bank konto.
|
||||
month = m\u00e5ned
|
||||
months = m\u00e5neder
|
||||
moreThanZero = M\u00e6ngder skal v\u00e6re st\u00f8rre end 0.
|
||||
msgFormat = \u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
|
||||
muteExempt = \u00a7cYou may not mute that player.
|
||||
mutedPlayer = Spiller {0} d\u00e6mpet.
|
||||
mutedPlayerFor = Spiller {0} d\u00e6mpet for {1}.
|
||||
mutedUserSpeaks = {0} pr\u00f8vede at snakke, men er muted.
|
||||
needTpohere = Du skal have adgang til /tpohere for at teleporter andre spillere.
|
||||
negativeBalanceError = Brugeren er ikke tilladt at have en negativ saldo.
|
||||
nickChanged = Kaldenavn \u00e6ndret.
|
||||
mayNotJail=\u00a7cDu m\u00e5 ikke f\u00e6ngsle den person
|
||||
me=mig
|
||||
minute=minut
|
||||
minutes=minutter
|
||||
missingItems=Du har ikke {0}x {1}.
|
||||
missingPrefixSuffix=Mangler et pr\u00e6fiks eller suffiks for {0}
|
||||
mobSpawnError=Fejl ved \u00e6ndring af mob fremkalder.
|
||||
mobSpawnLimit=Mob m\u00e6ngde begr\u00e6nset til server gr\u00e6nse
|
||||
mobSpawnTarget=M\u00e5l blok skal v\u00e6re en mob fremkalder.
|
||||
mobsAvailable=\u00a77Mobs: {0}
|
||||
moneyRecievedFrom=\u00a7a{0} er modtaget fra {1}
|
||||
moneySentTo=\u00a7a{0} er sendt til {1}
|
||||
moneyTaken={0} taget fra din bank konto.
|
||||
month=m\u00e5ned
|
||||
months=m\u00e5neder
|
||||
moreThanZero=M\u00e6ngder skal v\u00e6re st\u00f8rre end 0.
|
||||
msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
|
||||
muteExempt=\u00a7cYou may not mute that player.
|
||||
mutedPlayer=Spiller {0} d\u00e6mpet.
|
||||
mutedPlayerFor=Spiller {0} d\u00e6mpet for {1}.
|
||||
mutedUserSpeaks={0} pr\u00f8vede at snakke, men er muted.
|
||||
needTpohere=Du skal have adgang til /tpohere for at teleporter andre spillere.
|
||||
negativeBalanceError=Brugeren er ikke tilladt at have en negativ saldo.
|
||||
nickChanged=Kaldenavn \u00e6ndret.
|
||||
nickDisplayName=\u00a77You have to enable change-displayname in Essentials config.
|
||||
nickInUse = \u00a7cDet navn er allerede i brug.
|
||||
nickNamesAlpha = \u00a7cKaldenavne skal v\u00e6re alfanumeriske.
|
||||
nickNoMore = \u00a7Du har ikke l\u00e6ngere et kaldenavn.
|
||||
nickOthersPermission = \u00a7cDu har ikke tilladelse til at \u00e6ndre andres kaldenavn
|
||||
nickSet = \u00a77Dit kaldenavn er nu \u00a7c{0}
|
||||
noAccessCommand = \u00a7cDu har ikke adgang til den kommando.
|
||||
noAccessPermission = \u00a7cDu har ikke tilladelse til at f\u00e5 adgang til det {0}.
|
||||
noDestroyPermission = \u00a7cDu har ikke tilladelse til at \u00f8del\u00e6gge det {0}.
|
||||
noHelpFound = \u00a7cNo matching commands.
|
||||
noHomeSet = Du har sat et nyt hjem.
|
||||
noHomeSetPlayer = Spiller har ikke sat et hjem.
|
||||
noKitPermission = \u00a7cDu har brug for \u00a7c{0}\u00a7c tilladelsen for at bruge den pakke.
|
||||
noKits = \u00a77Der er ikke nogen pakker tilg\u00e6ngelig endnu
|
||||
noMail = Du har ikke noget post
|
||||
noMailSendPerm = \u00a7cDu har ikke \u00a7fessentials.mail.send\u00a7c tilladelsen.
|
||||
noMotd = \u00a7cDer er ikke nogen besked for dagen.
|
||||
noNewMail = \u00a77Du har ingen ny post.
|
||||
noPendingRequest = Du har ikke en ventende anmodning.
|
||||
noPlacePermission = \u00a7cYou do not have permission to place a block near that sign.
|
||||
nickInUse=\u00a7cDet navn er allerede i brug.
|
||||
nickNamesAlpha=\u00a7cKaldenavne skal v\u00e6re alfanumeriske.
|
||||
nickNoMore=\u00a7Du har ikke l\u00e6ngere et kaldenavn.
|
||||
nickOthersPermission=\u00a7cDu har ikke tilladelse til at \u00e6ndre andres kaldenavn
|
||||
nickSet=\u00a77Dit kaldenavn er nu \u00a7c{0}
|
||||
noAccessCommand=\u00a7cDu har ikke adgang til den kommando.
|
||||
noAccessPermission=\u00a7cDu har ikke tilladelse til at f\u00e5 adgang til det {0}.
|
||||
noDestroyPermission=\u00a7cDu har ikke tilladelse til at \u00f8del\u00e6gge det {0}.
|
||||
noHelpFound=\u00a7cNo matching commands.
|
||||
noHomeSet=Du har sat et nyt hjem.
|
||||
noHomeSetPlayer=Spiller har ikke sat et hjem.
|
||||
noKitPermission=\u00a7cDu har brug for \u00a7c{0}\u00a7c tilladelsen for at bruge den pakke.
|
||||
noKits=\u00a77Der er ikke nogen pakker tilg\u00e6ngelig endnu
|
||||
noMail=Du har ikke noget post
|
||||
noMailSendPerm=\u00a7cDu har ikke \u00a7fessentials.mail.send\u00a7c tilladelsen.
|
||||
noMotd=\u00a7cDer er ikke nogen besked for dagen.
|
||||
noNewMail=\u00a77Du har ingen ny post.
|
||||
noPendingRequest=Du har ikke en ventende anmodning.
|
||||
noPlacePermission=\u00a7cYou do not have permission to place a block near that sign.
|
||||
noPowerTools= You have no power tools assigned.
|
||||
noRules = \u00a7cDer er ingen regler fastsat endnu.
|
||||
noWarpsDefined = Ingen warps defineret
|
||||
none = ingen
|
||||
notAllowedToQuestion = \u00a7cDu er ikke autoriseret til at bruge et sp\u00f8rgsm\u00e5l.
|
||||
notAllowedToShout = \u00a7cDu er ikke autoriseret til at r\u00e5be.
|
||||
notEnoughMoney = Du har ikke tilstr\u00e6kkelig penge.
|
||||
notRecommendedBukkit = Bukkit version er ikke den anbefalede byg for Essentials.
|
||||
notSupportedYet = Ikke underst\u00f8ttet endnu.
|
||||
now = nu
|
||||
numberRequired = Der skal v\u00e6re et nummer, fjolle.
|
||||
onlyDayNight = /time underst\u00f8tter kun day/night.
|
||||
onlyPlayers = Kun in-game spillere kan bruge {0}.
|
||||
onlySunStorm = /weather only supports sun/storm.
|
||||
pTimeCurrent = \u00a7e{0}''s\u00a7f time is {1}.
|
||||
pTimeCurrentFixed = \u00a7e{0}''s\u00a7f time is fixed to {1}.
|
||||
pTimeNormal = \u00a7e{0}''s\u00a7f time is normal and matches the server.
|
||||
pTimeOthersPermission = \u00a7cYou are not authorized to set other players'' time.
|
||||
pTimePlayers = These players have their own time:
|
||||
pTimeReset = Player time has been reset for: \u00a7e{0}
|
||||
pTimeSet = Player time is set to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
pTimeSetFixed = Player time is fixed to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
parseError = Fejl ved parsing {0} p\u00e5 linje {1}
|
||||
pendingTeleportCancelled = \u00a7cVentende teleportations anmodning aflyst.
|
||||
permissionsError = Mangler Permissions/GroupManager; chat pr\u00e6fikser/suffikser vil v\u00e6re sl\u00e5et fra.
|
||||
playerBanned = \u00a7cPlayer {0} banned {1} for {2}
|
||||
playerInJail = \u00a7cSpiller er allerede i f\u00e6ngsel {0}.
|
||||
playerJailed = \u00a77Spiller {0} f\u00e6ngslet.
|
||||
playerJailedFor = \u00a77Spiller {0} f\u00e6ngslet for {1}.
|
||||
playerKicked = \u00a7cPlayer {0} kicked {1} for {2}
|
||||
playerMuted = \u00a77You have been muted
|
||||
playerMutedFor = \u00a77You have been muted for {0}
|
||||
playerNeverOnServer = \u00a7cSpiller {0} var aldrig p\u00e5 denne server.
|
||||
playerNotFound = \u00a7cSpiller ikke fundet.
|
||||
playerUnmuted = \u00a77You have been unmuted
|
||||
pong = Pong!
|
||||
possibleWorlds = \u00a77Mulige verdener er numrene 0 igennem {0}.
|
||||
powerToolAir = Kommando kan ikke blive tildelt luft.
|
||||
powerToolAlreadySet = Command \u00a7c{0}\u00a7f is already assigned to {1}.
|
||||
powerToolAttach = \u00a7c{0}\u00a7f command assigned to {1}.
|
||||
powerToolClearAll = All powertool commands have been cleared.
|
||||
powerToolList = {1} has the following commands: \u00a7c{0}\u00a7f.
|
||||
powerToolListEmpty = {0} has no commands assigned.
|
||||
powerToolNoSuchCommandAssigned = Command \u00a7c{0}\u00a7f has not been assigned to {1}.
|
||||
powerToolRemove = Command \u00a7c{0}\u00a7f removed from {1}.
|
||||
powerToolRemoveAll = All commands removed from {0}.
|
||||
powerToolsEnabled= All of your power tools have been enabled.
|
||||
noRules=\u00a7cDer er ingen regler fastsat endnu.
|
||||
noWarpsDefined=Ingen warps defineret
|
||||
none=ingen
|
||||
notAllowedToQuestion=\u00a7cDu er ikke autoriseret til at bruge et sp\u00f8rgsm\u00e5l.
|
||||
notAllowedToShout=\u00a7cDu er ikke autoriseret til at r\u00e5be.
|
||||
notEnoughMoney=Du har ikke tilstr\u00e6kkelig penge.
|
||||
notRecommendedBukkit=Bukkit version er ikke den anbefalede byg for Essentials.
|
||||
notSupportedYet=Ikke underst\u00f8ttet endnu.
|
||||
now=nu
|
||||
numberRequired=Der skal v\u00e6re et nummer, fjolle.
|
||||
onlyDayNight=/time underst\u00f8tter kun day/night.
|
||||
onlyPlayers=Kun in-game spillere kan bruge {0}.
|
||||
onlySunStorm=/weather only supports sun/storm.
|
||||
pTimeCurrent=\u00a7e{0}''s\u00a7f time is {1}.
|
||||
pTimeCurrentFixed=\u00a7e{0}''s\u00a7f time is fixed to {1}.
|
||||
pTimeNormal=\u00a7e{0}''s\u00a7f time is normal and matches the server.
|
||||
pTimeOthersPermission=\u00a7cYou are not authorized to set other players'' time.
|
||||
pTimePlayers=These players have their own time:
|
||||
pTimeReset=Player time has been reset for: \u00a7e{0}
|
||||
pTimeSet=Player time is set to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
pTimeSetFixed=Player time is fixed to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
parseError=Fejl ved parsing {0} p\u00e5 linje {1}
|
||||
pendingTeleportCancelled=\u00a7cVentende teleportations anmodning aflyst.
|
||||
permissionsError=Mangler Permissions/GroupManager; chat pr\u00e6fikser/suffikser vil v\u00e6re sl\u00e5et fra.
|
||||
playerBanned=\u00a7cPlayer {0} banned {1} for {2}
|
||||
playerInJail=\u00a7cSpiller er allerede i f\u00e6ngsel {0}.
|
||||
playerJailed=\u00a77Spiller {0} f\u00e6ngslet.
|
||||
playerJailedFor= \u00a77Spiller {0} f\u00e6ngslet for {1}.
|
||||
playerKicked=\u00a7cPlayer {0} kicked {1} for {2}
|
||||
playerMuted=\u00a77You have been muted
|
||||
playerMutedFor=\u00a77You have been muted for {0}
|
||||
playerNeverOnServer=\u00a7cSpiller {0} var aldrig p\u00e5 denne server.
|
||||
playerNotFound=\u00a7cSpiller ikke fundet.
|
||||
playerUnmuted=\u00a77You have been unmuted
|
||||
pong=Pong!
|
||||
possibleWorlds=\u00a77Mulige verdener er numrene 0 igennem {0}.
|
||||
powerToolAir=Kommando kan ikke blive tildelt luft.
|
||||
powerToolAlreadySet=Command \u00a7c{0}\u00a7f is already assigned to {1}.
|
||||
powerToolAttach=\u00a7c{0}\u00a7f command assigned to {1}.
|
||||
powerToolClearAll=All powertool commands have been cleared.
|
||||
powerToolList={1} has the following commands: \u00a7c{0}\u00a7f.
|
||||
powerToolListEmpty={0} has no commands assigned.
|
||||
powerToolNoSuchCommandAssigned=Command \u00a7c{0}\u00a7f has not been assigned to {1}.
|
||||
powerToolRemove=Command \u00a7c{0}\u00a7f removed from {1}.
|
||||
powerToolRemoveAll=All commands removed from {0}.
|
||||
powerToolsDisabled= All of your power tools have been disabled.
|
||||
protectionOwner = \u00a76[EssentialsProtect] Beskyttelses ejer: {0}
|
||||
questionFormat = \u00a77[Sp\u00f8rgsm\u00e5l]\u00a7f {0}
|
||||
reloadAllPlugins = \u00a77Genindl\u00e6ste alle tilf\u00f8jelser.
|
||||
repair = You have successfully repaired your: \u00a7e{0}.
|
||||
repairAlreadyFixed = \u00a77This item does not need repairing.
|
||||
repairInvalidType = \u00a7cThis item cannot be repaired.
|
||||
repairNone = There were no items that needing repairing.
|
||||
requestAccepted = \u00a77Teleporterings anmodning n\u00e6gtet.
|
||||
requestAcceptedFrom = \u00a77{0} accepted your teleport request.
|
||||
requestDenied = \u00a77Teleporterings anmodning n\u00e6gtet.
|
||||
requestDeniedFrom = \u00a77{0} denied your teleport request.
|
||||
requestSent = \u00a77Anmodning sendt til {0}\u00a77.
|
||||
returnPlayerToJailError = En fejl opstod ved fors\u00f8g p\u00e5 at returnere spiller til f\u00e6ngsel.
|
||||
second = sekunde
|
||||
seconds = sekunder
|
||||
seenOffline = Spiller {0} er offline siden {1}
|
||||
seenOnline = Spiller {0} er online siden {1}
|
||||
serverFull = Server er fuld
|
||||
setSpawner = Changed spawner type to {0}
|
||||
sheepMalformedColor = Misdannet farve.
|
||||
shoutFormat = \u00a77[R\u00e5b]\u00a7f {0}
|
||||
signFormatFail = \u00a74[{0}]
|
||||
signFormatSuccess = \u00a71[{0}]
|
||||
signFormatTemplate = [{0}]
|
||||
signProtectInvalidLocation = \u00a74You are not allowed to create sign here.
|
||||
similarWarpExist = En warp med lignende tekst eksisterer allerede.
|
||||
slimeMalformedSize = Misdannet st\u00f8rrelse.
|
||||
soloMob = Den mob kan godt lide at v\u00e6re alene
|
||||
spawnSet = \u00a77Spawn placering sat for gruppe {0}.
|
||||
spawned = spawnet
|
||||
suicideMessage = \u00a77Farvel grusomme verden...
|
||||
suicideSuccess = \u00a77{0} tog sit eget liv
|
||||
takenFromAccount = \u00a7c{0} er taget fra din konto.
|
||||
takenFromOthersAccount = \u00a7c{0} er blevet taget fra {1} konto.
|
||||
teleportAAll = \u00a77Teleporting request sent to all players...
|
||||
teleportAll = \u00a77Teleportere alle spillere...
|
||||
teleportAtoB = \u00a77{0}\u00a77 teleporterede dig til {1}\u00a77.
|
||||
teleportDisabled = {0} har teleportation deaktiveret.
|
||||
teleportHereRequest = \u00a7c{0}\u00a7c har anmodet at du teleportere dig til ham/hende.
|
||||
teleportNewPlayerError = Failed ved teleportering af ny spiller
|
||||
teleportRequest = \u00a7c{0}\u00a7c har anmodet om at teleportere til dig.
|
||||
teleportTop = \u00a77Teleportere til toppen.
|
||||
teleportationCommencing = \u00a77Teleportering begynder...
|
||||
teleportationDisabled = \u00a77Teleportering deaktiveret.
|
||||
teleportationEnabled = \u00a77Teleportering aktiveret.
|
||||
teleporting = \u00a77Teleportere...
|
||||
teleportingPortal = \u00a77Teleporterede via portal.
|
||||
tempBanned = Midlertidigt bannet fra serveren for {0}
|
||||
tempbanExempt = \u00a77You may not tempban that player
|
||||
thunder = Du {0} torden i din verden
|
||||
thunderDuration = Du {0} torden i din verden i {1} sekunder.
|
||||
timeBeforeHeal = Tid inden n\u00e6ste helbredelse: {0}
|
||||
timeBeforeTeleport = Tid f\u00f8r n\u00e6ste teleportering: {0}
|
||||
timeFormat = \u00a73{0}\u00a7f or \u00a73{1}\u00a7f or \u00a73{2}\u00a7f
|
||||
timePattern = (?:([0-9]+)\\s*[a\u00e5y][a-z]*[,\\s]*)?(?:([0-9]+)\\s*mo[a-z]*[,\\s]*)?(?:([0-9]+)\\s*[wu][a-z]*[,\\s]*)?(?:([0-9]+)\\s*d[a-z]*[,\\s]*)?(?:([0-9]+)\\s*[ht][a-z]*[,\\s]*)?(?:([0-9]+)\\s*m[a-z]*[,\\s]*)?(?:([0-9]+)\\s*(?:s[a-z]*)?)?
|
||||
timeSet = Tid er sat i alle verdener.
|
||||
timeSetPermission = \u00a7cYou are not authorized to set the time.
|
||||
timeWorldCurrent = The current time in {0} is \u00a73{1}
|
||||
timeWorldSet = The time was set to {0} in: \u00a7c{1}
|
||||
tradeCompleted = \u00a77Forhandling fuldf\u00f8rt.
|
||||
tradeSignEmpty = Forhandlings skiltet har ikke nok forsyning tilbage.
|
||||
tradeSignEmptyOwner = There is nothing to collect from this trade sign.
|
||||
treeFailure = \u00a7cTr\u00e6 genererings fejl. Pr\u00f8v igen p\u00e5 gr\u00e6s eller jord.
|
||||
treeSpawned = \u00a77Tr\u00e6 fremkaldt.
|
||||
typeTpaccept = \u00a77For at teleportere, skriv \u00a7c/tpaccept\u00a77.
|
||||
typeTpdeny = \u00a77For at n\u00e6gte denne anmodning, skriv \u00a7c/tpdeny\u00a77.
|
||||
typeWorldName = \u00a77Du kan ogs\u00e5 skrive nanvet p\u00e5 en specifik verden.
|
||||
unableToSpawnMob = Kunne ikke fremkalde mob.
|
||||
unbannedIP = Tilgav IP addresse, ikke l\u00e6ngere bannet.
|
||||
unbannedPlayer = Tilgav spiller, ikke l\u00e6ngere bannet.
|
||||
unignorePlayer = Du ignorere ikke spiller {0} mere.
|
||||
unknownItemId = Ukendt element id: {0}
|
||||
unknownItemInList = Ukendt element {0} i {1} liste.
|
||||
unknownItemName = Ukendt element navn: {0}
|
||||
unlimitedItemPermission = \u00a7cIngen tilladelse til ubegr\u00e6nset element {0}.
|
||||
unlimitedItems = Uendelige elementer:
|
||||
unmutedPlayer = Spiller {0} ikke-d\u00e6mpet.
|
||||
upgradingFilesError = Fejl under opgradering af filer
|
||||
userCreatedPortal = {0} bruge en portal og genererede en udgangs portal.
|
||||
userDoesNotExist = Brugeren {0} eksisterer ikke.
|
||||
userIsAway = {0} er nu AFK
|
||||
userIsNotAway = {0} er ikke l\u00e6ngere AFK
|
||||
userJailed = \u00a77Du er blevet f\u00e6ngslet
|
||||
userUsedPortal = {0} brugte en eksisterende udgangs portal.
|
||||
userdataMoveBackError = Kunne ikke flytte userdata/{0}.tmp til userdata/{1}
|
||||
userdataMoveError = Kunne ikke flytte userdata/{0} til userdata/{1}.tmp
|
||||
usingPortal = \u00a77Teleporterede via portal til en eksisterende portal.
|
||||
usingTempFolderForTesting = Bruger temp mappe for testing:
|
||||
versionMismatch = Version matcher ikke! Venligst opdater {0} til den nyeste version.
|
||||
versionMismatchAll = Version matcher ikke! Venligst opdater alle Essentials jar''er til samme version.
|
||||
voiceSilenced = \u00a77Din stemme er blevet d\u00e6mpet
|
||||
warpDeleteError = Problem ved sletning af warp filen.
|
||||
warpListPermission = \u00a7cDu har ikke tilladelse til at liste de warps.
|
||||
warpNotExist = Den warp eksisterer ikke.
|
||||
warpSet = \u00a77Warp {0} sat.
|
||||
warpUsePermission = \u00a7cDu har ikke tilladelse til at benytte den warp.
|
||||
warpingTo = \u00a77Warper til {0}.
|
||||
warpsCount = \u00a77There are {0} warps. Showing page {1} of {2}.
|
||||
weatherStorm = \u00a77Du har sat vejret til storm i {0}
|
||||
weatherStormFor = \u00a77Du har sat vejret til storm i {0} i {1} sekunder
|
||||
weatherSun = \u00a77Du har sat vejret til sol i {0}
|
||||
weatherSunFor = \u00a77Du har sat vejret til sol i {0} i {1} sekunder
|
||||
whoisGeoLocation = \u00a79 - Placering: {0}
|
||||
whoisHealth = \u00a79 - Helbred: {0}/20
|
||||
whoisIPAddress = \u00a79 - IP Addresse: {0}
|
||||
whoisIs = {0} er {1}
|
||||
whoisLocation = \u00a79 - Placering: ({0}, {1}, {2}, {3})
|
||||
whoisMoney = \u00a79 - Penge: {0}
|
||||
whoisStatusAvailable = \u00a79 - Status: Tilg\u00e6ngelig
|
||||
whoisStatusAway = \u00a79 - Status: \u00a7cV\u00e6k\u00a7f
|
||||
worth = \u00a77Stak af {0} v\u00e6rd \u00a7c{1}\u00a77 ({2} element(er) for {3} hver)
|
||||
worthMeta = \u00a77Stak af {0} med metadata af {1} v\u00e6rd \u00a7c{2}\u00a77 ({3} element(er) for {4} hver)
|
||||
worthSet = V\u00e6rd v\u00e6rdi sat
|
||||
year = \u00e5r
|
||||
years = \u00e5r
|
||||
youAreHealed = \u00a77Du er blevet helbredt.
|
||||
youHaveNewMail = \u00a7cDu har {0} beskeder!\u00a7f Type \u00a77/post l\u00e6s\u00a7f for at se din post.
|
||||
|
||||
|
||||
powerToolsEnabled= All of your power tools have been enabled.
|
||||
protectionOwner=\u00a76[EssentialsProtect] Beskyttelses ejer: {0}
|
||||
questionFormat=\u00a77[Sp\u00f8rgsm\u00e5l]\u00a7f {0}
|
||||
reloadAllPlugins=\u00a77Genindl\u00e6ste alle tilf\u00f8jelser.
|
||||
repair=You have successfully repaired your: \u00a7e{0}.
|
||||
repairAlreadyFixed=\u00a77This item does not need repairing.
|
||||
repairInvalidType=\u00a7cThis item cannot be repaired.
|
||||
repairNone=There were no items that needing repairing.
|
||||
requestAccepted=\u00a77Teleporterings anmodning n\u00e6gtet.
|
||||
requestAcceptedFrom=\u00a77{0} accepted your teleport request.
|
||||
requestDenied=\u00a77Teleporterings anmodning n\u00e6gtet.
|
||||
requestDeniedFrom=\u00a77{0} denied your teleport request.
|
||||
requestSent=\u00a77Anmodning sendt til {0}\u00a77.
|
||||
returnPlayerToJailError=En fejl opstod ved fors\u00f8g p\u00e5 at returnere spiller til f\u00e6ngsel.
|
||||
second=sekunde
|
||||
seconds=sekunder
|
||||
seenOffline=Spiller {0} er offline siden {1}
|
||||
seenOnline=Spiller {0} er online siden {1}
|
||||
serverFull=Server er fuld
|
||||
setSpawner=Changed spawner type to {0}
|
||||
sheepMalformedColor=Misdannet farve.
|
||||
shoutFormat=\u00a77[R\u00e5b]\u00a7f {0}
|
||||
signFormatFail=\u00a74[{0}]
|
||||
signFormatSuccess=\u00a71[{0}]
|
||||
signFormatTemplate=[{0}]
|
||||
signProtectInvalidLocation=\u00a74You are not allowed to create sign here.
|
||||
similarWarpExist=En warp med lignende tekst eksisterer allerede.
|
||||
slimeMalformedSize=Misdannet st\u00f8rrelse.
|
||||
soloMob=Den mob kan godt lide at v\u00e6re alene
|
||||
spawnSet=\u00a77Spawn placering sat for gruppe {0}.
|
||||
spawned=spawnet
|
||||
suicideMessage=\u00a77Farvel grusomme verden...
|
||||
suicideSuccess= \u00a77{0} tog sit eget liv
|
||||
survival=survival
|
||||
takenFromAccount=\u00a7c{0} er taget fra din konto.
|
||||
takenFromOthersAccount=\u00a7c{0} er blevet taget fra {1} konto.
|
||||
teleportAAll=\u00a77Teleporting request sent to all players...
|
||||
teleportAll=\u00a77Teleportere alle spillere...
|
||||
teleportAtoB=\u00a77{0}\u00a77 teleporterede dig til {1}\u00a77.
|
||||
teleportDisabled={0} har teleportation deaktiveret.
|
||||
teleportHereRequest=\u00a7c{0}\u00a7c har anmodet at du teleportere dig til ham/hende.
|
||||
teleportNewPlayerError=Failed ved teleportering af ny spiller
|
||||
teleportRequest=\u00a7c{0}\u00a7c har anmodet om at teleportere til dig.
|
||||
teleportTop=\u00a77Teleportere til toppen.
|
||||
teleportationCommencing=\u00a77Teleportering begynder...
|
||||
teleportationDisabled=\u00a77Teleportering deaktiveret.
|
||||
teleportationEnabled=\u00a77Teleportering aktiveret.
|
||||
teleporting=\u00a77Teleportere...
|
||||
teleportingPortal=\u00a77Teleporterede via portal.
|
||||
tempBanned=Midlertidigt bannet fra serveren for {0}
|
||||
tempbanExempt=\u00a77You may not tempban that player
|
||||
thunder= Du {0} torden i din verden
|
||||
thunderDuration=Du {0} torden i din verden i {1} sekunder.
|
||||
timeBeforeHeal=Tid inden n\u00e6ste helbredelse: {0}
|
||||
timeBeforeTeleport=Tid f\u00f8r n\u00e6ste teleportering: {0}
|
||||
timeFormat=\u00a73{0}\u00a7f or \u00a73{1}\u00a7f or \u00a73{2}\u00a7f
|
||||
timePattern=(?:([0-9]+)\\s*[a\u00e5y][a-z]*[,\\s]*)?(?:([0-9]+)\\s*mo[a-z]*[,\\s]*)?(?:([0-9]+)\\s*[wu][a-z]*[,\\s]*)?(?:([0-9]+)\\s*d[a-z]*[,\\s]*)?(?:([0-9]+)\\s*[ht][a-z]*[,\\s]*)?(?:([0-9]+)\\s*m[a-z]*[,\\s]*)?(?:([0-9]+)\\s*(?:s[a-z]*)?)?
|
||||
timeSet=Tid er sat i alle verdener.
|
||||
timeSetPermission=\u00a7cYou are not authorized to set the time.
|
||||
timeWorldCurrent=The current time in {0} is \u00a73{1}
|
||||
timeWorldSet=The time was set to {0} in: \u00a7c{1}
|
||||
tradeCompleted=\u00a77Forhandling fuldf\u00f8rt.
|
||||
tradeSignEmpty=Forhandlings skiltet har ikke nok forsyning tilbage.
|
||||
tradeSignEmptyOwner=There is nothing to collect from this trade sign.
|
||||
treeFailure=\u00a7cTr\u00e6 genererings fejl. Pr\u00f8v igen p\u00e5 gr\u00e6s eller jord.
|
||||
treeSpawned=\u00a77Tr\u00e6 fremkaldt.
|
||||
true=true
|
||||
typeTpaccept=\u00a77For at teleportere, skriv \u00a7c/tpaccept\u00a77.
|
||||
typeTpdeny=\u00a77For at n\u00e6gte denne anmodning, skriv \u00a7c/tpdeny\u00a77.
|
||||
typeWorldName=\u00a77Du kan ogs\u00e5 skrive nanvet p\u00e5 en specifik verden.
|
||||
unableToSpawnMob=Kunne ikke fremkalde mob.
|
||||
unbannedIP=Tilgav IP addresse, ikke l\u00e6ngere bannet.
|
||||
unbannedPlayer=Tilgav spiller, ikke l\u00e6ngere bannet.
|
||||
unignorePlayer=Du ignorere ikke spiller {0} mere.
|
||||
unknownItemId=Ukendt element id: {0}
|
||||
unknownItemInList=Ukendt element {0} i {1} liste.
|
||||
unknownItemName=Ukendt element navn: {0}
|
||||
unlimitedItemPermission=\u00a7cIngen tilladelse til ubegr\u00e6nset element {0}.
|
||||
unlimitedItems=Uendelige elementer:
|
||||
unmutedPlayer=Spiller {0} ikke-d\u00e6mpet.
|
||||
upgradingFilesError=Fejl under opgradering af filer
|
||||
userDoesNotExist=Brugeren {0} eksisterer ikke.
|
||||
userIsAway={0} er nu AFK
|
||||
userIsNotAway={0} er ikke l\u00e6ngere AFK
|
||||
userJailed=\u00a77Du er blevet f\u00e6ngslet
|
||||
userUsedPortal={0} brugte en eksisterende udgangs portal.
|
||||
userdataMoveBackError=Kunne ikke flytte userdata/{0}.tmp til userdata/{1}
|
||||
userdataMoveError=Kunne ikke flytte userdata/{0} til userdata/{1}.tmp
|
||||
usingTempFolderForTesting=Bruger temp mappe for testing:
|
||||
versionMismatch=Version matcher ikke! Venligst opdater {0} til den nyeste version.
|
||||
versionMismatchAll=Version matcher ikke! Venligst opdater alle Essentials jar''er til samme version.
|
||||
voiceSilenced=\u00a77Din stemme er blevet d\u00e6mpet
|
||||
warpDeleteError=Problem ved sletning af warp filen.
|
||||
warpListPermission=\u00a7cDu har ikke tilladelse til at liste de warps.
|
||||
warpNotExist=Den warp eksisterer ikke.
|
||||
warpSet=\u00a77Warp {0} sat.
|
||||
warpUsePermission=\u00a7cDu har ikke tilladelse til at benytte den warp.
|
||||
warpingTo=\u00a77Warper til {0}.
|
||||
warps=Warps: {0}
|
||||
warpsCount=\u00a77There are {0} warps. Showing page {1} of {2}.
|
||||
weatherStorm=\u00a77Du har sat vejret til storm i {0}
|
||||
weatherStormFor=\u00a77Du har sat vejret til storm i {0} i {1} sekunder
|
||||
weatherSun=\u00a77Du har sat vejret til sol i {0}
|
||||
weatherSunFor=\u00a77Du har sat vejret til sol i {0} i {1} sekunder
|
||||
whoisGamemode=\u00a79 - Gamemode: {0}
|
||||
whoisGeoLocation=\u00a79 - Placering: {0}
|
||||
whoisGod=\u00a79 - God mode: {0}
|
||||
whoisHealth=\u00a79 - Helbred: {0}/20
|
||||
whoisIPAddress=\u00a79 - IP Addresse: {0}
|
||||
whoisIs={0} er {1}
|
||||
whoisLocation=\u00a79 - Placering: ({0}, {1}, {2}, {3})
|
||||
whoisMoney=\u00a79 - Penge: {0}
|
||||
whoisOP=\u00a79 - OP: {0}
|
||||
whoisStatusAvailable=\u00a79 - Status: Tilg\u00e6ngelig
|
||||
whoisStatusAway=\u00a79 - Status: \u00a7cV\u00e6k\u00a7f
|
||||
worth=\u00a77Stak af {0} v\u00e6rd \u00a7c{1}\u00a77 ({2} element(er) for {3} hver)
|
||||
worthMeta=\u00a77Stak af {0} med metadata af {1} v\u00e6rd \u00a7c{2}\u00a77 ({3} element(er) for {4} hver)
|
||||
worthSet=V\u00e6rd v\u00e6rdi sat
|
||||
year=\u00e5r
|
||||
years=\u00e5r
|
||||
youAreHealed=\u00a77Du er blevet helbredt.
|
||||
youHaveNewMail=\u00a7cDu har {0} beskeder!\u00a7f Type \u00a77/post l\u00e6s\u00a7f for at se din post.
|
||||
|
@@ -2,371 +2,377 @@
|
||||
# Single quotes have to be doubled: ''
|
||||
# Translations start here
|
||||
# by:
|
||||
addedToAccount = \u00a7a{0} wurden zu deiner Geldb\u00f6rse hinzugef\u00fcgt.
|
||||
addedToOthersAccount = \u00a7a{0} wurden zu {1}s Konto hinzugef\u00fcgt.
|
||||
alertBroke = zerst\u00f6rt:
|
||||
alertFormat = \u00a73[{0}] \u00a7f {1} \u00a76 {2} bei: {3}
|
||||
alertPlaced = platziert:
|
||||
alertUsed = benutzt:
|
||||
autoAfkKickReason = Du wurdest gekickt, weil du f\u00fcr {0} Minuten inaktiv warst.
|
||||
backAfterDeath = \u00a77Benutze den Befehl /back um zu deinem Todespunkt zur\u00fcck zu kehren.
|
||||
backUsageMsg = \u00a77Kehre zur letzten Position zur\u00fcck.
|
||||
backupFinished = Backup beendet
|
||||
backupStarted = Backup gestartet
|
||||
balance = \u00a77Geldb\u00f6rse: {0}
|
||||
balanceTop = \u00a77 Top {0} Guthaben
|
||||
banExempt = \u00a7cDu kannst diesen Spieler nicht sperren.
|
||||
banIpAddress = \u00a77IP-Adresse gesperrt.
|
||||
bannedIpsFileError = Fehler beim Lesen von banned-ips.txt
|
||||
bannedIpsFileNotFound = banned-ips.txt nicht gefunden
|
||||
bannedPlayersFileError = Fehler beim Lesen von banned-players.txt
|
||||
bannedPlayersFileNotFound = banned-players.txt nicht gefunden
|
||||
bigTreeFailure = \u00a7cFehler beim Pflanzen eines grossen Baums. Versuch es auf Gras oder Dreck.
|
||||
bigTreeSuccess = \u00a77Grosser Baum gepflanzt.
|
||||
broadcast = [\u00a7cRundruf\u00a7f]\u00a7a {0}
|
||||
buildAlert = \u00a7cDu hast keine Rechte zum Bauen.
|
||||
bukkitFormatChanged = Bukkit-Versionsformat hat sich ge\u00e4ndert. Version nicht kontrolliert.
|
||||
burnMsg = \u00a77Du hast {0} f\u00fcr {1} Sekunden in Flammen gesetzt.
|
||||
canTalkAgain = \u00a77Du kannst wieder sprechen.
|
||||
cantFindGeoIpDB = Kann GeoIP-Datenbank nicht finden!
|
||||
cantReadGeoIpDB = Fehler beim Einlesen der GeoIP-Datenbank!
|
||||
cantSpawnItem = \u00a7cDu darfst {0} nicht erzeugen.
|
||||
commandFailed = Befehl {0} scheiterte:
|
||||
commandHelpFailedForPlugin=Fehler beim Abrufen der Hilfe f\u00fcr: {0}
|
||||
commandNotLoaded = \u00a7cBefehl {0} ist nicht richtig geladen.
|
||||
compassBearing = \u00a77Peilung: {0} ({1} Grad).
|
||||
configFileMoveError = Verschieben von config.yml in den Sicherheitskopien-Ordner gescheitert.
|
||||
configFileRenameError = Verschieben einer tempor\u00e4ren Datei nach config.yml gescheitert.
|
||||
connectedPlayers = Verbundene Spieler:
|
||||
connectionFailed = Fehler beim Verbindungsaufbau.
|
||||
cooldownWithMessage = \u00a7cBeschr\u00e4nkung: {0}
|
||||
corruptNodeInConfig = \u00a74Hinweis: Deine Konfigurationsdatei hat einen ung\u00fcltigen Knoten {0}.
|
||||
couldNotFindTemplate = Vorlage {0} konnte nicht gefunden werden.
|
||||
creatingConfigFromTemplate = Erstelle Konfiguration aus Vorlage: {0}
|
||||
creatingEmptyConfig = Erstelle leere Konfiguration: {0}
|
||||
creatingPortal = Erzeuge Portal bei {0},{1},{2}.
|
||||
day = Tag
|
||||
days = Tage
|
||||
defaultBanReason = Der Bann-Hammer hat gesprochen!
|
||||
deleteFileError = Konnte Datei nicht l\u00f6schen: {0}
|
||||
deleteHome = \u00a77Zuhause {0} wurde gel\u00f6scht.
|
||||
deleteJail = \u00a77Gef\u00e4ngnis {0} wurde gel\u00f6scht.
|
||||
deleteWarp = \u00a77Warp-Punkt {0} wurde gel\u00f6scht.
|
||||
deniedAccessCommand = {0} hat keinen Zugriff auf diesen Befehl.
|
||||
dependancyDownloaded = [Essentials] Abh\u00e4ngigkeit {0} erfolgreich runtergeladen.
|
||||
dependancyException = [Essentials] W\u00e4hrend dem Download von einer Abh\u00e4ngigkeit ist ein Fehler aufgetreten.
|
||||
dependancyNotFound = [Essentials] Eine erforderliche Abh\u00e4ngigkeit wurde nicht gefunde, Download startet jetzt..
|
||||
depth = \u00a77Du bist auf Meeresh\u00f6he.
|
||||
depthAboveSea = \u00a77Du bist {0} Bl\u00f6cke \u00fcber Meeresh\u00f6he.
|
||||
depthBelowSea = \u00a77Du bist {0} Bl\u00f6cke unter Meeresh\u00f6he.
|
||||
destinationNotSet = Ziel nicht gesetzt
|
||||
disableUnlimited = \u00a77Deaktiviere unendliches Platzieren von {0} f\u00fcr {1}.
|
||||
disabled = deaktiviert
|
||||
dontMoveMessage = \u00a77Teleportvorgang startet in {0}. Beweg dich nicht.
|
||||
downloadingGeoIp = Lade GeoIP-Datenbank ... dies kann etwas dauern (country: 0.6 MB, city: 20MB)
|
||||
duplicatedUserdata = Doppelte Datei in userdata: {0} und {1}
|
||||
enableUnlimited = \u00a77Gebe {1} unendliche Mengen von {0}.
|
||||
enabled = aktiviert
|
||||
errorCallingCommand = Fehler beim Aufrufen des Befehls /{0}
|
||||
errorWithMessage = \u00a7cFehler: {0}
|
||||
essentialsReload = \u00a77Essentials neu geladen {0}
|
||||
extinguish = \u00a77Du hast dich selbst gel\u00f6scht.
|
||||
extinguishOthers = \u00a77Du hast {0} gel\u00f6scht.
|
||||
failedToCloseConfig = Fehler beim Schliessen der Konfiguration {0}
|
||||
failedToCreateConfig = Fehler beim Erstellen der Konfiguration {0}
|
||||
failedToWriteConfig = Fehler beim Schreiben der Konfiguration {0}
|
||||
fileRenameError = Umbenennen von {0} gescheitert.
|
||||
foreverAlone = \u00a7cDu hast niemanden, dem du antworten kannst.
|
||||
freedMemory = {0} MB frei gemacht.
|
||||
gcchunks = Chunks,
|
||||
gcentities = Einheiten
|
||||
gcfree = Freier Speicher: {0} MB
|
||||
gcmax = Maximaler Speicher: {0} MB
|
||||
gctotal = Reservierter Speicher: {0} MB
|
||||
generatingPortal = \u00a77Erstelle ein Ausgangsportal.
|
||||
geoIpUrlEmpty = GeoIP Download-URL ist leer.
|
||||
geoIpUrlInvalid = GeoIP Download-URL ist ung\u00fcltig.
|
||||
geoipJoinFormat = Spieler {0} kommt aus {1}
|
||||
godDisabledFor = deaktiviert f\u00fcr {0}
|
||||
godEnabledFor = aktiviert f\u00fcr {0}
|
||||
godMode = \u00a77Unsterblichkeit {0}.
|
||||
haveBeenReleased = \u00a77Du wurdest frei gelassen.
|
||||
heal = \u00a77Du wurdest geheilt.
|
||||
healOther = \u00a77{0} geheilt.
|
||||
helpConsole = Um die Hilfe der Konsole zu sehen, schreibe ?.
|
||||
helpOp = \u00a7c[Hilfe]\u00a7f \u00a77{0}:\u00a7f {1}
|
||||
helpPages = Seite \u00a7c{0}\u00a7f von \u00a7c{1}\u00a7f:
|
||||
holeInFloor = Loch im Boden
|
||||
homeSet = \u00a77Zuhause gesetzt.
|
||||
homeSetToBed = \u00a77Dein Zuhause ist nun an diesem Bett.
|
||||
homes = Heime: {0}
|
||||
hour = Stunde
|
||||
hours = Stunden
|
||||
ignorePlayer = Du ignorierst ab jetzt Spieler {0}.
|
||||
illegalDate = Ung\u00fcltiges Datumsformat.
|
||||
infoChapter = W\u00e4hle Kapitel:
|
||||
infoChapterPages = Kapitel {0}, Seite \u00a7c{1}\u00a7f von \u00a7c{2}\u00a7f:
|
||||
infoFileDoesNotExist = Datei info.txt existiert nicht. Erzeuge eine neue Datei.
|
||||
infoPages = Seite \u00a7c{0}\u00a7f von \u00a7c{1}\u00a7f:
|
||||
infoUnknownChapter = Unbekanntes Kapitel:
|
||||
invBigger = Das andere Inventar ist gr\u00f6sser als deins.
|
||||
invRestored = Dein Inventar wurde wieder hergestellt.
|
||||
invSee = Du siehst das Inventar von {0}.
|
||||
invSeeHelp = Benutze /invsee um dein Inventar wiederherzustellen.
|
||||
invalidCharge = \u00a7cUng\u00fcltige Verf\u00fcgung.
|
||||
invalidMob = Ung\u00fcltiger Monstername.
|
||||
invalidServer = Ung\u00fcltiger Server!
|
||||
invalidSignLine = Die Zeile {0} auf dem Schild ist falsch.
|
||||
invalidWorld = \u00a7cUng\u00fcltige Welt.
|
||||
inventoryCleared = \u00a77Inventar geleert.
|
||||
inventoryClearedOthers = \u00a77Inventar von \u00a7c{0}\u00a77 geleert.
|
||||
is = ist
|
||||
itemCannotBeSold = Dieser Gegenstand kann nicht verkauft werden.
|
||||
itemMustBeStacked = Gegenstand muss als Stapel verkauft werden. Eine Anzahl von 2s verkauft 2 Stapel usw.
|
||||
itemNotEnough1 = \u00a7cDu hast nicht genug Gegenst\u00e4nde zum Verkaufen.
|
||||
itemNotEnough2 = \u00a77Wenn du alles verkaufen willst, nutze /sell itemname
|
||||
itemNotEnough3 = \u00a77/sell itemname -1 verkauft alles bis auf eins usw.
|
||||
itemSellAir = Du versuchst Luft zu verkaufen? Nimm einen Gegenstand in die Hand.
|
||||
itemSold = \u00a77Verkauft f\u00fcr \u00a7c{0}\u00a77 ({1} Einheiten je {2})
|
||||
itemSoldConsole = {0} verkauft {1} f\u00fcr \u00a77{2}\u00a77 ({3} Einheiten je {4})
|
||||
itemSpawn = \u00a77Gebe {0}x {1}
|
||||
itemsCsvNotLoaded = Konnte items.csv nicht laden.
|
||||
jailAlreadyIncarcerated = \u00a7cPerson is already in jail: {0}
|
||||
jailMessage = \u00a7cDu hast ein Verbrechen begangen, also hast du Zeit.
|
||||
jailNotExist = Dieses Gef\u00e4ngnis existiert nicht.
|
||||
jailReleased = \u00a77Spieler \u00a7e{0}\u00a77 wurde freigelassen.
|
||||
jailReleasedPlayerNotify = \u00a77Du wurdest freigelassen!
|
||||
jailSentenceExtended = Gef\u00e4ngnisszeit erweitert auf: {0)
|
||||
jailSet = \u00a77Gef\u00e4ngnis {0} wurde erstellt.
|
||||
jumpError = Das w\u00fcrde deinen Computer \u00fcberlasten.
|
||||
kickDefault = Vom Server geworfen
|
||||
kickExempt = \u00a7cDu kannst diesen Spieler nicht rauswerfen.
|
||||
kill = \u00a77{0} get\u00f6tet.
|
||||
kitError = \u00a7cEs gibt keine g\u00fcltigen Ausr\u00fcstungen.
|
||||
kitError2 = \u00a7cDiese Ausr\u00fcstung existiert nicht oder ist ung\u00fcltig.
|
||||
kitErrorHelp = \u00a7cEventuell fehlt bei einem Gegenstand die Menge?
|
||||
kitGive = \u00a77Gebe Ausr\u00fcstung {0}.
|
||||
kitInvFull = \u00a7cDein Inventar ist voll, lege Ausr\u00fcstung auf den Boden
|
||||
kitTimed = \u00a7cDu kannst diese Ausr\u00fcstung nicht innerhalb von {0} anfordern.
|
||||
kits = \u00a77Ausr\u00fcstungen: {0}
|
||||
lightningSmited = \u00a77Du wurdest gepeinigt.
|
||||
lightningUse = \u00a77Peinige {0}
|
||||
loadWarpError = Fehler beim Laden von Warp-Punkt {0}
|
||||
loadinfo = Plugin {0} Version {1} geladen, erstellt von {2}, \u00fcbersetzt von snowleo
|
||||
localFormat = Lokal: <{0}> {1}
|
||||
mailClear = \u00a7cUm deine Nachrichten zu l\u00f6schen, schreibe /mail clear
|
||||
mailCleared = \u00a77Nachrichten gel\u00f6scht!
|
||||
mailSent = \u00a77Nachricht gesendet!
|
||||
markMailAsRead = \u00a7cUm deine Nachrichten zu l\u00f6schen, schreibe /mail clear
|
||||
markedAsAway = \u00a77Du wirst als abwesend angezeigt.
|
||||
markedAsNotAway = \u00a77Du wirst nicht mehr als abwesend angezeigt.
|
||||
maxHomes = Du kannst nicht mehr als {0} Zuhause setzen.
|
||||
mayNotJail = \u00a7cDu kannst diese Person nicht einsperren.
|
||||
me = mir
|
||||
minute = Minute
|
||||
minutes = Minuten
|
||||
missingItems = Du ben\u00f6tigst {0}x {1}.
|
||||
missingPrefixSuffix = Prefix/Suffix fehlt f\u00fcr {0}
|
||||
mobSpawnError = Fehler beim \u00e4ndern des Monster-Spawner.
|
||||
mobSpawnLimit = Anzahl an Monster auf Serverlimit beschr\u00e4nkt
|
||||
mobSpawnTarget = Zielblock, muss ein Monster-Spawner sein.
|
||||
moneyRecievedFrom = \u00a7a{1} hat dir {0} gegeben.
|
||||
moneySentTo = \u00a7aDu hast {1} {0} gegeben.
|
||||
moneyTaken = {0} wurde aus deiner Geldb\u00f6rse genommen.
|
||||
month = Monat
|
||||
months = Monate
|
||||
moreThanZero = Anzahl muss gr\u00f6sser als 0 sein.
|
||||
msgFormat = \u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
|
||||
muteExempt = \u00a7cDu darfst diesen Spieler nicht stumm machen.
|
||||
mutedPlayer = Player {0} ist nun stumm.
|
||||
mutedPlayerFor = Player {0} ist nun stumm f\u00fcr {1}.
|
||||
mutedUserSpeaks = {0} versuchte zu sprechen, aber ist stumm geschaltet.
|
||||
needTpohere = Du brauchst Zugriff auf /tpohere um andere Spieler teleportieren zu k\u00f6nnen.
|
||||
negativeBalanceError = Spieler darf keine Schulden machen.
|
||||
nickChanged = Nickname ge\u00e4ndert.
|
||||
action=* {0} {1}
|
||||
addedToAccount=\u00a7a{0} wurden zu deiner Geldb\u00f6rse hinzugef\u00fcgt.
|
||||
addedToOthersAccount=\u00a7a{0} wurden zu {1}s Konto hinzugef\u00fcgt.
|
||||
alertBroke=zerst\u00f6rt:
|
||||
alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} bei: {3}
|
||||
alertPlaced=platziert:
|
||||
alertUsed=benutzt:
|
||||
autoAfkKickReason=Du wurdest gekickt, weil du f\u00fcr {0} Minuten inaktiv warst.
|
||||
backAfterDeath=\u00a77Benutze den Befehl /back um zu deinem Todespunkt zur\u00fcck zu kehren.
|
||||
backUsageMsg=\u00a77Kehre zur letzten Position zur\u00fcck.
|
||||
backupFinished=Backup beendet
|
||||
backupStarted=Backup gestartet
|
||||
balance=\u00a77Geldb\u00f6rse: {0}
|
||||
balanceTop=\u00a77 Top {0} Guthaben
|
||||
banExempt=\u00a7cDu kannst diesen Spieler nicht sperren.
|
||||
banIpAddress=\u00a77IP-Adresse gesperrt.
|
||||
bannedIpsFileError=Fehler beim Lesen von banned-ips.txt
|
||||
bannedIpsFileNotFound=banned-ips.txt nicht gefunden
|
||||
bannedPlayersFileError=Fehler beim Lesen von banned-players.txt
|
||||
bannedPlayersFileNotFound=banned-players.txt nicht gefunden
|
||||
bigTreeFailure=\u00a7cFehler beim Pflanzen eines grossen Baums. Versuch es auf Gras oder Dreck.
|
||||
bigTreeSuccess= \u00a77Grosser Baum gepflanzt.
|
||||
broadcast=[\u00a7cRundruf\u00a7f]\u00a7a {0}
|
||||
buildAlert=\u00a7cDu hast keine Rechte zum Bauen.
|
||||
bukkitFormatChanged=Bukkit-Versionsformat hat sich ge\u00e4ndert. Version nicht kontrolliert.
|
||||
burnMsg=\u00a77Du hast {0} f\u00fcr {1} Sekunden in Flammen gesetzt.
|
||||
canTalkAgain=\u00a77Du kannst wieder sprechen.
|
||||
cantFindGeoIpDB=Kann GeoIP-Datenbank nicht finden!
|
||||
cantReadGeoIpDB=Fehler beim Einlesen der GeoIP-Datenbank!
|
||||
cantSpawnItem=\u00a7cDu darfst {0} nicht erzeugen.
|
||||
commandFailed=Befehl {0} scheiterte:
|
||||
commandHelpFailedForPlugin=Fehler beim Abrufen der Hilfe f\u00fcr: {0}
|
||||
commandNotLoaded=\u00a7cBefehl {0} ist nicht richtig geladen.
|
||||
compassBearing=\u00a77Peilung: {0} ({1} Grad).
|
||||
configFileMoveError=Verschieben von config.yml in den Sicherheitskopien-Ordner gescheitert.
|
||||
configFileRenameError=Verschieben einer tempor\u00e4ren Datei nach config.yml gescheitert.
|
||||
connectedPlayers=Verbundene Spieler:
|
||||
connectionFailed=Fehler beim Verbindungsaufbau.
|
||||
cooldownWithMessage=\u00a7cBeschr\u00e4nkung: {0}
|
||||
corruptNodeInConfig=\u00a74Hinweis: Deine Konfigurationsdatei hat einen ung\u00fcltigen Knoten {0}.
|
||||
couldNotFindTemplate=Vorlage {0} konnte nicht gefunden werden.
|
||||
creatingConfigFromTemplate=Erstelle Konfiguration aus Vorlage: {0}
|
||||
creatingEmptyConfig=Erstelle leere Konfiguration: {0}
|
||||
creative=creative
|
||||
day=Tag
|
||||
days=Tage
|
||||
defaultBanReason=Der Bann-Hammer hat gesprochen!
|
||||
deleteFileError=Konnte Datei nicht l\u00f6schen: {0}
|
||||
deleteHome=\u00a77Zuhause {0} wurde gel\u00f6scht.
|
||||
deleteJail=\u00a77Gef\u00e4ngnis {0} wurde gel\u00f6scht.
|
||||
deleteWarp=\u00a77Warp-Punkt {0} wurde gel\u00f6scht.
|
||||
deniedAccessCommand={0} hat keinen Zugriff auf diesen Befehl.
|
||||
dependancyDownloaded=[Essentials] Abh\u00e4ngigkeit {0} erfolgreich runtergeladen.
|
||||
dependancyException=[Essentials] W\u00e4hrend dem Download von einer Abh\u00e4ngigkeit ist ein Fehler aufgetreten.
|
||||
dependancyNotFound=[Essentials] Eine erforderliche Abh\u00e4ngigkeit wurde nicht gefunde, Download startet jetzt..
|
||||
depth=\u00a77Du bist auf Meeresh\u00f6he.
|
||||
depthAboveSea=\u00a77Du bist {0} Bl\u00f6cke \u00fcber Meeresh\u00f6he.
|
||||
depthBelowSea=\u00a77Du bist {0} Bl\u00f6cke unter Meeresh\u00f6he.
|
||||
destinationNotSet=Ziel nicht gesetzt
|
||||
disableUnlimited=\u00a77Deaktiviere unendliches Platzieren von {0} f\u00fcr {1}.
|
||||
disabled=deaktiviert
|
||||
dontMoveMessage=\u00a77Teleportvorgang startet in {0}. Beweg dich nicht.
|
||||
downloadingGeoIp=Lade GeoIP-Datenbank ... dies kann etwas dauern (country: 0.6 MB, city: 20MB)
|
||||
duplicatedUserdata=Doppelte Datei in userdata: {0} und {1}
|
||||
enableUnlimited=\u00a77Gebe {1} unendliche Mengen von {0}.
|
||||
enabled=aktiviert
|
||||
errorCallingCommand=Fehler beim Aufrufen des Befehls /{0}
|
||||
errorWithMessage=\u00a7cFehler: {0}
|
||||
essentialsReload=\u00a77Essentials neu geladen {0}
|
||||
extinguish=\u00a77Du hast dich selbst gel\u00f6scht.
|
||||
extinguishOthers=\u00a77Du hast {0} gel\u00f6scht.
|
||||
failedToCloseConfig=Fehler beim Schliessen der Konfiguration {0}
|
||||
failedToCreateConfig=Fehler beim Erstellen der Konfiguration {0}
|
||||
failedToWriteConfig=Fehler beim Schreiben der Konfiguration {0}
|
||||
false=false
|
||||
fileRenameError=Umbenennen von {0} gescheitert.
|
||||
foreverAlone=\u00a7cDu hast niemanden, dem du antworten kannst.
|
||||
freedMemory={0} MB frei gemacht.
|
||||
gameMode=\u00a77Set game mode {0} for {1}.
|
||||
gcchunks= Chunks,
|
||||
gcentities= Einheiten
|
||||
gcfree=Freier Speicher: {0} MB
|
||||
gcmax=Maximaler Speicher: {0} MB
|
||||
gctotal=Reservierter Speicher: {0} MB
|
||||
geoIpUrlEmpty=GeoIP Download-URL ist leer.
|
||||
geoIpUrlInvalid=GeoIP Download-URL ist ung\u00fcltig.
|
||||
geoipJoinFormat=Spieler {0} kommt aus {1}
|
||||
godDisabledFor=deaktiviert f\u00fcr {0}
|
||||
godEnabledFor=aktiviert f\u00fcr {0}
|
||||
godMode=\u00a77Unsterblichkeit {0}.
|
||||
haveBeenReleased=\u00a77Du wurdest frei gelassen.
|
||||
heal=\u00a77Du wurdest geheilt.
|
||||
healOther=\u00a77{0} geheilt.
|
||||
helpConsole=Um die Hilfe der Konsole zu sehen, schreibe ?.
|
||||
helpOp=\u00a7c[Hilfe]\u00a7f \u00a77{0}:\u00a7f {1}
|
||||
helpPages=Seite \u00a7c{0}\u00a7f von \u00a7c{1}\u00a7f:
|
||||
holeInFloor=Loch im Boden
|
||||
homeSet=\u00a77Zuhause gesetzt.
|
||||
homeSetToBed=\u00a77Dein Zuhause ist nun an diesem Bett.
|
||||
homes=Heime: {0}
|
||||
hour=Stunde
|
||||
hours=Stunden
|
||||
ignorePlayer=Du ignorierst ab jetzt Spieler {0}.
|
||||
illegalDate=Ung\u00fcltiges Datumsformat.
|
||||
infoChapter=W\u00e4hle Kapitel:
|
||||
infoChapterPages=Kapitel {0}, Seite \u00a7c{1}\u00a7f von \u00a7c{2}\u00a7f:
|
||||
infoFileDoesNotExist=Datei info.txt existiert nicht. Erzeuge eine neue Datei.
|
||||
infoPages=Seite \u00a7c{0}\u00a7f von \u00a7c{1}\u00a7f:
|
||||
infoUnknownChapter=Unbekanntes Kapitel:
|
||||
invBigger=Das andere Inventar ist gr\u00f6sser als deins.
|
||||
invRestored=Dein Inventar wurde wieder hergestellt.
|
||||
invSee=Du siehst das Inventar von {0}.
|
||||
invSeeHelp=Benutze /invsee um dein Inventar wiederherzustellen.
|
||||
invalidCharge=\u00a7cUng\u00fcltige Verf\u00fcgung.
|
||||
invalidMob=Ung\u00fcltiger Monstername.
|
||||
invalidServer=Ung\u00fcltiger Server!
|
||||
invalidSignLine=Die Zeile {0} auf dem Schild ist falsch.
|
||||
invalidWorld=\u00a7cUng\u00fcltige Welt.
|
||||
inventoryCleared=\u00a77Inventar geleert.
|
||||
inventoryClearedOthers=\u00a77Inventar von \u00a7c{0}\u00a77 geleert.
|
||||
is=ist
|
||||
itemCannotBeSold=Dieser Gegenstand kann nicht verkauft werden.
|
||||
itemMustBeStacked=Gegenstand muss als Stapel verkauft werden. Eine Anzahl von 2s verkauft 2 Stapel usw.
|
||||
itemNotEnough1=\u00a7cDu hast nicht genug Gegenst\u00e4nde zum Verkaufen.
|
||||
itemNotEnough2=\u00a77Wenn du alles verkaufen willst, nutze /sell itemname
|
||||
itemNotEnough3=\u00a77/sell itemname -1 verkauft alles bis auf eins usw.
|
||||
itemSellAir=Du versuchst Luft zu verkaufen? Nimm einen Gegenstand in die Hand.
|
||||
itemSold=\u00a77Verkauft f\u00fcr \u00a7c{0}\u00a77 ({1} {2} Einheiten je {3})
|
||||
itemSoldConsole={0} verkauft {1} f\u00fcr \u00a77{2}\u00a77 ({3} Einheiten je {4})
|
||||
itemSpawn=\u00a77Gebe {0}x {1}
|
||||
itemsCsvNotLoaded=Konnte items.csv nicht laden.
|
||||
jailAlreadyIncarcerated=\u00a7cPerson is already in jail: {0}
|
||||
jailMessage=\u00a7cDu hast ein Verbrechen begangen, also hast du Zeit.
|
||||
jailNotExist=Dieses Gef\u00e4ngnis existiert nicht.
|
||||
jailReleased=\u00a77Spieler \u00a7e{0}\u00a77 wurde freigelassen.
|
||||
jailReleasedPlayerNotify=\u00a77Du wurdest freigelassen!
|
||||
jailSentenceExtended=Gef\u00e4ngnisszeit erweitert auf: {0)
|
||||
jailSet=\u00a77Gef\u00e4ngnis {0} wurde erstellt.
|
||||
jumpError=Das w\u00fcrde deinen Computer \u00fcberlasten.
|
||||
kickDefault=Vom Server geworfen
|
||||
kickExempt=\u00a7cDu kannst diesen Spieler nicht rauswerfen.
|
||||
kill=\u00a77{0} get\u00f6tet.
|
||||
kitError=\u00a7cEs gibt keine g\u00fcltigen Ausr\u00fcstungen.
|
||||
kitError2=\u00a7cDiese Ausr\u00fcstung existiert nicht oder ist ung\u00fcltig.
|
||||
kitErrorHelp=\u00a7cEventuell fehlt bei einem Gegenstand die Menge?
|
||||
kitGive=\u00a77Gebe Ausr\u00fcstung {0}.
|
||||
kitInvFull=\u00a7cDein Inventar ist voll, lege Ausr\u00fcstung auf den Boden
|
||||
kitTimed=\u00a7cDu kannst diese Ausr\u00fcstung nicht innerhalb von {0} anfordern.
|
||||
kits=\u00a77Ausr\u00fcstungen: {0}
|
||||
lightningSmited=\u00a77Du wurdest gepeinigt.
|
||||
lightningUse=\u00a77Peinige {0}
|
||||
loadWarpError=Fehler beim Laden von Warp-Punkt {0}
|
||||
loadinfo=Plugin {0} Version {1} geladen, erstellt von {2}, \u00fcbersetzt von snowleo
|
||||
localFormat=Lokal: <{0}> {1}
|
||||
mailClear=\u00a7cUm deine Nachrichten zu l\u00f6schen, schreibe /mail clear
|
||||
mailCleared=\u00a77Nachrichten gel\u00f6scht!
|
||||
mailSent=\u00a77Nachricht gesendet!
|
||||
markMailAsRead=\u00a7cUm deine Nachrichten zu l\u00f6schen, schreibe /mail clear
|
||||
markedAsAway=\u00a77Du wirst als abwesend angezeigt.
|
||||
markedAsNotAway=\u00a77Du wirst nicht mehr als abwesend angezeigt.
|
||||
maxHomes=Du kannst nicht mehr als {0} Zuhause setzen.
|
||||
mayNotJail=\u00a7cDu kannst diese Person nicht einsperren.
|
||||
me=mir
|
||||
minute=Minute
|
||||
minutes=Minuten
|
||||
missingItems=Du ben\u00f6tigst {0}x {1}.
|
||||
missingPrefixSuffix=Prefix/Suffix fehlt f\u00fcr {0}
|
||||
mobSpawnError=Fehler beim \u00e4ndern des Monster-Spawner.
|
||||
mobSpawnLimit=Anzahl an Monster auf Serverlimit beschr\u00e4nkt
|
||||
mobSpawnTarget=Zielblock, muss ein Monster-Spawner sein.
|
||||
mobsAvailable=\u00a77Mobs: {0}
|
||||
moneyRecievedFrom=\u00a7a{1} hat dir {0} gegeben.
|
||||
moneySentTo=\u00a7aDu hast {1} {0} gegeben.
|
||||
moneyTaken={0} wurde aus deiner Geldb\u00f6rse genommen.
|
||||
month=Monat
|
||||
months=Monate
|
||||
moreThanZero=Anzahl muss gr\u00f6sser als 0 sein.
|
||||
msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
|
||||
muteExempt=\u00a7cDu darfst diesen Spieler nicht stumm machen.
|
||||
mutedPlayer=Player {0} ist nun stumm.
|
||||
mutedPlayerFor=Player {0} ist nun stumm f\u00fcr {1}.
|
||||
mutedUserSpeaks={0} versuchte zu sprechen, aber ist stumm geschaltet.
|
||||
needTpohere=Du brauchst Zugriff auf /tpohere um andere Spieler teleportieren zu k\u00f6nnen.
|
||||
negativeBalanceError=Spieler darf keine Schulden machen.
|
||||
nickChanged=Nickname ge\u00e4ndert.
|
||||
nickDisplayName=\u00a77Du musst \u00a7fchange-displayname\u00a7c in der Essentials-Config aktivieren.
|
||||
nickInUse = \u00a7cDieser Name wird bereits verwendet.
|
||||
nickNamesAlpha = \u00a7cNicknamen d\u00fcrfen nur alphanumerische Zeichen enthalten.
|
||||
nickNoMore = \u00a7Du hast keinen Nicknamen mehr.
|
||||
nickOthersPermission = \u00a7cDu hast keine Rechte um den Nicknamen von anderen zu \u00e4ndern.
|
||||
nickSet = \u00a77Dein Nickname ist nun \u00a7c{0}
|
||||
noAccessCommand = \u00a7cDu hast keinen Zugriff auf diesen Befehl.
|
||||
noAccessPermission = \u00a7cDu hast keine Rechte, den Block {0} zu \u00f6ffnen.
|
||||
noDestroyPermission = \u00a7cDu hast keine Rechte, den Block {0} zu zerst\u00f6ren.
|
||||
noHelpFound = \u00a7cKeine \u00fcbereinstimmenden Kommandos.
|
||||
noHomeSet = Du hast kein Zuhause gesetzt.
|
||||
noHomeSetPlayer = Spieler hat kein Zuhause gesetzt.
|
||||
noKitPermission = \u00a7cDu brauchst die Berechtigung \u00a7c{0}\u00a7c um diese Ausr\u00fcstung anzufordern.
|
||||
noKits = \u00a77Es sind keine Ausr\u00fcstungen verf\u00fcgbar.
|
||||
noMail = Du hast keine Nachrichten
|
||||
noMailSendPerm = \u00a7cDu hast die Rechte \u00a7fessentials.mail.send\u00a7c nicht.
|
||||
noMotd = \u00a7cEs existiert keine Willkommensnachricht.
|
||||
noNewMail = \u00a77Du hast keine Nachrichten.
|
||||
noPendingRequest = Du hast keine Teleportierungsanfragen.
|
||||
noPlacePermission = \u00a7cDu hast keine Rechte, einen Block in der N\u00e4he des Schildes zu platzieren.
|
||||
noPowerTools = Du hast keine Powertools zugewiesen.
|
||||
noRules = \u00a7cEs wurden keine Regeln definiert.
|
||||
noWarpsDefined = Keine Warp-Punkte erstellt.
|
||||
none = keine
|
||||
notAllowedToQuestion = \u00a7cDu bist nicht berechtigt zu fragen.
|
||||
notAllowedToShout = \u00a7cDu bist nicht berechtigt zu schreien.
|
||||
notEnoughMoney = Du hast nicht genug Geld.
|
||||
notRecommendedBukkit = Die verwendete Bukkit-Version ist nicht f\u00fcr Essentials empfohlen.
|
||||
notSupportedYet = Noch nicht verf\u00fcgbar.
|
||||
now = jetzt
|
||||
numberRequired = Ein Zahl wird ben\u00f6tigt.
|
||||
onlyDayNight = /time unterst\u00fctzt nur day und night.
|
||||
onlyPlayers = Nur Spieler k\u00f6nnen {0} benutzen.
|
||||
onlySunStorm = /weather unterst\u00fctzt nur sun und storm.
|
||||
pTimeCurrent = \u00a7e{0}''s\u00a7f time is {1}.
|
||||
pTimeCurrentFixed = \u00a7e{0}''s\u00a7f Zeit wurde zu {1} gesetzt.
|
||||
pTimeNormal = \u00a7e{0}''s\u00a7f Zeit ist normal und entspricht der Serverzeit.
|
||||
pTimeOthersPermission = \u00a7cDu hast keine Berechtigung die Zeit von anderen Spielern zu \u00e4ndern.
|
||||
pTimePlayers = Diese Spieler haben ihre eigene Zeit:
|
||||
pTimeReset = Zeit wurde zur\u00fcgesetzt f\u00fcr: \u00a7e{0}
|
||||
pTimeSet = Zeit wurde f\u00fcr \u00a7e{1}\u00a7f zu \u00a73{0}\u00a7f gesetzt.
|
||||
pTimeSetFixed = Spielerzeit ist festgesetzt zu \u00a73{0}\u00a7f f\u00fcr: \u00a7e{1}
|
||||
parseError = Fehler beim Parsen von {0} in Zeile {1}
|
||||
pendingTeleportCancelled = \u00a7cLaufende Teleportierung abgebrochen.
|
||||
permissionsError = Permissions/GroupManager fehlt; Chat-Prefixe/-Suffixe sind ausgeschaltet.
|
||||
playerBanned = \u00a7cSpieler {0} gesperrt: {1}
|
||||
playerInJail = \u00a7cSpieler ist bereits in Gef\u00e4ngnis {0}.
|
||||
playerJailed = \u00a77Spieler {0} eingesperrt.
|
||||
playerJailedFor = \u00a77Spieler {0} eingesperrt f\u00fcr {1}.
|
||||
playerKicked = \u00a7cSpieler {0} rausgeworfen: {1}
|
||||
playerMuted = \u00a77Du bist jetzt stumm.
|
||||
playerMutedFor = \u00a77Du bist jetzt stumm f\u00fcr {0}.
|
||||
playerNeverOnServer = \u00a7cSpieler {0} war niemals auf diesem Server.
|
||||
playerNotFound = \u00a7cSpieler nicht gefunden.
|
||||
playerUnmuted = \u00a77Du bist nicht mehr stumm.
|
||||
pong = Pong!
|
||||
possibleWorlds = \u00a77M\u00f6gliche Welten sind nummeriet von 0 bis {0}.
|
||||
powerToolAir = Befehl kann nicht mit Luft verbunden werden.
|
||||
powerToolAlreadySet = Befehl \u00a7c{0}\u00a7f ist bereits zu {1} hinzugef\u00fcgt.
|
||||
powerToolAttach = Befehl \u00a7c{0}\u00a7f erfolgreich zu {1} hinzugef\u00fcgt.
|
||||
nickInUse=\u00a7cDieser Name wird bereits verwendet.
|
||||
nickNamesAlpha=\u00a7cNicknamen d\u00fcrfen nur alphanumerische Zeichen enthalten.
|
||||
nickNoMore=\u00a7Du hast keinen Nicknamen mehr.
|
||||
nickOthersPermission=\u00a7cDu hast keine Rechte um den Nicknamen von anderen zu \u00e4ndern.
|
||||
nickSet=\u00a77Dein Nickname ist nun \u00a7c{0}
|
||||
noAccessCommand=\u00a7cDu hast keinen Zugriff auf diesen Befehl.
|
||||
noAccessPermission=\u00a7cDu hast keine Rechte, den Block {0} zu \u00f6ffnen.
|
||||
noDestroyPermission=\u00a7cDu hast keine Rechte, den Block {0} zu zerst\u00f6ren.
|
||||
noHelpFound=\u00a7cKeine \u00fcbereinstimmenden Kommandos.
|
||||
noHomeSet=Du hast kein Zuhause gesetzt.
|
||||
noHomeSetPlayer=Spieler hat kein Zuhause gesetzt.
|
||||
noKitPermission=\u00a7cDu brauchst die Berechtigung \u00a7c{0}\u00a7c um diese Ausr\u00fcstung anzufordern.
|
||||
noKits=\u00a77Es sind keine Ausr\u00fcstungen verf\u00fcgbar.
|
||||
noMail=Du hast keine Nachrichten
|
||||
noMailSendPerm=\u00a7cDu hast die Rechte \u00a7fessentials.mail.send\u00a7c nicht.
|
||||
noMotd=\u00a7cEs existiert keine Willkommensnachricht.
|
||||
noNewMail=\u00a77Du hast keine Nachrichten.
|
||||
noPendingRequest=Du hast keine Teleportierungsanfragen.
|
||||
noPlacePermission=\u00a7cDu hast keine Rechte, einen Block in der N\u00e4he des Schildes zu platzieren.
|
||||
noPowerTools=Du hast keine Powertools zugewiesen.
|
||||
noRules=\u00a7cEs wurden keine Regeln definiert.
|
||||
noWarpsDefined=Keine Warp-Punkte erstellt.
|
||||
none=keine
|
||||
notAllowedToQuestion=\u00a7cDu bist nicht berechtigt zu fragen.
|
||||
notAllowedToShout=\u00a7cDu bist nicht berechtigt zu schreien.
|
||||
notEnoughMoney=Du hast nicht genug Geld.
|
||||
notRecommendedBukkit=Die verwendete Bukkit-Version ist nicht f\u00fcr Essentials empfohlen.
|
||||
notSupportedYet=Noch nicht verf\u00fcgbar.
|
||||
now=jetzt
|
||||
numberRequired=Ein Zahl wird ben\u00f6tigt.
|
||||
onlyDayNight=/time unterst\u00fctzt nur day und night.
|
||||
onlyPlayers=Nur Spieler k\u00f6nnen {0} benutzen.
|
||||
onlySunStorm=/weather unterst\u00fctzt nur sun und storm.
|
||||
pTimeCurrent=\u00a7e{0}''s\u00a7f time is {1}.
|
||||
pTimeCurrentFixed=\u00a7e{0}''s\u00a7f Zeit wurde zu {1} gesetzt.
|
||||
pTimeNormal=\u00a7e{0}''s\u00a7f Zeit ist normal und entspricht der Serverzeit.
|
||||
pTimeOthersPermission=\u00a7cDu hast keine Berechtigung die Zeit von anderen Spielern zu \u00e4ndern.
|
||||
pTimePlayers=Diese Spieler haben ihre eigene Zeit:
|
||||
pTimeReset=Zeit wurde zur\u00fcgesetzt f\u00fcr: \u00a7e{0}
|
||||
pTimeSet=Zeit wurde f\u00fcr \u00a7e{1}\u00a7f zu \u00a73{0}\u00a7f gesetzt.
|
||||
pTimeSetFixed=Spielerzeit ist festgesetzt zu \u00a73{0}\u00a7f f\u00fcr: \u00a7e{1}
|
||||
parseError=Fehler beim Parsen von {0} in Zeile {1}
|
||||
pendingTeleportCancelled=\u00a7cLaufende Teleportierung abgebrochen.
|
||||
permissionsError=Permissions/GroupManager fehlt; Chat-Prefixe/-Suffixe sind ausgeschaltet.
|
||||
playerBanned=\u00a7cSpieler {0} gesperrt: {1}
|
||||
playerInJail=\u00a7cSpieler ist bereits in Gef\u00e4ngnis {0}.
|
||||
playerJailed=\u00a77Spieler {0} eingesperrt.
|
||||
playerJailedFor= \u00a77Spieler {0} eingesperrt f\u00fcr {1}.
|
||||
playerKicked=\u00a7cSpieler {0} rausgeworfen: {1}
|
||||
playerMuted=\u00a77Du bist jetzt stumm.
|
||||
playerMutedFor=\u00a77Du bist jetzt stumm f\u00fcr {0}.
|
||||
playerNeverOnServer=\u00a7cSpieler {0} war niemals auf diesem Server.
|
||||
playerNotFound=\u00a7cSpieler nicht gefunden.
|
||||
playerUnmuted=\u00a77Du bist nicht mehr stumm.
|
||||
pong=Pong!
|
||||
possibleWorlds=\u00a77M\u00f6gliche Welten sind nummeriet von 0 bis {0}.
|
||||
powerToolAir=Befehl kann nicht mit Luft verbunden werden.
|
||||
powerToolAlreadySet=Befehl \u00a7c{0}\u00a7f ist bereits zu {1} hinzugef\u00fcgt.
|
||||
powerToolAttach=Befehl \u00a7c{0}\u00a7f erfolgreich zu {1} hinzugef\u00fcgt.
|
||||
powerToolClearAll= Alle Powertoolkommandos wurden entfernt.
|
||||
powerToolList = {1} hat die folgenden Befehle: \u00a7c{0}\u00a7f.
|
||||
powerToolListEmpty = {0} hat keinen Befehl.
|
||||
powerToolNoSuchCommandAssigned = Befehl \u00a7c{0}\u00a7f wurde nicht zu {1} hinzugef\u00fcgt.
|
||||
powerToolRemove = Befehl \u00a7c{0}\u00a7f erfolgreich von {1} entfernt.
|
||||
powerToolRemoveAll = Alle Befehle von {0} entfernt.
|
||||
powerToolsEnabled = Alle deine Powertools wurden aktiviert.
|
||||
powerToolsDisabled = Alle deine Powertools wurden deaktiviert.
|
||||
protectionOwner = \u00a76[EssentialsProtect] Besitzer dieses Blocks: {0}
|
||||
questionFormat = \u00a77[Frage]\u00a7f {0}
|
||||
reloadAllPlugins = \u00a77Alle plugins neu geladen.
|
||||
repair = Du hast erfolgreich deine {0} repariert.
|
||||
repairAlreadyFixed = \u00a77Dieser Gegenstand ben\u00f6tigt keine Reparatur.
|
||||
repairInvalidType = \u00a7cDieser Gegenstand kann nicht repariert werden.
|
||||
repairNone = Es sind keine Gegenst\u00e4nde vorhanden, die repariert werden k\u00f6nnen.
|
||||
requestAccepted = \u00a77Teleportierungsanfrage akzeptiert.
|
||||
requestAcceptedFrom = \u00a77{0} hat deine Teleportierungsanfrage angenommen.
|
||||
requestDenied = \u00a77Teleportierungsanfrage verweigert.
|
||||
requestDeniedFrom = \u00a77{0} hat deine Teleportierungsanfrage abgelehnt.
|
||||
requestSent = \u00a77Anfrage gesendet an {0}\u00a77.
|
||||
returnPlayerToJailError = Fehler beim Versuch, den Spieler ins Gef\u00e4ngnis zu teleportieren.
|
||||
second = Sekunde
|
||||
seconds = Sekunden
|
||||
seenOffline = Spieler {0} ist offline seit {1}
|
||||
seenOnline = Spieler {0} ist online seit {1}
|
||||
serverFull = Server ist voll
|
||||
setSpawner = \u00c4ndere Mob-Spawner zu {0}
|
||||
sheepMalformedColor = Ung\u00fcltige Farbe.
|
||||
shoutFormat = \u00a77[Schrei]\u00a7f {0}
|
||||
signFormatFail = \u00a74[{0}]
|
||||
signFormatSuccess = \u00a71[{0}]
|
||||
signFormatTemplate = [{0}]
|
||||
signProtectInvalidLocation = \u00a74Du bist nicht befugt ein Schild hierhin zu setzen.
|
||||
similarWarpExist = Ein Warp-Punkt mit einem \u00e4hnlichen Namen existiert bereits.
|
||||
slimeMalformedSize = Ung\u00fcltige Gr\u00f6sse.
|
||||
soloMob = Das Monster m\u00f6chte allein sein.
|
||||
spawnSet = \u00a77Spawn-Punkt gesetzt f\u00fcr Gruppe {0}.
|
||||
spawned = erzeugt
|
||||
suicideMessage = \u00a77Lebewohl grausame Welt...
|
||||
suicideSuccess = \u00a77{0} hat sich das Leben genommen.
|
||||
takenFromAccount = \u00a7c{0} wurden aus deiner Geldb\u00f6rse genommen.
|
||||
takenFromOthersAccount = \u00a7c{0} wurde von {1} wurde Rechnung getragen.
|
||||
teleportAAll = \u00a77Teleportierungsanfrage zu allen Spielern gesendet...
|
||||
teleportAll = \u00a77Teleportiere alle Spieler...
|
||||
teleportAtoB = \u00a77{0}\u00a77 teleportiert dich zu {1}\u00a77.
|
||||
teleportDisabled = {0} verweigert die Teleportierung.
|
||||
teleportHereRequest = \u00a7c{0}\u00a7c fragt, ob du dich zu ihm teleportierst.
|
||||
teleportNewPlayerError = Fehler beim Teleportieren eines neuen Spielers
|
||||
teleportRequest = \u00a7c{0}\u00a7c fragt, ob er sich zu dir teleportieren darf.
|
||||
teleportTop = \u00a77Teleportiere nach oben.
|
||||
teleportationCommencing = \u00a77Teleportierung gestartet...
|
||||
teleportationDisabled = \u00a77Teleportierung deaktiviert.
|
||||
teleportationEnabled = \u00a77Teleportierung aktiviert.
|
||||
teleporting = \u00a77Teleportiere...
|
||||
teleportingPortal = \u00a77Teleportiere durch Portal.
|
||||
tempBanned = Zeitlich gesperrt vom Server f\u00fcr {0}
|
||||
tempbanExempt = \u00a77Du kannst diesen Spieler nicht zeitlich sperren.
|
||||
thunder = Es donnert nun in deiner Welt {0}.
|
||||
thunderDuration = Es donnert nun f\u00fcr {1} Sekunden in deiner Welt {0}.
|
||||
timeBeforeHeal = Zeit bis zur n\u00e4chsten Heilung: {0}
|
||||
timeBeforeTeleport = Zeit bis zum n\u00e4chsten Teleport: {0}
|
||||
timeFormat = \u00a73{0}\u00a7f oder \u00a73{1}\u00a7f oder \u00a73{2}\u00a7f
|
||||
timePattern = (?:([0-9]+)\\s*[yj][a-z]*[,\\s]*)?(?:([0-9]+)\\s*mo[a-z]*[,\\s]*)?(?:([0-9]+)\\s*w[a-z]*[,\\s]*)?(?:([0-9]+)\\s*[dt][a-z]*[,\\s]*)?(?:([0-9]+)\\s*(?:h|st)[a-z]*[,\\s]*)?(?:([0-9]+)\\s*m[a-z]*[,\\s]*)?(?:([0-9]+)\\s*(?:s[a-z]*)?)?
|
||||
timeSet = Zeit in allen Welten gesetzt.
|
||||
timeSetPermission = \u00a7cDu hast keine Berechtigung die Zeit zu \u00e4ndern.
|
||||
timeWorldCurrent = Die momentane Zeit in {0} ist \u00a73{1}
|
||||
timeWorldSet = Die Zeit in \u00a7c{1}\u00a7f wurde zu {0} gesetzt.
|
||||
tradeCompleted = \u00a77Handel abgeschlossen.
|
||||
tradeSignEmpty = Der Bestand des Trade-Schild ist aufgebraucht.
|
||||
tradeSignEmptyOwner = Es gibt nichts mehr zu Sammeln von diesem Trade-Schild.
|
||||
treeFailure = \u00a7cBaumpflanzung gescheitert. Versuche es auf Gras oder Dreck.
|
||||
treeSpawned = \u00a77Baum gepflanzt.
|
||||
typeTpaccept = \u00a77Um zu teleportieren, schreibe \u00a7c/tpaccept\u00a77.
|
||||
typeTpdeny = \u00a77Um diese Anfrage abzulehnen, schreibe \u00a7c/tpdeny\u00a77.
|
||||
typeWorldName = \u00a77Du kannst auch den Namen der Welt eingeben.
|
||||
unableToSpawnMob = Fehler beim Erzeugen eines Monster.
|
||||
unbannedIP = Verbannung von IP-Adresse r\u00fcckg\u00e4ngig gemacht.
|
||||
unbannedPlayer = Verbannung von Spieler r\u00fcckg\u00e4ngig gemacht.
|
||||
unignorePlayer = Du ignorierst Spieler {0} nicht mehr.
|
||||
unknownItemId = Unbekannte Item-Id: {0}
|
||||
unknownItemInList = Unbekannter Gegenstand {0} in Liste {1}.
|
||||
unknownItemName = Unbekannter Gegenstand: {0}
|
||||
unlimitedItemPermission = \u00a7cDu hast keine Rechte f\u00fcr {0}.
|
||||
unlimitedItems = Unendliche Objekte:
|
||||
unmutedPlayer = Spieler {0} ist nicht mehr stumm.
|
||||
upgradingFilesError = Fehler beim Aktualisieren der Dateien
|
||||
userCreatedPortal = {0} benutzt ein Portal und hat ein Ausgangsportal erstellt.
|
||||
userDoesNotExist = Spieler {0} existiert nicht.
|
||||
userIsAway = {0} ist abwesend.
|
||||
userIsNotAway = {0} ist wieder da.
|
||||
userJailed = \u00a77Du wurdest eingesperrt.
|
||||
userUsedPortal = {0} benutzt ein vorhandenes Ausgangsportal.
|
||||
userdataMoveBackError = Verschieben von userdata/{0}.tmp nach userdata/{1} gescheitert.
|
||||
userdataMoveError = Verschieben von userdata/{0} nach userdata/{1}.tmp gescheitert.
|
||||
usingPortal = \u00a77Teleportiere durch Portal zum Ausgangsportal.
|
||||
usingTempFolderForTesting = Benutze tempor\u00e4ren Ordner zum Testen:
|
||||
versionMismatch = Versionen nicht identisch! Bitte aktualisiere {0}.
|
||||
versionMismatchAll = Versionen ungleich! Bitte aktualisiere alle Essentials jars auf die gleiche Version.
|
||||
voiceSilenced = \u00a77Du bist stumm
|
||||
warpDeleteError = Fehler beim L\u00f6schen der Warp-Datei.
|
||||
warpListPermission = \u00a7cDu hast keine Berechtigung, die Warp-Punkte anzuzeigen.
|
||||
warpNotExist = Warp-Punkt existiert nicht.
|
||||
warpSet = \u00a77Warp-Punkt {0} wurde erstellt.
|
||||
warpUsePermission = \u00a7cDu hast keinen Zugriff f\u00fcr diesen Warp-Punkt.
|
||||
warpingTo = \u00a77Teleportiere zu Warp-Punkt {0}.
|
||||
warpsCount = \u00a77Es gibt {0} Warp-Punkte. Zeige Seite {1} von {2}.
|
||||
weatherStorm = \u00a77In {0} st\u00fcrmt es nun.
|
||||
weatherStormFor = \u00a77In {0} st\u00fcrmt es nun f\u00fcr {1} Sekunden.
|
||||
weatherSun = \u00a77In {0} scheint nun die Sonne.
|
||||
weatherSunFor = \u00a77In {0} scheint nun f\u00fcr {1} Sekunden die Sonne.
|
||||
whoisGeoLocation = \u00a79 - Herkunft: {0}
|
||||
whoisHealth = \u00a79 - Gesundheit: {0}/20
|
||||
whoisIPAddress = \u00a79 - IP-Adresse: {0}
|
||||
whoisIs = {0} ist {1}
|
||||
whoisLocation = \u00a79 - Position: ({0}, {1}, {2}, {3})
|
||||
whoisMoney = \u00a79 - Geldb\u00f6rse: {0}
|
||||
whoisStatusAvailable = \u00a79 - Status: Anwesend
|
||||
whoisStatusAway = \u00a79 - Status: \u00a7cAbwesend\u00a7f
|
||||
worth = \u00a77Ein Stapel von {0} ist \u00a7c{1}\u00a77 wert ({2} Einheiten je {3})
|
||||
worthMeta = \u00a77Ein Stapel von {0} mit Metadaten {1} ist \u00a7c{2}\u00a77 wert. ({3} Einheiten je {4})
|
||||
worthSet = Wert des Gegenstands gesetzt.
|
||||
year = Jahr
|
||||
years = Jahre
|
||||
youAreHealed = \u00a77Du wurdest geheilt.
|
||||
youHaveNewMail = \u00a7cDu hast {0} Nachrichten!\u00a7f Schreibe \u00a77/mail read\u00a7f um deine Nachrichten anzuzeigen.
|
||||
|
||||
powerToolList={1} hat die folgenden Befehle: \u00a7c{0}\u00a7f.
|
||||
powerToolListEmpty={0} hat keinen Befehl.
|
||||
powerToolNoSuchCommandAssigned=Befehl \u00a7c{0}\u00a7f wurde nicht zu {1} hinzugef\u00fcgt.
|
||||
powerToolRemove=Befehl \u00a7c{0}\u00a7f erfolgreich von {1} entfernt.
|
||||
powerToolRemoveAll=Alle Befehle von {0} entfernt.
|
||||
powerToolsDisabled=Alle deine Powertools wurden deaktiviert.
|
||||
powerToolsEnabled=Alle deine Powertools wurden aktiviert.
|
||||
protectionOwner=\u00a76[EssentialsProtect] Besitzer dieses Blocks: {0}
|
||||
questionFormat=\u00a77[Frage]\u00a7f {0}
|
||||
reloadAllPlugins=\u00a77Alle plugins neu geladen.
|
||||
repair=Du hast erfolgreich deine {0} repariert.
|
||||
repairAlreadyFixed=\u00a77Dieser Gegenstand ben\u00f6tigt keine Reparatur.
|
||||
repairInvalidType=\u00a7cDieser Gegenstand kann nicht repariert werden.
|
||||
repairNone=Es sind keine Gegenst\u00e4nde vorhanden, die repariert werden k\u00f6nnen.
|
||||
requestAccepted=\u00a77Teleportierungsanfrage akzeptiert.
|
||||
requestAcceptedFrom=\u00a77{0} hat deine Teleportierungsanfrage angenommen.
|
||||
requestDenied=\u00a77Teleportierungsanfrage verweigert.
|
||||
requestDeniedFrom=\u00a77{0} hat deine Teleportierungsanfrage abgelehnt.
|
||||
requestSent=\u00a77Anfrage gesendet an {0}\u00a77.
|
||||
returnPlayerToJailError=Fehler beim Versuch, den Spieler ins Gef\u00e4ngnis zu teleportieren.
|
||||
second=Sekunde
|
||||
seconds=Sekunden
|
||||
seenOffline=Spieler {0} ist offline seit {1}
|
||||
seenOnline=Spieler {0} ist online seit {1}
|
||||
serverFull=Server ist voll
|
||||
setSpawner=\u00c4ndere Mob-Spawner zu {0}
|
||||
sheepMalformedColor=Ung\u00fcltige Farbe.
|
||||
shoutFormat=\u00a77[Schrei]\u00a7f {0}
|
||||
signFormatFail=\u00a74[{0}]
|
||||
signFormatSuccess=\u00a71[{0}]
|
||||
signFormatTemplate=[{0}]
|
||||
signProtectInvalidLocation=\u00a74Du bist nicht befugt ein Schild hierhin zu setzen.
|
||||
similarWarpExist=Ein Warp-Punkt mit einem \u00e4hnlichen Namen existiert bereits.
|
||||
slimeMalformedSize=Ung\u00fcltige Gr\u00f6sse.
|
||||
soloMob=Das Monster m\u00f6chte allein sein.
|
||||
spawnSet=\u00a77Spawn-Punkt gesetzt f\u00fcr Gruppe {0}.
|
||||
spawned=erzeugt
|
||||
suicideMessage=\u00a77Lebewohl grausame Welt...
|
||||
suicideSuccess= \u00a77{0} hat sich das Leben genommen.
|
||||
survival=survival
|
||||
takenFromAccount=\u00a7c{0} wurden aus deiner Geldb\u00f6rse genommen.
|
||||
takenFromOthersAccount=\u00a7c{0} wurde von {1} wurde Rechnung getragen.
|
||||
teleportAAll=\u00a77Teleportierungsanfrage zu allen Spielern gesendet...
|
||||
teleportAll=\u00a77Teleportiere alle Spieler...
|
||||
teleportAtoB=\u00a77{0}\u00a77 teleportiert dich zu {1}\u00a77.
|
||||
teleportDisabled={0} verweigert die Teleportierung.
|
||||
teleportHereRequest=\u00a7c{0}\u00a7c fragt, ob du dich zu ihm teleportierst.
|
||||
teleportNewPlayerError=Fehler beim Teleportieren eines neuen Spielers
|
||||
teleportRequest=\u00a7c{0}\u00a7c fragt, ob er sich zu dir teleportieren darf.
|
||||
teleportTop=\u00a77Teleportiere nach oben.
|
||||
teleportationCommencing=\u00a77Teleportierung gestartet...
|
||||
teleportationDisabled=\u00a77Teleportierung deaktiviert.
|
||||
teleportationEnabled=\u00a77Teleportierung aktiviert.
|
||||
teleporting=\u00a77Teleportiere...
|
||||
teleportingPortal=\u00a77Teleportiere durch Portal.
|
||||
tempBanned=Zeitlich gesperrt vom Server f\u00fcr {0}
|
||||
tempbanExempt=\u00a77Du kannst diesen Spieler nicht zeitlich sperren.
|
||||
thunder= Es donnert nun in deiner Welt {0}.
|
||||
thunderDuration=Es donnert nun f\u00fcr {1} Sekunden in deiner Welt {0}.
|
||||
timeBeforeHeal=Zeit bis zur n\u00e4chsten Heilung: {0}
|
||||
timeBeforeTeleport=Zeit bis zum n\u00e4chsten Teleport: {0}
|
||||
timeFormat=\u00a73{0}\u00a7f oder \u00a73{1}\u00a7f oder \u00a73{2}\u00a7f
|
||||
timePattern=(?:([0-9]+)\\s*[yj][a-z]*[,\\s]*)?(?:([0-9]+)\\s*mo[a-z]*[,\\s]*)?(?:([0-9]+)\\s*w[a-z]*[,\\s]*)?(?:([0-9]+)\\s*[dt][a-z]*[,\\s]*)?(?:([0-9]+)\\s*(?:h|st)[a-z]*[,\\s]*)?(?:([0-9]+)\\s*m[a-z]*[,\\s]*)?(?:([0-9]+)\\s*(?:s[a-z]*)?)?
|
||||
timeSet=Zeit in allen Welten gesetzt.
|
||||
timeSetPermission=\u00a7cDu hast keine Berechtigung die Zeit zu \u00e4ndern.
|
||||
timeWorldCurrent=Die momentane Zeit in {0} ist \u00a73{1}
|
||||
timeWorldSet=Die Zeit in \u00a7c{1}\u00a7f wurde zu {0} gesetzt.
|
||||
tradeCompleted=\u00a77Handel abgeschlossen.
|
||||
tradeSignEmpty=Der Bestand des Trade-Schild ist aufgebraucht.
|
||||
tradeSignEmptyOwner=Es gibt nichts mehr zu Sammeln von diesem Trade-Schild.
|
||||
treeFailure=\u00a7cBaumpflanzung gescheitert. Versuche es auf Gras oder Dreck.
|
||||
treeSpawned=\u00a77Baum gepflanzt.
|
||||
true=true
|
||||
typeTpaccept=\u00a77Um zu teleportieren, schreibe \u00a7c/tpaccept\u00a77.
|
||||
typeTpdeny=\u00a77Um diese Anfrage abzulehnen, schreibe \u00a7c/tpdeny\u00a77.
|
||||
typeWorldName=\u00a77Du kannst auch den Namen der Welt eingeben.
|
||||
unableToSpawnMob=Fehler beim Erzeugen eines Monster.
|
||||
unbannedIP=Verbannung von IP-Adresse r\u00fcckg\u00e4ngig gemacht.
|
||||
unbannedPlayer=Verbannung von Spieler r\u00fcckg\u00e4ngig gemacht.
|
||||
unignorePlayer=Du ignorierst Spieler {0} nicht mehr.
|
||||
unknownItemId=Unbekannte Item-Id: {0}
|
||||
unknownItemInList=Unbekannter Gegenstand {0} in Liste {1}.
|
||||
unknownItemName=Unbekannter Gegenstand: {0}
|
||||
unlimitedItemPermission=\u00a7cDu hast keine Rechte f\u00fcr {0}.
|
||||
unlimitedItems=Unendliche Objekte:
|
||||
unmutedPlayer=Spieler {0} ist nicht mehr stumm.
|
||||
upgradingFilesError=Fehler beim Aktualisieren der Dateien
|
||||
userDoesNotExist=Spieler {0} existiert nicht.
|
||||
userIsAway={0} ist abwesend.
|
||||
userIsNotAway={0} ist wieder da.
|
||||
userJailed=\u00a77Du wurdest eingesperrt.
|
||||
userUsedPortal={0} benutzt ein vorhandenes Ausgangsportal.
|
||||
userdataMoveBackError=Verschieben von userdata/{0}.tmp nach userdata/{1} gescheitert.
|
||||
userdataMoveError=Verschieben von userdata/{0} nach userdata/{1}.tmp gescheitert.
|
||||
usingTempFolderForTesting=Benutze tempor\u00e4ren Ordner zum Testen:
|
||||
versionMismatch=Versionen nicht identisch! Bitte aktualisiere {0}.
|
||||
versionMismatchAll=Versionen ungleich! Bitte aktualisiere alle Essentials jars auf die gleiche Version.
|
||||
voiceSilenced=\u00a77Du bist stumm
|
||||
warpDeleteError=Fehler beim L\u00f6schen der Warp-Datei.
|
||||
warpListPermission=\u00a7cDu hast keine Berechtigung, die Warp-Punkte anzuzeigen.
|
||||
warpNotExist=Warp-Punkt existiert nicht.
|
||||
warpSet=\u00a77Warp-Punkt {0} wurde erstellt.
|
||||
warpUsePermission=\u00a7cDu hast keinen Zugriff f\u00fcr diesen Warp-Punkt.
|
||||
warpingTo=\u00a77Teleportiere zu Warp-Punkt {0}.
|
||||
warps=Warps: {0}
|
||||
warpsCount=\u00a77Es gibt {0} Warp-Punkte. Zeige Seite {1} von {2}.
|
||||
weatherStorm=\u00a77In {0} st\u00fcrmt es nun.
|
||||
weatherStormFor=\u00a77In {0} st\u00fcrmt es nun f\u00fcr {1} Sekunden.
|
||||
weatherSun=\u00a77In {0} scheint nun die Sonne.
|
||||
weatherSunFor=\u00a77In {0} scheint nun f\u00fcr {1} Sekunden die Sonne.
|
||||
whoisGamemode=\u00a79 - Gamemode: {0}
|
||||
whoisGeoLocation=\u00a79 - Herkunft: {0}
|
||||
whoisGod=\u00a79 - God mode: {0}
|
||||
whoisHealth=\u00a79 - Gesundheit: {0}/20
|
||||
whoisIPAddress=\u00a79 - IP-Adresse: {0}
|
||||
whoisIs={0} ist {1}
|
||||
whoisLocation=\u00a79 - Position: ({0}, {1}, {2}, {3})
|
||||
whoisMoney=\u00a79 - Geldb\u00f6rse: {0}
|
||||
whoisOP=\u00a79 - OP: {0}
|
||||
whoisStatusAvailable=\u00a79 - Status: Anwesend
|
||||
whoisStatusAway=\u00a79 - Status: \u00a7cAbwesend\u00a7f
|
||||
worth=\u00a77Ein Stapel von {0} ist \u00a7c{1}\u00a77 wert ({2} Einheiten je {3})
|
||||
worthMeta=\u00a77Ein Stapel von {0} mit Metadaten {1} ist \u00a7c{2}\u00a77 wert. ({3} Einheiten je {4})
|
||||
worthSet=Wert des Gegenstands gesetzt.
|
||||
year=Jahr
|
||||
years=Jahre
|
||||
youAreHealed=\u00a77Du wurdest geheilt.
|
||||
youHaveNewMail=\u00a7cDu hast {0} Nachrichten!\u00a7f Schreibe \u00a77/mail read\u00a7f um deine Nachrichten anzuzeigen.
|
||||
|
@@ -2,372 +2,377 @@
|
||||
# Single quotes have to be doubled: ''
|
||||
# Translations start here
|
||||
# by:
|
||||
addedToAccount = \u00a7a{0} has been added to your account.
|
||||
addedToOthersAccount = \u00a7a{0} has been added to {1} account.
|
||||
alertBroke = broke:
|
||||
alertFormat = \u00a73[{0}] \u00a7f {1} \u00a76 {2} at: {3}
|
||||
alertPlaced = placed:
|
||||
alertUsed = used:
|
||||
action=* {0} {1}
|
||||
addedToAccount=\u00a7a{0} has been added to your account.
|
||||
addedToOthersAccount=\u00a7a{0} has been added to {1} account.
|
||||
alertBroke=broke:
|
||||
alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} at: {3}
|
||||
alertPlaced=placed:
|
||||
alertUsed=used:
|
||||
autoAfkKickReason=You have been kicked for idling more than {0} minutes.
|
||||
backAfterDeath = \u00a77Use the /back command to return to your death point.
|
||||
backUsageMsg = \u00a77Returning to previous location.
|
||||
backupFinished = Backup finished
|
||||
backupStarted = Backup started
|
||||
balance = \u00a77Balance: {0}
|
||||
balanceTop = \u00a77 Top {0} balances
|
||||
banExempt = \u00a7cYou can not ban that player.
|
||||
banIpAddress = \u00a77Banned IP address
|
||||
bannedIpsFileError = Error reading banned-ips.txt
|
||||
bannedIpsFileNotFound = banned-ips.txt not found
|
||||
bannedPlayersFileError = Error reading banned-players.txt
|
||||
bannedPlayersFileNotFound = banned-players.txt not found
|
||||
bigTreeFailure = \u00a7cBig tree generation failure. Try again on grass or dirt.
|
||||
bigTreeSuccess = \u00a77Big tree spawned.
|
||||
broadcast = [\u00a7cBroadcast\u00a7f]\u00a7a {0}
|
||||
buildAlert = \u00a7cYou are not permitted to build
|
||||
bukkitFormatChanged = Bukkit version format changed. Version not checked.
|
||||
burnMsg = \u00a77You set {0} on fire for {1} seconds.
|
||||
canTalkAgain = \u00a77You can talk again
|
||||
cantFindGeoIpDB = Can''t find GeoIP database!
|
||||
cantReadGeoIpDB = Failed to read GeoIP database!
|
||||
cantSpawnItem = \u00a7cYou are not allowed to spawn the item {0}
|
||||
commandFailed = Command {0} failed:
|
||||
commandHelpFailedForPlugin=Error getting help for: {0}
|
||||
commandNotLoaded = \u00a7cCommand {0} is improperly loaded.
|
||||
compassBearing = \u00a77Bearing: {0} ({1} degrees).
|
||||
configFileMoveError = Failed to move config.yml to backup location.
|
||||
configFileRenameError = Failed to rename temp file to config.yml
|
||||
connectedPlayers = Connected players:
|
||||
connectionFailed = Failed to open connection.
|
||||
cooldownWithMessage = \u00a7cCooldown: {0}
|
||||
corruptNodeInConfig = \u00a74Notice: Your configuration file has a corrupt {0} node.
|
||||
couldNotFindTemplate = Could not find template {0}
|
||||
creatingConfigFromTemplate = Creating config from template: {0}
|
||||
creatingEmptyConfig = Creating empty config: {0}
|
||||
creatingPortal = Creating portal at {0},{1},{2}.
|
||||
day = day
|
||||
days = days
|
||||
defaultBanReason = The Ban Hammer has spoken!
|
||||
deleteFileError = Could not delete file: {0}
|
||||
deleteHome = \u00a77Home {0} has been removed.
|
||||
deleteJail = \u00a77Jail {0} has been removed.
|
||||
deleteWarp = \u00a77Warp {0} has been removed.
|
||||
deniedAccessCommand = {0} was denied access to command.
|
||||
dependancyDownloaded = [Essentials] Dependancy {0} downloaded successfully.
|
||||
dependancyException = [Essentials] An error occurred when trying to download a dependacy
|
||||
dependancyNotFound = [Essentials] A required dependancy was not found, downloading now.
|
||||
depth = \u00a77You are at sea level.
|
||||
depthAboveSea = \u00a77You are {0} block(s) above sea level.
|
||||
depthBelowSea = \u00a77You are {0} block(s) below sea level.
|
||||
destinationNotSet = Destination not set
|
||||
disableUnlimited = \u00a77Disabled unlimited placing of {0} for {1}.
|
||||
disabled = disabled
|
||||
dontMoveMessage = \u00a77Teleportation will commence in {0}. Don''t move.
|
||||
downloadingGeoIp = Downloading GeoIP database ... this might take a while (country: 0.6 MB, city: 20MB)
|
||||
duplicatedUserdata = Duplicated userdata: {0} and {1}
|
||||
enableUnlimited = \u00a77Giving unlimited amount of {0} to {1}.
|
||||
enabled = enabled
|
||||
errorCallingCommand = Error calling command /{0}
|
||||
errorWithMessage = \u00a7cError: {0}
|
||||
essentialsReload = \u00a77Essentials Reloaded {0}
|
||||
extinguish = \u00a77You extinguished yourself.
|
||||
extinguishOthers = \u00a77You extinguished {0}.
|
||||
failedToCloseConfig = Failed to close config {0}
|
||||
failedToCreateConfig = Failed to create config {0}
|
||||
failedToWriteConfig = Failed to write config {0}
|
||||
fileRenameError = Renaming file {0} failed
|
||||
foreverAlone = \u00a7cYou have nobody to whom you can reply.
|
||||
freedMemory = Freed {0} MB.
|
||||
gcchunks = chunks,
|
||||
gcentities = entities
|
||||
gcfree = Free memory: {0} MB
|
||||
gcmax = Maximum memory: {0} MB
|
||||
gctotal = Allocated memory: {0} MB
|
||||
generatingPortal = \u00a77Generating an exit portal.
|
||||
geoIpUrlEmpty = GeoIP download url is empty.
|
||||
geoIpUrlInvalid = GeoIP download url is invalid.
|
||||
geoipJoinFormat = Player {0} comes from {1}
|
||||
godDisabledFor = disabled for {0}
|
||||
godEnabledFor = enabled for {0}
|
||||
godMode = \u00a77God mode {0}.
|
||||
haveBeenReleased = \u00a77You have been released
|
||||
heal = \u00a77You have been healed.
|
||||
healOther = \u00a77Healed {0}.
|
||||
helpConsole = To view help from the console, type ?.
|
||||
helpOp = \u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
|
||||
helpPages = Page \u00a7c{0}\u00a7f of \u00a7c{1}\u00a7f:
|
||||
holeInFloor = Hole in floor
|
||||
homeSet = \u00a77Home set.
|
||||
homeSetToBed = \u00a77Your home is now set to this bed.
|
||||
homes = Homes: {0}
|
||||
hour = hour
|
||||
hours = hours
|
||||
ignorePlayer = You ignore player {0} from now on.
|
||||
illegalDate = Illegal date format.
|
||||
infoChapter = Select chapter:
|
||||
infoChapterPages = Chapter {0}, page \u00a7c{1}\u00a7f of \u00a7c{2}\u00a7f:
|
||||
infoFileDoesNotExist = File info.txt does not exist. Creating one for you.
|
||||
infoPages = Page \u00a7c{0}\u00a7f of \u00a7c{1}\u00a7f:
|
||||
infoUnknownChapter = Unknown chapter.
|
||||
invBigger = The other users inventory is bigger than yours.
|
||||
invRestored = Your inventory has been restored.
|
||||
invSee = You see the inventory of {0}.
|
||||
invSeeHelp = Use /invsee to restore your inventory.
|
||||
invalidCharge = \u00a7cInvalid charge.
|
||||
invalidMob = Invalid mob type.
|
||||
invalidServer = Invalid server!
|
||||
invalidSignLine = Line {0} on sign is invalid.
|
||||
invalidWorld = \u00a7cInvalid world.
|
||||
inventoryCleared = \u00a77Inventory Cleared.
|
||||
inventoryClearedOthers = \u00a77Inventory of \u00a7c{0}\u00a77 cleared.
|
||||
is = is
|
||||
itemCannotBeSold = That item cannot be sold to the server.
|
||||
itemMustBeStacked = Item must be traded in stacks. A quantity of 2s would be two stacks, etc.
|
||||
itemNotEnough1 = \u00a7cYou do not have enough of that item to sell.
|
||||
itemNotEnough2 = \u00a77If you meant to sell all of your items of that type, use /sell itemname
|
||||
itemNotEnough3 = \u00a77/sell itemname -1 will sell all but one item, etc.
|
||||
itemSellAir = You really tried to sell Air? Put an item in your hand.
|
||||
itemSold = \u00a77Sold for \u00a7c {0} \u00a77 ({1} items at {2} each)
|
||||
itemSoldConsole = {0} sold {1} for \u00a77 {2} \u00a77 ({3} items at {4} each)
|
||||
itemSpawn = \u00a77Giving {0} of {1}
|
||||
itemsCsvNotLoaded = Could not load items.csv.
|
||||
jailAlreadyIncarcerated = \u00a7cPerson is already in jail: {0}
|
||||
jailMessage = \u00a7cYou do the crime, you do the time.
|
||||
jailNotExist = That jail does not exist.
|
||||
jailReleased = \u00a77Player \u00a7e{0}\u00a77 unjailed.
|
||||
jailReleasedPlayerNotify = \u00a77You have been released!
|
||||
jailSentenceExtended = Jail time extend to: {0)
|
||||
jailSet = \u00a77Jail {0} has been set
|
||||
jumpError = That would hurt your computer''s brain.
|
||||
kickDefault = Kicked from server
|
||||
kickExempt = \u00a7cYou can not kick that person.
|
||||
kill = \u00a77Killed {0}.
|
||||
kitError = \u00a7cThere are no valid kits.
|
||||
kitError2 = \u00a7cThat kit does not exist or is improperly defined.
|
||||
kitErrorHelp = \u00a7cPerhaps an item is missing a quantity in the configuration?
|
||||
kitGive = \u00a77Giving kit {0}.
|
||||
kitInvFull = \u00a7cYour inventory was full, placing kit on the floor
|
||||
kitTimed = \u00a7cYou can''t use that kit again for another {0}.
|
||||
kits = \u00a77Kits: {0}
|
||||
lightningSmited = \u00a77You have just been smited
|
||||
lightningUse = \u00a77Smiting {0}
|
||||
loadWarpError = Failed to load warp {0}
|
||||
loadinfo = Loaded {0} build {1} by: {2}
|
||||
localFormat = Local: <{0}> {1}
|
||||
mailClear = \u00a7cTo mark your mail as read, type /mail clear
|
||||
mailCleared = \u00a77Mail Cleared!
|
||||
mailSent = \u00a77Mail sent!
|
||||
markMailAsRead = \u00a7cTo mark your mail as read, type /mail clear
|
||||
markedAsAway = \u00a77You are now marked as away.
|
||||
markedAsNotAway = \u00a77You are no longer marked as away.
|
||||
backAfterDeath=\u00a77Use the /back command to return to your death point.
|
||||
backUsageMsg=\u00a77Returning to previous location.
|
||||
backupFinished=Backup finished
|
||||
backupStarted=Backup started
|
||||
balance=\u00a77Balance: {0}
|
||||
balanceTop=\u00a77 Top {0} balances
|
||||
banExempt=\u00a7cYou can not ban that player.
|
||||
banIpAddress=\u00a77Banned IP address
|
||||
bannedIpsFileError=Error reading banned-ips.txt
|
||||
bannedIpsFileNotFound=banned-ips.txt not found
|
||||
bannedPlayersFileError=Error reading banned-players.txt
|
||||
bannedPlayersFileNotFound=banned-players.txt not found
|
||||
bigTreeFailure=\u00a7cBig tree generation failure. Try again on grass or dirt.
|
||||
bigTreeSuccess= \u00a77Big tree spawned.
|
||||
broadcast=[\u00a7cBroadcast\u00a7f]\u00a7a {0}
|
||||
buildAlert=\u00a7cYou are not permitted to build
|
||||
bukkitFormatChanged=Bukkit version format changed. Version not checked.
|
||||
burnMsg=\u00a77You set {0} on fire for {1} seconds.
|
||||
canTalkAgain=\u00a77You can talk again
|
||||
cantFindGeoIpDB=Can''t find GeoIP database!
|
||||
cantReadGeoIpDB=Failed to read GeoIP database!
|
||||
cantSpawnItem=\u00a7cYou are not allowed to spawn the item {0}
|
||||
commandFailed=Command {0} failed:
|
||||
commandHelpFailedForPlugin=Error getting help for: {0}
|
||||
commandNotLoaded=\u00a7cCommand {0} is improperly loaded.
|
||||
compassBearing=\u00a77Bearing: {0} ({1} degrees).
|
||||
configFileMoveError=Failed to move config.yml to backup location.
|
||||
configFileRenameError=Failed to rename temp file to config.yml
|
||||
connectedPlayers=Connected players:
|
||||
connectionFailed=Failed to open connection.
|
||||
cooldownWithMessage=\u00a7cCooldown: {0}
|
||||
corruptNodeInConfig=\u00a74Notice: Your configuration file has a corrupt {0} node.
|
||||
couldNotFindTemplate=Could not find template {0}
|
||||
creatingConfigFromTemplate=Creating config from template: {0}
|
||||
creatingEmptyConfig=Creating empty config: {0}
|
||||
creative=creative
|
||||
day=day
|
||||
days=days
|
||||
defaultBanReason=The Ban Hammer has spoken!
|
||||
deleteFileError=Could not delete file: {0}
|
||||
deleteHome=\u00a77Home {0} has been removed.
|
||||
deleteJail=\u00a77Jail {0} has been removed.
|
||||
deleteWarp=\u00a77Warp {0} has been removed.
|
||||
deniedAccessCommand={0} was denied access to command.
|
||||
dependancyDownloaded=[Essentials] Dependancy {0} downloaded successfully.
|
||||
dependancyException=[Essentials] An error occurred when trying to download a dependacy
|
||||
dependancyNotFound=[Essentials] A required dependancy was not found, downloading now.
|
||||
depth=\u00a77You are at sea level.
|
||||
depthAboveSea=\u00a77You are {0} block(s) above sea level.
|
||||
depthBelowSea=\u00a77You are {0} block(s) below sea level.
|
||||
destinationNotSet=Destination not set
|
||||
disableUnlimited=\u00a77Disabled unlimited placing of {0} for {1}.
|
||||
disabled=disabled
|
||||
dontMoveMessage=\u00a77Teleportation will commence in {0}. Don''t move.
|
||||
downloadingGeoIp=Downloading GeoIP database ... this might take a while (country: 0.6 MB, city: 20MB)
|
||||
duplicatedUserdata=Duplicated userdata: {0} and {1}
|
||||
enableUnlimited=\u00a77Giving unlimited amount of {0} to {1}.
|
||||
enabled=enabled
|
||||
errorCallingCommand=Error calling command /{0}
|
||||
errorWithMessage=\u00a7cError: {0}
|
||||
essentialsReload=\u00a77Essentials Reloaded {0}
|
||||
extinguish=\u00a77You extinguished yourself.
|
||||
extinguishOthers=\u00a77You extinguished {0}.
|
||||
failedToCloseConfig=Failed to close config {0}
|
||||
failedToCreateConfig=Failed to create config {0}
|
||||
failedToWriteConfig=Failed to write config {0}
|
||||
false=false
|
||||
fileRenameError=Renaming file {0} failed
|
||||
foreverAlone=\u00a7cYou have nobody to whom you can reply.
|
||||
freedMemory=Freed {0} MB.
|
||||
gameMode=\u00a77Set game mode {0} for {1}.
|
||||
gcchunks= chunks,
|
||||
gcentities= entities
|
||||
gcfree=Free memory: {0} MB
|
||||
gcmax=Maximum memory: {0} MB
|
||||
gctotal=Allocated memory: {0} MB
|
||||
geoIpUrlEmpty=GeoIP download url is empty.
|
||||
geoIpUrlInvalid=GeoIP download url is invalid.
|
||||
geoipJoinFormat=Player {0} comes from {1}
|
||||
godDisabledFor=disabled for {0}
|
||||
godEnabledFor=enabled for {0}
|
||||
godMode=\u00a77God mode {0}.
|
||||
haveBeenReleased=\u00a77You have been released
|
||||
heal=\u00a77You have been healed.
|
||||
healOther=\u00a77Healed {0}.
|
||||
helpConsole=To view help from the console, type ?.
|
||||
helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
|
||||
helpPages=Page \u00a7c{0}\u00a7f of \u00a7c{1}\u00a7f:
|
||||
holeInFloor=Hole in floor
|
||||
homeSet=\u00a77Home set.
|
||||
homeSetToBed=\u00a77Your home is now set to this bed.
|
||||
homes=Homes: {0}
|
||||
hour=hour
|
||||
hours=hours
|
||||
ignorePlayer=You ignore player {0} from now on.
|
||||
illegalDate=Illegal date format.
|
||||
infoChapter=Select chapter:
|
||||
infoChapterPages=Chapter {0}, page \u00a7c{1}\u00a7f of \u00a7c{2}\u00a7f:
|
||||
infoFileDoesNotExist=File info.txt does not exist. Creating one for you.
|
||||
infoPages=Page \u00a7c{0}\u00a7f of \u00a7c{1}\u00a7f:
|
||||
infoUnknownChapter=Unknown chapter.
|
||||
invBigger=The other users inventory is bigger than yours.
|
||||
invRestored=Your inventory has been restored.
|
||||
invSee=You see the inventory of {0}.
|
||||
invSeeHelp=Use /invsee to restore your inventory.
|
||||
invalidCharge=\u00a7cInvalid charge.
|
||||
invalidMob=Invalid mob type.
|
||||
invalidServer=Invalid server!
|
||||
invalidSignLine=Line {0} on sign is invalid.
|
||||
invalidWorld=\u00a7cInvalid world.
|
||||
inventoryCleared=\u00a77Inventory Cleared.
|
||||
inventoryClearedOthers=\u00a77Inventory of \u00a7c{0}\u00a77 cleared.
|
||||
is=is
|
||||
itemCannotBeSold=That item cannot be sold to the server.
|
||||
itemMustBeStacked=Item must be traded in stacks. A quantity of 2s would be two stacks, etc.
|
||||
itemNotEnough1=\u00a7cYou do not have enough of that item to sell.
|
||||
itemNotEnough2=\u00a77If you meant to sell all of your items of that type, use /sell itemname
|
||||
itemNotEnough3=\u00a77/sell itemname -1 will sell all but one item, etc.
|
||||
itemSellAir=You really tried to sell Air? Put an item in your hand.
|
||||
itemSold=\u00a77Sold for \u00a7c{0} \u00a77({1} {2} at {3} each)
|
||||
itemSoldConsole={0} sold {1} for \u00a77{2} \u00a77({3} items at {4} each)
|
||||
itemSpawn=\u00a77Giving {0} of {1}
|
||||
itemsCsvNotLoaded=Could not load items.csv.
|
||||
jailAlreadyIncarcerated=\u00a7cPerson is already in jail: {0}
|
||||
jailMessage=\u00a7cYou do the crime, you do the time.
|
||||
jailNotExist=That jail does not exist.
|
||||
jailReleased=\u00a77Player \u00a7e{0}\u00a77 unjailed.
|
||||
jailReleasedPlayerNotify=\u00a77You have been released!
|
||||
jailSentenceExtended=Jail time extend to: {0)
|
||||
jailSet=\u00a77Jail {0} has been set
|
||||
jumpError=That would hurt your computer''s brain.
|
||||
kickDefault=Kicked from server
|
||||
kickExempt=\u00a7cYou can not kick that person.
|
||||
kill=\u00a77Killed {0}.
|
||||
kitError=\u00a7cThere are no valid kits.
|
||||
kitError2=\u00a7cThat kit does not exist or is improperly defined.
|
||||
kitErrorHelp=\u00a7cPerhaps an item is missing a quantity in the configuration?
|
||||
kitGive=\u00a77Giving kit {0}.
|
||||
kitInvFull=\u00a7cYour inventory was full, placing kit on the floor
|
||||
kitTimed=\u00a7cYou can''t use that kit again for another {0}.
|
||||
kits=\u00a77Kits: {0}
|
||||
lightningSmited=\u00a77You have just been smited
|
||||
lightningUse=\u00a77Smiting {0}
|
||||
loadWarpError=Failed to load warp {0}
|
||||
loadinfo=Loaded {0} build {1} by: {2}
|
||||
localFormat=Local: <{0}> {1}
|
||||
mailClear=\u00a7cTo mark your mail as read, type /mail clear
|
||||
mailCleared=\u00a77Mail Cleared!
|
||||
mailSent=\u00a77Mail sent!
|
||||
markMailAsRead=\u00a7cTo mark your mail as read, type /mail clear
|
||||
markedAsAway=\u00a77You are now marked as away.
|
||||
markedAsNotAway=\u00a77You are no longer marked as away.
|
||||
maxHomes=You cannot set more than {0} homes.
|
||||
mayNotJail = \u00a7cYou may not jail that person
|
||||
me = me
|
||||
minute = minute
|
||||
minutes = minutes
|
||||
missingItems = You do not have {0}x {1}.
|
||||
missingPrefixSuffix = Missing a prefix or suffix for {0}
|
||||
mobSpawnError = Error while changing mob spawner.
|
||||
mobSpawnLimit = Mob quantity limited to server limit
|
||||
mobSpawnTarget = Target block must be a mob spawner.
|
||||
moneyRecievedFrom = \u00a7a{0} has been received from {1}
|
||||
moneySentTo = \u00a7a{0} has been sent to {1}
|
||||
moneyTaken = {0} taken from your bank account.
|
||||
month = month
|
||||
months = months
|
||||
moreThanZero = Quantities must be greater than 0.
|
||||
msgFormat = \u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
|
||||
muteExempt = \u00a7cYou may not mute that player.
|
||||
mutedPlayer = Player {0} muted.
|
||||
mutedPlayerFor = Player {0} muted for {1}.
|
||||
mutedUserSpeaks = {0} tried to speak, but is muted.
|
||||
needTpohere = You need access to /tpohere to teleport other players.
|
||||
negativeBalanceError = User is not allowed to have a negative balance.
|
||||
nickChanged = Nickname changed.
|
||||
mayNotJail=\u00a7cYou may not jail that person
|
||||
me=me
|
||||
minute=minute
|
||||
minutes=minutes
|
||||
missingItems=You do not have {0}x {1}.
|
||||
missingPrefixSuffix=Missing a prefix or suffix for {0}
|
||||
mobSpawnError=Error while changing mob spawner.
|
||||
mobSpawnLimit=Mob quantity limited to server limit
|
||||
mobSpawnTarget=Target block must be a mob spawner.
|
||||
mobsAvailable=\u00a77Mobs: {0}
|
||||
moneyRecievedFrom=\u00a7a{0} has been received from {1}
|
||||
moneySentTo=\u00a7a{0} has been sent to {1}
|
||||
moneyTaken={0} taken from your bank account.
|
||||
month=month
|
||||
months=months
|
||||
moreThanZero=Quantities must be greater than 0.
|
||||
msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
|
||||
muteExempt=\u00a7cYou may not mute that player.
|
||||
mutedPlayer=Player {0} muted.
|
||||
mutedPlayerFor=Player {0} muted for {1}.
|
||||
mutedUserSpeaks={0} tried to speak, but is muted.
|
||||
needTpohere=You need access to /tpohere to teleport other players.
|
||||
negativeBalanceError=User is not allowed to have a negative balance.
|
||||
nickChanged=Nickname changed.
|
||||
nickDisplayName=\u00a77You have to enable change-displayname in Essentials config.
|
||||
nickInUse = \u00a7cThat name is already in use.
|
||||
nickNamesAlpha = \u00a7cNicknames must be alphanumeric.
|
||||
nickNoMore = \u00a77You no longer have a nickname.
|
||||
nickOthersPermission = \u00a7cYou do not have permission to change the nickname of others
|
||||
nickSet = \u00a77Your nickname is now \u00a7c{0}
|
||||
noAccessCommand = \u00a7cYou do not have access to that command.
|
||||
noAccessPermission = \u00a7cYou do not have permission to access that {0}.
|
||||
noDestroyPermission = \u00a7cYou do not have permission to destroy that {0}.
|
||||
noHelpFound = \u00a7cNo matching commands.
|
||||
noHomeSet = You have not set a home.
|
||||
noHomeSetPlayer = Player has not set a home.
|
||||
noKitPermission = \u00a7cYou need the \u00a7c{0}\u00a7c permission to use that kit.
|
||||
noKits = \u00a77There are no kits available yet
|
||||
noMail = You do not have any mail
|
||||
noMailSendPerm = \u00a7cYou do not have the \u00a7fessentials.mail.send\u00a7c permission.
|
||||
noMotd = \u00a7cThere is no message of the day.
|
||||
noNewMail = \u00a77You have no new mail.
|
||||
noPendingRequest = You do not have a pending request.
|
||||
noPlacePermission = \u00a7cYou do not have permission to place a block near that sign.
|
||||
nickInUse=\u00a7cThat name is already in use.
|
||||
nickNamesAlpha=\u00a7cNicknames must be alphanumeric.
|
||||
nickNoMore=\u00a77You no longer have a nickname.
|
||||
nickOthersPermission=\u00a7cYou do not have permission to change the nickname of others
|
||||
nickSet=\u00a77Your nickname is now \u00a7c{0}
|
||||
noAccessCommand=\u00a7cYou do not have access to that command.
|
||||
noAccessPermission=\u00a7cYou do not have permission to access that {0}.
|
||||
noDestroyPermission=\u00a7cYou do not have permission to destroy that {0}.
|
||||
noHelpFound=\u00a7cNo matching commands.
|
||||
noHomeSet=You have not set a home.
|
||||
noHomeSetPlayer=Player has not set a home.
|
||||
noKitPermission=\u00a7cYou need the \u00a7c{0}\u00a7c permission to use that kit.
|
||||
noKits=\u00a77There are no kits available yet
|
||||
noMail=You do not have any mail
|
||||
noMailSendPerm=\u00a7cYou do not have the \u00a7fessentials.mail.send\u00a7c permission.
|
||||
noMotd=\u00a7cThere is no message of the day.
|
||||
noNewMail=\u00a77You have no new mail.
|
||||
noPendingRequest=You do not have a pending request.
|
||||
noPlacePermission=\u00a7cYou do not have permission to place a block near that sign.
|
||||
noPowerTools=You have no power tools assigned.
|
||||
noRules = \u00a7cThere are no rules specified yet.
|
||||
noWarpsDefined = No warps defined
|
||||
none = none
|
||||
notAllowedToQuestion = \u00a7cYou are not authorized to use question.
|
||||
notAllowedToShout = \u00a7cYou are not authorized to shout.
|
||||
notEnoughMoney = You do not have sufficient funds.
|
||||
notRecommendedBukkit = Bukkit version is not the recommended build for Essentials.
|
||||
notSupportedYet = Not supported yet.
|
||||
now = now
|
||||
numberRequired = A number goes there, silly.
|
||||
onlyDayNight = /time only supports day/night.
|
||||
onlyPlayers = Only in-game players can use {0}.
|
||||
onlySunStorm = /weather only supports sun/storm.
|
||||
pTimeCurrent = \u00a7e{0}''s\u00a7f time is {1}.
|
||||
pTimeCurrentFixed = \u00a7e{0}''s\u00a7f time is fixed to {1}.
|
||||
pTimeNormal = \u00a7e{0}''s\u00a7f time is normal and matches the server.
|
||||
pTimeOthersPermission = \u00a7cYou are not authorized to set other players'' time.
|
||||
pTimePlayers = These players have their own time:
|
||||
pTimeReset = Player time has been reset for: \u00a7e{0}
|
||||
pTimeSet = Player time is set to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
pTimeSetFixed = Player time is fixed to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
parseError = Error parsing {0} on line {1}
|
||||
pendingTeleportCancelled = \u00a7cPending teleportation request cancelled.
|
||||
permissionsError = Missing Permissions/GroupManager; chat prefixes/suffixes will be disabled.
|
||||
playerBanned = \u00a7cPlayer {0} banned {1} for {2}
|
||||
playerInJail = \u00a7cPlayer is already in jail {0}.
|
||||
playerJailed = \u00a77Player {0} jailed.
|
||||
playerJailedFor = \u00a77Player {0} jailed for {1}.
|
||||
playerKicked = \u00a7cPlayer {0} kicked {1} for {2}
|
||||
playerMuted = \u00a77You have been muted
|
||||
playerMutedFor = \u00a77You have been muted for {0}
|
||||
playerNeverOnServer = \u00a7cPlayer {0} was never on this server.
|
||||
playerNotFound = \u00a7cPlayer not found.
|
||||
playerUnmuted = \u00a77You have been unmuted
|
||||
pong = Pong!
|
||||
possibleWorlds = \u00a77Possible worlds are the numbers 0 through {0}.
|
||||
powerToolAir = Command can''t be attached to air.
|
||||
powerToolAlreadySet = Command \u00a7c{0}\u00a7f is already assigned to {1}.
|
||||
powerToolAttach = \u00a7c{0}\u00a7f command assigned to {1}.
|
||||
powerToolClearAll = All powertool commands have been cleared.
|
||||
powerToolList = {1} has the following commands: \u00a7c{0}\u00a7f.
|
||||
powerToolListEmpty = {0} has no commands assigned.
|
||||
powerToolNoSuchCommandAssigned = Command \u00a7c{0}\u00a7f has not been assigned to {1}.
|
||||
powerToolRemove = Command \u00a7c{0}\u00a7f removed from {1}.
|
||||
powerToolRemoveAll = All commands removed from {0}.
|
||||
powerToolsEnabled=All of your power tools have been enabled.
|
||||
noRules=\u00a7cThere are no rules specified yet.
|
||||
noWarpsDefined=No warps defined
|
||||
none=none
|
||||
notAllowedToQuestion=\u00a7cYou are not authorized to use question.
|
||||
notAllowedToShout=\u00a7cYou are not authorized to shout.
|
||||
notEnoughMoney=You do not have sufficient funds.
|
||||
notRecommendedBukkit=Bukkit version is not the recommended build for Essentials.
|
||||
notSupportedYet=Not supported yet.
|
||||
now=now
|
||||
numberRequired=A number goes there, silly.
|
||||
onlyDayNight=/time only supports day/night.
|
||||
onlyPlayers=Only in-game players can use {0}.
|
||||
onlySunStorm=/weather only supports sun/storm.
|
||||
pTimeCurrent=\u00a7e{0}''s\u00a7f time is {1}.
|
||||
pTimeCurrentFixed=\u00a7e{0}''s\u00a7f time is fixed to {1}.
|
||||
pTimeNormal=\u00a7e{0}''s\u00a7f time is normal and matches the server.
|
||||
pTimeOthersPermission=\u00a7cYou are not authorized to set other players'' time.
|
||||
pTimePlayers=These players have their own time:
|
||||
pTimeReset=Player time has been reset for: \u00a7e{0}
|
||||
pTimeSet=Player time is set to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
pTimeSetFixed=Player time is fixed to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
parseError=Error parsing {0} on line {1}
|
||||
pendingTeleportCancelled=\u00a7cPending teleportation request cancelled.
|
||||
permissionsError=Missing Permissions/GroupManager; chat prefixes/suffixes will be disabled.
|
||||
playerBanned=\u00a7cPlayer {0} banned {1} for {2}
|
||||
playerInJail=\u00a7cPlayer is already in jail {0}.
|
||||
playerJailed=\u00a77Player {0} jailed.
|
||||
playerJailedFor= \u00a77Player {0} jailed for {1}.
|
||||
playerKicked=\u00a7cPlayer {0} kicked {1} for {2}
|
||||
playerMuted=\u00a77You have been muted
|
||||
playerMutedFor=\u00a77You have been muted for {0}
|
||||
playerNeverOnServer=\u00a7cPlayer {0} was never on this server.
|
||||
playerNotFound=\u00a7cPlayer not found.
|
||||
playerUnmuted=\u00a77You have been unmuted
|
||||
pong=Pong!
|
||||
possibleWorlds=\u00a77Possible worlds are the numbers 0 through {0}.
|
||||
powerToolAir=Command can''t be attached to air.
|
||||
powerToolAlreadySet=Command \u00a7c{0}\u00a7f is already assigned to {1}.
|
||||
powerToolAttach=\u00a7c{0}\u00a7f command assigned to {1}.
|
||||
powerToolClearAll=All powertool commands have been cleared.
|
||||
powerToolList={1} has the following commands: \u00a7c{0}\u00a7f.
|
||||
powerToolListEmpty={0} has no commands assigned.
|
||||
powerToolNoSuchCommandAssigned=Command \u00a7c{0}\u00a7f has not been assigned to {1}.
|
||||
powerToolRemove=Command \u00a7c{0}\u00a7f removed from {1}.
|
||||
powerToolRemoveAll=All commands removed from {0}.
|
||||
powerToolsDisabled=All of your power tools have been enabled.
|
||||
protectionOwner = \u00a76[EssentialsProtect] Protection owner: {0}
|
||||
questionFormat = \u00a77[Question]\u00a7f {0}
|
||||
reloadAllPlugins = \u00a77Reloaded all plugins.
|
||||
repair = You have successfully repaired your: \u00a7e{0}.
|
||||
repairAlreadyFixed = \u00a77This item does not need repairing.
|
||||
repairInvalidType = \u00a7cThis item cannot be repaired.
|
||||
repairNone = There were no items that needing repairing.
|
||||
requestAccepted = \u00a77Teleport request accepted.
|
||||
requestAcceptedFrom = \u00a77{0} accepted your teleport request.
|
||||
requestDenied = \u00a77Teleport request denied.
|
||||
requestDeniedFrom = \u00a77{0} denied your teleport request
|
||||
requestSent = \u00a77Request sent to {0}\u00a77.
|
||||
returnPlayerToJailError = Error occurred when trying to return player to jail.
|
||||
second = second
|
||||
seconds = seconds
|
||||
seenOffline = Player {0} is offline since {1}
|
||||
seenOnline = Player {0} is online since {1}
|
||||
serverFull = Server is full
|
||||
setSpawner = Changed spawner type to {0}
|
||||
sheepMalformedColor = Malformed color.
|
||||
shoutFormat = \u00a77[Shout]\u00a7f {0}
|
||||
signFormatFail = \u00a74[{0}]
|
||||
signFormatSuccess = \u00a71[{0}]
|
||||
signFormatTemplate = [{0}]
|
||||
signProtectInvalidLocation = \u00a74You are not allowed to create sign here.
|
||||
similarWarpExist = A warp with a similar name already exists.
|
||||
slimeMalformedSize = Malformed size.
|
||||
soloMob = That mob likes to be alone
|
||||
spawnSet = \u00a77Spawn location set for group {0}.
|
||||
spawned = spawned
|
||||
suicideMessage = \u00a77Goodbye Cruel World...
|
||||
suicideSuccess = \u00a77{0} took their own life
|
||||
takenFromAccount = \u00a7c{0} has been taken from your account.
|
||||
takenFromOthersAccount = \u00a7c{0} has been taken from {1} account.
|
||||
teleportAAll = \u00a77Teleporting request sent to all players...
|
||||
teleportAll = \u00a77Teleporting all players...
|
||||
teleportAtoB = \u00a77{0}\u00a77 teleported you to {1}\u00a77.
|
||||
teleportDisabled = {0} has teleportation disabled.
|
||||
teleportHereRequest = \u00a7c{0}\u00a7c has requested that you teleport to them.
|
||||
teleportNewPlayerError = Failed to teleport new player
|
||||
teleportRequest = \u00a7c{0}\u00a7c has requested to teleport to you.
|
||||
teleportTop = \u00a77Teleporting to top.
|
||||
teleportationCommencing = \u00a77Teleportation commencing...
|
||||
teleportationDisabled = \u00a77Teleportation disabled.
|
||||
teleportationEnabled = \u00a77Teleportation enabled.
|
||||
teleporting = \u00a77Teleporting...
|
||||
teleportingPortal = \u00a77Teleporting via portal.
|
||||
tempBanned = Temporarily banned from server for {0}
|
||||
tempbanExempt = \u00a77You may not tempban that player
|
||||
thunder = You {0} thunder in your world
|
||||
thunderDuration = You {0} thunder in your world for {1} seconds.
|
||||
timeBeforeHeal = Time before next heal: {0}
|
||||
timeBeforeTeleport = Time before next teleport: {0}
|
||||
timeFormat = \u00a73{0}\u00a7f or \u00a73{1}\u00a7f or \u00a73{2}\u00a7f
|
||||
timePattern = (?:([0-9]+)\\s*y[a-z]*[,\\s]*)?(?:([0-9]+)\\s*mo[a-z]*[,\\s]*)?(?:([0-9]+)\\s*w[a-z]*[,\\s]*)?(?:([0-9]+)\\s*d[a-z]*[,\\s]*)?(?:([0-9]+)\\s*h[a-z]*[,\\s]*)?(?:([0-9]+)\\s*m[a-z]*[,\\s]*)?(?:([0-9]+)\\s*(?:s[a-z]*)?)?
|
||||
timeSet = Time set in all worlds.
|
||||
timeSetPermission = \u00a7cYou are not authorized to set the time.
|
||||
timeWorldCurrent = The current time in {0} is \u00a73{1}
|
||||
timeWorldSet = The time was set to {0} in: \u00a7c{1}
|
||||
tradeCompleted = \u00a77Trade completed.
|
||||
tradeSignEmpty = The trade sign does not have enough supply left.
|
||||
tradeSignEmptyOwner = There is nothing to collect from this trade sign.
|
||||
treeFailure = \u00a7cTree generation failure. Try again on grass or dirt.
|
||||
treeSpawned = \u00a77Tree spawned.
|
||||
typeTpaccept = \u00a77To teleport, type \u00a7c/tpaccept\u00a77.
|
||||
typeTpdeny = \u00a77To deny this request, type \u00a7c/tpdeny\u00a77.
|
||||
typeWorldName = \u00a77You can also type the name of a specific world.
|
||||
unableToSpawnMob = Unable to spawn mob.
|
||||
unbannedIP = Unbanned IP address.
|
||||
unbannedPlayer = Unbanned player.
|
||||
unignorePlayer = You are not ignoring player {0} anymore.
|
||||
unknownItemId = Unknown item id: {0}
|
||||
unknownItemInList = Unknown item {0} in {1} list.
|
||||
unknownItemName = Unknown item name: {0}
|
||||
unlimitedItemPermission = \u00a7cNo permission for unlimited item {0}.
|
||||
unlimitedItems = Unlimited items:
|
||||
unmutedPlayer = Player {0} unmuted.
|
||||
upgradingFilesError = Error while upgrading the files
|
||||
userCreatedPortal = {0} used a portal and generated an exit portal.
|
||||
userDoesNotExist = The user {0} does not exist.
|
||||
userIsAway = {0} is now AFK
|
||||
userIsNotAway = {0} is no longer AFK
|
||||
userJailed = \u00a77You have been jailed
|
||||
userUsedPortal = {0} used an existing exit portal.
|
||||
userdataMoveBackError = Failed to move userdata/{0}.tmp to userdata/{1}
|
||||
userdataMoveError = Failed to move userdata/{0} to userdata/{1}.tmp
|
||||
usingPortal = \u00a77Teleporting via portal to an existing portal.
|
||||
usingTempFolderForTesting = Using temp folder for testing:
|
||||
versionMismatch = Version mismatch! Please update {0} to the same version.
|
||||
versionMismatchAll = Version mismatch! Please update all Essentials jars to the same version.
|
||||
voiceSilenced = \u00a77Your voice has been silenced
|
||||
warpDeleteError = Problem deleting the warp file.
|
||||
warpListPermission = \u00a7cYou do not have Permission to list that warps.
|
||||
warpNotExist = That warp does not exist.
|
||||
warpSet = \u00a77Warp {0} set.
|
||||
warpUsePermission = \u00a7cYou do not have Permission to use that warp.
|
||||
warpingTo = \u00a77Warping to {0}.
|
||||
warpsCount = \u00a77There are {0} warps. Showing page {1} of {2}.
|
||||
weatherStorm = \u00a77You set the weather to storm in {0}
|
||||
weatherStormFor = \u00a77You set the weather to storm in {0} for {1} seconds
|
||||
weatherSun = \u00a77You set the weather to sun in {0}
|
||||
weatherSunFor = \u00a77You set the weather to sun in {0} for {1} seconds
|
||||
whoisGeoLocation = \u00a79 - Location: {0}
|
||||
whoisHealth = \u00a79 - Health: {0}/20
|
||||
whoisIPAddress = \u00a79 - IP Address: {0}
|
||||
whoisIs = {0} is {1}
|
||||
whoisLocation = \u00a79 - Location: ({0}, {1}, {2}, {3})
|
||||
whoisMoney = \u00a79 - Money: {0}
|
||||
whoisStatusAvailable = \u00a79 - Status: Available
|
||||
whoisStatusAway = \u00a79 - Status: \u00a7cAway\u00a7f
|
||||
worth = \u00a77Stack of {0} worth \u00a7c{1}\u00a77 ({2} item(s) at {3} each)
|
||||
worthMeta = \u00a77Stack of {0} with metadata of {1} worth \u00a7c{2}\u00a77 ({3} item(s) at {4} each)
|
||||
worthSet = Worth value set
|
||||
year = year
|
||||
years = years
|
||||
youAreHealed = \u00a77You have been healed.
|
||||
youHaveNewMail = \u00a7cYou have {0} messages!\u00a7f Type \u00a77/mail read\u00a7f to view your mail.
|
||||
|
||||
|
||||
powerToolsEnabled=All of your power tools have been enabled.
|
||||
protectionOwner=\u00a76[EssentialsProtect] Protection owner: {0}
|
||||
questionFormat=\u00a77[Question]\u00a7f {0}
|
||||
reloadAllPlugins=\u00a77Reloaded all plugins.
|
||||
repair=You have successfully repaired your: \u00a7e{0}.
|
||||
repairAlreadyFixed=\u00a77This item does not need repairing.
|
||||
repairInvalidType=\u00a7cThis item cannot be repaired.
|
||||
repairNone=There were no items that needing repairing.
|
||||
requestAccepted=\u00a77Teleport request accepted.
|
||||
requestAcceptedFrom=\u00a77{0} accepted your teleport request.
|
||||
requestDenied=\u00a77Teleport request denied.
|
||||
requestDeniedFrom=\u00a77{0} denied your teleport request
|
||||
requestSent=\u00a77Request sent to {0}\u00a77.
|
||||
returnPlayerToJailError=Error occurred when trying to return player to jail.
|
||||
second=second
|
||||
seconds=seconds
|
||||
seenOffline=Player {0} is offline since {1}
|
||||
seenOnline=Player {0} is online since {1}
|
||||
serverFull=Server is full
|
||||
setSpawner=Changed spawner type to {0}
|
||||
sheepMalformedColor=Malformed color.
|
||||
shoutFormat=\u00a77[Shout]\u00a7f {0}
|
||||
signFormatFail=\u00a74[{0}]
|
||||
signFormatSuccess=\u00a71[{0}]
|
||||
signFormatTemplate=[{0}]
|
||||
signProtectInvalidLocation=\u00a74You are not allowed to create sign here.
|
||||
similarWarpExist=A warp with a similar name already exists.
|
||||
slimeMalformedSize=Malformed size.
|
||||
soloMob=That mob likes to be alone
|
||||
spawnSet=\u00a77Spawn location set for group {0}.
|
||||
spawned=spawned
|
||||
suicideMessage=\u00a77Goodbye Cruel World...
|
||||
suicideSuccess= \u00a77{0} took their own life
|
||||
survival=survival
|
||||
takenFromAccount=\u00a7c{0} has been taken from your account.
|
||||
takenFromOthersAccount=\u00a7c{0} has been taken from {1} account.
|
||||
teleportAAll=\u00a77Teleporting request sent to all players...
|
||||
teleportAll=\u00a77Teleporting all players...
|
||||
teleportAtoB=\u00a77{0}\u00a77 teleported you to {1}\u00a77.
|
||||
teleportDisabled={0} has teleportation disabled.
|
||||
teleportHereRequest=\u00a7c{0}\u00a7c has requested that you teleport to them.
|
||||
teleportNewPlayerError=Failed to teleport new player
|
||||
teleportRequest=\u00a7c{0}\u00a7c has requested to teleport to you.
|
||||
teleportTop=\u00a77Teleporting to top.
|
||||
teleportationCommencing=\u00a77Teleportation commencing...
|
||||
teleportationDisabled=\u00a77Teleportation disabled.
|
||||
teleportationEnabled=\u00a77Teleportation enabled.
|
||||
teleporting=\u00a77Teleporting...
|
||||
teleportingPortal=\u00a77Teleporting via portal.
|
||||
tempBanned=Temporarily banned from server for {0}
|
||||
tempbanExempt=\u00a77You may not tempban that player
|
||||
thunder= You {0} thunder in your world
|
||||
thunderDuration=You {0} thunder in your world for {1} seconds.
|
||||
timeBeforeHeal=Time before next heal: {0}
|
||||
timeBeforeTeleport=Time before next teleport: {0}
|
||||
timeFormat=\u00a73{0}\u00a7f or \u00a73{1}\u00a7f or \u00a73{2}\u00a7f
|
||||
timePattern=(?:([0-9]+)\\s*y[a-z]*[,\\s]*)?(?:([0-9]+)\\s*mo[a-z]*[,\\s]*)?(?:([0-9]+)\\s*w[a-z]*[,\\s]*)?(?:([0-9]+)\\s*d[a-z]*[,\\s]*)?(?:([0-9]+)\\s*h[a-z]*[,\\s]*)?(?:([0-9]+)\\s*m[a-z]*[,\\s]*)?(?:([0-9]+)\\s*(?:s[a-z]*)?)?
|
||||
timeSet=Time set in all worlds.
|
||||
timeSetPermission=\u00a7cYou are not authorized to set the time.
|
||||
timeWorldCurrent=The current time in {0} is \u00a73{1}
|
||||
timeWorldSet=The time was set to {0} in: \u00a7c{1}
|
||||
tradeCompleted=\u00a77Trade completed.
|
||||
tradeSignEmpty=The trade sign does not have enough supply left.
|
||||
tradeSignEmptyOwner=There is nothing to collect from this trade sign.
|
||||
treeFailure=\u00a7cTree generation failure. Try again on grass or dirt.
|
||||
treeSpawned=\u00a77Tree spawned.
|
||||
true=true
|
||||
typeTpaccept=\u00a77To teleport, type \u00a7c/tpaccept\u00a77.
|
||||
typeTpdeny=\u00a77To deny this request, type \u00a7c/tpdeny\u00a77.
|
||||
typeWorldName=\u00a77You can also type the name of a specific world.
|
||||
unableToSpawnMob=Unable to spawn mob.
|
||||
unbannedIP=Unbanned IP address.
|
||||
unbannedPlayer=Unbanned player.
|
||||
unignorePlayer=You are not ignoring player {0} anymore.
|
||||
unknownItemId=Unknown item id: {0}
|
||||
unknownItemInList=Unknown item {0} in {1} list.
|
||||
unknownItemName=Unknown item name: {0}
|
||||
unlimitedItemPermission=\u00a7cNo permission for unlimited item {0}.
|
||||
unlimitedItems=Unlimited items:
|
||||
unmutedPlayer=Player {0} unmuted.
|
||||
upgradingFilesError=Error while upgrading the files
|
||||
userDoesNotExist=The user {0} does not exist.
|
||||
userIsAway={0} is now AFK
|
||||
userIsNotAway={0} is no longer AFK
|
||||
userJailed=\u00a77You have been jailed
|
||||
userUsedPortal={0} used an existing exit portal.
|
||||
userdataMoveBackError=Failed to move userdata/{0}.tmp to userdata/{1}
|
||||
userdataMoveError=Failed to move userdata/{0} to userdata/{1}.tmp
|
||||
usingTempFolderForTesting=Using temp folder for testing:
|
||||
versionMismatch=Version mismatch! Please update {0} to the same version.
|
||||
versionMismatchAll=Version mismatch! Please update all Essentials jars to the same version.
|
||||
voiceSilenced=\u00a77Your voice has been silenced
|
||||
warpDeleteError=Problem deleting the warp file.
|
||||
warpListPermission=\u00a7cYou do not have Permission to list that warps.
|
||||
warpNotExist=That warp does not exist.
|
||||
warpSet=\u00a77Warp {0} set.
|
||||
warpUsePermission=\u00a7cYou do not have Permission to use that warp.
|
||||
warpingTo=\u00a77Warping to {0}.
|
||||
warps=Warps: {0}
|
||||
warpsCount=\u00a77There are {0} warps. Showing page {1} of {2}.
|
||||
weatherStorm=\u00a77You set the weather to storm in {0}
|
||||
weatherStormFor=\u00a77You set the weather to storm in {0} for {1} seconds
|
||||
weatherSun=\u00a77You set the weather to sun in {0}
|
||||
weatherSunFor=\u00a77You set the weather to sun in {0} for {1} seconds
|
||||
whoisGamemode=\u00a79 - Gamemode: {0}
|
||||
whoisGeoLocation=\u00a79 - Location: {0}
|
||||
whoisGod=\u00a79 - God mode: {0}
|
||||
whoisHealth=\u00a79 - Health: {0}/20
|
||||
whoisIPAddress=\u00a79 - IP Address: {0}
|
||||
whoisIs={0} is {1}
|
||||
whoisLocation=\u00a79 - Location: ({0}, {1}, {2}, {3})
|
||||
whoisMoney=\u00a79 - Money: {0}
|
||||
whoisOP=\u00a79 - OP: {0}
|
||||
whoisStatusAvailable=\u00a79 - Status: Available
|
||||
whoisStatusAway=\u00a79 - Status: \u00a7cAway\u00a7f
|
||||
worth=\u00a77Stack of {0} worth \u00a7c{1}\u00a77 ({2} item(s) at {3} each)
|
||||
worthMeta=\u00a77Stack of {0} with metadata of {1} worth \u00a7c{2}\u00a77 ({3} item(s) at {4} each)
|
||||
worthSet=Worth value set
|
||||
year=year
|
||||
years=years
|
||||
youAreHealed=\u00a77You have been healed.
|
||||
youHaveNewMail=\u00a7cYou have {0} messages!\u00a7f Type \u00a77/mail read\u00a7f to view your mail.
|
||||
|
378
Essentials/src/messages_es.properties
Normal file
378
Essentials/src/messages_es.properties
Normal file
@@ -0,0 +1,378 @@
|
||||
#version: TeamCity
|
||||
# Single quotes have to be doubled: ''
|
||||
# Translations start here
|
||||
# by:
|
||||
action=* {0} {1}
|
||||
addedToAccount=\u00a7a{0} ha sido agregado a tu cuenta.
|
||||
addedToOthersAccount=\u00a7a{0} ha sido agregado a la cuenta de {1}.
|
||||
alertBroke=roto:
|
||||
alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} en: {3}
|
||||
alertPlaced=situado:
|
||||
alertUsed=usado:
|
||||
autoAfkKickReason=Has sido echado por ausentarte mas de {0} minutos.
|
||||
backAfterDeath=\u00a77Usa el comando /back para volver al punto en el que moriste.
|
||||
backUsageMsg=\u00a77Volviendo a la localizacion anterior.
|
||||
backupFinished=Copia de seguridad completada
|
||||
backupStarted=Comenzando copia de seguridad
|
||||
balance=\u00a77Cantidad: {0}
|
||||
balanceTop=\u00a77Top {0} cantidades
|
||||
banExempt=\u00a7cNo puedes banear a ese jugador
|
||||
banIpAddress=\u00a77Direccion IP baneada
|
||||
bannedIpsFileError=Error leyendo banned-ips.txt
|
||||
bannedIpsFileNotFound=banned-ips.txt no encontrado
|
||||
bannedPlayersFileError=Error leyendo banned-players.txt
|
||||
bannedPlayersFileNotFound=banned-players.txt no encontrado
|
||||
bigTreeFailure=\u00a7cBig Generacion de arbol fallida. Prueba de nuevo en hierba o arena.
|
||||
bigTreeSuccess= \u00a77Big Arbol generado.
|
||||
broadcast=[\u00a7cBroadcast\u00a7f]\u00a7a {0}
|
||||
buildAlert=\u00a7cNo tienes permisos para construir
|
||||
bukkitFormatChanged=Version de formato de Bukkit cambiado. Version no comprobada.
|
||||
burnMsg=\u00a77Has puesto {0} en fuego durante {1} segundos.
|
||||
canTalkAgain=\u00a77Ya puedes hablar de nuevo
|
||||
cantFindGeoIpDB=No se puede encontrar la bases de datos del Geo IP
|
||||
cantReadGeoIpDB=Error al intentar leer la base de datos del Geo IP
|
||||
cantSpawnItem=\u00a7cNo tienes acceso para producir este objeto {0}
|
||||
commandFailed=Command {0} fallado:
|
||||
commandHelpFailedForPlugin=Error obteniendo ayuda para: {0}
|
||||
commandNotLoaded=\u00a7cCommand {0} esta cargado incorrectamente.
|
||||
compassBearing=\u00a77Bearing: {0} ({1} grados).
|
||||
configFileMoveError=Error al mover config.yml para hacer una copia de seguridad de la localizacion.
|
||||
configFileRenameError=Error al renombrar archivo temp a config.yml
|
||||
connectedPlayers=Jugadores conectados:
|
||||
connectionFailed=Error al abrir conexion.
|
||||
cooldownWithMessage=\u00a7cCooldown: {0}
|
||||
corruptNodeInConfig=\u00a74Notice: Tu archivo de configuracion tiene un nodo {0} incorrecto.
|
||||
couldNotFindTemplate=No se puede encontrar el template {0}
|
||||
creatingConfigFromTemplate=Creando configuracion desde el template: {0}
|
||||
creatingEmptyConfig=Creando configuracion vacia: {0}
|
||||
creative=creative
|
||||
day=dia
|
||||
days=dias
|
||||
defaultBanReason=Baneado por incumplir las normas!
|
||||
deleteFileError=No se puede borrar el archivo: {0}
|
||||
deleteHome=\u00a77Home {0} ha sido borrado.
|
||||
deleteJail=\u00a77Jail {0} ha sido borrado.
|
||||
deleteWarp=\u00a77Warp {0} ha sido borrado.
|
||||
deniedAccessCommand={0} ha denegado el acceso al comando.
|
||||
dependancyDownloaded=[Essentials] Dependencia {0} descargada correctamente.
|
||||
dependancyException=[Essentials] Error al intentar descargar la dependencia.
|
||||
dependancyNotFound=[Essentials] La dependencia necesitada no se encontro, descargandola...
|
||||
depth=\u00a77Estas al nivel del mar.
|
||||
depthAboveSea=\u00a77Estas {0} bloque(s) por encima del mar.
|
||||
depthBelowSea=\u00a77Estas {0} bloque(s) por debajo del mar.
|
||||
destinationNotSet=Destino no establecido.
|
||||
disableUnlimited=\u00a77Desactivando colocacion ilimitada de {0} para {1}.
|
||||
disabled=desactivado
|
||||
dontMoveMessage=\u00a77Teletransporte comenzara en {0}. No te muevas.
|
||||
downloadingGeoIp=Descargando base de datos de GeoIP ... puede llevar un tiempo (pais: 0.6 MB, ciudad: 20MB)
|
||||
duplicatedUserdata=Datos de usuario duplicados: {0} y {1}
|
||||
enableUnlimited=\u00a77Dando cantidad ilimitada de {0} a {1}.
|
||||
enabled=activado
|
||||
errorCallingCommand=Error al ejecutar el comando /{0}
|
||||
errorWithMessage=\u00a7cError: {0}
|
||||
essentialsReload=\u00a77Essentials Recargado {0}
|
||||
extinguish=\u00a77Te has suicidado.
|
||||
extinguishOthers=\u00a77Has matado a {0}.
|
||||
failedToCloseConfig=Error al cerrar configuracion {0}
|
||||
failedToCreateConfig=Error al crear configuracion {0}
|
||||
failedToWriteConfig=Error al escribir configuracion {0}
|
||||
false=false
|
||||
fileRenameError=Error al renombrar el archivo {0}
|
||||
foreverAlone=\u00a7cNo tienes nadie a quien puedas responder.
|
||||
freedMemory= {0} MB libres.
|
||||
gameMode=\u00a77Set game mode {0} for {1}.
|
||||
gcchunks= pixeles,
|
||||
gcentities= entidades
|
||||
gcfree=Memoria libre: {0} MB
|
||||
gcmax=Memoria maxima: {0} MB
|
||||
gctotal=Memoria localizada: {0} MB
|
||||
geoIpUrlEmpty=Link para descargar GeoIP esta vacio.
|
||||
geoIpUrlInvalid=Link para descargar GeoIP es invalido.
|
||||
geoipJoinFormat=El jugador {0} viene de {1}
|
||||
godDisabledFor=Desactivado para {0}
|
||||
godEnabledFor=Activado para {0}
|
||||
godMode=\u00a77Modo Dios {0}.
|
||||
haveBeenReleased=\u00a77Has sido liberado
|
||||
heal=\u00a77Has sido curado.
|
||||
healOther=\u00a77Has curado a {0}.
|
||||
helpConsole=Para obtener ayuda de la consola, escribe ?.
|
||||
helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
|
||||
helpPages=Pagina \u00a7c{0}\u00a7f de \u00a7c{1}\u00a7f:
|
||||
holeInFloor=Agujero en el suelo
|
||||
homeSet=\u00a77Hogar establecido.
|
||||
homeSetToBed=\u00a77Tu hogar esta ahora establecido a esta cama.
|
||||
homes=Hogares: {0}
|
||||
hour=hora
|
||||
hours=horas
|
||||
ignorePlayer=A partir de ahora ignoras al jugador {0}.
|
||||
illegalDate=Forma de fecha ilegal.
|
||||
infoChapter=Selecciona una seccion:
|
||||
infoChapterPages=Seccion {0}, pagina \u00a7c{1}\u00a7f of \u00a7c{2}\u00a7f:
|
||||
infoFileDoesNotExist=El archivo info.txt no existe. Creando uno para ti.
|
||||
infoPages=Pagina \u00a7c{0}\u00a7f de \u00a7c{1}\u00a7f:
|
||||
infoUnknownChapter=Seccion desconocida.
|
||||
invBigger=El inventario del otro usuario es mas grande que el tuyo
|
||||
invRestored=Tu inventario ha sido recuperado.
|
||||
invSee=Estas viendo el inventario de {0}.
|
||||
invSeeHelp=Usa /invsee para recuperar tu inventario.
|
||||
invalidCharge=\u00a7cCargo invalido.
|
||||
invalidMob=Mob invalido.
|
||||
invalidServer=Servidor invalido!
|
||||
invalidSignLine=Linea {0} en el signo es invalida.
|
||||
invalidWorld=\u00a7cMundo invalido.
|
||||
inventoryCleared=\u00a77Inventario limpiado.
|
||||
inventoryClearedOthers=\u00a77Inventario de \u00a7c{0}\u00a77 limpiado.
|
||||
is=es
|
||||
itemCannotBeSold=Ese objeto no puede ser vendido al servidor.
|
||||
itemMustBeStacked=El objeto tiene que ser intercambiado en pilas. Una cantidad de 2s seria de dos pilas, etc.
|
||||
itemNotEnough1=\u00a7cNo tienes suficientes ejemplares de ese objeto para venderlo.
|
||||
itemNotEnough2=\u00a77Si pensabas en vender todos tus objetos de ese tipo, usa /sell nombredeobjeto
|
||||
itemNotEnough3=\u00a77/sell nombredeobjeto -1 vendera todos excepto un objeto, etc.
|
||||
itemSellAir=Realmente has intentado vender Aire? Pon un objeto en tu mano!
|
||||
itemSold=\u00a77Vendido para \u00a7c {0} \u00a77 ({1} {2} a {3} cada uno)
|
||||
itemSoldConsole={0} Vendido {1} para\u00a77 {2} \u00a77({3} objetos a {4} cada uno)
|
||||
itemSpawn=\u00a77Dando {0} de {1}
|
||||
itemsCsvNotLoaded=Error al leer items.csv.
|
||||
jailAlreadyIncarcerated=\u00a7cLa persona ya esta en la carcel: {0}
|
||||
jailMessage=\u00a7cPor hacer el mal, tiempo en la carcel estaras.
|
||||
jailNotExist=Esa carcel no existe.
|
||||
jailReleased=\u00a77Player \u00a7e{0}\u00a77 liberado.
|
||||
jailReleasedPlayerNotify=\u00a77 Has sido liberado!!
|
||||
jailSentenceExtended=El tiempo en la carcel se alarga hasta: {0)
|
||||
jailSet=\u00a77Carcel {0} ha sido puesta
|
||||
jumpError=Eso es demasiado para tu ordenador!
|
||||
kickDefault=Echado del servidor.
|
||||
kickExempt=\u00a7cNo puedes echar a esa persona.
|
||||
kill=\u00a77ha matado a {0}.
|
||||
kitError=\u00a7cNo hay ningun kit valido.
|
||||
kitError2=\u00a7cEse kit no existe o esta mal escrito.
|
||||
kitErrorHelp=\u00a7cPerhaps an item is missing a quantity in the configuration?
|
||||
kitGive=\u00a77Dando kit a {0}.
|
||||
kitInvFull=\u00a7cTu inventario esta lleno, su kit se pondra en el suelo
|
||||
kitTimed=\u00a7c No puedes usar ese kit de nuevo para otro{0}.
|
||||
kits=\u00a77Kits: {0}
|
||||
lightningSmited=\u00a77Acabas de ser golpeado
|
||||
lightningUse=\u00a77Golpeando a {0}
|
||||
loadWarpError=Error al cargar el tenetransporte {0}
|
||||
loadinfo=Cargado {0}, construido {1} por: {2}
|
||||
localFormat=Local: <{0}> {1}
|
||||
mailClear=\u00a7cPara marcar tu email como leido, escribe /mail clear
|
||||
mailCleared=\u00a77Email limpiado!
|
||||
mailSent=\u00a77Email enviado!!
|
||||
markMailAsRead=\u00a7cPara marcar tu email como leido, escribe /mail clear
|
||||
markedAsAway=\u00a77Has sido puesto como AFK.
|
||||
markedAsNotAway=\u00a77Ya no estas AFK.
|
||||
maxHomes=No puedes establecer mas de {0} hogares.
|
||||
mayNotJail=\u00a7cNo puedes encarcelar a esa persona
|
||||
me=yo
|
||||
minute=minuto
|
||||
minutes=minutos
|
||||
missingItems=No tienes {0}x de {1}.
|
||||
missingPrefixSuffix=Falta un prefijo o un sufijo para {0}
|
||||
mobSpawnError=Error al cambiar la localizacion para el nacimiento de los mobs.
|
||||
mobSpawnLimit=Cantidad de Mobs limitados al limite del server
|
||||
mobSpawnTarget=El block seleccionado sera el lugar donde van a nacer los mobs.
|
||||
mobsAvailable=\u00a77Mobs: {0}
|
||||
moneyRecievedFrom=\u00a7a{0} ha sido recivido de {1}
|
||||
moneySentTo=\u00a7a{0} ha sido enviado a {1}
|
||||
moneyTaken={0} han sido sacados de tu cuenta bancaria.
|
||||
month=mes
|
||||
months=meses
|
||||
moreThanZero=Las cantidades han de ser mayores que 0.
|
||||
msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
|
||||
muteExempt=\u00a7cNo puedes silenciar a ese jugador.
|
||||
mutedPlayer=Player {0} silenciado.
|
||||
mutedPlayerFor=Player {0} silenciado durante {1}.
|
||||
mutedUserSpeaks={0} intento hablar, pero esta silenciado.
|
||||
needTpohere=Necesitas acceso a /tpohere para teletransportar a otros jugadores.
|
||||
negativeBalanceError=El usuario no tiene permitido tener un saldo negativo.
|
||||
nickChanged=Nombre de jugador cambiado.
|
||||
nickDisplayName=\u00a77Tienes que habilitar cambio de nombre de usuario en la configuracion de Essentials.
|
||||
nickInUse=\u00a7cEse nombre ya esta en uso.
|
||||
nickNamesAlpha=\u00a7cLos nombres tienen que ser alfanumericos.
|
||||
nickNoMore=\u00a77Ya no tienes un nombre de usuario
|
||||
nickOthersPermission=\u00a7cNo tienes permiso para cambiar el nombre de usuario de otros.
|
||||
nickSet=\u00a77Tu nombre es ahora \u00a7c{0}
|
||||
noAccessCommand=\u00a7cNo tienes acceso a ese comando.
|
||||
noAccessPermission=\u00a7cNo tienes permisos para hacer eso {0}.
|
||||
noDestroyPermission=\u00a7cNo tienes permisos para destrozar eso {0}.
|
||||
noHelpFound=\u00a7cNo hay comandos relacionados.
|
||||
noHomeSet=No has establecido un hogar.
|
||||
noHomeSetPlayer=El jugador no ha establecido un hogar.
|
||||
noKitPermission=\u00a7cNecesitas los \u00a7c{0}\u00a7c permisos para usar ese kit.
|
||||
noKits=\u00a77No hay kits disponibles todavia
|
||||
noMail=No tienes ningun email recivido
|
||||
noMailSendPerm=\u00a7cNo tienes el permiso de \u00a7fessentials.mail.send\u00a7c.
|
||||
noMotd=\u00a7cNo hay ningun mensaje del dia.
|
||||
noNewMail=\u00a77No tienes ningun correo nuevo.
|
||||
noPendingRequest=No tienes ninguna peticion pendiente.
|
||||
noPlacePermission=\u00a7cNo tienes permiso para situar ese bloque en ese lugar.
|
||||
noPowerTools=You have no power tools assigned.
|
||||
noRules=\u00a7cNo hay reglas especificadas todavia.
|
||||
noWarpsDefined=No hay teletransportes definidos aun
|
||||
none=ninguno
|
||||
notAllowedToQuestion=\u00a7cYou estas autorizado para usar las preguntas.
|
||||
notAllowedToShout=\u00a7cNo estas autorizado para gritar.
|
||||
notEnoughMoney=No tienes el dinero suficiente.
|
||||
notRecommendedBukkit=La version de bukkit no es la recomendada para esta version de Essentials.
|
||||
notSupportedYet=No esta soportado aun.
|
||||
now=ahora
|
||||
numberRequired=Un numero es necesario, amigo.
|
||||
onlyDayNight=/time solo soporta day/night. (dia/noche)
|
||||
onlyPlayers=Solo los jugadores conectados pueden usar {0}.
|
||||
onlySunStorm=/weather solo soporta sun/storm. (sol/tormenta)
|
||||
pTimeCurrent=\u00a7e{0}''s\u00a7f la hora es {1}.
|
||||
pTimeCurrentFixed=\u00a7e{0}''s\u00a7f la hora ha sido cambiada a {1}.
|
||||
pTimeNormal=\u00a7e{0}''s\u00a7f el tiempo es normal y coincide con el servidor.
|
||||
pTimeOthersPermission=\u00a7cNo estas autorizado para especificar'' la hora de otros usuarios.
|
||||
pTimePlayers=Estos usuarios tienen su propia hora:
|
||||
pTimeReset=La hora del usuario ha sido reiniciada a las: \u00a7e{0}
|
||||
pTimeSet=La hora del jugador ha sido cambiada para las: \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
pTimeSetFixed=La hora del jugador ha sido arreglada para las: \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
parseError=error analizando {0} en la linea {1}
|
||||
pendingTeleportCancelled=\u00a7cPeticion de teletransporte pendiente cancelado.
|
||||
permissionsError=Falta el plugin Permissions/GroupManager; Los prefijos/sufijos de chat seran desactivados.
|
||||
playerBanned=\u00a7cEl jugador {0} ha baneado a {1} durante {2}
|
||||
playerInJail=\u00a7cEl jugador {0} ya esta en la carcel.
|
||||
playerJailed=\u00a77Jugador {0} encarcelado.
|
||||
playerJailedFor= \u00a77El jugador {0} ha sido encarcelado durante {1}.
|
||||
playerKicked=\u00a7cEl jugador {0} echo a {1} durante {2}
|
||||
playerMuted=\u00a77Has sido silenciado
|
||||
playerMutedFor=\u00a77Has sido silenciado durante {0}
|
||||
playerNeverOnServer=\u00a7cEl jugador {0} nunca estuvo en este servidor.
|
||||
playerNotFound=\u00a7cJugador no encontrado.
|
||||
playerUnmuted=\u00a77Has sido desmuteado.
|
||||
pong=Tkm mi ninio!
|
||||
possibleWorlds=\u00a77Los mundos posibles son desde el numero 0 hasta el {0}.
|
||||
powerToolAir=El comando no se puede ejecutar en el aire.
|
||||
powerToolAlreadySet=El comando \u00a7c{0}\u00a7f ya esta asignado a {1}.
|
||||
powerToolAttach=\u00a7c{0}\u00a7f comando asignado a {1}.
|
||||
powerToolClearAll=Todos los comandos de powertool han sido borrados.
|
||||
powerToolList={1} tiene los siguientes comandos: \u00a7c{0}\u00a7f.
|
||||
powerToolListEmpty={0} no tiene comandos asignados.
|
||||
powerToolNoSuchCommandAssigned=El comando \u00a7c{0}\u00a7f no ha sido asignado a {1}.
|
||||
powerToolRemove=Comando \u00a7c{0}\u00a7f borrado desde {1}.
|
||||
powerToolRemoveAll=Todos los comandos borrados desde {0}.
|
||||
powerToolsDisabled=All of your power tools have been disabled.
|
||||
powerToolsEnabled=All of your power tools have been enabled.
|
||||
protectionOwner=\u00a76[EssentialsProtect] Dueño de la proteccion: {0}
|
||||
questionFormat=\u00a77[Pregunta]\u00a7f {0}
|
||||
reloadAllPlugins=\u00a77Todos los plugins recargados.
|
||||
repair=Has reparado satisfactoriamente tu: \u00a7e{0}.
|
||||
repairAlreadyFixed=\u00a77Este objeto no necesita de reparado.
|
||||
repairInvalidType=\u00a7cEste objeto no puede ser reparado.
|
||||
repairNone=No habia objetos que necesitasen ser reparados.
|
||||
requestAccepted=\u00a77Peticion de teletransporte aceptada.
|
||||
requestAcceptedFrom=\u00a77{0} acepto tu peticion de teletransporte.
|
||||
requestDenied=\u00a77Peticion de teletransporte denegada.
|
||||
requestDeniedFrom=\u00a77{0} ha denegado tu peticion de teletransporte.
|
||||
requestSent=\u00a77Peticion enviada a {0}\u00a77.
|
||||
returnPlayerToJailError=Error al intentar quitar al jugador de la carcel.
|
||||
second=segundo
|
||||
seconds=segundos
|
||||
seenOffline=El jugador {0} esta desconectado desde {1}
|
||||
seenOnline=El jugador {0} lleva conectado desde {1}
|
||||
serverFull=Servidor lleno
|
||||
setSpawner=Cambiado tipo de lugar de nacimiento a {0}
|
||||
sheepMalformedColor=Color malformado.
|
||||
shoutFormat=\u00a77[Shout]\u00a7f {0}
|
||||
signFormatFail=\u00a74[{0}]
|
||||
signFormatSuccess=\u00a71[{0}]
|
||||
signFormatTemplate=[{0}]
|
||||
signProtectInvalidLocation=\u00a74No puedes poner carteles en ese sitio.
|
||||
similarWarpExist=Ya existe un teletransporte con ese nombre.
|
||||
slimeMalformedSize=Medidas malformadas.
|
||||
soloMob=A este mob le gusta estar solo
|
||||
spawnSet=\u00a77El lugar de nacimiento ha sido puesto para el grupo {0}.
|
||||
spawned=nacido
|
||||
suicideMessage=\u00a77Adios mundo cruel...
|
||||
suicideSuccess= \u00a77{0} se quito su propia vida
|
||||
survival=survival
|
||||
takenFromAccount=\u00a7c{0} ha sido sacado de tu cuenta.
|
||||
takenFromOthersAccount=\u00a7c{0} ha sido sacado de la cuenta de {1}.
|
||||
teleportAAll=\u00a77Peticion de teletransporte enviada a todos los jugadores...
|
||||
teleportAll=\u00a77Teletransportando a todos los jugadores...
|
||||
teleportAtoB=\u00a77{0}\u00a77 te teletransporto a {1}\u00a77.
|
||||
teleportDisabled={0} tiene desactivado los teletransportes.
|
||||
teleportHereRequest=\u00a7c{0}\u00a7c ha pedido que te teletransportes con el.
|
||||
teleportNewPlayerError=Error al teletransportar al nuevo jugador
|
||||
teleportRequest=\u00a7c{0}\u00a7c te ha pedido teletransportarse contigo.
|
||||
teleportTop=\u00a77Teletransportandote a la cima.
|
||||
teleportationCommencing=\u00a77Comenzando teletransporte...
|
||||
teleportationDisabled=\u00a77Teletransporte desactivado.
|
||||
teleportationEnabled=\u00a77Teletransporte activado.
|
||||
teleporting=\u00a77Teletransportando...
|
||||
teleportingPortal=\u00a77Teletransportando via portal.
|
||||
tempBanned=Baneado temporalmente del servidor por {0}
|
||||
tempbanExempt=\u00a77No puedes banear temporalmente a ese jugador
|
||||
thunder= Tu has {0} los truenos en tu mundo.
|
||||
thunderDuration=Tu has {0} los truenos en tu mundo durante {1} seconds.
|
||||
timeBeforeHeal=Tiempo antes de la siguiente curacion: {0}
|
||||
timeBeforeTeleport=Tiempo antes del proximo teletransporte: {0}
|
||||
timeFormat=\u00a73{0}\u00a7f or \u00a73{1}\u00a7f or \u00a73{2}\u00a7f
|
||||
timePattern=(?:([0-9]+)\\s*y[a-z]*[,\\s]*)?(?:([0-9]+)\\s*mo[a-z]*[,\\s]*)?(?:([0-9]+)\\s*w[a-z]*[,\\s]*)?(?:([0-9]+)\\s*d[a-z]*[,\\s]*)?(?:([0-9]+)\\s*h[a-z]*[,\\s]*)?(?:([0-9]+)\\s*m[a-z]*[,\\s]*)?(?:([0-9]+)\\s*(?:s[a-z]*)?)?
|
||||
timeSet=Time establecido en todos los mundos.
|
||||
timeSetPermission=\u00a7cNo estas autorizado para establecer la hora.
|
||||
timeWorldCurrent=La hora actual en {0} es \u00a73{1}
|
||||
timeWorldSet=La hora ha sido establecido a {0} en: \u00a7c{1}
|
||||
tradeCompleted=\u00a77Intercambio completado.
|
||||
tradeSignEmpty=Esta tienda no tiene nada disponible para ti.
|
||||
tradeSignEmptyOwner=No hay nada que recojer de esta tienda.
|
||||
treeFailure=\u00a7cError al generar arbol. Prueba de nuevo en tierra o hierba.
|
||||
treeSpawned=\u00a77Arbol puesto.
|
||||
true=true
|
||||
typeTpaccept=\u00a77Para teletransportarte, escribe \u00a7c/tpaccept\u00a77.
|
||||
typeTpdeny=\u00a77Para denegar esta peticion, escribe \u00a7c/tpdeny\u00a77.
|
||||
typeWorldName=\u00a77Tu tambien puedes escribir el nombre de un mundo especifico.
|
||||
unableToSpawnMob=No se puede generar Mobs.
|
||||
unbannedIP=IP Adress desbaneada.
|
||||
unbannedPlayer=Jugador desbaneado.
|
||||
unignorePlayer=Ya no estas ignorando al jugador {0}.
|
||||
unknownItemId=ID de objeto desconocido: {0}
|
||||
unknownItemInList=Objeto desconocido {0} en {1} lista.
|
||||
unknownItemName=Nombre de objeto desconocido: {0}
|
||||
unlimitedItemPermission=\u00a7cNo tienes permiso para objetos ilimitados {0}.
|
||||
unlimitedItems=Objetos ilimitados.
|
||||
unmutedPlayer=Jugador {0} desmuteado.
|
||||
upgradingFilesError=Error mientras se actualizaban los archivos
|
||||
userDoesNotExist=El usuario {0} no existe
|
||||
userIsAway={0} esta ahora ausente!
|
||||
userIsNotAway={0} ya no esta ausente!
|
||||
userJailed=\u00a77Has sido encarcelado!
|
||||
userUsedPortal={0} uso un portal de salida existente.
|
||||
userdataMoveBackError=Error al mover userdata/{0}.tmp a userdata/{1}
|
||||
userdataMoveError=Error al mover userdata/{0} a userdata/{1}.tmp
|
||||
usingTempFolderForTesting=Usando carpeta temporal para pruebas:
|
||||
versionMismatch=La version no coincide! Por favor actualiza {0} a la misma version.
|
||||
versionMismatchAll=La version no coincide! Por favor actualiza todos los jars de Essentials a la misma version.
|
||||
voiceSilenced=\u00a77Tu voz ha sido silenciada
|
||||
warpDeleteError=Problema al borrar el archivo de teletransporte.
|
||||
warpListPermission=\u00a7cNo tienes permiso para listar esos teletransportes.
|
||||
warpNotExist=Ese teletransporte no existe.
|
||||
warpSet=\u00a77Teletransporte {0} establecido.
|
||||
warpUsePermission=\u00a7cNo tienes permisos para usar ese teletransporte.
|
||||
warpingTo=\u00a77Teletransportandote a {0}.
|
||||
warps=Warps: {0}
|
||||
warpsCount=\u00a77Hay {0} teletransportes. Mostrando pagina {1} de {2}.
|
||||
weatherStorm=\u00a77Has establecido el tiempo a tormenta en este mundo.
|
||||
weatherStormFor=\u00a77Has establecido el tiempo a tormenta en este {1} durante {0} segundos.
|
||||
weatherSun=\u00a77Has establecido el tiempo a sol en este mundo.
|
||||
weatherSunFor=\u00a77Has establecido el tiempo a sol en este {1} durante {0} segundos.
|
||||
whoisGamemode=\u00a79 - Gamemode: {0}
|
||||
whoisGeoLocation=\u00a79 - Localizacion: {0}
|
||||
whoisGod=\u00a79 - God mode: {0}
|
||||
whoisHealth=\u00a79 - Salud: {0}/20
|
||||
whoisIPAddress=\u00a79 - Direccion IP: {0}
|
||||
whoisIs={0} es {1}
|
||||
whoisLocation=\u00a79 - Localizacion: ({0}, {1}, {2}, {3})
|
||||
whoisMoney=\u00a79 - Dinero: {0}
|
||||
whoisOP=\u00a79 - OP: {0}
|
||||
whoisStatusAvailable=\u00a79 - Estado: Disponible
|
||||
whoisStatusAway=\u00a79 - Status: \u00a7cAusente\u00a7f
|
||||
worth=\u00a77Pila de {0} con valor de \u00a7c{1}\u00a77 ({2} objeto(s) a {3} cada uno)
|
||||
worthMeta=\u00a77Pila de {0} con metadata de {1} , con valor de \u00a7c{2}\u00a77 ({3} objeto(s) a {4} cada uno)
|
||||
worthSet=Establecer el valor de un valor
|
||||
year=año
|
||||
years=años
|
||||
youAreHealed=\u00a77Has sido curado.
|
||||
youHaveNewMail=\u00a7cTienes {0} mensajes!\u00a7f Pon \u00a77/mail read\u00a7f para ver tus emails no leidos!.
|
@@ -2,372 +2,377 @@
|
||||
# Single quotes have to be doubled: ''
|
||||
# Translations start here
|
||||
# by:
|
||||
addedToAccount = \u00a7a{0} a \u00e9t\u00e9 rajout\u00e9 a votre compte.
|
||||
addedToOthersAccount = \u00a7a{0} a \u00e9t\u00e9 ajout\u00e9 \u00e0 {1} compte.
|
||||
alertBroke = a cass\u00e9:
|
||||
alertFormat = \u00a73[{0}] \u00a7f {1} \u00a76 {2} \u00e0:{3}
|
||||
alertPlaced = a plac\u00e9:
|
||||
alertUsed = a utilis\u00e9:
|
||||
action=* {0} {1}
|
||||
addedToAccount=\u00a7a{0} a \u00e9t\u00e9 rajout\u00e9 a votre compte.
|
||||
addedToOthersAccount=\u00a7a{0} a \u00e9t\u00e9 ajout\u00e9 \u00e0 {1} compte.
|
||||
alertBroke=a cass\u00e9:
|
||||
alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} \u00e0:{3}
|
||||
alertPlaced=a plac\u00e9:
|
||||
alertUsed=a utilis\u00e9:
|
||||
autoAfkKickReason=You have been kicked for idling more than {0} minutes.
|
||||
backAfterDeath = \u00a77Utilisez la commande /back pour retourner \u00e0 l''endroit ou vous \u00eates mort.
|
||||
backUsageMsg = \u00a77Retour a votre emplacement pr\u00e9c\u00e8dent.
|
||||
backupFinished = Backup termin\u00e9
|
||||
backupStarted = D\u00e9but du backup
|
||||
balance = \u00a77Solde: {0}
|
||||
balanceTop = \u00a77 Top {0} soldes
|
||||
banExempt = \u00a77Vous ne pouvez pas interdire ce joueur.
|
||||
banIpAddress = \u00a77Adresse IP banni
|
||||
bannedIpsFileError = Erreur de lecture de banned-ips.txt
|
||||
bannedIpsFileNotFound = Fichier banned-ips.txt introuvable
|
||||
bannedPlayersFileError = Erreur lors de la lecture de banned-players.txt
|
||||
bannedPlayersFileNotFound = banned-players.txt introuvable.
|
||||
bigTreeFailure = \u00a7c\u00c9chec de la g\u00e9n\u00e9ration du gros arbre. Essayez de nouveau sur de la terre ou de l''herbe.
|
||||
bigTreeSuccess = \u00a77Gros arbre cr\u00e9e.
|
||||
broadcast = [\u00a7cMessage\u00a7f]\u00a7a {0}
|
||||
buildAlert = \u00a7cVous n''avez pas la permission de construire.
|
||||
bukkitFormatChanged = Le format de la version de Bukkit a \u00e9t\u00e9 chang\u00e9. La version n''a pas \u00e9t\u00e9 v\u00e9rifi\u00e9e.
|
||||
burnMsg = \u00a77Vous avez enflamm\u00e9 {0} pour {1} seconde(s).
|
||||
canTalkAgain = \u00a77Vous pouvez de nouveau parler.
|
||||
cantFindGeoIpDB = N''arrive pas \u00e0 trouver la base de donn\u00e9es GeoIP!
|
||||
cantReadGeoIpDB = Echec de la lecture de la base de donn\u00e9s GeoIP!
|
||||
cantSpawnItem = \u00a7cVous n''avez pas le droit de faire apparaitre {0}
|
||||
commandFailed = \u00c9chec de la commande {0}:
|
||||
commandHelpFailedForPlugin=Erreur d'obtention d'aider \u00e0: {0}
|
||||
commandNotLoaded = \u00a7cLa commande {0} a \u00e9t\u00e9 mal charg\u00e9e.
|
||||
compassBearing = \u00a77Orientation: {0} ({1} degr\u00e9s).
|
||||
configFileMoveError = \u00c9chec du d\u00e9placement de config.yml vers l''emplacement de backup.
|
||||
configFileRenameError = \u00c9chec du changement de nom du fichier temp de config.yml
|
||||
connectedPlayers = Joueurs connect\u00e9s:
|
||||
connectionFailed = \u00c9chec de l''ouverture de la connexion.
|
||||
cooldownWithMessage = \u00a7cRefroidissement: {0}
|
||||
corruptNodeInConfig = \u00a74Annonce: Votre fichier de configuration a un {0} n\u0153ud corrompu.
|
||||
couldNotFindTemplate = Le mod\u00e8le {0} est introuvable
|
||||
creatingConfigFromTemplate = Cr\u00e9ation de la configuration \u00e0 partir du mod\u00e8le : {0}
|
||||
creatingEmptyConfig = Cr\u00e9ation d''une configuration vierge : {0}
|
||||
creatingPortal = Cr\u00e9ation d''un portail \u00e0 {0},{1},{2}.
|
||||
day = jour
|
||||
days = jours
|
||||
defaultBanReason = Le marteau du ban a frapp\u00e9!
|
||||
deleteFileError = Le fichier n''a pas pu \u00eatre supprim\u00e9: {0}
|
||||
deleteHome = \u00a77Home {0} has been removed.
|
||||
deleteJail = \u00a77La prison {0} a \u00e9t\u00e9 supprim\u00e9e.
|
||||
deleteWarp = \u00a77Warp {0} supprim\u00e9.
|
||||
deniedAccessCommand = L''acc\u00e8s \u00e0 la commande a \u00e9t\u00e9 refus\u00e9 pour {0}.
|
||||
dependancyDownloaded = [Essentials] Fichier {0} correctement t\u00e9l\u00e9charg\u00e9.
|
||||
dependancyException = [Essentials] Une erreur est survenue lors de la tentative de t\u00e9l\u00e9chargement
|
||||
dependancyNotFound = [Essentials] Une d\u00e9pendance requise n''a pas \u00e9t\u00e9 trouv\u00e9e, t\u00e9l\u00e9chargement en cours.
|
||||
depth = \u00a77Vous \u00eates au niveau de la mer.
|
||||
depthAboveSea = \u00a77Vous \u00eates \u00e0 {0} bloc(s) au-dessus du niveau de la mer.
|
||||
depthBelowSea = \u00a77Vous \u00eates \u00e0 {0} bloc(s) en-dessous du niveau de la mer.
|
||||
destinationNotSet = Destination non d\u00e9finie
|
||||
disableUnlimited = \u00a77D\u00e9sactivation du placement illimit\u00e9 de {0} pour {1}.
|
||||
disabled = d\u00e9sactiv\u00e9
|
||||
dontMoveMessage = \u00a77La t\u00e9l\u00e9portation commence dans {0}. Ne bougez pas.
|
||||
downloadingGeoIp = T\u00e9l\u00e9chargement de la base de donn\u00e9es GeoIP ... cela peut prendre un moment (campagne : 0.6 Mo, ville : 20Mo)
|
||||
duplicatedUserdata = Donn\u00e9e utilisateur dupliqu\u00e9e: {0} et {1}
|
||||
enableUnlimited = \u00a77Donner un nombre illimit\u00e9 de {0} \u00e0 {1}.
|
||||
enabled = activ\u00e9
|
||||
errorCallingCommand = Erreur en appelant la commande /{0}
|
||||
errorWithMessage = \u00a7cErreur: {0}
|
||||
essentialsReload = \u00a77Essentials Recharg\u00e9 {0}
|
||||
extinguish = \u00a77Vous vous \u00eates \u00e9teint.
|
||||
extinguishOthers = \u00a77Vous avez \u00e9teint {0}.
|
||||
failedToCloseConfig = Echec de la fermeture de la configuration {0}
|
||||
failedToCreateConfig = Echec de la cr\u00e9ation de la configuration {0}
|
||||
failedToWriteConfig = \u00c9chec de l''\u00e9criture de la configuration {0}
|
||||
fileRenameError = Echec du changement de nom de {0}.
|
||||
foreverAlone = \u00a7cVous n''avez personne \u00e0 qui r\u00e9pondre.
|
||||
freedMemory = A lib\u00e9r\u00e9 {0} Mo.
|
||||
gcchunks = chunks,
|
||||
gcentities = entit\u00e9s
|
||||
gcfree = Free memory: {0} Mo
|
||||
gcmax = M\u00e9moire maximale: {0} Mo
|
||||
gctotal = Allocated memory: {0} Mo
|
||||
generatingPortal = \u00a77G\u00e9n\u00e9ration d''un portail de sortie.
|
||||
geoIpUrlEmpty = L''url de t\u00e9l\u00e9chargement de GeoIP est vide.
|
||||
geoIpUrlInvalid = L''url de t\u00e9l\u00e9chargement de GeoIP est invalide.
|
||||
geoipJoinFormat = Joueur {0} vient de {1}
|
||||
godDisabledFor = d\u00e9sactive pour {0}
|
||||
godEnabledFor = activ\u00e9 pour {0}
|
||||
godMode = \u00a77Mode Dieu {0}.
|
||||
haveBeenReleased = \u00a77Vous avez \u00e9t\u00e9 lib\u00e9r\u00e9
|
||||
heal = \u00a77Vous avez \u00e9t\u00e9 soign\u00e9.
|
||||
healOther = \u00a77{0} a \u00e9t\u00e9 soign\u00e9.
|
||||
helpConsole = Pour voir l''aide tapez ?
|
||||
helpOp = \u00a7c[Aide Admin]\u00a7f \u00a77{0}:\u00a7f {1}
|
||||
helpPages = Page \u00a7c{0}\u00a7f sur \u00a7c{1}\u00a7f.
|
||||
holeInFloor = Trou dans le Sol.
|
||||
homeSet = \u00a77Home d\u00e9fini.
|
||||
homeSetToBed = \u00a77Votre home est d\u00e9sormais d\u00e9fini sur ce lit.
|
||||
homes = Homes: {0}
|
||||
hour = heure
|
||||
hours = heures
|
||||
ignorePlayer = Vous ignorez d\u00e9sormais {0}.
|
||||
illegalDate = Format de date ill\u00e9gal.
|
||||
infoChapter = S\u00e9lectionner le chapitre :
|
||||
infoChapterPages = Chapitre {0}, page \u00a7c{1}\u00a7f sur \u00a7c{2}\u00a7f:
|
||||
infoFileDoesNotExist = Le fichier info.txt n''existe pas. Le fichier est en cours de cr\u00e9ation pour vous.
|
||||
infoPages = Page \u00a7c{0}\u00a7f de \u00a7c{1}\u00a7f.
|
||||
infoUnknownChapter = Chapitre inconnu.
|
||||
invBigger = Les inventaires des autres joueurs sont plus gros que le v\u00f4tre.
|
||||
invRestored = Votre inventaire vous a \u00e9t\u00e9 rendu.
|
||||
invSee = Vous voyez l''inventaire de {0}.
|
||||
invSeeHelp = Utilisez /invsee pour voir l''inventaire de quelqu''un.
|
||||
invalidCharge = \u00a7cInvalide charge.
|
||||
invalidMob = Mauvias type de monstre.
|
||||
invalidServer = Serveur non valide.
|
||||
invalidSignLine = La ligne {0} du panneau est invalide.
|
||||
invalidWorld = \u00a7cMonde invalide.
|
||||
inventoryCleared = \u00a77Inventaire nettoy\u00e9.
|
||||
inventoryClearedOthers = \u00a77L''inventaire de \u00a7c{0}\u00a77 a \u00e9t\u00e9 nettoy\u00e9.
|
||||
is = est
|
||||
itemCannotBeSold = Cet objet ne peut \u00eatre vendu au serveur.
|
||||
itemMustBeStacked = Cet objet doit \u00eatre vendu par 64. Une quantit\u00e9 de 2 serait deux fois 64.
|
||||
itemNotEnough1 = \u00a7cVous n''avez pas assez de cet objet pour le vendre.
|
||||
itemNotEnough2 = \u00a77Si vous voulez vendre l''int\u00e9gralit\u00e9 de vos objets de ce type l\u00e0, utilisez /sell nomObjet
|
||||
itemNotEnough3 = \u00a77/sell nomObjet -1 vendra tout sauf un objet, etc.
|
||||
itemSellAir = Vous vouliez vraiment vendre de l''air? Mettez un objet dans votre main.
|
||||
itemSold = \u00a77Vendu pour \u00a7c {0} \u00a77 ({1} objet(s) \u00e0 {2} chacun)
|
||||
itemSoldConsole = {0} vendu {1} pour \u00a77 {2} \u00a77 ({3} objet(s) \u00e0 {4} chacun)
|
||||
itemSpawn = \u00a77Donne {0} de {1}
|
||||
itemsCsvNotLoaded = N''a pas pu charger items.csv.
|
||||
jailAlreadyIncarcerated = \u00a7cPerson is already in jail: {0}
|
||||
jailMessage = \u00a7cVous avez commis un crime, vous en payez le prix.
|
||||
jailNotExist = Cette prison n''existe pas.
|
||||
jailReleased = \u00a77Player \u00a7e{0}\u00a77 unjailed.
|
||||
jailReleasedPlayerNotify = \u00a77You have been released!
|
||||
jailSentenceExtended = Jail time extend to: {0)
|
||||
jailSet = \u00a77La prison {0} a \u00e9t\u00e9 cr\u00e9\u00e9.
|
||||
jumpError = \u00c7a aurait pu faire mal au cerveau de votre ordinateur.
|
||||
kickDefault = Kick\u00e9 du serveur
|
||||
kickExempt = \u00a77Vous ne pouvez pas lancer ce joueur.
|
||||
kill = \u00a77Tu\u00e9 {0}.
|
||||
kitError = \u00a7cIl n''y a pas de kits valides.
|
||||
kitError2 = \u00a7cCe kit n''existe pas ou a \u00e9t\u00e9 mal d\u00e9fini.
|
||||
kitErrorHelp = \u00a7cPeut-\u00eatre qu''un objet manque d''une quantit\u00e9 dans la configuration?
|
||||
kitGive = \u00a77Donner le kit {0}.
|
||||
kitInvFull = \u00a7cVotre inventaire \u00e9tait plein, le kit est Parre-terre.
|
||||
kitTimed = \u00a7cVous ne pouvez pas utiliser ce kit pendant encore {0}.
|
||||
kits = \u00a77Kits:{0}
|
||||
lightningSmited = \u00a77Vous venez d''\u00eatre foudroy\u00e9
|
||||
lightningUse = \u00a77{0} a \u00e9t\u00e9 foudroy\u00e9
|
||||
loadWarpError = \u00c9chec du chargement du warp {0}
|
||||
loadinfo = {0} version {1} par {2} a \u00e9t\u00e9 charg\u00e9
|
||||
localFormat = Local:<{0}> {1}
|
||||
mailClear = \u00a7cPour marquer votre courrier en tant que lu, entrez /mail clear
|
||||
mailCleared = \u00a77Mail supprim\u00e9 !
|
||||
mailSent = \u00a77Courrier envoy\u00e9 !
|
||||
markMailAsRead = \u00a7cPour marquer votre courrier en tant que lu, entrez /mail clear
|
||||
markedAsAway = \u00a77Vous \u00eates d\u00e9sormais AFK.
|
||||
markedAsNotAway = \u00a77Vous n''\u00eates d\u00e9sormais plus AFK.
|
||||
backAfterDeath=\u00a77Utilisez la commande /back pour retourner \u00e0 l''endroit ou vous \u00eates mort.
|
||||
backUsageMsg=\u00a77Retour a votre emplacement pr\u00e9c\u00e8dent.
|
||||
backupFinished=Backup termin\u00e9
|
||||
backupStarted=D\u00e9but du backup
|
||||
balance=\u00a77Solde: {0}
|
||||
balanceTop=\u00a77 Top {0} soldes
|
||||
banExempt=\u00a77Vous ne pouvez pas interdire ce joueur.
|
||||
banIpAddress=\u00a77Adresse IP banni
|
||||
bannedIpsFileError=Erreur de lecture de banned-ips.txt
|
||||
bannedIpsFileNotFound=Fichier banned-ips.txt introuvable
|
||||
bannedPlayersFileError=Erreur lors de la lecture de banned-players.txt
|
||||
bannedPlayersFileNotFound=banned-players.txt introuvable.
|
||||
bigTreeFailure=\u00a7c\u00c9chec de la g\u00e9n\u00e9ration du gros arbre. Essayez de nouveau sur de la terre ou de l''herbe.
|
||||
bigTreeSuccess=\u00a77Gros arbre cr\u00e9e.
|
||||
broadcast=[\u00a7cMessage\u00a7f]\u00a7a {0}
|
||||
buildAlert=\u00a7cVous n''avez pas la permission de construire.
|
||||
bukkitFormatChanged=Le format de la version de Bukkit a \u00e9t\u00e9 chang\u00e9. La version n''a pas \u00e9t\u00e9 v\u00e9rifi\u00e9e.
|
||||
burnMsg=\u00a77Vous avez enflamm\u00e9 {0} pour {1} seconde(s).
|
||||
canTalkAgain=\u00a77Vous pouvez de nouveau parler.
|
||||
cantFindGeoIpDB=N''arrive pas \u00e0 trouver la base de donn\u00e9es GeoIP!
|
||||
cantReadGeoIpDB=Echec de la lecture de la base de donn\u00e9s GeoIP!
|
||||
cantSpawnItem=\u00a7cVous n''avez pas le droit de faire apparaitre {0}
|
||||
commandFailed=\u00c9chec de la commande {0}:
|
||||
commandHelpFailedForPlugin=Erreur d'obtention d'aider \u00e0: {0}
|
||||
commandNotLoaded=\u00a7cLa commande {0} a \u00e9t\u00e9 mal charg\u00e9e.
|
||||
compassBearing=\u00a77Orientation: {0} ({1} degr\u00e9s).
|
||||
configFileMoveError=\u00c9chec du d\u00e9placement de config.yml vers l''emplacement de backup.
|
||||
configFileRenameError=\u00c9chec du changement de nom du fichier temp de config.yml
|
||||
connectedPlayers=Joueurs connect\u00e9s:
|
||||
connectionFailed=\u00c9chec de l''ouverture de la connexion.
|
||||
cooldownWithMessage=\u00a7cRefroidissement: {0}
|
||||
corruptNodeInConfig=\u00a74Annonce: Votre fichier de configuration a un {0} n\u0153ud corrompu.
|
||||
couldNotFindTemplate=Le mod\u00e8le {0} est introuvable
|
||||
creatingConfigFromTemplate=Cr\u00e9ation de la configuration \u00e0 partir du mod\u00e8le : {0}
|
||||
creatingEmptyConfig=Cr\u00e9ation d''une configuration vierge : {0}
|
||||
creative=creative
|
||||
day=jour
|
||||
days=jours
|
||||
defaultBanReason=Le marteau du ban a frapp\u00e9!
|
||||
deleteFileError=Le fichier n''a pas pu \u00eatre supprim\u00e9: {0}
|
||||
deleteHome=\u00a77Home {0} has been removed.
|
||||
deleteJail=\u00a77La prison {0} a \u00e9t\u00e9 supprim\u00e9e.
|
||||
deleteWarp=\u00a77Warp {0} supprim\u00e9.
|
||||
deniedAccessCommand=L''acc\u00e8s \u00e0 la commande a \u00e9t\u00e9 refus\u00e9 pour {0}.
|
||||
dependancyDownloaded=[Essentials] Fichier {0} correctement t\u00e9l\u00e9charg\u00e9.
|
||||
dependancyException=[Essentials] Une erreur est survenue lors de la tentative de t\u00e9l\u00e9chargement
|
||||
dependancyNotFound=[Essentials] Une d\u00e9pendance requise n''a pas \u00e9t\u00e9 trouv\u00e9e, t\u00e9l\u00e9chargement en cours.
|
||||
depth=\u00a77Vous \u00eates au niveau de la mer.
|
||||
depthAboveSea=\u00a77Vous \u00eates \u00e0 {0} bloc(s) au-dessus du niveau de la mer.
|
||||
depthBelowSea=\u00a77Vous \u00eates \u00e0 {0} bloc(s) en-dessous du niveau de la mer.
|
||||
destinationNotSet=Destination non d\u00e9finie
|
||||
disableUnlimited=\u00a77D\u00e9sactivation du placement illimit\u00e9 de {0} pour {1}.
|
||||
disabled=d\u00e9sactiv\u00e9
|
||||
dontMoveMessage=\u00a77La t\u00e9l\u00e9portation commence dans {0}. Ne bougez pas.
|
||||
downloadingGeoIp=T\u00e9l\u00e9chargement de la base de donn\u00e9es GeoIP ... cela peut prendre un moment (campagne : 0.6 Mo, ville : 20Mo)
|
||||
duplicatedUserdata=Donn\u00e9e utilisateur dupliqu\u00e9e: {0} et {1}
|
||||
enableUnlimited=\u00a77Donner un nombre illimit\u00e9 de {0} \u00e0 {1}.
|
||||
enabled=activ\u00e9
|
||||
errorCallingCommand=Erreur en appelant la commande /{0}
|
||||
errorWithMessage=\u00a7cErreur: {0}
|
||||
essentialsReload=\u00a77Essentials Recharg\u00e9 {0}
|
||||
extinguish=\u00a77Vous vous \u00eates \u00e9teint.
|
||||
extinguishOthers=\u00a77Vous avez \u00e9teint {0}.
|
||||
failedToCloseConfig=Echec de la fermeture de la configuration {0}
|
||||
failedToCreateConfig=Echec de la cr\u00e9ation de la configuration {0}
|
||||
failedToWriteConfig=\u00c9chec de l''\u00e9criture de la configuration {0}
|
||||
false=false
|
||||
fileRenameError=Echec du changement de nom de {0}.
|
||||
foreverAlone=\u00a7cVous n''avez personne \u00e0 qui r\u00e9pondre.
|
||||
freedMemory=A lib\u00e9r\u00e9 {0} Mo.
|
||||
gameMode=\u00a77Set game mode {0} for {1}.
|
||||
gcchunks=chunks,
|
||||
gcentities=entit\u00e9s
|
||||
gcfree=Free memory: {0} Mo
|
||||
gcmax=M\u00e9moire maximale: {0} Mo
|
||||
gctotal=Allocated memory: {0} Mo
|
||||
geoIpUrlEmpty=L''url de t\u00e9l\u00e9chargement de GeoIP est vide.
|
||||
geoIpUrlInvalid=L''url de t\u00e9l\u00e9chargement de GeoIP est invalide.
|
||||
geoipJoinFormat=Joueur {0} vient de {1}
|
||||
godDisabledFor=d\u00e9sactive pour {0}
|
||||
godEnabledFor=activ\u00e9 pour {0}
|
||||
godMode=\u00a77Mode Dieu {0}.
|
||||
haveBeenReleased=\u00a77Vous avez \u00e9t\u00e9 lib\u00e9r\u00e9
|
||||
heal=\u00a77Vous avez \u00e9t\u00e9 soign\u00e9.
|
||||
healOther=\u00a77{0} a \u00e9t\u00e9 soign\u00e9.
|
||||
helpConsole=Pour voir l''aide tapez ?
|
||||
helpOp=\u00a7c[Aide Admin]\u00a7f \u00a77{0}:\u00a7f {1}
|
||||
helpPages=Page \u00a7c{0}\u00a7f sur \u00a7c{1}\u00a7f.
|
||||
holeInFloor=Trou dans le Sol.
|
||||
homeSet=\u00a77Home d\u00e9fini.
|
||||
homeSetToBed=\u00a77Votre home est d\u00e9sormais d\u00e9fini sur ce lit.
|
||||
homes=Homes: {0}
|
||||
hour=heure
|
||||
hours=heures
|
||||
ignorePlayer=Vous ignorez d\u00e9sormais {0}.
|
||||
illegalDate=Format de date ill\u00e9gal.
|
||||
infoChapter=S\u00e9lectionner le chapitre :
|
||||
infoChapterPages=Chapitre {0}, page \u00a7c{1}\u00a7f sur \u00a7c{2}\u00a7f:
|
||||
infoFileDoesNotExist=Le fichier info.txt n''existe pas. Le fichier est en cours de cr\u00e9ation pour vous.
|
||||
infoPages=Page \u00a7c{0}\u00a7f de \u00a7c{1}\u00a7f.
|
||||
infoUnknownChapter=Chapitre inconnu.
|
||||
invBigger=Les inventaires des autres joueurs sont plus gros que le v\u00f4tre.
|
||||
invRestored=Votre inventaire vous a \u00e9t\u00e9 rendu.
|
||||
invSee=Vous voyez l''inventaire de {0}.
|
||||
invSeeHelp=Utilisez /invsee pour voir l''inventaire de quelqu''un.
|
||||
invalidCharge=\u00a7cInvalide charge.
|
||||
invalidMob=Mauvias type de monstre.
|
||||
invalidServer=Serveur non valide.
|
||||
invalidSignLine=La ligne {0} du panneau est invalide.
|
||||
invalidWorld=\u00a7cMonde invalide.
|
||||
inventoryCleared=\u00a77Inventaire nettoy\u00e9.
|
||||
inventoryClearedOthers=\u00a77L''inventaire de \u00a7c{0}\u00a77 a \u00e9t\u00e9 nettoy\u00e9.
|
||||
is=est
|
||||
itemCannotBeSold=Cet objet ne peut \u00eatre vendu au serveur.
|
||||
itemMustBeStacked=Cet objet doit \u00eatre vendu par 64. Une quantit\u00e9 de 2 serait deux fois 64.
|
||||
itemNotEnough1=\u00a7cVous n''avez pas assez de cet objet pour le vendre.
|
||||
itemNotEnough2=\u00a77Si vous voulez vendre l''int\u00e9gralit\u00e9 de vos objets de ce type l\u00e0, utilisez /sell nomObjet
|
||||
itemNotEnough3=\u00a77/sell nomObjet -1 vendra tout sauf un objet, etc.
|
||||
itemSellAir=Vous vouliez vraiment vendre de l''air? Mettez un objet dans votre main.
|
||||
itemSold=\u00a77Vendu pour \u00a7c{0} \u00a77({1} {2} \u00e0 {3} chacun)
|
||||
itemSoldConsole={0} vendu {1} pour \u00a77{2} \u00a77({3} objet(s) \u00e0 {4} chacun)
|
||||
itemSpawn=\u00a77Donne {0} de {1}
|
||||
itemsCsvNotLoaded=N''a pas pu charger items.csv.
|
||||
jailAlreadyIncarcerated=\u00a7cPerson is already in jail: {0}
|
||||
jailMessage=\u00a7cVous avez commis un crime, vous en payez le prix.
|
||||
jailNotExist=Cette prison n''existe pas.
|
||||
jailReleased=\u00a77Player \u00a7e{0}\u00a77 unjailed.
|
||||
jailReleasedPlayerNotify=\u00a77You have been released!
|
||||
jailSentenceExtended=Jail time extend to: {0)
|
||||
jailSet=\u00a77La prison {0} a \u00e9t\u00e9 cr\u00e9\u00e9.
|
||||
jumpError=\u00c7a aurait pu faire mal au cerveau de votre ordinateur.
|
||||
kickDefault=Kick\u00e9 du serveur
|
||||
kickExempt=\u00a77Vous ne pouvez pas lancer ce joueur.
|
||||
kill=\u00a77Tu\u00e9 {0}.
|
||||
kitError=\u00a7cIl n''y a pas de kits valides.
|
||||
kitError2=\u00a7cCe kit n''existe pas ou a \u00e9t\u00e9 mal d\u00e9fini.
|
||||
kitErrorHelp=\u00a7cPeut-\u00eatre qu''un objet manque d''une quantit\u00e9 dans la configuration?
|
||||
kitGive=\u00a77Donner le kit {0}.
|
||||
kitInvFull=\u00a7cVotre inventaire \u00e9tait plein, le kit est Parre-terre.
|
||||
kitTimed=\u00a7cVous ne pouvez pas utiliser ce kit pendant encore {0}.
|
||||
kits=\u00a77Kits:{0}
|
||||
lightningSmited=\u00a77Vous venez d''\u00eatre foudroy\u00e9
|
||||
lightningUse=\u00a77{0} a \u00e9t\u00e9 foudroy\u00e9
|
||||
loadWarpError=\u00c9chec du chargement du warp {0}
|
||||
loadinfo={0} version {1} par {2} a \u00e9t\u00e9 charg\u00e9
|
||||
localFormat=Local:<{0}> {1}
|
||||
mailClear=\u00a7cPour marquer votre courrier en tant que lu, entrez /mail clear
|
||||
mailCleared=\u00a77Mail supprim\u00e9 !
|
||||
mailSent=\u00a77Courrier envoy\u00e9 !
|
||||
markMailAsRead=\u00a7cPour marquer votre courrier en tant que lu, entrez /mail clear
|
||||
markedAsAway=\u00a77Vous \u00eates d\u00e9sormais AFK.
|
||||
markedAsNotAway=\u00a77Vous n''\u00eates d\u00e9sormais plus AFK.
|
||||
maxHomes=You cannot set more than {0} homes.
|
||||
mayNotJail = \u00a7cVous ne pouvez pas emprisonner cette personne.
|
||||
me = moi
|
||||
minute = minute
|
||||
minutes = minutes
|
||||
missingItems = Vous n''avez pas {0} x {1}.
|
||||
missingPrefixSuffix = Pr\u00e9fixe ou Suffixe manquant pour {0}
|
||||
mobSpawnError = Erreur lors du changement du spawner de monstres.
|
||||
mobSpawnLimit = Quantit\u00e9 de monstres limit\u00e9 \u00e0 la limite du serveur.
|
||||
mobSpawnTarget = Le bloc cible doit \u00eatre un spawner de monstres.
|
||||
moneyRecievedFrom = \u00a7a{0} a \u00e9t\u00e9 re\u00e7u de {1}
|
||||
moneySentTo = \u00a7a{0} a \u00e9t\u00e9 envoy\u00e9 \u00e0 {1}
|
||||
moneyTaken = {0} pr\u00e9lev\u00e9(s) de votre compte bancaire.
|
||||
month = mois
|
||||
months = mois
|
||||
moreThanZero = Les Quantit\u00e9s doivent \u00eatre sup\u00e9rieures \u00e0 z\u00e9ro.
|
||||
msgFormat = \u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
|
||||
muteExempt = \u00a7cYou may not mute that player.
|
||||
mutedPlayer = Le joueur {0} est d\u00e9sormais muet.
|
||||
mutedPlayerFor = {0} a \u00e9t\u00e9 mute pour {1}.
|
||||
mutedUserSpeaks = {0} a essay\u00e9 de parler mais est muet.
|
||||
needTpohere = Vous avez besoin de l''acc\u00e8s \u00e0 /tpohere pour t\u00e9l\u00e9porter d''autres joueurs.
|
||||
negativeBalanceError = L''utilisateur n''est pas autoris\u00e9 \u00e0 avoir un solde n\u00e9gatif.
|
||||
nickChanged = Pseudo modifi\u00e9.
|
||||
mayNotJail=\u00a7cVous ne pouvez pas emprisonner cette personne.
|
||||
me=moi
|
||||
minute=minute
|
||||
minutes=minutes
|
||||
missingItems=Vous n''avez pas {0} x {1}.
|
||||
missingPrefixSuffix=Pr\u00e9fixe ou Suffixe manquant pour {0}
|
||||
mobSpawnError=Erreur lors du changement du spawner de monstres.
|
||||
mobSpawnLimit=Quantit\u00e9 de monstres limit\u00e9 \u00e0 la limite du serveur.
|
||||
mobSpawnTarget=Le bloc cible doit \u00eatre un spawner de monstres.
|
||||
mobsAvailable=\u00a77Mobs: {0}
|
||||
moneyRecievedFrom=\u00a7a{0} a \u00e9t\u00e9 re\u00e7u de {1}
|
||||
moneySentTo=\u00a7a{0} a \u00e9t\u00e9 envoy\u00e9 \u00e0 {1}
|
||||
moneyTaken={0} pr\u00e9lev\u00e9(s) de votre compte bancaire.
|
||||
month=mois
|
||||
months=mois
|
||||
moreThanZero=Les Quantit\u00e9s doivent \u00eatre sup\u00e9rieures \u00e0 z\u00e9ro.
|
||||
msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
|
||||
muteExempt=\u00a7cYou may not mute that player.
|
||||
mutedPlayer=Le joueur {0} est d\u00e9sormais muet.
|
||||
mutedPlayerFor={0} a \u00e9t\u00e9 mute pour {1}.
|
||||
mutedUserSpeaks={0} a essay\u00e9 de parler mais est muet.
|
||||
needTpohere=Vous avez besoin de l''acc\u00e8s \u00e0 /tpohere pour t\u00e9l\u00e9porter d''autres joueurs.
|
||||
negativeBalanceError=L''utilisateur n''est pas autoris\u00e9 \u00e0 avoir un solde n\u00e9gatif.
|
||||
nickChanged=Pseudo modifi\u00e9.
|
||||
nickDisplayName=\u00a77You have to enable change-displayname in Essentials config.
|
||||
nickInUse = \u00a7cCe nom est d\u00e9j\u00e0 utilis\u00e9.
|
||||
nickNamesAlpha = \u00a7cLes pseudos doivent \u00eatre alphanum\u00e9riques.
|
||||
nickNoMore = \u00a7Vous n''avez plus de surnom.
|
||||
nickOthersPermission = \u00a7cVous n''avez pas la permission de changer le pseudo des autres.
|
||||
nickSet = \u00a77Votre pseudo est maintenant \u00a7c{0}
|
||||
noAccessCommand = \u00a7cVous n''avez pas acc\u00e8s \u00e0 cette commande.
|
||||
noAccessPermission = \u00a7cVous n''avez pas la permissions d''acc\u00e9der \u00e0 cette {0}
|
||||
noDestroyPermission = \u00a7cVous n''avez pas la permission de d\u00e9truire ce {0}.
|
||||
noHelpFound = \u00a7cNo matching commands.
|
||||
noHomeSet = Vous n''avez pas d\u00e9fini de home.
|
||||
noHomeSetPlayer = Le joueur n''a pas d\u00e9fini son home.
|
||||
noKitPermission = \u00a7cVous avez besoin de la permission \u00a7c{0}\u00a7c pour utiliser ce kit.
|
||||
noKits = \u00a77Il n''y a pas encore de kits disponibles.
|
||||
noMail = Vous n''avez pas de courrier
|
||||
noMailSendPerm = \u00a7cVous n''avez pas la permission \u00a7fessentials.mail.send\u00a7c.
|
||||
noMotd = \u00a7cIl n''y a pas de message su jour.
|
||||
noNewMail = \u00a77Vous n''avez pas de courrier.
|
||||
noPendingRequest = Vous n''avez pas de requ\u00eate non lue.
|
||||
noPlacePermission = \u00a7cYou do not have permission to place a block near that sign.
|
||||
nickInUse=\u00a7cCe nom est d\u00e9j\u00e0 utilis\u00e9.
|
||||
nickNamesAlpha=\u00a7cLes pseudos doivent \u00eatre alphanum\u00e9riques.
|
||||
nickNoMore=\u00a7Vous n''avez plus de surnom.
|
||||
nickOthersPermission=\u00a7cVous n''avez pas la permission de changer le pseudo des autres.
|
||||
nickSet=\u00a77Votre pseudo est maintenant \u00a7c{0}
|
||||
noAccessCommand=\u00a7cVous n''avez pas acc\u00e8s \u00e0 cette commande.
|
||||
noAccessPermission=\u00a7cVous n''avez pas la permissions d''acc\u00e9der \u00e0 cette {0}
|
||||
noDestroyPermission=\u00a7cVous n''avez pas la permission de d\u00e9truire ce {0}.
|
||||
noHelpFound=\u00a7cNo matching commands.
|
||||
noHomeSet=Vous n''avez pas d\u00e9fini de home.
|
||||
noHomeSetPlayer=Le joueur n''a pas d\u00e9fini son home.
|
||||
noKitPermission=\u00a7cVous avez besoin de la permission \u00a7c{0}\u00a7c pour utiliser ce kit.
|
||||
noKits=\u00a77Il n''y a pas encore de kits disponibles.
|
||||
noMail=Vous n''avez pas de courrier
|
||||
noMailSendPerm=\u00a7cVous n''avez pas la permission \u00a7fessentials.mail.send\u00a7c.
|
||||
noMotd=\u00a7cIl n''y a pas de message su jour.
|
||||
noNewMail=\u00a77Vous n''avez pas de courrier.
|
||||
noPendingRequest=Vous n''avez pas de requ\u00eate non lue.
|
||||
noPlacePermission=\u00a7cYou do not have permission to place a block near that sign.
|
||||
noPowerTools=You have no power tools assigned.
|
||||
noRules = \u00a7cIl n''y a pas encore de r\u00e8gles d\u00e9finies.
|
||||
noWarpsDefined = Aucun warps d\u00e9finis.
|
||||
none = aucun
|
||||
notAllowedToQuestion = \u00a7cVous n''\u00eates pas autoris\u00e9 \u00e0 poser des questions.
|
||||
notAllowedToShout = \u00a7cVous n''\u00eates pas autoris\u00e9 \u00e0 crier.
|
||||
notEnoughMoney = Vous n''avez pas les fonds n\u00e9cessaires.
|
||||
notRecommendedBukkit = La version de Bukkit n''est pas celle qui est recommand\u00e9 pour cette version de Essentials.
|
||||
notSupportedYet = Pas encore pris en charge.
|
||||
now = maintenant
|
||||
numberRequired = On a besoin d''un nombre ici, idiot.
|
||||
onlyDayNight = /time ne supporte que (jour) day/night (nuit).
|
||||
onlyPlayers = Seulement les joueurs en jeu peuvent utiliser {0}.
|
||||
onlySunStorm = /weather only supports sun/storm.
|
||||
pTimeCurrent = \u00a7e{0}''s\u00a7f time is {1}.
|
||||
pTimeCurrentFixed = \u00a7e{0}''s\u00a7f time is fixed to {1}.
|
||||
pTimeNormal = \u00a7e{0}''s\u00a7f time is normal and matches the server.
|
||||
pTimeOthersPermission = \u00a7cYou are not authorized to set other players'' time.
|
||||
pTimePlayers = These players have their own time:
|
||||
pTimeReset = Player time has been reset for: \u00a7e{0}
|
||||
pTimeSet = Player time is set to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
pTimeSetFixed = Player time is fixed to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
parseError = Erreur de conversion {0} \u00e0 la ligne {1}
|
||||
pendingTeleportCancelled = \u00a7cRequete de t\u00e9l\u00e9portation annul\u00e9e.
|
||||
permissionsError = Permissions/GroupManager manquant, les pr\u00e9fixes et suffixes ne seront pas affich\u00e9s.
|
||||
playerBanned = \u00a7cPlayer {0} banned {1} for {2}
|
||||
playerInJail = \u00a7cLe joueur est d\u00e9j\u00e0 dans la prison {0}.
|
||||
playerJailed = \u00a77Le joueur {0} a \u00e9t\u00e9 emprisonn\u00e9.
|
||||
playerJailedFor = \u00a77{0} a \u00e9t\u00e9 emprisonn\u00e9 pour {1}.
|
||||
playerKicked = \u00a7cPlayer {0} kicked {1} for {2}
|
||||
playerMuted = \u00a77You have been muted
|
||||
playerMutedFor = \u00a77You have been muted for {0}
|
||||
playerNeverOnServer = \u00a7cLe joueur {0} n''a jamais \u00e9t\u00e9 sur le serveur.
|
||||
playerNotFound = \u00a7cLe joueur est introuvable.
|
||||
playerUnmuted = \u00a77You have been unmuted
|
||||
pong = Pong!
|
||||
possibleWorlds = \u00a77Les mondes possibles sont les nombres 0 par {0}.
|
||||
powerToolAir = La commande ne peut pas \u00eatre attach\u00e9e \u00e0 l''air.
|
||||
powerToolAlreadySet = Command \u00a7c{0}\u00a7f is already assigned to {1}.
|
||||
powerToolAttach = \u00a7c{0}\u00a7f command assigned to {1}.
|
||||
powerToolClearAll = All powertool commands have been cleared.
|
||||
powerToolList = {1} has the following commands: \u00a7c{0}\u00a7f.
|
||||
powerToolListEmpty = {0} has no commands assigned.
|
||||
powerToolNoSuchCommandAssigned = Command \u00a7c{0}\u00a7f has not been assigned to {1}.
|
||||
powerToolRemove = Command \u00a7c{0}\u00a7f removed from {1}.
|
||||
powerToolRemoveAll = All commands removed from {0}.
|
||||
powerToolsEnabled=All of your power tools have been enabled.
|
||||
noRules=\u00a7cIl n''y a pas encore de r\u00e8gles d\u00e9finies.
|
||||
noWarpsDefined=Aucun warps d\u00e9finis.
|
||||
none=aucun
|
||||
notAllowedToQuestion=\u00a7cVous n''\u00eates pas autoris\u00e9 \u00e0 poser des questions.
|
||||
notAllowedToShout=\u00a7cVous n''\u00eates pas autoris\u00e9 \u00e0 crier.
|
||||
notEnoughMoney=Vous n''avez pas les fonds n\u00e9cessaires.
|
||||
notRecommendedBukkit=La version de Bukkit n''est pas celle qui est recommand\u00e9 pour cette version de Essentials.
|
||||
notSupportedYet=Pas encore pris en charge.
|
||||
now=maintenant
|
||||
numberRequired=On a besoin d''un nombre ici, idiot.
|
||||
onlyDayNight=/time ne supporte que (jour) day/night (nuit).
|
||||
onlyPlayers=Seulement les joueurs en jeu peuvent utiliser {0}.
|
||||
onlySunStorm=/weather only supports sun/storm.
|
||||
pTimeCurrent=\u00a7e{0}''s\u00a7f time is {1}.
|
||||
pTimeCurrentFixed=\u00a7e{0}''s\u00a7f time is fixed to {1}.
|
||||
pTimeNormal=\u00a7e{0}''s\u00a7f time is normal and matches the server.
|
||||
pTimeOthersPermission=\u00a7cYou are not authorized to set other players'' time.
|
||||
pTimePlayers=These players have their own time:
|
||||
pTimeReset=Player time has been reset for: \u00a7e{0}
|
||||
pTimeSet=Player time is set to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
pTimeSetFixed=Player time is fixed to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
parseError=Erreur de conversion {0} \u00e0 la ligne {1}
|
||||
pendingTeleportCancelled=\u00a7cRequete de t\u00e9l\u00e9portation annul\u00e9e.
|
||||
permissionsError=Permissions/GroupManager manquant, les pr\u00e9fixes et suffixes ne seront pas affich\u00e9s.
|
||||
playerBanned=\u00a7cPlayer {0} banned {1} for {2}
|
||||
playerInJail=\u00a7cLe joueur est d\u00e9j\u00e0 dans la prison {0}.
|
||||
playerJailed=\u00a77Le joueur {0} a \u00e9t\u00e9 emprisonn\u00e9.
|
||||
playerJailedFor=\u00a77{0} a \u00e9t\u00e9 emprisonn\u00e9 pour {1}.
|
||||
playerKicked=\u00a7cPlayer {0} kicked {1} for {2}
|
||||
playerMuted=\u00a77You have been muted
|
||||
playerMutedFor=\u00a77You have been muted for {0}
|
||||
playerNeverOnServer=\u00a7cLe joueur {0} n''a jamais \u00e9t\u00e9 sur le serveur.
|
||||
playerNotFound=\u00a7cLe joueur est introuvable.
|
||||
playerUnmuted=\u00a77You have been unmuted
|
||||
pong=Pong!
|
||||
possibleWorlds=\u00a77Les mondes possibles sont les nombres 0 par {0}.
|
||||
powerToolAir=La commande ne peut pas \u00eatre attach\u00e9e \u00e0 l''air.
|
||||
powerToolAlreadySet=Command \u00a7c{0}\u00a7f is already assigned to {1}.
|
||||
powerToolAttach=\u00a7c{0}\u00a7f command assigned to {1}.
|
||||
powerToolClearAll=All powertool commands have been cleared.
|
||||
powerToolList={1} has the following commands: \u00a7c{0}\u00a7f.
|
||||
powerToolListEmpty={0} has no commands assigned.
|
||||
powerToolNoSuchCommandAssigned=Command \u00a7c{0}\u00a7f has not been assigned to {1}.
|
||||
powerToolRemove=Command \u00a7c{0}\u00a7f removed from {1}.
|
||||
powerToolRemoveAll=All commands removed from {0}.
|
||||
powerToolsDisabled=All of your power tools have been disabled.
|
||||
protectionOwner = \u00a76[EssentialsProtect] Propri\u00e9taire de la protection : {0}
|
||||
questionFormat = \u00a77[Question]\u00a7f {0}
|
||||
reloadAllPlugins = \u00a77Tous les plugins ont \u00e9t\u00e9 recharg\u00e9s.
|
||||
repair = You have successfully repaired your: \u00a7e{0}.
|
||||
repairAlreadyFixed = \u00a77This item does not need repairing.
|
||||
repairInvalidType = \u00a7cThis item cannot be repaired.
|
||||
repairNone = There were no items that needing repairing.
|
||||
requestAccepted = \u00a77Demande de t\u00e9l\u00e9portation accept\u00e9e.
|
||||
requestAcceptedFrom = \u00a77{0} accepted your teleport request.
|
||||
requestDenied = \u00a77Demande de t\u00e9l\u00e9portation refus\u00e9e.
|
||||
requestDeniedFrom = \u00a77{0} denied your teleport request.
|
||||
requestSent = \u00a77Requ\u00eate envoy\u00e9e \u00e0 {0}\u00a77.
|
||||
returnPlayerToJailError = Erreur survenue lors de la tentative d''emprisonner de nouveau un joueur.
|
||||
second = seconde
|
||||
seconds = secondes
|
||||
seenOffline = Le joueur {0} est hors ligne depuis {1}
|
||||
seenOnline = Le joueur {0} est en ligne depuis {1}
|
||||
serverFull = Le serveur est plein.
|
||||
setSpawner = Changed spawner type to {0}
|
||||
sheepMalformedColor = Couleur mal form\u00e9e.
|
||||
shoutFormat = \u00a77[Crie]\u00a7f {0}
|
||||
signFormatFail = \u00a74[{0}]
|
||||
signFormatSuccess = \u00a71[{0}]
|
||||
signFormatTemplate = [{0}]
|
||||
signProtectInvalidLocation = \u00a74You are not allowed to create sign here.
|
||||
similarWarpExist = Un warp avec un nom similaire existe d\u00e9j\u00e0.
|
||||
slimeMalformedSize = Taille mal form\u00e9e.
|
||||
soloMob = Ce monstre aime \u00eatre seul.
|
||||
spawnSet = \u00a77Le point de spawn a \u00e9t\u00e9 d\u00e9fini pour le groupe {0}.
|
||||
spawned = spawn\u00e9
|
||||
suicideMessage = \u00a77Au revoir monde cruel...
|
||||
suicideSuccess = \u00a77{0} a pris sa propre vie.
|
||||
takenFromAccount = \u00a7c{0} ont \u00e9t\u00e9 pris de votre compte.
|
||||
takenFromOthersAccount = \u00a7c{0} a \u00e9t\u00e9 prise de {1} compte.
|
||||
teleportAAll = \u00a77Teleporting request sent to all players...
|
||||
teleportAll = \u00a77T\u00e9l\u00e9poration de tous les joueurs.
|
||||
teleportAtoB = \u00a77{0}\u00a77 vous a t\u00e9l\u00e9port\u00e9 \u00e0 {1}\u00a77.
|
||||
teleportDisabled = {0} a la t\u00e9l\u00e9portation d\u00e9sactiv\u00e9.
|
||||
teleportHereRequest = \u00a7c{0}\u00a7c Vous a demand\u00e9 de vous t\u00e9l\u00e9porter \u00e0 lui/elle.
|
||||
teleportNewPlayerError = \u00c9chec de la t\u00e9l\u00e9portation du nouveau joueur.
|
||||
teleportRequest = \u00a7c{0}\u00a7c vous demande s''il peut se t\u00e9l\u00e9porter sur vous.
|
||||
teleportTop = \u00a77T\u00e9l\u00e9portation vers le haut.
|
||||
teleportationCommencing = \u00a77D\u00e9but de la t\u00e9l\u00e9portation....
|
||||
teleportationDisabled = \u00a77T\u00e9l\u00e9poration d\u00e9sactiv\u00e9.
|
||||
teleportationEnabled = \u00a77T\u00e9l\u00e9portation activ\u00e9e.
|
||||
teleporting = \u00a77T\u00e9l\u00e9poration en cours...
|
||||
teleportingPortal = \u00a77T\u00e9l\u00e9portation via portail.
|
||||
tempBanned = Banni temporairement du serveur pour {0}
|
||||
tempbanExempt = \u00a77You may not tempban that player
|
||||
thunder = Vous avez {0} la foudre dans votre monde.
|
||||
thunderDuration = Vous avez {0} la foudre dans le serveur {1} secondes.
|
||||
timeBeforeHeal = Temps avant le prochain soin : {0}
|
||||
timeBeforeTeleport = Temps avant prochaine t\u00e9l\u00e9portation {0}
|
||||
timeFormat = \u00a73{0}\u00a7f or \u00a73{1}\u00a7f or \u00a73{2}\u00a7f
|
||||
timePattern = (?:([0-9]+)\\\\s*[ya][a-z]*[,\\\\s]*)?(?:([0-9]+)\\\\s*mo[a-z]*[,\\\\s]*)?(?:([0-9]+)\\\\s*(?:sem|w)[a-z]*[,\\\\s]*)?(?:([0-9]+)\\\\s*[dj][a-z]*[,\\\\s]*)?(?:([0-9]+)\\\\s*h[a-z]*[,\\\\s]*)?(?:([0-9]+)\\\\s*m[a-z]*[,\\\\s]*)?(?:([0-9]+)\\\\s*(?:s[a-z]*)?)?
|
||||
timeSet = Heure modifi\u00e9e dans tous les mondes.
|
||||
timeSetPermission = \u00a7cYou are not authorized to set the time.
|
||||
timeWorldCurrent = The current time in {0} is \u00a73{1}
|
||||
timeWorldSet = The time was set to {0} in: \u00a7c{1}
|
||||
tradeCompleted = \u00a77\u00c9change termin\u00e9.
|
||||
tradeSignEmpty = Le panneau de vente n''as pas encore assez de stock.
|
||||
tradeSignEmptyOwner = There is nothing to collect from this trade sign.
|
||||
treeFailure = \u00a7cEchec de la g\u00e9n\u00e9ration de l''arbre. Essayez de nouveau sur de l''herbe ou de la terre.
|
||||
treeSpawned = \u00a77Arbre cr\u00e9\u00e9.
|
||||
typeTpaccept = \u00a77Pour le t\u00e9l\u00e9porter, tapez \u00a7c/tpaccept\u00a77.
|
||||
typeTpdeny = \u00a77Pour d\u00e9cliner cette demande, entrez \u00a7c/tpdeny\u00a77.
|
||||
typeWorldName = \u00a77Vous pouvez aussi taper le nom d''un monde sp\u00e9cifique.
|
||||
unableToSpawnMob = Incapable de spawner un monstre.
|
||||
unbannedIP = Adresse IP d\u00e9banni.
|
||||
unbannedPlayer = Joueur d\u00e9banni.
|
||||
unignorePlayer = Vous n''ignorez plus {0}.
|
||||
unknownItemId = Num\u00e9ro d''objet inconnu : {0}
|
||||
unknownItemInList = L''objet {0} est inconnu dans la liste {1}.
|
||||
unknownItemName = Nom d''objet inconnu : {0}
|
||||
unlimitedItemPermission = \u00a7cPas de permission pour l''objet illimit\u00e9 {0}.
|
||||
unlimitedItems = Objets illimit\u00e9s:
|
||||
unmutedPlayer = Le joueur {0} n''est plus muet.
|
||||
upgradingFilesError = Erreur durant la mise \u00e0 jour des fichiers.
|
||||
userCreatedPortal = {0} a utilis\u00e9 un portail et a g\u00e9n\u00e9r\u00e9 un portail de sortie.
|
||||
userDoesNotExist = L''utilisateur {0} n''existe pas.
|
||||
userIsAway = {0} s''est mis en AFK
|
||||
userIsNotAway = {0} n''est plus inactif
|
||||
userJailed = \u00a77Vous avez \u00e9t\u00e9 emprisonn\u00e9
|
||||
userUsedPortal = {0} a utilis\u00e9 un portail existant.
|
||||
userdataMoveBackError = Echec du d\u00e9placement de userdata/{0}.tmp \u00e0 userdata/{1}
|
||||
userdataMoveError = Echec du d\u00e9placement de userdata/{0} \u00e0 userdata/{1}.tmp
|
||||
usingPortal = \u00a77T\u00e9l\u00e9portation via portail vers un portail existant.
|
||||
usingTempFolderForTesting = Utilise un fichier temporaire pour un test.
|
||||
versionMismatch = Versions diff\u00e9rentes! Mettez s''il vous pla\u00eet {0} \u00e0 la m\u00eame version.
|
||||
versionMismatchAll = Mauvaise version! S''il vous plait mettez des jars Essentiels de version identique.
|
||||
voiceSilenced = \u00a77Votre voix a \u00e9t\u00e9 r\u00e9duite au silence
|
||||
warpDeleteError = Probl\u00e8me concernant la suppression du fichier warp.
|
||||
warpListPermission = \u00a7cVous n''avez pas la permission d''afficher la liste des warps.
|
||||
warpNotExist = Ce warp n''existe pas.
|
||||
warpSet = \u00a77Le warp {0} a \u00e9t\u00e9 cr\u00e9\u00e9.
|
||||
warpUsePermission = \u00a7cVous n''avez pas la permission d''utiliser ce warp.
|
||||
warpingTo = \u00a77T\u00e9l\u00e9portation au warp {0}.
|
||||
warpsCount = \u00a77There are {0} warps. Showing page {1} of {2}.
|
||||
weatherStorm = \u00a77Vous avez d\u00e9fini l''orage dans {0}
|
||||
weatherStormFor = \u00a77Vous avez d\u00e9fini l''orage dans {0} pour {1} secondes.
|
||||
weatherSun = \u00a77Vous avez mis le beau temps dans {0}
|
||||
weatherSunFor = \u00a77Vous avez mis le beau temps dans {0} pour {1} secondes.
|
||||
whoisGeoLocation = \u00a79 - Emplacement: {0}
|
||||
whoisHealth = \u00a79 - Vie: {0} / 20
|
||||
whoisIPAddress = \u00a79 - Adresse IP: {0}
|
||||
whoisIs = {0} est {1}
|
||||
whoisLocation = \u00a79 - Emplacement: ({0}, {1}, {2}, {3})
|
||||
whoisMoney = \u00a79 - Argent: {0}
|
||||
whoisStatusAvailable = \u00a79 - Statut: Disponible
|
||||
whoisStatusAway = \u00a79 - Statut: \u00a7cAilleurs\u00a7f
|
||||
worth = \u00a77Un stack de {0} vaut \u00a7c{1}\u00a77 ({2} objet(s) \u00e0 {3} chacun)
|
||||
worthMeta = \u00a77Un stack de {0} avec la m\u00e9tadonn\u00e9e de {1} vaut \u00a7c{2}\u00a77 ({3} objet(s) \u00e0 {4} chacun)
|
||||
worthSet = Valeur cr\u00e9e
|
||||
year = ann\u00e9e
|
||||
years = ann\u00e9es
|
||||
youAreHealed = \u00a77Vous avez \u00e9t\u00e9 soign\u00e9.
|
||||
youHaveNewMail = \u00a7cVous avez {0} messages! \u00a7fEntrez \u00a77/mail read\u00a7f pour voir votre courrier.
|
||||
|
||||
|
||||
powerToolsEnabled=All of your power tools have been enabled.
|
||||
protectionOwner=\u00a76[EssentialsProtect] Propri\u00e9taire de la protection : {0}
|
||||
questionFormat=\u00a77[Question]\u00a7f {0}
|
||||
reloadAllPlugins=\u00a77Tous les plugins ont \u00e9t\u00e9 recharg\u00e9s.
|
||||
repair=You have successfully repaired your: \u00a7e{0}.
|
||||
repairAlreadyFixed=\u00a77This item does not need repairing.
|
||||
repairInvalidType=\u00a7cThis item cannot be repaired.
|
||||
repairNone=There were no items that needing repairing.
|
||||
requestAccepted=\u00a77Demande de t\u00e9l\u00e9portation accept\u00e9e.
|
||||
requestAcceptedFrom=\u00a77{0} accepted your teleport request.
|
||||
requestDenied=\u00a77Demande de t\u00e9l\u00e9portation refus\u00e9e.
|
||||
requestDeniedFrom=\u00a77{0} denied your teleport request.
|
||||
requestSent=\u00a77Requ\u00eate envoy\u00e9e \u00e0 {0}\u00a77.
|
||||
returnPlayerToJailError=Erreur survenue lors de la tentative d''emprisonner de nouveau un joueur.
|
||||
second=seconde
|
||||
seconds=secondes
|
||||
seenOffline=Le joueur {0} est hors ligne depuis {1}
|
||||
seenOnline=Le joueur {0} est en ligne depuis {1}
|
||||
serverFull=Le serveur est plein.
|
||||
setSpawner=Changed spawner type to {0}
|
||||
sheepMalformedColor=Couleur mal form\u00e9e.
|
||||
shoutFormat=\u00a77[Crie]\u00a7f {0}
|
||||
signFormatFail=\u00a74[{0}]
|
||||
signFormatSuccess=\u00a71[{0}]
|
||||
signFormatTemplate=[{0}]
|
||||
signProtectInvalidLocation=\u00a74You are not allowed to create sign here.
|
||||
similarWarpExist=Un warp avec un nom similaire existe d\u00e9j\u00e0.
|
||||
slimeMalformedSize=Taille mal form\u00e9e.
|
||||
soloMob=Ce monstre aime \u00eatre seul.
|
||||
spawnSet=\u00a77Le point de spawn a \u00e9t\u00e9 d\u00e9fini pour le groupe {0}.
|
||||
spawned=spawn\u00e9
|
||||
suicideMessage=\u00a77Au revoir monde cruel...
|
||||
suicideSuccess=\u00a77{0} a pris sa propre vie.
|
||||
survival=survival
|
||||
takenFromAccount=\u00a7c{0} ont \u00e9t\u00e9 pris de votre compte.
|
||||
takenFromOthersAccount=\u00a7c{0} a \u00e9t\u00e9 prise de {1} compte.
|
||||
teleportAAll=\u00a77Teleporting request sent to all players...
|
||||
teleportAll=\u00a77T\u00e9l\u00e9poration de tous les joueurs.
|
||||
teleportAtoB=\u00a77{0}\u00a77 vous a t\u00e9l\u00e9port\u00e9 \u00e0 {1}\u00a77.
|
||||
teleportDisabled={0} a la t\u00e9l\u00e9portation d\u00e9sactiv\u00e9.
|
||||
teleportHereRequest=\u00a7c{0}\u00a7c Vous a demand\u00e9 de vous t\u00e9l\u00e9porter \u00e0 lui/elle.
|
||||
teleportNewPlayerError=\u00c9chec de la t\u00e9l\u00e9portation du nouveau joueur.
|
||||
teleportRequest=\u00a7c{0}\u00a7c vous demande s''il peut se t\u00e9l\u00e9porter sur vous.
|
||||
teleportTop=\u00a77T\u00e9l\u00e9portation vers le haut.
|
||||
teleportationCommencing=\u00a77D\u00e9but de la t\u00e9l\u00e9portation....
|
||||
teleportationDisabled=\u00a77T\u00e9l\u00e9poration d\u00e9sactiv\u00e9.
|
||||
teleportationEnabled=\u00a77T\u00e9l\u00e9portation activ\u00e9e.
|
||||
teleporting=\u00a77T\u00e9l\u00e9poration en cours...
|
||||
teleportingPortal=\u00a77T\u00e9l\u00e9portation via portail.
|
||||
tempBanned=Banni temporairement du serveur pour {0}
|
||||
tempbanExempt=\u00a77You may not tempban that player
|
||||
thunder=Vous avez {0} la foudre dans votre monde.
|
||||
thunderDuration=Vous avez {0} la foudre dans le serveur {1} secondes.
|
||||
timeBeforeHeal=Temps avant le prochain soin : {0}
|
||||
timeBeforeTeleport=Temps avant prochaine t\u00e9l\u00e9portation {0}
|
||||
timeFormat=\u00a73{0}\u00a7f or \u00a73{1}\u00a7f or \u00a73{2}\u00a7f
|
||||
timePattern=(?:([0-9]+)\\\\s*[ya][a-z]*[,\\\\s]*)?(?:([0-9]+)\\\\s*mo[a-z]*[,\\\\s]*)?(?:([0-9]+)\\\\s*(?:sem|w)[a-z]*[,\\\\s]*)?(?:([0-9]+)\\\\s*[dj][a-z]*[,\\\\s]*)?(?:([0-9]+)\\\\s*h[a-z]*[,\\\\s]*)?(?:([0-9]+)\\\\s*m[a-z]*[,\\\\s]*)?(?:([0-9]+)\\\\s*(?:s[a-z]*)?)?
|
||||
timeSet=Heure modifi\u00e9e dans tous les mondes.
|
||||
timeSetPermission=\u00a7cYou are not authorized to set the time.
|
||||
timeWorldCurrent=The current time in {0} is \u00a73{1}
|
||||
timeWorldSet=The time was set to {0} in: \u00a7c{1}
|
||||
tradeCompleted=\u00a77\u00c9change termin\u00e9.
|
||||
tradeSignEmpty=Le panneau de vente n''as pas encore assez de stock.
|
||||
tradeSignEmptyOwner=There is nothing to collect from this trade sign.
|
||||
treeFailure=\u00a7cEchec de la g\u00e9n\u00e9ration de l''arbre. Essayez de nouveau sur de l''herbe ou de la terre.
|
||||
treeSpawned=\u00a77Arbre cr\u00e9\u00e9.
|
||||
true=true
|
||||
typeTpaccept=\u00a77Pour le t\u00e9l\u00e9porter, tapez \u00a7c/tpaccept\u00a77.
|
||||
typeTpdeny=\u00a77Pour d\u00e9cliner cette demande, entrez \u00a7c/tpdeny\u00a77.
|
||||
typeWorldName=\u00a77Vous pouvez aussi taper le nom d''un monde sp\u00e9cifique.
|
||||
unableToSpawnMob=Incapable de spawner un monstre.
|
||||
unbannedIP=Adresse IP d\u00e9banni.
|
||||
unbannedPlayer=Joueur d\u00e9banni.
|
||||
unignorePlayer=Vous n''ignorez plus {0}.
|
||||
unknownItemId=Num\u00e9ro d''objet inconnu : {0}
|
||||
unknownItemInList=L''objet {0} est inconnu dans la liste {1}.
|
||||
unknownItemName=Nom d''objet inconnu : {0}
|
||||
unlimitedItemPermission=\u00a7cPas de permission pour l''objet illimit\u00e9 {0}.
|
||||
unlimitedItems=Objets illimit\u00e9s:
|
||||
unmutedPlayer=Le joueur {0} n''est plus muet.
|
||||
upgradingFilesError=Erreur durant la mise \u00e0 jour des fichiers.
|
||||
userDoesNotExist=L''utilisateur {0} n''existe pas.
|
||||
userIsAway={0} s''est mis en AFK
|
||||
userIsNotAway={0} n''est plus inactif
|
||||
userJailed=\u00a77Vous avez \u00e9t\u00e9 emprisonn\u00e9
|
||||
userUsedPortal={0} a utilis\u00e9 un portail existant.
|
||||
userdataMoveBackError=Echec du d\u00e9placement de userdata/{0}.tmp \u00e0 userdata/{1}
|
||||
userdataMoveError=Echec du d\u00e9placement de userdata/{0} \u00e0 userdata/{1}.tmp
|
||||
usingTempFolderForTesting=Utilise un fichier temporaire pour un test.
|
||||
versionMismatch=Versions diff\u00e9rentes! Mettez s''il vous pla\u00eet {0} \u00e0 la m\u00eame version.
|
||||
versionMismatchAll=Mauvaise version! S''il vous plait mettez des jars Essentiels de version identique.
|
||||
voiceSilenced=\u00a77Votre voix a \u00e9t\u00e9 r\u00e9duite au silence
|
||||
warpDeleteError=Probl\u00e8me concernant la suppression du fichier warp.
|
||||
warpListPermission=\u00a7cVous n''avez pas la permission d''afficher la liste des warps.
|
||||
warpNotExist=Ce warp n''existe pas.
|
||||
warpSet=\u00a77Le warp {0} a \u00e9t\u00e9 cr\u00e9\u00e9.
|
||||
warpUsePermission=\u00a7cVous n''avez pas la permission d''utiliser ce warp.
|
||||
warpingTo=\u00a77T\u00e9l\u00e9portation au warp {0}.
|
||||
warps=Warps: {0}
|
||||
warpsCount=\u00a77There are {0} warps. Showing page {1} of {2}.
|
||||
weatherStorm=\u00a77Vous avez d\u00e9fini l''orage dans {0}
|
||||
weatherStormFor=\u00a77Vous avez d\u00e9fini l''orage dans {0} pour {1} secondes.
|
||||
weatherSun=\u00a77Vous avez mis le beau temps dans {0}
|
||||
weatherSunFor=\u00a77Vous avez mis le beau temps dans {0} pour {1} secondes.
|
||||
whoisGamemode=\u00a79 - Gamemode: {0}
|
||||
whoisGeoLocation=\u00a79 - Emplacement: {0}
|
||||
whoisGod=\u00a79 - God mode: {0}
|
||||
whoisHealth=\u00a79 - Vie: {0} / 20
|
||||
whoisIPAddress=\u00a79 - Adresse IP: {0}
|
||||
whoisIs={0} est {1}
|
||||
whoisLocation=\u00a79 - Emplacement: ({0}, {1}, {2}, {3})
|
||||
whoisMoney=\u00a79 - Argent: {0}
|
||||
whoisOP=\u00a79 - OP: {0}
|
||||
whoisStatusAvailable=\u00a79 - Statut: Disponible
|
||||
whoisStatusAway=\u00a79 - Statut: \u00a7cAilleurs\u00a7f
|
||||
worth=\u00a77Un stack de {0} vaut \u00a7c{1}\u00a77 ({2} objet(s) \u00e0 {3} chacun)
|
||||
worthMeta=\u00a77Un stack de {0} avec la m\u00e9tadonn\u00e9e de {1} vaut \u00a7c{2}\u00a77 ({3} objet(s) \u00e0 {4} chacun)
|
||||
worthSet=Valeur cr\u00e9e
|
||||
year=ann\u00e9e
|
||||
years=ann\u00e9es
|
||||
youAreHealed=\u00a77Vous avez \u00e9t\u00e9 soign\u00e9.
|
||||
youHaveNewMail=\u00a7cVous avez {0} messages! \u00a7fEntrez \u00a77/mail read\u00a7f pour voir votre courrier.
|
||||
|
@@ -2,372 +2,377 @@
|
||||
# Single quotes have to be doubled: ''
|
||||
# Translations start here
|
||||
# by: Geertje123
|
||||
addedToAccount = \u00a7a{0} is gestort op je account.
|
||||
addedToOthersAccount = \u00a7a{0} is overgemaakt naar {1}''s rekening
|
||||
alertBroke = gebroken:
|
||||
alertFormat = \u00a73[{0}] \u00a7f {1} \u00a76 {2} bij: {3}
|
||||
alertPlaced = geplaatst:
|
||||
alertUsed = gebruikt:
|
||||
action=* {0} {1}
|
||||
addedToAccount=\u00a7a{0} is gestort op je account.
|
||||
addedToOthersAccount=\u00a7a{0} is overgemaakt naar {1}''s rekening
|
||||
alertBroke=gebroken:
|
||||
alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} bij: {3}
|
||||
alertPlaced=geplaatst:
|
||||
alertUsed=gebruikt:
|
||||
autoAfkKickReason=You have been kicked for idling more than {0} minutes.
|
||||
backAfterDeath = \u00a77Gebruik het /back command om terug te keren naar je sterfplaats.
|
||||
backUsageMsg = \u00a77Naar de vorige locatie aan het gaan.
|
||||
backupFinished = Backup voltooid
|
||||
backupStarted = Backup gestart
|
||||
balance = \u00a77Saldo: {0}
|
||||
balanceTop = \u00a77 Top {0} saldi
|
||||
banExempt = \u00a77Je kunt deze speler niet verbannen.
|
||||
banIpAddress = \u00a77Verbannen IP-adres
|
||||
bannedIpsFileError = Fout bij het lezen van banned-ips.txt
|
||||
bannedIpsFileNotFound = banned-ips.txt werd niet gevonden
|
||||
bannedPlayersFileError = Fout bij het lezen van banned-players.txt
|
||||
bannedPlayersFileNotFound = banned-players.txt werd niet gevonden
|
||||
bigTreeFailure = \u00a7cMaken van een grote boom is mislukt. Probeer het opnieuw op gras of dirt.
|
||||
bigTreeSuccess = \u00a77Grote boom gemaakt.
|
||||
broadcast = [\u00a7cBroadcast\u00a7f]\u00a7a {0}
|
||||
buildAlert = \u00a7cJe bent niet bevoegd om te bouwen
|
||||
bukkitFormatChanged = Bukkit versie formaat veranderd. Versie niet nagekeken.
|
||||
burnMsg = \u00a77Je hebt {0} voor {1} seconde(n) in de fik gezet.
|
||||
canTalkAgain = \u00a77Je kan weer praten.
|
||||
cantFindGeoIpDB = De GeoIP database kon niet gevonden worden!
|
||||
cantReadGeoIpDB = Fout bij het lezen van de GeoIP database!
|
||||
cantSpawnItem = \u00a7cJe bent niet bevoegd om {0} te spawnen.
|
||||
commandFailed = Opdracht {0} mislukt:
|
||||
commandHelpFailedForPlugin=Fout bij het \u200b\u200bkrijgen van hulp voor: {0}
|
||||
commandNotLoaded = \u00a7cOpdracht {0} is fout geladen.
|
||||
compassBearing = \u00a77Ligging: {0} ({1} graden).
|
||||
configFileMoveError = Het verplaatsen van config.yml naar de backup locatie is mislukt.
|
||||
configFileRenameError = Fout bij het hernoemen van de tijdelijke map naar config.yml
|
||||
connectedPlayers = Spelers online:
|
||||
connectionFailed = Fout bij het verbinden.
|
||||
cooldownWithMessage = \u00a7cAfkoeltijd: {0}
|
||||
corruptNodeInConfig = \u00a74Waarschuwing: Het configuratiebestand bevat een fout {0}.
|
||||
couldNotFindTemplate = Het sjabloon kon niet worden gevonden {0}
|
||||
creatingConfigFromTemplate = Bezig met aanmaken van een config vanaf sjabloon: {0}
|
||||
creatingEmptyConfig = Bezig met een lege config aanmaken: {0}
|
||||
creatingPortal = Bezig met cre\u00ebren van portal bij {0},{1},{2}.
|
||||
day = dag
|
||||
days = dagen
|
||||
defaultBanReason = De Ban Hamer heeft gesproken!
|
||||
deleteFileError = Het bestand kon niet verwijderd worden: {0}
|
||||
deleteHome = \u00a77Home {0} has been removed.
|
||||
deleteJail = \u00a77Gevangenis {0} is verwijderd.
|
||||
deleteWarp = \u00a77Warp {0} is verwijderd.
|
||||
deniedAccessCommand = {0} was de toegang verboden tot het commando.
|
||||
dependancyDownloaded = [Essentials] Afhankelijkheid {0} succesvol gedownload.
|
||||
dependancyException = [Essentials] Er is een fout opgetreden bij het downloaden van de afhankelijkheid
|
||||
dependancyNotFound = [Essentials] Een afhankelijkheid is niet gevonden. Start downloaden.
|
||||
depth = \u00a77Je zit op zeeniveau.
|
||||
depthAboveSea = \u00a77Je zit {0} blok(ken) boven zeeniveau.
|
||||
depthBelowSea = \u00a77Je zit {0} blok(ken) onder zeeniveau.
|
||||
destinationNotSet = Bestemming niet ingesteld
|
||||
disableUnlimited = \u00a77Oneindig plaatsen van {0} uitgeschakeld voor {1}.
|
||||
disabled = uitgeschakeld
|
||||
dontMoveMessage = \u00a77Beginnen met teleporteren in {0}. Niet bewegen.
|
||||
downloadingGeoIp = Bezig met downloaden van GeoIP database ... Dit kan een tijdje duren (country: 0.6 MB, city: 20MB)
|
||||
duplicatedUserdata = Dubbele userdata: {0} en {1}.
|
||||
enableUnlimited = \u00a77Oneindig aantal {0} aan {1} gegeven.
|
||||
enabled = ingeschakeld
|
||||
errorCallingCommand = Fout bij het aanroepen van de opdracht /{0}
|
||||
errorWithMessage = \u00a7cFout: {0}
|
||||
essentialsReload = \u00a77Essentials is herladen {0}
|
||||
extinguish = \u00a77Je hebt jezelf geblust.
|
||||
extinguishOthers = \u00a77Je hebt {0} geblust.
|
||||
failedToCloseConfig = Fout bij het sluiten van config {0}
|
||||
failedToCreateConfig = Fout tijdens het aanmaken van config {0}
|
||||
failedToWriteConfig = Fout bij het cre\u00ebren van config {0}
|
||||
fileRenameError = Hernoemen van {0} mislukt
|
||||
foreverAlone = \u00a7cJe hebt niemand waarnaar je kan reageren.
|
||||
freedMemory = {0} MB gelost.
|
||||
gcchunks = chunks,
|
||||
gcentities = entities
|
||||
gcfree = Vrij geheugen: {0} MB
|
||||
gcmax = Maximaal geheugen: {0} MB
|
||||
gctotal = Gealloceerd geheugen: {0} MB
|
||||
generatingPortal = \u00a77Uitgangs portal aan het cre\u00ebren.
|
||||
geoIpUrlEmpty = GeoIP download url is leeg.
|
||||
geoIpUrlInvalid = GeoIP download url is ongeldig.
|
||||
geoipJoinFormat = Speler {0} komt uit {1}
|
||||
godDisabledFor = uitgeschakeld voor {0}
|
||||
godEnabledFor = ingeschakeld voor {0}
|
||||
godMode = \u00a77God mode {0}.
|
||||
haveBeenReleased = \u00a77Je bent bevrijdt
|
||||
heal = \u00a77Je bent genezen.
|
||||
healOther = \u00a77Je geneezde {0}.
|
||||
helpConsole = type ? om de consolehelp weer te geven.
|
||||
helpOp = \u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
|
||||
helpPages = Pagina \u00a7c{0}\u00a7f van de \u00a7c{1}\u00a7f:
|
||||
holeInFloor = Gat in de vloer
|
||||
homeSet = \u00a77Home ingesteld.
|
||||
homeSetToBed = \u00a77Je home is is nu verplaatst naar dit bed.
|
||||
homes = Homes: {0}
|
||||
hour = uur
|
||||
hours = uren
|
||||
ignorePlayer = Je negeert {0} vanaf nu.
|
||||
illegalDate = Illegaal data formaat.
|
||||
infoChapter = Selecteer hoofdstuk:
|
||||
infoChapterPages = Hoofdstuk {0}, Pagina \u00a7c{1}\u00a7f van de \u00a7c{2}\u00a7f:
|
||||
infoFileDoesNotExist = Bestand info.txt bestaat niet. Bezig met aanmaken.
|
||||
infoPages = Pagina \u00a7c{0}\u00a7f van de \u00a7c{1}\u00a7f:
|
||||
infoUnknownChapter = Onbekend hoofdstuk.
|
||||
invBigger = De inventory van de andere speler is groter dan die van jou.
|
||||
invRestored = Je inventory is hersteld.
|
||||
invSee = Je kijkt naar de inventory van {0}.
|
||||
invSeeHelp = Type /invsee om je inventory te herstellen.
|
||||
invalidCharge = \u00a7cOngeldig te laden.
|
||||
invalidMob = Ongeldig mob type.
|
||||
invalidServer = Ongeldige server!
|
||||
invalidSignLine = Regel {0} op het bordje is ongeldig.
|
||||
invalidWorld = \u00a7cOngeldige wereld.
|
||||
inventoryCleared = \u00a77inventory leeggemaakt.
|
||||
inventoryClearedOthers = \u00a77inventory van \u00a7c{0}\u00a77 leeggemaakt.
|
||||
is = is
|
||||
itemCannotBeSold = Dat voorwerp kan niet aan de server worden verkocht.
|
||||
itemMustBeStacked = Voorwerp moet geruild worden als stapel. Een hoeveelheid van 2 moet dus geruild worden als twee stapels, etc.
|
||||
itemNotEnough1 = \u00a7cJe hebt niet genoeg van dat voorwerp om te verkopen.
|
||||
itemNotEnough2 = \u00a77Type /sell itemname Als je alles daarvan wilt verkopen
|
||||
itemNotEnough3 = \u00a77/sell itemname -1 zorgt ervoor dat ze allemaal behalve 1 worden verkocht, etc.
|
||||
itemSellAir = Je wilde serieus lucht verkopen? Plaats een voorwerp in je hand.
|
||||
itemSold = \u00a77Verkocht voor \u00a7c {0} \u00a77 ({1} voorwerpen voor {2} per stuk)
|
||||
itemSoldConsole = {0} verkocht {1} voor \u00a77 {2} \u00a77 ({3} voorwerpen voor {4} per stuk)
|
||||
itemSpawn = \u00a77Geeft {0} {1}
|
||||
itemsCsvNotLoaded = De item kunnen niet geladen worden.csv.
|
||||
jailAlreadyIncarcerated = \u00a7cPerson is already in jail: {0}
|
||||
jailMessage = \u00a7cYou do the crime, you do the time.
|
||||
jailNotExist = Die gevangenis bestaat niet.
|
||||
jailReleased = \u00a77Player \u00a7e{0}\u00a77 unjailed.
|
||||
jailReleasedPlayerNotify = \u00a77You have been released!
|
||||
jailSentenceExtended = Jail time extend to: {0)
|
||||
jailSet = \u00a77Gevangenis {0} is ingesteld
|
||||
jumpError = Dat zou je computers hersenen beschadigen.
|
||||
kickDefault = Gekicked van de server
|
||||
kickExempt = \u00a77Je kunt die speler niet schoppen.
|
||||
kill = \u00a77Jij doodde {0}.
|
||||
kitError = \u00a7cEr zijn geen geldige kits.
|
||||
kitError2 = \u00a7cDie kit bestaat niet of is verkeerde beschreven.
|
||||
kitErrorHelp = \u00a7cMisschien mist er een hoeveelheid van het item in de configuratie?
|
||||
kitGive = \u00a77Kit {0} wordt gegeven.
|
||||
kitInvFull = \u00a7cJe inventory was vol, de kit wordt op de grond geplaatst
|
||||
kitTimed = \u00a7cJe kan die kit pas weer gebruiken over {0}.
|
||||
kits = \u00a77Kits: {0}
|
||||
lightningSmited = \u00a77Je bent zojuist verbrand
|
||||
lightningUse = \u00a77Brand {0}
|
||||
loadWarpError = Fout bij het laden van warp {0}
|
||||
loadinfo = Build {1} geladen {0} van {2}
|
||||
localFormat = Local: <{0}> {1}
|
||||
mailClear = \u00a7cType /mail clear, om ej berichten als gelezen te markeren.
|
||||
mailCleared = \u00a77Bericht geklaard!
|
||||
mailSent = \u00a77Bericht verzonden!
|
||||
markMailAsRead = \u00a7cType /mail clear, om je berichten als gelezen te markeren
|
||||
markedAsAway = \u00a77Je staat nu als afwezig gemeld.
|
||||
markedAsNotAway = \u00a77Je staat niet meer als afwezig gemeld.
|
||||
backAfterDeath=\u00a77Gebruik het /back command om terug te keren naar je sterfplaats.
|
||||
backUsageMsg=\u00a77Naar de vorige locatie aan het gaan.
|
||||
backupFinished=Backup voltooid
|
||||
backupStarted=Backup gestart
|
||||
balance=\u00a77Saldo: {0}
|
||||
balanceTop=\u00a77 Top {0} saldi
|
||||
banExempt=\u00a77Je kunt deze speler niet verbannen.
|
||||
banIpAddress=\u00a77Verbannen IP-adres
|
||||
bannedIpsFileError=Fout bij het lezen van banned-ips.txt
|
||||
bannedIpsFileNotFound=banned-ips.txt werd niet gevonden
|
||||
bannedPlayersFileError=Fout bij het lezen van banned-players.txt
|
||||
bannedPlayersFileNotFound=banned-players.txt werd niet gevonden
|
||||
bigTreeFailure=\u00a7cMaken van een grote boom is mislukt. Probeer het opnieuw op gras of dirt.
|
||||
bigTreeSuccess= \u00a77Grote boom gemaakt.
|
||||
broadcast=[\u00a7cBroadcast\u00a7f]\u00a7a {0}
|
||||
buildAlert=\u00a7cJe bent niet bevoegd om te bouwen
|
||||
bukkitFormatChanged=Bukkit versie formaat veranderd. Versie niet nagekeken.
|
||||
burnMsg=\u00a77Je hebt {0} voor {1} seconde(n) in de fik gezet.
|
||||
canTalkAgain=\u00a77Je kan weer praten.
|
||||
cantFindGeoIpDB=De GeoIP database kon niet gevonden worden!
|
||||
cantReadGeoIpDB=Fout bij het lezen van de GeoIP database!
|
||||
cantSpawnItem=\u00a7cJe bent niet bevoegd om {0} te spawnen.
|
||||
commandFailed=Opdracht {0} mislukt:
|
||||
commandHelpFailedForPlugin=Fout bij het \u200b\u200bkrijgen van hulp voor: {0}
|
||||
commandNotLoaded=\u00a7cOpdracht {0} is fout geladen.
|
||||
compassBearing=\u00a77Ligging: {0} ({1} graden).
|
||||
configFileMoveError=Het verplaatsen van config.yml naar de backup locatie is mislukt.
|
||||
configFileRenameError=Fout bij het hernoemen van de tijdelijke map naar config.yml
|
||||
connectedPlayers=Spelers online:
|
||||
connectionFailed=Fout bij het verbinden.
|
||||
cooldownWithMessage=\u00a7cAfkoeltijd: {0}
|
||||
corruptNodeInConfig=\u00a74Waarschuwing: Het configuratiebestand bevat een fout {0}.
|
||||
couldNotFindTemplate=Het sjabloon kon niet worden gevonden {0}
|
||||
creatingConfigFromTemplate=Bezig met aanmaken van een config vanaf sjabloon: {0}
|
||||
creatingEmptyConfig=Bezig met een lege config aanmaken: {0}
|
||||
creative=creative
|
||||
day=dag
|
||||
days=dagen
|
||||
defaultBanReason=De Ban Hamer heeft gesproken!
|
||||
deleteFileError=Het bestand kon niet verwijderd worden: {0}
|
||||
deleteHome=\u00a77Home {0} has been removed.
|
||||
deleteJail=\u00a77Gevangenis {0} is verwijderd.
|
||||
deleteWarp=\u00a77Warp {0} is verwijderd.
|
||||
deniedAccessCommand={0} was de toegang verboden tot het commando.
|
||||
dependancyDownloaded=[Essentials] Afhankelijkheid {0} succesvol gedownload.
|
||||
dependancyException=[Essentials] Er is een fout opgetreden bij het downloaden van de afhankelijkheid
|
||||
dependancyNotFound=[Essentials] Een afhankelijkheid is niet gevonden. Start downloaden.
|
||||
depth=\u00a77Je zit op zeeniveau.
|
||||
depthAboveSea=\u00a77Je zit {0} blok(ken) boven zeeniveau.
|
||||
depthBelowSea=\u00a77Je zit {0} blok(ken) onder zeeniveau.
|
||||
destinationNotSet=Bestemming niet ingesteld
|
||||
disableUnlimited=\u00a77Oneindig plaatsen van {0} uitgeschakeld voor {1}.
|
||||
disabled=uitgeschakeld
|
||||
dontMoveMessage=\u00a77Beginnen met teleporteren in {0}. Niet bewegen.
|
||||
downloadingGeoIp=Bezig met downloaden van GeoIP database ... Dit kan een tijdje duren (country: 0.6 MB, city: 20MB)
|
||||
duplicatedUserdata=Dubbele userdata: {0} en {1}.
|
||||
enableUnlimited=\u00a77Oneindig aantal {0} aan {1} gegeven.
|
||||
enabled=ingeschakeld
|
||||
errorCallingCommand=Fout bij het aanroepen van de opdracht /{0}
|
||||
errorWithMessage=\u00a7cFout: {0}
|
||||
essentialsReload=\u00a77Essentials is herladen {0}
|
||||
extinguish=\u00a77Je hebt jezelf geblust.
|
||||
extinguishOthers=\u00a77Je hebt {0} geblust.
|
||||
failedToCloseConfig=Fout bij het sluiten van config {0}
|
||||
failedToCreateConfig=Fout tijdens het aanmaken van config {0}
|
||||
failedToWriteConfig=Fout bij het cre\u00ebren van config {0}
|
||||
false=false
|
||||
fileRenameError=Hernoemen van {0} mislukt
|
||||
foreverAlone=\u00a7cJe hebt niemand waarnaar je kan reageren.
|
||||
freedMemory={0} MB gelost.
|
||||
gameMode=\u00a77Set game mode {0} for {1}.
|
||||
gcchunks= chunks,
|
||||
gcentities= entities
|
||||
gcfree=Vrij geheugen: {0} MB
|
||||
gcmax=Maximaal geheugen: {0} MB
|
||||
gctotal=Gealloceerd geheugen: {0} MB
|
||||
geoIpUrlEmpty=GeoIP download url is leeg.
|
||||
geoIpUrlInvalid=GeoIP download url is ongeldig.
|
||||
geoipJoinFormat=Speler {0} komt uit {1}
|
||||
godDisabledFor=uitgeschakeld voor {0}
|
||||
godEnabledFor=ingeschakeld voor {0}
|
||||
godMode=\u00a77God mode {0}.
|
||||
haveBeenReleased=\u00a77Je bent bevrijdt
|
||||
heal=\u00a77Je bent genezen.
|
||||
healOther=\u00a77Je geneezde {0}.
|
||||
helpConsole=type ? om de consolehelp weer te geven.
|
||||
helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
|
||||
helpPages=Pagina \u00a7c{0}\u00a7f van de \u00a7c{1}\u00a7f:
|
||||
holeInFloor=Gat in de vloer
|
||||
homeSet=\u00a77Home ingesteld.
|
||||
homeSetToBed=\u00a77Je home is is nu verplaatst naar dit bed.
|
||||
homes=Homes: {0}
|
||||
hour=uur
|
||||
hours=uren
|
||||
ignorePlayer=Je negeert {0} vanaf nu.
|
||||
illegalDate=Illegaal data formaat.
|
||||
infoChapter=Selecteer hoofdstuk:
|
||||
infoChapterPages=Hoofdstuk {0}, Pagina \u00a7c{1}\u00a7f van de \u00a7c{2}\u00a7f:
|
||||
infoFileDoesNotExist=Bestand info.txt bestaat niet. Bezig met aanmaken.
|
||||
infoPages=Pagina \u00a7c{0}\u00a7f van de \u00a7c{1}\u00a7f:
|
||||
infoUnknownChapter=Onbekend hoofdstuk.
|
||||
invBigger=De inventory van de andere speler is groter dan die van jou.
|
||||
invRestored=Je inventory is hersteld.
|
||||
invSee=Je kijkt naar de inventory van {0}.
|
||||
invSeeHelp=Type /invsee om je inventory te herstellen.
|
||||
invalidCharge=\u00a7cOngeldig te laden.
|
||||
invalidMob=Ongeldig mob type.
|
||||
invalidServer=Ongeldige server!
|
||||
invalidSignLine=Regel {0} op het bordje is ongeldig.
|
||||
invalidWorld=\u00a7cOngeldige wereld.
|
||||
inventoryCleared=\u00a77inventory leeggemaakt.
|
||||
inventoryClearedOthers=\u00a77inventory van \u00a7c{0}\u00a77 leeggemaakt.
|
||||
is=is
|
||||
itemCannotBeSold=Dat voorwerp kan niet aan de server worden verkocht.
|
||||
itemMustBeStacked=Voorwerp moet geruild worden als stapel. Een hoeveelheid van 2 moet dus geruild worden als twee stapels, etc.
|
||||
itemNotEnough1=\u00a7cJe hebt niet genoeg van dat voorwerp om te verkopen.
|
||||
itemNotEnough2=\u00a77Type /sell itemname Als je alles daarvan wilt verkopen
|
||||
itemNotEnough3=\u00a77/sell itemname -1 zorgt ervoor dat ze allemaal behalve 1 worden verkocht, etc.
|
||||
itemSellAir=Je wilde serieus lucht verkopen? Plaats een voorwerp in je hand.
|
||||
itemSold=\u00a77Verkocht voor \u00a7c{0} \u00a77({1} {2} voorwerpen voor {3} per stuk)
|
||||
itemSoldConsole={0} verkocht {1} voor \u00a77{2} \u00a77({3} voorwerpen voor {4} per stuk)
|
||||
itemSpawn=\u00a77Geeft {0} {1}
|
||||
itemsCsvNotLoaded=De item kunnen niet geladen worden.csv.
|
||||
jailAlreadyIncarcerated=\u00a7cPerson is already in jail: {0}
|
||||
jailMessage=\u00a7cYou do the crime, you do the time.
|
||||
jailNotExist=Die gevangenis bestaat niet.
|
||||
jailReleased=\u00a77Player \u00a7e{0}\u00a77 unjailed.
|
||||
jailReleasedPlayerNotify=\u00a77You have been released!
|
||||
jailSentenceExtended=Jail time extend to: {0)
|
||||
jailSet=\u00a77Gevangenis {0} is ingesteld
|
||||
jumpError=Dat zou je computers hersenen beschadigen.
|
||||
kickDefault=Gekicked van de server
|
||||
kickExempt=\u00a77Je kunt die speler niet schoppen.
|
||||
kill=\u00a77Jij doodde {0}.
|
||||
kitError=\u00a7cEr zijn geen geldige kits.
|
||||
kitError2=\u00a7cDie kit bestaat niet of is verkeerde beschreven.
|
||||
kitErrorHelp=\u00a7cMisschien mist er een hoeveelheid van het item in de configuratie?
|
||||
kitGive=\u00a77Kit {0} wordt gegeven.
|
||||
kitInvFull=\u00a7cJe inventory was vol, de kit wordt op de grond geplaatst
|
||||
kitTimed=\u00a7cJe kan die kit pas weer gebruiken over {0}.
|
||||
kits=\u00a77Kits: {0}
|
||||
lightningSmited=\u00a77Je bent zojuist verbrand
|
||||
lightningUse=\u00a77Brand {0}
|
||||
loadWarpError=Fout bij het laden van warp {0}
|
||||
loadinfo=Build {1} geladen {0} van {2}
|
||||
localFormat=Local: <{0}> {1}
|
||||
mailClear=\u00a7cType /mail clear, om ej berichten als gelezen te markeren.
|
||||
mailCleared=\u00a77Bericht geklaard!
|
||||
mailSent=\u00a77Bericht verzonden!
|
||||
markMailAsRead=\u00a7cType /mail clear, om je berichten als gelezen te markeren
|
||||
markedAsAway=\u00a77Je staat nu als afwezig gemeld.
|
||||
markedAsNotAway=\u00a77Je staat niet meer als afwezig gemeld.
|
||||
maxHomes=You cannot set more than {0} homes.
|
||||
mayNotJail = \u00a7cJe mag die speler niet in de gevangenis zetten.
|
||||
me = me
|
||||
minute = minuut
|
||||
minutes = minuten
|
||||
missingItems = Je hebt geen {0}x {1}.
|
||||
missingPrefixSuffix = Er mist een prefix of suffix voor {0}
|
||||
mobSpawnError = Fout bij het veranderen van de mob spawner.
|
||||
mobSpawnLimit = Grootte van de mob hang af van het server limiet
|
||||
mobSpawnTarget = Target blok moet een mob spawner zijn.
|
||||
moneyRecievedFrom = \u00a7a{0} is ontvangen van {1}
|
||||
moneySentTo = \u00a7a{0} is verzonden naar {1}
|
||||
moneyTaken = {0} van je bankrekening afgehaald.
|
||||
month = maand
|
||||
months = maanden
|
||||
moreThanZero = Het aantal moet groter zijn dan 0.
|
||||
msgFormat = \u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
|
||||
muteExempt = \u00a7cJe kan deze speler niet muten.
|
||||
mutedPlayer = Speler {0} gemute.
|
||||
mutedPlayerFor = Speler {0} is gemute voor {1}.
|
||||
mutedUserSpeaks = {0} probeerde te praten, maar is gemute.
|
||||
needTpohere = Je moet toegang krijgen tot /tpohere om naar andere spelers te teleporteren.
|
||||
negativeBalanceError = Speler is niet toegestaan om een negatief saldo te hebben.
|
||||
nickChanged = Nickname veranderd.
|
||||
mayNotJail=\u00a7cJe mag die speler niet in de gevangenis zetten.
|
||||
me=me
|
||||
minute=minuut
|
||||
minutes=minuten
|
||||
missingItems=Je hebt geen {0}x {1}.
|
||||
missingPrefixSuffix=Er mist een prefix of suffix voor {0}
|
||||
mobSpawnError=Fout bij het veranderen van de mob spawner.
|
||||
mobSpawnLimit=Grootte van de mob hang af van het server limiet
|
||||
mobSpawnTarget=Target blok moet een mob spawner zijn.
|
||||
mobsAvailable=\u00a77Mobs: {0}
|
||||
moneyRecievedFrom=\u00a7a{0} is ontvangen van {1}
|
||||
moneySentTo=\u00a7a{0} is verzonden naar {1}
|
||||
moneyTaken={0} van je bankrekening afgehaald.
|
||||
month=maand
|
||||
months=maanden
|
||||
moreThanZero=Het aantal moet groter zijn dan 0.
|
||||
msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
|
||||
muteExempt=\u00a7cJe kan deze speler niet muten.
|
||||
mutedPlayer=Speler {0} gemute.
|
||||
mutedPlayerFor=Speler {0} is gemute voor {1}.
|
||||
mutedUserSpeaks={0} probeerde te praten, maar is gemute.
|
||||
needTpohere=Je moet toegang krijgen tot /tpohere om naar andere spelers te teleporteren.
|
||||
negativeBalanceError=Speler is niet toegestaan om een negatief saldo te hebben.
|
||||
nickChanged=Nickname veranderd.
|
||||
nickDisplayName=\u00a77You have to enable change-displayname in Essentials config.
|
||||
nickInUse = \u00a7cDie naam is al in gebruik.
|
||||
nickNamesAlpha = \u00a7cNicknames moeten alfanumeriek zijn.
|
||||
nickNoMore = \u00a7Je hebt geen nickname meer.
|
||||
nickOthersPermission = \u00a7cJe hebt geen toestemming om de nickname van anderen te veranderen
|
||||
nickSet = \u00a77Je nickname is nu \u00a7c{0}
|
||||
noAccessCommand = \u00a7cJe hebt geen toegang tot die opdracht.
|
||||
noAccessPermission = \u00a7cJe hebt hier geen toegang voor {0}.
|
||||
noDestroyPermission = \u00a7cJe hebt geen toegang om dat te vernietigen {0}.
|
||||
noHelpFound = \u00a7cNo matching commands.
|
||||
noHomeSet = Je hebt geen home gemaakt.
|
||||
noHomeSetPlayer = Speler heeft geen home.
|
||||
noKitPermission = \u00a7cJe hebt de \u00a7c{0}\u00a7c toestemming nodig om die kit te gebruiken.
|
||||
noKits = \u00a77Er zijn nog geen kits beschikbaar
|
||||
noMail = Je hebt geen berichten
|
||||
noMailSendPerm = \u00a7cJe hebt de \u00a7fessentials.mail.send\u00a7c toestemming niet.
|
||||
noMotd = \u00a7cEr is geen bericht van de dag.
|
||||
noNewMail = \u00a77Je hebt geen nieuwe berichten.
|
||||
noPendingRequest = Je hebt geen aanvragen.
|
||||
noPlacePermission = \u00a7cJe hebt geen toestemming om een blok naast die sign te plaatsen.
|
||||
nickInUse=\u00a7cDie naam is al in gebruik.
|
||||
nickNamesAlpha=\u00a7cNicknames moeten alfanumeriek zijn.
|
||||
nickNoMore=\u00a7Je hebt geen nickname meer.
|
||||
nickOthersPermission=\u00a7cJe hebt geen toestemming om de nickname van anderen te veranderen
|
||||
nickSet=\u00a77Je nickname is nu \u00a7c{0}
|
||||
noAccessCommand=\u00a7cJe hebt geen toegang tot die opdracht.
|
||||
noAccessPermission=\u00a7cJe hebt hier geen toegang voor {0}.
|
||||
noDestroyPermission=\u00a7cJe hebt geen toegang om dat te vernietigen {0}.
|
||||
noHelpFound=\u00a7cNo matching commands.
|
||||
noHomeSet=Je hebt geen home gemaakt.
|
||||
noHomeSetPlayer=Speler heeft geen home.
|
||||
noKitPermission=\u00a7cJe hebt de \u00a7c{0}\u00a7c toestemming nodig om die kit te gebruiken.
|
||||
noKits=\u00a77Er zijn nog geen kits beschikbaar
|
||||
noMail=Je hebt geen berichten
|
||||
noMailSendPerm=\u00a7cJe hebt de \u00a7fessentials.mail.send\u00a7c toestemming niet.
|
||||
noMotd=\u00a7cEr is geen bericht van de dag.
|
||||
noNewMail=\u00a77Je hebt geen nieuwe berichten.
|
||||
noPendingRequest=Je hebt geen aanvragen.
|
||||
noPlacePermission=\u00a7cJe hebt geen toestemming om een blok naast die sign te plaatsen.
|
||||
noPowerTools=You have no power tools assigned.
|
||||
noRules = \u00a7cEr zijn nog geen regels gegeven.
|
||||
noWarpsDefined = Geen warps gedefinieerd
|
||||
none = geen
|
||||
notAllowedToQuestion = \u00a7cJe bent niet bevoegd om de vraag functie te gebruiken.
|
||||
notAllowedToShout = \u00a7cJe bent niet bevoegd om de roep functie te gebruiken.
|
||||
notEnoughMoney = Je hebt niet voldoende middelen.
|
||||
notRecommendedBukkit = De Bukkit versie is niet de aangeraden build voor Essentials.
|
||||
notSupportedYet = Nog niet ondersteund.
|
||||
now = nu
|
||||
numberRequired = Er moet daar een nummer, grapjas.
|
||||
onlyDayNight = /time ondersteund alleen day/night.
|
||||
onlyPlayers = Alleen in-game spelers kunnen {0} gebruiken.
|
||||
onlySunStorm = /weather only supports sun/storm.
|
||||
pTimeCurrent = \u00a7e{0}''s\u00a7f time is {1}.
|
||||
pTimeCurrentFixed = \u00a7e{0}''s\u00a7f time is fixed to {1}.
|
||||
pTimeNormal = \u00a7e{0}''s\u00a7f time is normal and matches the server.
|
||||
pTimeOthersPermission = \u00a7cYou are not authorized to set other players'' time.
|
||||
pTimePlayers = These players have their own time:
|
||||
pTimeReset = Player time has been reset for: \u00a7e{0}
|
||||
pTimeSet = Player time is set to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
pTimeSetFixed = Player time is fixed to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
parseError = Fout bij ontleding {0} op regel {1}
|
||||
pendingTeleportCancelled = \u00a7cAangevraagde teleportatie afgelast.
|
||||
permissionsError = Permissions/GroupManager ontbreekt; chat prefixes/suffixes worden uitgeschakeld.
|
||||
playerBanned = \u00a7cPlayer {0} banned {1} for {2}
|
||||
playerInJail = \u00a7cSpeler zit al in de gevangenis {0}.
|
||||
playerJailed = \u00a77Speler {0} is in de gevangenis gezet.
|
||||
playerJailedFor = \u00a77Speler {0} is in de gevangenis gezet voor {1}.
|
||||
playerKicked = \u00a7cPlayer {0} kicked {1} for {2}
|
||||
playerMuted = \u00a77Je kreeg het zwijgen opgelegd.
|
||||
playerMutedFor = \u00a77Je kreeg het zwijgen opgelegd voor {0}
|
||||
playerNeverOnServer = \u00a7cSpeler {0} is nooit op deze server geweest.
|
||||
playerNotFound = \u00a7cSpeler niet gevonden.
|
||||
playerUnmuted = \u00a77Speler mag weer praten
|
||||
pong = Pong!
|
||||
possibleWorlds = \u00a77Mogelijk zijn de werelden de nummer 0 tot en met {0}.
|
||||
powerToolAir = Command kan niet worden bevestigd aan lucht.
|
||||
powerToolAlreadySet = Command \u00a7c{0}\u00a7f is already assigned to {1}.
|
||||
powerToolAttach = \u00a7c{0}\u00a7f command assigned to {1}.
|
||||
powerToolClearAll = All powertool commands have been cleared.
|
||||
powerToolList = {1} has the following commands: \u00a7c{0}\u00a7f.
|
||||
powerToolListEmpty = {0} has no commands assigned.
|
||||
powerToolNoSuchCommandAssigned = Command \u00a7c{0}\u00a7f has not been assigned to {1}.
|
||||
powerToolRemove = Command \u00a7c{0}\u00a7f removed from {1}.
|
||||
powerToolRemoveAll = All commands removed from {0}.
|
||||
powerToolsEnabled=All of your power tools have been enabled.
|
||||
noRules=\u00a7cEr zijn nog geen regels gegeven.
|
||||
noWarpsDefined=Geen warps gedefinieerd
|
||||
none=geen
|
||||
notAllowedToQuestion=\u00a7cJe bent niet bevoegd om de vraag functie te gebruiken.
|
||||
notAllowedToShout=\u00a7cJe bent niet bevoegd om de roep functie te gebruiken.
|
||||
notEnoughMoney=Je hebt niet voldoende middelen.
|
||||
notRecommendedBukkit=De Bukkit versie is niet de aangeraden build voor Essentials.
|
||||
notSupportedYet=Nog niet ondersteund.
|
||||
now=nu
|
||||
numberRequired=Er moet daar een nummer, grapjas.
|
||||
onlyDayNight=/time ondersteund alleen day/night.
|
||||
onlyPlayers=Alleen in-game spelers kunnen {0} gebruiken.
|
||||
onlySunStorm=/weather only supports sun/storm.
|
||||
pTimeCurrent=\u00a7e{0}''s\u00a7f time is {1}.
|
||||
pTimeCurrentFixed=\u00a7e{0}''s\u00a7f time is fixed to {1}.
|
||||
pTimeNormal=\u00a7e{0}''s\u00a7f time is normal and matches the server.
|
||||
pTimeOthersPermission=\u00a7cYou are not authorized to set other players'' time.
|
||||
pTimePlayers=These players have their own time:
|
||||
pTimeReset=Player time has been reset for: \u00a7e{0}
|
||||
pTimeSet=Player time is set to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
pTimeSetFixed=Player time is fixed to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
parseError=Fout bij ontleding {0} op regel {1}
|
||||
pendingTeleportCancelled=\u00a7cAangevraagde teleportatie afgelast.
|
||||
permissionsError=Permissions/GroupManager ontbreekt; chat prefixes/suffixes worden uitgeschakeld.
|
||||
playerBanned=\u00a7cPlayer {0} banned {1} for {2}
|
||||
playerInJail=\u00a7cSpeler zit al in de gevangenis {0}.
|
||||
playerJailed=\u00a77Speler {0} is in de gevangenis gezet.
|
||||
playerJailedFor= \u00a77Speler {0} is in de gevangenis gezet voor {1}.
|
||||
playerKicked=\u00a7cPlayer {0} kicked {1} for {2}
|
||||
playerMuted=\u00a77Je kreeg het zwijgen opgelegd.
|
||||
playerMutedFor=\u00a77Je kreeg het zwijgen opgelegd voor {0}
|
||||
playerNeverOnServer=\u00a7cSpeler {0} is nooit op deze server geweest.
|
||||
playerNotFound=\u00a7cSpeler niet gevonden.
|
||||
playerUnmuted=\u00a77Speler mag weer praten
|
||||
pong=Pong!
|
||||
possibleWorlds=\u00a77Mogelijk zijn de werelden de nummer 0 tot en met {0}.
|
||||
powerToolAir=Command kan niet worden bevestigd aan lucht.
|
||||
powerToolAlreadySet=Command \u00a7c{0}\u00a7f is already assigned to {1}.
|
||||
powerToolAttach=\u00a7c{0}\u00a7f command assigned to {1}.
|
||||
powerToolClearAll=All powertool commands have been cleared.
|
||||
powerToolList={1} has the following commands: \u00a7c{0}\u00a7f.
|
||||
powerToolListEmpty={0} has no commands assigned.
|
||||
powerToolNoSuchCommandAssigned=Command \u00a7c{0}\u00a7f has not been assigned to {1}.
|
||||
powerToolRemove=Command \u00a7c{0}\u00a7f removed from {1}.
|
||||
powerToolRemoveAll=All commands removed from {0}.
|
||||
powerToolsDisabled=All of your power tools have been disabled.
|
||||
protectionOwner = \u00a76[EssentialsProtect] Beschermingeigenaar: {0}
|
||||
questionFormat = \u00a77[Vraag]\u00a7f {0}
|
||||
reloadAllPlugins = \u00a77Alle plugins zijn herladen.
|
||||
repair = You have successfully repaired your: \u00a7e{0}.
|
||||
repairAlreadyFixed = \u00a77This item does not need repairing.
|
||||
repairInvalidType = \u00a7cThis item cannot be repaired.
|
||||
repairNone = There were no items that needing repairing.
|
||||
requestAccepted = \u00a77Teleporteer aanvraag geaccepteerd.
|
||||
requestAcceptedFrom = \u00a77{0} accepted your teleport request.
|
||||
requestDenied = \u00a77Teleporteer aanvraag geweigerd.
|
||||
requestDeniedFrom = \u00a77{0} denied your teleport request.
|
||||
requestSent = \u00a77Aanvraag verstuurd naar {0}\u00a77.
|
||||
returnPlayerToJailError = Fout opgetreden bij terugzetten van speler in gevangenis.
|
||||
second = seconde
|
||||
seconds = seconde
|
||||
seenOffline = Speler {0} is offline vanaf {1}
|
||||
seenOnline = Speler {0} is online vanaf {1}
|
||||
serverFull = Server is vol
|
||||
setSpawner = Changed spawner type to {0}
|
||||
sheepMalformedColor = Misvoormde kleur.
|
||||
shoutFormat = \u00a77[Shout]\u00a7f {0}
|
||||
signFormatFail = \u00a74[{0}]
|
||||
signFormatSuccess = \u00a71[{0}]
|
||||
signFormatTemplate = [{0}]
|
||||
signProtectInvalidLocation = \u00a74You are not allowed to create sign here.
|
||||
similarWarpExist = Er bestaat al een warp met dezelfde naam.
|
||||
slimeMalformedSize = Misvoormde grootte.
|
||||
soloMob = Die mob is liever in zijn eentje
|
||||
spawnSet = \u00a77Spawn locatie voor de groep {0} ingesteld.
|
||||
spawned = gespawned
|
||||
suicideMessage = \u00a77Vaarwel vreedzame wereld...
|
||||
suicideSuccess = \u00a77{0} pleegde zelfmoord
|
||||
takenFromAccount = \u00a7c{0} is van je bank rekening afgehaald.
|
||||
takenFromOthersAccount = \u00a7c{0} is overgenomen uit {1} account.
|
||||
teleportAAll = \u00a77Teleporting request sent to all players...
|
||||
teleportAll = \u00a77Bezig met teleporteren van alle spelers...
|
||||
teleportAtoB = \u00a77{0}\u00a77 is naar {1}\u00a77 geteleporteerd.
|
||||
teleportDisabled = {0} heeft teleporteren uit gezet.
|
||||
teleportHereRequest = \u00a7c{0}\u00a7c Heeft gevraagd of hij/zij naar jou mag teleporteren.
|
||||
teleportNewPlayerError = Fout bij het teleporteren van nieuwe speler.
|
||||
teleportRequest = \u00a7c{0}\u00a7c vraagt of hij jou kan teleporteren.
|
||||
teleportTop = \u00a77Bezig met teleporteren naar de top.
|
||||
teleportationCommencing = \u00a77Aan het beginnen met teleporteren...
|
||||
teleportationDisabled = \u00a77Teleportatie uitgeschakeld.
|
||||
teleportationEnabled = \u00a77Teleportatie ingeschakeld.
|
||||
teleporting = \u00a77Bezig met teleporteren...
|
||||
teleportingPortal = \u00a77Bezig met teleporteren via de portal.
|
||||
tempBanned = Tijdelijk geband voor {0}
|
||||
tempbanExempt = \u00a77Je mag deze speler niet een tempban geven
|
||||
thunder = Je {0} onweert de wereld
|
||||
thunderDuration = Je {0} onweert de wereld voor {1} seconde.
|
||||
timeBeforeHeal = Afkoeltijd tot de volgende heal: {0}
|
||||
timeBeforeTeleport = Afkoeltijd tot de volgende teleport: {0}
|
||||
timeFormat = \u00a73{0}\u00a7f or \u00a73{1}\u00a7f or \u00a73{2}\u00a7f
|
||||
timePattern = (?:([0-9]+)\\s*[yj][a-z]*[,\\s]*)?(?:([0-9]+)\\s*m[oa][a-z]*[,\\s]*)?(?:([0-9]+)\\s*w[a-z]*[,\\s]*)?(?:([0-9]+)\\s*d[a-z]*[,\\s]*)?(?:([0-9]+)\\s*[hu][a-z]*[,\\s]*)?(?:([0-9]+)\\s*m[a-z]*[,\\s]*)?(?:([0-9]+)\\s*(?:s[a-z]*)?)?
|
||||
timeSet = Tijd ingesteld in alle werelden.
|
||||
timeSetPermission = \u00a7cYou are not authorized to set the time.
|
||||
timeWorldCurrent = The current time in {0} is \u00a73{1}
|
||||
timeWorldSet = The time was set to {0} in: \u00a7c{1}
|
||||
tradeCompleted = \u00a77Ruil verricht.
|
||||
tradeSignEmpty = Het handelsbordje heeft een te kleine voorraad.
|
||||
tradeSignEmptyOwner = There is nothing to collect from this trade sign.
|
||||
treeFailure = \u00a7cFout bij het genereren van boom. Pobeer het opnieuw op gras of dirt.
|
||||
treeSpawned = \u00a77Boom gespawned.
|
||||
typeTpaccept = \u00a77Om te teleporten, type \u00a7c/tpaccept\u00a77.
|
||||
typeTpdeny = \u00a77Om te weigeren, type \u00a7c/tpdeny\u00a77.
|
||||
typeWorldName = \u00a77Je kan ook de exacte naam van de wereld typen.
|
||||
unableToSpawnMob = De mob kan niet gespawned worden.
|
||||
unbannedIP = IP adres ontbannen.
|
||||
unbannedPlayer = Speler ontbannen.
|
||||
unignorePlayer = Je negeert {0} niet meer.
|
||||
unknownItemId = Onbekend voorwerp id: {0}
|
||||
unknownItemInList = Onbekend voorwerp {0} in {1} lijst.
|
||||
unknownItemName = Onbekende voorwerp naam: {0}
|
||||
unlimitedItemPermission = \u00a7cOnbevoegd om oneindig {0} te hebben.
|
||||
unlimitedItems = Oneindige voorwerpen:
|
||||
unmutedPlayer = Speler {0} mag weer spreken.
|
||||
upgradingFilesError = Fout tijdens het upgraden van de bestanden
|
||||
userCreatedPortal = {0} gebruikte een portal en maakte een uitgangs portal.
|
||||
userDoesNotExist = Speler {0} bestaat niet.
|
||||
userIsAway = {0} is nu AFK
|
||||
userIsNotAway = {0} is niet meer AFK
|
||||
userJailed = \u00a77Je bent in de gevangenis gezet.
|
||||
userUsedPortal = {0} gebruikte een bestaande uitgangs portal.
|
||||
userdataMoveBackError = Fout bij het verplaasten van userdata/{0}.tmp naar userdata/{1}
|
||||
userdataMoveError = Fout bij het verplaasten van userdata/{0} naar userdata/{1}.tmp
|
||||
usingPortal = \u00a77Bezig met via de portal naar de uitgangs portal.
|
||||
usingTempFolderForTesting = Tijdelijke map om te testen:
|
||||
versionMismatch = Verkeerde versie! Update {0} naar dezelfde versie.
|
||||
versionMismatchAll = Verkeerde versie! Update alle Essentials jars naar dezelfde versie.
|
||||
voiceSilenced = \u00a77Je kan niet meer praten
|
||||
warpDeleteError = Fout bij het verwijderen van het warp bestand.
|
||||
warpListPermission = \u00a7cJe hebt geen toegang om die warp te maken.
|
||||
warpNotExist = Die warp bestaat niet.
|
||||
warpSet = \u00a77Warp {0} ingesteld.
|
||||
warpUsePermission = \u00a7cOnbevoegd om die warp te gebruiken.
|
||||
warpingTo = \u00a77Aan het warpen naar {0}.
|
||||
warpsCount = \u00a77There are {0} warps. Showing page {1} of {2}.
|
||||
weatherStorm = \u00a77Je hebt het weer naar storm gezet in de {0}
|
||||
weatherStormFor = \u00a77Je hebt het weer in de {0} naar storm gezet voor {1} seconde
|
||||
weatherSun = \u00a77Je hebt het weer naar zon gezet in de {0}
|
||||
weatherSunFor = \u00a77Je hebt het weer in de {0} naar zon gezet voor {1} seconde
|
||||
whoisGeoLocation = \u00a79 - Locatie: {0}
|
||||
whoisHealth = \u00a79 - Levens: {0}/20
|
||||
whoisIPAddress = \u00a79 - IP Adres: {0}
|
||||
whoisIs = {0} is {1}
|
||||
whoisLocation = \u00a79 - Locatie: ({0}, {1}, {2}, {3})
|
||||
whoisMoney = \u00a79 - Geld: {0}
|
||||
whoisStatusAvailable = \u00a79 - Status: Beschikbaar
|
||||
whoisStatusAway = \u00a79 - Status: \u00a7cWeg\u00a7f
|
||||
worth = \u00a77Stapel {0} met waarde \u00a7c{1}\u00a77 ({2} voorwerp(en) voor {3} per stuk)
|
||||
worthMeta = \u00a77Stapel {0} met een metadata van {1} met waarde \u00a7c{2}\u00a77 ({3} voorwerp(en) voor {4} per stuk)
|
||||
worthSet = Waarde ingesteld
|
||||
year = jaar
|
||||
years = jaren
|
||||
youAreHealed = \u00a77Je bent genezen.
|
||||
youHaveNewMail = \u00a7cJe hebt {0} berichten!\u00a7f Type \u00a77/mail read\u00a7f om je berichten te bekijken.
|
||||
|
||||
|
||||
powerToolsEnabled=All of your power tools have been enabled.
|
||||
protectionOwner=\u00a76[EssentialsProtect] Beschermingeigenaar: {0}
|
||||
questionFormat=\u00a77[Vraag]\u00a7f {0}
|
||||
reloadAllPlugins=\u00a77Alle plugins zijn herladen.
|
||||
repair=You have successfully repaired your: \u00a7e{0}.
|
||||
repairAlreadyFixed=\u00a77This item does not need repairing.
|
||||
repairInvalidType=\u00a7cThis item cannot be repaired.
|
||||
repairNone=There were no items that needing repairing.
|
||||
requestAccepted=\u00a77Teleporteer aanvraag geaccepteerd.
|
||||
requestAcceptedFrom=\u00a77{0} accepted your teleport request.
|
||||
requestDenied=\u00a77Teleporteer aanvraag geweigerd.
|
||||
requestDeniedFrom=\u00a77{0} denied your teleport request.
|
||||
requestSent=\u00a77Aanvraag verstuurd naar {0}\u00a77.
|
||||
returnPlayerToJailError=Fout opgetreden bij terugzetten van speler in gevangenis.
|
||||
second=seconde
|
||||
seconds=seconde
|
||||
seenOffline=Speler {0} is offline vanaf {1}
|
||||
seenOnline=Speler {0} is online vanaf {1}
|
||||
serverFull=Server is vol
|
||||
setSpawner=Changed spawner type to {0}
|
||||
sheepMalformedColor=Misvoormde kleur.
|
||||
shoutFormat=\u00a77[Shout]\u00a7f {0}
|
||||
signFormatFail=\u00a74[{0}]
|
||||
signFormatSuccess=\u00a71[{0}]
|
||||
signFormatTemplate=[{0}]
|
||||
signProtectInvalidLocation=\u00a74You are not allowed to create sign here.
|
||||
similarWarpExist=Er bestaat al een warp met dezelfde naam.
|
||||
slimeMalformedSize=Misvoormde grootte.
|
||||
soloMob=Die mob is liever in zijn eentje
|
||||
spawnSet=\u00a77Spawn locatie voor de groep {0} ingesteld.
|
||||
spawned=gespawned
|
||||
suicideMessage=\u00a77Vaarwel vreedzame wereld...
|
||||
suicideSuccess= \u00a77{0} pleegde zelfmoord
|
||||
survival=survival
|
||||
takenFromAccount=\u00a7c{0} is van je bank rekening afgehaald.
|
||||
takenFromOthersAccount=\u00a7c{0} is overgenomen uit {1} account.
|
||||
teleportAAll=\u00a77Teleporting request sent to all players...
|
||||
teleportAll=\u00a77Bezig met teleporteren van alle spelers...
|
||||
teleportAtoB=\u00a77{0}\u00a77 is naar {1}\u00a77 geteleporteerd.
|
||||
teleportDisabled={0} heeft teleporteren uit gezet.
|
||||
teleportHereRequest=\u00a7c{0}\u00a7c Heeft gevraagd of hij/zij naar jou mag teleporteren.
|
||||
teleportNewPlayerError=Fout bij het teleporteren van nieuwe speler.
|
||||
teleportRequest=\u00a7c{0}\u00a7c vraagt of hij jou kan teleporteren.
|
||||
teleportTop=\u00a77Bezig met teleporteren naar de top.
|
||||
teleportationCommencing=\u00a77Aan het beginnen met teleporteren...
|
||||
teleportationDisabled=\u00a77Teleportatie uitgeschakeld.
|
||||
teleportationEnabled=\u00a77Teleportatie ingeschakeld.
|
||||
teleporting=\u00a77Bezig met teleporteren...
|
||||
teleportingPortal=\u00a77Bezig met teleporteren via de portal.
|
||||
tempBanned=Tijdelijk geband voor {0}
|
||||
tempbanExempt=\u00a77Je mag deze speler niet een tempban geven
|
||||
thunder= Je {0} onweert de wereld
|
||||
thunderDuration=Je {0} onweert de wereld voor {1} seconde.
|
||||
timeBeforeHeal=Afkoeltijd tot de volgende heal: {0}
|
||||
timeBeforeTeleport=Afkoeltijd tot de volgende teleport: {0}
|
||||
timeFormat=\u00a73{0}\u00a7f or \u00a73{1}\u00a7f or \u00a73{2}\u00a7f
|
||||
timePattern=(?:([0-9]+)\\s*[yj][a-z]*[,\\s]*)?(?:([0-9]+)\\s*m[oa][a-z]*[,\\s]*)?(?:([0-9]+)\\s*w[a-z]*[,\\s]*)?(?:([0-9]+)\\s*d[a-z]*[,\\s]*)?(?:([0-9]+)\\s*[hu][a-z]*[,\\s]*)?(?:([0-9]+)\\s*m[a-z]*[,\\s]*)?(?:([0-9]+)\\s*(?:s[a-z]*)?)?
|
||||
timeSet=Tijd ingesteld in alle werelden.
|
||||
timeSetPermission=\u00a7cYou are not authorized to set the time.
|
||||
timeWorldCurrent=The current time in {0} is \u00a73{1}
|
||||
timeWorldSet=The time was set to {0} in: \u00a7c{1}
|
||||
tradeCompleted=\u00a77Ruil verricht.
|
||||
tradeSignEmpty=Het handelsbordje heeft een te kleine voorraad.
|
||||
tradeSignEmptyOwner=There is nothing to collect from this trade sign.
|
||||
treeFailure=\u00a7cFout bij het genereren van boom. Pobeer het opnieuw op gras of dirt.
|
||||
treeSpawned=\u00a77Boom gespawned.
|
||||
true=true
|
||||
typeTpaccept=\u00a77Om te teleporten, type \u00a7c/tpaccept\u00a77.
|
||||
typeTpdeny=\u00a77Om te weigeren, type \u00a7c/tpdeny\u00a77.
|
||||
typeWorldName=\u00a77Je kan ook de exacte naam van de wereld typen.
|
||||
unableToSpawnMob=De mob kan niet gespawned worden.
|
||||
unbannedIP=IP adres ontbannen.
|
||||
unbannedPlayer=Speler ontbannen.
|
||||
unignorePlayer=Je negeert {0} niet meer.
|
||||
unknownItemId=Onbekend voorwerp id: {0}
|
||||
unknownItemInList=Onbekend voorwerp {0} in {1} lijst.
|
||||
unknownItemName=Onbekende voorwerp naam: {0}
|
||||
unlimitedItemPermission=\u00a7cOnbevoegd om oneindig {0} te hebben.
|
||||
unlimitedItems=Oneindige voorwerpen:
|
||||
unmutedPlayer=Speler {0} mag weer spreken.
|
||||
upgradingFilesError=Fout tijdens het upgraden van de bestanden
|
||||
userDoesNotExist=Speler {0} bestaat niet.
|
||||
userIsAway={0} is nu AFK
|
||||
userIsNotAway={0} is niet meer AFK
|
||||
userJailed=\u00a77Je bent in de gevangenis gezet.
|
||||
userUsedPortal={0} gebruikte een bestaande uitgangs portal.
|
||||
userdataMoveBackError=Fout bij het verplaasten van userdata/{0}.tmp naar userdata/{1}
|
||||
userdataMoveError=Fout bij het verplaasten van userdata/{0} naar userdata/{1}.tmp
|
||||
usingTempFolderForTesting=Tijdelijke map om te testen:
|
||||
versionMismatch=Verkeerde versie! Update {0} naar dezelfde versie.
|
||||
versionMismatchAll=Verkeerde versie! Update alle Essentials jars naar dezelfde versie.
|
||||
voiceSilenced=\u00a77Je kan niet meer praten
|
||||
warpDeleteError=Fout bij het verwijderen van het warp bestand.
|
||||
warpListPermission=\u00a7cJe hebt geen toegang om die warp te maken.
|
||||
warpNotExist=Die warp bestaat niet.
|
||||
warpSet=\u00a77Warp {0} ingesteld.
|
||||
warpUsePermission=\u00a7cOnbevoegd om die warp te gebruiken.
|
||||
warpingTo=\u00a77Aan het warpen naar {0}.
|
||||
warps=Warps: {0}
|
||||
warpsCount=\u00a77There are {0} warps. Showing page {1} of {2}.
|
||||
weatherStorm=\u00a77Je hebt het weer naar storm gezet in de {0}
|
||||
weatherStormFor=\u00a77Je hebt het weer in de {0} naar storm gezet voor {1} seconde
|
||||
weatherSun=\u00a77Je hebt het weer naar zon gezet in de {0}
|
||||
weatherSunFor=\u00a77Je hebt het weer in de {0} naar zon gezet voor {1} seconde
|
||||
whoisGamemode=\u00a79 - Gamemode: {0}
|
||||
whoisGeoLocation=\u00a79 - Locatie: {0}
|
||||
whoisGod=\u00a79 - God mode: {0}
|
||||
whoisHealth=\u00a79 - Levens: {0}/20
|
||||
whoisIPAddress=\u00a79 - IP Adres: {0}
|
||||
whoisIs={0} is {1}
|
||||
whoisLocation=\u00a79 - Locatie: ({0}, {1}, {2}, {3})
|
||||
whoisMoney=\u00a79 - Geld: {0}
|
||||
whoisOP=\u00a79 - OP: {0}
|
||||
whoisStatusAvailable=\u00a79 - Status: Beschikbaar
|
||||
whoisStatusAway=\u00a79 - Status: \u00a7cWeg\u00a7f
|
||||
worth=\u00a77Stapel {0} met waarde \u00a7c{1}\u00a77 ({2} voorwerp(en) voor {3} per stuk)
|
||||
worthMeta=\u00a77Stapel {0} met een metadata van {1} met waarde \u00a7c{2}\u00a77 ({3} voorwerp(en) voor {4} per stuk)
|
||||
worthSet=Waarde ingesteld
|
||||
year=jaar
|
||||
years=jaren
|
||||
youAreHealed=\u00a77Je bent genezen.
|
||||
youHaveNewMail=\u00a7cJe hebt {0} berichten!\u00a7f Type \u00a77/mail read\u00a7f om je berichten te bekijken.
|
||||
|
@@ -18,14 +18,14 @@ commands:
|
||||
back:
|
||||
description: Teleports you to your location prior to tp/spawn/warp.
|
||||
usage: /<command>
|
||||
aliases: [eback]
|
||||
aliases: [eback,return,ereturn]
|
||||
backup:
|
||||
description: Runs the backup if configured.
|
||||
usage: /<command>
|
||||
aliases: [ebackup]
|
||||
balance:
|
||||
description: States the current balance of a player.
|
||||
usage: /<command> <player>
|
||||
usage: /<command> [player]
|
||||
aliases: [bal,emoney,ebalance,ebal]
|
||||
balancetop:
|
||||
description: Gets the top x balance values. (max 10)
|
||||
@@ -33,23 +33,23 @@ commands:
|
||||
aliases: [baltop,ebaltop,ebalancetop]
|
||||
ban:
|
||||
description: Bans a player.
|
||||
usage: /<command> [player] <reason>
|
||||
usage: /<command> <player> [reason]
|
||||
aliases: [eban]
|
||||
banip:
|
||||
description: Bans an IP address.
|
||||
usage: /<command> [address]
|
||||
usage: /<command> <address>
|
||||
aliases: [ebanip]
|
||||
broadcast:
|
||||
description: Broadcasts a message to the entire server.
|
||||
usage: /<command> [msg]
|
||||
usage: /<command> <msg>
|
||||
aliases: [ebroadcast,bcast,ebcast]
|
||||
bigtree:
|
||||
description: Spawn a big tree where you are looking.
|
||||
usage: /<command> [tree|redwood]
|
||||
usage: /<command> <tree|redwood>
|
||||
aliases: [ebigtree]
|
||||
burn:
|
||||
description: Set a player on fire.
|
||||
usage: /<command> [player] [seconds]
|
||||
usage: /<command> <player> <seconds>
|
||||
aliases: [eburn]
|
||||
clearinventory:
|
||||
description: Clear all items in your inventory.
|
||||
@@ -65,11 +65,11 @@ commands:
|
||||
aliases: [edelhome,remhome,rmhome,eremhome,ermhome]
|
||||
deljail:
|
||||
description: Removes a jail
|
||||
usage: /<command> [jailname]
|
||||
usage: /<command> <jailname>
|
||||
aliases: [edeljail]
|
||||
delwarp:
|
||||
description: Deletes the specified warp.
|
||||
usage: /<command> [warp]
|
||||
usage: /<command> <warp>
|
||||
aliases: [edelwarp,remwarp,rmwarp,eremwarp,ermwarp]
|
||||
depth:
|
||||
description: States current depth, relative to sea level.
|
||||
@@ -77,38 +77,42 @@ commands:
|
||||
aliases: [edepth]
|
||||
eco:
|
||||
description: Manages the server economy.
|
||||
usage: /<command> [give|take|reset] [player] [amount]
|
||||
aliases: [economy,emoney]
|
||||
usage: /<command> <give|take|reset> <player> <amount>
|
||||
aliases: [economy,eeco,eeconomy]
|
||||
essentials:
|
||||
description: Reloads essentials.
|
||||
usage: /<command>
|
||||
ext:
|
||||
description: Extinguish players.
|
||||
usage: /<command> <player>
|
||||
usage: /<command> [player]
|
||||
aliases: [extinguish,eext,eextinguish]
|
||||
fireball:
|
||||
description: Throw a fireball.
|
||||
usage: /<command>
|
||||
aliases: [efireball]
|
||||
gamemode:
|
||||
description: Change player gamemode.
|
||||
usage: /<command> [player]
|
||||
aliases: [gm,creative,creativemode,egamemode,ecreative,ecreativemode,egm]
|
||||
getpos:
|
||||
description: Get your current coordinates.
|
||||
usage: /<command>
|
||||
aliases: [coords,egetpos]
|
||||
aliases: [coords,egetpos,whereami,ewhereami]
|
||||
gc:
|
||||
description: Reports garbage collection info; useful to developers.
|
||||
usage: /<command>
|
||||
aliases: [mem,memory,egc,emem,ememory]
|
||||
give:
|
||||
description: Give a player an item.
|
||||
usage: /<command> [player] [item|numeric] <amount>
|
||||
usage: /<command> <player> <item|numeric> [amount]
|
||||
aliases: [egive]
|
||||
god:
|
||||
description: Enables your godly powers.
|
||||
usage: /<command>
|
||||
aliases: [tgm,godmode,egod,egodmode,etgm]
|
||||
usage: /<command> [player]
|
||||
aliases: [tgm,godmode,egod,etgm,egodmode]
|
||||
heal:
|
||||
description: Heals you or the given player.
|
||||
usage: /<command> <player>
|
||||
usage: /<command> [player]
|
||||
aliases: [eheal]
|
||||
help:
|
||||
description: Views a list of available commands.
|
||||
@@ -116,7 +120,7 @@ commands:
|
||||
aliases: [ehelp]
|
||||
helpop:
|
||||
description: Request help from online operators.
|
||||
usage: /<command> [message]
|
||||
usage: /<command> <message>
|
||||
aliases: [ehelpop]
|
||||
home:
|
||||
description: Teleport to your home.
|
||||
@@ -136,7 +140,7 @@ commands:
|
||||
aliases: [einvsee]
|
||||
item:
|
||||
description: Spawn an item.
|
||||
usage: /<command> [item|numeric] <amount>
|
||||
usage: /<command> <item|numeric> [amount]
|
||||
aliases: [i,eitem]
|
||||
jails:
|
||||
description: List all jails.
|
||||
@@ -148,15 +152,15 @@ commands:
|
||||
aliases: [j,ejump]
|
||||
kick:
|
||||
description: Kicks a specified player with a reason.
|
||||
usage: /<command> <player> <reason>
|
||||
usage: /<command> <player> [reason]
|
||||
aliases: [ekick]
|
||||
kickall:
|
||||
description: Kicks all players off the server except the issuer.
|
||||
usage: /<command> <reason>
|
||||
usage: /<command> [reason]
|
||||
aliases: [ekickall]
|
||||
kit:
|
||||
description: Obtains the specified kit or views all available kits.
|
||||
usage: /<command> <kit>
|
||||
usage: /<command> [kit]
|
||||
aliases: [ekit,kits]
|
||||
kill:
|
||||
description: Kills specified player.
|
||||
@@ -169,15 +173,15 @@ commands:
|
||||
lightning:
|
||||
description: The power of Thor. Strike at cursor or player.
|
||||
usage: /<command> [player]
|
||||
aliases: [strike,smite,elightning,estrike,esmite]
|
||||
aliases: [strike,smite,thor,shock,elightning,estrike,esmite,ethor,eshock]
|
||||
mail:
|
||||
description: Manages inter-player, intra-server mail.
|
||||
usage: /<command> [read|clear|send [to] [message]]
|
||||
aliases: [email]
|
||||
me:
|
||||
description: Describes an action in the context of the player.
|
||||
usage: /<command> [description]
|
||||
aliases: [eme]
|
||||
usage: /<command> <description>
|
||||
aliases: [action,describe,eme,eaction,edescribe]
|
||||
motd:
|
||||
description: Views the Message Of The Day.
|
||||
usage: /<command>
|
||||
@@ -188,19 +192,19 @@ commands:
|
||||
aliases: [m,t,emsg,tell,etell,whisper,ewhisper]
|
||||
mute:
|
||||
description: Mutes or unmutes a player.
|
||||
usage: /<command> [player] <datediff>
|
||||
usage: /<command> <player> [datediff]
|
||||
aliases: [emute]
|
||||
nick:
|
||||
description: Change your nickname or that of another player.
|
||||
usage: /<command> <player> [nickname|off]
|
||||
usage: /<command> [player] <nickname|off>
|
||||
aliases: [enick]
|
||||
nuke:
|
||||
description: May death rain upon them.
|
||||
usage: /<command> <player>
|
||||
usage: /<command> [player]
|
||||
aliases: [enuke]
|
||||
pay:
|
||||
description: Pays another player from your balance
|
||||
usage: /<command> [player] [amount]
|
||||
usage: /<command> <player> <amount>
|
||||
aliases: [epay]
|
||||
ping:
|
||||
description: Pong!
|
||||
@@ -208,31 +212,27 @@ commands:
|
||||
aliases: [pong,eping,epong]
|
||||
powertool:
|
||||
description: Assigns a command to the item in hand, {player} will be replaced by the name of the player that you click.
|
||||
usage: /<command> [l:|a:|r:][command] <arguments>
|
||||
usage: /<command> [l:|a:|r:|c:][command] [arguments]
|
||||
aliases: [pt,epowertool,ept]
|
||||
powertooltoggle:
|
||||
description: Enables or disables all current powertools
|
||||
usage: /<command>
|
||||
usage: /<command>
|
||||
aliases: [ptt,epowertooltoggle,eptt]
|
||||
ptime:
|
||||
description: Adjust player's client time. Add @ prefix to fix.
|
||||
usage: /<command> [list|reset|day|night|dawn|17:30|4pm|4000ticks] <player|*>
|
||||
usage: /<command> [list|reset|day|night|dawn|17:30|4pm|4000ticks] [player|*]
|
||||
aliases: [playertime, eptime, eplayertime]
|
||||
r:
|
||||
description: Quickly reply to the last player to message you.
|
||||
usage: /<command> [message]
|
||||
usage: /<command> <message>
|
||||
aliases: [er,reply,ereply]
|
||||
realname:
|
||||
description: Displays the username of a user based on nickname.
|
||||
usage: /<command> [nickname]
|
||||
usage: /<command> <nickname>
|
||||
aliases: [erealname]
|
||||
reloadall:
|
||||
description: Reloads all plugins.
|
||||
usage: /<command>
|
||||
aliases: [rel,ereloadall,ereload,erel]
|
||||
repair:
|
||||
description: Repairs the durability of all or one item.
|
||||
usage: /<command> [hand|all]
|
||||
usage: /<command> <hand|all>
|
||||
aliases: [fix,erepair,efix]
|
||||
rules:
|
||||
description: Views the server rules.
|
||||
@@ -240,11 +240,11 @@ commands:
|
||||
aliases: [erules]
|
||||
seen:
|
||||
description: Shows the last logout time of a player
|
||||
usage: /<command> [playername]
|
||||
usage: /<command> <playername>
|
||||
aliases: [eseen]
|
||||
sell:
|
||||
description: Sells the item currently in your hand.
|
||||
usage: /<command> [itemname|id|hand|inventory|blocks] [-][amount]
|
||||
usage: /<command> <itemname|id|hand|inventory|blocks> [-][amount]
|
||||
aliases: [esell]
|
||||
sethome:
|
||||
description: Set your home to your current location.
|
||||
@@ -252,15 +252,15 @@ commands:
|
||||
aliases: [esethome]
|
||||
setjail:
|
||||
description: Creates a jail where you specified named [jailname]
|
||||
usage: /<command> [jailname]
|
||||
usage: /<command> <jailname>
|
||||
aliases: [esetjail]
|
||||
setwarp:
|
||||
description: Creates a new warp.
|
||||
usage: /<command> [warp]
|
||||
usage: /<command> <warp>
|
||||
aliases: [createwarp,esetwarp]
|
||||
setworth:
|
||||
description: Set the sell value of an item.
|
||||
usage: /<command> [itemname|id] [price]
|
||||
usage: /<command> <itemname|id> <price>
|
||||
aliases: [esetworth]
|
||||
socialspy:
|
||||
description: Toggles if you can see msg/mail commands in chat.
|
||||
@@ -268,11 +268,11 @@ commands:
|
||||
aliases: [esocialspy]
|
||||
spawner:
|
||||
description: Change the mob type of a spawner
|
||||
usage: /<command> [mob]
|
||||
usage: /<command> <mob>
|
||||
aliases: [espawner]
|
||||
spawnmob:
|
||||
description: Spawns a mob.
|
||||
usage: /<command> [mob]<:data><,mount<:data>> <amount>
|
||||
usage: /<command> <mob>[:data][,<mount>[:data]] [amount]
|
||||
aliases: [espawnmob]
|
||||
suicide:
|
||||
description: Causes you to perish.
|
||||
@@ -280,19 +280,19 @@ commands:
|
||||
aliases: [esuicide]
|
||||
tempban:
|
||||
description: Temporary ban a user.
|
||||
usage: /<command> [playername] [datediff]
|
||||
usage: /<command> <playername> <datediff>
|
||||
aliases: [etempban]
|
||||
thunder:
|
||||
description: Enable/disable thunder.
|
||||
usage: /<command> <true/false> [duration]
|
||||
aliases: [ethunder]
|
||||
time:
|
||||
description: Change the world time. Defaults to current world.
|
||||
description: Display/Change the world time. Defaults to current world.
|
||||
usage: /<command> [day|night|dawn|17:30|4pm|4000ticks] [worldname|all]
|
||||
aliases: [etime, day, night]
|
||||
togglejail:
|
||||
description: Prevents a player from interacting with the world and teleports him/her to the the jail specified
|
||||
usage: /<command> [player] [jailname] <datediff>
|
||||
usage: /<command> <player> <jailname> [datediff]
|
||||
aliases: [tjail,unjail,eunjail,etogglejail]
|
||||
top:
|
||||
description: Teleport to the highest block at your current position.
|
||||
@@ -300,63 +300,71 @@ commands:
|
||||
aliases: [etop]
|
||||
tp:
|
||||
description: Teleport to a player.
|
||||
usage: /<command> [player]
|
||||
usage: /<command> <player> [otherplayer]
|
||||
aliases: [etp]
|
||||
tpa:
|
||||
description: Request to teleport to the specified player.
|
||||
usage: /<command> <player>
|
||||
aliases: [call,etpa,ecal]
|
||||
tpaall:
|
||||
description: Requests all players online to teleport to you.
|
||||
usage: /<command> <player>
|
||||
aliases: [etpaall]
|
||||
tpaccept:
|
||||
description: Accepts a teleport request.
|
||||
usage: /<command>
|
||||
aliases: [tpyes]
|
||||
aliases: [tpyes,etpaccept,etpyes]
|
||||
tpahere:
|
||||
description: Request that the specified player teleport to you.
|
||||
usage: /<command> <player>
|
||||
aliases: [etpahere]
|
||||
tpall:
|
||||
description: Teleport all online players to another player.
|
||||
usage: /<command> <player>
|
||||
aliases: [etpall]
|
||||
tpdeny:
|
||||
description: Reject a teleport request.
|
||||
usage: /<command>
|
||||
aliases: [tpno]
|
||||
aliases: [tpno,etpdeny,etpno]
|
||||
tphere:
|
||||
description: Teleport a player to you.
|
||||
usage: /<command> [player]
|
||||
aliases: [s]
|
||||
usage: /<command> <player>
|
||||
aliases: [s,etphere]
|
||||
tpo:
|
||||
description: Teleport override for tptoggle.
|
||||
usage: /<command> <player>
|
||||
aliases: [etpo]
|
||||
tpohere:
|
||||
description: Teleport here override for tptoggle.
|
||||
usage: /<command> <player>
|
||||
aliases: [etpohere]
|
||||
tppos:
|
||||
description: Teleport to coordinates.
|
||||
usage: /<command> <x> <y> <z> [yaw] [pitch]
|
||||
aliases: [etppos]
|
||||
tptoggle:
|
||||
description: Blocks all forms of teleportation.
|
||||
usage: /<command>
|
||||
aliases: [etptoggle]
|
||||
tree:
|
||||
description: Spawn a tree where you are looking.
|
||||
usage: /<command> [tree|birch|redwood]
|
||||
usage: /<command> <tree|birch|redwood>
|
||||
aliases: [etree]
|
||||
unban:
|
||||
description: Unbans the specified player.
|
||||
usage: /<command> [player]
|
||||
usage: /<command> <player>
|
||||
aliases: [pardon,eunban]
|
||||
unbanip:
|
||||
description: Unbans the specified IP address.
|
||||
usage: /<command> [address]
|
||||
usage: /<command> <address>
|
||||
aliases: [eunbanip,pardonip]
|
||||
unlimited:
|
||||
description: Allows the unlimited placing of items.
|
||||
usage: /<command> [list|item] <player>
|
||||
usage: /<command> <list|item|clear> [player]
|
||||
aliases: [eunlimited,ul,unl,eul,eunl]
|
||||
warp:
|
||||
description: List all warps or warp to the specified location.
|
||||
usage: /<command> [pagenumber|warp] <player>
|
||||
usage: /<command> <pagenumber|warp> [player]
|
||||
aliases: [ewarp,warps]
|
||||
weather:
|
||||
description: Setting the weather.
|
||||
@@ -364,7 +372,7 @@ commands:
|
||||
aliases: [sky,sun,storm,eweather,esky,esun,estorm]
|
||||
whois:
|
||||
description: Determine the username behind a nickname.
|
||||
usage: /<command> [nickname]
|
||||
usage: /<command> <nickname>
|
||||
aliases: [ewhois]
|
||||
world:
|
||||
description: Switch between worlds.
|
||||
@@ -372,5 +380,5 @@ commands:
|
||||
aliases: [eworld]
|
||||
worth:
|
||||
description: Calculates the worth of items in hand or as specified.
|
||||
usage: /<command> <item> <amount>
|
||||
usage: /<command> [item] [amount]
|
||||
aliases: [eworth]
|
@@ -24,8 +24,12 @@ public class EssentialsChat extends JavaPlugin
|
||||
|
||||
chatListener = new HashMap<String, IEssentialsChatListener>();
|
||||
|
||||
final EssentialsChatPlayerListener playerListener = new EssentialsChatPlayerListener(getServer(), ess, chatListener);
|
||||
pluginManager.registerEvent(Type.PLAYER_CHAT, playerListener, Priority.High, this);
|
||||
final EssentialsChatPlayerListenerLowest playerListenerLowest = new EssentialsChatPlayerListenerLowest(getServer(), ess, chatListener);
|
||||
final EssentialsChatPlayerListenerNormal playerListenerNormal = new EssentialsChatPlayerListenerNormal(getServer(), ess, chatListener);
|
||||
final EssentialsChatPlayerListenerHighest playerListenerHighest = new EssentialsChatPlayerListenerHighest(getServer(), ess, chatListener);
|
||||
pluginManager.registerEvent(Type.PLAYER_CHAT, playerListenerLowest, Priority.Lowest, this);
|
||||
pluginManager.registerEvent(Type.PLAYER_CHAT, playerListenerNormal, Priority.Normal, this);
|
||||
pluginManager.registerEvent(Type.PLAYER_CHAT, playerListenerHighest, Priority.Highest, this);
|
||||
if (!this.getDescription().getVersion().equals(ess.getDescription().getVersion()))
|
||||
{
|
||||
LOGGER.log(Level.WARNING, Util.i18n("versionMismatchAll"));
|
||||
|
@@ -0,0 +1,163 @@
|
||||
/*
|
||||
* To change this template, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.earth2me.essentials.chat;
|
||||
|
||||
import com.earth2me.essentials.ChargeException;
|
||||
import com.earth2me.essentials.IEssentials;
|
||||
import com.earth2me.essentials.Trade;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.Util;
|
||||
import java.util.Map;
|
||||
import java.util.logging.Logger;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.player.PlayerChatEvent;
|
||||
import org.bukkit.event.player.PlayerListener;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Seiji
|
||||
*/
|
||||
public abstract class EssentialsChatPlayer extends PlayerListener
|
||||
{
|
||||
protected transient IEssentials ess;
|
||||
protected final static Logger logger = Logger.getLogger("Minecraft");
|
||||
protected final transient Map<String, IEssentialsChatListener> listeners;
|
||||
protected final transient Server server;
|
||||
|
||||
public EssentialsChatPlayer(Server server, IEssentials ess, Map<String, IEssentialsChatListener> listeners)
|
||||
{
|
||||
this.ess = ess;
|
||||
this.listeners = listeners;
|
||||
this.server = server;
|
||||
}
|
||||
|
||||
public void onPlayerChat(final PlayerChatEvent event)
|
||||
{
|
||||
}
|
||||
|
||||
public boolean isAborted(final PlayerChatEvent event)
|
||||
{
|
||||
return isAborted(event, "chat");
|
||||
}
|
||||
|
||||
public boolean isAborted(final PlayerChatEvent event, final String command)
|
||||
{
|
||||
if (event.isCancelled())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
for (IEssentialsChatListener listener : listeners.values())
|
||||
{
|
||||
if (listener.shouldHandleThisChat(event))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
if (!isAffordableFor(user, command))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public String getChatType(final String message)
|
||||
{
|
||||
switch (message.charAt(0))
|
||||
{
|
||||
case '!':
|
||||
return "shout";
|
||||
case '?':
|
||||
return "question";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
protected void charge(final CommandSender sender, final String command) throws ChargeException
|
||||
{
|
||||
if (sender instanceof Player)
|
||||
{
|
||||
final Trade charge = new Trade(command, ess);
|
||||
charge.charge(ess.getUser((Player)sender));
|
||||
}
|
||||
}
|
||||
|
||||
protected boolean isAffordableFor(final CommandSender sender, final String command)
|
||||
{
|
||||
if (sender instanceof Player)
|
||||
{
|
||||
try
|
||||
{
|
||||
final Trade charge = new Trade(command, ess);
|
||||
charge.isAffordableFor(ess.getUser((Player)sender));
|
||||
}
|
||||
catch (ChargeException e)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
protected void sendLocalChat(final User sender, final long radius, final PlayerChatEvent event)
|
||||
{
|
||||
event.setCancelled(true);
|
||||
logger.info(Util.format("localFormat", sender.getName(), event.getMessage()));
|
||||
final Location loc = sender.getLocation();
|
||||
final World world = loc.getWorld();
|
||||
final int x = loc.getBlockX();
|
||||
final int y = loc.getBlockY();
|
||||
final int z = loc.getBlockZ();
|
||||
for (Player p : server.getOnlinePlayers())
|
||||
{
|
||||
String type = "[L]";
|
||||
final User u = ess.getUser(p);
|
||||
//TODO: remove reference to op
|
||||
if (u.isIgnoredPlayer(sender.getName()) && !sender.isOp())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (!u.equals(sender))
|
||||
{
|
||||
final Location l = u.getLocation();
|
||||
final int dx = x - l.getBlockX();
|
||||
final int dy = y - l.getBlockY();
|
||||
final int dz = z - l.getBlockZ();
|
||||
final long delta = dx * dx + dy * dy + dz * dz;
|
||||
if (delta > radius || world != l.getWorld())
|
||||
{
|
||||
if (!u.isAuthorized("essentials.chat.spy"))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
type = type.concat("[Spy]");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
String message = String.format(event.getFormat(), type.concat(sender.getDisplayName()), event.getMessage());
|
||||
for (IEssentialsChatListener listener : listeners.values())
|
||||
{
|
||||
message = listener.modifyMessage(event, p, message);
|
||||
}
|
||||
u.sendMessage(message);
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,146 +0,0 @@
|
||||
package com.earth2me.essentials.chat;
|
||||
|
||||
import com.earth2me.essentials.ChargeException;
|
||||
import com.earth2me.essentials.IEssentials;
|
||||
import com.earth2me.essentials.Trade;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.Util;
|
||||
import java.util.Map;
|
||||
import java.util.logging.Logger;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.player.PlayerChatEvent;
|
||||
import org.bukkit.event.player.PlayerListener;
|
||||
|
||||
|
||||
public class EssentialsChatPlayerListener extends PlayerListener
|
||||
{
|
||||
private static final Logger LOGGER = Logger.getLogger("Minecraft");
|
||||
private final transient IEssentials ess;
|
||||
private final transient Server server;
|
||||
private final transient Map<String, IEssentialsChatListener> listeners;
|
||||
|
||||
public EssentialsChatPlayerListener(final Server server, final IEssentials ess, final Map<String, IEssentialsChatListener> listeners)
|
||||
{
|
||||
this.server = server;
|
||||
this.ess = ess;
|
||||
this.listeners = listeners;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerChat(final PlayerChatEvent event)
|
||||
{
|
||||
if (event.isCancelled())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
for (IEssentialsChatListener listener : listeners.values())
|
||||
{
|
||||
if (listener.shouldHandleThisChat(event))
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
|
||||
if (user.isAuthorized("essentials.chat.color"))
|
||||
{
|
||||
event.setMessage(event.getMessage().replaceAll("&([0-9a-f])", "§$1"));
|
||||
}
|
||||
|
||||
event.setFormat(ess.getSettings().getChatFormat(user.getGroup()).replace('&', '§').replace("§§", "&").replace("{DISPLAYNAME}", "%1$s").replace("{GROUP}", user.getGroup()).replace("{MESSAGE}", "%2$s").replace("{WORLDNAME}", user.getWorld().getName()).replace("{SHORTWORLDNAME}", user.getWorld().getName().substring(0, 1).toUpperCase()));
|
||||
|
||||
long radius = ess.getSettings().getChatRadius();
|
||||
if (radius < 1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
radius *= radius;
|
||||
|
||||
try {
|
||||
if (event.getMessage().startsWith("!") && event.getMessage().length() > 1)
|
||||
{
|
||||
if (user.isAuthorized("essentials.chat.shout"))
|
||||
{
|
||||
charge(user,"chat-shout");
|
||||
event.setMessage(event.getMessage().substring(1));
|
||||
event.setFormat(Util.format("shoutFormat", event.getFormat()));
|
||||
return;
|
||||
}
|
||||
user.sendMessage(Util.i18n("notAllowedToShout"));
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.getMessage().startsWith("?") && event.getMessage().length() > 1)
|
||||
{
|
||||
if (user.isAuthorized("essentials.chat.question"))
|
||||
{
|
||||
charge(user,"chat-question");
|
||||
event.setMessage(event.getMessage().substring(1));
|
||||
event.setFormat(Util.format("questionFormat", event.getFormat()));
|
||||
return;
|
||||
}
|
||||
user.sendMessage(Util.i18n("notAllowedToQuestion"));
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
catch (ChargeException ex)
|
||||
{
|
||||
ess.showError(user, ex, "Shout");
|
||||
return;
|
||||
}
|
||||
|
||||
event.setCancelled(true);
|
||||
LOGGER.info(Util.format("localFormat", user.getName(), event.getMessage()));
|
||||
|
||||
final Location loc = user.getLocation();
|
||||
final World world = loc.getWorld();
|
||||
final int x = loc.getBlockX();
|
||||
final int y = loc.getBlockY();
|
||||
final int z = loc.getBlockZ();
|
||||
|
||||
for (Player p : server.getOnlinePlayers())
|
||||
{
|
||||
final User u = ess.getUser(p);
|
||||
if (u.isIgnoredPlayer(user.getName()) && !user.isOp())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (!u.equals(user) && !u.isAuthorized("essentials.chat.spy"))
|
||||
{
|
||||
final Location l = u.getLocation();
|
||||
final int dx = x - l.getBlockX();
|
||||
final int dy = y - l.getBlockY();
|
||||
final int dz = z - l.getBlockZ();
|
||||
final long delta = dx*dx + dy*dy + dz*dz;
|
||||
if (delta > radius || world != l.getWorld())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
String message = String.format(event.getFormat(), user.getDisplayName(), event.getMessage());
|
||||
|
||||
for (IEssentialsChatListener listener : listeners.values())
|
||||
{
|
||||
message = listener.modifyMessage(event, p, message);
|
||||
}
|
||||
|
||||
u.sendMessage(message);
|
||||
}
|
||||
}
|
||||
protected void charge(final CommandSender sender, final String command) throws ChargeException
|
||||
{
|
||||
if (sender instanceof Player)
|
||||
{
|
||||
final Trade charge = new Trade(command, ess);
|
||||
charge.charge(ess.getUser((Player)sender));
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,50 @@
|
||||
package com.earth2me.essentials.chat;
|
||||
|
||||
import com.earth2me.essentials.ChargeException;
|
||||
import com.earth2me.essentials.IEssentials;
|
||||
import com.earth2me.essentials.User;
|
||||
import java.util.Map;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.event.player.PlayerChatEvent;
|
||||
|
||||
|
||||
public class EssentialsChatPlayerListenerHighest extends EssentialsChatPlayer
|
||||
{
|
||||
public EssentialsChatPlayerListenerHighest(Server server, IEssentials ess, Map<String, IEssentialsChatListener> listeners)
|
||||
{
|
||||
super(server, ess, listeners);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerChat(final PlayerChatEvent event)
|
||||
{
|
||||
if (isAborted(event))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* This file should handle charging the user for the action before returning control back
|
||||
*/
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
final String chatType = getChatType(event.getMessage());
|
||||
final StringBuilder command = new StringBuilder();
|
||||
command.append("chat");
|
||||
|
||||
if (chatType.length() > 0)
|
||||
{
|
||||
command.append("-").append(chatType);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
charge(user, command.toString());
|
||||
}
|
||||
catch (ChargeException e)
|
||||
{
|
||||
ess.showError(user, e, command.toString());
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,38 @@
|
||||
package com.earth2me.essentials.chat;
|
||||
|
||||
import com.earth2me.essentials.ChargeException;
|
||||
import com.earth2me.essentials.IEssentials;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.Util;
|
||||
import java.util.Map;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.event.player.PlayerChatEvent;
|
||||
|
||||
|
||||
public class EssentialsChatPlayerListenerLowest extends EssentialsChatPlayer
|
||||
{
|
||||
public EssentialsChatPlayerListenerLowest(Server server, IEssentials ess, Map<String, IEssentialsChatListener> listeners)
|
||||
{
|
||||
super(server, ess, listeners);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerChat(final PlayerChatEvent event)
|
||||
{
|
||||
if (isAborted(event))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* This listener should apply the general chat formatting only...then return control back
|
||||
* the event handler
|
||||
*/
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
if (user.isAuthorized("essentials.chat.color"))
|
||||
{
|
||||
event.setMessage(event.getMessage().replaceAll("&([0-9a-f])", "\u00a7$1"));
|
||||
}
|
||||
event.setFormat(ess.getSettings().getChatFormat(user.getGroup()).replace('&', '\u00a7').replace("\u00a7\u00a7", "&").replace("{DISPLAYNAME}", "%1$s").replace("{GROUP}", user.getGroup()).replace("{MESSAGE}", "%2$s").replace("{WORLDNAME}", user.getWorld().getName()).replace("{SHORTWORLDNAME}", user.getWorld().getName().substring(0, 1).toUpperCase()));
|
||||
}
|
||||
}
|
@@ -0,0 +1,76 @@
|
||||
package com.earth2me.essentials.chat;
|
||||
|
||||
import com.earth2me.essentials.ChargeException;
|
||||
import com.earth2me.essentials.IEssentials;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.Util;
|
||||
import java.util.Map;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.event.player.PlayerChatEvent;
|
||||
|
||||
|
||||
public class EssentialsChatPlayerListenerNormal extends EssentialsChatPlayer
|
||||
{
|
||||
public EssentialsChatPlayerListenerNormal(Server server, IEssentials ess, Map<String, IEssentialsChatListener> listeners)
|
||||
{
|
||||
super(server, ess, listeners);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerChat(final PlayerChatEvent event)
|
||||
{
|
||||
if (isAborted(event))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* This file should handle detection of the local chat features...
|
||||
* if local chat is enabled, we need to handle it here
|
||||
*/
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
final String chatType = getChatType(event.getMessage());
|
||||
long radius = ess.getSettings().getChatRadius();
|
||||
if (radius < 1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
radius *= radius;
|
||||
try
|
||||
{
|
||||
if (event.getMessage().length() > 0 && chatType.length() > 0)
|
||||
{
|
||||
StringBuilder permission = new StringBuilder();
|
||||
permission.append("essentials.chat.").append(chatType);
|
||||
|
||||
StringBuilder command = new StringBuilder();
|
||||
command.append("chat-").append(chatType);
|
||||
|
||||
StringBuilder format = new StringBuilder();
|
||||
format.append(chatType).append("Format");
|
||||
|
||||
StringBuilder errorMsg = new StringBuilder();
|
||||
errorMsg.append("notAllowedTo").append(chatType.substring(0, 1).toUpperCase()).append(chatType.substring(1));
|
||||
|
||||
if (user.isAuthorized(permission.toString()))
|
||||
{
|
||||
charge(user, command.toString());
|
||||
event.setMessage(event.getMessage().substring(1));
|
||||
event.setFormat(Util.format(format.toString(), event.getFormat()));
|
||||
return;
|
||||
}
|
||||
|
||||
user.sendMessage(Util.i18n(errorMsg.toString()));
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
catch (ChargeException ex)
|
||||
{
|
||||
ess.showError(user, ex, "Shout");
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
sendLocalChat(user, radius, event);
|
||||
}
|
||||
}
|
@@ -1,6 +1,6 @@
|
||||
build.xml.data.CRC32=cbf94f59
|
||||
build.xml.script.CRC32=c4b1bb0e
|
||||
build.xml.stylesheet.CRC32=28e38971@1.43.1.45
|
||||
build.xml.stylesheet.CRC32=28e38971@1.44.1.45
|
||||
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
|
||||
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
|
||||
nbproject/build-impl.xml.data.CRC32=cbf94f59
|
||||
|
@@ -48,4 +48,26 @@ v 1.4:
|
||||
Enable to allow default Bukkit based permissions to remain enabled, unless directly negated within GroupManager.
|
||||
- Fixed reading world mirrors from the config.
|
||||
- Simplified config.yml while retaining backwards compatibility.
|
||||
- Added data.save.hours setting to config. This allow control over how long backups are retained.
|
||||
- Added data.save.hours setting to config. This allow control over how long backups are retained.
|
||||
v 1.5:
|
||||
- Fixed opOverrides and bukkit_perms_override to read the correct entries.
|
||||
- Better commenting in config.yml
|
||||
- Fixed GM to recognize Superperm child nodes.
|
||||
If you add a node like Towny.admin GM will now correctly report on all child nodes.
|
||||
- Fixed GM loading world data files twice at startup.
|
||||
- Improved error reporting for invalid groups.yml
|
||||
- Added Global Groups
|
||||
Defined in groupmanager/globalgroups.yml.
|
||||
Create groups in the yml with a g: prefix, then inherit in the worlds groups files.
|
||||
- Added Info node support to Global Groups.
|
||||
- Fixed an error on 'manucheckv'. If the users doesn't have the variable it fell through causing an exception.
|
||||
- Added checking of subgroups for Info nodes.
|
||||
- Expanded 'canUserBuild()' to include inheritance and subgroups.
|
||||
- Added a config.yml setting of 'validate_toggle' for those who prefer 'mantogglevalidate' to always be off.
|
||||
- Prevent setting 'minutes' in the config to zero causing an error.
|
||||
- GM will now check to see if it's data files have been changed at each scheduled save.
|
||||
If the files have been altered (on disc) it will reload, so long as the in-memory data hasn't changed.
|
||||
If the files on Disc have changed AND there have been changes to it's in-memory data it will show a warning.
|
||||
You then MUST issue a '/mansave force' to overwrite the disc files, or a '/manload' to overwrite the memory data.
|
||||
- Fix for an error in checkFullUserPermission caused by players disconnecting mid perms update.
|
||||
- Notification of being moved to the default group only happens if it's a demotion/promotion (not on join).
|
@@ -1,12 +1,17 @@
|
||||
settings:
|
||||
config:
|
||||
# With this enabled anyone set as op has full permissions when managing GroupManager
|
||||
# The user will be able to promote players to the same group or even above.
|
||||
opOverrides: true
|
||||
|
||||
# If enabled any bukkit permissiosn which default to true will be left enabled.
|
||||
# If enabled any plugins bukkit permissions which default to true will be left enabled.
|
||||
# If the player is op any permissions set to Op will follow suit.
|
||||
bukkit_perms_override: false
|
||||
|
||||
# Default setting for 'mantoglevalidate'
|
||||
# true will cause GroupManager to attempt name matching by default.
|
||||
validate_toggle: true
|
||||
|
||||
data:
|
||||
save:
|
||||
# How often GroupManager will save it's data back to groups and users.yml
|
||||
@@ -21,6 +26,9 @@ settings:
|
||||
|
||||
mirrors:
|
||||
# Worlds listed here have their permissions mirrored in their children.
|
||||
# the first element 'world' is the main worlds name
|
||||
# subsequent elements '- world_nether' are worlds which will use the same
|
||||
# user/groups permissions as the parent.
|
||||
world:
|
||||
- world_nether
|
||||
- world2
|
||||
|
181
EssentialsGroupManager/src/globalgroups.yml
Normal file
181
EssentialsGroupManager/src/globalgroups.yml
Normal file
@@ -0,0 +1,181 @@
|
||||
groups:
|
||||
|
||||
g:bukkit_default:
|
||||
permissions:
|
||||
- bukkit.broadcast.user
|
||||
|
||||
g:essentials_default:
|
||||
permissions:
|
||||
- essentials.help
|
||||
- essentials.helpop
|
||||
- essentials.list
|
||||
- essentials.motd
|
||||
- essentials.rules
|
||||
- essentials.spawn
|
||||
- groupmanager.notify.self
|
||||
|
||||
g:essentials_builder:
|
||||
permissions:
|
||||
- essentials.afk
|
||||
- essentials.back
|
||||
- essentials.back.ondeath
|
||||
- essentials.balance
|
||||
- essentials.balance.others
|
||||
- essentials.balancetop
|
||||
- essentials.chat.color
|
||||
- essentials.chat.shout
|
||||
- essentials.chat.question
|
||||
- essentials.compass
|
||||
- essentials.depth
|
||||
- essentials.home
|
||||
- essentials.ignore
|
||||
- essentials.kit
|
||||
- essentials.kit.tools
|
||||
- essentials.mail
|
||||
- essentials.mail.send
|
||||
- essentials.me
|
||||
- essentials.msg
|
||||
- essentials.nick
|
||||
- essentials.pay
|
||||
- essentials.ping
|
||||
- essentials.powertool
|
||||
- essentials.protect
|
||||
- essentials.sethome
|
||||
- essentials.signs.use.*
|
||||
- essentials.signs.create.disposal
|
||||
- essentials.signs.create.mail
|
||||
- essentials.signs.create.protection
|
||||
- essentials.signs.create.trade
|
||||
- essentials.signs.break.disposal
|
||||
- essentials.signs.break.mail
|
||||
- essentials.signs.break.protection
|
||||
- essentials.signs.break.trade
|
||||
- essentials.suicide
|
||||
- essentials.time
|
||||
- essentials.tpa
|
||||
- essentials.tpaccept
|
||||
- essentials.tpahere
|
||||
- essentials.tpdeny
|
||||
- essentials.warp
|
||||
- essentials.warp.list
|
||||
- essentials.worth
|
||||
|
||||
g:essentials_moderator:
|
||||
permissions:
|
||||
- essentials.ban
|
||||
- essentials.ban.notify
|
||||
- essentials.banip
|
||||
- essentials.broadcast
|
||||
- essentials.clearinventory
|
||||
- essentials.delwarp
|
||||
- essentials.eco.loan
|
||||
- essentials.ext
|
||||
- essentials.getpos
|
||||
- essentials.helpop.recieve
|
||||
- essentials.home.others
|
||||
- essentials.invsee
|
||||
- essentials.jails
|
||||
- essentials.jump
|
||||
- essentials.kick
|
||||
- essentials.kick.notify
|
||||
- essentials.kill
|
||||
- essentials.mute
|
||||
- essentials.nick.others
|
||||
- essentials.realname
|
||||
- essentials.setwarp
|
||||
- essentials.signs.create.*
|
||||
- essentials.signs.break.*
|
||||
- essentials.spawner
|
||||
- essentials.thunder
|
||||
- essentials.time
|
||||
- essentials.time.set
|
||||
- essentials.protect.alerts
|
||||
- essentials.protect.admin
|
||||
- essentials.protect.ownerinfo
|
||||
- essentials.ptime
|
||||
- essentials.ptime.others
|
||||
- essentials.togglejail
|
||||
- essentials.top
|
||||
- essentials.tp
|
||||
- essentials.tphere
|
||||
- essentials.tppos
|
||||
- essentials.tptoggle
|
||||
- essentials.unban
|
||||
- essentials.unbanip
|
||||
- essentials.weather
|
||||
- essentials.whois
|
||||
- essentials.world
|
||||
- groupmanager.listgroups
|
||||
- groupmanager.mandemote
|
||||
- groupmanager.manpromote
|
||||
- groupmanager.manselect
|
||||
- groupmanager.manuadd
|
||||
- groupmanager.manudel
|
||||
- groupmanager.manwhois
|
||||
- groupmanager.notify.other
|
||||
|
||||
g:essentials_admin:
|
||||
permissions:
|
||||
- -essentials.backup
|
||||
- -essentials.essentials
|
||||
- -essentials.setspawn
|
||||
- -essentials.reloadall
|
||||
- -essentials.plugin
|
||||
- essentials.*
|
||||
- groupmanager.mantogglevalidate
|
||||
- groupmanager.mansave
|
||||
- groupmanager.mangcheckp
|
||||
- groupmanager.manglistp
|
||||
- groupmanager.manucheckp
|
||||
- groupmanager.manulistp
|
||||
|
||||
g:bukkit_moderator:
|
||||
permissions:
|
||||
- bukkit.command.ban
|
||||
- bukkit.command.ban.ip
|
||||
- bukkit.command.ban.player
|
||||
- bukkit.command.gamemode
|
||||
- bukkit.command.kick
|
||||
- bukkit.command.unban
|
||||
- bukkit.command.unban.ip
|
||||
- bukkit.command.unban.player
|
||||
|
||||
g:bukkit_admin:
|
||||
permissions:
|
||||
- bPermissions.admin
|
||||
- bPermissions.demote.admin
|
||||
- bPermissions.gui
|
||||
- bPermissions.iplock.lock
|
||||
- bPermissions.promote.admin
|
||||
- bukkit.broadcast
|
||||
- bukkit.broadcast.admin
|
||||
- bukkit.command
|
||||
- bukkit.command.give
|
||||
- bukkit.command.help
|
||||
- bukkit.command.kill
|
||||
- bukkit.command.list
|
||||
- bukkit.command.me
|
||||
- bukkit.command.op
|
||||
- bukkit.command.op.give
|
||||
- bukkit.command.op.take
|
||||
- bukkit.command.plugins
|
||||
- bukkit.command.reload
|
||||
- bukkit.command.save
|
||||
- bukkit.command.save.disable
|
||||
- bukkit.command.save.enable
|
||||
- bukkit.command.save.perform
|
||||
- bukkit.command.say
|
||||
- bukkit.command.stop
|
||||
- bukkit.command.teleport
|
||||
- bukkit.command.tell
|
||||
- bukkit.command.time
|
||||
- bukkit.command.time.add
|
||||
- bukkit.command.time.set
|
||||
- bukkit.command.version
|
||||
- bukkit.command.whitelist
|
||||
- bukkit.command.whitelist.add
|
||||
- bukkit.command.whitelist.disable
|
||||
- bukkit.command.whitelist.enable
|
||||
- bukkit.command.whitelist.list
|
||||
- bukkit.command.whitelist.reload
|
||||
- bukkit.command.whitelist.remove
|
@@ -2,148 +2,42 @@ groups:
|
||||
Default:
|
||||
default: true
|
||||
permissions:
|
||||
- essentials.help
|
||||
- essentials.helpop
|
||||
- essentials.list
|
||||
- essentials.motd
|
||||
- essentials.rules
|
||||
- essentials.spawn
|
||||
- groupmanager.notify.self
|
||||
inheritance: []
|
||||
- -bukkit.command.kill
|
||||
inheritance:
|
||||
- g:essentials_default
|
||||
- g:bukkit_default
|
||||
info:
|
||||
prefix: '&e'
|
||||
build: false
|
||||
suffix: ''
|
||||
Builder:
|
||||
default: false
|
||||
permissions:
|
||||
- essentials.afk
|
||||
- essentials.back
|
||||
- essentials.back.ondeath
|
||||
- essentials.balance
|
||||
- essentials.balance.others
|
||||
- essentials.balancetop
|
||||
- essentials.chat.color
|
||||
- essentials.chat.shout
|
||||
- essentials.chat.question
|
||||
- essentials.compass
|
||||
- essentials.depth
|
||||
- essentials.home
|
||||
- essentials.ignore
|
||||
- essentials.kit
|
||||
- essentials.kit.tools
|
||||
- essentials.mail
|
||||
- essentials.mail.send
|
||||
- essentials.me
|
||||
- essentials.msg
|
||||
- essentials.nick
|
||||
- essentials.pay
|
||||
- essentials.ping
|
||||
- essentials.portal
|
||||
- essentials.powertool
|
||||
- essentials.protect
|
||||
- essentials.sethome
|
||||
- essentials.signs.use.*
|
||||
- essentials.signs.create.disposal
|
||||
- essentials.signs.create.mail
|
||||
- essentials.signs.create.protection
|
||||
- essentials.signs.create.trade
|
||||
- essentials.signs.break.disposal
|
||||
- essentials.signs.break.mail
|
||||
- essentials.signs.break.protection
|
||||
- essentials.signs.break.trade
|
||||
- essentials.suicide
|
||||
- essentials.time
|
||||
- essentials.tpa
|
||||
- essentials.tpaccept
|
||||
- essentials.tpahere
|
||||
- essentials.tpdeny
|
||||
- essentials.warp
|
||||
- essentials.warp.list
|
||||
- essentials.worth
|
||||
permissions: []
|
||||
inheritance:
|
||||
- default
|
||||
- g:essentials_builder
|
||||
info:
|
||||
prefix: '&2'
|
||||
build: true
|
||||
suffix: ''
|
||||
Moderator:
|
||||
default: false
|
||||
permissions:
|
||||
- essentials.ban
|
||||
- essentials.ban.notify
|
||||
- essentials.banip
|
||||
- essentials.broadcast
|
||||
- essentials.clearinventory
|
||||
- essentials.delwarp
|
||||
- essentials.eco.loan
|
||||
- essentials.ext
|
||||
- essentials.getpos
|
||||
- essentials.helpop.recieve
|
||||
- essentials.home.others
|
||||
- essentials.invsee
|
||||
- essentials.jails
|
||||
- essentials.jump
|
||||
- essentials.kick
|
||||
- essentials.kick.notify
|
||||
- essentials.kill
|
||||
- essentials.mute
|
||||
- essentials.nick.others
|
||||
- essentials.realname
|
||||
- essentials.setwarp
|
||||
- essentials.signs.create.*
|
||||
- essentials.signs.break.*
|
||||
- essentials.spawner
|
||||
- essentials.thunder
|
||||
- essentials.time
|
||||
- essentials.time.set
|
||||
- essentials.protect.alerts
|
||||
- essentials.protect.admin
|
||||
- essentials.protect.ownerinfo
|
||||
- essentials.ptime
|
||||
- essentials.ptime.others
|
||||
- essentials.togglejail
|
||||
- essentials.top
|
||||
- essentials.tp
|
||||
- essentials.tphere
|
||||
- essentials.tppos
|
||||
- essentials.tptoggle
|
||||
- essentials.unban
|
||||
- essentials.unbanip
|
||||
- essentials.weather
|
||||
- essentials.whois
|
||||
- essentials.world
|
||||
- groupmanager.listgroups
|
||||
- groupmanager.mandemote
|
||||
- groupmanager.manpromote
|
||||
- groupmanager.manselect
|
||||
- groupmanager.manuadd
|
||||
- groupmanager.manudel
|
||||
- groupmanager.manwhois
|
||||
- groupmanager.notify.other
|
||||
permissions: []
|
||||
inheritance:
|
||||
- builder
|
||||
- g:essentials_moderator
|
||||
- g:bukkit_moderator
|
||||
info:
|
||||
prefix: '&5'
|
||||
build: true
|
||||
suffix: ''
|
||||
Admin:
|
||||
default: false
|
||||
permissions:
|
||||
- -essentials.backup
|
||||
- -essentials.essentials
|
||||
- -essentials.setspawn
|
||||
- -essentials.reloadall
|
||||
- -essentials.plugin
|
||||
- essentials.*
|
||||
- groupmanager.mantogglevalidate
|
||||
- groupmanager.mansave
|
||||
- groupmanager.mangcheckp
|
||||
- groupmanager.manglistp
|
||||
- groupmanager.manucheckp
|
||||
- groupmanager.manulistp
|
||||
permissions: []
|
||||
inheritance:
|
||||
- moderator
|
||||
- g:essentials_admin
|
||||
- g:bukkit_admin
|
||||
info:
|
||||
prefix: '&c'
|
||||
build: true
|
||||
|
@@ -48,14 +48,20 @@ public class GMConfiguration {
|
||||
} catch (Exception ex) {
|
||||
throw new IllegalArgumentException("The following file couldn't pass on Parser.\n" + configFile.getPath(), ex);
|
||||
}
|
||||
|
||||
// Setup defaults
|
||||
adjustLoggerLevel();
|
||||
plugin.setValidateOnlinePlayer(isToggleValidate());
|
||||
}
|
||||
|
||||
public boolean isOpOverride() {
|
||||
return GMconfig.getBoolean("settings.config.bukkit_perms_override", true);
|
||||
return GMconfig.getBoolean("settings.config.opOverrides", true);
|
||||
}
|
||||
public boolean isBukkitPermsOverride() {
|
||||
return GMconfig.getBoolean("settings.config.opOverrides", true);
|
||||
return GMconfig.getBoolean("settings.config.bukkit_perms_override", false);
|
||||
}
|
||||
public boolean isToggleValidate() {
|
||||
return GMconfig.getBoolean("settings.config.validate_toggle", true);
|
||||
}
|
||||
|
||||
public Map<String, Object> getMirrorsMap() {
|
||||
|
@@ -0,0 +1,401 @@
|
||||
package org.anjocaido.groupmanager;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.anjocaido.groupmanager.data.Group;
|
||||
import org.anjocaido.groupmanager.utils.PermissionCheckResult;
|
||||
import org.anjocaido.groupmanager.utils.Tasks;
|
||||
import org.bukkit.configuration.MemorySection;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
import org.yaml.snakeyaml.DumperOptions;
|
||||
import org.yaml.snakeyaml.Yaml;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @author ElgarL
|
||||
*
|
||||
*/
|
||||
public class GlobalGroups {
|
||||
|
||||
private GroupManager plugin;
|
||||
private YamlConfiguration GGroups;
|
||||
|
||||
private Map<String, Group> groups;
|
||||
|
||||
protected long timeStampGroups = 0;
|
||||
protected boolean haveGroupsChanged = false;
|
||||
protected File GlobalGroupsFile = null;
|
||||
|
||||
public GlobalGroups(GroupManager plugin) {
|
||||
this.plugin = plugin;
|
||||
load();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the haveGroupsChanged
|
||||
*/
|
||||
public boolean haveGroupsChanged() {
|
||||
if (this.haveGroupsChanged) {
|
||||
return true;
|
||||
}
|
||||
for (Group g : groups.values()) {
|
||||
if (g.isChanged()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the timeStampGroups
|
||||
*/
|
||||
public long getTimeStampGroups() {
|
||||
return timeStampGroups;
|
||||
}
|
||||
/**
|
||||
* @param timeStampGroups the timeStampGroups to set
|
||||
*/
|
||||
protected void setTimeStampGroups(long timeStampGroups) {
|
||||
this.timeStampGroups = timeStampGroups;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param haveGroupsChanged
|
||||
* the haveGroupsChanged to set
|
||||
*/
|
||||
public void setGroupsChanged(boolean haveGroupsChanged) {
|
||||
this.haveGroupsChanged = haveGroupsChanged;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public void load() {
|
||||
|
||||
GGroups = new YamlConfiguration();
|
||||
|
||||
GroupManager.setLoaded(false);
|
||||
|
||||
// READ globalGroups FILE
|
||||
if (GlobalGroupsFile == null)
|
||||
GlobalGroupsFile = new File(plugin.getDataFolder(), "globalgroups.yml");
|
||||
|
||||
if (!GlobalGroupsFile.exists()) {
|
||||
try {
|
||||
// Create a new file if it doesn't exist.
|
||||
Tasks.copy(plugin.getResourceAsStream("globalgroups.yml"), GlobalGroupsFile);
|
||||
} catch (IOException ex) {
|
||||
GroupManager.logger.log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
GGroups.load(GlobalGroupsFile);
|
||||
} catch (Exception ex) {
|
||||
throw new IllegalArgumentException("The following file couldn't pass on Parser.\n" + GlobalGroupsFile.getPath(), ex);
|
||||
}
|
||||
|
||||
// Read all global groups
|
||||
Map<String, Object> allGroups = (Map<String, Object>) GGroups.getConfigurationSection("groups").getValues(false);
|
||||
|
||||
// Load each groups permissions list.
|
||||
if (allGroups != null) {
|
||||
// Clear out old groups
|
||||
resetGlobalGroups();
|
||||
for (String groupName : allGroups.keySet()) {
|
||||
Group newGroup = new Group(groupName.toLowerCase());
|
||||
Object element;
|
||||
|
||||
// Permission nodes
|
||||
element = GGroups.get("groups." + groupName + ".permissions");
|
||||
|
||||
if (element != null)
|
||||
if (element instanceof List) {
|
||||
for (String node : (List<String>) element) {
|
||||
newGroup.addPermission(node);
|
||||
}
|
||||
} else if (element instanceof String) {
|
||||
newGroup.addPermission((String) element);
|
||||
} else
|
||||
throw new IllegalArgumentException("Unknown type of permission node for global group: " + groupName);
|
||||
|
||||
// Info nodes
|
||||
element = GGroups.get("groups." + groupName + ".info");
|
||||
|
||||
if (element != null)
|
||||
if (element instanceof MemorySection) {
|
||||
Map<String, Object> vars = new HashMap<String, Object>();
|
||||
for (String key : ((MemorySection) element).getKeys(false)) {
|
||||
vars.put(key, ((MemorySection) element).get(key));
|
||||
}
|
||||
newGroup.setVariables(vars);
|
||||
} else
|
||||
throw new IllegalArgumentException("Unknown type of info node for global group: " + groupName);
|
||||
|
||||
// Push a new group
|
||||
addGroup(newGroup);
|
||||
}
|
||||
}
|
||||
|
||||
removeGroupsChangedFlag();
|
||||
setTimeStampGroups(GlobalGroupsFile.lastModified());
|
||||
GroupManager.setLoaded(true);
|
||||
//GlobalGroupsFile = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Write the globalgroups.yml file
|
||||
*/
|
||||
|
||||
public void writeGroups(boolean overwrite) {
|
||||
|
||||
//File GlobalGroupsFile = new File(plugin.getDataFolder(), "globalgroups.yml");
|
||||
|
||||
if (haveGroupsChanged()) {
|
||||
if (overwrite || (!overwrite && (getTimeStampGroups() >= GlobalGroupsFile.lastModified()))) {
|
||||
Map<String, Object> root = new HashMap<String, Object>();
|
||||
|
||||
Map<String, Object> groupsMap = new HashMap<String, Object>();
|
||||
root.put("groups", groupsMap);
|
||||
for (String groupKey : groups.keySet()) {
|
||||
Group group = groups.get(groupKey);
|
||||
|
||||
// Group header
|
||||
Map<String, Object> aGroupMap = new HashMap<String, Object>();
|
||||
groupsMap.put(group.getName(), aGroupMap);
|
||||
|
||||
// Info nodes
|
||||
Map<String, Object> infoMap = new HashMap<String, Object>();
|
||||
aGroupMap.put("info", infoMap);
|
||||
|
||||
for (String infoKey : group.getVariables().getVarKeyList()) {
|
||||
infoMap.put(infoKey, group.getVariables().getVarObject(infoKey));
|
||||
}
|
||||
|
||||
// Permission nodes
|
||||
aGroupMap.put("permissions", group.getPermissionList());
|
||||
}
|
||||
|
||||
if (!root.isEmpty()) {
|
||||
DumperOptions opt = new DumperOptions();
|
||||
opt.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
|
||||
final Yaml yaml = new Yaml(opt);
|
||||
try {
|
||||
yaml.dump(root, new OutputStreamWriter(new FileOutputStream(GlobalGroupsFile), "UTF-8"));
|
||||
} catch (UnsupportedEncodingException ex) {
|
||||
} catch (FileNotFoundException ex) {
|
||||
}
|
||||
}
|
||||
setTimeStampGroups(GlobalGroupsFile.lastModified());
|
||||
} else {
|
||||
// Newer file found.
|
||||
GroupManager.logger.log(Level.WARNING, "Newer GlobalGroups file found, but we have local changes!");
|
||||
throw new IllegalStateException("Unable to save unless you issue a '/mansave force'");
|
||||
}
|
||||
removeGroupsChangedFlag();
|
||||
} else {
|
||||
//Check for newer file as no local changes.
|
||||
if (getTimeStampGroups() < GlobalGroupsFile.lastModified()) {
|
||||
System.out.print("Newer GlobalGroups file found (Loading changes)!");
|
||||
// Backup GlobalGroups file
|
||||
backupFile();
|
||||
load();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Backup the BlobalGroups file
|
||||
* @param w
|
||||
*/
|
||||
private void backupFile() {
|
||||
|
||||
File backupFile = new File(plugin.getBackupFolder(), "bkp_ggroups_" + Tasks.getDateString() + ".yml");
|
||||
try {
|
||||
Tasks.copy(GlobalGroupsFile, backupFile);
|
||||
} catch (IOException ex) {
|
||||
GroupManager.logger.log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a group, or replaces an existing one.
|
||||
*
|
||||
* @param groupToAdd
|
||||
*/
|
||||
public void addGroup(Group groupToAdd) {
|
||||
// Create a new group if it already exists
|
||||
if (hasGroup(groupToAdd.getName())) {
|
||||
groupToAdd = groupToAdd.clone();
|
||||
removeGroup(groupToAdd.getName());
|
||||
}
|
||||
|
||||
newGroup(groupToAdd);
|
||||
haveGroupsChanged = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new group if it doesn't already exist.
|
||||
*
|
||||
* @param newGroup
|
||||
*/
|
||||
public Group newGroup(Group newGroup) {
|
||||
// Push a new group
|
||||
if (!groups.containsKey(newGroup.getName().toLowerCase())) {
|
||||
groups.put(newGroup.getName().toLowerCase(), newGroup);
|
||||
this.setGroupsChanged(true);
|
||||
return newGroup;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a group if it exist.
|
||||
*
|
||||
* @param groupName
|
||||
*/
|
||||
public boolean removeGroup(String groupName) {
|
||||
// Push a new group
|
||||
if (groups.containsKey(groupName.toLowerCase())) {
|
||||
groups.remove(groupName.toLowerCase());
|
||||
this.setGroupsChanged(true);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the Global Group exists in the globalgroups.yml
|
||||
*
|
||||
* @param groupName
|
||||
* @return true if the group exists
|
||||
*/
|
||||
public boolean hasGroup(String groupName) {
|
||||
return groups.containsKey(groupName.toLowerCase());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the group has the correct permission node.
|
||||
*
|
||||
* @param groupName
|
||||
* @param permissionNode
|
||||
* @return true if node exists
|
||||
*/
|
||||
public boolean hasPermission(String groupName, String permissionNode) {
|
||||
|
||||
if (!hasGroup(groupName.toLowerCase()))
|
||||
return false;
|
||||
|
||||
return groups.get(groupName.toLowerCase()).hasSamePermissionNode(permissionNode);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a PermissionCheckResult of the permission node for the group to
|
||||
* be tested against.
|
||||
*
|
||||
* @param groupName
|
||||
* @param permissionNode
|
||||
* @return PermissionCheckResult object
|
||||
*/
|
||||
public PermissionCheckResult checkPermission(String groupName, String permissionNode) {
|
||||
|
||||
PermissionCheckResult result = new PermissionCheckResult();
|
||||
result.askedPermission = permissionNode;
|
||||
result.resultType = PermissionCheckResult.Type.NOTFOUND;
|
||||
|
||||
if (!hasGroup(groupName.toLowerCase()))
|
||||
return result;
|
||||
|
||||
Group tempGroup = groups.get(groupName.toLowerCase());
|
||||
|
||||
if (tempGroup.hasSamePermissionNode(permissionNode))
|
||||
result.resultType = PermissionCheckResult.Type.FOUND;
|
||||
if (tempGroup.hasSamePermissionNode("-" + permissionNode))
|
||||
result.resultType = PermissionCheckResult.Type.NEGATION;
|
||||
if (tempGroup.hasSamePermissionNode("+" + permissionNode))
|
||||
result.resultType = PermissionCheckResult.Type.EXCEPTION;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a List of all permission nodes for this group null if none
|
||||
*
|
||||
* @param groupName
|
||||
* @return List of all group names
|
||||
*/
|
||||
public List<String> getGroupsPermissions(String groupName) {
|
||||
if (!hasGroup(groupName.toLowerCase()))
|
||||
return null;
|
||||
|
||||
return groups.get(groupName.toLowerCase()).getPermissionList();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a Set of all global group names.
|
||||
*
|
||||
* @return Set containing all group names.
|
||||
*/
|
||||
public Set<String> getGlobalGroups() {
|
||||
return groups.keySet();
|
||||
}
|
||||
|
||||
/**
|
||||
* Resets GlobalGroups.
|
||||
*/
|
||||
public void resetGlobalGroups() {
|
||||
this.groups = new HashMap<String, Group>();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return a collection of the groups
|
||||
*/
|
||||
public Collection<Group> getGroupList() {
|
||||
return groups.values();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the Global Group or null if it doesn't exist.
|
||||
*
|
||||
* @param groupName
|
||||
* @return Group object
|
||||
*/
|
||||
public Group getGroup(String groupName) {
|
||||
if (!hasGroup(groupName.toLowerCase()))
|
||||
return null;
|
||||
|
||||
return groups.get(groupName.toLowerCase());
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the globalGroupsFile
|
||||
*/
|
||||
public File getGlobalGroupsFile() {
|
||||
return GlobalGroupsFile;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public void removeGroupsChangedFlag() {
|
||||
setGroupsChanged(false);
|
||||
for (Group g : groups.values()) {
|
||||
g.flagAsSaved();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@@ -26,7 +26,11 @@ public abstract class DataUnit {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
/**
|
||||
public DataUnit(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Every group is matched only by their names and DataSources names.
|
||||
* @param o
|
||||
* @return true if they are equal. false if not.
|
||||
@@ -64,7 +68,15 @@ public abstract class DataUnit {
|
||||
}
|
||||
|
||||
public void flagAsChanged() {
|
||||
GroupManager.logger.finest("DataSource: " + getDataSource().getName() + " - DataUnit: " + getName() + " flagged as changed!");
|
||||
WorldDataHolder testSource = getDataSource();
|
||||
String source = "";
|
||||
|
||||
if (testSource == null)
|
||||
source = "GlobalGroups";
|
||||
else
|
||||
source = testSource.getName();
|
||||
|
||||
GroupManager.logger.finest("DataSource: " + source + " - DataUnit: " + getName() + " flagged as changed!");
|
||||
// for(StackTraceElement st: Thread.currentThread().getStackTrace()){
|
||||
// GroupManager.logger.finest(st.toString());
|
||||
// }
|
||||
@@ -76,7 +88,15 @@ public abstract class DataUnit {
|
||||
}
|
||||
|
||||
public void flagAsSaved() {
|
||||
GroupManager.logger.finest("DataSource: " + getDataSource().getName() + " - DataUnit: " + getName() + " flagged as saved!");
|
||||
WorldDataHolder testSource = getDataSource();
|
||||
String source = "";
|
||||
|
||||
if (testSource == null)
|
||||
source = "GlobalGroups";
|
||||
else
|
||||
source = testSource.getName();
|
||||
|
||||
GroupManager.logger.finest("DataSource: " + source + " - DataUnit: " + getName() + " flagged as saved!");
|
||||
changed = false;
|
||||
}
|
||||
|
||||
|
@@ -27,12 +27,22 @@ public class Group extends DataUnit implements Cloneable {
|
||||
private GroupVariables variables = new GroupVariables(this);
|
||||
|
||||
/**
|
||||
* Constructor for individual World Groups.
|
||||
*
|
||||
* @param name
|
||||
*/
|
||||
public Group(WorldDataHolder source, String name) {
|
||||
super(source, name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor for Global Groups.
|
||||
*
|
||||
* @param name
|
||||
*/
|
||||
public Group(String name) {
|
||||
super(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Clone this group
|
||||
@@ -40,8 +50,15 @@ public class Group extends DataUnit implements Cloneable {
|
||||
*/
|
||||
@Override
|
||||
public Group clone() {
|
||||
Group clone = new Group(getDataSource(), this.getName());
|
||||
clone.inherits = new ArrayList<String>(this.getInherits());
|
||||
Group clone;
|
||||
|
||||
if (getDataSource() == null) {
|
||||
clone = new Group(this.getName());
|
||||
} else {
|
||||
clone = new Group(getDataSource(), this.getName());
|
||||
clone.inherits = new ArrayList<String>(this.getInherits());
|
||||
}
|
||||
|
||||
for (String perm : this.getPermissionList()) {
|
||||
clone.addPermission(perm);
|
||||
}
|
||||
@@ -59,8 +76,13 @@ public class Group extends DataUnit implements Cloneable {
|
||||
if (dataSource.groupExists(this.getName())) {
|
||||
return null;
|
||||
}
|
||||
Group clone = getDataSource().createGroup(this.getName());
|
||||
clone.inherits = new ArrayList<String>(this.getInherits());
|
||||
|
||||
Group clone = dataSource.createGroup(this.getName());
|
||||
|
||||
// Don't add inheritance for GlobalGroups
|
||||
if (getDataSource() != null) {
|
||||
clone.inherits = new ArrayList<String>(this.getInherits());
|
||||
}
|
||||
for (String perm : this.getPermissionList()) {
|
||||
clone.addPermission(perm);
|
||||
}
|
||||
|
@@ -46,7 +46,7 @@ public class GroupVariables extends Variables implements Cloneable {
|
||||
|
||||
/**
|
||||
* A clone of all vars here.
|
||||
* @return
|
||||
* @return GroupVariables clone
|
||||
*/
|
||||
protected GroupVariables clone(Group newOwner) {
|
||||
GroupVariables clone = new GroupVariables(newOwner);
|
||||
|
@@ -40,7 +40,7 @@ public class User extends DataUnit implements Cloneable {
|
||||
|
||||
/**
|
||||
*
|
||||
* @return
|
||||
* @return User clone
|
||||
*/
|
||||
@Override
|
||||
public User clone() {
|
||||
@@ -67,7 +67,7 @@ public class User extends DataUnit implements Cloneable {
|
||||
if (dataSource.getGroup(group) == null) {
|
||||
clone.setGroup(dataSource.getDefaultGroup());
|
||||
} else {
|
||||
clone.setGroup(this.getGroupName());
|
||||
clone.setGroup(dataSource.getGroup(this.getGroupName()));
|
||||
}
|
||||
for (String perm : this.getPermissionList()) {
|
||||
clone.addPermission(perm);
|
||||
@@ -117,13 +117,20 @@ public class User extends DataUnit implements Cloneable {
|
||||
getDataSource().addGroup(group);
|
||||
}
|
||||
group = getDataSource().getGroup(group.getName());
|
||||
String oldGroup = this.group;
|
||||
this.group = group.getName();
|
||||
flagAsChanged();
|
||||
if (GroupManager.isLoaded()) {
|
||||
if (GroupManager.BukkitPermissions.player_join = false)
|
||||
GroupManager.BukkitPermissions.updateAllPlayers();
|
||||
|
||||
// Do we notify of the group change?
|
||||
String defaultGroupName = getDataSource().getDefaultGroup().getName();
|
||||
// if we were not in the default group
|
||||
// or we were in the default group and the move is to a different group.
|
||||
boolean notify = (!oldGroup.equalsIgnoreCase(defaultGroupName)) || ((oldGroup.equalsIgnoreCase(defaultGroupName)) && (!this.group.equalsIgnoreCase(defaultGroupName))) ;
|
||||
|
||||
GroupManager.notify(this.getName(), String.format(" moved to the group %s.", group.getName()));
|
||||
if (notify) GroupManager.notify(this.getName(), String.format(" moved to the group %s.", group.getName()));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -27,7 +27,7 @@ public class UserVariables extends Variables {
|
||||
|
||||
/**
|
||||
* A clone of all vars here.
|
||||
* @return
|
||||
* @return UserVariables clone
|
||||
*/
|
||||
protected UserVariables clone(User newOwner) {
|
||||
UserVariables clone = new UserVariables(newOwner);
|
||||
|
@@ -115,7 +115,7 @@ public abstract class Variables implements Cloneable {
|
||||
|
||||
/**
|
||||
* All variable keys this is holding
|
||||
* @return
|
||||
* @return Set of all variable names.
|
||||
*/
|
||||
public Set<String> getVarKeyList() {
|
||||
return variables.keySet();
|
||||
|
@@ -39,7 +39,7 @@ public class OverloadedWorldHolder extends WorldDataHolder {
|
||||
/**
|
||||
*
|
||||
* @param userName
|
||||
* @return
|
||||
* @return user object or a new user if none exists.
|
||||
*/
|
||||
@Override
|
||||
public User getUser(String userName) {
|
||||
@@ -86,7 +86,7 @@ public class OverloadedWorldHolder extends WorldDataHolder {
|
||||
/**
|
||||
*
|
||||
* @param userName
|
||||
* @return
|
||||
* @return true if removed/false if not found.
|
||||
*/
|
||||
@Override
|
||||
public boolean removeUser(String userName) {
|
||||
@@ -137,7 +137,7 @@ public class OverloadedWorldHolder extends WorldDataHolder {
|
||||
|
||||
/**
|
||||
*
|
||||
* @return
|
||||
* @return Collection of all users
|
||||
*/
|
||||
@Override
|
||||
public Collection<User> getUserList() {
|
||||
@@ -156,7 +156,7 @@ public class OverloadedWorldHolder extends WorldDataHolder {
|
||||
/**
|
||||
*
|
||||
* @param userName
|
||||
* @return
|
||||
* @return true if user is overloaded.
|
||||
*/
|
||||
public boolean isOverloaded(String userName) {
|
||||
return overloadedUsers.containsKey(userName.toLowerCase());
|
||||
@@ -189,8 +189,9 @@ public class OverloadedWorldHolder extends WorldDataHolder {
|
||||
* Gets the user in normal state. Surpassing the overload state.
|
||||
* It doesn't affect permissions. But it enables plugins change the
|
||||
* actual user permissions even in overload mode.
|
||||
*
|
||||
* @param userName
|
||||
* @return
|
||||
* @return user object
|
||||
*/
|
||||
public User surpassOverload(String userName) {
|
||||
if (!isOverloaded(userName)) {
|
||||
|
@@ -38,27 +38,30 @@ import org.yaml.snakeyaml.reader.UnicodeReader;
|
||||
public class WorldDataHolder {
|
||||
|
||||
/**
|
||||
*
|
||||
* World name
|
||||
*/
|
||||
protected String name;
|
||||
/**
|
||||
* The actual groups holder
|
||||
*/
|
||||
protected Map<String, Group> groups = new HashMap<String, Group>();
|
||||
/**
|
||||
/**
|
||||
* The actual users holder
|
||||
*/
|
||||
protected Map<String, User> users = new HashMap<String, User>();
|
||||
/**
|
||||
|
||||
/**
|
||||
* Points to the default group
|
||||
*/
|
||||
protected Group defaultGroup = null;
|
||||
|
||||
/**
|
||||
* The file, which this class loads/save data from/to
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
protected File f;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@@ -79,8 +82,17 @@ public class WorldDataHolder {
|
||||
*
|
||||
*/
|
||||
protected boolean haveGroupsChanged = false;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
protected long timeStampGroups = 0;
|
||||
/**
|
||||
*
|
||||
*/
|
||||
protected long timeStampUsers = 0;
|
||||
|
||||
|
||||
/**
|
||||
* Prevent direct instantiation
|
||||
* @param worldName
|
||||
*/
|
||||
@@ -151,7 +163,7 @@ public class WorldDataHolder {
|
||||
/**
|
||||
*
|
||||
* @param userName
|
||||
* @return
|
||||
* @return true if we have data for this player.
|
||||
*/
|
||||
public boolean isUserDeclared(String userName) {
|
||||
return users.containsKey(userName.toLowerCase());
|
||||
@@ -183,7 +195,10 @@ public class WorldDataHolder {
|
||||
* @return a group if it is found. null if not found.
|
||||
*/
|
||||
public Group getGroup(String groupName) {
|
||||
return groups.get(groupName.toLowerCase());
|
||||
if (groupName.startsWith("g:"))
|
||||
return GroupManager.getGlobalGroups().getGroup(groupName);
|
||||
else
|
||||
return groups.get(groupName.toLowerCase());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -193,7 +208,10 @@ public class WorldDataHolder {
|
||||
* @return true if exists. false if not.
|
||||
*/
|
||||
public boolean groupExists(String groupName) {
|
||||
return groups.containsKey(groupName.toLowerCase());
|
||||
if (groupName.startsWith("g:"))
|
||||
return GroupManager.getGlobalGroups().hasGroup(groupName);
|
||||
else
|
||||
return groups.containsKey(groupName.toLowerCase());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -201,6 +219,11 @@ public class WorldDataHolder {
|
||||
* @param groupToAdd
|
||||
*/
|
||||
public void addGroup(Group groupToAdd) {
|
||||
if (groupToAdd.getName().startsWith("g:")) {
|
||||
GroupManager.getGlobalGroups().addGroup(groupToAdd);
|
||||
return;
|
||||
}
|
||||
|
||||
if (groupToAdd.getDataSource() != this) {
|
||||
groupToAdd = groupToAdd.clone(this);
|
||||
}
|
||||
@@ -215,6 +238,10 @@ public class WorldDataHolder {
|
||||
* @return true if had something to remove. false the group was default or non-existant
|
||||
*/
|
||||
public boolean removeGroup(String groupName) {
|
||||
if (groupName.startsWith("g:")) {
|
||||
return GroupManager.getGlobalGroups().removeGroup(groupName);
|
||||
}
|
||||
|
||||
if (defaultGroup != null && groupName.equalsIgnoreCase(defaultGroup.getName())) {
|
||||
return false;
|
||||
}
|
||||
@@ -251,10 +278,16 @@ public class WorldDataHolder {
|
||||
* @return null if group already exists. or new Group
|
||||
*/
|
||||
public Group createGroup(String groupName) {
|
||||
if (this.groups.containsKey(groupName.toLowerCase())) {
|
||||
if (groupName.startsWith("g:")) {
|
||||
Group newGroup = new Group(groupName);
|
||||
return GroupManager.getGlobalGroups().newGroup(newGroup);
|
||||
}
|
||||
|
||||
if (this.groups.containsKey(groupName.toLowerCase())) {
|
||||
return null;
|
||||
}
|
||||
Group newGroup = new Group(this, groupName);
|
||||
|
||||
Group newGroup = new Group(this, groupName);
|
||||
this.addGroup(newGroup);
|
||||
haveGroupsChanged = true;
|
||||
return newGroup;
|
||||
@@ -281,14 +314,68 @@ public class WorldDataHolder {
|
||||
*/
|
||||
public void reload() {
|
||||
try {
|
||||
WorldDataHolder ph = load(this.getName(), getGroupsFile(), getUsersFile());
|
||||
this.defaultGroup = ph.defaultGroup;
|
||||
this.groups = ph.groups;
|
||||
this.users = ph.users;
|
||||
reloadGroups();
|
||||
reloadUsers();
|
||||
} catch (Exception ex) {
|
||||
Logger.getLogger(WorldDataHolder.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Refresh Group data from file
|
||||
*/
|
||||
public void reloadGroups() {
|
||||
GroupManager.setLoaded(false);
|
||||
try {
|
||||
// temporary holder in case the load fails.
|
||||
WorldDataHolder ph = new WorldDataHolder(this.getName());
|
||||
|
||||
loadGroups(ph, getGroupsFile());
|
||||
// transfer new data
|
||||
resetGroups();
|
||||
for (Group tempGroup : ph.getGroupList()) {
|
||||
tempGroup.clone(this);
|
||||
}
|
||||
this.setDefaultGroup(this.getGroup(ph.getDefaultGroup().getName()));
|
||||
this.removeGroupsChangedFlag();
|
||||
this.timeStampGroups = ph.getTimeStampGroups();
|
||||
|
||||
ph = null;
|
||||
} catch (Exception ex) {
|
||||
Logger.getLogger(WorldDataHolder.class.getName()).log(Level.WARNING, null, ex);
|
||||
}
|
||||
GroupManager.setLoaded(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Refresh Users data from file
|
||||
*/
|
||||
public void reloadUsers() {
|
||||
GroupManager.setLoaded(false);
|
||||
try {
|
||||
// temporary holder in case the load fails.
|
||||
WorldDataHolder ph = new WorldDataHolder(this.getName());
|
||||
// copy groups for reference
|
||||
for (Group tempGroup : this.getGroupList()) {
|
||||
tempGroup.clone(ph);
|
||||
}
|
||||
// setup the default group before loading user data.
|
||||
ph.setDefaultGroup(ph.getGroup(this.getDefaultGroup().getName()));
|
||||
loadUsers(ph, getUsersFile());
|
||||
// transfer new data
|
||||
resetUsers();
|
||||
for (User tempUser : ph.getUserList()) {
|
||||
tempUser.clone(this);
|
||||
}
|
||||
this.removeUsersChangedFlag();
|
||||
this.timeStampUsers = ph.getTimeStampUsers();
|
||||
|
||||
ph = null;
|
||||
} catch (Exception ex) {
|
||||
Logger.getLogger(WorldDataHolder.class.getName()).log(Level.WARNING, null, ex);
|
||||
}
|
||||
GroupManager.setLoaded(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Save by yourself!
|
||||
@@ -302,9 +389,11 @@ public class WorldDataHolder {
|
||||
|
||||
/**
|
||||
* Returns a data holder for the given file
|
||||
*
|
||||
* @param worldName
|
||||
* @param file
|
||||
* @return
|
||||
* @return a new WorldDataHolder
|
||||
*
|
||||
* @throws Exception
|
||||
* @deprecated
|
||||
*/
|
||||
@@ -448,26 +537,43 @@ public class WorldDataHolder {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a data holder for the given file
|
||||
* Returns a NEW data holder containing data read from the files
|
||||
*
|
||||
* @param worldName
|
||||
* @param groupsFile
|
||||
* @param usersFile
|
||||
* @return
|
||||
*
|
||||
* @throws FileNotFoundException
|
||||
* @throws IOException
|
||||
*/
|
||||
public static WorldDataHolder load(String worldName, File groupsFile, File usersFile) throws FileNotFoundException, IOException {
|
||||
WorldDataHolder ph = new WorldDataHolder(worldName);
|
||||
|
||||
GroupManager.setLoaded(false);
|
||||
loadGroups(ph, groupsFile);
|
||||
loadUsers(ph, usersFile);
|
||||
GroupManager.setLoaded(true);
|
||||
|
||||
return ph;
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the WorldDataHolder from the Groups file
|
||||
*
|
||||
* @param ph
|
||||
* @param groupsFile
|
||||
*
|
||||
* @throws FileNotFoundException
|
||||
* @throws IOException
|
||||
*/
|
||||
@SuppressWarnings({"rawtypes", "unchecked"})
|
||||
public static WorldDataHolder load(String worldName, File groupsFile, File usersFile) throws FileNotFoundException, IOException {
|
||||
WorldDataHolder ph = new WorldDataHolder(worldName);
|
||||
ph.groupsFile = groupsFile;
|
||||
ph.usersFile = usersFile;
|
||||
|
||||
protected static void loadGroups(WorldDataHolder ph, File groupsFile) throws FileNotFoundException, IOException {
|
||||
|
||||
//READ GROUPS FILE
|
||||
Yaml yamlGroups = new Yaml(new SafeConstructor());
|
||||
Map<String, Object> groupsRootDataNode;
|
||||
if (!groupsFile.exists()) {
|
||||
throw new IllegalArgumentException("The file which should contain permissions does not exist!\n" + groupsFile.getPath());
|
||||
throw new IllegalArgumentException("The file which should contain groups does not exist!\n" + groupsFile.getPath());
|
||||
}
|
||||
FileInputStream groupsInputStream = new FileInputStream(groupsFile);
|
||||
try {
|
||||
@@ -483,7 +589,7 @@ public class WorldDataHolder {
|
||||
|
||||
//PROCESS GROUPS FILE
|
||||
Map<String, List<String>> inheritance = new HashMap<String, List<String>>();
|
||||
try {
|
||||
//try {
|
||||
Map<String, Object> allGroupsNode = (Map<String, Object>) groupsRootDataNode.get("groups");
|
||||
for (String groupKey : allGroupsNode.keySet()) {
|
||||
Map<String, Object> thisGroupNode = (Map<String, Object>) allGroupsNode.get(groupKey);
|
||||
@@ -496,7 +602,7 @@ public class WorldDataHolder {
|
||||
}
|
||||
if ((Boolean.parseBoolean(thisGroupNode.get("default").toString()))) {
|
||||
if (ph.getDefaultGroup() != null) {
|
||||
GroupManager.logger.warning("The group " + thisGrp.getName() + " is declaring be default where" + ph.getDefaultGroup().getName() + " already was.");
|
||||
GroupManager.logger.warning("The group " + thisGrp.getName() + " is claiming to be default where" + ph.getDefaultGroup().getName() + " already was.");
|
||||
GroupManager.logger.warning("Overriding first request.");
|
||||
}
|
||||
ph.setDefaultGroup(thisGrp);
|
||||
@@ -513,36 +619,43 @@ public class WorldDataHolder {
|
||||
} else if (thisGroupNode.get("permissions") instanceof String) {
|
||||
thisGrp.addPermission((String) thisGroupNode.get("permissions"));
|
||||
} else {
|
||||
throw new IllegalArgumentException("Unknown type of permissions node(Should be String or List<String>): " + thisGroupNode.get("permissions").getClass().getName());
|
||||
throw new IllegalArgumentException("Unknown type of permissions node(Should be String or List<String>) for group: " + thisGrp.getName());
|
||||
}
|
||||
|
||||
//INFO NODE
|
||||
Map<String, Object> infoNode = (Map<String, Object>) thisGroupNode.get("info");
|
||||
if (infoNode != null) {
|
||||
thisGrp.setVariables(infoNode);
|
||||
}
|
||||
if (thisGroupNode.get("info") instanceof Map) {
|
||||
Map<String, Object> infoNode = (Map<String, Object>) thisGroupNode.get("info");
|
||||
if (infoNode != null) {
|
||||
thisGrp.setVariables(infoNode);
|
||||
}
|
||||
} else
|
||||
throw new IllegalArgumentException("Unknown entry found in Info section for group: " + thisGrp.getName());
|
||||
|
||||
|
||||
//END INFO NODE
|
||||
|
||||
Object inheritNode = thisGroupNode.get("inheritance");
|
||||
if (inheritNode == null) {
|
||||
thisGroupNode.put("inheritance", new ArrayList<String>());
|
||||
} else if (inheritNode instanceof List) {
|
||||
List<String> groupsInh = (List<String>) inheritNode;
|
||||
for (String grp : groupsInh) {
|
||||
if (inheritance.get(groupKey) == null) {
|
||||
List<String> thisInherits = new ArrayList<String>();
|
||||
inheritance.put(groupKey, thisInherits);
|
||||
}
|
||||
inheritance.get(groupKey).add(grp);
|
||||
|
||||
}
|
||||
}
|
||||
if (thisGroupNode.get("inheritance") == null || thisGroupNode.get("inheritance") instanceof List) {
|
||||
Object inheritNode = thisGroupNode.get("inheritance");
|
||||
if (inheritNode == null) {
|
||||
thisGroupNode.put("inheritance", new ArrayList<String>());
|
||||
} else if (inheritNode instanceof List) {
|
||||
List<String> groupsInh = (List<String>) inheritNode;
|
||||
for (String grp : groupsInh) {
|
||||
if (inheritance.get(groupKey) == null) {
|
||||
List<String> thisInherits = new ArrayList<String>();
|
||||
inheritance.put(groupKey, thisInherits);
|
||||
}
|
||||
inheritance.get(groupKey).add(grp);
|
||||
|
||||
}
|
||||
}
|
||||
}else
|
||||
throw new IllegalArgumentException("Unknown entry found in inheritance section for group: " + thisGrp.getName());
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
throw new IllegalArgumentException("Your Permissions config file is invalid. See console for details.");
|
||||
}
|
||||
//} catch (Exception ex) {
|
||||
// ex.printStackTrace();
|
||||
// throw new IllegalArgumentException("Your Permissions config file is invalid. See console for details.");
|
||||
//}
|
||||
if (ph.defaultGroup == null) {
|
||||
throw new IllegalArgumentException("There was no Default Group declared.");
|
||||
}
|
||||
@@ -556,13 +669,32 @@ public class WorldDataHolder {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ph.removeGroupsChangedFlag();
|
||||
// Update the LastModified time.
|
||||
ph.groupsFile = groupsFile;
|
||||
ph.setTimeStampGroups(groupsFile.lastModified());
|
||||
|
||||
|
||||
//return ph;
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the WorldDataHolder from the Users file
|
||||
*
|
||||
* @param ph
|
||||
* @param usersFile
|
||||
*
|
||||
* @throws FileNotFoundException
|
||||
* @throws IOException
|
||||
*/
|
||||
@SuppressWarnings({"rawtypes", "unchecked"})
|
||||
protected static void loadUsers(WorldDataHolder ph, File usersFile) throws FileNotFoundException, IOException {
|
||||
|
||||
//READ USERS FILE
|
||||
Yaml yamlUsers = new Yaml(new SafeConstructor());
|
||||
Map<String, Object> usersRootDataNode;
|
||||
if (!groupsFile.exists()) {
|
||||
throw new IllegalArgumentException("The file which should contain permissions does not exist!\n" + usersFile.getPath());
|
||||
if (!usersFile.exists()) {
|
||||
throw new IllegalArgumentException("The file which should contain users does not exist!\n" + usersFile.getPath());
|
||||
}
|
||||
FileInputStream usersInputStream = new FileInputStream(usersFile);
|
||||
try {
|
||||
@@ -581,7 +713,7 @@ public class WorldDataHolder {
|
||||
|
||||
// Stop loading if the file is empty
|
||||
if (allUsersNode == null)
|
||||
return ph;
|
||||
return ;
|
||||
|
||||
for (String usersKey : allUsersNode.keySet()) {
|
||||
Map<String, Object> thisUserNode = (Map<String, Object>) allUsersNode.get(usersKey);
|
||||
@@ -644,7 +776,13 @@ public class WorldDataHolder {
|
||||
thisUser.setGroup(ph.defaultGroup);
|
||||
}
|
||||
}
|
||||
return ph;
|
||||
|
||||
ph.removeUsersChangedFlag();
|
||||
// Update the LastModified time.
|
||||
ph.usersFile = usersFile;
|
||||
ph.setTimeStampUsers(usersFile.lastModified());
|
||||
|
||||
//return ph;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -777,6 +915,11 @@ public class WorldDataHolder {
|
||||
} catch (FileNotFoundException ex) {
|
||||
}
|
||||
}
|
||||
|
||||
// Update the LastModified time.
|
||||
ph.groupsFile = groupsFile;
|
||||
ph.setTimeStampGroups(groupsFile.lastModified());
|
||||
ph.removeGroupsChangedFlag();
|
||||
|
||||
/*FileWriter tx = null;
|
||||
try {
|
||||
@@ -842,6 +985,12 @@ public class WorldDataHolder {
|
||||
} catch (FileNotFoundException ex) {
|
||||
}
|
||||
}
|
||||
|
||||
// Update the LastModified time.
|
||||
ph.usersFile = usersFile;
|
||||
ph.setTimeStampUsers(usersFile.lastModified());
|
||||
ph.removeUsersChangedFlag();
|
||||
|
||||
/*FileWriter tx = null;
|
||||
try {
|
||||
tx = new FileWriter(usersFile, false);
|
||||
@@ -894,7 +1043,7 @@ public class WorldDataHolder {
|
||||
|
||||
/**
|
||||
*
|
||||
* @return
|
||||
* @return true if any user data has changed
|
||||
*/
|
||||
public boolean haveUsersChanged() {
|
||||
if (haveUsersChanged) {
|
||||
@@ -910,7 +1059,7 @@ public class WorldDataHolder {
|
||||
|
||||
/**
|
||||
*
|
||||
* @return
|
||||
* @return true if any group data has changed.
|
||||
*/
|
||||
public boolean haveGroupsChanged() {
|
||||
if (haveGroupsChanged) {
|
||||
@@ -964,4 +1113,64 @@ public class WorldDataHolder {
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Resets Groups.
|
||||
*/
|
||||
public void resetGroups() {
|
||||
this.defaultGroup = null;
|
||||
this.groups = new HashMap<String, Group>();
|
||||
}
|
||||
/**
|
||||
* Resets Users
|
||||
*/
|
||||
public void resetUsers() {
|
||||
this.users = new HashMap<String, User>();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the groups
|
||||
*/
|
||||
public Map<String, Group> getGroups() {
|
||||
return groups;
|
||||
}
|
||||
/**
|
||||
* @return the users
|
||||
*/
|
||||
public Map<String, User> getUsers() {
|
||||
return users;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the timeStampGroups
|
||||
*/
|
||||
public long getTimeStampGroups() {
|
||||
return timeStampGroups;
|
||||
}
|
||||
/**
|
||||
* @return the timeStampUsers
|
||||
*/
|
||||
public long getTimeStampUsers() {
|
||||
return timeStampUsers;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param timeStampGroups the timeStampGroups to set
|
||||
*/
|
||||
protected void setTimeStampGroups(long timeStampGroups) {
|
||||
this.timeStampGroups = timeStampGroups;
|
||||
}
|
||||
/**
|
||||
* @param timeStampUsers the timeStampUsers to set
|
||||
*/
|
||||
protected void setTimeStampUsers(long timeStampUsers) {
|
||||
this.timeStampUsers = timeStampUsers;
|
||||
}
|
||||
|
||||
public void setTimeStamps() {
|
||||
if (groupsFile != null)
|
||||
setTimeStampGroups(groupsFile.lastModified());
|
||||
if (usersFile != null)
|
||||
setTimeStampUsers(usersFile.lastModified());
|
||||
}
|
||||
}
|
||||
|
@@ -100,7 +100,7 @@ public class WorldsHolder {
|
||||
* or mirrored worlds that don't need data.
|
||||
*/
|
||||
if (!worldsData.containsKey(folder.getName().toLowerCase())
|
||||
|| !mirrors.containsKey(folder.getName().toLowerCase())) {
|
||||
&& !mirrors.containsKey(folder.getName().toLowerCase())) {
|
||||
loadWorld(folder.getName());
|
||||
}
|
||||
|
||||
@@ -149,6 +149,8 @@ public class WorldsHolder {
|
||||
w.reload();
|
||||
alreadyDone.add(w);
|
||||
}
|
||||
// Load global groups
|
||||
GroupManager.getGlobalGroups().load();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -158,44 +160,98 @@ public class WorldsHolder {
|
||||
public void reloadWorld(String worldName) {
|
||||
getWorldData(worldName).reload();
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper to retain backwards compatibility
|
||||
* (call this function to auto overwrite files)
|
||||
*/
|
||||
public void saveChanges() {
|
||||
saveChanges(true);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public void saveChanges() {
|
||||
public void saveChanges(boolean overwrite) {
|
||||
ArrayList<WorldDataHolder> alreadyDone = new ArrayList<WorldDataHolder>();
|
||||
Tasks.removeOldFiles(plugin, plugin.getBackupFolder());
|
||||
|
||||
for (OverloadedWorldHolder w : worldsData.values()) {
|
||||
if (alreadyDone.contains(w)) {
|
||||
continue;
|
||||
}
|
||||
Tasks.removeOldFiles(plugin, plugin.getBackupFolder());
|
||||
if (w == null) {
|
||||
GroupManager.logger.severe("WHAT HAPPENED?");
|
||||
continue;
|
||||
}
|
||||
if (w.haveGroupsChanged()) {
|
||||
//String groupsFolderName = w.getGroupsFile().getParentFile().getName();
|
||||
File backupGroups = new File(plugin.getBackupFolder(), "bkp_" + w.getName() + "_g_" + Tasks.getDateString() + ".yml");
|
||||
try {
|
||||
Tasks.copy(w.getGroupsFile(), backupGroups);
|
||||
} catch (IOException ex) {
|
||||
GroupManager.logger.log(Level.SEVERE, null, ex);
|
||||
}
|
||||
WorldDataHolder.writeGroups(w, w.getGroupsFile());
|
||||
w.removeGroupsChangedFlag();
|
||||
if (overwrite || (!overwrite && (w.getTimeStampGroups() >= w.getGroupsFile().lastModified()))) {
|
||||
// Backup Groups file
|
||||
backupFile(w,true);
|
||||
|
||||
WorldDataHolder.writeGroups(w, w.getGroupsFile());
|
||||
//w.removeGroupsChangedFlag();
|
||||
} else {
|
||||
// Newer file found.
|
||||
GroupManager.logger.log(Level.WARNING, "Newer Groups file found for " + w.getName() + ", but we have local changes!");
|
||||
throw new IllegalStateException("Unable to save unless you issue a '/mansave force'");
|
||||
}
|
||||
} else {
|
||||
//Check for newer file as no local changes.
|
||||
if (w.getTimeStampGroups() < w.getGroupsFile().lastModified()) {
|
||||
System.out.print("Newer Groups file found (Loading changes)!");
|
||||
// Backup Groups file
|
||||
backupFile(w,true);
|
||||
w.reloadGroups();
|
||||
}
|
||||
}
|
||||
if (w.haveUsersChanged()) {
|
||||
File backupUsers = new File(plugin.getBackupFolder(), "bkp_" + w.getName() + "_u_" + Tasks.getDateString() + ".yml");
|
||||
try {
|
||||
Tasks.copy(w.getUsersFile(), backupUsers);
|
||||
} catch (IOException ex) {
|
||||
GroupManager.logger.log(Level.SEVERE, null, ex);
|
||||
}
|
||||
WorldDataHolder.writeUsers(w, w.getUsersFile());
|
||||
w.removeUsersChangedFlag();
|
||||
if (overwrite || (!overwrite && (w.getTimeStampUsers() >= w.getUsersFile().lastModified()))) {
|
||||
// Backup Users file
|
||||
backupFile(w,false);
|
||||
|
||||
WorldDataHolder.writeUsers(w, w.getUsersFile());
|
||||
//w.removeUsersChangedFlag();
|
||||
} else {
|
||||
// Newer file found.
|
||||
GroupManager.logger.log(Level.WARNING, "Newer Users file found for " + w.getName() + ", but we have local changes!");
|
||||
throw new IllegalStateException("Unable to save unless you issue a '/mansave force'");
|
||||
}
|
||||
} else {
|
||||
//Check for newer file as no local changes.
|
||||
if (w.getTimeStampUsers() < w.getUsersFile().lastModified()) {
|
||||
System.out.print("Newer Users file found (Loading changes)!");
|
||||
// Backup Users file
|
||||
backupFile(w,false);
|
||||
w.reloadUsers();
|
||||
}
|
||||
}
|
||||
alreadyDone.add(w);
|
||||
}
|
||||
// Write Global Groups
|
||||
if (GroupManager.getGlobalGroups().haveGroupsChanged()) {
|
||||
GroupManager.getGlobalGroups().writeGroups(overwrite);
|
||||
} else {
|
||||
if (GroupManager.getGlobalGroups().getTimeStampGroups() < GroupManager.getGlobalGroups().getGlobalGroupsFile().lastModified()) {
|
||||
System.out.print("Newer GlobalGroups file found (Loading changes)!");
|
||||
GroupManager.getGlobalGroups().load();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Backup the Groups/Users file
|
||||
* @param w
|
||||
* @param groups
|
||||
*/
|
||||
private void backupFile(OverloadedWorldHolder w, Boolean groups) {
|
||||
|
||||
File backupFile = new File(plugin.getBackupFolder(), "bkp_" + w.getName() + (groups ? "_g_" : "_u_") + Tasks.getDateString() + ".yml");
|
||||
try {
|
||||
Tasks.copy((groups ? w.getGroupsFile() : w.getUsersFile()), backupFile);
|
||||
} catch (IOException ex) {
|
||||
GroupManager.logger.log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -209,7 +265,7 @@ public class WorldsHolder {
|
||||
* Mirrors prevails original data.
|
||||
*
|
||||
* @param worldName
|
||||
* @return
|
||||
* @return OverloadedWorldHolder
|
||||
*/
|
||||
public OverloadedWorldHolder getWorldData(String worldName) {
|
||||
OverloadedWorldHolder data = worldsData.get(worldName.toLowerCase());
|
||||
@@ -239,31 +295,31 @@ public class WorldsHolder {
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the field p.getWorld().getName() and do
|
||||
* Retrieves the field player.getWorld().getName() and do
|
||||
* getWorld(worldName)
|
||||
* @param p
|
||||
* @return
|
||||
* @param player
|
||||
* @return OverloadedWorldHolder
|
||||
*/
|
||||
public OverloadedWorldHolder getWorldData(Player p) {
|
||||
return getWorldData(p.getWorld().getName());
|
||||
public OverloadedWorldHolder getWorldData(Player player) {
|
||||
return getWorldData(player.getWorld().getName());
|
||||
}
|
||||
|
||||
/**
|
||||
* It does getWorld(worldName).getPermissionsHandler()
|
||||
* @param worldName
|
||||
* @return
|
||||
* @return AnjoPermissionsHandler
|
||||
*/
|
||||
public AnjoPermissionsHandler getWorldPermissions(String worldName) {
|
||||
return getWorldData(worldName).getPermissionsHandler();
|
||||
}
|
||||
|
||||
/**
|
||||
*It does getWorldData(p).getPermission
|
||||
* @param p
|
||||
* @return
|
||||
* Returns the PermissionsHandler for this player data
|
||||
* @param player
|
||||
* @return AnjoPermissionsHandler
|
||||
*/
|
||||
public AnjoPermissionsHandler getWorldPermissions(Player p) {
|
||||
return getWorldData(p).getPermissionsHandler();
|
||||
public AnjoPermissionsHandler getWorldPermissions(Player player) {
|
||||
return getWorldData(player).getPermissionsHandler();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -352,7 +408,7 @@ public class WorldsHolder {
|
||||
* Copies the specified world data to another world
|
||||
* @param fromWorld
|
||||
* @param toWorld
|
||||
* @return
|
||||
* @return true if successfully copied.
|
||||
*/
|
||||
public boolean cloneWorld(String fromWorld, String toWorld) {
|
||||
File fromWorldFolder = new File(worldsFolder, fromWorld);
|
||||
@@ -401,6 +457,10 @@ public class WorldsHolder {
|
||||
}
|
||||
try {
|
||||
OverloadedWorldHolder thisWorldData = new OverloadedWorldHolder(WorldDataHolder.load(worldName, groupsFile, usersFile));
|
||||
|
||||
// Set the file TimeStamps as it will be default from the initial load.
|
||||
thisWorldData.setTimeStamps();
|
||||
|
||||
if (thisWorldData != null) {
|
||||
GroupManager.logger.finest("Successful load of world " + worldName + "...");
|
||||
worldsData.put(worldName.toLowerCase(), thisWorldData);
|
||||
@@ -454,7 +514,7 @@ public class WorldsHolder {
|
||||
|
||||
/**
|
||||
* Returns all physically loaded worlds.
|
||||
* @return
|
||||
* @return ArrayList<OverloadedWorldHolder> of all loaded worlds
|
||||
*/
|
||||
public ArrayList<OverloadedWorldHolder> allWorldsDataList() {
|
||||
ArrayList<OverloadedWorldHolder> list = new ArrayList<OverloadedWorldHolder>();
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -150,8 +150,19 @@ public class BukkitPermissions {
|
||||
value = true;
|
||||
}
|
||||
|
||||
if (value == true)
|
||||
if (value == true){
|
||||
// Set the root permission
|
||||
attachment.setPermission(permission, value);
|
||||
// fetch and set all children of this permission node
|
||||
Map<String, Boolean> children = permission.getChildren();
|
||||
if (children != null) {
|
||||
for (String child : children.keySet()) {
|
||||
if (children.get(child))
|
||||
attachment.setPermission(child, true);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Add any missing permissions for this player (non bukkit plugins)
|
||||
@@ -171,6 +182,22 @@ public class BukkitPermissions {
|
||||
player.recalculatePermissions();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a map of the child permissions as defined by the supplying plugin
|
||||
* null is empty
|
||||
*
|
||||
* @param node
|
||||
* @return Map of child permissions
|
||||
*/
|
||||
public Map<String, Boolean> getChildren(String node) {
|
||||
for (Permission permission : registeredPermissions) {
|
||||
if (permission.getName() == node) {
|
||||
return permission.getChildren();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<String> listPerms(Player player) {
|
||||
List<String> perms = new ArrayList<String>();
|
||||
|
||||
|
@@ -16,6 +16,7 @@ import org.bukkit.entity.Player;
|
||||
*
|
||||
* @author Nijikokun
|
||||
* @author Gabriel Couto
|
||||
* @author ElgarL
|
||||
*/
|
||||
public abstract class PermissionsReaderInterface {
|
||||
|
||||
@@ -23,7 +24,7 @@ public abstract class PermissionsReaderInterface {
|
||||
*
|
||||
* @param player
|
||||
* @param string
|
||||
* @return
|
||||
* @return true if has permission
|
||||
*/
|
||||
public abstract boolean has(Player player, String string);
|
||||
|
||||
@@ -31,141 +32,141 @@ public abstract class PermissionsReaderInterface {
|
||||
*
|
||||
* @param player
|
||||
* @param string
|
||||
* @return
|
||||
* @return true if has permission
|
||||
*/
|
||||
public abstract boolean permission(Player player, String string);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string
|
||||
* @return
|
||||
* @param userName
|
||||
* @return group name for this player.
|
||||
*/
|
||||
public abstract String getGroup(String string);
|
||||
public abstract String getGroup(String userName);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string
|
||||
* @param string1
|
||||
* @return
|
||||
* @param userName
|
||||
* @param groupName
|
||||
* @return true if in group
|
||||
*/
|
||||
public abstract boolean inGroup(String string, String string1);
|
||||
public abstract boolean inGroup(String userName, String groupName);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string
|
||||
* @return
|
||||
* @param groupName
|
||||
* @return String of prefix
|
||||
*/
|
||||
public abstract String getGroupPrefix(String string);
|
||||
public abstract String getGroupPrefix(String groupName);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string
|
||||
* @return
|
||||
* @param groupName
|
||||
* @return String of suffix
|
||||
*/
|
||||
public abstract String getGroupSuffix(String string);
|
||||
public abstract String getGroupSuffix(String groupName);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string
|
||||
* @return
|
||||
* @param groupName
|
||||
* @return true if can build
|
||||
*/
|
||||
public abstract boolean canGroupBuild(String string);
|
||||
public abstract boolean canGroupBuild(String groupName);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string
|
||||
* @param string1
|
||||
* @return
|
||||
* @param groupName
|
||||
* @param node
|
||||
* @return String value
|
||||
*/
|
||||
public abstract String getGroupPermissionString(String string, String string1);
|
||||
public abstract String getGroupPermissionString(String groupName, String node);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string
|
||||
* @param string1
|
||||
* @return
|
||||
* @param groupName
|
||||
* @param node
|
||||
* @return integer value
|
||||
*/
|
||||
public abstract int getGroupPermissionInteger(String string, String string1);
|
||||
public abstract int getGroupPermissionInteger(String groupName, String node);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string
|
||||
* @param string1
|
||||
* @return
|
||||
* @param groupName
|
||||
* @param node
|
||||
* @return boolean value
|
||||
*/
|
||||
public abstract boolean getGroupPermissionBoolean(String string, String string1);
|
||||
public abstract boolean getGroupPermissionBoolean(String groupName, String node);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string
|
||||
* @param string1
|
||||
* @return
|
||||
* @param groupName
|
||||
* @param node
|
||||
* @return double value
|
||||
*/
|
||||
public abstract double getGroupPermissionDouble(String string, String string1);
|
||||
public abstract double getGroupPermissionDouble(String groupName, String node);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string
|
||||
* @param string1
|
||||
* @return
|
||||
* @param userName
|
||||
* @param node
|
||||
* @return String value
|
||||
*/
|
||||
public abstract String getUserPermissionString(String string, String string1);
|
||||
public abstract String getUserPermissionString(String userName, String node);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string
|
||||
* @param string1
|
||||
* @return
|
||||
* @param userName
|
||||
* @param node
|
||||
* @return integer value
|
||||
*/
|
||||
public abstract int getUserPermissionInteger(String string, String string1);
|
||||
public abstract int getUserPermissionInteger(String userName, String node);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string
|
||||
* @param string1
|
||||
* @return
|
||||
* @param userName
|
||||
* @param node
|
||||
* @return boolean value
|
||||
*/
|
||||
public abstract boolean getUserPermissionBoolean(String string, String string1);
|
||||
public abstract boolean getUserPermissionBoolean(String userName, String node);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string
|
||||
* @param string1
|
||||
* @return
|
||||
* @param userName
|
||||
* @param node
|
||||
* @return double value
|
||||
*/
|
||||
public abstract double getUserPermissionDouble(String string, String string1);
|
||||
public abstract double getUserPermissionDouble(String userName, String node);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string
|
||||
* @param string1
|
||||
* @return
|
||||
* @param userName
|
||||
* @param node
|
||||
* @return String value
|
||||
*/
|
||||
public abstract String getPermissionString(String string, String string1);
|
||||
public abstract String getPermissionString(String userName, String node);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string
|
||||
* @param string1
|
||||
* @return
|
||||
* @param userName
|
||||
* @param node
|
||||
* @return integer value
|
||||
*/
|
||||
public abstract int getPermissionInteger(String string, String string1);
|
||||
public abstract int getPermissionInteger(String userName, String node);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string
|
||||
* @param string1
|
||||
* @return
|
||||
* @param userName
|
||||
* @param node
|
||||
* @return boolean value
|
||||
*/
|
||||
public abstract boolean getPermissionBoolean(String string, String string1);
|
||||
public abstract boolean getPermissionBoolean(String userName, String node);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string
|
||||
* @param string1
|
||||
* @return
|
||||
* @param userName
|
||||
* @param node
|
||||
* @return double value
|
||||
*/
|
||||
public abstract double getPermissionDouble(String string, String string1);
|
||||
public abstract double getPermissionDouble(String userName, String node);
|
||||
|
||||
/////////////////////////////
|
||||
/**
|
||||
@@ -173,7 +174,7 @@ public abstract class PermissionsReaderInterface {
|
||||
* This method is a utility method for chat plugins to get the user's prefix
|
||||
* without having to look at every one of the user's ancestors.
|
||||
* Returns an empty string if user has no parent groups.
|
||||
* @param world Player's world
|
||||
*
|
||||
* @param user Player's name
|
||||
* @return Player's prefix
|
||||
*/
|
||||
@@ -184,7 +185,7 @@ public abstract class PermissionsReaderInterface {
|
||||
* This method is a utility method for chat plugins to get the user's suffix
|
||||
* without having to look at every one of the user's ancestors.
|
||||
* Returns an empty string if user has no parent groups.
|
||||
* @param world Player's world
|
||||
*
|
||||
* @param user Player's name
|
||||
* @return Player's suffix
|
||||
*/
|
||||
@@ -215,7 +216,7 @@ public abstract class PermissionsReaderInterface {
|
||||
* @param entryName
|
||||
* @param path
|
||||
* @param isGroup
|
||||
* @return
|
||||
* @return -1 if not found
|
||||
*/
|
||||
public abstract double getInfoDouble(String entryName, String path, boolean isGroup);
|
||||
//public abstract double getInfoDouble(String entryName, String path, boolean isGroup, Comparator<Double> comparator);
|
||||
|
@@ -1,5 +1,5 @@
|
||||
name: GroupManager
|
||||
version: "1.4 (Phoenix)"
|
||||
version: "1.5 (Phoenix)"
|
||||
main: org.anjocaido.groupmanager.GroupManager
|
||||
website: http://www.anjocaido.info/
|
||||
description: Provides on-the-fly system for permissions system created by Nijikokun. But all in memory, and with flat-file saving schedule.
|
||||
|
@@ -4,12 +4,12 @@ users:
|
||||
subgroups: []
|
||||
permissions: []
|
||||
group: Admin
|
||||
mudzereli:
|
||||
KHobbits:
|
||||
subgroups: []
|
||||
permissions: []
|
||||
group: Builder
|
||||
group: Moderator
|
||||
ElgarL:
|
||||
subgroups: []
|
||||
permissions: []
|
||||
group: Admin
|
||||
group: Owner
|
||||
|
||||
|
1
EssentialsUpdate/nbproject/pmd.settings
Normal file
1
EssentialsUpdate/nbproject/pmd.settings
Normal file
@@ -0,0 +1 @@
|
||||
DoNotUseThreads
|
@@ -0,0 +1,37 @@
|
||||
package com.earth2me.essentials.update;
|
||||
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
|
||||
public abstract class AbstractWorkListener
|
||||
{
|
||||
public AbstractWorkListener(final Plugin plugin, final VersionInfo newVersionInfo)
|
||||
{
|
||||
this.plugin = plugin;
|
||||
this.newVersionInfo = newVersionInfo;
|
||||
}
|
||||
private final transient Plugin plugin;
|
||||
private final transient VersionInfo newVersionInfo;
|
||||
|
||||
public final void onWorkAbort() {
|
||||
onWorkAbort(null);
|
||||
}
|
||||
|
||||
public abstract void onWorkAbort(String message);
|
||||
|
||||
public final void onWorkDone() {
|
||||
onWorkDone(null);
|
||||
}
|
||||
|
||||
public abstract void onWorkDone(String message);
|
||||
|
||||
public VersionInfo getNewVersionInfo()
|
||||
{
|
||||
return newVersionInfo;
|
||||
}
|
||||
|
||||
public Plugin getPlugin()
|
||||
{
|
||||
return plugin;
|
||||
}
|
||||
}
|
@@ -1,16 +1,16 @@
|
||||
package com.earth2me.essentials.update;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import org.bukkit.Bukkit;
|
||||
import com.earth2me.essentials.update.chat.Command;
|
||||
import com.earth2me.essentials.update.chat.ConfigCommand;
|
||||
import com.earth2me.essentials.update.chat.ErrorsCommand;
|
||||
import com.earth2me.essentials.update.chat.HelpCommand;
|
||||
import com.earth2me.essentials.update.chat.IrcBot;
|
||||
import com.earth2me.essentials.update.chat.ListCommand;
|
||||
import com.earth2me.essentials.update.chat.StartupCommand;
|
||||
import com.earth2me.essentials.update.chat.UsernameUtil;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -21,7 +21,6 @@ import org.bukkit.event.player.PlayerListener;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import org.jibble.pircbot.User;
|
||||
|
||||
|
||||
public class EssentialsHelp extends PlayerListener
|
||||
@@ -29,14 +28,19 @@ public class EssentialsHelp extends PlayerListener
|
||||
private transient Player chatUser;
|
||||
private final transient Server server;
|
||||
private final transient Plugin plugin;
|
||||
private final static Charset UTF8 = Charset.forName("utf-8");
|
||||
private transient IrcBot ircBot;
|
||||
private final transient Map<String, Command> commands = new HashMap<String, Command>();
|
||||
|
||||
public EssentialsHelp(final Plugin plugin)
|
||||
{
|
||||
super();
|
||||
this.plugin = plugin;
|
||||
this.server = plugin.getServer();
|
||||
commands.put("!help", new HelpCommand());
|
||||
commands.put("!list", new ListCommand());
|
||||
commands.put("!startup", new StartupCommand(plugin));
|
||||
commands.put("!errors", new ErrorsCommand(plugin));
|
||||
commands.put("!config", new ConfigCommand(plugin));
|
||||
}
|
||||
|
||||
public void registerEvents()
|
||||
@@ -46,7 +50,7 @@ public class EssentialsHelp extends PlayerListener
|
||||
pluginManager.registerEvent(Type.PLAYER_CHAT, this, Priority.Low, plugin);
|
||||
}
|
||||
|
||||
public void onCommand(CommandSender sender)
|
||||
public void onCommand(final CommandSender sender)
|
||||
{
|
||||
if (sender instanceof Player && sender.hasPermission("essentials.helpchat"))
|
||||
{
|
||||
@@ -74,11 +78,7 @@ public class EssentialsHelp extends PlayerListener
|
||||
|
||||
public void onDisable()
|
||||
{
|
||||
if ( ircBot != null)
|
||||
{
|
||||
ircBot.quit();
|
||||
ircBot = null;
|
||||
}
|
||||
closeConnection();
|
||||
}
|
||||
|
||||
private boolean sendChatMessage(final Player player, final String message)
|
||||
@@ -90,35 +90,19 @@ public class EssentialsHelp extends PlayerListener
|
||||
}
|
||||
if (ircBot == null)
|
||||
{
|
||||
if (messageCleaned.equalsIgnoreCase("yes"))
|
||||
{
|
||||
player.sendMessage("Connecting...");
|
||||
connectToIRC(player);
|
||||
return true;
|
||||
}
|
||||
if (messageCleaned.equalsIgnoreCase("no") || message.equalsIgnoreCase("!quit"))
|
||||
{
|
||||
chatUser = null;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
return handleAnswer(messageCleaned, player);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ircBot.isKicked()) {
|
||||
chatUser = null;
|
||||
ircBot.quit();
|
||||
ircBot = null;
|
||||
if (ircBot.isKicked())
|
||||
{
|
||||
closeConnection();
|
||||
return false;
|
||||
}
|
||||
final String lowMessage = messageCleaned.toLowerCase();
|
||||
final String lowMessage = messageCleaned.toLowerCase(Locale.ENGLISH);
|
||||
if (lowMessage.startsWith("!quit"))
|
||||
{
|
||||
chatUser = null;
|
||||
if (ircBot != null) {
|
||||
ircBot.quit();
|
||||
ircBot = null;
|
||||
}
|
||||
closeConnection();
|
||||
player.sendMessage("Connection closed.");
|
||||
return true;
|
||||
}
|
||||
@@ -126,52 +110,8 @@ public class EssentialsHelp extends PlayerListener
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (lowMessage.startsWith("!list"))
|
||||
if (handleCommands(lowMessage, player))
|
||||
{
|
||||
final User[] members = ircBot.getUsers();
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
for (User user : members)
|
||||
{
|
||||
if (sb.length() > 0)
|
||||
{
|
||||
sb.append("§f, ");
|
||||
}
|
||||
if (user.isOp() || user.hasVoice())
|
||||
{
|
||||
sb.append("§6");
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.append("§7");
|
||||
}
|
||||
sb.append(user.getPrefix()).append(user.getNick());
|
||||
}
|
||||
player.sendMessage(sb.toString());
|
||||
return true;
|
||||
}
|
||||
if (lowMessage.startsWith("!help"))
|
||||
{
|
||||
player.sendMessage("Commands: (Note: Files send to the chat will be public viewable.)");
|
||||
player.sendMessage("!errors - Send the last server errors to the chat.");
|
||||
player.sendMessage("!startup - Send the last startup messages to the chat.");
|
||||
player.sendMessage("!config - Sends your Essentials config to the chat.");
|
||||
player.sendMessage("!list - List all players in chat.");
|
||||
player.sendMessage("!quit - Leave chat.");
|
||||
return true;
|
||||
}
|
||||
if (lowMessage.startsWith("!errors"))
|
||||
{
|
||||
sendErrors();
|
||||
return true;
|
||||
}
|
||||
if (lowMessage.startsWith("!startup"))
|
||||
{
|
||||
sendStartup();
|
||||
return true;
|
||||
}
|
||||
if (lowMessage.startsWith("!config"))
|
||||
{
|
||||
sendConfig();
|
||||
return true;
|
||||
}
|
||||
ircBot.sendMessage(messageCleaned);
|
||||
@@ -180,300 +120,62 @@ public class EssentialsHelp extends PlayerListener
|
||||
}
|
||||
}
|
||||
|
||||
private String buildIrcName()
|
||||
private void closeConnection()
|
||||
{
|
||||
final StringBuilder nameBuilder = new StringBuilder();
|
||||
nameBuilder.append(chatUser.getName());
|
||||
|
||||
final Matcher versionMatch = Pattern.compile("git-Bukkit-([0-9]+).([0-9]+).([0-9]+)-[0-9]+-[0-9a-z]+-b([0-9]+)jnks.*").matcher(server.getVersion());
|
||||
if (versionMatch.matches())
|
||||
chatUser = null;
|
||||
if (ircBot != null)
|
||||
{
|
||||
nameBuilder.append(" CB");
|
||||
nameBuilder.append(versionMatch.group(4));
|
||||
ircBot.quit();
|
||||
ircBot = null;
|
||||
}
|
||||
}
|
||||
|
||||
final Plugin essentials = server.getPluginManager().getPlugin("Essentials");
|
||||
if (essentials != null)
|
||||
private boolean handleAnswer(final String message, final Player player)
|
||||
{
|
||||
if (message.equalsIgnoreCase("yes"))
|
||||
{
|
||||
nameBuilder.append(" ESS");
|
||||
nameBuilder.append(essentials.getDescription().getVersion());
|
||||
player.sendMessage("Connecting...");
|
||||
connectToIRC(player);
|
||||
return true;
|
||||
}
|
||||
|
||||
final Plugin groupManager = server.getPluginManager().getPlugin("GroupManager");
|
||||
if (groupManager != null)
|
||||
if (message.equalsIgnoreCase("no") || message.equalsIgnoreCase("!quit"))
|
||||
{
|
||||
nameBuilder.append(" GM");
|
||||
if (!groupManager.isEnabled())
|
||||
{
|
||||
nameBuilder.append('!');
|
||||
}
|
||||
chatUser = null;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
final Plugin pex = server.getPluginManager().getPlugin("PermissionsEx");
|
||||
if (pex != null)
|
||||
private boolean handleCommands(final String lowMessage, final Player player)
|
||||
{
|
||||
final String[] parts = lowMessage.split(" ");
|
||||
if (commands.containsKey(parts[0]))
|
||||
{
|
||||
nameBuilder.append(" PEX");
|
||||
if (!pex.isEnabled())
|
||||
{
|
||||
nameBuilder.append('!');
|
||||
}
|
||||
nameBuilder.append(pex.getDescription().getVersion());
|
||||
commands.get(parts[0]).run(ircBot, player);
|
||||
return true;
|
||||
}
|
||||
|
||||
final Plugin pb = server.getPluginManager().getPlugin("PermissionsBukkit");
|
||||
if (pb != null)
|
||||
{
|
||||
nameBuilder.append(" PB");
|
||||
if (!pb.isEnabled())
|
||||
{
|
||||
nameBuilder.append('!');
|
||||
}
|
||||
nameBuilder.append(pb.getDescription().getVersion());
|
||||
}
|
||||
|
||||
final Plugin bp = server.getPluginManager().getPlugin("bPermissions");
|
||||
if (bp != null)
|
||||
{
|
||||
nameBuilder.append(" BP");
|
||||
if (!bp.isEnabled())
|
||||
{
|
||||
nameBuilder.append('!');
|
||||
}
|
||||
nameBuilder.append(bp.getDescription().getVersion());
|
||||
}
|
||||
|
||||
final Plugin perm = server.getPluginManager().getPlugin("Permissions");
|
||||
if (perm != null)
|
||||
{
|
||||
nameBuilder.append(" P");
|
||||
if (!perm.isEnabled())
|
||||
{
|
||||
nameBuilder.append('!');
|
||||
}
|
||||
nameBuilder.append(perm.getDescription().getVersion());
|
||||
}
|
||||
|
||||
return nameBuilder.toString();
|
||||
return false;
|
||||
}
|
||||
|
||||
private void connectToIRC(final Player player)
|
||||
{
|
||||
ircBot = new IrcBot(player, "Ess_" + player.getName(), buildIrcName());
|
||||
}
|
||||
|
||||
private void sendErrors()
|
||||
{
|
||||
BufferedReader page = null;
|
||||
try
|
||||
{
|
||||
File bukkitFolder = plugin.getDataFolder().getAbsoluteFile().getParentFile().getParentFile();
|
||||
if (bukkitFolder == null || !bukkitFolder.exists())
|
||||
{
|
||||
chatUser.sendMessage("Bukkit folder not found.");
|
||||
return;
|
||||
}
|
||||
File logFile = new File(bukkitFolder, "server.log");
|
||||
if (!logFile.exists())
|
||||
{
|
||||
chatUser.sendMessage("Server log not found.");
|
||||
return;
|
||||
}
|
||||
FileInputStream fis = new FileInputStream(logFile);
|
||||
if (logFile.length() > 1000000)
|
||||
{
|
||||
fis.skip(logFile.length() - 1000000);
|
||||
}
|
||||
page = new BufferedReader(new InputStreamReader(fis));
|
||||
final StringBuilder input = new StringBuilder();
|
||||
String line;
|
||||
Pattern pattern = Pattern.compile("^[0-9 :-]+\\[INFO\\].*");
|
||||
while ((line = page.readLine()) != null)
|
||||
{
|
||||
if (!pattern.matcher(line).matches())
|
||||
{
|
||||
input.append(line).append("\n");
|
||||
}
|
||||
}
|
||||
if (input.length() > 10000)
|
||||
{
|
||||
input.delete(0, input.length() - 10000);
|
||||
}
|
||||
final PastieUpload pastie = new PastieUpload();
|
||||
final String url = pastie.send(input.toString());
|
||||
String message = "Errors: " + url;
|
||||
chatUser.sendMessage("§6" + ircBot.getNick() + ": §7" + message);
|
||||
ircBot.sendMessage(message);
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
Bukkit.getLogger().log(Level.SEVERE, null, ex);
|
||||
chatUser.sendMessage(ex.getMessage());
|
||||
}
|
||||
finally
|
||||
{
|
||||
try
|
||||
{
|
||||
if (page != null)
|
||||
{
|
||||
page.close();
|
||||
}
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
Logger.getLogger(EssentialsHelp.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void sendStartup()
|
||||
{
|
||||
BufferedReader page = null;
|
||||
try
|
||||
{
|
||||
File bukkitFolder = plugin.getDataFolder().getAbsoluteFile().getParentFile().getParentFile();
|
||||
if (bukkitFolder == null || !bukkitFolder.exists())
|
||||
{
|
||||
chatUser.sendMessage("Bukkit folder not found.");
|
||||
return;
|
||||
}
|
||||
File logFile = new File(bukkitFolder, "server.log");
|
||||
if (!logFile.exists())
|
||||
{
|
||||
chatUser.sendMessage("Server log not found.");
|
||||
return;
|
||||
}
|
||||
FileInputStream fis = new FileInputStream(logFile);
|
||||
if (logFile.length() > 1000000)
|
||||
{
|
||||
fis.skip(logFile.length() - 1000000);
|
||||
}
|
||||
page = new BufferedReader(new InputStreamReader(fis));
|
||||
final StringBuilder input = new StringBuilder();
|
||||
String line;
|
||||
Pattern patternStart = Pattern.compile("^[0-9 :-]+\\[INFO\\] Starting minecraft server version.*");
|
||||
Pattern patternEnd = Pattern.compile("^[0-9 :-]+\\[INFO\\] Done \\([0-9.,]+s\\)! For help, type \"help\".*");
|
||||
boolean log = false;
|
||||
while ((line = page.readLine()) != null)
|
||||
{
|
||||
if (patternStart.matcher(line).matches())
|
||||
{
|
||||
if (input.length() > 0)
|
||||
{
|
||||
input.delete(0, input.length());
|
||||
}
|
||||
log = true;
|
||||
}
|
||||
if (log)
|
||||
{
|
||||
input.append(line).append("\n");
|
||||
}
|
||||
if (patternEnd.matcher(line).matches())
|
||||
{
|
||||
log = false;
|
||||
}
|
||||
}
|
||||
if (input.length() > 10000)
|
||||
{
|
||||
input.delete(0, input.length() - 10000);
|
||||
}
|
||||
final PastieUpload pastie = new PastieUpload();
|
||||
final String url = pastie.send(input.toString());
|
||||
String message = "Startup: " + url;
|
||||
chatUser.sendMessage("§6" + ircBot.getNick() + ": §7" + message);
|
||||
ircBot.sendMessage(message);
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
Bukkit.getLogger().log(Level.SEVERE, null, ex);
|
||||
chatUser.sendMessage(ex.getMessage());
|
||||
}
|
||||
finally
|
||||
{
|
||||
try
|
||||
{
|
||||
if (page != null)
|
||||
{
|
||||
page.close();
|
||||
}
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
Logger.getLogger(EssentialsHelp.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void sendConfig()
|
||||
{
|
||||
BufferedReader page = null;
|
||||
try
|
||||
{
|
||||
File configFolder = new File(plugin.getDataFolder().getParentFile(), "Essentials");
|
||||
if (!configFolder.exists())
|
||||
{
|
||||
chatUser.sendMessage("Essentials plugin folder not found.");
|
||||
return;
|
||||
}
|
||||
File configFile = new File(configFolder, "config.yml");
|
||||
if (!configFile.exists())
|
||||
{
|
||||
chatUser.sendMessage("Essentials config file not found.");
|
||||
return;
|
||||
}
|
||||
page = new BufferedReader(new InputStreamReader(new FileInputStream(configFile), UTF8));
|
||||
final StringBuilder input = new StringBuilder();
|
||||
String line;
|
||||
while ((line = page.readLine()) != null)
|
||||
{
|
||||
input.append(line).append("\n");
|
||||
}
|
||||
final PastieUpload pastie = new PastieUpload();
|
||||
final String url = pastie.send(input.toString());
|
||||
String message = "Essentials config.yml: " + url;
|
||||
chatUser.sendMessage("§6" + ircBot.getNick() + ": §7" + message);
|
||||
ircBot.sendMessage(message);
|
||||
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
Bukkit.getLogger().log(Level.SEVERE, null, ex);
|
||||
chatUser.sendMessage(ex.getMessage());
|
||||
}
|
||||
finally
|
||||
{
|
||||
try
|
||||
{
|
||||
if (page != null)
|
||||
{
|
||||
page.close();
|
||||
}
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
Logger.getLogger(EssentialsHelp.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
ircBot = new IrcBot(player, "Ess_" + player.getName(), UsernameUtil.createUsername(player));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerChat(PlayerChatEvent event)
|
||||
public void onPlayerChat(final PlayerChatEvent event)
|
||||
{
|
||||
if (event.getPlayer() == chatUser)
|
||||
{
|
||||
boolean success = sendChatMessage(event.getPlayer(), event.getMessage());
|
||||
final boolean success = sendChatMessage(event.getPlayer(), event.getMessage());
|
||||
event.setCancelled(success);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerQuit(PlayerQuitEvent event)
|
||||
public void onPlayerQuit(final PlayerQuitEvent event)
|
||||
{
|
||||
chatUser = null;
|
||||
if (ircBot != null) {
|
||||
ircBot.quit();
|
||||
ircBot = null;
|
||||
}
|
||||
return;
|
||||
closeConnection();
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,7 @@
|
||||
package com.earth2me.essentials.update;
|
||||
|
||||
import com.earth2me.essentials.update.UpdateCheck.CheckResult;
|
||||
import java.util.logging.Level;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@@ -16,26 +17,20 @@ public class EssentialsUpdate extends JavaPlugin
|
||||
public void onEnable()
|
||||
{
|
||||
if (!getDataFolder().exists() && !getDataFolder().mkdirs() ) {
|
||||
Bukkit.getLogger().severe("Could not create data folder:"+getDataFolder().getPath());
|
||||
Bukkit.getLogger().log(Level.SEVERE, "Could not create data folder: {0}", getDataFolder().getPath());
|
||||
}
|
||||
essentialsHelp = new EssentialsHelp(this);
|
||||
essentialsHelp.registerEvents();
|
||||
|
||||
final UpdateCheck updateCheck = new UpdateCheck(this);
|
||||
updateCheck.checkForUpdates();
|
||||
updateProcess = new UpdateProcess(this, updateCheck);
|
||||
updateProcess.registerEvents();
|
||||
|
||||
Bukkit.getLogger().info("EssentialsUpdate " + getDescription().getVersion() + " loaded.");
|
||||
Bukkit.getLogger().log(Level.INFO, "EssentialsUpdate {0} loaded.", getDescription().getVersion());
|
||||
|
||||
if (updateCheck.isEssentialsInstalled())
|
||||
{
|
||||
updateCheck.checkForUpdates();
|
||||
final Version myVersion = new Version(getDescription().getVersion());
|
||||
if (updateCheck.getResult() == CheckResult.NEW_ESS && myVersion.equals(updateCheck.getNewVersion()))
|
||||
{
|
||||
Bukkit.getLogger().info("Versions of EssentialsUpdate and Essentials do not match. Starting automatic update.");
|
||||
updateProcess.doAutomaticUpdate();
|
||||
}
|
||||
updateCheck.scheduleUpdateTask();
|
||||
}
|
||||
else
|
||||
|
@@ -12,7 +12,8 @@ import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.security.MessageDigest;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.logging.Logger;
|
||||
import java.util.logging.Level;
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
|
||||
public class GetFile
|
||||
@@ -22,7 +23,11 @@ public class GetFile
|
||||
|
||||
public GetFile(final String urlString) throws MalformedURLException, IOException
|
||||
{
|
||||
final URL url = new URL(urlString);
|
||||
this(new URL(urlString));
|
||||
}
|
||||
|
||||
public GetFile(final URL url) throws IOException
|
||||
{
|
||||
this.connection = url.openConnection();
|
||||
this.connection.setConnectTimeout(1000);
|
||||
this.connection.setReadTimeout(5000);
|
||||
@@ -49,7 +54,7 @@ public class GetFile
|
||||
}
|
||||
catch (NoSuchAlgorithmException ex)
|
||||
{
|
||||
// Ignore because the code is never called
|
||||
throw new RuntimeException(ex);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -97,7 +102,7 @@ public class GetFile
|
||||
}
|
||||
if (brokenFile && !file.delete())
|
||||
{
|
||||
Logger.getLogger("Minecraft").severe("Could not delete file " + file.getPath());
|
||||
Bukkit.getLogger().log(Level.SEVERE, "Could not delete file {0}", file.getPath());
|
||||
}
|
||||
}
|
||||
finally
|
||||
|
@@ -3,7 +3,6 @@ package com.earth2me.essentials.update;
|
||||
import java.io.File;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import org.bukkit.Bukkit;
|
||||
@@ -22,7 +21,7 @@ public class UpdateCheck
|
||||
private final transient Plugin plugin;
|
||||
private transient boolean essentialsInstalled;
|
||||
|
||||
public UpdateCheck(Plugin plugin)
|
||||
public UpdateCheck(final Plugin plugin)
|
||||
{
|
||||
this.plugin = plugin;
|
||||
updateFile = new UpdateFile(plugin);
|
||||
@@ -31,21 +30,20 @@ public class UpdateCheck
|
||||
|
||||
private void checkForEssentials()
|
||||
{
|
||||
PluginManager pm = plugin.getServer().getPluginManager();
|
||||
Plugin essentials = pm.getPlugin("Essentials");
|
||||
if (essentials == null)
|
||||
final PluginManager pluginManager = plugin.getServer().getPluginManager();
|
||||
final Plugin essentials = pluginManager.getPlugin("Essentials");
|
||||
essentialsInstalled = essentials != null;
|
||||
if (essentialsInstalled)
|
||||
{
|
||||
currentVersion = new Version(essentials.getDescription().getVersion());
|
||||
}
|
||||
else
|
||||
{
|
||||
essentialsInstalled = false;
|
||||
if (new File(plugin.getDataFolder().getParentFile(), "Essentials.jar").exists())
|
||||
{
|
||||
Bukkit.getLogger().severe("Essentials.jar found, but not recognized by Bukkit. Broken download?");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
essentialsInstalled = true;
|
||||
currentVersion = new Version(essentials.getDescription().getVersion());
|
||||
}
|
||||
}
|
||||
|
||||
public void scheduleUpdateTask()
|
||||
@@ -71,16 +69,17 @@ public class UpdateCheck
|
||||
return result;
|
||||
}
|
||||
|
||||
int getNewBukkitVersion()
|
||||
public int getNewBukkitVersion()
|
||||
{
|
||||
return bukkitResult;
|
||||
}
|
||||
|
||||
VersionInfo getNewVersionInfo()
|
||||
public VersionInfo getNewVersionInfo()
|
||||
{
|
||||
return updateFile.getVersions().get(newVersion);
|
||||
}
|
||||
|
||||
|
||||
public enum CheckResult
|
||||
{
|
||||
NEW_ESS, NEW_ESS_BUKKIT, NEW_BUKKIT, OK, UNKNOWN
|
||||
|
@@ -14,13 +14,14 @@ import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
|
||||
|
||||
public class UpdateFile
|
||||
{
|
||||
private final static Logger LOGGER = Logger.getLogger("Minecraft");
|
||||
private final static Logger LOGGER = Bukkit.getLogger();
|
||||
private final static String UPDATE_URL = "http://goo.gl/67jev";
|
||||
private final static BigInteger PUBLIC_KEY = new BigInteger("5ha6a2d4qdy17ttkg8evh74sl5a87djojwenu12k1lvy8ui6003e6l06rntczpoh99mhc3txj8mqlxw111oyy9yl7s7qpyluyzix3j1odxrxx4u52gxvyu6qiteapczkzvi7rxgeqsozz7b19rdx73a7quo9ybwpz1cr82r7x5k0pg2a73pjjsv2j1awr13azo7klrcxp9y5xxwf5qv1s3tw4zqftli18u0ek5qkbzfbgk1v5n2f11pkwwk6p0mibrn26wnjbv11vyiqgu95o7busmt6vf5q7grpcenl637w83mbin56s3asj1131b2mscj9xep3cbj7la9tgsxl5bj87vzy8sk2d34kzwqdqgh9nry43nqqus12l1stmiv184r8r3jcy8w43e8h1u1mzklldb5eytkuhayqik8l3ns04hwt8sgacvw534be8sx26qrn5s1", 36);
|
||||
private final transient File file;
|
||||
|
@@ -1,9 +1,14 @@
|
||||
package com.earth2me.essentials.update;
|
||||
|
||||
import java.util.List;
|
||||
import com.earth2me.essentials.update.states.InstallationFinishedEvent;
|
||||
import com.earth2me.essentials.update.states.StateMachine;
|
||||
import com.earth2me.essentials.update.tasks.SelfUpdate;
|
||||
import java.util.logging.Level;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.CustomEventListener;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.Event.Priority;
|
||||
import org.bukkit.event.Event.Type;
|
||||
import org.bukkit.event.player.PlayerChatEvent;
|
||||
@@ -18,35 +23,125 @@ public class UpdateProcess extends PlayerListener
|
||||
private transient Player currentPlayer;
|
||||
private final transient Plugin plugin;
|
||||
private final transient UpdateCheck updateCheck;
|
||||
|
||||
private transient StateMachine stateMachine;
|
||||
|
||||
public UpdateProcess(final Plugin plugin, final UpdateCheck updateCheck)
|
||||
{
|
||||
super();
|
||||
this.plugin = plugin;
|
||||
this.updateCheck = updateCheck;
|
||||
}
|
||||
|
||||
|
||||
public void registerEvents()
|
||||
{
|
||||
final PluginManager pluginManager = plugin.getServer().getPluginManager();
|
||||
pluginManager.registerEvent(Type.PLAYER_QUIT, this, Priority.Low, plugin);
|
||||
pluginManager.registerEvent(Type.PLAYER_CHAT, this, Priority.Lowest, plugin);
|
||||
pluginManager.registerEvent(Type.PLAYER_JOIN, this, Priority.Normal, plugin);
|
||||
pluginManager.registerEvent(Type.CUSTOM_EVENT, new CustomEventListener()
|
||||
{
|
||||
@Override
|
||||
public void onCustomEvent(final Event event)
|
||||
{
|
||||
if (event instanceof InstallationFinishedEvent)
|
||||
{
|
||||
UpdateProcess.this.currentPlayer = null;
|
||||
}
|
||||
}
|
||||
}, Priority.Normal, plugin);
|
||||
}
|
||||
|
||||
|
||||
public boolean selfUpdate()
|
||||
{
|
||||
if (new Version(plugin.getDescription().getVersion()).compareTo(updateCheck.getNewVersion()) < 0)
|
||||
{
|
||||
if (currentPlayer != null)
|
||||
{
|
||||
currentPlayer.sendMessage("A newer version of EssentialsUpdate is found. Downloading new file and reloading server.");
|
||||
}
|
||||
Bukkit.getLogger().log(Level.INFO, "A newer version of EssentialsUpdate is found. Downloading new file and reloading server.");
|
||||
new SelfUpdate(new AbstractWorkListener(plugin, updateCheck.getNewVersionInfo())
|
||||
{
|
||||
@Override
|
||||
public void onWorkAbort(final String message)
|
||||
{
|
||||
if (message != null && !message.isEmpty()
|
||||
&& UpdateProcess.this.currentPlayer != null
|
||||
&& UpdateProcess.this.currentPlayer.isOnline())
|
||||
{
|
||||
UpdateProcess.this.currentPlayer.sendMessage(message);
|
||||
}
|
||||
if (message != null && !message.isEmpty())
|
||||
{
|
||||
Bukkit.getLogger().log(Level.SEVERE, message);
|
||||
}
|
||||
UpdateProcess.this.currentPlayer = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onWorkDone(final String message)
|
||||
{
|
||||
if (message != null && !message.isEmpty()
|
||||
&& UpdateProcess.this.currentPlayer != null
|
||||
&& UpdateProcess.this.currentPlayer.isOnline())
|
||||
{
|
||||
UpdateProcess.this.currentPlayer.sendMessage(message);
|
||||
}
|
||||
if (message != null && !message.isEmpty())
|
||||
{
|
||||
Bukkit.getLogger().log(Level.INFO, message);
|
||||
}
|
||||
UpdateProcess.this.currentPlayer = null;
|
||||
}
|
||||
}).start();
|
||||
return true;
|
||||
}
|
||||
if (updateCheck.getResult() == UpdateCheck.CheckResult.NEW_ESS_BUKKIT)
|
||||
{
|
||||
final String message = "Please update bukkit to version " + updateCheck.getNewBukkitVersion() + " before updating Essentials.";
|
||||
if (currentPlayer != null)
|
||||
{
|
||||
currentPlayer.sendMessage(message);
|
||||
}
|
||||
Bukkit.getLogger().log(Level.INFO, message);
|
||||
currentPlayer = null;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerChat(final PlayerChatEvent event)
|
||||
{
|
||||
if (event.getPlayer() == currentPlayer)
|
||||
{
|
||||
reactOnMessage(event.getMessage());
|
||||
final StateMachine.MachineResult result = stateMachine.reactOnMessage(event.getMessage());
|
||||
if (result == StateMachine.MachineResult.ABORT)
|
||||
{
|
||||
currentPlayer.sendMessage("Installation wizard aborted. You can restart it using /essentialsupdate.");
|
||||
currentPlayer = null;
|
||||
}
|
||||
if (result == StateMachine.MachineResult.DONE)
|
||||
{
|
||||
startWork();
|
||||
}
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onPlayerJoin(final PlayerJoinEvent event)
|
||||
{
|
||||
final Player player = event.getPlayer();
|
||||
if (currentPlayer.getName().equals(player.getName()))
|
||||
{
|
||||
currentPlayer = player;
|
||||
player.sendMessage("You quit the game, while the installation wizard was running.");
|
||||
player.sendMessage("The installation wizard will now resume.");
|
||||
player.sendMessage("You can exit the wizard by typing quit into the chat.");
|
||||
stateMachine.resumeInstallation(player);
|
||||
}
|
||||
if (player.hasPermission("essentials.update") && !updateCheck.isEssentialsInstalled())
|
||||
{
|
||||
player.sendMessage("Hello " + player.getDisplayName());
|
||||
@@ -70,44 +165,23 @@ public class UpdateProcess extends PlayerListener
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void doAutomaticUpdate()
|
||||
|
||||
public void onCommand(final CommandSender sender)
|
||||
{
|
||||
final UpdatesDownloader downloader = new UpdatesDownloader();
|
||||
final VersionInfo info = updateCheck.getNewVersionInfo();
|
||||
final List<String> changelog = info.getChangelog();
|
||||
Bukkit.getLogger().info("Essentials changelog " + updateCheck.getNewVersion().toString());
|
||||
for (String line : changelog)
|
||||
{
|
||||
Bukkit.getLogger().info(" - "+line);
|
||||
}
|
||||
downloader.start(plugin.getServer().getUpdateFolderFile(), info);
|
||||
}
|
||||
|
||||
void doManualUpdate()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void onCommand(CommandSender sender)
|
||||
{
|
||||
if (sender instanceof Player && sender.hasPermission("essentials.install"))
|
||||
if (sender instanceof Player && sender.hasPermission("essentials.update"))
|
||||
{
|
||||
if (currentPlayer == null)
|
||||
{
|
||||
currentPlayer = (Player)sender;
|
||||
if (updateCheck.isEssentialsInstalled())
|
||||
if (selfUpdate())
|
||||
{
|
||||
doManualUpdate();
|
||||
return;
|
||||
}
|
||||
else
|
||||
stateMachine = new StateMachine(plugin, currentPlayer, updateCheck);
|
||||
final StateMachine.MachineResult result = stateMachine.askQuestion();
|
||||
if (result == StateMachine.MachineResult.DONE)
|
||||
{
|
||||
sender.sendMessage("Thank you for choosing Essentials.");
|
||||
sender.sendMessage("The following installation wizard will guide you through the installation of Essentials.");
|
||||
sender.sendMessage("Your answers will be saved for a later update.");
|
||||
sender.sendMessage("Please answer the messages with yes or no, if not otherwise stated.");
|
||||
sender.sendMessage("Write bye/exit/quit if you want to exit the wizard at anytime.");
|
||||
|
||||
startWork();
|
||||
}
|
||||
}
|
||||
if (!currentPlayer.equals(sender))
|
||||
@@ -120,9 +194,17 @@ public class UpdateProcess extends PlayerListener
|
||||
sender.sendMessage("Please run the command as op from in game.");
|
||||
}
|
||||
}
|
||||
|
||||
private void reactOnMessage(String message)
|
||||
|
||||
private void startWork()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not yet implemented");
|
||||
currentPlayer.sendMessage("Installation wizard done. Starting installation.");
|
||||
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable()
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
stateMachine.startWork();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@@ -1,19 +0,0 @@
|
||||
package com.earth2me.essentials.update;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
|
||||
public class UpdatesDownloader
|
||||
{
|
||||
|
||||
UpdatesDownloader()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void start(File updateFolderFile, VersionInfo newVersion)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
}
|
@@ -147,7 +147,7 @@ public class Version implements Comparable<Version>
|
||||
hash = 71 * hash + this.major;
|
||||
hash = 71 * hash + this.minor;
|
||||
hash = 71 * hash + this.build;
|
||||
hash = 71 * hash + (this.type != null ? this.type.hashCode() : 0);
|
||||
hash = 71 * hash + (this.type == null ? 0 : this.type.hashCode());
|
||||
return hash;
|
||||
}
|
||||
|
||||
|
@@ -1,9 +1,10 @@
|
||||
package com.earth2me.essentials.update;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import org.bukkit.configuration.Configuration;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
public class VersionInfo
|
||||
@@ -11,18 +12,18 @@ public class VersionInfo
|
||||
private final transient List<String> changelog;
|
||||
private final transient int minBukkit;
|
||||
private final transient int maxBukkit;
|
||||
private final transient List<ModuleInfo> modules;
|
||||
private final transient Map<String, ModuleInfo> modules;
|
||||
|
||||
public VersionInfo(final Configuration updateConfig, final String path)
|
||||
{
|
||||
changelog = updateConfig.getList(path + ".changelog", Collections.<String>emptyList());
|
||||
minBukkit = updateConfig.getInt(path + ".min-bukkit", 0);
|
||||
maxBukkit = updateConfig.getInt(path + ".max-bukkit", 0);
|
||||
modules = new ArrayList<ModuleInfo>();
|
||||
modules = new HashMap<String, ModuleInfo>();
|
||||
final String modulesPath = path + ".modules";
|
||||
for (String module : updateConfig.getKeys(false))
|
||||
{
|
||||
modules.add(new ModuleInfo(updateConfig, modulesPath + module));
|
||||
modules.put(module, new ModuleInfo(updateConfig, modulesPath + module));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,8 +42,8 @@ public class VersionInfo
|
||||
return maxBukkit;
|
||||
}
|
||||
|
||||
public List<ModuleInfo> getModules()
|
||||
public Map<String, ModuleInfo> getModules()
|
||||
{
|
||||
return Collections.unmodifiableList(modules);
|
||||
return Collections.unmodifiableMap(modules);
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,77 @@
|
||||
package com.earth2me.essentials.update.chat;
|
||||
|
||||
import com.earth2me.essentials.update.PastieUpload;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.nio.charset.Charset;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
|
||||
public abstract class AbstractFileCommand implements Command
|
||||
{
|
||||
private final transient Plugin plugin;
|
||||
private final static Charset UTF8 = Charset.forName("utf-8");
|
||||
|
||||
public AbstractFileCommand(final Plugin plugin)
|
||||
{
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
protected BufferedReader getServerLogReader() throws IOException
|
||||
{
|
||||
final File bukkitFolder = plugin.getDataFolder().getAbsoluteFile().getParentFile().getParentFile();
|
||||
if (bukkitFolder == null || !bukkitFolder.exists())
|
||||
{
|
||||
throw new IOException("Bukkit folder not found.");
|
||||
}
|
||||
final File logFile = new File(bukkitFolder, "server.log");
|
||||
if (!logFile.exists())
|
||||
{
|
||||
throw new IOException("Server log not found.");
|
||||
}
|
||||
final FileInputStream fis = new FileInputStream(logFile);
|
||||
try
|
||||
{
|
||||
if (logFile.length() > 1000000)
|
||||
{
|
||||
fis.skip(logFile.length() - 1000000);
|
||||
}
|
||||
return new BufferedReader(new InputStreamReader(fis));
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
fis.close();
|
||||
throw ex;
|
||||
}
|
||||
}
|
||||
|
||||
protected BufferedReader getPluginConfig(final String pluginName, final String fileName) throws IOException
|
||||
{
|
||||
final File configFolder = new File(plugin.getDataFolder().getAbsoluteFile().getParentFile(), pluginName);
|
||||
if (!configFolder.exists())
|
||||
{
|
||||
throw new IOException(pluginName + " plugin folder not found.");
|
||||
}
|
||||
final File configFile = new File(configFolder, fileName);
|
||||
if (!configFile.exists())
|
||||
{
|
||||
throw new IOException(pluginName + " plugin file " + fileName + " not found.");
|
||||
}
|
||||
return new BufferedReader(new InputStreamReader(new FileInputStream(configFile), UTF8));
|
||||
|
||||
}
|
||||
|
||||
protected String uploadToPastie(final StringBuilder input) throws IOException
|
||||
{
|
||||
if (input.length() > 15000)
|
||||
{
|
||||
input.delete(0, input.length() - 15000);
|
||||
input.append("## Cropped after 15000 bytes");
|
||||
}
|
||||
final PastieUpload pastie = new PastieUpload();
|
||||
return pastie.send(input.toString());
|
||||
}
|
||||
}
|
@@ -0,0 +1,9 @@
|
||||
package com.earth2me.essentials.update.chat;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
||||
public interface Command
|
||||
{
|
||||
void run(final IrcBot ircBot, final Player player);
|
||||
}
|
@@ -0,0 +1,62 @@
|
||||
package com.earth2me.essentials.update.chat;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.util.logging.Level;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
|
||||
public class ConfigCommand extends AbstractFileCommand implements Command
|
||||
{
|
||||
public ConfigCommand(final Plugin plugin)
|
||||
{
|
||||
super(plugin);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(final IrcBot ircBot, final Player player)
|
||||
{
|
||||
BufferedReader page = null;
|
||||
try
|
||||
{
|
||||
page = getPluginConfig("Essentials", "config.yml");
|
||||
final StringBuilder input = new StringBuilder();
|
||||
do
|
||||
{
|
||||
final String line = page.readLine();
|
||||
if (line == null) {
|
||||
break;
|
||||
} else {
|
||||
input.append(line).append("\n");
|
||||
}
|
||||
} while (true);
|
||||
page.close();
|
||||
final String message = "Essentials config.yml: " + uploadToPastie(input);
|
||||
player.sendMessage("§6" + ircBot.getNick() + ": §7" + message);
|
||||
ircBot.sendMessage(message);
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
Bukkit.getLogger().log(Level.SEVERE, null, ex);
|
||||
player.sendMessage(ex.getMessage());
|
||||
}
|
||||
finally
|
||||
{
|
||||
try
|
||||
{
|
||||
if (page != null)
|
||||
{
|
||||
page.close();
|
||||
}
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
Bukkit.getLogger().log(Level.SEVERE, null, ex);
|
||||
player.sendMessage(ex.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@@ -0,0 +1,71 @@
|
||||
package com.earth2me.essentials.update.chat;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.util.logging.Level;
|
||||
import java.util.regex.Pattern;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
|
||||
public class ErrorsCommand extends AbstractFileCommand implements Command
|
||||
{
|
||||
private final transient Pattern pattern = Pattern.compile("^[0-9 :-]+\\[INFO\\].*");
|
||||
|
||||
public ErrorsCommand(final Plugin plugin)
|
||||
{
|
||||
super(plugin);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(final IrcBot ircBot, final Player player)
|
||||
{
|
||||
BufferedReader page = null;
|
||||
try
|
||||
{
|
||||
page = getServerLogReader();
|
||||
final StringBuilder input = new StringBuilder();
|
||||
do
|
||||
{
|
||||
final String line = page.readLine();
|
||||
if (line == null)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!pattern.matcher(line).matches())
|
||||
{
|
||||
input.append(line).append("\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
while (true);
|
||||
page.close();
|
||||
final String message = "Errors: " + uploadToPastie(input);
|
||||
player.sendMessage("§6" + ircBot.getNick() + ": §7" + message);
|
||||
ircBot.sendMessage(message);
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
Bukkit.getLogger().log(Level.SEVERE, null, ex);
|
||||
player.sendMessage(ex.getMessage());
|
||||
}
|
||||
finally
|
||||
{
|
||||
try
|
||||
{
|
||||
if (page != null)
|
||||
{
|
||||
page.close();
|
||||
}
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
Bukkit.getLogger().log(Level.SEVERE, null, ex);
|
||||
player.sendMessage(ex.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,18 @@
|
||||
package com.earth2me.essentials.update.chat;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
||||
public class HelpCommand implements Command
|
||||
{
|
||||
@Override
|
||||
public void run(final IrcBot ircBot, final Player player)
|
||||
{
|
||||
player.sendMessage("Commands: (Note: Files send to the chat will be public viewable.)");
|
||||
player.sendMessage("!errors - Send the last server errors to the chat.");
|
||||
player.sendMessage("!startup - Send the last startup messages to the chat.");
|
||||
player.sendMessage("!config - Sends your Essentials config to the chat.");
|
||||
player.sendMessage("!list - List all players in chat.");
|
||||
player.sendMessage("!quit - Leave chat.");
|
||||
}
|
||||
}
|
@@ -1,4 +1,4 @@
|
||||
package com.earth2me.essentials.update;
|
||||
package com.earth2me.essentials.update.chat;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.logging.Level;
|
||||
@@ -95,7 +95,9 @@ public class IrcBot extends PircBot
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onKick(String channel, String kickerNick, String kickerLogin, String kickerHostname, String recipientNick, String reason)
|
||||
protected void onKick(final String channel, final String kickerNick,
|
||||
final String kickerLogin, final String kickerHostname,
|
||||
final String recipientNick, final String reason)
|
||||
{
|
||||
if (recipientNick.equals(getNick()))
|
||||
{
|
||||
@@ -111,25 +113,33 @@ public class IrcBot extends PircBot
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onMessage(String channel, String sender, String login, String hostname, String message)
|
||||
protected void onMessage(final String channel, final String sender,
|
||||
final String login, final String hostname,
|
||||
final String message)
|
||||
{
|
||||
player.sendMessage(formatChatMessage(sender, message, false));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onAction(String sender, String login, String hostname, String target, String action)
|
||||
protected void onAction(final String sender, final String login,
|
||||
final String hostname, final String target,
|
||||
final String action)
|
||||
{
|
||||
player.sendMessage(formatChatMessage(sender, action, true));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onNotice(String sourceNick, String sourceLogin, String sourceHostname, String target, String notice)
|
||||
protected void onNotice(final String sourceNick, final String sourceLogin,
|
||||
final String sourceHostname, final String target,
|
||||
final String notice)
|
||||
{
|
||||
player.sendMessage(formatChatMessage(sourceNick, notice, false));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onTopic(String channel, String topic, String setBy, long date, boolean changed)
|
||||
protected void onTopic(final String channel, final String topic,
|
||||
final String setBy, final long date,
|
||||
final boolean changed)
|
||||
{
|
||||
player.sendMessage(formatChatMessage(channel, topic, false));
|
||||
}
|
@@ -0,0 +1,32 @@
|
||||
package com.earth2me.essentials.update.chat;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jibble.pircbot.User;
|
||||
|
||||
|
||||
public class ListCommand implements Command
|
||||
{
|
||||
@Override
|
||||
public void run(final IrcBot ircBot, final Player player)
|
||||
{
|
||||
final User[] members = ircBot.getUsers();
|
||||
final StringBuilder message = new StringBuilder();
|
||||
for (User user : members)
|
||||
{
|
||||
if (message.length() > 0)
|
||||
{
|
||||
message.append("§f, ");
|
||||
}
|
||||
if (user.isOp() || user.hasVoice())
|
||||
{
|
||||
message.append("§6");
|
||||
}
|
||||
else
|
||||
{
|
||||
message.append("§7");
|
||||
}
|
||||
message.append(user.getPrefix()).append(user.getNick());
|
||||
}
|
||||
player.sendMessage(message.toString());
|
||||
}
|
||||
}
|
@@ -0,0 +1,77 @@
|
||||
package com.earth2me.essentials.update.chat;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.util.logging.Level;
|
||||
import java.util.regex.Pattern;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
|
||||
public class StartupCommand extends AbstractFileCommand implements Command
|
||||
{
|
||||
private final transient Pattern patternStart = Pattern.compile("^[0-9 :-]+\\[INFO\\] Starting minecraft server version.*");
|
||||
private final transient Pattern patternEnd = Pattern.compile("^[0-9 :-]+\\[INFO\\] Done \\([0-9.,]+s\\)! For help, type \"help\".*");
|
||||
|
||||
public StartupCommand(final Plugin plugin)
|
||||
{
|
||||
super(plugin);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(final IrcBot ircBot, final Player player)
|
||||
{
|
||||
BufferedReader page = null;
|
||||
try
|
||||
{
|
||||
page = getServerLogReader();
|
||||
final StringBuilder input = new StringBuilder();
|
||||
String line;
|
||||
boolean log = false;
|
||||
while ((line = page.readLine()) != null)
|
||||
{
|
||||
if (patternStart.matcher(line).matches())
|
||||
{
|
||||
if (input.length() > 0)
|
||||
{
|
||||
input.delete(0, input.length());
|
||||
}
|
||||
log = true;
|
||||
}
|
||||
if (log)
|
||||
{
|
||||
input.append(line).append("\n");
|
||||
}
|
||||
if (patternEnd.matcher(line).matches())
|
||||
{
|
||||
log = false;
|
||||
}
|
||||
}
|
||||
page.close();
|
||||
final String message = "Startup: " + uploadToPastie(input);
|
||||
player.sendMessage("§6" + ircBot.getNick() + ": §7" + message);
|
||||
ircBot.sendMessage(message);
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
Bukkit.getLogger().log(Level.SEVERE, null, ex);
|
||||
player.sendMessage(ex.getMessage());
|
||||
}
|
||||
finally
|
||||
{
|
||||
try
|
||||
{
|
||||
if (page != null)
|
||||
{
|
||||
page.close();
|
||||
}
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
Bukkit.getLogger().log(Level.SEVERE, null, ex);
|
||||
player.sendMessage(ex.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,124 @@
|
||||
package com.earth2me.essentials.update.chat;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
|
||||
public final class UsernameUtil
|
||||
{
|
||||
private static final Pattern CB_PATTERN = Pattern.compile("git-Bukkit-([0-9]+).([0-9]+).([0-9]+)-[0-9]+-[0-9a-z]+-b([0-9]+)jnks.*");
|
||||
|
||||
private UsernameUtil()
|
||||
{
|
||||
}
|
||||
|
||||
public static String createUsername(final Player player)
|
||||
{
|
||||
final StringBuilder nameBuilder = new StringBuilder();
|
||||
final Server server = Bukkit.getServer();
|
||||
nameBuilder.append(player.getName());
|
||||
|
||||
addCraftBukkitVersion(server, nameBuilder);
|
||||
addEssentialsVersion(server, nameBuilder);
|
||||
addGroupManagerVersion(server, nameBuilder);
|
||||
addPermissionsExVersion(server, nameBuilder);
|
||||
addPermissionsBukkitVersion(server, nameBuilder);
|
||||
addBPermissionsVersion(server, nameBuilder);
|
||||
addPermissionsVersion(server, nameBuilder);
|
||||
|
||||
return nameBuilder.toString();
|
||||
}
|
||||
|
||||
private static void addPermissionsVersion(final Server server, final StringBuilder nameBuilder)
|
||||
{
|
||||
final Plugin perm = server.getPluginManager().getPlugin("Permissions");
|
||||
if (perm != null)
|
||||
{
|
||||
nameBuilder.append(" P");
|
||||
if (!perm.isEnabled())
|
||||
{
|
||||
nameBuilder.append('!');
|
||||
}
|
||||
nameBuilder.append(perm.getDescription().getVersion());
|
||||
}
|
||||
}
|
||||
|
||||
private static void addBPermissionsVersion(final Server server, final StringBuilder nameBuilder)
|
||||
{
|
||||
final Plugin bperm = server.getPluginManager().getPlugin("bPermissions");
|
||||
if (bperm != null)
|
||||
{
|
||||
nameBuilder.append(" BP");
|
||||
if (!bperm.isEnabled())
|
||||
{
|
||||
nameBuilder.append('!');
|
||||
}
|
||||
nameBuilder.append(bperm.getDescription().getVersion());
|
||||
}
|
||||
}
|
||||
|
||||
private static void addPermissionsBukkitVersion(final Server server, final StringBuilder nameBuilder)
|
||||
{
|
||||
final Plugin permb = server.getPluginManager().getPlugin("PermissionsBukkit");
|
||||
if (permb != null)
|
||||
{
|
||||
nameBuilder.append(" PB");
|
||||
if (!permb.isEnabled())
|
||||
{
|
||||
nameBuilder.append('!');
|
||||
}
|
||||
nameBuilder.append(permb.getDescription().getVersion());
|
||||
}
|
||||
}
|
||||
|
||||
private static void addPermissionsExVersion(final Server server, final StringBuilder nameBuilder)
|
||||
{
|
||||
final Plugin pex = server.getPluginManager().getPlugin("PermissionsEx");
|
||||
if (pex != null)
|
||||
{
|
||||
nameBuilder.append(" PEX");
|
||||
if (!pex.isEnabled())
|
||||
{
|
||||
nameBuilder.append('!');
|
||||
}
|
||||
nameBuilder.append(pex.getDescription().getVersion());
|
||||
}
|
||||
}
|
||||
|
||||
private static void addGroupManagerVersion(final Server server, final StringBuilder nameBuilder)
|
||||
{
|
||||
final Plugin groupManager = server.getPluginManager().getPlugin("GroupManager");
|
||||
if (groupManager != null)
|
||||
{
|
||||
nameBuilder.append(" GM");
|
||||
if (!groupManager.isEnabled())
|
||||
{
|
||||
nameBuilder.append('!');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void addEssentialsVersion(final Server server, final StringBuilder nameBuilder)
|
||||
{
|
||||
final Plugin essentials = server.getPluginManager().getPlugin("Essentials");
|
||||
if (essentials != null)
|
||||
{
|
||||
nameBuilder.append(" ESS");
|
||||
nameBuilder.append(essentials.getDescription().getVersion());
|
||||
}
|
||||
}
|
||||
|
||||
private static void addCraftBukkitVersion(final Server server, final StringBuilder nameBuilder)
|
||||
{
|
||||
final Matcher versionMatch = CB_PATTERN.matcher(server.getVersion());
|
||||
if (versionMatch.matches())
|
||||
{
|
||||
nameBuilder.append(" CB");
|
||||
nameBuilder.append(versionMatch.group(4));
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,113 @@
|
||||
package com.earth2me.essentials.update.states;
|
||||
|
||||
import com.earth2me.essentials.update.AbstractWorkListener;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
||||
public abstract class AbstractState
|
||||
{
|
||||
private transient boolean abortion = false;
|
||||
private final transient StateMap stateMap;
|
||||
|
||||
public AbstractState(final StateMap stateMap)
|
||||
{
|
||||
this.stateMap = stateMap;
|
||||
}
|
||||
|
||||
public <T extends AbstractState> T getState(final Class<? extends T> stateClass)
|
||||
{
|
||||
if (!stateMap.containsKey(stateClass))
|
||||
{
|
||||
try
|
||||
{
|
||||
final AbstractState state = stateClass.getConstructor(StateMap.class).newInstance(stateMap);
|
||||
stateMap.put(stateClass, state);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
/*
|
||||
* This should never happen.
|
||||
* All states that are added to the map automatically,
|
||||
* have to have a Constructor that accepts the StateMap.
|
||||
*/
|
||||
throw new RuntimeException(ex);
|
||||
}
|
||||
}
|
||||
return (T)stateMap.get(stateClass);
|
||||
}
|
||||
|
||||
public abstract AbstractState getNextState();
|
||||
|
||||
/**
|
||||
* Check if we already know the answer, so the user does not have to answer the question.
|
||||
*
|
||||
* @return true, if the answer could be guessed.
|
||||
*/
|
||||
public boolean guessAnswer()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ask the user the question.
|
||||
* @param sender
|
||||
*/
|
||||
public abstract void askQuestion(Player sender);
|
||||
|
||||
/**
|
||||
* React on the answer and set internal variables
|
||||
* @param answer
|
||||
* @return true, if the answer could be recognized as a valid answer
|
||||
*/
|
||||
public abstract boolean reactOnAnswer(String answer);
|
||||
|
||||
public final AbstractState reactOnAnswer(final Player sender, final String answer)
|
||||
{
|
||||
final String trimmedAnswer = answer.trim();
|
||||
if (trimmedAnswer.equalsIgnoreCase("quit")
|
||||
|| trimmedAnswer.equalsIgnoreCase("bye")
|
||||
|| trimmedAnswer.equalsIgnoreCase("abort")
|
||||
|| trimmedAnswer.equalsIgnoreCase("cancel")
|
||||
|| trimmedAnswer.equalsIgnoreCase("exit"))
|
||||
{
|
||||
abort();
|
||||
return null;
|
||||
}
|
||||
try
|
||||
{
|
||||
final boolean found = reactOnAnswer(trimmedAnswer);
|
||||
if (found)
|
||||
{
|
||||
return getNextState();
|
||||
}
|
||||
else
|
||||
{
|
||||
sender.sendMessage("Answer not recognized.");
|
||||
return this;
|
||||
}
|
||||
}
|
||||
catch (RuntimeException ex)
|
||||
{
|
||||
sender.sendMessage(ex.toString());
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Do something based on the answer, that the user gave.
|
||||
*/
|
||||
public void doWork(final AbstractWorkListener listener)
|
||||
{
|
||||
listener.onWorkDone();
|
||||
}
|
||||
|
||||
public boolean isAbortion()
|
||||
{
|
||||
return abortion;
|
||||
}
|
||||
|
||||
protected void abort()
|
||||
{
|
||||
abortion = true;
|
||||
}
|
||||
}
|
@@ -0,0 +1,57 @@
|
||||
package com.earth2me.essentials.update.states;
|
||||
|
||||
|
||||
public abstract class AbstractYesNoState extends AbstractState
|
||||
{
|
||||
private boolean answer = false;
|
||||
private final transient Class<? extends AbstractState> yesState;
|
||||
private final transient Class<? extends AbstractState> noState;
|
||||
|
||||
public AbstractYesNoState(final StateMap states, final Class<? extends AbstractState> nextState)
|
||||
{
|
||||
this(states, nextState, nextState);
|
||||
}
|
||||
|
||||
public AbstractYesNoState(final StateMap states, final Class<? extends AbstractState> yesState, final Class<? extends AbstractState> noState)
|
||||
{
|
||||
super(states);
|
||||
this.yesState = yesState;
|
||||
this.noState = noState;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AbstractState getNextState()
|
||||
{
|
||||
return answer
|
||||
? (yesState == null ? null : getState(yesState))
|
||||
: (noState == null ? null : getState(noState));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean reactOnAnswer(final String answer)
|
||||
{
|
||||
if (answer.equalsIgnoreCase("yes")
|
||||
|| answer.equalsIgnoreCase("y"))
|
||||
{
|
||||
this.answer = true;
|
||||
return true;
|
||||
}
|
||||
if (answer.equalsIgnoreCase("no")
|
||||
|| answer.equalsIgnoreCase("n"))
|
||||
{
|
||||
this.answer = false;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean getAnswer()
|
||||
{
|
||||
return answer;
|
||||
}
|
||||
|
||||
protected void setAnswer(final boolean answer)
|
||||
{
|
||||
this.answer = answer;
|
||||
}
|
||||
}
|
@@ -0,0 +1,20 @@
|
||||
package com.earth2me.essentials.update.states;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
||||
public class AdvancedMode extends AbstractYesNoState
|
||||
{
|
||||
public AdvancedMode(final StateMap states)
|
||||
{
|
||||
super(states, EssentialsChat.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void askQuestion(final Player sender)
|
||||
{
|
||||
sender.sendMessage("This installation mode has a lot of options.");
|
||||
sender.sendMessage("Do you want use the advanced mode to see all questions?");
|
||||
sender.sendMessage("Otherwise the default values will be used.");
|
||||
}
|
||||
}
|
@@ -0,0 +1,91 @@
|
||||
package com.earth2me.essentials.update.states;
|
||||
|
||||
import com.earth2me.essentials.update.UpdateCheck;
|
||||
import com.earth2me.essentials.update.VersionInfo;
|
||||
import java.util.List;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
||||
public class Changelog extends AbstractState
|
||||
{
|
||||
private static final int CHANGES_PER_PAGE = 5;
|
||||
private transient int page = 0;
|
||||
private transient boolean confirmed = false;
|
||||
private transient final List<String> changes;
|
||||
private transient final int pages;
|
||||
|
||||
public Changelog(final StateMap stateMap)
|
||||
{
|
||||
super(stateMap);
|
||||
changes = getChanges();
|
||||
pages = changes.size() / CHANGES_PER_PAGE + (changes.size() % CHANGES_PER_PAGE > 0 ? 1 : 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AbstractState getNextState()
|
||||
{
|
||||
return confirmed ? getState(EssentialsChat.class) : this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean guessAnswer()
|
||||
{
|
||||
if (pages == 0)
|
||||
{
|
||||
confirmed = true;
|
||||
}
|
||||
return confirmed;
|
||||
}
|
||||
|
||||
private List<String> getChanges()
|
||||
{
|
||||
final UpdateCheck updateCheck = getState(UpdateOrInstallation.class).getUpdateCheck();
|
||||
final VersionInfo versionInfo = updateCheck.getNewVersionInfo();
|
||||
return versionInfo.getChangelog();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void askQuestion(final Player sender)
|
||||
{
|
||||
if (pages > 1)
|
||||
{
|
||||
sender.sendMessage("Changelog, page " + page + " of " + pages + ":");
|
||||
}
|
||||
else
|
||||
{
|
||||
sender.sendMessage("Changelog:");
|
||||
}
|
||||
for (int i = page * CHANGES_PER_PAGE; i < Math.min(page * CHANGES_PER_PAGE + CHANGES_PER_PAGE, changes.size()); i++)
|
||||
{
|
||||
sender.sendMessage(changes.get(i));
|
||||
}
|
||||
if (pages > 1)
|
||||
{
|
||||
sender.sendMessage("Select a page by typing the numbers 1 to " + pages + " to view all changes and then type confirm or abort.");
|
||||
}
|
||||
else
|
||||
{
|
||||
sender.sendMessage("Type confirm to update Essentials or abort to cancel the update.");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean reactOnAnswer(final String answer)
|
||||
{
|
||||
if (answer.equalsIgnoreCase("confirm"))
|
||||
{
|
||||
confirmed = true;
|
||||
return true;
|
||||
}
|
||||
if (answer.matches("[0-9]+"))
|
||||
{
|
||||
final int page = Integer.parseInt(answer);
|
||||
if (page <= pages && page > 0)
|
||||
{
|
||||
this.page = page - 1;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user