summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Essentials/nbproject/build-impl.xml17
-rw-r--r--Essentials/nbproject/genfiles.properties4
-rw-r--r--Essentials/src/com/earth2me/essentials/Essentials.java9
-rw-r--r--Essentials/src/com/earth2me/essentials/Kit.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/MetaItemStack.java212
-rw-r--r--Essentials/src/com/earth2me/essentials/Potions.java129
-rw-r--r--Essentials/src/com/earth2me/essentials/Settings.java11
-rw-r--r--Essentials/src/com/earth2me/essentials/SpawnMob.java4
-rw-r--r--Essentials/src/com/earth2me/essentials/Trade.java23
-rw-r--r--Essentials/src/com/earth2me/essentials/User.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/UserData.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/Util.java9
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandafk.java7
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandban.java3
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandbanip.java26
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandbook.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandenchant.java4
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandessentials.java231
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandfirework.java32
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandgive.java8
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commanditem.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandnick.java20
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandpotion.java89
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandseen.java147
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandsetwarp.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandsudo.java3
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandtp.java4
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandtppos.java4
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandunban.java31
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandunbanip.java31
-rw-r--r--Essentials/src/com/earth2me/essentials/signs/SignEnchant.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/signs/SignGameMode.java1
-rw-r--r--Essentials/src/com/earth2me/essentials/signs/SignHeal.java1
-rw-r--r--Essentials/src/com/earth2me/essentials/signs/SignInfo.java1
-rw-r--r--Essentials/src/com/earth2me/essentials/signs/SignKit.java1
-rw-r--r--Essentials/src/com/earth2me/essentials/signs/SignRepair.java9
-rw-r--r--Essentials/src/com/earth2me/essentials/signs/SignSpawnmob.java1
-rw-r--r--Essentials/src/com/earth2me/essentials/signs/SignTime.java2
-rw-r--r--Essentials/src/com/earth2me/essentials/signs/SignTrade.java15
-rw-r--r--Essentials/src/com/earth2me/essentials/signs/SignWarp.java1
-rw-r--r--Essentials/src/com/earth2me/essentials/signs/SignWeather.java2
-rw-r--r--Essentials/src/config.yml33
-rw-r--r--Essentials/src/messages.properties138
-rw-r--r--Essentials/src/messages_cs.properties136
-rw-r--r--Essentials/src/messages_da.properties136
-rw-r--r--Essentials/src/messages_de.properties136
-rw-r--r--Essentials/src/messages_en.properties141
-rw-r--r--Essentials/src/messages_es.properties136
-rw-r--r--Essentials/src/messages_fi.properties136
-rw-r--r--Essentials/src/messages_fr.properties136
-rw-r--r--Essentials/src/messages_it.properties136
-rw-r--r--Essentials/src/messages_nl.properties136
-rw-r--r--Essentials/src/messages_pl.properties758
-rw-r--r--Essentials/src/messages_pt.properties136
-rw-r--r--Essentials/src/messages_se.properties136
-rw-r--r--Essentials/src/plugin.yml4
-rw-r--r--EssentialsAntiBuild/src/plugin.yml2
-rw-r--r--EssentialsGroupManager/src/Changelog.txt7
-rw-r--r--EssentialsGroupManager/src/config.yml10
-rw-r--r--EssentialsGroupManager/src/globalgroups.yml2
-rw-r--r--EssentialsGroupManager/src/org/anjocaido/groupmanager/GMConfiguration.java20
-rw-r--r--EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java438
-rw-r--r--EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java2
-rw-r--r--EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/worlds/WorldsHolder.java121
-rw-r--r--EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMWorldListener.java16
-rw-r--r--EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java2
-rw-r--r--EssentialsProtect/build.xml1
-rw-r--r--EssentialsProtect/nbproject/project.properties2
-rw-r--r--EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsConnect.java41
-rw-r--r--EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtect.java57
-rw-r--r--EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectBlockListener.java324
-rw-r--r--EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java55
-rw-r--r--EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectPlayerListener.java52
-rw-r--r--EssentialsProtect/src/com/earth2me/essentials/protect/IProtect.java7
-rw-r--r--EssentialsProtect/src/com/earth2me/essentials/protect/ProtectConfig.java9
-rw-r--r--EssentialsProtect/src/com/earth2me/essentials/protect/data/IProtectedBlock.java24
-rw-r--r--EssentialsProtect/src/com/earth2me/essentials/protect/data/OwnedBlock.java20
-rw-r--r--EssentialsProtect/src/com/earth2me/essentials/protect/data/ProtectedBlockJDBC.java426
-rw-r--r--EssentialsProtect/src/com/earth2me/essentials/protect/data/ProtectedBlockMemory.java258
-rw-r--r--EssentialsProtect/src/com/earth2me/essentials/protect/data/ProtectedBlockMySQL.java156
-rw-r--r--EssentialsProtect/src/com/earth2me/essentials/protect/data/ProtectedBlockSQLite.java104
-rw-r--r--EssentialsProtect/src/com/earth2me/essentials/protect/log4j.properties4
-rw-r--r--EssentialsSpawn/src/com/earth2me/essentials/spawn/Commandspawn.java6
-rw-r--r--EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawn.java5
-rw-r--r--README.markdown18
-rw-r--r--lib/c3p0-0.9.1.2.jarbin610790 -> 0 bytes
86 files changed, 2604 insertions, 3125 deletions
diff --git a/Essentials/nbproject/build-impl.xml b/Essentials/nbproject/build-impl.xml
index 8069faec8..7a011527b 100644
--- a/Essentials/nbproject/build-impl.xml
+++ b/Essentials/nbproject/build-impl.xml
@@ -395,6 +395,11 @@ is divided into following sections:
</and>
</condition>
</target>
+ <target name="-init-test-properties">
+ <property name="test.binaryincludes" value="&lt;nothing&gt;"/>
+ <property name="test.binarytestincludes" value=""/>
+ <property name="test.binaryexcludes" value=""/>
+ </target>
<target if="${nb.junit.single}" name="-init-macrodef-junit-single" unless="${nb.junit.batch}">
<macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${includes}" name="includes"/>
@@ -418,7 +423,7 @@ is divided into following sections:
</sequential>
</macrodef>
</target>
- <target if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}">
+ <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}">
<macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
@@ -432,6 +437,9 @@ is divided into following sections:
<fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
<filename name="@{testincludes}"/>
</fileset>
+ <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
+ <filename name="${test.binarytestincludes}"/>
+ </fileset>
</batchtest>
<syspropertyset>
<propertyref prefix="test-sys-prop."/>
@@ -559,7 +567,7 @@ is divided into following sections:
</sequential>
</macrodef>
</target>
- <target if="${nb.junit.batch}" name="-init-macrodef-junit-debug-batch">
+ <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-debug-batch">
<macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
@@ -573,6 +581,9 @@ is divided into following sections:
<fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
<filename name="@{testincludes}"/>
</fileset>
+ <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}">
+ <filename name="${test.binarytestincludes}"/>
+ </fileset>
</batchtest>
<syspropertyset>
<propertyref prefix="test-sys-prop."/>
@@ -952,7 +963,7 @@ is divided into following sections:
<target if="has.persistence.xml" name="-copy-persistence-xml">
<mkdir dir="${build.classes.dir}/META-INF"/>
<copy todir="${build.classes.dir}/META-INF">
- <fileset dir="${meta.inf.dir}" includes="persistence.xml"/>
+ <fileset dir="${meta.inf.dir}" includes="persistence.xml orm.xml"/>
</copy>
</target>
<target name="-post-compile">
diff --git a/Essentials/nbproject/genfiles.properties b/Essentials/nbproject/genfiles.properties
index 4897c5ad8..8b1c29264 100644
--- a/Essentials/nbproject/genfiles.properties
+++ b/Essentials/nbproject/genfiles.properties
@@ -4,8 +4,8 @@ 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=a830bc14
-nbproject/build-impl.xml.script.CRC32=7c507372
-nbproject/build-impl.xml.stylesheet.CRC32=6ddba6b6@1.53.1.46
+nbproject/build-impl.xml.script.CRC32=21ffdddf
+nbproject/build-impl.xml.stylesheet.CRC32=c6d2a60f@1.56.1.46
nbproject/profiler-build-impl.xml.data.CRC32=ab78ce15
nbproject/profiler-build-impl.xml.script.CRC32=abda56ed
nbproject/profiler-build-impl.xml.stylesheet.CRC32=f10cf54c@1.11.1
diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java
index c06ff5ea9..b1e8a988a 100644
--- a/Essentials/src/com/earth2me/essentials/Essentials.java
+++ b/Essentials/src/com/earth2me/essentials/Essentials.java
@@ -351,7 +351,7 @@ public class Essentials extends JavaPlugin implements IEssentials
}
// New mail notification
- if (user != null && !getSettings().isCommandDisabled("mail") && !commandLabel.equals("mail") && user.isAuthorized("essentials.mail"))
+ if (user != null && !getSettings().isCommandDisabled("mail") && !command.getName().equals("mail") && user.isAuthorized("essentials.mail"))
{
final List<String> mail = user.getMails();
if (mail != null && !mail.isEmpty())
@@ -360,6 +360,12 @@ public class Essentials extends JavaPlugin implements IEssentials
}
}
+ //Print version even if admin command is not available
+ if (command.getName().equals("essentials"))
+ {
+ sender.sendMessage("This server is running Essentials " + getDescription().getVersion());
+ }
+
// Check for disabled commands
if (getSettings().isCommandDisabled(commandLabel))
{
@@ -613,6 +619,7 @@ public class Essentials extends JavaPlugin implements IEssentials
{
return this.getScheduler().runTaskAsynchronously(this, run);
}
+
@Override
public BukkitTask runTaskLaterAsynchronously(final Runnable run, final long delay)
{
diff --git a/Essentials/src/com/earth2me/essentials/Kit.java b/Essentials/src/com/earth2me/essentials/Kit.java
index b2eb07373..505ee22af 100644
--- a/Essentials/src/com/earth2me/essentials/Kit.java
+++ b/Essentials/src/com/earth2me/essentials/Kit.java
@@ -120,7 +120,7 @@ public class Kit
if (parts.length > 2)
{
- metaStack.parseStringMeta(user, allowUnsafe, parts, 2, ess);
+ metaStack.parseStringMeta(null, allowUnsafe, parts, 2, ess);
}
final Map<Integer, ItemStack> overfilled;
diff --git a/Essentials/src/com/earth2me/essentials/MetaItemStack.java b/Essentials/src/com/earth2me/essentials/MetaItemStack.java
index f0f908ad5..11e19aaca 100644
--- a/Essentials/src/com/earth2me/essentials/MetaItemStack.java
+++ b/Essentials/src/com/earth2me/essentials/MetaItemStack.java
@@ -12,6 +12,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.*;
+import org.bukkit.potion.*;
public class MetaItemStack
@@ -21,7 +22,16 @@ public class MetaItemStack
private final static Map<String, DyeColor> colorMap = new HashMap<String, DyeColor>();
private final static Map<String, FireworkEffect.Type> fireworkShape = new HashMap<String, FireworkEffect.Type>();
private FireworkEffect.Builder builder = FireworkEffect.builder();
+ private PotionEffectType pEffectType;
+ private PotionEffect pEffect;
private boolean validFirework = false;
+ private boolean validPotionEffect = false;
+ private boolean validPotionDuration = false;
+ private boolean validPotionPower = false;
+ private boolean canceledEffect = false;
+ private boolean completePotion = false;
+ private int power = 1;
+ private int duration = 120;
static
{
@@ -50,29 +60,61 @@ public class MetaItemStack
return validFirework;
}
+ public boolean isValidPotion()
+ {
+ return validPotionEffect && validPotionDuration && validPotionPower;
+ }
+
public FireworkEffect.Builder getFireworkBuilder()
{
return builder;
}
- public void parseStringMeta(final CommandSender user, final boolean allowUnsafe, String[] string, int fromArg, final IEssentials ess) throws Exception
+ public PotionEffect getPotionEffect()
+ {
+ return pEffect;
+ }
+
+ public boolean completePotion()
+ {
+ return completePotion;
+ }
+
+ private void resetPotionMeta()
+ {
+ pEffect = null;
+ pEffectType = null;
+ validPotionEffect = false;
+ validPotionDuration = false;
+ validPotionPower = false;
+ completePotion = true;
+ }
+
+ public void parseStringMeta(final CommandSender sender, final boolean allowUnsafe, String[] string, int fromArg, final IEssentials ess) throws Exception
{
for (int i = fromArg; i < string.length; i++)
{
- addStringMeta(user, allowUnsafe, string[i], ess);
+ addStringMeta(sender, allowUnsafe, string[i], ess);
}
if (validFirework)
{
+ if (!hasMetaPermission(sender, "firework", true, true, ess))
+ {
+ throw new Exception(_("noMetaFirework"));
+ }
FireworkEffect effect = builder.build();
FireworkMeta fmeta = (FireworkMeta)stack.getItemMeta();
fmeta.addEffect(effect);
+ if (fmeta.getEffects().size() > 1 && !hasMetaPermission(sender, "firework-multiple", true, true, ess))
+ {
+ throw new Exception(_("multipleCharges"));
+ }
stack.setItemMeta(fmeta);
}
}
- //TODO: TL this
- private void addStringMeta(final CommandSender user, final boolean allowUnsafe, final String string, final IEssentials ess) throws Exception
+ private void addStringMeta(final CommandSender sender, final boolean allowUnsafe, final String string, final IEssentials ess) throws Exception
{
final String[] split = splitPattern.split(string, 2);
if (split.length < 1)
@@ -80,14 +122,14 @@ public class MetaItemStack
return;
}
- if (split.length > 1 && split[0].equalsIgnoreCase("name"))
+ if (split.length > 1 && split[0].equalsIgnoreCase("name") && hasMetaPermission(sender, "name", false, true, ess))
{
final String displayName = Util.replaceFormat(split[1].replace('_', ' '));
final ItemMeta meta = stack.getItemMeta();
meta.setDisplayName(displayName);
stack.setItemMeta(meta);
}
- else if (split.length > 1 && (split[0].equalsIgnoreCase("lore") || split[0].equalsIgnoreCase("desc")))
+ else if (split.length > 1 && (split[0].equalsIgnoreCase("lore") || split[0].equalsIgnoreCase("desc")) && hasMetaPermission(sender, "lore", false, true, ess))
{
final List<String> lore = new ArrayList<String>();
for (String line : split[1].split("\\|"))
@@ -98,7 +140,7 @@ public class MetaItemStack
meta.setLore(lore);
stack.setItemMeta(meta);
}
- else if (split.length > 1 && (split[0].equalsIgnoreCase("player") || split[0].equalsIgnoreCase("owner")) && stack.getType() == Material.SKULL_ITEM)
+ else if (split.length > 1 && (split[0].equalsIgnoreCase("player") || split[0].equalsIgnoreCase("owner")) && stack.getType() == Material.SKULL_ITEM && hasMetaPermission(sender, "head", false, true, ess))
{
if (stack.getDurability() == 3)
{
@@ -109,35 +151,42 @@ public class MetaItemStack
}
else
{
- throw new Exception("You can only set the owner of player skulls (397:3)");
+ throw new Exception(_("onlyPlayerSkulls"));
}
}
- else if (split.length > 1 && split[0].equalsIgnoreCase("book") && stack.getType() == Material.WRITTEN_BOOK)
+ else if (split.length > 1 && split[0].equalsIgnoreCase("book") && stack.getType() == Material.WRITTEN_BOOK && hasMetaPermission(sender, "book", false, true, ess))
{
final BookMeta meta = (BookMeta)stack.getItemMeta();
final IText input = new BookInput("book", true, ess);
final BookPager pager = new BookPager(input);
- List<String> pages = pager.getPages(split[1]);
- meta.setPages(pages);
+ if (hasMetaPermission(sender, "chapter", true, true, ess) || hasMetaPermission(sender, "chapter-" + split[1].toLowerCase(Locale.ENGLISH), true, true, ess))
+ {
+ List<String> pages = pager.getPages(split[1]);
+ meta.setPages(pages);
+ stack.setItemMeta(meta);
+ }
+ else
+ {
+ throw new Exception(_("noChapterMeta"));
+ }
- stack.setItemMeta(meta);
}
- else if (split.length > 1 && split[0].equalsIgnoreCase("author") && stack.getType() == Material.WRITTEN_BOOK)
+ else if (split.length > 1 && split[0].equalsIgnoreCase("author") && stack.getType() == Material.WRITTEN_BOOK && hasMetaPermission(sender, "author", false, true, ess))
{
final String author = split[1];
final BookMeta meta = (BookMeta)stack.getItemMeta();
meta.setAuthor(author);
stack.setItemMeta(meta);
}
- else if (split.length > 1 && split[0].equalsIgnoreCase("title") && stack.getType() == Material.WRITTEN_BOOK)
+ else if (split.length > 1 && split[0].equalsIgnoreCase("title") && stack.getType() == Material.WRITTEN_BOOK && hasMetaPermission(sender, "title", false, true, ess))
{
final String title = Util.replaceFormat(split[1].replace('_', ' '));
final BookMeta meta = (BookMeta)stack.getItemMeta();
meta.setTitle(title);
stack.setItemMeta(meta);
}
- else if (split.length > 1 && split[0].equalsIgnoreCase("power") && stack.getType() == Material.FIREWORK)
+ else if (split.length > 1 && split[0].equalsIgnoreCase("power") && stack.getType() == Material.FIREWORK && hasMetaPermission(sender, "firework-power", false, true, ess))
{
final int power = Util.isInt(split[1]) ? Integer.parseInt(split[1]) : 0;
final FireworkMeta meta = (FireworkMeta)stack.getItemMeta();
@@ -146,7 +195,11 @@ public class MetaItemStack
}
else if (stack.getType() == Material.FIREWORK) //WARNING - Meta for fireworks will be ignored after this point.
{
- addFireworkMeta(user, false, string, ess);
+ addFireworkMeta(sender, false, string, ess);
+ }
+ else if (stack.getType() == Material.POTION) //WARNING - Meta for potions will be ignored after this point.
+ {
+ addPotionMeta(sender, false, string, ess);
}
else if (split.length > 1 && (split[0].equalsIgnoreCase("color") || split[0].equalsIgnoreCase("colour"))
&& (stack.getType() == Material.LEATHER_BOOTS
@@ -166,16 +219,16 @@ public class MetaItemStack
}
else
{
- throw new Exception("Leather Color Syntax: color:<red>,<green>,<blue> eg: color:255,0,0");
+ throw new Exception(_("leatherSyntax"));
}
}
else
{
- parseEnchantmentStrings(user, allowUnsafe, split);
+ parseEnchantmentStrings(sender, allowUnsafe, split, ess);
}
}
- public void addFireworkMeta(final CommandSender user, final boolean allowShortName, final String string, final IEssentials ess) throws Exception
+ public void addFireworkMeta(final CommandSender sender, final boolean allowShortName, final String string, final IEssentials ess) throws Exception
{
if (stack.getType() == Material.FIREWORK)
{
@@ -190,9 +243,17 @@ public class MetaItemStack
{
if (validFirework)
{
+ if (!hasMetaPermission(sender, "firework", true, true, ess))
+ {
+ throw new Exception(_("noMetaFirework"));
+ }
FireworkEffect effect = builder.build();
FireworkMeta fmeta = (FireworkMeta)stack.getItemMeta();
fmeta.addEffect(effect);
+ if (fmeta.getEffects().size() > 1 && !hasMetaPermission(sender, "firework-multiple", true, true, ess))
+ {
+ throw new Exception(_("multipleCharges"));
+ }
stack.setItemMeta(fmeta);
builder = FireworkEffect.builder();
}
@@ -208,9 +269,7 @@ public class MetaItemStack
}
else
{
- user.sendMessage(_("fireworkSyntax"));
throw new Exception(_("invalidFireworkFormat", split[1], split[0]));
-
}
}
builder.withColor(primaryColors);
@@ -225,7 +284,6 @@ public class MetaItemStack
}
else
{
- user.sendMessage(_("fireworkSyntax"));
throw new Exception(_("invalidFireworkFormat", split[1], split[0]));
}
if (finalEffect != null)
@@ -245,7 +303,6 @@ public class MetaItemStack
}
else
{
- user.sendMessage(_("fireworkSyntax"));
throw new Exception(_("invalidFireworkFormat", split[1], split[0]));
}
}
@@ -269,7 +326,6 @@ public class MetaItemStack
}
else
{
- user.sendMessage(_("fireworkSyntax"));
throw new Exception(_("invalidFireworkFormat", split[1], split[0]));
}
}
@@ -277,9 +333,78 @@ public class MetaItemStack
}
}
- private void parseEnchantmentStrings(final CommandSender user, final boolean allowUnsafe, final String[] split) throws Exception
+ public void addPotionMeta(final CommandSender sender, final boolean allowShortName, final String string, final IEssentials ess) throws Exception
+ {
+ if (stack.getType() == Material.POTION)
+ {
+ final String[] split = splitPattern.split(string, 2);
+
+ if (split.length < 2)
+ {
+ return;
+ }
+
+ if (split[0].equalsIgnoreCase("effect") || (allowShortName && split[0].equalsIgnoreCase("e")))
+ {
+ pEffectType = Potions.getByName(split[1]);
+ if (pEffectType != null && pEffectType.getName() != null)
+ {
+ if (hasMetaPermission(sender, "potions." + pEffectType.getName().toLowerCase(Locale.ENGLISH), false, false, ess))
+ {
+ validPotionEffect = true;
+ canceledEffect = false;
+ }
+ else
+ {
+ canceledEffect = true;
+ sender.sendMessage(_("invalidPotionEffect", pEffectType.getName().toLowerCase(Locale.ENGLISH)));
+ }
+ }
+ else
+ {
+ sender.sendMessage(_("invalidPotionEffect", split[1]));
+ canceledEffect = true;
+ }
+ }
+ else if (split[0].equalsIgnoreCase("power") || (allowShortName && split[0].equalsIgnoreCase("p")))
+ {
+ if (Util.isInt(split[1]))
+ {
+ validPotionPower = true;
+ power = Integer.parseInt(split[1]);
+ }
+ }
+ else if (split[0].equalsIgnoreCase("duration") || (allowShortName && split[0].equalsIgnoreCase("d")))
+ {
+ if (Util.isInt(split[1]))
+ {
+ validPotionDuration = true;
+ duration = Integer.parseInt(split[1]) * 20; //Duration is in ticks by default, converted to seconds
+ }
+ }
+
+ if (isValidPotion() && !canceledEffect)
+ {
+ PotionMeta pmeta = (PotionMeta)stack.getItemMeta();
+ pEffect = pEffectType.createEffect(duration, power);
+ if (pmeta.getCustomEffects().size() > 1 && !hasMetaPermission(sender, "potions.multiple", true, false, ess))
+ {
+ throw new Exception(_("multiplePotionEffects"));
+ }
+ pmeta.addCustomEffect(pEffect, true);
+ stack.setItemMeta(pmeta);
+ resetPotionMeta();
+ }
+ }
+ }
+
+ private void parseEnchantmentStrings(final CommandSender sender, final boolean allowUnsafe, final String[] split, final IEssentials ess) throws Exception
{
- Enchantment enchantment = getEnchantment(null, split[0]);
+ final Enchantment enchantment = Enchantments.getByName(split[0]);
+ if (enchantment == null || !hasMetaPermission(sender, "enchantments." + enchantment.getName().toLowerCase(Locale.ENGLISH), false, false, ess))
+ {
+ return;
+ }
int level = -1;
if (split.length > 1)
@@ -298,10 +423,10 @@ public class MetaItemStack
{
level = enchantment.getMaxLevel();
}
- addEnchantment(user, allowUnsafe, enchantment, level);
+ addEnchantment(sender, allowUnsafe, enchantment, level);
}
- public void addEnchantment(final CommandSender user, final boolean allowUnsafe, final Enchantment enchantment, final int level) throws Exception
+ public void addEnchantment(final CommandSender sender, final boolean allowUnsafe, final Enchantment enchantment, final int level) throws Exception
{
try
{
@@ -343,19 +468,44 @@ public class MetaItemStack
}
}
- //TODO: Properly TL this
public Enchantment getEnchantment(final User user, final String name) throws Exception
{
final Enchantment enchantment = Enchantments.getByName(name);
if (enchantment == null)
{
- throw new Exception(_("enchantmentNotFound") + ": " + name);
+ return null;
}
+
final String enchantmentName = enchantment.getName().toLowerCase(Locale.ENGLISH);
- if (user != null && !user.isAuthorized("essentials.enchant." + enchantmentName))
+
+ if (!hasMetaPermission(user, "enchantments." + enchantmentName, true, false))
{
throw new Exception(_("enchantmentPerm", enchantmentName));
}
return enchantment;
}
+
+ private boolean hasMetaPermission(final CommandSender sender, final String metaPerm, final boolean graceful, final boolean includeBase, final IEssentials ess) throws Exception
+ {
+ final User user = ess.getUser(sender);
+ return hasMetaPermission(user, metaPerm, graceful, includeBase);
+ }
+
+ private boolean hasMetaPermission(final User user, final String metaPerm, final boolean graceful, final boolean includeBase) throws Exception
+ {
+ final String permBase = includeBase ? "essentials.itemspawn.meta-" : "essentials.";
+ if (user == null || user.isAuthorized(permBase + metaPerm))
+ {
+ return true;
+ }
+
+ if (graceful)
+ {
+ return false;
+ }
+ else
+ {
+ throw new Exception(_("noMetaPerm", metaPerm));
+ }
+ }
}
diff --git a/Essentials/src/com/earth2me/essentials/Potions.java b/Essentials/src/com/earth2me/essentials/Potions.java
new file mode 100644
index 000000000..7d3858183
--- /dev/null
+++ b/Essentials/src/com/earth2me/essentials/Potions.java
@@ -0,0 +1,129 @@
+package com.earth2me.essentials;
+
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import org.bukkit.potion.PotionEffectType;
+
+
+public class Potions
+{
+ private static final Map<String, PotionEffectType> POTIONS = new HashMap<String, PotionEffectType>();
+ private static final Map<String, PotionEffectType> ALIASPOTIONS = new HashMap<String, PotionEffectType>();
+
+ static
+ {
+
+ POTIONS.put("speed", PotionEffectType.SPEED);
+ ALIASPOTIONS.put("fast", PotionEffectType.SPEED);
+ ALIASPOTIONS.put("runfast", PotionEffectType.SPEED);
+ ALIASPOTIONS.put("sprint", PotionEffectType.SPEED);
+ ALIASPOTIONS.put("swift", PotionEffectType.SPEED);
+
+ POTIONS.put("slowness", PotionEffectType.SLOW);
+ ALIASPOTIONS.put("slow", PotionEffectType.SLOW);
+ ALIASPOTIONS.put("sluggish", PotionEffectType.SLOW);
+
+ POTIONS.put("haste", PotionEffectType.FAST_DIGGING);
+ ALIASPOTIONS.put("superpick", PotionEffectType.FAST_DIGGING);
+ ALIASPOTIONS.put("quickmine", PotionEffectType.FAST_DIGGING);
+ ALIASPOTIONS.put("digspeed", PotionEffectType.FAST_DIGGING);
+ ALIASPOTIONS.put("digfast", PotionEffectType.FAST_DIGGING);
+ ALIASPOTIONS.put("sharp", PotionEffectType.FAST_DIGGING);
+
+ POTIONS.put("fatigue", PotionEffectType.SLOW_DIGGING);
+ ALIASPOTIONS.put("slow", PotionEffectType.SLOW_DIGGING);
+ ALIASPOTIONS.put("dull", PotionEffectType.SLOW_DIGGING);
+
+ POTIONS.put("strength", PotionEffectType.INCREASE_DAMAGE);
+ ALIASPOTIONS.put("strong", PotionEffectType.INCREASE_DAMAGE);
+ ALIASPOTIONS.put("bull", PotionEffectType.INCREASE_DAMAGE);
+ ALIASPOTIONS.put("attack", PotionEffectType.INCREASE_DAMAGE);
+
+ POTIONS.put("heal", PotionEffectType.HEAL);
+ ALIASPOTIONS.put("healthy", PotionEffectType.HEAL);
+ ALIASPOTIONS.put("instaheal", PotionEffectType.HEAL);
+
+ POTIONS.put("harm", PotionEffectType.HARM);
+ ALIASPOTIONS.put("injure", PotionEffectType.HARM);
+ ALIASPOTIONS.put("damage", PotionEffectType.HARM);
+ ALIASPOTIONS.put("inflict", PotionEffectType.HARM);
+
+ POTIONS.put("jump", PotionEffectType.JUMP);
+ ALIASPOTIONS.put("leap", PotionEffectType.JUMP);
+
+ POTIONS.put("nausea", PotionEffectType.CONFUSION);
+ ALIASPOTIONS.put("sick", PotionEffectType.CONFUSION);
+ ALIASPOTIONS.put("sickness", PotionEffectType.CONFUSION);
+ ALIASPOTIONS.put("confusion", PotionEffectType.CONFUSION);
+
+ POTIONS.put("regeneration", PotionEffectType.REGENERATION);
+ ALIASPOTIONS.put("regen", PotionEffectType.REGENERATION);
+
+ POTIONS.put("resistance", PotionEffectType.DAMAGE_RESISTANCE);
+ ALIASPOTIONS.put("dmgresist", PotionEffectType.DAMAGE_RESISTANCE);
+ ALIASPOTIONS.put("armor", PotionEffectType.DAMAGE_RESISTANCE);
+ ALIASPOTIONS.put("dmgresist", PotionEffectType.DAMAGE_RESISTANCE);
+
+ POTIONS.put("fireresist", PotionEffectType.FIRE_RESISTANCE);
+ ALIASPOTIONS.put("fireresistance", PotionEffectType.FIRE_RESISTANCE);
+ ALIASPOTIONS.put("resistfire", PotionEffectType.FIRE_RESISTANCE);
+
+ POTIONS.put("waterbreath", PotionEffectType.WATER_BREATHING);
+ ALIASPOTIONS.put("waterbreathing", PotionEffectType.WATER_BREATHING);
+
+ POTIONS.put("invisibility", PotionEffectType.INVISIBILITY);
+ ALIASPOTIONS.put("invisible", PotionEffectType.INVISIBILITY);
+ ALIASPOTIONS.put("invis", PotionEffectType.INVISIBILITY);
+ ALIASPOTIONS.put("vanish", PotionEffectType.INVISIBILITY);
+ ALIASPOTIONS.put("disappear", PotionEffectType.INVISIBILITY);
+
+ POTIONS.put("blindness", PotionEffectType.BLINDNESS);
+ ALIASPOTIONS.put("blind", PotionEffectType.BLINDNESS);
+
+ POTIONS.put("nightvision", PotionEffectType.NIGHT_VISION);
+ ALIASPOTIONS.put("vision", PotionEffectType.NIGHT_VISION);
+
+ POTIONS.put("hunger", PotionEffectType.HUNGER);
+ ALIASPOTIONS.put("hungry", PotionEffectType.HUNGER);
+ ALIASPOTIONS.put("starve", PotionEffectType.HUNGER);
+
+ POTIONS.put("weakness", PotionEffectType.WEAKNESS);
+ ALIASPOTIONS.put("weak", PotionEffectType.WEAKNESS);
+
+ POTIONS.put("poison", PotionEffectType.POISON);
+ ALIASPOTIONS.put("venom", PotionEffectType.POISON);
+
+ POTIONS.put("wither", PotionEffectType.WITHER);
+ ALIASPOTIONS.put("decay", PotionEffectType.WITHER);
+ }
+
+ public static PotionEffectType getByName(String name)
+ {
+ PotionEffectType peffect;
+ if (Util.isInt(name))
+ {
+ peffect = PotionEffectType.getById(Integer.parseInt(name));
+ }
+ else
+ {
+ peffect = PotionEffectType.getByName(name.toUpperCase(Locale.ENGLISH));
+ }
+ if (peffect == null)
+ {
+ peffect = POTIONS.get(name.toLowerCase(Locale.ENGLISH));
+ }
+ if (peffect == null)
+ {
+ peffect = ALIASPOTIONS.get(name.toLowerCase(Locale.ENGLISH));
+ }
+ return peffect;
+ }
+
+ public static Set<Entry<String, PotionEffectType>> entrySet()
+ {
+ return POTIONS.entrySet();
+ }
+} \ No newline at end of file
diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java
index 8dd6e6fbf..a24f3d807 100644
--- a/Essentials/src/com/earth2me/essentials/Settings.java
+++ b/Essentials/src/com/earth2me/essentials/Settings.java
@@ -465,6 +465,7 @@ public class Settings implements ISettings
config.load();
noGodWorlds = new HashSet<String>(config.getStringList("no-god-in-worlds"));
enabledSigns = _getEnabledSigns();
+ teleportInvulnerabilityTime = _getTeleportInvulnerability();
teleportInvulnerability = _isTeleportInvulnerability();
disableItemPickupWhileAfk = _getDisableItemPickupWhileAfk();
registerBackInListener = _registerBackInListener();
@@ -956,13 +957,19 @@ public class Settings implements ISettings
{
this.metricsEnabled = metricsEnabled;
}
- private boolean teleportInvulnerability;
+ private long teleportInvulnerabilityTime;
+
+ public long _getTeleportInvulnerability()
+ {
+ return config.getLong("teleport-invulnerability", 0) * 1000;
+ }
@Override
public long getTeleportInvulnerability()
{
- return config.getLong("teleport-invulnerability", 0) * 1000;
+ return teleportInvulnerabilityTime;
}
+ private boolean teleportInvulnerability;
private boolean _isTeleportInvulnerability()
{
diff --git a/Essentials/src/com/earth2me/essentials/SpawnMob.java b/Essentials/src/com/earth2me/essentials/SpawnMob.java
index 06259b997..3ee63ee46 100644
--- a/Essentials/src/com/earth2me/essentials/SpawnMob.java
+++ b/Essentials/src/com/earth2me/essentials/SpawnMob.java
@@ -24,7 +24,7 @@ public class SpawnMob
final Set<String> availableList = new HashSet<String>();
for (String mob : mobList)
{
- if (user.isAuthorized("essentials.spawnmob." + mob.toLowerCase()))
+ if (user.isAuthorized("essentials.spawnmob." + mob.toLowerCase(Locale.ENGLISH)))
{
availableList.add(mob);
}
@@ -166,7 +166,7 @@ public class SpawnMob
throw new Exception(_("disabledToSpawnMob"));
}
- if (sender instanceof User && !((User)sender).isAuthorized("essentials.spawnmob." + mob.name.toLowerCase()))
+ if (sender instanceof User && !((User)sender).isAuthorized("essentials.spawnmob." + mob.name.toLowerCase(Locale.ENGLISH)))
{
throw new Exception(_("noPermToSpawnMob"));
}
diff --git a/Essentials/src/com/earth2me/essentials/Trade.java b/Essentials/src/com/earth2me/essentials/Trade.java
index 1a03a0145..457691bbf 100644
--- a/Essentials/src/com/earth2me/essentials/Trade.java
+++ b/Essentials/src/com/earth2me/essentials/Trade.java
@@ -25,7 +25,14 @@ public class Trade
private final transient ItemStack itemStack;
private final transient Integer exp;
private final transient IEssentials ess;
-
+
+ public enum TradeType
+ {
+ MONEY,
+ EXP,
+ ITEM
+ }
+
public Trade(final String command, final IEssentials ess)
{
this(command, null, null, null, null, ess);
@@ -206,6 +213,20 @@ public class Trade
{
return exp;
}
+
+ public TradeType getType()
+ {
+ if (getExperience() != null) {
+ return TradeType.EXP;
+ }
+
+ if (getItemStack() != null)
+ {
+ return TradeType.ITEM;
+ }
+
+ return TradeType.MONEY;
+ }
public Double getCommandCost(final IUser user)
{
diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java
index 5d5661646..471362b7b 100644
--- a/Essentials/src/com/earth2me/essentials/User.java
+++ b/Essentials/src/com/earth2me/essentials/User.java
@@ -283,7 +283,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
String nickname;
String suffix = "";
final String nick = getNickname();
- if (ess.getSettings().isCommandDisabled("nick") || nick == null || nick.isEmpty() || nick.equals(getName()))
+ if (ess.getSettings().isCommandDisabled("nick") || nick == null || nick.isEmpty() || nick.equalsIgnoreCase(getName()))
{
nickname = getName();
}
diff --git a/Essentials/src/com/earth2me/essentials/UserData.java b/Essentials/src/com/earth2me/essentials/UserData.java
index 13a8a9eb5..1769c0f03 100644
--- a/Essentials/src/com/earth2me/essentials/UserData.java
+++ b/Essentials/src/com/earth2me/essentials/UserData.java
@@ -631,7 +631,7 @@ public abstract class UserData extends PlayerExtension implements IConf
public String getBanReason()
{
- return config.getString("ban.reason");
+ return config.getString("ban.reason", "");
}
public void setBanReason(String reason)
diff --git a/Essentials/src/com/earth2me/essentials/Util.java b/Essentials/src/com/earth2me/essentials/Util.java
index ad24a80d8..f1d0485c3 100644
--- a/Essentials/src/com/earth2me/essentials/Util.java
+++ b/Essentials/src/com/earth2me/essentials/Util.java
@@ -692,7 +692,7 @@ public class Util
}
return message;
}
-
+
private static String blockURL(final String input)
{
if (input == null)
@@ -716,4 +716,11 @@ public class Util
{
return pattern.matcher(input).replaceAll("\u00a7$1");
}
+ private static final Pattern IPPATTERN = Pattern.compile(
+ "^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." +
+ "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$");
+
+ public static boolean validIP(String ipAddress) {
+ return IPPATTERN.matcher(ipAddress).matches();
+ }
}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandafk.java b/Essentials/src/com/earth2me/essentials/commands/Commandafk.java
index 6a5d6dc26..7e1d6b0e6 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandafk.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandafk.java
@@ -17,11 +17,8 @@ public class Commandafk extends EssentialsCommand
{
if (args.length > 0 && user.isAuthorized("essentials.afk.others"))
{
- User afkUser = ess.getUser(ess.getServer().matchPlayer(args[0]));
- if (afkUser != null)
- {
- toggleAfk(afkUser);
- }
+ User afkUser = getPlayer(server, args, 0);
+ toggleAfk(afkUser);
}
else
{
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandban.java b/Essentials/src/com/earth2me/essentials/commands/Commandban.java
index 62a7bf104..5c223a3d5 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandban.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandban.java
@@ -70,7 +70,8 @@ public class Commandban extends EssentialsCommand
server.getLogger().log(Level.INFO, _("playerBanned", senderName, user.getName(), banReason));
- if (nomatch) {
+ if (nomatch)
+ {
sender.sendMessage(_("userUnknown", user.getName()));
}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandbanip.java b/Essentials/src/com/earth2me/essentials/commands/Commandbanip.java
index 5459bd8fc..ca0751a51 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandbanip.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandbanip.java
@@ -1,9 +1,12 @@
package com.earth2me.essentials.commands;
+import com.earth2me.essentials.Console;
import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.User;
+import java.util.logging.Level;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
public class Commandbanip extends EssentialsCommand
@@ -21,22 +24,33 @@ public class Commandbanip extends EssentialsCommand
throw new NotEnoughArgumentsException();
}
- final User player = ess.getUser(args[0]);
+ final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
+ final String ipAddress;
+ final User player = ess.getUser(args[0]);
if (player == null)
{
- ess.getServer().banIP(args[0]);
- sender.sendMessage(_("banIpAddress"));
+ ipAddress = args[0];
}
else
{
- final String ipAddress = player.getLastLoginAddress();
+ ipAddress = player.getLastLoginAddress();
if (ipAddress.length() == 0)
{
throw new Exception(_("playerNotFound"));
}
- ess.getServer().banIP(player.getLastLoginAddress());
- sender.sendMessage(_("banIpAddress"));
+ }
+
+ ess.getServer().banIP(ipAddress);
+ server.getLogger().log(Level.INFO, _("playerBanIpAddress", senderName, ipAddress));
+
+ for (Player onlinePlayer : server.getOnlinePlayers())
+ {
+ final User onlineUser = ess.getUser(onlinePlayer);
+ if (onlinePlayer == sender || onlineUser.isAuthorized("essentials.ban.notify"))
+ {
+ onlinePlayer.sendMessage(_("playerBanIpAddress", senderName, ipAddress));
+ }
}
}
}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandbook.java b/Essentials/src/com/earth2me/essentials/commands/Commandbook.java
index 1bfca2e1d..897069b93 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandbook.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandbook.java
@@ -27,7 +27,7 @@ public class Commandbook extends EssentialsCommand
if (args.length > 1 && args[0].equalsIgnoreCase("author"))
{
- if (user.isAuthorized("essentals.book.author"))
+ if (user.isAuthorized("essentals.book.author") && (isAuthor(bmeta, player) || user.isAuthorized("essentials.book.others")))
{
bmeta.setAuthor(args[1]);
item.setItemMeta(bmeta);
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandenchant.java b/Essentials/src/com/earth2me/essentials/commands/Commandenchant.java
index 75759b879..1eb895b84 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandenchant.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandenchant.java
@@ -36,7 +36,7 @@ public class Commandenchant extends EssentialsCommand
for (Map.Entry<String, Enchantment> entry : Enchantments.entrySet())
{
final String enchantmentName = entry.getValue().getName().toLowerCase(Locale.ENGLISH);
- if (enchantmentslist.contains(enchantmentName) || (user.isAuthorized("essentials.enchant." + enchantmentName) && entry.getValue().canEnchantItem(stack)))
+ if (enchantmentslist.contains(enchantmentName) || (user.isAuthorized("essentials.enchantments." + enchantmentName) && entry.getValue().canEnchantItem(stack)))
{
enchantmentslist.add(entry.getKey());
//enchantmentslist.add(enchantmentName);
@@ -58,7 +58,7 @@ public class Commandenchant extends EssentialsCommand
}
}
- final boolean allowUnsafe = ess.getSettings().allowUnsafeEnchantments() && user.isAuthorized("essentials.enchant.allowunsafe");
+ final boolean allowUnsafe = ess.getSettings().allowUnsafeEnchantments() && user.isAuthorized("essentials.enchantments.allowunsafe");
final MetaItemStack metaStack = new MetaItemStack(stack);
final Enchantment enchantment = metaStack.getEnchantment(user, args[0]);
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandessentials.java b/Essentials/src/com/earth2me/essentials/commands/Commandessentials.java
index 8598a31e9..e842fb7a9 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandessentials.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandessentials.java
@@ -2,13 +2,15 @@ package com.earth2me.essentials.commands;
import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.User;
+import com.earth2me.essentials.UserMap;
+import com.earth2me.essentials.Util;
import com.earth2me.essentials.metrics.Metrics;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
-import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.Server;
+import org.bukkit.Sound;
import org.bukkit.block.Block;
import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender;
@@ -27,7 +29,8 @@ 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) {
+ if (args.length == 0)
+ {
run_disabled(server, sender, commandLabel, args);
}
else if (args[0].equalsIgnoreCase("debug"))
@@ -50,130 +53,112 @@ public class Commandessentials extends EssentialsCommand
{
run_optout(server, sender, commandLabel, args);
}
- else {
+ else if (args[0].equalsIgnoreCase("cleanup"))
+ {
+ run_cleanup(server, sender, commandLabel, args);
+ }
+ else
+ {
run_reload(server, sender, commandLabel, args);
}
}
-
+
//If you do not supply an argument this command will list 'overridden' commands.
private void run_disabled(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{
- sender.sendMessage("Essentials " + ess.getDescription().getVersion());
sender.sendMessage("/<command> <reload/debug>");
-
+
final StringBuilder disabledCommands = new StringBuilder();
for (Map.Entry<String, String> entry : ess.getAlternativeCommandsHandler().disabledCommands().entrySet())
{
- if (disabledCommands.length() > 0) {
+ if (disabledCommands.length() > 0)
+ {
disabledCommands.append(", ");
}
disabledCommands.append(entry.getKey()).append(" => ").append(entry.getValue());
}
- if (disabledCommands.length() > 0) {
+ if (disabledCommands.length() > 0)
+ {
sender.sendMessage(_("blockList"));
sender.sendMessage(disabledCommands.toString());
}
}
-
+
private void run_reset(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{
if (args.length < 2)
{
- throw new NotEnoughArgumentsException("/<command> reset <player>");
+ throw new Exception("/<command> reset <player>");
}
final User user = getPlayer(server, args, 1, true);
user.reset();
sender.sendMessage("Reset Essentials userdata for player: " + user.getDisplayName());
}
-
+
private void run_debug(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{
ess.getSettings().setDebug(!ess.getSettings().isDebug());
sender.sendMessage("Essentials " + ess.getDescription().getVersion() + " debug mode " + (ess.getSettings().isDebug() ? "enabled" : "disabled"));
}
-
+
private void run_reload(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{
ess.reload();
sender.sendMessage(_("essentialsReload", ess.getDescription().getVersion()));
}
-
+
private void run_nya(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{
- final Map<String, Byte> noteMap = new HashMap<String, Byte>();
- noteMap.put("1F#", (byte)0x0);
- noteMap.put("1G", (byte)0x1);
- noteMap.put("1G#", (byte)0x2);
- noteMap.put("1A", (byte)0x3);
- noteMap.put("1A#", (byte)0x4);
- noteMap.put("1B", (byte)0x5);
- noteMap.put("1C", (byte)0x6);
- noteMap.put("1C#", (byte)0x7);
- noteMap.put("1D", (byte)0x8);
- noteMap.put("1D#", (byte)0x9);
- noteMap.put("1E", (byte)0xA);
- noteMap.put("1F", (byte)0xB);
- noteMap.put("2F#", (byte)(0x0 + 0xC));
- noteMap.put("2G", (byte)(0x1 + 0xC));
- noteMap.put("2G#", (byte)(0x2 + 0xC));
- noteMap.put("2A", (byte)(0x3 + 0xC));
- noteMap.put("2A#", (byte)(0x4 + 0xC));
- noteMap.put("2B", (byte)(0x5 + 0xC));
- noteMap.put("2C", (byte)(0x6 + 0xC));
- noteMap.put("2C#", (byte)(0x7 + 0xC));
- noteMap.put("2D", (byte)(0x8 + 0xC));
- noteMap.put("2D#", (byte)(0x9 + 0xC));
- noteMap.put("2E", (byte)(0xA + 0xC));
- noteMap.put("2F", (byte)(0xB + 0xC));
- if (!noteBlocks.isEmpty())
- {
- return;
- }
- final String tuneStr = "1D#,1E,2F#,,2A#,1E,1D#,1E,2F#,2B,2D#,2E,2D#,2A#,2B,,2F#,,1D#,1E,2F#,2B,2C#,2A#,2B,2C#,2E,2D#,2E,2C#,,2F#,,2G#,,1D,1D#,,1C#,1D,1C#,1B,,1B,,1C#,,1D,,1D,1C#,1B,1C#,1D#,2F#,2G#,1D#,2F#,1C#,1D#,1B,1C#,1B,1D#,,2F#,,2G#,1D#,2F#,1C#,1D#,1B,1D,1D#,1D,1C#,1B,1C#,1D,,1B,1C#,1D#,2F#,1C#,1D,1C#,1B,1C#,,1B,,1C#,,2F#,,2G#,,1D,1D#,,1C#,1D,1C#,1B,,1B,,1C#,,1D,,1D,1C#,1B,1C#,1D#,2F#,2G#,1D#,2F#,1C#,1D#,1B,1C#,1B,1D#,,2F#,,2G#,1D#,2F#,1C#,1D#,1B,1D,1D#,1D,1C#,1B,1C#,1D,,1B,1C#,1D#,2F#,1C#,1D,1C#,1B,1C#,,1B,,1B,,1B,,1F#,1G#,1B,,1F#,1G#,1B,1C#,1D#,1B,1E,1D#,1E,2F#,1B,,1B,,1F#,1G#,1B,1E,1D#,1C#,1B,,,,1F#,1B,,1F#,1G#,1B,,1F#,1G#,1B,1B,1C#,1D#,1B,1F#,1G#,1F#,1B,,1B,1A#,1B,1F#,1G#,1B,1E,1D#,1E,2F#,1B,,1A#,,1B,,1F#,1G#,1B,,1F#,1G#,1B,1C#,1D#,1B,1E,1D#,1E,2F#,1B,,1B,,1F#,1G#,1B,1F#,1E,1D#,1C#,1B,,,,1F#,1B,,1F#,1G#,1B,,1F#,1G#,1B,1B,1C#,1D#,1B,1F#,1G#,1F#,1B,,1B,1A#,1B,1F#,1G#,1B,1E,1D#,1E,2F#,1B,,1A#,,1B,,1F#,1G#,1B,,1F#,1G#,1B,1C#,1D#,1B,1E,1D#,1E,2F#,1B,,1B,,1F#,1G#,1B,1F#,1E,1D#,1C#,1B,,,,1F#,1B,,1F#,1G#,1B,,1F#,1G#,1B,1B,1C#,1D#,1B,1F#,1G#,1F#,1B,,1B,1A#,1B,1F#,1G#,1B,1E,1D#,1E,2F#,1B,,1A#,,1B,,1F#,1G#,1B,,1F#,1G#,1B,1C#,1D#,1B,1E,1D#,1E,2F#,1B,,1B,,1F#,1G#,1B,1F#,1E,1D#,1C#,1B,,,,1F#,1B,,1F#,1G#,1B,,1F#,1G#,1B,1B,1C#,1D#,1B,1F#,1G#,1F#,1B,,1B,1A#,1B,1F#,1G#,1B,1E,1D#,1E,2F#,1B,,1A#,,1B,,1F#,1G#,1B,,1F#,1G#,1B,1C#,1D#,1B,1E,1D#,1E,2F#,1B,,1B,,1F#,1G#,1B,1F#,1E,1D#,1C#,1B,,,,1F#,1B,,1F#,1G#,1B,,1F#,1G#,1B,1B,1C#,1D#,1B,1F#,1G#,1F#,1B,,1B,1A#,1B,1F#,1G#,1B,1E,1D#,1E,2F#,1B,,1B,,";
- final String[] tune = tuneStr.split(",");
- for (Player player : server.getOnlinePlayers())
+ final Map<String, Float> noteMap = new HashMap<String, Float>();
+ noteMap.put("1F#", 0.5f);
+ noteMap.put("1G", 0.53f);
+ noteMap.put("1G#", 0.56f);
+ noteMap.put("1A", 0.6f);
+ noteMap.put("1A#", 0.63f);
+ noteMap.put("1B", 0.67f);
+ noteMap.put("1C", 0.7f);
+ noteMap.put("1C#", 0.76f);
+ noteMap.put("1D", 0.8f);
+ noteMap.put("1D#", 0.84f);
+ noteMap.put("1E", 0.9f);
+ noteMap.put("1F", 0.94f);
+ noteMap.put("2F#", 1.0f);
+ noteMap.put("2G", 1.06f);
+ noteMap.put("2G#", 1.12f);
+ noteMap.put("2A", 1.18f);
+ noteMap.put("2A#", 1.26f);
+ noteMap.put("2B", 1.34f);
+ noteMap.put("2C", 1.42f);
+ noteMap.put("2C#", 1.5f);
+ noteMap.put("2D", 1.6f);
+ noteMap.put("2D#", 1.68f);
+ noteMap.put("2E", 1.78f);
+ noteMap.put("2F", 1.88f);
+ final String tuneStr = "1D#,1E,2F#,,2A#,1E,1D#,1E,2F#,2B,2D#,2E,2D#,2A#,2B,,2F#,,1D#,1E,2F#,2B,2C#,2A#,2B,2C#,2E,2D#,2E,2C#,,2F#,,2G#,,1D,1D#,,1C#,1D,1C#,1B,,1B,,1C#,,1D,,1D,1C#,1B,1C#,1D#,2F#,2G#,1D#,2F#,1C#,1D#,1B,1C#,1B,1D#,,2F#,,2G#,1D#,2F#,1C#,1D#,1B,1D,1D#,1D,1C#,1B,1C#,1D,,1B,1C#,1D#,2F#,1C#,1D,1C#,1B,1C#,,1B,,1C#,,2F#,,2G#,,1D,1D#,,1C#,1D,1C#,1B,,1B,,1C#,,1D,,1D,1C#,1B,1C#,1D#,2F#,2G#,1D#,2F#,1C#,1D#,1B,1C#,1B,1D#,,2F#,,2G#,1D#,2F#,1C#,1D#,1B,1D,1D#,1D,1C#,1B,1C#,1D,,1B,1C#,1D#,2F#,1C#,1D,1C#,1B,1C#,,1B,,1B,,1B,,1F#,1G#,1B,,1F#,1G#,1B,1C#,1D#,1B,1E,1D#,1E,2F#,1B,,1B,,1F#,1G#,1B,1E,1D#,1C#,1B,,,,1F#,1B,,1F#,1G#,1B,,1F#,1G#,1B,1B,1C#,1D#,1B,1F#,1G#,1F#,1B,,1B,1A#,1B,1F#,1G#,1B,1E,1D#,1E,2F#,1B,,1A#,,1B,,1F#,1G#,1B,,1F#,1G#,1B,1C#,1D#,1B,1E,1D#,1E,2F#,1B,,1B,,1F#,1G#,1B,1F#,1E,1D#,1C#,1B,,,,1F#,1B,,1F#,1G#,1B,,1F#,1G#,1B,1B,1C#,1D#,1B,1F#,1G#,1F#,1B,,1B,1A#,1B,1F#,1G#,1B,1E,1D#,1E,2F#,1B,,1A#,,1B,,1F#,1G#,1B,,1F#,1G#,1B,1C#,1D#,1B,1E,1D#,1E,2F#,1B,,1B,,1F#,1G#,1B,1F#,1E,1D#,1C#,1B,,,,1F#,1B,,1F#,1G#,1B,,1F#,1G#,1B,1B,1C#,1D#,1B,1F#,1G#,1F#,1B,,1B,1A#,1B,1F#,1G#,1B,1E,1D#,1E,2F#,1B,,1A#,,1B,,1F#,1G#,1B,,1F#,1G#,1B,1C#,1D#,1B,1E,1D#,1E,2F#,1B,,1B,,1F#,1G#,1B,1F#,1E,1D#,1C#,1B,,,,1F#,1B,,1F#,1G#,1B,,1F#,1G#,1B,1B,1C#,1D#,1B,1F#,1G#,1F#,1B,,1B,1A#,1B,1F#,1G#,1B,1E,1D#,1E,2F#,1B,,1A#,,1B,,1F#,1G#,1B,,1F#,1G#,1B,1C#,1D#,1B,1E,1D#,1E,2F#,1B,,1B,,1F#,1G#,1B,1F#,1E,1D#,1C#,1B,,,,1F#,1B,,1F#,1G#,1B,,1F#,1G#,1B,1B,1C#,1D#,1B,1F#,1G#,1F#,1B,,1B,1A#,1B,1F#,1G#,1B,1E,1D#,1E,2F#,1B,,1B,,";
+ final String[] tune = tuneStr.split(",");
+ taskid = ess.scheduleSyncRepeatingTask(new Runnable()
+ {
+ int i = 0;
+
+ @Override
+ public void run()
{
- final Location loc = player.getLocation();
- loc.add(0, 3, 0);
- while (loc.getBlockY() < player.getLocation().getBlockY() + 10 && loc.getBlock().getTypeId() != 0)
+ final String note = tune[i];
+ i++;
+ if (i >= tune.length)
{
- loc.add(0, 1, 0);
+ Commandessentials.this.stopTune();
}
- if (loc.getBlock().getTypeId() == 0)
+ if (note.isEmpty() || note == null)
{
- noteBlocks.put(player, loc.getBlock());
- loc.getBlock().setType(Material.NOTE_BLOCK);
+ return;
}
- }
- taskid = ess.scheduleSyncRepeatingTask(new Runnable()
- {
- int i = 0;
-
- @Override
- public void run()
+ for (Player onlinePlayer : server.getOnlinePlayers())
{
- final String note = tune[i];
- i++;
- if (i >= tune.length)
- {
- Commandessentials.this.stopTune();
- }
- if (note.isEmpty())
- {
- return;
- }
- Map<Player, Block> noteBlocks = Commandessentials.this.noteBlocks;
- for (Player onlinePlayer : server.getOnlinePlayers())
- {
- final Block block = noteBlocks.get(onlinePlayer);
- if (block == null || block.getType() != Material.NOTE_BLOCK)
- {
- continue;
- }
- onlinePlayer.playNote(block.getLocation(), (byte)0, noteMap.get(note));
- }
+ onlinePlayer.playSound(onlinePlayer.getLocation(), Sound.NOTE_PIANO, 1, noteMap.get(note));
}
- }, 20, 2);
+ }
+ }, 20, 2);
}
private void stopTune()
@@ -188,24 +173,39 @@ public class Commandessentials extends EssentialsCommand
}
noteBlocks.clear();
}
-
+
private void run_moo(final Server server, final CommandSender sender, final String command, final String args[])
{
- if(sender instanceof ConsoleCommandSender)
- sender.sendMessage(new String[]{" (__)", " (oo)", " /------\\/", " / | ||", " * /\\---/\\", " ~~ ~~", "....\"Have you mooed today?\"..." } );
+ if (sender instanceof ConsoleCommandSender)
+ {
+ sender.sendMessage(new String[]
+ {
+ " (__)", " (oo)", " /------\\/", " / | ||", " * /\\---/\\", " ~~ ~~", "....\"Have you mooed today?\"..."
+ });
+ }
else
- sender.sendMessage(new String[]{" (__)", " (oo)", " /------\\/", " / | | |", " * /\\---/\\", " ~~ ~~", "....\"Have you mooed today?\"..." } );
+ {
+ sender.sendMessage(new String[]
+ {
+ " (__)", " (oo)", " /------\\/", " / | | |", " * /\\---/\\", " ~~ ~~", "....\"Have you mooed today?\"..."
+ });
+ final Player player = (Player)sender;
+ player.playSound(player.getLocation(), Sound.COW_IDLE, 1, 1.0f);
+ }
}
-
+
private void run_optout(final Server server, final CommandSender sender, final String command, final String args[])
{
final Metrics metrics = ess.getMetrics();
try
{
sender.sendMessage("Essentials collects simple metrics to highlight which features to concentrate work on in the future.");
- if (metrics.isOptOut()) {
- metrics.enable();
- } else {
+ if (metrics.isOptOut())
+ {
+ metrics.enable();
+ }
+ else
+ {
metrics.disable();
}
sender.sendMessage("Anonymous Metrics are now: " + (metrics.isOptOut() ? "disabled" : "enabled"));
@@ -215,4 +215,59 @@ public class Commandessentials extends EssentialsCommand
sender.sendMessage("Unable to modify 'plugins/PluginMetrics/config.yml': " + ex.getMessage());
}
}
+
+ private void run_cleanup(final Server server, final CommandSender sender, final String command, final String args[]) throws Exception
+ {
+ if (args.length < 2 || !Util.isInt(args[1]))
+ {
+ sender.sendMessage("This sub-command will delete users who havent logged in in the last <days> days.");
+ sender.sendMessage("Optional parameters define the minium amount required to prevent deletion.");
+ throw new Exception("/<command> cleanup <days> [money] [homes] [ban count]");
+ }
+ sender.sendMessage(_("cleaning"));
+
+ final long daysArg = Long.parseLong(args[1]);
+ final double moneyArg = args.length >= 3 ? Double.parseDouble(args[2].replaceAll("[^0-9\\.]", "")) : 0;
+ final int homesArg = args.length >= 4 && Util.isInt(args[3]) ? Integer.parseInt(args[3]) : 0;
+ final int bansArg = args.length >= 5 && Util.isInt(args[4]) ? Integer.parseInt(args[4]) : 0;
+ final UserMap userMap = ess.getUserMap();
+
+ ess.runTaskAsynchronously(new Runnable()
+ {
+ @Override
+ public void run()
+ {
+ for (String u : userMap.getAllUniqueUsers())
+ {
+ final User user = ess.getUserMap().getUser(u);
+ if (user == null)
+ {
+ continue;
+ }
+
+ int ban = user.getBanReason().equals("") ? 0 : 1;
+ long lastLog = user.getLastLogout();
+ long timeDiff = System.currentTimeMillis() - lastLog;
+ long milliDays = daysArg * 24L * 60L * 60L * 1000L;
+ int homeCount = user.getHomes().size();
+ double moneyCount = user.getMoney();
+
+ if ((lastLog == 0) || (ban > bansArg) || (timeDiff < milliDays)
+ || (homeCount > homesArg) || (moneyCount > moneyArg))
+ {
+ continue;
+ }
+
+ if (ess.getSettings().isDebug())
+ {
+ ess.getLogger().info("Deleting user: " + user.getName() + " Money: " + moneyCount + " Homes: " + homeCount + " Last seen: " + Util.formatDateDiff(lastLog));
+ }
+
+ user.reset();
+ }
+ sender.sendMessage(_("cleaned"));
+ }
+ });
+
+ }
}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandfirework.java b/Essentials/src/com/earth2me/essentials/commands/Commandfirework.java
index 182028235..41a844fbd 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandfirework.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandfirework.java
@@ -4,10 +4,7 @@ import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.MetaItemStack;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
-import java.util.HashMap;
-import java.util.Map;
import java.util.regex.Pattern;
-import org.bukkit.DyeColor;
import org.bukkit.FireworkEffect;
import org.bukkit.Material;
import org.bukkit.Server;
@@ -36,20 +33,6 @@ import org.bukkit.util.Vector;
public class Commandfirework extends EssentialsCommand
{
private final transient Pattern splitPattern = Pattern.compile("[:+',;.]");
- private final static Map<String, DyeColor> colorMap = new HashMap<String, DyeColor>();
- private final static Map<String, FireworkEffect.Type> fireworkShape = new HashMap<String, FireworkEffect.Type>();
-
- static
- {
- for (DyeColor color : DyeColor.values())
- {
- colorMap.put(color.name(), color);
- }
- for (FireworkEffect.Type type : FireworkEffect.Type.values())
- {
- fireworkShape.put(type.name(), type);
- }
- }
public Commandfirework()
{
@@ -128,14 +111,25 @@ public class Commandfirework extends EssentialsCommand
final MetaItemStack mStack = new MetaItemStack(stack);
for (String arg : args)
{
- final String[] split = splitPattern.split(arg, 2);
- mStack.addFireworkMeta(user, true, arg, ess);
+ try
+ {
+ mStack.addFireworkMeta(user, true, arg, ess);
+ }
+ catch (Exception e)
+ {
+ user.sendMessage(_("fireworkSyntax"));
+ throw e;
+ }
}
if (mStack.isValidFirework())
{
FireworkMeta fmeta = (FireworkMeta)mStack.getItemStack().getItemMeta();
FireworkEffect effect = mStack.getFireworkBuilder().build();
+ if (fmeta.getEffects().size() > 0 && !user.isAuthorized("essentials.firework.multiple"))
+ {
+ throw new Exception(_("multipleCharges"));
+ }
fmeta.addEffect(effect);
stack.setItemMeta(fmeta);
}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandgive.java b/Essentials/src/com/earth2me/essentials/commands/Commandgive.java
index bd5d3c39b..d7c6feaa9 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandgive.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandgive.java
@@ -33,9 +33,9 @@ public class Commandgive extends EssentialsCommand
final String itemname = stack.getType().toString().toLowerCase(Locale.ENGLISH).replace("_", "");
if (sender instanceof Player
&& (ess.getSettings().permissionBasedItemSpawn()
- ? (!ess.getUser(sender).isAuthorized("essentials.give.item-all")
- && !ess.getUser(sender).isAuthorized("essentials.give.item-" + itemname)
- && !ess.getUser(sender).isAuthorized("essentials.give.item-" + stack.getTypeId()))
+ ? (!ess.getUser(sender).isAuthorized("essentials.itemspawn.item-all")
+ && !ess.getUser(sender).isAuthorized("essentials.itemspawn.item-" + itemname)
+ && !ess.getUser(sender).isAuthorized("essentials.itemspawn.item-" + stack.getTypeId()))
: (!ess.getUser(sender).isAuthorized("essentials.itemspawn.exempt")
&& !ess.getUser(sender).canSpawnItem(stack.getTypeId()))))
{
@@ -73,7 +73,7 @@ public class Commandgive extends EssentialsCommand
{
MetaItemStack metaStack = new MetaItemStack(stack);
boolean allowUnsafe = ess.getSettings().allowUnsafeEnchantments();
- if (allowUnsafe && sender instanceof Player && !ess.getUser(sender).isAuthorized("essentials.enchant.allowunsafe"))
+ if (allowUnsafe && sender instanceof Player && !ess.getUser(sender).isAuthorized("essentials.enchantments.allowunsafe"))
{
allowUnsafe = false;
}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commanditem.java b/Essentials/src/com/earth2me/essentials/commands/Commanditem.java
index 0ff65fb19..09a56ebd9 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commanditem.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commanditem.java
@@ -58,7 +58,7 @@ public class Commanditem extends EssentialsCommand
if (args.length > 2)
{
MetaItemStack metaStack = new MetaItemStack(stack);
- final boolean allowUnsafe = ess.getSettings().allowUnsafeEnchantments() && user.isAuthorized("essentials.enchant.allowunsafe");
+ final boolean allowUnsafe = ess.getSettings().allowUnsafeEnchantments() && user.isAuthorized("essentials.enchantments.allowunsafe");
metaStack.parseStringMeta(user, allowUnsafe, args, 2, ess);
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandnick.java b/Essentials/src/com/earth2me/essentials/commands/Commandnick.java
index 808e0be70..749b7a9ad 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandnick.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandnick.java
@@ -94,7 +94,13 @@ public class Commandnick extends EssentialsCommand
{
throw new Exception(_("nickNamesAlpha"));
}
- else if ("off".equalsIgnoreCase(nick) || target.getName().equalsIgnoreCase(nick))
+ else if (target.getName().equalsIgnoreCase(nick))
+ {
+ target.setNickname(nick);
+ target.setDisplayNick();
+ target.sendMessage(_("nickNoMore"));
+ }
+ else if ("off".equalsIgnoreCase(nick))
{
target.setNickname(null);
target.setDisplayNick();
@@ -102,16 +108,16 @@ public class Commandnick extends EssentialsCommand
}
else
{
- for (Player p : server.getOnlinePlayers())
+ for (Player onlinePlayer : server.getOnlinePlayers())
{
- if (target.getBase() == p)
+ if (target.getBase() == onlinePlayer)
{
continue;
}
- String dn = p.getDisplayName().toLowerCase(Locale.ENGLISH);
- String n = p.getName().toLowerCase(Locale.ENGLISH);
- String nk = nick.toLowerCase(Locale.ENGLISH);
- if (nk.equals(dn) || nk.equals(n))
+ String displayName = onlinePlayer.getDisplayName().toLowerCase(Locale.ENGLISH);
+ String name = onlinePlayer.getName().toLowerCase(Locale.ENGLISH);
+ String lowerNick = nick.toLowerCase(Locale.ENGLISH);
+ if (lowerNick.equals(displayName) || lowerNick.equals(name))
{
throw new Exception(_("nickInUse"));
}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandpotion.java b/Essentials/src/com/earth2me/essentials/commands/Commandpotion.java
new file mode 100644
index 000000000..3ba0080f8
--- /dev/null
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandpotion.java
@@ -0,0 +1,89 @@
+package com.earth2me.essentials.commands;
+
+import static com.earth2me.essentials.I18n._;
+import com.earth2me.essentials.MetaItemStack;
+import com.earth2me.essentials.Potions;
+import com.earth2me.essentials.User;
+import com.earth2me.essentials.Util;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+import org.bukkit.Material;
+import org.bukkit.Server;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.PotionMeta;
+import org.bukkit.potion.PotionEffect;
+import org.bukkit.potion.PotionEffectType;
+
+
+public class Commandpotion extends EssentialsCommand
+{
+ public Commandpotion()
+ {
+ super("potion");
+ }
+
+ @Override
+ protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
+ {
+ final ItemStack stack = user.getItemInHand();
+
+ if (args.length == 0)
+ {
+ final Set<String> potionslist = new TreeSet<String>();
+ for (Map.Entry<String, PotionEffectType> entry : Potions.entrySet())
+ {
+ final String potionName = entry.getValue().getName().toLowerCase(Locale.ENGLISH);
+ if (potionslist.contains(potionName) || (user.isAuthorized("essentials.potion." + potionName)))
+ {
+ potionslist.add(entry.getKey());
+ }
+ }
+ throw new NotEnoughArgumentsException(_("potions", Util.joinList(potionslist.toArray())));
+ }
+
+ if (stack.getType() == Material.POTION)
+ {
+ PotionMeta pmeta = (PotionMeta)stack.getItemMeta();
+ if (args.length > 0)
+ {
+ if (args[0].equalsIgnoreCase("clear"))
+ {
+ pmeta.clearCustomEffects();
+ stack.setItemMeta(pmeta);
+ }
+ else if (args[0].equalsIgnoreCase("apply") && user.isAuthorized("essentials.potion.apply"))
+ {
+ for(PotionEffect effect : pmeta.getCustomEffects())
+ {
+ effect.apply(user);
+ }
+ }
+ else
+ {
+ final MetaItemStack mStack = new MetaItemStack(stack);
+ for (String arg : args)
+ {
+ mStack.addPotionMeta(user, true, arg, ess);
+ }
+ if (mStack.completePotion())
+ {
+ pmeta = (PotionMeta)mStack.getItemStack().getItemMeta();
+ stack.setItemMeta(pmeta);
+ }
+ else
+ {
+ user.sendMessage(_("invalidPotion"));
+ throw new NotEnoughArgumentsException();
+ }
+ }
+ }
+
+ }
+ else
+ {
+ throw new Exception(_("holdPotion"));
+ }
+ }
+}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandseen.java b/Essentials/src/com/earth2me/essentials/commands/Commandseen.java
index f5bf1bc0c..0b6cd6e46 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandseen.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandseen.java
@@ -2,7 +2,10 @@ package com.earth2me.essentials.commands;
import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.User;
+import com.earth2me.essentials.UserMap;
import com.earth2me.essentials.Util;
+import java.util.ArrayList;
+import java.util.List;
import org.bukkit.Location;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
@@ -18,16 +21,16 @@ public class Commandseen extends EssentialsCommand
@Override
protected void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{
- seen(server, sender, args, true, true);
+ seen(server, sender, args, true, true, true);
}
@Override
protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
{
- seen(server, user, args, user.isAuthorized("essentials.seen.banreason"), user.isAuthorized("essentials.seen.extra"));
+ seen(server, user, args, user.isAuthorized("essentials.seen.banreason"), user.isAuthorized("essentials.seen.extra"), user.isAuthorized("essentials.seen.ipsearch"));
}
- protected void seen(final Server server, final CommandSender sender, final String[] args, final boolean showBan, final boolean extra) throws Exception
+ protected void seen(final Server server, final CommandSender sender, final String[] args, final boolean showBan, final boolean extra, final boolean ipLookup) throws Exception
{
if (args.length < 1)
{
@@ -36,60 +39,122 @@ public class Commandseen extends EssentialsCommand
try
{
User user = getPlayer(server, args, 0);
- user.setDisplayNick();
- sender.sendMessage(_("seenOnline", user.getDisplayName(), Util.formatDateDiff(user.getLastLogin())));
- if (user.isAfk())
- {
- sender.sendMessage(_("whoisAFK", _("true")));
- }
- if (user.isJailed())
- {
- sender.sendMessage(_("whoisJail", (user.getJailTimeout() > 0
- ? Util.formatDateDiff(user.getJailTimeout())
- : _("true"))));
- }
- if (user.isMuted())
- {
- sender.sendMessage(_("whoisMuted", (user.getMuteTimeout() > 0
- ? Util.formatDateDiff(user.getMuteTimeout())
- : _("true"))));
- }
- if (extra)
- {
- sender.sendMessage(_("whoisIPAddress", user.getAddress().getAddress().toString()));
- }
+ seenOnline(server, sender, user, showBan, extra);
}
catch (NoSuchFieldException e)
{
User player = ess.getOfflineUser(args[0]);
if (player == null)
{
- throw new Exception(_("playerNotFound"));
+ if (ipLookup && Util.validIP(args[0]))
+ {
+ seenIP(server, sender, args[0]);
+ return;
+ }
+ else
+ {
+ throw new Exception(_("playerNotFound"));
+ }
}
- player.setDisplayNick();
- if (player.getLastLogout() > 0)
+ seenOffline(server, sender, player, showBan, extra);
+ }
+ }
+
+ private void seenOnline(final Server server, final CommandSender sender, final User user, final boolean showBan, final boolean extra) throws Exception
+ {
+
+ user.setDisplayNick();
+ sender.sendMessage(_("seenOnline", user.getDisplayName(), Util.formatDateDiff(user.getLastLogin())));
+ if (user.isAfk())
+ {
+ sender.sendMessage(_("whoisAFK", _("true")));
+ }
+ if (user.isJailed())
+ {
+ sender.sendMessage(_("whoisJail", (user.getJailTimeout() > 0
+ ? Util.formatDateDiff(user.getJailTimeout())
+ : _("true"))));
+ }
+ if (user.isMuted())
+ {
+ sender.sendMessage(_("whoisMuted", (user.getMuteTimeout() > 0
+ ? Util.formatDateDiff(user.getMuteTimeout())
+ : _("true"))));
+ }
+ if (extra)
+ {
+ sender.sendMessage(_("whoisIPAddress", user.getAddress().getAddress().toString()));
+ }
+ }
+
+ private void seenOffline(final Server server, final CommandSender sender, User player, final boolean showBan, final boolean extra) throws Exception
+ {
+ player.setDisplayNick();
+ if (player.getLastLogout() > 0)
+ {
+ sender.sendMessage(_("seenOffline", player.getName(), Util.formatDateDiff(player.getLastLogout())));
+ }
+ else
+ {
+ sender.sendMessage(_("userUnknown", player.getName()));
+ }
+ if (player.isBanned())
+ {
+ sender.sendMessage(_("whoisBanned", showBan ? player.getBanReason() : _("true")));
+ }
+ if (extra)
+ {
+ if (!player.getLastLoginAddress().isEmpty())
{
- sender.sendMessage(_("seenOffline", player.getName(), Util.formatDateDiff(player.getLastLogout())));
+ sender.sendMessage(_("whoisIPAddress", player.getLastLoginAddress()));
}
- else {
- sender.sendMessage(_("userUnknown", player.getName()));
- }
- if (player.isBanned())
+ final Location loc = player.getLogoutLocation();
+ if (loc != null)
{
- sender.sendMessage(_("whoisBanned", showBan ? player.getBanReason() : _("true")));
+ sender.sendMessage(_("whoisLocation", loc.getWorld().getName(), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()));
}
- if (extra)
+ }
+ }
+
+ private void seenIP(final Server server, final CommandSender sender, final String ipAddress) throws Exception
+ {
+ final UserMap userMap = ess.getUserMap();
+ sender.sendMessage(_("runningPlayerMatch", ipAddress));
+
+ ess.runTaskAsynchronously(new Runnable()
+ {
+ @Override
+ public void run()
{
- if (!player.getLastLoginAddress().isEmpty())
+ final List<String> matches = new ArrayList<String>();
+ for (final String u : userMap.getAllUniqueUsers())
+ {
+ final User user = ess.getUserMap().getUser(u);
+ if (user == null)
+ {
+ continue;
+ }
+
+ final String uIPAddress = user.getLastLoginAddress();
+
+ if (!uIPAddress.isEmpty() && uIPAddress.equalsIgnoreCase(ipAddress))
+ {
+ matches.add(user.getName());
+ }
+ }
+
+ if (matches.size() > 0)
{
- sender.sendMessage(_("whoisIPAddress", player.getLastLoginAddress()));
+ sender.sendMessage(_("matchingIPAddress"));
+ sender.sendMessage(Util.joinList(matches));
}
- final Location loc = player.getLogoutLocation();
- if (loc != null)
+ else
{
- sender.sendMessage(_("whoisLocation", loc.getWorld().getName(), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()));
+ sender.sendMessage(_("noMatchingPlayers"));
}
+
}
- }
+ });
+
}
}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandsetwarp.java b/Essentials/src/com/earth2me/essentials/commands/Commandsetwarp.java
index 2469f6ec1..542299c13 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandsetwarp.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandsetwarp.java
@@ -23,7 +23,7 @@ public class Commandsetwarp extends EssentialsCommand
throw new NotEnoughArgumentsException();
}
- if (Util.isInt(args[0]))
+ if (Util.isInt(args[0]) || args[0].isEmpty())
{
throw new NoSuchFieldException(_("invalidWarpName"));
}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandsudo.java b/Essentials/src/com/earth2me/essentials/commands/Commandsudo.java
index b2bd5d14b..6efa138c6 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandsudo.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandsudo.java
@@ -2,6 +2,7 @@ package com.earth2me.essentials.commands;
import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.User;
+import java.util.Locale;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.Server;
@@ -27,7 +28,7 @@ public class Commandsudo extends EssentialsCommand
}
final User user = getPlayer(server, args, 0, false);
- if(args[1].toLowerCase().startsWith("c:"))
+ if(args[1].toLowerCase(Locale.ENGLISH).startsWith("c:"))
{
if (user.isAuthorized("essentials.sudo.exempt") && sender instanceof Player)
{
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandtp.java b/Essentials/src/com/earth2me/essentials/commands/Commandtp.java
index 7eae137a3..efaf32f65 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandtp.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandtp.java
@@ -54,7 +54,7 @@ public class Commandtp extends EssentialsCommand
{
throw new NotEnoughArgumentsException("Value of coordinates cannot be over 30000000"); //TODO: I18n
}
- final Location location = new Location(target2.getWorld(), x, y, z);
+ final Location location = new Location(target2.getWorld(), x, y, z, target2.getLocation().getYaw(), target2.getLocation().getPitch());
if (!target2.isTeleportEnabled())
{
throw new Exception(_("teleportDisabled", target2.getDisplayName()));
@@ -115,7 +115,7 @@ public class Commandtp extends EssentialsCommand
{
throw new NotEnoughArgumentsException("Value of coordinates cannot be over 30000000"); //TODO: I18n
}
- final Location location = new Location(target.getWorld(), x, y, z);
+ final Location location = new Location(target.getWorld(), x, y, z, target.getLocation().getYaw(), target.getLocation().getPitch());
target.getTeleport().now(location, false, TeleportCause.COMMAND);
target.sendMessage(_("teleporting"));
} else {
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandtppos.java b/Essentials/src/com/earth2me/essentials/commands/Commandtppos.java
index c03a8b435..6f7789208 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandtppos.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandtppos.java
@@ -27,7 +27,7 @@ public class Commandtppos extends EssentialsCommand
final double x = args[0].startsWith("~") ? user.getLocation().getX() + Integer.parseInt(args[0].substring(1)) : Integer.parseInt(args[0]);
final double y = args[1].startsWith("~") ? user.getLocation().getY() + Integer.parseInt(args[1].substring(1)) : Integer.parseInt(args[1]);
final double z = args[2].startsWith("~") ? user.getLocation().getZ() + Integer.parseInt(args[2].substring(1)) : Integer.parseInt(args[2]);
- final Location location = new Location(user.getWorld(), x, y, z);
+ final Location location = new Location(user.getWorld(), x, y, z, user.getLocation().getYaw(), user.getLocation().getPitch());
if (args.length > 3)
{
location.setYaw((Float.parseFloat(args[3]) + 180 + 360) % 360);
@@ -59,7 +59,7 @@ public class Commandtppos extends EssentialsCommand
final double x = args[1].startsWith("~") ? user.getLocation().getX() + Integer.parseInt(args[1].substring(1)) : Integer.parseInt(args[1]);
final double y = args[2].startsWith("~") ? user.getLocation().getY() + Integer.parseInt(args[2].substring(1)) : Integer.parseInt(args[2]);
final double z = args[3].startsWith("~") ? user.getLocation().getZ() + Integer.parseInt(args[3].substring(1)) : Integer.parseInt(args[3]);
- final Location location = new Location(user.getWorld(), x, y, z);
+ final Location location = new Location(user.getWorld(), x, y, z, user.getLocation().getYaw(), user.getLocation().getPitch());
if (args.length > 4)
{
location.setYaw((Float.parseFloat(args[4]) + 180 + 360) % 360);
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandunban.java b/Essentials/src/com/earth2me/essentials/commands/Commandunban.java
index 9826814c7..92b30b884 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandunban.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandunban.java
@@ -1,10 +1,13 @@
package com.earth2me.essentials.commands;
+import com.earth2me.essentials.Console;
import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.User;
+import java.util.logging.Level;
import org.bukkit.OfflinePlayer;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
public class Commandunban extends EssentialsCommand
@@ -21,25 +24,35 @@ public class Commandunban extends EssentialsCommand
{
throw new NotEnoughArgumentsException();
}
-
+ String name;
try
{
final User user = getPlayer(server, args, 0, true);
+ name = user.getName();
user.setBanned(false);
user.setBanTimeout(0);
- sender.sendMessage(_("unbannedPlayer"));
}
catch (NoSuchFieldException e)
{
final OfflinePlayer player = server.getOfflinePlayer(args[0]);
- if (player.isBanned())
+ name = player.getName();
+ if (!player.isBanned())
+ {
+ throw new Exception(_("playerNotFound"), e);
+ }
+ player.setBanned(false);
+ }
+
+ final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
+ server.getLogger().log(Level.INFO, _("playerUnbanned", senderName, name));
+
+ for (Player onlinePlayer : server.getOnlinePlayers())
+ {
+ final User onlineUser = ess.getUser(onlinePlayer);
+ if (onlinePlayer == sender || onlineUser.isAuthorized("essentials.ban.notify"))
{
- player.setBanned(false);
- sender.sendMessage(_("unbannedPlayer"));
- return;
- }
-
- throw new Exception(_("playerNotFound"), e);
+ onlinePlayer.sendMessage(_("playerUnbanned", senderName, name));
+ }
}
}
}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandunbanip.java b/Essentials/src/com/earth2me/essentials/commands/Commandunbanip.java
index c539a596c..4a980e291 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandunbanip.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandunbanip.java
@@ -1,9 +1,13 @@
package com.earth2me.essentials.commands;
+import com.earth2me.essentials.Console;
import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.User;
+import com.earth2me.essentials.Util;
+import java.util.logging.Level;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
public class Commandunbanip extends EssentialsCommand
@@ -20,15 +24,32 @@ public class Commandunbanip extends EssentialsCommand
{
throw new NotEnoughArgumentsException();
}
- try
+ String ipAddress;
+ if (Util.validIP(args[0]))
+ {
+ ipAddress = args[0];
+ }
+ else
{
final User user = getPlayer(server, args, 0, true);
- ess.getServer().unbanIP(user.getLastLoginAddress());
+ ipAddress = user.getLastLoginAddress();
+ if (ipAddress.isEmpty())
+ {
+ throw new PlayerNotFoundException();
+ }
}
- catch (Exception ex)
+
+ ess.getServer().unbanIP(ipAddress);
+ final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
+ server.getLogger().log(Level.INFO, _("playerUnbanIpAddress", senderName, ipAddress));
+
+ for (Player onlinePlayer : server.getOnlinePlayers())
{
+ final User onlineUser = ess.getUser(onlinePlayer);
+ if (onlinePlayer == sender || onlineUser.isAuthorized("essentials.ban.notify"))
+ {
+ onlinePlayer.sendMessage(_("playerUnbanIpAddress", senderName, ipAddress));
+ }
}
- ess.getServer().unbanIP(args[0]);
- sender.sendMessage(_("unbannedIP"));
}
}
diff --git a/Essentials/src/com/earth2me/essentials/signs/SignEnchant.java b/Essentials/src/com/earth2me/essentials/signs/SignEnchant.java
index bf92a17f8..c0079fc63 100644
--- a/Essentials/src/com/earth2me/essentials/signs/SignEnchant.java
+++ b/Essentials/src/com/earth2me/essentials/signs/SignEnchant.java
@@ -49,7 +49,7 @@ public class SignEnchant extends EssentialsSign
sign.setLine(2, "§c<enchant>");
throw new SignException(ex.getMessage(), ex);
}
- final boolean allowUnsafe = ess.getSettings().allowUnsafeEnchantments() && player.isAuthorized("essentials.enchant.allowunsafe");
+ final boolean allowUnsafe = ess.getSettings().allowUnsafeEnchantments() && player.isAuthorized("essentials.enchantments.allowunsafe");
if (level < 0 || (!allowUnsafe && level > enchantment.getMaxLevel()))
{
level = enchantment.getMaxLevel();
diff --git a/Essentials/src/com/earth2me/essentials/signs/SignGameMode.java b/Essentials/src/com/earth2me/essentials/signs/SignGameMode.java
index e3166db78..686e304f3 100644
--- a/Essentials/src/com/earth2me/essentials/signs/SignGameMode.java
+++ b/Essentials/src/com/earth2me/essentials/signs/SignGameMode.java
@@ -46,6 +46,7 @@ public class SignGameMode extends EssentialsSign
performSetMode(mode.toLowerCase(Locale.ENGLISH), player);
player.sendMessage(_("gameMode", _(player.getGameMode().toString().toLowerCase(Locale.ENGLISH)), player.getDisplayName()));
+ Trade.log("Sign", "gameMode", "Interact", username, null, username, charge, sign.getBlock().getLocation(), ess);
charge.charge(player);
return true;
}
diff --git a/Essentials/src/com/earth2me/essentials/signs/SignHeal.java b/Essentials/src/com/earth2me/essentials/signs/SignHeal.java
index be8b7ba1d..f29032163 100644
--- a/Essentials/src/com/earth2me/essentials/signs/SignHeal.java
+++ b/Essentials/src/com/earth2me/essentials/signs/SignHeal.java
@@ -31,6 +31,7 @@ public class SignHeal extends EssentialsSign
player.setFireTicks(0);
player.sendMessage(_("youAreHealed"));
charge.charge(player);
+ Trade.log("Sign", "Heal", "Interact", username, null, username, charge, sign.getBlock().getLocation(), ess);
return true;
}
}
diff --git a/Essentials/src/com/earth2me/essentials/signs/SignInfo.java b/Essentials/src/com/earth2me/essentials/signs/SignInfo.java
index e75b060e3..fa79f9c63 100644
--- a/Essentials/src/com/earth2me/essentials/signs/SignInfo.java
+++ b/Essentials/src/com/earth2me/essentials/signs/SignInfo.java
@@ -49,6 +49,7 @@ public class SignInfo extends EssentialsSign
}
charge.charge(player);
+ Trade.log("Sign", "Info", "Interact", username, null, username, charge, sign.getBlock().getLocation(), ess);
return true;
}
}
diff --git a/Essentials/src/com/earth2me/essentials/signs/SignKit.java b/Essentials/src/com/earth2me/essentials/signs/SignKit.java
index 6b856fc36..391b23407 100644
--- a/Essentials/src/com/earth2me/essentials/signs/SignKit.java
+++ b/Essentials/src/com/earth2me/essentials/signs/SignKit.java
@@ -63,6 +63,7 @@ public class SignKit extends EssentialsSign
final List<String> items = Kit.getItems(player, kit);
Kit.expandItems(ess, player, items);
charge.charge(player);
+ Trade.log("Sign", "Kit", "Interact", username, null, username, charge, sign.getBlock().getLocation(), ess);
}
catch (NoChargeException ex)
{
diff --git a/Essentials/src/com/earth2me/essentials/signs/SignRepair.java b/Essentials/src/com/earth2me/essentials/signs/SignRepair.java
index 7e76309f1..f09d94536 100644
--- a/Essentials/src/com/earth2me/essentials/signs/SignRepair.java
+++ b/Essentials/src/com/earth2me/essentials/signs/SignRepair.java
@@ -23,11 +23,11 @@ public class SignRepair extends EssentialsSign
{
sign.setLine(1, "Hand");
}
- else if (!repairTarget.equalsIgnoreCase("all") && !repairTarget.equalsIgnoreCase("hand") )
+ else if (!repairTarget.equalsIgnoreCase("all") && !repairTarget.equalsIgnoreCase("hand"))
{
sign.setLine(1, "§c<hand|all>");
throw new SignException(_("invalidSignLine", 2));
- }
+ }
validateTrade(sign, 2, ess);
return true;
}
@@ -37,7 +37,7 @@ public class SignRepair extends EssentialsSign
{
final Trade charge = getTrade(sign, 2, ess);
charge.isAffordableFor(player);
-
+
Commandrepair command = new Commandrepair();
command.setEssentials(ess);
String[] args = new String[]
@@ -52,7 +52,8 @@ public class SignRepair extends EssentialsSign
{
throw new SignException(ex.getMessage(), ex);
}
- charge.charge(player);
+ charge.charge(player);
+ Trade.log("Sign", "Repair", "Interact", username, null, username, charge, sign.getBlock().getLocation(), ess);
return true;
}
}
diff --git a/Essentials/src/com/earth2me/essentials/signs/SignSpawnmob.java b/Essentials/src/com/earth2me/essentials/signs/SignSpawnmob.java
index 41fb05ecd..44979a7f1 100644
--- a/Essentials/src/com/earth2me/essentials/signs/SignSpawnmob.java
+++ b/Essentials/src/com/earth2me/essentials/signs/SignSpawnmob.java
@@ -39,6 +39,7 @@ public class SignSpawnmob extends EssentialsSign
}
charge.charge(player);
+ Trade.log("Sign", "Spawnmob", "Interact", username, null, username, charge, sign.getBlock().getLocation(), ess);
return true;
}
}
diff --git a/Essentials/src/com/earth2me/essentials/signs/SignTime.java b/Essentials/src/com/earth2me/essentials/signs/SignTime.java
index 99c579ff4..c618133c3 100644
--- a/Essentials/src/com/earth2me/essentials/signs/SignTime.java
+++ b/Essentials/src/com/earth2me/essentials/signs/SignTime.java
@@ -44,12 +44,14 @@ public class SignTime extends EssentialsSign
{
player.getWorld().setTime(time + 24000);
charge.charge(player);
+ Trade.log("Sign", "TimeDay", "Interact", username, null, username, charge, sign.getBlock().getLocation(), ess);
return true;
}
if ("§2Night".equalsIgnoreCase(timeString))
{
player.getWorld().setTime(time + 37700);
charge.charge(player);
+ Trade.log("Sign", "TimeNight", "Interact", username, null, username, charge, sign.getBlock().getLocation(), ess);
return true;
}
throw new SignException(_("onlyDayNight"));
diff --git a/Essentials/src/com/earth2me/essentials/signs/SignTrade.java b/Essentials/src/com/earth2me/essentials/signs/SignTrade.java
index 41f9fb2a5..d1115eaae 100644
--- a/Essentials/src/com/earth2me/essentials/signs/SignTrade.java
+++ b/Essentials/src/com/earth2me/essentials/signs/SignTrade.java
@@ -2,9 +2,10 @@ package com.earth2me.essentials.signs;
import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.*;
+import com.earth2me.essentials.Trade.TradeType;
import org.bukkit.inventory.ItemStack;
-//TODO: Sell Enchantment on Trade signs?
+//TODO: TL exceptions
public class SignTrade extends EssentialsSign
{
@@ -18,11 +19,15 @@ public class SignTrade extends EssentialsSign
{
validateTrade(sign, 1, false, ess);
validateTrade(sign, 2, true, ess);
- final Trade charge = getTrade(sign, 2, true, true, ess);
- charge.isAffordableFor(player);
+ final Trade trade = getTrade(sign, 2, true, true, ess);
+ final Trade charge = getTrade(sign, 1, true, false, ess);
+ if (trade.getType() == charge.getType() && (trade.getType() != TradeType.ITEM || trade.getItemStack().getType().equals(charge.getItemStack().getType()))) {
+ throw new SignException("You cannot trade for the same item type.");
+ }
+ trade.isAffordableFor(player);
sign.setLine(3, "§8" + username);
- charge.charge(player);
- Trade.log("Sign", "Trade", "Create", username, charge, username, null, sign.getBlock().getLocation(), ess);
+ trade.charge(player);
+ Trade.log("Sign", "Trade", "Create", username, trade, username, null, sign.getBlock().getLocation(), ess);
return true;
}
diff --git a/Essentials/src/com/earth2me/essentials/signs/SignWarp.java b/Essentials/src/com/earth2me/essentials/signs/SignWarp.java
index eb81ea4e1..ef52ceb60 100644
--- a/Essentials/src/com/earth2me/essentials/signs/SignWarp.java
+++ b/Essentials/src/com/earth2me/essentials/signs/SignWarp.java
@@ -59,6 +59,7 @@ public class SignWarp extends EssentialsSign
try
{
player.getTeleport().warp(warpName, charge, TeleportCause.PLUGIN);
+ Trade.log("Sign", "Warp", "Interact", username, null, username, charge, sign.getBlock().getLocation(), ess);
}
catch (Exception ex)
{
diff --git a/Essentials/src/com/earth2me/essentials/signs/SignWeather.java b/Essentials/src/com/earth2me/essentials/signs/SignWeather.java
index 9be677143..527e9fcf8 100644
--- a/Essentials/src/com/earth2me/essentials/signs/SignWeather.java
+++ b/Essentials/src/com/earth2me/essentials/signs/SignWeather.java
@@ -43,12 +43,14 @@ public class SignWeather extends EssentialsSign
{
player.getWorld().setStorm(false);
charge.charge(player);
+ Trade.log("Sign", "WeatherSun", "Interact", username, null, username, charge, sign.getBlock().getLocation(), ess);
return true;
}
if ("§2Storm".equalsIgnoreCase(weatherString))
{
player.getWorld().setStorm(true);
charge.charge(player);
+ Trade.log("Sign", "WeatherStorm", "Interact", username, null, username, charge, sign.getBlock().getLocation(), ess);
return true;
}
throw new SignException(_("onlySunStorm"));
diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml
index d4023192c..a651e5698 100644
--- a/Essentials/src/config.yml
+++ b/Essentials/src/config.yml
@@ -497,19 +497,7 @@ chat:
############################################################
protect:
- # Database settings for sign/rail protection.
-
- # mysql or sqlite
- # We strongly recommend against using mysql here, unless you have a good reason.
- # Sqlite seems to be faster in almost all cases, and in some cases mysql can be much slower.
- datatype: 'sqlite'
-
- # If you specified MySQL above, you MUST enter the appropriate details here.
- # If you specified SQLite above, these will be IGNORED.
- username: 'root'
- password: 'root'
- mysqlDb: 'jdbc:mysql://localhost:3306/minecraft'
-
+
# General physics/behavior modifications.
prevent:
lava-flow: false
@@ -574,25 +562,6 @@ protect:
creeper:
max-height: -1
- # Protect various blocks.
- protect:
- # Protect all signs.
- signs: false
-
- # Prevent users from destroying rails.
- rails: false
-
- # Blocks below rails/signs are also protected if the respective rail/sign is protected.
- # This makes it more difficult to circumvent protection, and should be enabled.
- # This only has an effect if "rails" or "signs" is also enabled.
- block-below: true
-
- # Prevent placing blocks above protected rails, this is to stop a potential griefing.
- prevent-block-on-rails: false
-
- # Store blocks / signs in memory before writing.
- memstore: false
-
# Disable various default physics and behaviors.
disable:
# Should fall damage be disabled?
diff --git a/Essentials/src/messages.properties b/Essentials/src/messages.properties
index 6496a5cd2..7d615d8bf 100644
--- a/Essentials/src/messages.properties
+++ b/Essentials/src/messages.properties
@@ -11,6 +11,8 @@ alertFormat=\u00a73[{0}] \u00a7r {1} \u00a76 {2} at: {3}
alertPlaced=placed:
alertUsed=used:
antiBuildBreak=\u00a74You are not permitted to break\u00a7c {0} \u00a74blocks here.
+antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
+antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
antiBuildInteract=\u00a74You are not permitted to interact with\u00a7c {0}\u00a74.
antiBuildPlace=\u00a74You are not permitted to place\u00a7c {0} \u00a74here.
antiBuildUse=\u00a74You are not permitted to use\u00a7c {0}\u00a74.
@@ -24,10 +26,16 @@ balance=\u00a7aBalance:\u00a7c {0}
balanceTop=\u00a76Top balances ({0})
banExempt=\u00a74You can not ban that player.
banFormat=\u00a74Banned:\n\u00a7r{0}
-banIpAddress=\u00a76Banned IP address
+bed=\u00a7obed\u00a7r
+bedMissing=\u00a74Your bed is either unset, missing or blocked.
+bedNull=\u00a7mbed\u00a7r
+bedSet=\u00a76Bed spawn set!
bigTreeFailure=\u00a74Big tree generation failure. Try again on grass or dirt.
bigTreeSuccess= \u00a76Big tree spawned.
blockList=\u00a76Essentials relayed the following commands to another plugin:
+bookAuthorSet=\u00a76Author of the book set to {0}.
+bookLocked=\u00a76This book is now locked.
+bookTitleSet=\u00a76Title of the book set to {0}.
broadcast=\u00a7r\u00a76[\u00a74Broadcast\u00a76]\u00a7a {0}
buildAlert=\u00a74You are not permitted to build.
bukkitFormatChanged=Bukkit version format changed. Version not checked.
@@ -39,6 +47,8 @@ cantSpawnItem=\u00a74You are not allowed to spawn the item\u00a7c {0}\u00a74.
chatTypeAdmin=[A]
chatTypeLocal=[L]
chatTypeSpy=[Spy]
+cleaned=Userfiles Cleaned.
+cleaning=Cleaning userfiles.
commandFailed=Command {0} failed:
commandHelpFailedForPlugin=Error getting help for plugin: {0}
commandNotLoaded=\u00a74Command {0} is improperly loaded.
@@ -63,6 +73,9 @@ deleteHome=\u00a76Home\u00a7c {0} \u00a76has been removed.
deleteJail=\u00a76Jail\u00a7c {0} \u00a76has been removed.
deleteWarp=\u00a76Warp\u00a7c {0} \u00a76has been removed.
deniedAccessCommand=\u00a7c{0} \u00a74was denied access to command.
+denyBookEdit=\u00a74You cannot unlock this book.
+denyChangeAuthor=\u00a74You cannot change the author of this book.
+denyChangeTitle=\u00a74You cannot change the title of this book.
dependancyDownloaded=[Essentials] Dependency {0} downloaded successfully.
dependancyException=[Essentials] An error occurred when trying to download a dependency.
dependancyNotFound=[Essentials] A required dependency was not found, downloading now.
@@ -73,10 +86,12 @@ destinationNotSet=Destination not set!
disableUnlimited=\u00a76Disabled unlimited placing of\u00a7c {0} \u00a76for {1}.
disabled=disabled
disabledToSpawnMob=\u00a74Spawning this mob was disabled in the config file.
+distance=\u00a76Distance: {0}
dontMoveMessage=\u00a76Teleportation will commence in\u00a7c {0}\u00a76. Don''t move.
downloadingGeoIp=Downloading GeoIP database... this might take a while (country: 0.6 MB, city: 20MB)
duplicatedUserdata=Duplicated userdata: {0} and {1}.
durability=\u00a76This tool has \u00a7c{0}\u00a76 uses left
+editBookContents=\u00a7eYou may now edit the contents of this book.
enableUnlimited=\u00a76Giving unlimited amount of\u00a7c {0} \u00a76to {1}.
enabled=enabled
enchantmentApplied= \u00a76The enchantment\u00a7c {0} \u00a76has been applied to your item in hand.
@@ -100,17 +115,23 @@ false=\u00a74false\u00a7r
feed=\u00a76Your appetite was sated.
feedOther=\u00a76Satisfied {0}\u00a76.
fileRenameError=Renaming file {0} failed!
+fireworkColor=\u00a74Invalid firework charge parameters inserted, must set a color first.
+fireworkEffectsCleared=\u00a76Removed all effects from held stack.
+fireworkSyntax=\u00a76Firework parameters:\u00a7c color:<color> [fade:<color>] [shape:<shape>] [effect:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas: \u00a7cred,blue,pink\n\u00a76Shapes:\u00a7c star, ball, large, creeper, burst \u00a76Effects:\u00a7c trail, twinkle.
flyMode=\u00a76Set fly mode\u00a7c {0} \u00a76for {1}\u00a76.
flying=flying
foreverAlone=\u00a74You have nobody to whom you can reply.
freedMemory=Freed {0} MB.
+fullStack=\u00a74You already have a full stack.
gameMode=\u00a76Set game mode\u00a7c {0} \u00a76for {1}\u00a76.
+gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities.
gcfree=\u00a76Free memory:\u00a7c {0} MB.
gcmax=\u00a76Maximum memory:\u00a7c {0} MB.
gctotal=\u00a76Allocated memory:\u00a7c {0} MB.
geoIpUrlEmpty=GeoIP download url is empty.
geoIpUrlInvalid=GeoIP download url is invalid.
-geoipJoinFormat=Player {0} comes from {1}.
+geoipJoinFormat=\u00a76Player \u00a7c{0} \u00a76comes from \u00a7c{1}\u00a76.
+giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
godDisabledFor=\u00a74disabled\u00a76 for\u00a7c {0}.
godEnabledFor=\u00a7aenabled\u00a76 for\u00a7c {0}.
godMode=\u00a76God mode\u00a7c {0}\u00a76.
@@ -130,6 +151,9 @@ helpMatching=\u00a76Commands matching "\u00a7c{0}\u00a76":
helpOp=\u00a74[HelpOp]\u00a7r \u00a76{0}:\u00a7r {1}
helpPages=\u00a76Page \u00a7c{0}\u00a76 of \u00a7c{1}\u00a76:
helpPlugin=\u00a74{0}\u00a7r: Plugin Help: /help {1}
+holdBook=\u00a74You are not holding a writable book.
+holdFirework=\u00a74You must be holding a firework to add effects.
+holdPotion=\u00a74You must be holding a potion to apply effects to it
holeInFloor=\u00a74Hole in floor!
homeSet=\u00a76Home set.
homeSetToBed=\u00a76Your home is now set to this bed.
@@ -148,14 +172,20 @@ invRestored=\u00a76Your inventory has been restored.
invSee=\u00a76You see the inventory of\u00a7c {0}\u00a76.
invSeeHelp=\u00a76Use /invsee to restore your inventory.
invalidCharge=\u00a74Invalid charge.
+invalidFireworkFormat=\u00a76The option \u00a74{0} \u00a76is not a valid value for \u00a74{1}\u00a76.
invalidHome=\u00a74Home\u00a7c {0} \u00a74doesn''t exist!
+invalidHomeName=\u00a74Invalid home name!
invalidMob=Invalid mob type.
+invalidNumber=Invalid Number
+invalidPotion=\u00a74Invalid Potion
+invalidPotionEffect=\u00a74You do not have permissions to apply potion effect \u00a7c{0} \u00a74to this potion
invalidServer=Invalid server!
invalidSignLine=\u00a74Line\u00a7c {0} \u00a74on sign is invalid.
+invalidWarpName=\u00a74Invalid warp name!
invalidWorld=\u00a74Invalid world.
inventoryCleared=\u00a76Inventory cleared.
-inventoryClearedOthers=\u00a76Inventory of \u00a7c{0}\u00a76 cleared.
inventoryClearedAll=\u00a76Cleared everyone's inventory.
+inventoryClearedOthers=\u00a76Inventory of \u00a7c{0}\u00a76 cleared.
is=is
itemCannotBeSold=\u00a74That item cannot be sold to the server.
itemMustBeStacked=\u00a74Item must be traded in stacks. A quantity of 2s would be two stacks, etc.
@@ -185,9 +215,13 @@ kitError2=\u00a74That kit does not exist or is improperly defined.
kitError=\u00a74There are no valid kits.
kitErrorHelp=\u00a74Perhaps an item is missing a quantity in the configuration?
kitGive=\u00a76Giving kit\u00a7c {0}\u00a76.
+kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to {1}\u00a7.
kitInvFull=\u00a74Your inventory was full, placing kit on the floor.
+kitOnce=\u00a74You can't use that kit again.
+kitReceive=\u00a76Received kit\u00a7c {0}\u00a76.
kitTimed=\u00a74You can''t use that kit again for another\u00a7c {0}\u00a74.
kits=\u00a76Kits:\u00a7r {0}
+leatherSyntax=\u00a76Leather Color Syntax: color:<red>,<green>,<blue> eg: color:255,0,0.
lightningSmited=\u00a76Thou hast been smitten!
lightningUse=\u00a76Smiting\u00a7c {0}
listAfkTag= \u00a77[AFK]\u00a7r
@@ -203,9 +237,11 @@ mailSent=\u00a76Mail sent!
markMailAsRead=\u00a76To mark your mail as read, type\u00a7c /mail clear.
markedAsAway=\u00a76You are now marked as away.
markedAsNotAway=\u00a76You are no longer marked as away.
+matchingIPAddress=\u00a76The following players previously logged in from that IP address:
maxHomes=\u00a74You cannot set more than\u00a7c {0} \u00a74homes.
mayNotJail=\u00a74You may not jail that person!
me=me
+messageTruncated=\u00a74Message truncated, to see the full output type:\u00a7c /{0} {1}
minute=minute
minutes=minutes
missingItems=\u00a74You do not have {0}x {1}.
@@ -222,7 +258,10 @@ months=months
moreThanZero=\u00a74Quantities must be greater than 0.
moveSpeed=\u00a76Set {0} speed to\u00a7c {1} \u00a76for {2}\u00a76.
msgFormat=\u00a76[{0}\u00a76 -> {1}\u00a76] \u00a7r{2}
+multipleCharges=\u00a74You cannot apply more than one charge to this firework.
+multiplePotionEffects=\u00a74You cannot apply more than one effect to this potion.
muteExempt=\u00a74You may not mute that player.
+muteNotify=\u00a74{0} \u00a76has muted \u00a74{1}\u00a76.
mutedPlayer=\u00a76Player {0} \u00a76muted.
mutedPlayerFor=\u00a76Player {0} \u00a76muted for {1}.
mutedUserSpeaks={0} tried to speak, but is muted.
@@ -238,6 +277,7 @@ nickSet=\u00a76Your nickname is now \u00a7c{0}
noAccessCommand=\u00a74You do not have access to that command.
noAccessPermission=\u00a74You do not have permission to access that {0}.
noBreakBedrock=\u00a74You are not allowed to destroy bedrock.
+noChapterMeta=\u00a74You do not have permission to create dynamic books.
noDestroyPermission=\u00a74You do not have permission to destroy that {0}.
noDurability=\u00a74This item does not have a durability.
noGodWorldWarning=\u00a74Warning! God mode in this world disabled.
@@ -247,6 +287,9 @@ noHomeSetPlayer=\u00a76Player has not set a home.
noKitPermission=\u00a74You need the \u00a7c{0}\u00a74 permission to use that kit.
noKits=\u00a76There are no kits available yet.
noMail=\u00a76You do not have any mail.
+noMatchingPlayers=\u00a76No matching players found.
+noMetaFirework=\u00a74You do not have permission to apply firework meta.
+noMetaPerm=\u00a74You do not have permission to apply \u00a7c{0}\u00a74 meta to this item.
noMotd=\u00a76There is no message of the day.
noNewMail=\u00a76You have no new mail.
noPendingRequest=\u00a74You do not have a pending request.
@@ -269,9 +312,11 @@ now=now
nuke=\u00a75May death rain upon them.
numberRequired=A number goes there, silly.
onlyDayNight=/time only supports day/night.
+onlyPlayerSkulls=\u00a74You can only set the owner of player skulls (397:3).
onlyPlayers=\u00a74Only in-game players can use {0}.
onlySunStorm=\u00a74/weather only supports sun/storm.
orderBalances=\u00a76Ordering balances of\u00a7c {0} \u00a76users, please wait...
+oversizedTempban=\u00a74You may not ban a player for this period of time.
pTimeCurrent=\u00a7c{0}\u00a76''s time is\u00a7c {1}\u00a76.
pTimeCurrentFixed=\u00a7c{0}\u00a76''s time is fixed to\u00a7c {1}\u00a76.
pTimeNormal=\u00a7c{0}\u00a76''s time is normal and matches the server.
@@ -294,7 +339,13 @@ playerNeverOnServer=\u00a74Player\u00a7c {0} \u00a74was never on this server.
playerNotFound=\u00a74Player not found.
playerUnmuted=\u00a76You have been unmuted.
pong=Pong!
+posPitch=\u00a76Pitch: {0} (Head angle)
+posX=\u00a76X: {0} (+East <-> -West)
+posY=\u00a76Y: {0} (+Up <-> -Down)
+posYaw=\u00a76Yaw: {0} (Rotation)
+posZ=\u00a76Z: {0} (+South <-> -North)
possibleWorlds=\u00a76Possible worlds are the numbers 0 through {0}.
+potions=\u00a76Potions:\u00a7r {0}
powerToolAir=\u00a74Command can't be attached to air.
powerToolAlreadySet=\u00a74Command \u00a7c{0}\u00a74 is already assigned to {1}.
powerToolAttach=\u00a7c{0}\u00a76 command assigned to {1}.
@@ -309,6 +360,16 @@ powerToolsEnabled=\u00a76All of your power tools have been enabled.
protectionOwner=\u00a76[EssentialsProtect] Protection owner:\u00a7r {0}.
questionFormat=\u00a72[Question]\u00a7r {0}
readNextPage=\u00a76Type\u00a7c /{0} {1} \u00a76to read the next page.
+recipe=\u00a76Recipe for \u00a7c{0}\u00a76 ({1} of {2})
+recipeBadIndex=There is no recipe by that number.
+recipeFurnace=\u00a76Smelt \u00a7c{0}
+recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
+recipeGridItem=\ \u00a7{0}X \u00a76is \u00a7c{1}
+recipeMore=\u00a76Type /{0} \u00a7c{1}\u00a76 <number> to see other recipes for \u00a7c{2}\u00a76.
+recipeNone=No recipes exist for {0}
+recipeNothing=nothing
+recipeShapeless=\u00a76Combine \u00a7c{0}
+recipeWhere=\u00a76Where: {0}
reloadAllPlugins=\u00a76Reloaded all plugins.
removed=\u00a76Removed\u00a7c {0} \u00a76entities.
repair=\u00a76You have successfully repaired your: \u00a7c{0}.
@@ -323,7 +384,10 @@ requestDeniedFrom=\u00a7c{0} \u00a76denied your teleport request.
requestSent=\u00a76Request sent to\u00a7c {0}\u00a76.
requestTimedOut=\u00a74Teleport request has timed out.
requiredBukkit= \u00a76* ! * You need atleast build {0} of CraftBukkit, download it from http://dl.bukkit.org/downloads/craftbukkit/
+resetBal=\u00a76Balance has been reset to \u00a7a{0} \u00a76for all online players.
+resetBalAll=\u00a76Balance has been reset to \u00a7a{0} \u00a76for all players.
returnPlayerToJailError=\u00a74Error occurred when trying to return player\u00a7c {0} \u00a74to jail: {1}!
+runningPlayerMatch=\u00a76Running search for players matching ''\u00a7c{0}\u00a76'' (this could take a little while)
second=second
seconds=seconds
seenOffline=\u00a76Player\u00a7c {0} \u00a76is \u00a74offline\u00a76 since {1}.
@@ -360,7 +424,9 @@ teleportRequestTimeoutInfo=\u00a76This request will timeout after\u00a7c {0} sec
teleportTop=\u00a76Teleporting to top.
teleportationCommencing=\u00a76Teleportation commencing...
teleportationDisabled=\u00a76Teleportation disabled.
+teleportationDisabledFor=\u00a76Teleportation disabled for {0}.
teleportationEnabled=\u00a76Teleportation enabled.
+teleportationEnabledFor=\u00a76Teleportation enabled for {0}.
teleporting=\u00a76Teleporting...
teleportingPortal=\u00a76Teleporting via portal.
tempBanned=Temporarily banned from server for {0}.
@@ -388,8 +454,6 @@ typeTpaccept=\u00a76To teleport, type \u00a7c/tpaccept\u00a76.
typeTpdeny=\u00a76To deny this request, type \u00a7c/tpdeny\u00a76.
typeWorldName=\u00a76You can also type the name of a specific world.
unableToSpawnMob=\u00a74Unable to spawn mob.
-unbannedIP=\u00a76Unbanned IP address.
-unbannedPlayer=\u00a76Unbanned player.
unignorePlayer=\u00a76You are not ignoring player\u00a7c {0} \u00a76anymore.
unknownItemId=\u00a74Unknown item id:\u00a7r {0}\u00a74.
unknownItemInList=\u00a74Unknown item {0} in {1} list.
@@ -400,20 +464,24 @@ unmutedPlayer=\u00a76Player\u00a7c {0} \u00a76unmuted.
unvanished=\u00a76You are once again visible.
unvanishedReload=\u00a74A reload has forced you to become visible.
upgradingFilesError=Error while upgrading the files.
+uptime=\u00a76Uptime:\u00a7c {0}
+userAFK=\u00a75{0} \u00a75is currently AFK and may not respond.
userDoesNotExist=\u00a74The user\u00a7c {0} \u00a74does not exist.
userIsAway=\u00a75{0} \u00a75is now AFK.
userIsNotAway=\u00a75{0} \u00a75is no longer AFK.
userJailed=\u00a76You have been jailed!
+userUnknown=\u00a74Warning: The user ''\u00a7c{0}\u00a74'' has never joined this server.
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:
-vanished=\u00a76You have now been vanished.
+vanished=\u00a76You are now completely invisible to normal users, and hidden from in-game commands.
versionMismatch=\u00a74Version mismatch! Please update {0} to the same version.
versionMismatchAll=\u00a74Version mismatch! Please update all Essentials jars to the same version.
voiceSilenced=\u00a76Your voice has been silenced!
walking=walking
warpDeleteError=\u00a74Problem deleting the warp file.
+warpList={0}
warpListPermission=\u00a74You do not have Permission to list warps.
warpNotExist=\u00a74That warp does not exist.
warpOverwrite=\u00a74You cannot overwrite that warp.
@@ -449,58 +517,6 @@ year=year
years=years
youAreHealed=\u00a76You have been healed.
youHaveNewMail=\u00a76You have\u00a7c {0} \u00a76messages! Type \u00a7c/mail read\u00a76 to view your mail.
-posX=\u00a76X: {0} (+East <-> -West)
-posY=\u00a76Y: {0} (+Up <-> -Down)
-posZ=\u00a76Z: {0} (+South <-> -North)
-posYaw=\u00a76Yaw: {0} (Rotation)
-posPitch=\u00a76Pitch: {0} (Head angle)
-distance=\u00a76Distance: {0}
-giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
-warpList={0}
-uptime=\u00a76Uptime:\u00a7c {0}
-antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
-antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
-gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities.
-invalidHomeName=\u00a74Invalid home name!
-invalidWarpName=\u00a74Invalid warp name!
-userUnknown=\u00a74Warning: The user ''\u00a7c{0}\u00a74'' has never joined this server.
-teleportationEnabledFor=\u00a76Teleportation enabled for {0}.
-teleportationDisabledFor=\u00a76Teleportation disabled for {0}.
-kitOnce=\u00a74You can't use that kit again.
-fullStack=\u00a74You already have a full stack.
-oversizedTempban=\u00a74You may not ban a player for this period of time.
-recipeNone=No recipes exist for {0}
-invalidNumber=Invalid Number
-recipeBadIndex=There is no recipe by that number.
-recipeNothing=nothing
-recipe=\u00a76Recipe for \u00a7c{0}\u00a76 ({1} of {2})
-recipeFurnace=\u00a76Smelt \u00a7c{0}
-recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
-recipeGridItem=\ \u00a7{0}X \u00a76is \u00a7c{1}
-recipeMore=\u00a76Type /{0} \u00a7c{1}\u00a76 <number> to see other recipes for \u00a7c{2}\u00a76.
-recipeWhere=\u00a76Where: {0}
-recipeShapeless=\u00a76Combine \u00a7c{0}
-editBookContents=\u00a7eYou may now edit the contents of this book.
-bookAuthorSet=\u00a76Author of the book set to {0}.
-bookTitleSet=\u00a76Title of the book set to {0}.
-denyChangeAuthor=\u00a74You cannot change the author of this book.
-denyChangeTitle=\u00a74You cannot change the title of this book.
-denyBookEdit=\u00a74You cannot unlock this book.
-bookLocked=\u00a76This book is now locked.
-holdBook=\u00a74You are not holding a writable book.
-fireworkColor=\u00a7cInvalid firework charge parameters inserted, must set a color first.
-holdFirework=\u00a74You must be holding a firework to add effects.
-invalidFireworkFormat=\u00a76The option \u00a74{0} \u00a76is not a valid value for \u00a74{1}\u00a76.
-muteNotify=\u00a74{0} \u00a76has muted \u00a74{1}\u00a76.
-resetBal=\u00a76Balance has been reset to \u00a7a{0} \u00a76for all online players.
-resetBalAll=\u00a76Balance has been reset to \u00a7a{0} \u00a76for all players.
-messageTruncated=\u00a74Message truncated, to see the full output type:\u00a7c /{0} {1}
-userAFK=\u00a75{0} \u00a75is currently AFK and may not respond.
-fireworkEffectsCleared=\u00a76Removed all effects from held stack.
-fireworkSyntax=\u00a76Firework parameters:\u00a7c color:<color> [fade:<color>] [shape:<shape>] [effect:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas: \u00a7cred,blue,pink\n\u00a76Shapes:\u00a7c star, ball, large, creeper, burst \u00a76Effects:\u00a7c trail, twinkle.
-bed=\u00a7obed\u00a7r
-bedNull=\u00a7mbed\u00a7r
-bedMissing=\u00a74Your bed is either unset, missing or blocked.
-bedSet=\u00a76Bed spawn set!
-kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to {1}\u00a7.
-kitReceive=\u00a76Received kit\u00a7c {0}\u00a76.
+playerUnbanned=\u00a76Player\u00a7c {0} \u00a76unbanned {1}.
+playerUnbanIpAddress=\u00a76Player\u00a7c {0} \u00a76unbanned IP: {1}.
+playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address {1}\u00a76.
diff --git a/Essentials/src/messages_cs.properties b/Essentials/src/messages_cs.properties
index 9312984c5..482d76444 100644
--- a/Essentials/src/messages_cs.properties
+++ b/Essentials/src/messages_cs.properties
@@ -14,6 +14,8 @@ alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} v: {3}
alertPlaced=polozeno:
alertUsed=pouzito:
antiBuildBreak=\u00a74You are not permitted to break {0} blocks here.
+antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
+antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
antiBuildInteract=\u00a74You are not permitted to interact with {0}.
antiBuildPlace=\u00a74You are not permitted to place {0} here.
antiBuildUse=\u00a74You are not permitted to use {0}.
@@ -27,10 +29,16 @@ balance=\u00a77Ucet: {0}
balanceTop=\u00a77Nejbohatsi hraci ({0})
banExempt=\u00a7cNemuzes zabanovat tohoto hrace.
banFormat=Banned: {0}
-banIpAddress=\u00a77IP Adresa byla zabanovana
+bed=\u00a7obed\u00a7r
+bedMissing=\u00a74Your bed is either unset, missing or blocked.
+bedNull=\u00a7mbed\u00a7r
+bedSet=\u00a76Bed spawn set!
bigTreeFailure=\u00a7cProblem pri vytvareni velkeho stromu. Zkuste znovu na trave nebo hline.
bigTreeSuccess= \u00a77Velky strom vytvoren.
blockList=Essentials prenechal nasledujici prikazy jinemu pluginu:
+bookAuthorSet=\u00a76Author of the book set to {0}
+bookLocked=\u00a7cThis book is now locked
+bookTitleSet=\u00a76Title of the book set to {0}
broadcast=[\u00a7cSdeleni\u00a7f]\u00a7a {0}
buildAlert=\u00a7cNemas dovoleno stavet.
bukkitFormatChanged=Format kontroly verze Bukkitu zmenen. Verze nebyla zkontrolovana.
@@ -42,6 +50,8 @@ cantSpawnItem=\u00a7cNejsi dovoleny spawnout item: {0}
chatTypeAdmin=[A]
chatTypeLocal=[L]
chatTypeSpy=[Spy]
+cleaned=Userfiles Cleaned.
+cleaning=Cleaning userfiles.
commandFailed=Prikaz {0} selhal.
commandHelpFailedForPlugin=Chyba pri ziskavani pomoci: {0}
commandNotLoaded=\u00a7cPrikaz {0} je nespravne nacteny.
@@ -66,6 +76,9 @@ deleteHome=\u00a77Domov {0} byl uspesne odstranen.
deleteJail=\u00a77Jail {0} byl uspesne odstranen.
deleteWarp=\u00a77Warp {0} byl uspesne odstranen.
deniedAccessCommand=Hraci {0} byl zablokovan prikaz.
+denyBookEdit=\u00a74You cannot unlock this book
+denyChangeAuthor=\u00a74You cannot change the author of this book
+denyChangeTitle=\u00a74You cannot change the title of this book
dependancyDownloaded=[Essentials] Zavislost {0} uspesne stazena.
dependancyException=[Essentials] Nastala chyba pri pokusu o stazeni zavilosti.
dependancyNotFound=[Essentials] Pozadovana zavilost nenalezena, stahuji nyni.
@@ -76,10 +89,12 @@ destinationNotSet=Destinace neni nastavena.
disableUnlimited=\u00a77Zablokovano neomezene pokladani {0} hraci {1}.
disabled=zablokovano
disabledToSpawnMob=Spawnuti tohoto moba je zakazno v configuracnim souboru.
+distance=\u00a76Distance: {0}
dontMoveMessage=\u00a77Teleport bude zahajen za {0}. Nehybej se.
downloadingGeoIp=Stahuji GeoIP databazi ... muze to chvilku trvat (staty: 0.6 MB, mesta: 20MB)
duplicatedUserdata=Duplikovane data hrace: {0} and {1}
durability=\u00a77This tool has \u00a7c{0}\u00a77 uses left
+editBookContents=\u00a7eYou may now edit the contents of this book
enableUnlimited=\u00a77Davam neomezene mnozstvi {0} hraci {1}.
enabled=povoleno
enchantmentApplied = \u00a77Enchant {0} byl aplikovan na tvuj nastroj v ruce.
@@ -103,17 +118,23 @@ false=\u00a74false\u00a7f
feed=\u00a77Nasytil jsi se.
feedOther=\u00a77Nasytil jsi hrace {0}.
fileRenameError=Prejmenovani souboru {0} selhalo.
+fireworkColor=\u00a74You must apply a color to the firework to add an effect
+fireworkEffectsCleared=\u00a76Removed all effects from held stack.
+fireworkSyntax=\u00a76Firework parameters:\u00a7c color:<color> [fade:<color>] [shape:<shape>] [effect:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas: \u00a7cred,blue,pink\n\u00a76Shapes:\u00a7c star, ball, large, creeper, burst \u00a76Effects:\u00a7c trail, twinkle
flyMode=\u00a77Povolil jsi letani hraci {0} na {1}.
flying=flying
foreverAlone=\u00a7cNemas komu odepsat.
freedMemory=Uvolneno {0} MB.
+fullStack=\u00a74You already have a full stack
gameMode=\u00a77Nastavil jsi herni mod z {0} na {1}.
+gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
gcfree=Volna pamet: {0} MB
gcmax=Dostupna pamet: {0} MB
gctotal=Vyuzita pamet: {0} MB
geoIpUrlEmpty=Odkaz na stazeni GeoIP je prazdny.
geoIpUrlInvalid=Odkaz na stazeni GeoIP je chybny.
-geoipJoinFormat=Hrac {0} prichazi z {1}
+geoipJoinFormat=\u00a76Hrac \u00a7c{0} \u00a76prichazi z \u00a7c{1}\u00a76.
+giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
godDisabledFor=zakazan pro {0}
godEnabledFor=povolen pro {0}
godMode=\u00a77God mode {0}.
@@ -133,6 +154,9 @@ helpMatching=\u00a77Prikazy odpovidajici "{0}":
helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
helpPages=Strana \u00a7c{0}\u00a7f z \u00a7c{1}\u00a7f:
helpPlugin=\u00a74{0}\u00a7f: Napoveda pluginu: /help {1}
+holdBook=\u00a74You are not holding a writable book
+holdFirework=\u00a74You must be holding a firework to add effects
+holdPotion=\u00a74You must be holding a potion to apply effects to it
holeInFloor=Dira v podlaze
homeSet=\u00a77Domov nastaven.
homeSetToBed=\u00a77Tvuj domov je nastaven na tuto postel.
@@ -151,14 +175,20 @@ invRestored=Tvuj inventar byl obnoven.
invSee=Nyni mas inventar hrace {0}.
invSeeHelp=Pouzij znovu /invsee aby jsi mel zpatky svuj inventar.
invalidCharge=\u00a7cNeplatny poplatek.
+invalidFireworkFormat=\u00a76The option \u00a74{0} \u00a76is not a valid value for \u00a74{1}
invalidHome=Domov {0} neexistuje.
+invalidHomeName=\u00a74Invalid home name
invalidMob=Nespravny typ moba.
+invalidNumber=Invalid Number
+invalidPotion=\u00a74Invalid Potion
+invalidPotionEffect=\u00a74You do not have permissions to apply potion effect \u00a7c{0} \u00a74to this potion
invalidServer=Nespravny server!
invalidSignLine=Radek {0} je chybne vyplnen.
+invalidWarpName=\u00a74Invalid warp name
invalidWorld=\u00a7cNespravny svet!
inventoryCleared=\u00a77Inventar smazan.
-inventoryClearedOthers=\u00a77Inventar hrace \u00a7c{0}\u00a77 vymazan.
inventoryClearedAll=\u00a76Cleared everyone's inventory.
+inventoryClearedOthers=\u00a77Inventar hrace \u00a7c{0}\u00a77 vymazan.
is=je
itemCannotBeSold=Tento item nelze prodat serveru.
itemMustBeStacked=Itemy musi byt vymeneny ve stacku.
@@ -188,9 +218,13 @@ kitError2=\u00a7cTento kit neexistuje, nebo je chybne definovan.
kitError=\u00a7cNejsou zadne validni kity.
kitErrorHelp=\u00a7cPravdepodobne item nema vyplnene mnozstvi v configu?
kitGive=\u00a77Davam kit {0}.
+kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to {1}\u00a7.
kitInvFull=\u00a7cMel jsi plny inventar, obsah kitu je na zemi.
+kitOnce=\u00a74You can't use that kit again.
+kitReceive=\u00a76Received kit\u00a7c {0}\u00a76.
kitTimed=\u00a7cNemuzes pouzit tento kit po dalsich {0}.
kits=\u00a77Kity: {0}
+leatherSyntax=\u00a76Leather Color Syntax: color:<red>,<green>,<blue> eg: color:255,0,0.
lightningSmited=\u00a77Byl jsi zasazen bleskem.
lightningUse=\u00a77Zasadil jsi bleskem hrace {0}
listAfkTag = \u00a77[AFK]\u00a7f
@@ -206,9 +240,11 @@ mailSent=\u00a77Mail odeslan!
markMailAsRead=\u00a7cPokud chces mail oznacit jako precteny, napis /mail clear
markedAsAway=\u00a77Jsi oznacen jako "Pryc".
markedAsNotAway=\u00a77Jiz nejsi oznacen jako "Pryc".
+matchingIPAddress=\u00a76The following players previously logged in from that IP address:
maxHomes=Nemuzes si nastavit vice nez {0} domovu.
mayNotJail=\u00a7cNesmis uveznit tuto postavu
me=ja
+messageTruncated=\u00a74Message truncated, to see the full output type:\u00a7c /{0} {1}
minute=minuta
minutes=minuty
missingItems=Nemas {0}x {1}.
@@ -225,7 +261,10 @@ months=mesice
moreThanZero=Mnozstvi musi byt vetsi nez 0.
moveSpeed=\u00a77Set {0} speed to {1} for {2}.
msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
+multipleCharges=\u00a74You cannot apply more than one charge to this firework.
+multiplePotionEffects=\u00a74You cannot apply more than one effect to this potion.
muteExempt=\u00a7cTohoto hrace nemuzes umlcet.
+muteNotify=\u00a74{0} \u00a76has muted \u00a74{1}
mutedPlayer=Hrac {0} byl umlcen.
mutedPlayerFor=Hrac {0} umlcen za {1}.
mutedUserSpeaks={0} se pokusil promluvit, ale je umlcen.
@@ -241,6 +280,7 @@ nickSet=\u00a77Nyni mas nickname: \u00a7c{0}
noAccessCommand=\u00a7cNemas povoleni na tento prikaz.
noAccessPermission=\u00a7cNemas povoleni k tomuto {0}.
noBreakBedrock=Nemas opravneni nicit bedrock.
+noChapterMeta=\u00a74You do not have permission to create dynamic books.
noDestroyPermission=\u00a7cNemas povoleni nicit ten {0}.
noDurability=\u00a7cThis item does not have a durability.
noGodWorldWarning=\u00a7cVarovani! God-mode je v tomto svete zakazan.
@@ -250,6 +290,9 @@ noHomeSetPlayer=Hrac nema nastaveny zadny domov.
noKitPermission=\u00a7cPotrebujes \u00a7c{0}\u00a7c permission, aby jsi mohl pouzit tento kit.
noKits=\u00a77Nejsou zadne dostupne kity.
noMail=Nemas zadny mail.
+noMatchingPlayers=\u00a76No matching players found.
+noMetaFirework=\u00a74You do not have permission to apply firework meta.
+noMetaPerm=\u00a74You do not have permission to apply \u00a7c{0}\u00a74 meta to this item.
noMotd=\u00a7cNeni zadna zprava dne.
noNewMail=\u00a77Nemas zadny novy mail.
noPendingRequest=Nemas zadne neuzavrene zadosti.
@@ -272,9 +315,11 @@ now=nyni
nuke=Prsi na tebe smrt :)
numberRequired=Hlupaku, musis vyplnit cislo.
onlyDayNight=/time podporuje pouze day/night.
+onlyPlayerSkulls=\u00a74You can only set the owner of player skulls (397:3).
onlyPlayers=Pouze hraci ve hre mohou pouzit: {0}.
onlySunStorm=/weather podporuje pouze sun/storm.
orderBalances=Usporadavam bohatstvi {0} hracu, prosim vydrz ...
+oversizedTempban=\u00a74You may not ban a player for this period of time.
pTimeCurrent=\u00a7eCas hrace u00a7f je {1}. //???
pTimeCurrentFixed=\u00a7eCas hrace {0} u00a7f je nastaven na {1}.
pTimeNormal=\u00a7eCas hrace {0}\u00a7f je normalni a souhlasi s casem serveru.
@@ -297,7 +342,13 @@ playerNeverOnServer=\u00a7cHrac {0} nebyl nikdy na serveru.
playerNotFound=\u00a7cHrac nenalezen.
playerUnmuted=\u00a77Byl jsi odmlcen.
pong=Pong!
+posPitch=\u00a76Pitch: {0} (Head angle)
+posX=\u00a76X: {0} (+East <-> -West)
+posY=\u00a76Y: {0} (+Up <-> -Down)
+posYaw=\u00a76Yaw: {0} (Rotation)
+posZ=\u00a76Z: {0} (+South <-> -North)
possibleWorlds=\u00a77Mozne svety jsou cisla 0 az {0}.
+potions=\u00a76Potions:\u00a7r {0}
powerToolAir=Prikaz nemuze byt spojen se vzduchem.
powerToolAlreadySet=Prikaz \u00a7c{0}\u00a7f je jiz spojen s {1}.
powerToolAttach=\u00a7c{0}\u00a7f prikaz pripsan k {1}.
@@ -312,6 +363,16 @@ powerToolsEnabled=Vsechny tve mocne nastroje byli povoleny.
protectionOwner=\u00a76[EssentialsProtect] Majitel ochrany: {0}
questionFormat=\u00a77[Otazka]\u00a7f {0}
readNextPage=Napis /{0} {1} pro precteni dalsi stranky.
+recipe=\u00a76Recipe for \u00a7c{0}\u00a76 ({1} of {2})
+recipeBadIndex=There is no recipe by that number
+recipeFurnace=\u00a76Smelt \u00a7c{0}
+recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
+recipeGridItem=\ \u00a7{0}X \u00a76is \u00a7c{1}
+recipeMore=\u00a76Type /{0} \u00a7c{1}\u00a76 <number> to see other recipes for \u00a7c{2}
+recipeNone=No recipes exist for {0}
+recipeNothing=nothing
+recipeShapeless=\u00a76Combine \u00a7c{0}
+recipeWhere=\u00a76Where: {0}
reloadAllPlugins=\u00a77Znovu nacteny vsechny pluginy.
removed=\u00a77Odstraneno {0} entitit.
repair=Uspesne jsi opravil svuj nastroj: \u00a7e{0}.
@@ -326,7 +387,10 @@ requestDeniedFrom=\u00a77{0} odmitl tvou zadost o teleport.
requestSent=\u00a77Zadost odeslana hraci {0}\u00a77.
requestTimedOut=\u00a7cZadost o teleportaci vyprsela.
requiredBukkit= * ! * Potrebujete minimalne verzi {0} Bukkitu, stahnete si ji z http://dl.bukkit.org/downloads/craftbukkit/
+resetBal=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all online players
+resetBalAll=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all players
returnPlayerToJailError=Nastala chyba pri pokusu navraceni hrace {0} do vezeni: {1}
+runningPlayerMatch=\u00a76Running search for players matching ''\u00a7c{0}\u00a76'' (this could take a little while)
second=sekunda
seconds=sekundy
seenOffline=Hrac {0} je offline od {1}
@@ -363,7 +427,9 @@ teleportRequestTimeoutInfo=\u00a77Tato zadost vyprsi za {0} sekund.
teleportTop=\u00a77Teleportuji na vrch.
teleportationCommencing=\u00a77Teleportace zahajena...
teleportationDisabled=\u00a77Teleportace zakazana.
+teleportationDisabledFor=\u00a76Teleportation disabled for {0}
teleportationEnabled=\u00a77Teleportace povolena.
+teleportationEnabledFor=\u00a76Teleportation enabled for {0}
teleporting=\u00a77Teleportuji...
teleportingPortal=\u00a77Teleportuji pres portal.
tempBanned=Docasne zabanovany na dobu {0}
@@ -391,8 +457,6 @@ typeTpaccept=\u00a77Pro prijmuti zadosti napis \u00a7c/tpaccept\u00a77.
typeTpdeny=\u00a77Pokud chces odmitnout zadost napis \u00a7c/tpdeny\u00a77.
typeWorldName=\u00a77Muzes take napsat specificky nazev sveta.
unableToSpawnMob=Nemozne spawnout moba.
-unbannedIP=Unbanovana IP adresa.
-unbannedPlayer=Hrac odbanovan.
unignorePlayer=Prestal jsi ignorovat hrace {0}.
unknownItemId=Nezname ID itemu: {0}
unknownItemInList=Neznamy item {0} v {1} seznamu.
@@ -403,10 +467,13 @@ unmutedPlayer=Hrac {0} byl umlcen.
unvanished=\u00a7aYou are once again visible.
unvanishedReload=\u00a7cA reload has forced you to become visible.
upgradingFilesError=Chyba pri updatovani souboru.
+uptime=\u00a76Uptime:\u00a7c {0}
+userAFK=\u00a75{0} \u00a75is currently AFK and may not respond
userDoesNotExist=Uzivatel {0} neexistuje.
userIsAway={0} je AFK.
userIsNotAway={0} se vratil.
userJailed=\u00a77Byl jsi uveznen.
+userUnknown=\u00a74Warning: The user ''\u00a7c{0}\u00a74'' has never joined this server.
userUsedPortal={0} pouzil portal pro vychod.
userdataMoveBackError=Chyba pri pokusu o presun userdata/{0}.tmp do userdata/{1}
userdataMoveError=Chyba pri pokusu o presun userdata/{0} do userdata/{1}.tmp
@@ -417,6 +484,7 @@ versionMismatchAll=Chyba verzi! Prosim, updatuj vsechny Essentials .jar na stejn
voiceSilenced=\u00a77Byl jsi ztisen.
walking=walking
warpDeleteError=Vyskytl se problem pri mazani warpu.
+warpList={0}
warpListPermission=\u00a7cNemas opravneni listovat warpami.
warpNotExist=Tento warp neexistuje.
warpOverwrite=\u00a7cNemuzes prepsat tento warp.
@@ -452,58 +520,6 @@ year=rok
years=roky
youAreHealed=\u00a77Byl jsi uzdraven.
youHaveNewMail=\u00a7cMas {0} zprav!\u00a7f Napis \u00a77/mail read\u00a7f aby jsi si precetl sve zpravy.
-posX=\u00a76X: {0} (+East <-> -West)
-posY=\u00a76Y: {0} (+Up <-> -Down)
-posZ=\u00a76Z: {0} (+South <-> -North)
-posYaw=\u00a76Yaw: {0} (Rotation)
-posPitch=\u00a76Pitch: {0} (Head angle)
-distance=\u00a76Distance: {0}
-giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
-warpList={0}
-uptime=\u00a76Uptime:\u00a7c {0}
-antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
-antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
-gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
-invalidHomeName=\u00a74Invalid home name
-invalidWarpName=\u00a74Invalid warp name
-userUnknown=\u00a74Warning: The user ''\u00a7c{0}\u00a74'' has never joined this server.
-teleportationEnabledFor=\u00a76Teleportation enabled for {0}
-teleportationDisabledFor=\u00a76Teleportation disabled for {0}
-kitOnce=\u00a74You can't use that kit again.
-fullStack=\u00a74You already have a full stack
-oversizedTempban=\u00a74You may not ban a player for this period of time.
-recipeNone=No recipes exist for {0}
-invalidNumber=Invalid Number
-recipeBadIndex=There is no recipe by that number
-recipeNothing=nothing
-recipe=\u00a76Recipe for \u00a7c{0}\u00a76 ({1} of {2})
-recipeFurnace=\u00a76Smelt \u00a7c{0}
-recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
-recipeGridItem=\ \u00a7{0}X \u00a76is \u00a7c{1}
-recipeMore=\u00a76Type /{0} \u00a7c{1}\u00a76 <number> to see other recipes for \u00a7c{2}
-recipeWhere=\u00a76Where: {0}
-recipeShapeless=\u00a76Combine \u00a7c{0}
-editBookContents=\u00a7eYou may now edit the contents of this book
-bookAuthorSet=\u00a76Author of the book set to {0}
-bookTitleSet=\u00a76Title of the book set to {0}
-denyChangeAuthor=\u00a74You cannot change the author of this book
-denyChangeTitle=\u00a74You cannot change the title of this book
-denyBookEdit=\u00a74You cannot unlock this book
-bookLocked=\u00a7cThis book is now locked
-holdBook=\u00a74You are not holding a writable book
-fireworkColor=\u00a74You must apply a color to the firework to add an effect
-holdFirework=\u00a74You must be holding a firework to add effects
-invalidFireworkFormat=\u00a76The option \u00a74{0} \u00a76is not a valid value for \u00a74{1}
-muteNotify=\u00a74{0} \u00a76has muted \u00a74{1}
-resetBal=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all online players
-resetBalAll=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all players
-messageTruncated=\u00a74Message truncated, to see the full output type:\u00a7c /{0} {1}
-userAFK=\u00a75{0} \u00a75is currently AFK and may not respond
-fireworkEffectsCleared=\u00a76Removed all effects from held stack.
-fireworkSyntax=\u00a76Firework parameters:\u00a7c color:<color> [fade:<color>] [shape:<shape>] [effect:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas: \u00a7cred,blue,pink\n\u00a76Shapes:\u00a7c star, ball, large, creeper, burst \u00a76Effects:\u00a7c trail, twinkle
-bed=\u00a7obed\u00a7r
-bedNull=\u00a7mbed\u00a7r
-bedMissing=\u00a74Your bed is either unset, missing or blocked.
-bedSet=\u00a76Bed spawn set!
-kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to {1}\u00a7.
-kitReceive=\u00a76Received kit\u00a7c {0}\u00a76.
+playerUnbanned=\u00a76Player\u00a7c {0} \u00a76unbanned {1}.
+playerUnbanIpAddress=\u00a76Player\u00a7c {0} \u00a76unbanned IP: {1}.
+playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address {1}\u00a76.
diff --git a/Essentials/src/messages_da.properties b/Essentials/src/messages_da.properties
index b31781330..f0475f036 100644
--- a/Essentials/src/messages_da.properties
+++ b/Essentials/src/messages_da.properties
@@ -11,6 +11,8 @@ alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} ved: {3}
alertPlaced=placerede:
alertUsed=brugte:
antiBuildBreak=\u00a74You are not permitted to break {0} blocks here.
+antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
+antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
antiBuildInteract=\u00a74You are not permitted to interact with {0}.
antiBuildPlace=\u00a74You are not permitted to place {0} here.
antiBuildUse=\u00a74You are not permitted to use {0}.
@@ -24,10 +26,16 @@ balance=\u00a77Saldo: {0}
balanceTop=\u00a77Top saldoer ({0})
banExempt=\u00a7cDu kan ikke banne den p\u00e5g\u00e6ldende spiller.
banFormat=Banned: {0}
-banIpAddress=\u00a77Bannede IP addresse
+bed=\u00a7obed\u00a7r
+bedMissing=\u00a74Your bed is either unset, missing or blocked.
+bedNull=\u00a7mbed\u00a7r
+bedSet=\u00a76Bed spawn set!
bigTreeFailure=\u00a7cFejl i generering af stort tr\u00e6. Pr\u00f8v igen p\u00e5 gr\u00e6s eller jord.
bigTreeSuccess= \u00a77Stort tr\u00e6 bygget.
blockList=Essentials relayed the following commands to another plugin:
+bookAuthorSet=\u00a76Author of the book set to {0}
+bookLocked=\u00a7cThis book is now locked
+bookTitleSet=\u00a76Title of the book set to {0}
broadcast=[\u00a7cMeddelelse\u00a7f]\u00a7a {0}
buildAlert=\u00a7cDu har ikke tilladelse til at bygge
bukkitFormatChanged=Bukkit versionsformat er \u00e6ndret. Versionen er ikke checket.
@@ -39,6 +47,8 @@ cantSpawnItem=\u00a7cDu har ikke tilladelse til at skabe tingen.{0}
chatTypeAdmin=[A]
chatTypeLocal=[L]
chatTypeSpy=[Spy]
+cleaned=Userfiles Cleaned.
+cleaning=Cleaning userfiles.
commandFailed=Kommandoen {0} fejlede:
commandHelpFailedForPlugin=Fejl ved hentning af hj\u00e6lp til: {0}
commandNotLoaded=\u00a7cKommando {0} er ikke indl\u00e6st korrekt.
@@ -63,6 +73,9 @@ deleteHome=\u00a77Home {0} er blevet fjernet.
deleteJail=\u00a77F\u00e6ngsel {0} er fjernet.
deleteWarp=\u00a77Warp {0} er fjernet.
deniedAccessCommand={0} blev n\u00e6gtet adgang til kommandoen.
+denyBookEdit=\u00a74You cannot unlock this book
+denyChangeAuthor=\u00a74You cannot change the author of this book
+denyChangeTitle=\u00a74You cannot change the title of this book
dependancyDownloaded=[Essentials] Dependancy {0} downloaded successfully.
dependancyException=[Essentials] En fejl opstod ved fors\u00c3\u00b8g p\u00c3\u00a5 at downloade en N\u00c3\u0098DVENDIGHED?!
dependancyNotFound=[Essentials] En p\u00c3\u00a5kr\u00c3\u00a6vet N\u00c3\u0098DVENDIGHED!? blev ikke fundet; downloader nu.
@@ -73,10 +86,12 @@ destinationNotSet=Destination ikke sat
disableUnlimited=\u00a77Deaktiverede ubergr\u00e6nset placering af {0} for {1}.
disabled=deaktiveret
disabledToSpawnMob=Skabelse af denne mob er deaktiveret i configfilen.
+distance=\u00a76Distance: {0}
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: 27MB)
duplicatedUserdata=Duplikerede userdata: {0} og {1}
durability=\u00a77This tool has \u00a7c{0}\u00a77 uses left
+editBookContents=\u00a7eYou may now edit the contents of this book
enableUnlimited=\u00a77Giver ubegr\u00e6nset m\u00e6ngde af {0} til {1}.
enabled=aktiveret
enchantmentApplied = \u00a77Enchantment {0} er blevet tilf\u00c3\u00b8jet til tingen i din h\u00c3\u00a5nd.
@@ -100,17 +115,23 @@ false=\u00a74false\u00a7f
feed=\u00a77Your appetite was sated.
feedOther=\u00a77Satisfied {0}.
fileRenameError=Omd\u00c3\u00b8bning af fil {0} fejlede.
+fireworkColor=\u00a74You must apply a color to the firework to add an effect
+fireworkEffectsCleared=\u00a76Removed all effects from held stack.
+fireworkSyntax=\u00a76Firework parameters:\u00a7c color:<color> [fade:<color>] [shape:<shape>] [effect:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas: \u00a7cred,blue,pink\n\u00a76Shapes:\u00a7c star, ball, large, creeper, burst \u00a76Effects:\u00a7c trail, twinkle
flyMode=\u00a77Set fly mode {0} for {1}.
flying=flying
foreverAlone=\u00a7cDu har ingen til hvem du kan svare.
freedMemory=Frigjorde {0} MB.
+fullStack=\u00a74You already have a full stack
gameMode=\u00a77Satte game mode {0} for {1}.
+gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
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=Spilleren {0} kommer fra {1}
+geoipJoinFormat=\u00a76Spilleren \u00a7c{0} \u00a76kommer fra \u00a7c{1}\u00a76.
+giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
godDisabledFor=deaktiveret for {0}
godEnabledFor=aktiveret for {0}
godMode=\u00a77Gud mode {0}.
@@ -130,6 +151,9 @@ helpMatching=\u00a77Commands matching "{0}":
helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
helpPages=Side \u00a7c{0}\u00a7f af \u00a7c{1}\u00a7f:
helpPlugin=\u00a74{0}\u00a7f: Plugin Help: /help {1}
+holdBook=\u00a74You are not holding a writable book
+holdFirework=\u00a74You must be holding a firework to add effects
+holdPotion=\u00a74You must be holding a potion to apply effects to it
holeInFloor=Hul i gulv
homeSet=\u00a77Hjem sat.
homeSetToBed=\u00a77Dit hjem er nu sat til denne seng.
@@ -148,14 +172,20 @@ invRestored=Din inventory er blevet genoprettet.
invSee=Du ser {0}''s inventory.
invSeeHelp=Brug /invsee for at genoprette din inventory.
invalidCharge=\u00a7cUgyldig opladning (korrekt oversat?).
+invalidFireworkFormat=\u00a76The option \u00a74{0} \u00a76is not a valid value for \u00a74{1}
invalidHome=Home {0} doesn't exist
+invalidHomeName=\u00a74Invalid home name
invalidMob=Ugyldig mob type.
+invalidNumber=Invalid Number
+invalidPotion=\u00a74Invalid Potion
+invalidPotionEffect=\u00a74You do not have permissions to apply potion effect \u00a7c{0} \u00a74to this potion
invalidServer=Ugyldig server!
invalidSignLine=Linje {0} p\u00e5 skilt er ugyldig.
+invalidWarpName=\u00a74Invalid warp name
invalidWorld=\u00a7cUgyldig verden.
inventoryCleared=\u00a77Inventory ryddet.
-inventoryClearedOthers=\u00a7c{0}\u00a77''s inventory ryddet.
inventoryClearedAll=\u00a76Cleared everyone's inventory.
+inventoryClearedOthers=\u00a7c{0}\u00a77''s inventory ryddet.
is=er
itemCannotBeSold=Denne ting kan ikke s\u00e6lges til serveren.
itemMustBeStacked=Tingen skal handles i stakke. En m\u00e6ngde af 2s ville v\u00e6re to stakke, osv.
@@ -185,9 +215,13 @@ kitError2=\u00a7cDette kit eksisterer ikke eller er forkert defineret.
kitError=\u00a7cDer er ikke nogen gyldige kits.
kitErrorHelp=\u00a7cM\u00e5ske mangler en ting en m\u00e6ngde i konfigurationen? Eller m\u00c3\u00a5ske er der nisser p\u00c3\u00a5 spil?
kitGive=\u00a77Giver kit til {0} (oversat korrekt?).
+kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to {1}\u00a7.
kitInvFull=\u00a7cDin inventory er fuld, placerer kit p\u00e5 gulvet.
+kitOnce=\u00a74You can't use that kit again.
+kitReceive=\u00a76Received kit\u00a7c {0}\u00a76.
kitTimed=\u00a7cDu kan ikke benytte dette kit igen i {0}.
kits=\u00a77Kits: {0}
+leatherSyntax=\u00a76Leather Color Syntax: color:<red>,<green>,<blue> eg: color:255,0,0.
lightningSmited=\u00a77Du er blevet ramt af Guds vrede (din admin)
lightningUse=\u00a77Kaster lyn efter {0}
listAfkTag = \u00a77[AFK]\u00a7f
@@ -203,9 +237,11 @@ mailSent=\u00a77Flaskepot sendt!
markMailAsRead=\u00a7cFor at markere din flaskepost som l\u00e6st, skriv /mail clear
markedAsAway=\u00a77Du er nu markeret som v\u00c3\u00a6rende ikke tilstede.
markedAsNotAway=\u00a77Du er ikke l\u00e6ngere markeret som v\u00c3\u00a6rende ikke tilstede.
+matchingIPAddress=\u00a76The following players previously logged in from that IP address:
maxHomes=Du kan ikke have mere end {0} hjem.
mayNotJail=\u00a7cDu kan ikke smide denne person i f\u00c3\u00a6ngsel.
me=mig
+messageTruncated=\u00a74Message truncated, to see the full output type:\u00a7c /{0} {1}
minute=minut
minutes=minutter
missingItems=Du har ikke {0}x {1}.
@@ -222,7 +258,10 @@ months=m\u00e5neder
moreThanZero=M\u00e6ngder skal v\u00e6re st\u00f8rre end 0.
moveSpeed=\u00a77Set {0} speed to {1} for {2}.
msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
+multipleCharges=\u00a74You cannot apply more than one charge to this firework.
+multiplePotionEffects=\u00a74You cannot apply more than one effect to this potion.
muteExempt=\u00a7cDu kan ikke mute denne spiller.
+muteNotify=\u00a74{0} \u00a76has muted \u00a74{1}
mutedPlayer=Spiller {0} muted.
mutedPlayerFor=Spiller {0} muted i {1}.
mutedUserSpeaks={0} pr\u00f8vede at snakke, men er muted.
@@ -238,6 +277,7 @@ nickSet=\u00a77Dit nickname er nu \u00a7c{0}
noAccessCommand=\u00a7cDu har ikke adgang til denne kommando.
noAccessPermission=\u00a7cDu har ikke tilladelse til at f\u00e5 adgang til {0}.
noBreakBedrock=You are not allowed to destroy bedrock.
+noChapterMeta=\u00a74You do not have permission to create dynamic books.
noDestroyPermission=\u00a7cDu har ikke tilladelse til at \u00f8del\u00e6gge {0}.
noDurability=\u00a7cThis item does not have a durability.
noGodWorldWarning=\u00a7cAdvarsel! God mode er sl\u00c3\u00a5et fra i denne verden.
@@ -247,6 +287,9 @@ noHomeSetPlayer=Spilleren har ikke sat et hjem.
noKitPermission=\u00a7cDu har brug for \u00a7c{0}\u00a7c permission for at bruge dette kit.
noKits=\u00a77Der er ikke nogen kits tilg\u00e6ngelige endnu
noMail=Du har ikke noget flaskepost.
+noMatchingPlayers=\u00a76No matching players found.
+noMetaFirework=\u00a74You do not have permission to apply firework meta.
+noMetaPerm=\u00a74You do not have permission to apply \u00a7c{0}\u00a74 meta to this item.
noMotd=\u00a7cDer er ingen Message of the day.
noNewMail=\u00a77Du har ingen ny flaskepost.
noPendingRequest=Du har ikke en ventende anmodning.
@@ -269,9 +312,11 @@ now=nu
nuke=May death rain upon them
numberRequired=Et nummer skal v\u00e6re, din tardo.
onlyDayNight=/time underst\u00f8tter kun day/night.
+onlyPlayerSkulls=\u00a74You can only set the owner of player skulls (397:3).
onlyPlayers=Kun in-game spillere kan bruge {0}.
onlySunStorm=/weather underst\u00c3\u00b8tter kun sun/storm.
orderBalances=Tjekker saldoer af {0} spillere, vent venligst...
+oversizedTempban=\u00a74You may not ban a player for this period of time.
pTimeCurrent=\u00a7e{0}''s\u00a7f Tiden er {1}.
pTimeCurrentFixed=\u00a7e{0}''s\u00a7f Tiden er fastsat til {1}.
pTimeNormal=\u00a7e{0}''s\u00a7f Tiden er normal og matcher serveren.
@@ -294,7 +339,13 @@ playerNeverOnServer=\u00a7cSpilleren {0} har aldrig v\u00c3\u00a6ret p\u00e5 den
playerNotFound=\u00a7cSpilleren ikke fundet.
playerUnmuted=\u00a77Du er blevet unmuted.
pong=Pong!
+posPitch=\u00a76Pitch: {0} (Head angle)
+posX=\u00a76X: {0} (+East <-> -West)
+posY=\u00a76Y: {0} (+Up <-> -Down)
+posYaw=\u00a76Yaw: {0} (Rotation)
+posZ=\u00a76Z: {0} (+South <-> -North)
possibleWorlds=\u00a77Mulige verdener er numrene fra 0 til {0}.
+potions=\u00a76Potions:\u00a7r {0}
powerToolAir=Kommando kan ikke blive p\u00c3\u00a5lagt luft.
powerToolAlreadySet=Kommandoen \u00a7c{0}\u00a7f er allerede p\u00c3\u00a5lagt {1}.
powerToolAttach=\u00a7c{0}\u00a7f kommando p\u00c3\u00a5lagt {1}.
@@ -309,6 +360,16 @@ powerToolsEnabled= Alle dine power tools er blevet aktiveret.
protectionOwner=\u00a76[EssentialsProtect] Protection owner: {0}
questionFormat=\u00a77[Sp\u00f8rgsm\u00e5l]\u00a7f {0}
readNextPage=Skriv /{0} {1} for at l\u00c3\u00a6se n\u00c3\u00a6ste side.
+recipe=\u00a76Recipe for \u00a7c{0}\u00a76 ({1} of {2})
+recipeBadIndex=There is no recipe by that number
+recipeFurnace=\u00a76Smelt \u00a7c{0}
+recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
+recipeGridItem=\ \u00a7{0}X \u00a76is \u00a7c{1}
+recipeMore=\u00a76Type /{0} \u00a7c{1}\u00a76 <number> to see other recipes for \u00a7c{2}
+recipeNone=No recipes exist for {0}
+recipeNothing=nothing
+recipeShapeless=\u00a76Combine \u00a7c{0}
+recipeWhere=\u00a76Where: {0}
reloadAllPlugins=\u00a77Reload alle plugins.
removed=\u00a77Removed {0} entities.
repair=Du reparerede \u00a7e{0}. Du s\u00c3\u00a5'' dygtig!
@@ -323,7 +384,10 @@ requestDeniedFrom=\u00a77{0} afviste din anmodning om teleport.
requestSent=\u00a77Anmodning sendt til {0}\u00a77.
requestTimedOut=\u00a7cTeleport request has timed out
requiredBukkit= * ! * You need atleast build {0} of CraftBukkit, download it from http://dl.bukkit.org/downloads/craftbukkit/
+resetBal=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all online players
+resetBalAll=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all players
returnPlayerToJailError=Error occurred when trying to return player {0} to jail: {1}
+runningPlayerMatch=\u00a76Running search for players matching ''\u00a7c{0}\u00a76'' (this could take a little while)
second=sekund
seconds=sekunder
seenOffline=Spilleren {0} har v\u00c3\u00a6ret offline i {1}
@@ -360,7 +424,9 @@ teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds.
teleportTop=\u00a77Teleporterer til toppen.
teleportationCommencing=\u00a77Teleport begynder...
teleportationDisabled=\u00a77Teleport deaktiveret.
+teleportationDisabledFor=\u00a76Teleportation disabled for {0}
teleportationEnabled=\u00a77Teleport aktiveret.
+teleportationEnabledFor=\u00a76Teleportation enabled for {0}
teleporting=\u00a77Teleporterer...
teleportingPortal=\u00a77Teleporterede via portal.
tempBanned=Midlertidigt bannet fra serveren for {0}
@@ -388,8 +454,6 @@ typeTpaccept=\u00a77For at teleportere, skriv \u00a7c/tpaccept\u00a77.
typeTpdeny=\u00a77For at n\u00e6gte denne anmodning om teleport, skriv \u00a7c/tpdeny\u00a77.
typeWorldName=\u00a77Du kan ogs\u00e5 skrive navnet p\u00e5 en specifik verden.
unableToSpawnMob=Kunne ikke spawne mob.
-unbannedIP=Tilgav IP addressen; er ikke l\u00e6ngere bannet.
-unbannedPlayer=Tilgav spilleren; er ikke l\u00e6ngere bannet.
unignorePlayer=Du ignorerer ikke spiller {0} mere.
unknownItemId=Ukendt ting id: {0}
unknownItemInList=Ukendt ting {0} i {1} listen.
@@ -400,10 +464,13 @@ unmutedPlayer=Spilleren {0} unmuted.
unvanished=\u00a7aYou are once again visible.
unvanishedReload=\u00a7cA reload has forced you to become visible.
upgradingFilesError=Fejl under opgradering af filerne.
+uptime=\u00a76Uptime:\u00a7c {0}
+userAFK=\u00a75{0} \u00a75is currently AFK and may not respond
userDoesNotExist=Brugeren {0} eksisterer ikke.
userIsAway={0} er nu AFK. Skub ham i havet eller bur ham inde!
userIsNotAway={0} er ikke l\u00e6ngere AFK.
userJailed=\u00a77Du er blevet f\u00e6ngslet.
+userUnknown=\u00a74Warning: The user ''\u00a7c{0}\u00a74'' has never joined this server.
userUsedPortal={0} brugte en eksisterende udgangsportal.
userdataMoveBackError=Kunne ikke flytte userdata/{0}.tmp til userdata/{1}
userdataMoveError=Kunne ikke flytte userdata/{0} til userdata/{1}.tmp
@@ -414,6 +481,7 @@ versionMismatchAll=Versioner matcher ikke! Opdater venligst alle Essentials jar-
voiceSilenced=\u00a77Din stemme er blevet gjort stille.
walking=walking
warpDeleteError=Ah, shit; kunne sgu ikke fjerne warp-filen. Jeg giver en \u00c3\u00b8l i lufthavnen.
+warpList={0}
warpListPermission=\u00a7cDu har ikke tilladelse til at vise listen over warps.
warpNotExist=Den warp eksisterer ikke.
warpOverwrite=\u00a7cYou cannot overwrite that warp.
@@ -449,58 +517,6 @@ year=\u00e5r
years=\u00e5r
youAreHealed=\u00a77Du er blevet healed. Halleluja!
youHaveNewMail=\u00a7cDu har {0} flaskeposter!\u00a7f Type \u00a77/mail read for at se din flaskepost.
-posX=\u00a76X: {0} (+East <-> -West)
-posY=\u00a76Y: {0} (+Up <-> -Down)
-posZ=\u00a76Z: {0} (+South <-> -North)
-posYaw=\u00a76Yaw: {0} (Rotation)
-posPitch=\u00a76Pitch: {0} (Head angle)
-distance=\u00a76Distance: {0}
-giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
-warpList={0}
-uptime=\u00a76Uptime:\u00a7c {0}
-antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
-antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
-gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
-invalidHomeName=\u00a74Invalid home name
-invalidWarpName=\u00a74Invalid warp name
-userUnknown=\u00a74Warning: The user ''\u00a7c{0}\u00a74'' has never joined this server.
-teleportationEnabledFor=\u00a76Teleportation enabled for {0}
-teleportationDisabledFor=\u00a76Teleportation disabled for {0}
-kitOnce=\u00a74You can't use that kit again.
-fullStack=\u00a74You already have a full stack
-oversizedTempban=\u00a74You may not ban a player for this period of time.
-recipeNone=No recipes exist for {0}
-invalidNumber=Invalid Number
-recipeBadIndex=There is no recipe by that number
-recipeNothing=nothing
-recipe=\u00a76Recipe for \u00a7c{0}\u00a76 ({1} of {2})
-recipeFurnace=\u00a76Smelt \u00a7c{0}
-recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
-recipeGridItem=\ \u00a7{0}X \u00a76is \u00a7c{1}
-recipeMore=\u00a76Type /{0} \u00a7c{1}\u00a76 <number> to see other recipes for \u00a7c{2}
-recipeWhere=\u00a76Where: {0}
-recipeShapeless=\u00a76Combine \u00a7c{0}
-editBookContents=\u00a7eYou may now edit the contents of this book
-bookAuthorSet=\u00a76Author of the book set to {0}
-bookTitleSet=\u00a76Title of the book set to {0}
-denyChangeAuthor=\u00a74You cannot change the author of this book
-denyChangeTitle=\u00a74You cannot change the title of this book
-denyBookEdit=\u00a74You cannot unlock this book
-bookLocked=\u00a7cThis book is now locked
-holdBook=\u00a74You are not holding a writable book
-fireworkColor=\u00a74You must apply a color to the firework to add an effect
-holdFirework=\u00a74You must be holding a firework to add effects
-invalidFireworkFormat=\u00a76The option \u00a74{0} \u00a76is not a valid value for \u00a74{1}
-muteNotify=\u00a74{0} \u00a76has muted \u00a74{1}
-resetBal=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all online players
-resetBalAll=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all players
-messageTruncated=\u00a74Message truncated, to see the full output type:\u00a7c /{0} {1}
-userAFK=\u00a75{0} \u00a75is currently AFK and may not respond
-fireworkEffectsCleared=\u00a76Removed all effects from held stack.
-fireworkSyntax=\u00a76Firework parameters:\u00a7c color:<color> [fade:<color>] [shape:<shape>] [effect:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas: \u00a7cred,blue,pink\n\u00a76Shapes:\u00a7c star, ball, large, creeper, burst \u00a76Effects:\u00a7c trail, twinkle
-bed=\u00a7obed\u00a7r
-bedNull=\u00a7mbed\u00a7r
-bedMissing=\u00a74Your bed is either unset, missing or blocked.
-bedSet=\u00a76Bed spawn set!
-kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to {1}\u00a7.
-kitReceive=\u00a76Received kit\u00a7c {0}\u00a76.
+playerUnbanned=\u00a76Player\u00a7c {0} \u00a76unbanned {1}.
+playerUnbanIpAddress=\u00a76Player\u00a7c {0} \u00a76unbanned IP: {1}.
+playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address {1}\u00a76.
diff --git a/Essentials/src/messages_de.properties b/Essentials/src/messages_de.properties
index dabbef8f7..ba595c671 100644
--- a/Essentials/src/messages_de.properties
+++ b/Essentials/src/messages_de.properties
@@ -11,6 +11,8 @@ alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} bei: {3}
alertPlaced=platziert:
alertUsed=benutzt:
antiBuildBreak=\u00a74You are not permitted to break {0} blocks here.
+antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
+antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
antiBuildInteract=\u00a74You are not permitted to interact with {0}.
antiBuildPlace=\u00a74You are not permitted to place {0} here.
antiBuildUse=\u00a74You are not permitted to use {0}.
@@ -24,10 +26,16 @@ balance=\u00a77Geldb\u00f6rse: {0}
balanceTop=\u00a77Top Guthaben ({0})
banExempt=\u00a7cDu kannst diesen Spieler nicht sperren.
banFormat=Banned: {0}
-banIpAddress=\u00a77IP-Adresse gesperrt.
+bed=\u00a7obed\u00a7r
+bedMissing=\u00a74Your bed is either unset, missing or blocked.
+bedNull=\u00a7mbed\u00a7r
+bedSet=\u00a76Bed spawn set!
bigTreeFailure=\u00a7cFehler beim Pflanzen eines grossen Baums. Versuch es auf Gras oder Dreck.
bigTreeSuccess= \u00a77Grosser Baum gepflanzt.
blockList=Essentials relayed the following commands to another plugin:
+bookAuthorSet=\u00a76Author of the book set to {0}
+bookLocked=\u00a7cThis book is now locked
+bookTitleSet=\u00a76Title of the book set to {0}
broadcast=[\u00a7cRundruf\u00a7f]\u00a7a {0}
buildAlert=\u00a7cDu hast keine Rechte zum Bauen.
bukkitFormatChanged=Bukkit-Versionsformat hat sich ge\u00e4ndert. Version nicht kontrolliert.
@@ -39,6 +47,8 @@ cantSpawnItem=\u00a7cDu darfst {0} nicht erzeugen.
chatTypeAdmin=[A]
chatTypeLocal=[L]
chatTypeSpy=[Spy]
+cleaned=Userfiles Cleaned.
+cleaning=Cleaning userfiles.
commandFailed=Befehl {0} scheiterte:
commandHelpFailedForPlugin=Fehler beim Abrufen der Hilfe f\u00fcr: {0}
commandNotLoaded=\u00a7cBefehl {0} ist nicht richtig geladen.
@@ -63,6 +73,9 @@ 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.
+denyBookEdit=\u00a74You cannot unlock this book
+denyChangeAuthor=\u00a74You cannot change the author of this book
+denyChangeTitle=\u00a74You cannot change the title of this book
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..
@@ -73,10 +86,12 @@ destinationNotSet=Ziel nicht gesetzt
disableUnlimited=\u00a77Deaktiviere unendliches Platzieren von {0} f\u00fcr {1}.
disabled=deaktiviert
disabledToSpawnMob=Spawning this mob was disabled in the config file.
+distance=\u00a76Distance: {0}
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}
durability=\u00a77This tool has \u00a7c{0}\u00a77 uses left
+editBookContents=\u00a7eYou may now edit the contents of this book
enableUnlimited=\u00a77Gebe {1} unendliche Mengen von {0}.
enabled=aktiviert
enchantmentApplied = \u00a77The enchantment {0} has been applied to your item in hand.
@@ -100,17 +115,23 @@ false=\u00a74false\u00a7f
feed=\u00a77Your appetite was sated.
feedOther=\u00a77Satisfied {0}.
fileRenameError=Umbenennen von {0} gescheitert.
+fireworkColor=\u00a74You must apply a color to the firework to add an effect
+fireworkEffectsCleared=\u00a76Removed all effects from held stack.
+fireworkSyntax=\u00a76Firework parameters:\u00a7c color:<color> [fade:<color>] [shape:<shape>] [effect:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas: \u00a7cred,blue,pink\n\u00a76Shapes:\u00a7c star, ball, large, creeper, burst \u00a76Effects:\u00a7c trail, twinkle
flyMode=\u00a77Set fly mode {0} for {1}.
flying=flying
foreverAlone=\u00a7cDu hast niemanden, dem du antworten kannst.
freedMemory={0} MB frei gemacht.
+fullStack=\u00a74You already have a full stack
gameMode=\u00a77Set game mode {0} for {1}.
+gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
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}
+geoipJoinFormat=\u00a76Spieler \u00a7c{0} \u00a76kommt aus \u00a7c{1}\u00a76.
+giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
godDisabledFor=deaktiviert f\u00fcr {0}
godEnabledFor=aktiviert f\u00fcr {0}
godMode=\u00a77Unsterblichkeit {0}.
@@ -130,6 +151,9 @@ helpMatching=\u00a77Commands matching "{0}":
helpOp=\u00a7c[Hilfe]\u00a7f \u00a77{0}:\u00a7f {1}
helpPages=Seite \u00a7c{0}\u00a7f von \u00a7c{1}\u00a7f:
helpPlugin=\u00a74{0}\u00a7f: Plugin Help: /help {1}
+holdBook=\u00a74You are not holding a writable book
+holdFirework=\u00a74You must be holding a firework to add effects
+holdPotion=\u00a74You must be holding a potion to apply effects to it
holeInFloor=Loch im Boden
homeSet=\u00a77Zuhause gesetzt.
homeSetToBed=\u00a77Dein Zuhause ist nun an diesem Bett.
@@ -148,14 +172,20 @@ 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.
+invalidFireworkFormat=\u00a76The option \u00a74{0} \u00a76is not a valid value for \u00a74{1}
invalidHome=Home {0} doesn't exist
+invalidHomeName=\u00a74Invalid home name
invalidMob=Ung\u00fcltiger Monstername.
+invalidNumber=Invalid Number
+invalidPotion=\u00a74Invalid Potion
+invalidPotionEffect=\u00a74You do not have permissions to apply potion effect \u00a7c{0} \u00a74to this potion
invalidServer=Ung\u00fcltiger Server!
invalidSignLine=Die Zeile {0} auf dem Schild ist falsch.
+invalidWarpName=\u00a74Invalid warp name
invalidWorld=\u00a7cUng\u00fcltige Welt.
inventoryCleared=\u00a77Inventar geleert.
-inventoryClearedOthers=\u00a77Inventar von \u00a7c{0}\u00a77 geleert.
inventoryClearedAll=\u00a76Cleared everyone's inventory.
+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.
@@ -185,9 +215,13 @@ kitError2=\u00a7cDiese Ausr\u00fcstung existiert nicht oder ist ung\u00fcltig.
kitError=\u00a7cEs gibt keine g\u00fcltigen Ausr\u00fcstungen.
kitErrorHelp=\u00a7cEventuell fehlt bei einem Gegenstand die Menge?
kitGive=\u00a77Gebe Ausr\u00fcstung {0}.
+kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to {1}\u00a7.
kitInvFull=\u00a7cDein Inventar ist voll, lege Ausr\u00fcstung auf den Boden
+kitOnce=\u00a74You can't use that kit again.
+kitReceive=\u00a76Received kit\u00a7c {0}\u00a76.
kitTimed=\u00a7cDu kannst diese Ausr\u00fcstung nicht innerhalb von {0} anfordern.
kits=\u00a77Ausr\u00fcstungen: {0}
+leatherSyntax=\u00a76Leather Color Syntax: color:<red>,<green>,<blue> eg: color:255,0,0.
lightningSmited=\u00a77Du wurdest gepeinigt.
lightningUse=\u00a77Peinige {0}
listAfkTag = \u00a77[Inaktiv]\u00a7f
@@ -203,9 +237,11 @@ 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.
+matchingIPAddress=\u00a76The following players previously logged in from that IP address:
maxHomes=Du kannst nicht mehr als {0} Zuhause setzen.
mayNotJail=\u00a7cDu kannst diese Person nicht einsperren.
me=mir
+messageTruncated=\u00a74Message truncated, to see the full output type:\u00a7c /{0} {1}
minute=Minute
minutes=Minuten
missingItems=Du ben\u00f6tigst {0}x {1}.
@@ -222,7 +258,10 @@ months=Monate
moreThanZero=Anzahl muss gr\u00f6sser als 0 sein.
moveSpeed=\u00a77Set {0} speed to {1} for {2}.
msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
+multipleCharges=\u00a74You cannot apply more than one charge to this firework.
+multiplePotionEffects=\u00a74You cannot apply more than one effect to this potion.
muteExempt=\u00a7cDu darfst diesen Spieler nicht stumm machen.
+muteNotify=\u00a74{0} \u00a76has muted \u00a74{1}
mutedPlayer=Player {0} ist nun stumm.
mutedPlayerFor=Player {0} ist nun stumm f\u00fcr {1}.
mutedUserSpeaks={0} versuchte zu sprechen, aber ist stumm geschaltet.
@@ -238,6 +277,7 @@ 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.
noBreakBedrock=You are not allowed to destroy bedrock.
+noChapterMeta=\u00a74You do not have permission to create dynamic books.
noDestroyPermission=\u00a7cDu hast keine Rechte, den Block {0} zu zerst\u00f6ren.
noDurability=\u00a7cThis item does not have a durability.
noGodWorldWarning=\u00a7cWarning! God mode in this world disabled.
@@ -247,6 +287,9 @@ 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
+noMatchingPlayers=\u00a76No matching players found.
+noMetaFirework=\u00a74You do not have permission to apply firework meta.
+noMetaPerm=\u00a74You do not have permission to apply \u00a7c{0}\u00a74 meta to this item.
noMotd=\u00a7cEs existiert keine Willkommensnachricht.
noNewMail=\u00a77Du hast keine Nachrichten.
noPendingRequest=Du hast keine Teleportierungsanfragen.
@@ -269,9 +312,11 @@ now=jetzt
nuke=May death rain upon them
numberRequired=Ein Zahl wird ben\u00f6tigt.
onlyDayNight=/time unterst\u00fctzt nur day und night.
+onlyPlayerSkulls=\u00a74You can only set the owner of player skulls (397:3).
onlyPlayers=Nur Spieler k\u00f6nnen {0} benutzen.
onlySunStorm=/weather unterst\u00fctzt nur sun und storm.
orderBalances=Ordering balances of {0} users, please wait ...
+oversizedTempban=\u00a74You may not ban a player for this period of time.
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.
@@ -294,7 +339,13 @@ playerNeverOnServer=\u00a7cSpieler {0} war niemals auf diesem Server.
playerNotFound=\u00a7cSpieler nicht gefunden.
playerUnmuted=\u00a77Du bist nicht mehr stumm.
pong=Pong!
+posPitch=\u00a76Pitch: {0} (Head angle)
+posX=\u00a76X: {0} (+East <-> -West)
+posY=\u00a76Y: {0} (+Up <-> -Down)
+posYaw=\u00a76Yaw: {0} (Rotation)
+posZ=\u00a76Z: {0} (+South <-> -North)
possibleWorlds=\u00a77M\u00f6gliche Welten sind nummeriet von 0 bis {0}.
+potions=\u00a76Potions:\u00a7r {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.
@@ -309,6 +360,16 @@ powerToolsEnabled=Alle deine Powertools wurden aktiviert.
protectionOwner=\u00a76[EssentialsProtect] Besitzer dieses Blocks: {0}
questionFormat=\u00a77[Frage]\u00a7f {0}
readNextPage=Type /{0} {1} to read the next page
+recipe=\u00a76Recipe for \u00a7c{0}\u00a76 ({1} of {2})
+recipeBadIndex=There is no recipe by that number
+recipeFurnace=\u00a76Smelt \u00a7c{0}
+recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
+recipeGridItem=\ \u00a7{0}X \u00a76is \u00a7c{1}
+recipeMore=\u00a76Type /{0} \u00a7c{1}\u00a76 <number> to see other recipes for \u00a7c{2}
+recipeNone=No recipes exist for {0}
+recipeNothing=nothing
+recipeShapeless=\u00a76Combine \u00a7c{0}
+recipeWhere=\u00a76Where: {0}
reloadAllPlugins=\u00a77Alle plugins neu geladen.
removed=\u00a77Removed {0} entities.
repair=Du hast erfolgreich deine {0} repariert.
@@ -323,7 +384,10 @@ requestDeniedFrom=\u00a77{0} hat deine Teleportierungsanfrage abgelehnt.
requestSent=\u00a77Anfrage gesendet an {0}\u00a77.
requestTimedOut=\u00a7cTeleport request has timed out
requiredBukkit= * ! * You need atleast build {0} of CraftBukkit, download it from http://dl.bukkit.org/downloads/craftbukkit/
+resetBal=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all online players
+resetBalAll=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all players
returnPlayerToJailError=Error occurred when trying to return player {0} to jail: {1}
+runningPlayerMatch=\u00a76Running search for players matching ''\u00a7c{0}\u00a76'' (this could take a little while)
second=Sekunde
seconds=Sekunden
seenOffline=Spieler {0} ist offline seit {1}
@@ -360,7 +424,9 @@ teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds.
teleportTop=\u00a77Teleportiere nach oben.
teleportationCommencing=\u00a77Teleportierung gestartet...
teleportationDisabled=\u00a77Teleportierung deaktiviert.
+teleportationDisabledFor=\u00a76Teleportation disabled for {0}
teleportationEnabled=\u00a77Teleportierung aktiviert.
+teleportationEnabledFor=\u00a76Teleportation enabled for {0}
teleporting=\u00a77Teleportiere...
teleportingPortal=\u00a77Teleportiere durch Portal.
tempBanned=Zeitlich gesperrt vom Server f\u00fcr {0}
@@ -388,8 +454,6 @@ 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}.
@@ -400,10 +464,13 @@ unmutedPlayer=Spieler {0} ist nicht mehr stumm.
unvanished=\u00a7aYou are once again visible.
unvanishedReload=\u00a7cA reload has forced you to become visible.
upgradingFilesError=Fehler beim Aktualisieren der Dateien
+uptime=\u00a76Uptime:\u00a7c {0}
+userAFK=\u00a75{0} \u00a75is currently AFK and may not respond
userDoesNotExist=Spieler {0} existiert nicht.
userIsAway={0} ist abwesend.
userIsNotAway={0} ist wieder da.
userJailed=\u00a77Du wurdest eingesperrt.
+userUnknown=\u00a74Warning: The user ''\u00a7c{0}\u00a74'' has never joined this server.
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.
@@ -414,6 +481,7 @@ versionMismatchAll=Versionen ungleich! Bitte aktualisiere alle Essentials jars a
voiceSilenced=\u00a77Du bist stumm
walking=walking
warpDeleteError=Fehler beim L\u00f6schen der Warp-Datei.
+warpList={0}
warpListPermission=\u00a7cDu hast keine Berechtigung, die Warp-Punkte anzuzeigen.
warpNotExist=Warp-Punkt existiert nicht.
warpOverwrite=\u00a7cYou cannot overwrite that warp.
@@ -449,58 +517,6 @@ year=Jahr
years=Jahre
youAreHealed=\u00a77Du wurdest geheilt.
youHaveNewMail=\u00a7cDu hast {0} Nachrichten!\u00a7f Schreibe \u00a77/mail read\u00a7f um deine Nachrichten anzuzeigen.
-posX=\u00a76X: {0} (+East <-> -West)
-posY=\u00a76Y: {0} (+Up <-> -Down)
-posZ=\u00a76Z: {0} (+South <-> -North)
-posYaw=\u00a76Yaw: {0} (Rotation)
-posPitch=\u00a76Pitch: {0} (Head angle)
-distance=\u00a76Distance: {0}
-giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
-warpList={0}
-uptime=\u00a76Uptime:\u00a7c {0}
-antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
-antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
-gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
-invalidHomeName=\u00a74Invalid home name
-invalidWarpName=\u00a74Invalid warp name
-userUnknown=\u00a74Warning: The user ''\u00a7c{0}\u00a74'' has never joined this server.
-teleportationEnabledFor=\u00a76Teleportation enabled for {0}
-teleportationDisabledFor=\u00a76Teleportation disabled for {0}
-kitOnce=\u00a74You can't use that kit again.
-fullStack=\u00a74You already have a full stack
-oversizedTempban=\u00a74You may not ban a player for this period of time.
-recipeNone=No recipes exist for {0}
-invalidNumber=Invalid Number
-recipeBadIndex=There is no recipe by that number
-recipeNothing=nothing
-recipe=\u00a76Recipe for \u00a7c{0}\u00a76 ({1} of {2})
-recipeFurnace=\u00a76Smelt \u00a7c{0}
-recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
-recipeGridItem=\ \u00a7{0}X \u00a76is \u00a7c{1}
-recipeMore=\u00a76Type /{0} \u00a7c{1}\u00a76 <number> to see other recipes for \u00a7c{2}
-recipeWhere=\u00a76Where: {0}
-recipeShapeless=\u00a76Combine \u00a7c{0}
-editBookContents=\u00a7eYou may now edit the contents of this book
-bookAuthorSet=\u00a76Author of the book set to {0}
-bookTitleSet=\u00a76Title of the book set to {0}
-denyChangeAuthor=\u00a74You cannot change the author of this book
-denyChangeTitle=\u00a74You cannot change the title of this book
-denyBookEdit=\u00a74You cannot unlock this book
-bookLocked=\u00a7cThis book is now locked
-holdBook=\u00a74You are not holding a writable book
-fireworkColor=\u00a74You must apply a color to the firework to add an effect
-holdFirework=\u00a74You must be holding a firework to add effects
-invalidFireworkFormat=\u00a76The option \u00a74{0} \u00a76is not a valid value for \u00a74{1}
-muteNotify=\u00a74{0} \u00a76has muted \u00a74{1}
-resetBal=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all online players
-resetBalAll=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all players
-messageTruncated=\u00a74Message truncated, to see the full output type:\u00a7c /{0} {1}
-userAFK=\u00a75{0} \u00a75is currently AFK and may not respond
-fireworkEffectsCleared=\u00a76Removed all effects from held stack.
-fireworkSyntax=\u00a76Firework parameters:\u00a7c color:<color> [fade:<color>] [shape:<shape>] [effect:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas: \u00a7cred,blue,pink\n\u00a76Shapes:\u00a7c star, ball, large, creeper, burst \u00a76Effects:\u00a7c trail, twinkle
-bed=\u00a7obed\u00a7r
-bedNull=\u00a7mbed\u00a7r
-bedMissing=\u00a74Your bed is either unset, missing or blocked.
-bedSet=\u00a76Bed spawn set!
-kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to {1}\u00a7.
-kitReceive=\u00a76Received kit\u00a7c {0}\u00a76.
+playerUnbanned=\u00a76Player\u00a7c {0} \u00a76unbanned {1}.
+playerUnbanIpAddress=\u00a76Player\u00a7c {0} \u00a76unbanned IP: {1}.
+playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address {1}\u00a76.
diff --git a/Essentials/src/messages_en.properties b/Essentials/src/messages_en.properties
index 2b521da1c..7d615d8bf 100644
--- a/Essentials/src/messages_en.properties
+++ b/Essentials/src/messages_en.properties
@@ -11,6 +11,8 @@ alertFormat=\u00a73[{0}] \u00a7r {1} \u00a76 {2} at: {3}
alertPlaced=placed:
alertUsed=used:
antiBuildBreak=\u00a74You are not permitted to break\u00a7c {0} \u00a74blocks here.
+antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
+antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
antiBuildInteract=\u00a74You are not permitted to interact with\u00a7c {0}\u00a74.
antiBuildPlace=\u00a74You are not permitted to place\u00a7c {0} \u00a74here.
antiBuildUse=\u00a74You are not permitted to use\u00a7c {0}\u00a74.
@@ -24,10 +26,16 @@ balance=\u00a7aBalance:\u00a7c {0}
balanceTop=\u00a76Top balances ({0})
banExempt=\u00a74You can not ban that player.
banFormat=\u00a74Banned:\n\u00a7r{0}
-banIpAddress=\u00a76Banned IP address
+bed=\u00a7obed\u00a7r
+bedMissing=\u00a74Your bed is either unset, missing or blocked.
+bedNull=\u00a7mbed\u00a7r
+bedSet=\u00a76Bed spawn set!
bigTreeFailure=\u00a74Big tree generation failure. Try again on grass or dirt.
bigTreeSuccess= \u00a76Big tree spawned.
blockList=\u00a76Essentials relayed the following commands to another plugin:
+bookAuthorSet=\u00a76Author of the book set to {0}.
+bookLocked=\u00a76This book is now locked.
+bookTitleSet=\u00a76Title of the book set to {0}.
broadcast=\u00a7r\u00a76[\u00a74Broadcast\u00a76]\u00a7a {0}
buildAlert=\u00a74You are not permitted to build.
bukkitFormatChanged=Bukkit version format changed. Version not checked.
@@ -39,6 +47,8 @@ cantSpawnItem=\u00a74You are not allowed to spawn the item\u00a7c {0}\u00a74.
chatTypeAdmin=[A]
chatTypeLocal=[L]
chatTypeSpy=[Spy]
+cleaned=Userfiles Cleaned.
+cleaning=Cleaning userfiles.
commandFailed=Command {0} failed:
commandHelpFailedForPlugin=Error getting help for plugin: {0}
commandNotLoaded=\u00a74Command {0} is improperly loaded.
@@ -63,6 +73,9 @@ deleteHome=\u00a76Home\u00a7c {0} \u00a76has been removed.
deleteJail=\u00a76Jail\u00a7c {0} \u00a76has been removed.
deleteWarp=\u00a76Warp\u00a7c {0} \u00a76has been removed.
deniedAccessCommand=\u00a7c{0} \u00a74was denied access to command.
+denyBookEdit=\u00a74You cannot unlock this book.
+denyChangeAuthor=\u00a74You cannot change the author of this book.
+denyChangeTitle=\u00a74You cannot change the title of this book.
dependancyDownloaded=[Essentials] Dependency {0} downloaded successfully.
dependancyException=[Essentials] An error occurred when trying to download a dependency.
dependancyNotFound=[Essentials] A required dependency was not found, downloading now.
@@ -73,10 +86,12 @@ destinationNotSet=Destination not set!
disableUnlimited=\u00a76Disabled unlimited placing of\u00a7c {0} \u00a76for {1}.
disabled=disabled
disabledToSpawnMob=\u00a74Spawning this mob was disabled in the config file.
+distance=\u00a76Distance: {0}
dontMoveMessage=\u00a76Teleportation will commence in\u00a7c {0}\u00a76. Don''t move.
downloadingGeoIp=Downloading GeoIP database... this might take a while (country: 0.6 MB, city: 20MB)
duplicatedUserdata=Duplicated userdata: {0} and {1}.
durability=\u00a76This tool has \u00a7c{0}\u00a76 uses left
+editBookContents=\u00a7eYou may now edit the contents of this book.
enableUnlimited=\u00a76Giving unlimited amount of\u00a7c {0} \u00a76to {1}.
enabled=enabled
enchantmentApplied= \u00a76The enchantment\u00a7c {0} \u00a76has been applied to your item in hand.
@@ -100,17 +115,23 @@ false=\u00a74false\u00a7r
feed=\u00a76Your appetite was sated.
feedOther=\u00a76Satisfied {0}\u00a76.
fileRenameError=Renaming file {0} failed!
+fireworkColor=\u00a74Invalid firework charge parameters inserted, must set a color first.
+fireworkEffectsCleared=\u00a76Removed all effects from held stack.
+fireworkSyntax=\u00a76Firework parameters:\u00a7c color:<color> [fade:<color>] [shape:<shape>] [effect:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas: \u00a7cred,blue,pink\n\u00a76Shapes:\u00a7c star, ball, large, creeper, burst \u00a76Effects:\u00a7c trail, twinkle.
flyMode=\u00a76Set fly mode\u00a7c {0} \u00a76for {1}\u00a76.
flying=flying
foreverAlone=\u00a74You have nobody to whom you can reply.
freedMemory=Freed {0} MB.
+fullStack=\u00a74You already have a full stack.
gameMode=\u00a76Set game mode\u00a7c {0} \u00a76for {1}\u00a76.
+gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities.
gcfree=\u00a76Free memory:\u00a7c {0} MB.
gcmax=\u00a76Maximum memory:\u00a7c {0} MB.
gctotal=\u00a76Allocated memory:\u00a7c {0} MB.
geoIpUrlEmpty=GeoIP download url is empty.
geoIpUrlInvalid=GeoIP download url is invalid.
-geoipJoinFormat=Player {0} comes from {1}.
+geoipJoinFormat=\u00a76Player \u00a7c{0} \u00a76comes from \u00a7c{1}\u00a76.
+giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
godDisabledFor=\u00a74disabled\u00a76 for\u00a7c {0}.
godEnabledFor=\u00a7aenabled\u00a76 for\u00a7c {0}.
godMode=\u00a76God mode\u00a7c {0}\u00a76.
@@ -121,9 +142,8 @@ hatPlaced=\u00a76Enjoy your new hat!
hatRemoved=\u00a76Your hat has been removed.
haveBeenReleased=\u00a76You have been released.
heal=\u00a76You have been healed.
-healDead=\u00a7cYou cannot heal someone who is dead!
-healOther=\u00a76Healed\u00a7c {0}\u00a76.
healDead=\u00a74You cannot heal someone who is dead!
+healOther=\u00a76Healed\u00a7c {0}\u00a76.
helpConsole=To view help from the console, type ?.
helpFrom=\u00a76Commands from {0}:
helpLine=\u00a76/{0}\u00a7r: {1}
@@ -131,6 +151,9 @@ helpMatching=\u00a76Commands matching "\u00a7c{0}\u00a76":
helpOp=\u00a74[HelpOp]\u00a7r \u00a76{0}:\u00a7r {1}
helpPages=\u00a76Page \u00a7c{0}\u00a76 of \u00a7c{1}\u00a76:
helpPlugin=\u00a74{0}\u00a7r: Plugin Help: /help {1}
+holdBook=\u00a74You are not holding a writable book.
+holdFirework=\u00a74You must be holding a firework to add effects.
+holdPotion=\u00a74You must be holding a potion to apply effects to it
holeInFloor=\u00a74Hole in floor!
homeSet=\u00a76Home set.
homeSetToBed=\u00a76Your home is now set to this bed.
@@ -149,14 +172,20 @@ invRestored=\u00a76Your inventory has been restored.
invSee=\u00a76You see the inventory of\u00a7c {0}\u00a76.
invSeeHelp=\u00a76Use /invsee to restore your inventory.
invalidCharge=\u00a74Invalid charge.
+invalidFireworkFormat=\u00a76The option \u00a74{0} \u00a76is not a valid value for \u00a74{1}\u00a76.
invalidHome=\u00a74Home\u00a7c {0} \u00a74doesn''t exist!
+invalidHomeName=\u00a74Invalid home name!
invalidMob=Invalid mob type.
+invalidNumber=Invalid Number
+invalidPotion=\u00a74Invalid Potion
+invalidPotionEffect=\u00a74You do not have permissions to apply potion effect \u00a7c{0} \u00a74to this potion
invalidServer=Invalid server!
invalidSignLine=\u00a74Line\u00a7c {0} \u00a74on sign is invalid.
+invalidWarpName=\u00a74Invalid warp name!
invalidWorld=\u00a74Invalid world.
inventoryCleared=\u00a76Inventory cleared.
-inventoryClearedOthers=\u00a76Inventory of \u00a7c{0}\u00a76 cleared.
inventoryClearedAll=\u00a76Cleared everyone's inventory.
+inventoryClearedOthers=\u00a76Inventory of \u00a7c{0}\u00a76 cleared.
is=is
itemCannotBeSold=\u00a74That item cannot be sold to the server.
itemMustBeStacked=\u00a74Item must be traded in stacks. A quantity of 2s would be two stacks, etc.
@@ -186,9 +215,13 @@ kitError2=\u00a74That kit does not exist or is improperly defined.
kitError=\u00a74There are no valid kits.
kitErrorHelp=\u00a74Perhaps an item is missing a quantity in the configuration?
kitGive=\u00a76Giving kit\u00a7c {0}\u00a76.
+kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to {1}\u00a7.
kitInvFull=\u00a74Your inventory was full, placing kit on the floor.
+kitOnce=\u00a74You can't use that kit again.
+kitReceive=\u00a76Received kit\u00a7c {0}\u00a76.
kitTimed=\u00a74You can''t use that kit again for another\u00a7c {0}\u00a74.
kits=\u00a76Kits:\u00a7r {0}
+leatherSyntax=\u00a76Leather Color Syntax: color:<red>,<green>,<blue> eg: color:255,0,0.
lightningSmited=\u00a76Thou hast been smitten!
lightningUse=\u00a76Smiting\u00a7c {0}
listAfkTag= \u00a77[AFK]\u00a7r
@@ -204,9 +237,11 @@ mailSent=\u00a76Mail sent!
markMailAsRead=\u00a76To mark your mail as read, type\u00a7c /mail clear.
markedAsAway=\u00a76You are now marked as away.
markedAsNotAway=\u00a76You are no longer marked as away.
+matchingIPAddress=\u00a76The following players previously logged in from that IP address:
maxHomes=\u00a74You cannot set more than\u00a7c {0} \u00a74homes.
mayNotJail=\u00a74You may not jail that person!
me=me
+messageTruncated=\u00a74Message truncated, to see the full output type:\u00a7c /{0} {1}
minute=minute
minutes=minutes
missingItems=\u00a74You do not have {0}x {1}.
@@ -223,7 +258,10 @@ months=months
moreThanZero=\u00a74Quantities must be greater than 0.
moveSpeed=\u00a76Set {0} speed to\u00a7c {1} \u00a76for {2}\u00a76.
msgFormat=\u00a76[{0}\u00a76 -> {1}\u00a76] \u00a7r{2}
+multipleCharges=\u00a74You cannot apply more than one charge to this firework.
+multiplePotionEffects=\u00a74You cannot apply more than one effect to this potion.
muteExempt=\u00a74You may not mute that player.
+muteNotify=\u00a74{0} \u00a76has muted \u00a74{1}\u00a76.
mutedPlayer=\u00a76Player {0} \u00a76muted.
mutedPlayerFor=\u00a76Player {0} \u00a76muted for {1}.
mutedUserSpeaks={0} tried to speak, but is muted.
@@ -239,6 +277,7 @@ nickSet=\u00a76Your nickname is now \u00a7c{0}
noAccessCommand=\u00a74You do not have access to that command.
noAccessPermission=\u00a74You do not have permission to access that {0}.
noBreakBedrock=\u00a74You are not allowed to destroy bedrock.
+noChapterMeta=\u00a74You do not have permission to create dynamic books.
noDestroyPermission=\u00a74You do not have permission to destroy that {0}.
noDurability=\u00a74This item does not have a durability.
noGodWorldWarning=\u00a74Warning! God mode in this world disabled.
@@ -248,6 +287,9 @@ noHomeSetPlayer=\u00a76Player has not set a home.
noKitPermission=\u00a74You need the \u00a7c{0}\u00a74 permission to use that kit.
noKits=\u00a76There are no kits available yet.
noMail=\u00a76You do not have any mail.
+noMatchingPlayers=\u00a76No matching players found.
+noMetaFirework=\u00a74You do not have permission to apply firework meta.
+noMetaPerm=\u00a74You do not have permission to apply \u00a7c{0}\u00a74 meta to this item.
noMotd=\u00a76There is no message of the day.
noNewMail=\u00a76You have no new mail.
noPendingRequest=\u00a74You do not have a pending request.
@@ -270,9 +312,11 @@ now=now
nuke=\u00a75May death rain upon them.
numberRequired=A number goes there, silly.
onlyDayNight=/time only supports day/night.
+onlyPlayerSkulls=\u00a74You can only set the owner of player skulls (397:3).
onlyPlayers=\u00a74Only in-game players can use {0}.
onlySunStorm=\u00a74/weather only supports sun/storm.
orderBalances=\u00a76Ordering balances of\u00a7c {0} \u00a76users, please wait...
+oversizedTempban=\u00a74You may not ban a player for this period of time.
pTimeCurrent=\u00a7c{0}\u00a76''s time is\u00a7c {1}\u00a76.
pTimeCurrentFixed=\u00a7c{0}\u00a76''s time is fixed to\u00a7c {1}\u00a76.
pTimeNormal=\u00a7c{0}\u00a76''s time is normal and matches the server.
@@ -295,7 +339,13 @@ playerNeverOnServer=\u00a74Player\u00a7c {0} \u00a74was never on this server.
playerNotFound=\u00a74Player not found.
playerUnmuted=\u00a76You have been unmuted.
pong=Pong!
+posPitch=\u00a76Pitch: {0} (Head angle)
+posX=\u00a76X: {0} (+East <-> -West)
+posY=\u00a76Y: {0} (+Up <-> -Down)
+posYaw=\u00a76Yaw: {0} (Rotation)
+posZ=\u00a76Z: {0} (+South <-> -North)
possibleWorlds=\u00a76Possible worlds are the numbers 0 through {0}.
+potions=\u00a76Potions:\u00a7r {0}
powerToolAir=\u00a74Command can't be attached to air.
powerToolAlreadySet=\u00a74Command \u00a7c{0}\u00a74 is already assigned to {1}.
powerToolAttach=\u00a7c{0}\u00a76 command assigned to {1}.
@@ -310,6 +360,16 @@ powerToolsEnabled=\u00a76All of your power tools have been enabled.
protectionOwner=\u00a76[EssentialsProtect] Protection owner:\u00a7r {0}.
questionFormat=\u00a72[Question]\u00a7r {0}
readNextPage=\u00a76Type\u00a7c /{0} {1} \u00a76to read the next page.
+recipe=\u00a76Recipe for \u00a7c{0}\u00a76 ({1} of {2})
+recipeBadIndex=There is no recipe by that number.
+recipeFurnace=\u00a76Smelt \u00a7c{0}
+recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
+recipeGridItem=\ \u00a7{0}X \u00a76is \u00a7c{1}
+recipeMore=\u00a76Type /{0} \u00a7c{1}\u00a76 <number> to see other recipes for \u00a7c{2}\u00a76.
+recipeNone=No recipes exist for {0}
+recipeNothing=nothing
+recipeShapeless=\u00a76Combine \u00a7c{0}
+recipeWhere=\u00a76Where: {0}
reloadAllPlugins=\u00a76Reloaded all plugins.
removed=\u00a76Removed\u00a7c {0} \u00a76entities.
repair=\u00a76You have successfully repaired your: \u00a7c{0}.
@@ -324,7 +384,10 @@ requestDeniedFrom=\u00a7c{0} \u00a76denied your teleport request.
requestSent=\u00a76Request sent to\u00a7c {0}\u00a76.
requestTimedOut=\u00a74Teleport request has timed out.
requiredBukkit= \u00a76* ! * You need atleast build {0} of CraftBukkit, download it from http://dl.bukkit.org/downloads/craftbukkit/
+resetBal=\u00a76Balance has been reset to \u00a7a{0} \u00a76for all online players.
+resetBalAll=\u00a76Balance has been reset to \u00a7a{0} \u00a76for all players.
returnPlayerToJailError=\u00a74Error occurred when trying to return player\u00a7c {0} \u00a74to jail: {1}!
+runningPlayerMatch=\u00a76Running search for players matching ''\u00a7c{0}\u00a76'' (this could take a little while)
second=second
seconds=seconds
seenOffline=\u00a76Player\u00a7c {0} \u00a76is \u00a74offline\u00a76 since {1}.
@@ -361,7 +424,9 @@ teleportRequestTimeoutInfo=\u00a76This request will timeout after\u00a7c {0} sec
teleportTop=\u00a76Teleporting to top.
teleportationCommencing=\u00a76Teleportation commencing...
teleportationDisabled=\u00a76Teleportation disabled.
+teleportationDisabledFor=\u00a76Teleportation disabled for {0}.
teleportationEnabled=\u00a76Teleportation enabled.
+teleportationEnabledFor=\u00a76Teleportation enabled for {0}.
teleporting=\u00a76Teleporting...
teleportingPortal=\u00a76Teleporting via portal.
tempBanned=Temporarily banned from server for {0}.
@@ -389,8 +454,6 @@ typeTpaccept=\u00a76To teleport, type \u00a7c/tpaccept\u00a76.
typeTpdeny=\u00a76To deny this request, type \u00a7c/tpdeny\u00a76.
typeWorldName=\u00a76You can also type the name of a specific world.
unableToSpawnMob=\u00a74Unable to spawn mob.
-unbannedIP=\u00a76Unbanned IP address.
-unbannedPlayer=\u00a76Unbanned player.
unignorePlayer=\u00a76You are not ignoring player\u00a7c {0} \u00a76anymore.
unknownItemId=\u00a74Unknown item id:\u00a7r {0}\u00a74.
unknownItemInList=\u00a74Unknown item {0} in {1} list.
@@ -401,20 +464,24 @@ unmutedPlayer=\u00a76Player\u00a7c {0} \u00a76unmuted.
unvanished=\u00a76You are once again visible.
unvanishedReload=\u00a74A reload has forced you to become visible.
upgradingFilesError=Error while upgrading the files.
+uptime=\u00a76Uptime:\u00a7c {0}
+userAFK=\u00a75{0} \u00a75is currently AFK and may not respond.
userDoesNotExist=\u00a74The user\u00a7c {0} \u00a74does not exist.
userIsAway=\u00a75{0} \u00a75is now AFK.
userIsNotAway=\u00a75{0} \u00a75is no longer AFK.
userJailed=\u00a76You have been jailed!
+userUnknown=\u00a74Warning: The user ''\u00a7c{0}\u00a74'' has never joined this server.
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:
-vanished=\u00a76You have now been vanished.
+vanished=\u00a76You are now completely invisible to normal users, and hidden from in-game commands.
versionMismatch=\u00a74Version mismatch! Please update {0} to the same version.
versionMismatchAll=\u00a74Version mismatch! Please update all Essentials jars to the same version.
voiceSilenced=\u00a76Your voice has been silenced!
walking=walking
warpDeleteError=\u00a74Problem deleting the warp file.
+warpList={0}
warpListPermission=\u00a74You do not have Permission to list warps.
warpNotExist=\u00a74That warp does not exist.
warpOverwrite=\u00a74You cannot overwrite that warp.
@@ -450,58 +517,6 @@ year=year
years=years
youAreHealed=\u00a76You have been healed.
youHaveNewMail=\u00a76You have\u00a7c {0} \u00a76messages! Type \u00a7c/mail read\u00a76 to view your mail.
-posX=\u00a76X: {0} (+East <-> -West)
-posY=\u00a76Y: {0} (+Up <-> -Down)
-posZ=\u00a76Z: {0} (+South <-> -North)
-posYaw=\u00a76Yaw: {0} (Rotation)
-posPitch=\u00a76Pitch: {0} (Head angle)
-distance=\u00a76Distance: {0}
-giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
-warpList={0}
-uptime=\u00a76Uptime:\u00a7c {0}
-antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
-antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
-gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities.
-invalidHomeName=\u00a74Invalid home name!
-invalidWarpName=\u00a74Invalid warp name!
-userUnknown=\u00a74Warning: The user ''\u00a7c{0}\u00a74'' has never joined this server.
-teleportationEnabledFor=\u00a76Teleportation enabled for {0}.
-teleportationDisabledFor=\u00a76Teleportation disabled for {0}.
-kitOnce=\u00a74You can't use that kit again.
-fullStack=\u00a74You already have a full stack.
-oversizedTempban=\u00a74You may not ban a player for this period of time.
-recipeNone=No recipes exist for {0}
-invalidNumber=Invalid Number
-recipeBadIndex=There is no recipe by that number.
-recipeNothing=nothing
-recipe=\u00a76Recipe for \u00a7c{0}\u00a76 ({1} of {2})
-recipeFurnace=\u00a76Smelt \u00a7c{0}
-recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
-recipeGridItem=\ \u00a7{0}X \u00a76is \u00a7c{1}
-recipeMore=\u00a76Type /{0} \u00a7c{1}\u00a76 <number> to see other recipes for \u00a7c{2}\u00a76.
-recipeWhere=\u00a76Where: {0}
-recipeShapeless=\u00a76Combine \u00a7c{0}
-editBookContents=\u00a7eYou may now edit the contents of this book.
-bookAuthorSet=\u00a76Author of the book set to {0}.
-bookTitleSet=\u00a76Title of the book set to {0}.
-denyChangeAuthor=\u00a74You cannot change the author of this book.
-denyChangeTitle=\u00a74You cannot change the title of this book.
-denyBookEdit=\u00a74You cannot unlock this book.
-bookLocked=\u00a76This book is now locked.
-holdBook=\u00a74You are not holding a writable book.
-fireworkColor=\u00a7cInvalid firework charge parameters inserted, must set a color first.
-holdFirework=\u00a74You must be holding a firework to add effects.
-invalidFireworkFormat=\u00a76The option \u00a74{0} \u00a76is not a valid value for \u00a74{1}\u00a76.
-muteNotify=\u00a74{0} \u00a76has muted \u00a74{1}\u00a76.
-resetBal=\u00a76Balance has been reset to \u00a7a{0} \u00a76for all online players.
-resetBalAll=\u00a76Balance has been reset to \u00a7a{0} \u00a76for all players.
-messageTruncated=\u00a74Message truncated, to see the full output type:\u00a7c /{0} {1}
-userAFK=\u00a75{0} \u00a75is currently AFK and may not respond.
-fireworkEffectsCleared=\u00a76Removed all effects from held stack.
-fireworkSyntax=\u00a76Firework parameters:\u00a7c color:<color> [fade:<color>] [shape:<shape>] [effect:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas: \u00a7cred,blue,pink\n\u00a76Shapes:\u00a7c star, ball, large, creeper, burst \u00a76Effects:\u00a7c trail, twinkle.
-bed=\u00a7obed\u00a7r
-bedNull=\u00a7mbed\u00a7r
-bedMissing=\u00a74Your bed is either unset, missing or blocked.
-bedSet=\u00a76Bed spawn set!
-kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to {1}\u00a7.
-kitReceive=\u00a76Received kit\u00a7c {0}\u00a76.
+playerUnbanned=\u00a76Player\u00a7c {0} \u00a76unbanned {1}.
+playerUnbanIpAddress=\u00a76Player\u00a7c {0} \u00a76unbanned IP: {1}.
+playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address {1}\u00a76.
diff --git a/Essentials/src/messages_es.properties b/Essentials/src/messages_es.properties
index d36db5964..2e417c79c 100644
--- a/Essentials/src/messages_es.properties
+++ b/Essentials/src/messages_es.properties
@@ -11,6 +11,8 @@ alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} en: {3}
alertPlaced=Situado:
alertUsed=Usado:
antiBuildBreak=\u00a74Tu no tines permitido romper {0} bloques aca.
+antiBuildCraft=\u00a74No se le permite crear\u00a7c {0}\u00a74.
+antiBuildDrop=\u00a74No se le permite botar \u00a7c {0}\u00a74.
antiBuildInteract=\u00a74Tu no tienes permitido interactuar con {0}.
antiBuildPlace=\u00a74Tu no tienes permitido poner {0} aca.
antiBuildUse=\u00a74Tu no tienes permitido usar {0}.
@@ -24,10 +26,16 @@ balance=\u00a77Cantidad: {0}
balanceTop=\u00a77Ranking de cantidades ({0})
banExempt=\u00a7cNo puedes bannear a ese jugador.
banFormat=Banned: {0}
-banIpAddress=\u00a77Direccion IP baneada.
+bed=\u00a7obed\u00a7r
+bedMissing=\u00a74Your bed is either unset, missing or blocked.
+bedNull=\u00a7mbed\u00a7r
+bedSet=\u00a76Bed spawn set!
bigTreeFailure=\u00a7cBig Generacion de arbol fallida. Prueba de nuevo en hierba o arena.
bigTreeSuccess= \u00a77Big Arbol generado.
blockList=Essentials le ha cedido los siguientes comandos a otros plugins:
+bookAuthorSet=\u00a76Author of the book set to {0}
+bookLocked=\u00a7cThis book is now locked
+bookTitleSet=\u00a76Title of the book set to {0}
broadcast=\u00a7c[\u00a76Broadcast\u00a7c]\u00a7a {0}
buildAlert=\u00a7cNo tienes permisos para construir.
bukkitFormatChanged=Version de formato de Bukkit cambiado. Version no comprobada.
@@ -39,6 +47,8 @@ cantSpawnItem=\u00a7cNo tienes acceso para producir este objeto {0}
chatTypeAdmin=
chatTypeLocal=
chatTypeSpy=[Espia]
+cleaned=Userfiles Cleaned.
+cleaning=Cleaning userfiles.
commandFailed=Comando {0} fallado:
commandHelpFailedForPlugin=Error obteniendo ayuda para: {0}
commandNotLoaded=\u00a7cComando {0} esta cargado incorrectamente.
@@ -63,6 +73,9 @@ 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.
+denyBookEdit=\u00a74You cannot unlock this book
+denyChangeAuthor=\u00a74You cannot change the author of this book
+denyChangeTitle=\u00a74You cannot change the title of this book
dependancyDownloaded=[Essentials] Dependencia {0} descargada correctamente.
dependancyException=[Essentials] Error al intentar descargar la dependencia.
dependancyNotFound=[Essentials] La dependencia necesitada no se encontro, descargando...
@@ -73,10 +86,12 @@ destinationNotSet=Destino no establecido.
disableUnlimited=\u00a77Desactivando colocacion ilimitada de {0} para {1}.
disabled=desactivado
disabledToSpawnMob=El spawn de este mob esta deshabilitado en la configuracion.
+distance=\u00a76Distancia: {0}
dontMoveMessage=\u00a77Teletransporte comenzara en {0}. No te muevas.
downloadingGeoIp=Descargando base de datos de GeoIP ... puede llevar un tiempo (pais: 0.6 MB, ciudad: 20MB)
duplicatedUserdata=Datos de usuario duplicados: {0} y {1}
durability=\u00a77Esta herramienta tiene \u00a7c{0}\u00a77 usos restantes.
+editBookContents=\u00a7eYou may now edit the contents of this book
enableUnlimited=\u00a77Dando cantidad ilimitada de {0} a {1}.
enabled=activado
enchantmentApplied = \u00a77El encantamiento {0} fue aplicado al item en tu mano.
@@ -100,17 +115,23 @@ false=\u00a74false\u00a7f
feed=\u00a77Apetito satisfecho.
feedOther=\u00a77Satisfecho {0}.
fileRenameError=Error al renombrar el archivo {0}
+fireworkColor=\u00a74You must apply a color to the firework to add an effect
+fireworkEffectsCleared=\u00a76Removed all effects from held stack.
+fireworkSyntax=\u00a76Firework parameters:\u00a7c color:<color> [fade:<color>] [shape:<shape>] [effect:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas: \u00a7cred,blue,pink\n\u00a76Shapes:\u00a7c star, ball, large, creeper, burst \u00a76Effects:\u00a7c trail, twinkle
flyMode=\u00a77Modo de vuelo activado {0} para {1}.
flying=volando
foreverAlone=\u00a7cNo tienes nadie a quien puedas responder.
freedMemory= {0} MB libres.
+fullStack=\u00a74You already have a full stack
gameMode=\u00a77Modo de juego {0} activado para {1}.
+gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entidades
gcfree=Memoria libre: {0} MB
gcmax=Memoria maxima: {0} MB
gctotal=Memoria localizada: {0} MB
geoIpUrlEmpty=El link para descargar GeoIP esta vacio.
geoIpUrlInvalid=El link para descargar GeoIP es invalido.
-geoipJoinFormat=El jugador {0} viene de {1}
+geoipJoinFormat=\u00a76El jugador \u00a7c{0} \u00a76viene de \u00a7c{1}\u00a76.
+giveSpawn=\u00a76Se a dado\u00a7c {0} \u00a76de\u00a7c {1} a\u00a7c {2}\u00a76.
godDisabledFor=desactivado para {0}
godEnabledFor=activado para {0}
godMode=\u00a77Modo de dios {0}.
@@ -130,6 +151,9 @@ helpMatching=\u00a77Comandos que coinciden con "{0}":
helpOp=\u00a7c[AyudaOp]\u00a7f \u00a77{0}:\u00a7f {1}
helpPages=Pagina \u00a7c{0}\u00a7f de \u00a7c{1}\u00a7f:
helpPlugin=\u00a74{0}\u00a7f: Ayuda con los plugins: /help {1}
+holdBook=\u00a74You are not holding a writable book
+holdFirework=\u00a74You must be holding a firework to add effects
+holdPotion=\u00a74You must be holding a potion to apply effects to it
holeInFloor=Agujero en el suelo.
homeSet=\u00a77Hogar establecido.
homeSetToBed=\u00a77Tu hogar esta ahora establecido en esta cama.
@@ -148,14 +172,20 @@ invRestored=Tu inventario ha sido recuperado.
invSee=Estas viendo el inventario de {0}.
invSeeHelp=Usa /invsee para recuperar tu inventario.
invalidCharge=\u00a7cCargo invalido.
+invalidFireworkFormat=\u00a76The option \u00a74{0} \u00a76is not a valid value for \u00a74{1}
invalidHome=El hogar {0} no existe.
+invalidHomeName=\u00a74Nombre de casa invalido
invalidMob=Mob invalido.
+invalidNumber=Invalid Number
+invalidPotion=\u00a74Invalid Potion
+invalidPotionEffect=\u00a74You do not have permissions to apply potion effect \u00a7c{0} \u00a74to this potion
invalidServer=Servidor invalido!
invalidSignLine=Linea {0} en el signo es invalida.
+invalidWarpName=\u00a74Nombre de warp invalido
invalidWorld=\u00a7cMundo invalido.
inventoryCleared=\u00a77Inventario limpiado.
-inventoryClearedOthers=\u00a77Inventario de \u00a7c{0}\u00a77 limpiado.
inventoryClearedAll=\u00a76Cleared everyone's inventory.
+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.
@@ -185,9 +215,13 @@ kitError2=\u00a7cEse kit no existe o esta mal escrito.
kitError=\u00a7cNo hay ningun kit valido.
kitErrorHelp=\u00a7cLe falta especificar la cantidad a un item en la configuracion?
kitGive=\u00a77Dando kit a {0}.
+kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to {1}\u00a7.
kitInvFull=\u00a7cTu inventario esta lleno, el kit se pondra en el suelo.
+kitOnce=\u00a74You can't use that kit again.
+kitReceive=\u00a76Received kit\u00a7c {0}\u00a76.
kitTimed=\u00a7c No puedes usar ese kit de nuevo para otro{0}.
kits=\u00a77Kits: {0}
+leatherSyntax=\u00a76Leather Color Syntax: color:<red>,<green>,<blue> eg: color:255,0,0.
lightningSmited=\u00a77Acabas de ser golpeado.
lightningUse=\u00a77Golpeando a {0}
listAfkTag = \u00a77[Lejos]\u00a7f
@@ -203,9 +237,11 @@ mailSent=\u00a77Email enviado!!
markMailAsRead=\u00a7cPara marcar tu email como leido, escribe /mail clear
markedAsAway=\u00a77Has sido anunciado como AFK.
markedAsNotAway=\u00a77Ya no estas AFK.
+matchingIPAddress=\u00a76The following players previously logged in from that IP address:
maxHomes=No puedes establecer mas de {0} hogares.
mayNotJail=\u00a7cNo puedes encarcelar a esa persona.
me=yo
+messageTruncated=\u00a74Message truncated, to see the full output type:\u00a7c /{0} {1}
minute=minuto
minutes=minutos
missingItems=No tienes {0}x de {1}.
@@ -222,7 +258,10 @@ months=meses
moreThanZero=Las cantidades han de ser mayores que 0.
moveSpeed=\u00a77Has puesto {0} velocidad a {1} por {2}.
msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
+multipleCharges=\u00a74You cannot apply more than one charge to this firework.
+multiplePotionEffects=\u00a74You cannot apply more than one effect to this potion.
muteExempt=\u00a7cNo puedes silenciar a ese jugador.
+muteNotify=\u00a74{0} \u00a76has muted \u00a74{1}
mutedPlayer=Player {0} silenciado.
mutedPlayerFor=Player {0} silenciado durante {1}.
mutedUserSpeaks={0} intento hablar, pero esta silenciado.
@@ -238,6 +277,7 @@ nickSet=\u00a77Tu nombre es ahora \u00a7c{0} .
noAccessCommand=\u00a7cNo tienes acceso a ese comando.
noAccessPermission=\u00a7cNo tienes permisos para eso {0} .
noBreakBedrock=No puedes romper roca madre.
+noChapterMeta=\u00a74You do not have permission to create dynamic books.
noDestroyPermission=\u00a7cNo tienes permisos para destrozar eso {0}.
noDurability=\u00a7cEste item no tiene durabilidad.
noGodWorldWarning=\u00a7cAdvertencia! El Modo de dios ha sido desactivado en este mundo.
@@ -247,6 +287,9 @@ noHomeSetPlayer=El jugador no ha establecido un hogar.
noKitPermission=\u00a7cNecesitas los \u00a7c{0}\u00a7c permisos para usar ese kit.
noKits=\u00a77No hay kits disponibles aun.
noMail=No has recibido ningun email.
+noMatchingPlayers=\u00a76No matching players found.
+noMetaFirework=\u00a74You do not have permission to apply firework meta.
+noMetaPerm=\u00a74You do not have permission to apply \u00a7c{0}\u00a74 meta to this item.
noMotd=\u00a7cNo hay ningun mensaje del dia.
noNewMail=\u00a77No tienes ningun correo nuevo.
noPendingRequest=No tienes ninguna peticion pendiente.
@@ -269,9 +312,11 @@ now=ahora
nuke=Que la muerta afecte al que no despierte.
numberRequired=Un numero es necesario, amigo .
onlyDayNight=/time solo se utiliza con los valores day o night. (dia/noche)
+onlyPlayerSkulls=\u00a74You can only set the owner of player skulls (397:3).
onlyPlayers=Solo los jugadores conectados pueden usar {0}.
onlySunStorm=/weather solo acepta los valores sun o storm. (sol/tormenta)
orderBalances=Creando un ranking de {0} usuarios segun su presupuesto, espera...
+oversizedTempban=\u00a74You may not ban a player for this period of time.
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.
@@ -294,7 +339,13 @@ playerNeverOnServer=\u00a7cEl jugador {0} nunca estuvo en este servidor.
playerNotFound=\u00a7cJugador no encontrado.
playerUnmuted=\u00a77Has sido desmuteado.
pong=Te quiero mucho!
+posPitch=\u00a76Tono: {0} (Angulo de cabeza)
+posX=\u00a76X: {0} (+Este <-> -Oeste)
+posY=\u00a76Y: {0} (+Arriba <-> -abajo)
+posYaw=\u00a76gui\u00c3\u00b1ar: {0} (Rotacion)
+posZ=\u00a76Z: {0} (+Sur <-> -Norte)
possibleWorlds=\u00a77Los mundos posibles son desde el numero 0 hasta el {0}.
+potions=\u00a76Potions:\u00a7r {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}.
@@ -309,6 +360,16 @@ powerToolsEnabled=Todas tus herramientas de poder han sido activadas.
protectionOwner=\u00a76[EssentialsProtect] Dueno de la proteccion: {0}
questionFormat=\u00a7c[Pregunta]\u00a7f {0}
readNextPage=escribe /{0} {1} para leer la prox. pagina.
+recipe=\u00a76Recipe for \u00a7c{0}\u00a76 ({1} of {2})
+recipeBadIndex=There is no recipe by that number
+recipeFurnace=\u00a76Smelt \u00a7c{0}
+recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
+recipeGridItem=\ \u00a7{0}X \u00a76is \u00a7c{1}
+recipeMore=\u00a76Type /{0} \u00a7c{1}\u00a76 <number> to see other recipes for \u00a7c{2}
+recipeNone=No recipes exist for {0}
+recipeNothing=nothing
+recipeShapeless=\u00a76Combine \u00a7c{0}
+recipeWhere=\u00a76Where: {0}
reloadAllPlugins=\u00a77Todos los plugins recargados.
removed=\u00a77{0} entidades removidas.
repair=Has reparado satisfactoriamente tu: \u00a7e{0}.
@@ -323,7 +384,10 @@ requestDeniedFrom=\u00a77{0} ha denegado tu peticion de teletransporte.
requestSent=\u00a77Peticion enviada a {0}\u00a77.
requestTimedOut=\u00a7cA la solicitud de teletransporte se le ha acabado el tiempo.
requiredBukkit= * ! * Necesitas al menos el build {0} de CraftBukkit, descargalo de http://dl.bukkit.org/downloads/craftbukkit/
+resetBal=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all online players
+resetBalAll=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all players
returnPlayerToJailError=Error al intentar regresar a un jugador {0} a la carcel: {1}
+runningPlayerMatch=\u00a76Running search for players matching ''\u00a7c{0}\u00a76'' (this could take a little while)
second=segundo
seconds=segundos
seenOffline=El jugador {0} esta desconectado desde {1}
@@ -360,7 +424,9 @@ teleportRequestTimeoutInfo=\u00a77A esta solicitud se le acabara el tiempo despu
teleportTop=\u00a77Teletransportandote a la cima.
teleportationCommencing=\u00a77Comenzando teletransporte...
teleportationDisabled=\u00a77Teletransporte desactivado.
+teleportationDisabledFor=\u00a76Teleportation disabled for {0}
teleportationEnabled=\u00a77Teletransporte activado.
+teleportationEnabledFor=\u00a76Teleportation enabled for {0}
teleporting=\u00a77Teletransportando...
teleportingPortal=\u00a77Teletransportando via portal.
tempBanned=Baneado temporalmente del servidor por {0}
@@ -388,8 +454,6 @@ 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=Direccion IP 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.
@@ -400,10 +464,13 @@ unmutedPlayer=Jugador {0} desmuteado.
unvanished=\u00a7aEres visible nuevamente.
unvanishedReload=\u00a7cUn reinicio te ha forzado a ser visible.
upgradingFilesError=Error mientras se actualizaban los archivos
+uptime=\u00a76Uptime:\u00a7c {0}
+userAFK=\u00a75{0} \u00a75is currently AFK and may not respond
userDoesNotExist=El usuario {0} no existe
userIsAway={0} esta ahora ausente!
userIsNotAway={0} ya no esta ausente!
userJailed=\u00a77Has sido encarcelado!
+userUnknown=\u00a74Peligro: El jugador ''\u00a7c{0}\u00a74'' Nunca a ingresado a este servidor.
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
@@ -414,6 +481,7 @@ versionMismatchAll=La version no coincide! Por favor actualiza todos los jars de
voiceSilenced=\u00a77Tu voz ha sido silenciada
walking=walking
warpDeleteError=Problema al borrar el archivo de teletransporte.
+warpList={0}
warpListPermission=\u00a7cNo tienes permiso para listar esos teletransportes.
warpNotExist=Ese teletransporte no existe.
warpOverwrite=\u00a7cNo puedes sobreescribir ese atajo.
@@ -449,58 +517,6 @@ year=ano
years=anos
youAreHealed=\u00a77Has sido curado.
youHaveNewMail=\u00a7cTienes {0} mensajes!\u00a7f Pon \u00a77/mail read\u00a7f para ver tus emails no leidos!.
-posX=\u00a76X: {0} (+Este <-> -Oeste)
-posY=\u00a76Y: {0} (+Arriba <-> -abajo)
-posZ=\u00a76Z: {0} (+Sur <-> -Norte)
-posYaw=\u00a76gui\u00c3\u00b1ar: {0} (Rotacion)
-posPitch=\u00a76Tono: {0} (Angulo de cabeza)
-distance=\u00a76Distancia: {0}
-giveSpawn=\u00a76Se a dado\u00a7c {0} \u00a76de\u00a7c {1} a\u00a7c {2}\u00a76.
-warpList={0}
-uptime=\u00a76Uptime:\u00a7c {0}
-antiBuildCraft=\u00a74No se le permite crear\u00a7c {0}\u00a74.
-antiBuildDrop=\u00a74No se le permite botar \u00a7c {0}\u00a74.
-gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entidades
-invalidHomeName=\u00a74Nombre de casa invalido
-invalidWarpName=\u00a74Nombre de warp invalido
-userUnknown=\u00a74Peligro: El jugador ''\u00a7c{0}\u00a74'' Nunca a ingresado a este servidor.
-teleportationEnabledFor=\u00a76Teleportation enabled for {0}
-teleportationDisabledFor=\u00a76Teleportation disabled for {0}
-kitOnce=\u00a74You can't use that kit again.
-fullStack=\u00a74You already have a full stack
-oversizedTempban=\u00a74You may not ban a player for this period of time.
-recipeNone=No recipes exist for {0}
-invalidNumber=Invalid Number
-recipeBadIndex=There is no recipe by that number
-recipeNothing=nothing
-recipe=\u00a76Recipe for \u00a7c{0}\u00a76 ({1} of {2})
-recipeFurnace=\u00a76Smelt \u00a7c{0}
-recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
-recipeGridItem=\ \u00a7{0}X \u00a76is \u00a7c{1}
-recipeMore=\u00a76Type /{0} \u00a7c{1}\u00a76 <number> to see other recipes for \u00a7c{2}
-recipeWhere=\u00a76Where: {0}
-recipeShapeless=\u00a76Combine \u00a7c{0}
-editBookContents=\u00a7eYou may now edit the contents of this book
-bookAuthorSet=\u00a76Author of the book set to {0}
-bookTitleSet=\u00a76Title of the book set to {0}
-denyChangeAuthor=\u00a74You cannot change the author of this book
-denyChangeTitle=\u00a74You cannot change the title of this book
-denyBookEdit=\u00a74You cannot unlock this book
-bookLocked=\u00a7cThis book is now locked
-holdBook=\u00a74You are not holding a writable book
-fireworkColor=\u00a74You must apply a color to the firework to add an effect
-holdFirework=\u00a74You must be holding a firework to add effects
-invalidFireworkFormat=\u00a76The option \u00a74{0} \u00a76is not a valid value for \u00a74{1}
-muteNotify=\u00a74{0} \u00a76has muted \u00a74{1}
-resetBal=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all online players
-resetBalAll=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all players
-messageTruncated=\u00a74Message truncated, to see the full output type:\u00a7c /{0} {1}
-userAFK=\u00a75{0} \u00a75is currently AFK and may not respond
-fireworkEffectsCleared=\u00a76Removed all effects from held stack.
-fireworkSyntax=\u00a76Firework parameters:\u00a7c color:<color> [fade:<color>] [shape:<shape>] [effect:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas: \u00a7cred,blue,pink\n\u00a76Shapes:\u00a7c star, ball, large, creeper, burst \u00a76Effects:\u00a7c trail, twinkle
-bed=\u00a7obed\u00a7r
-bedNull=\u00a7mbed\u00a7r
-bedMissing=\u00a74Your bed is either unset, missing or blocked.
-bedSet=\u00a76Bed spawn set!
-kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to {1}\u00a7.
-kitReceive=\u00a76Received kit\u00a7c {0}\u00a76.
+playerUnbanned=\u00a76Player\u00a7c {0} \u00a76unbanned {1}.
+playerUnbanIpAddress=\u00a76Player\u00a7c {0} \u00a76unbanned IP: {1}.
+playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address {1}\u00a76.
diff --git a/Essentials/src/messages_fi.properties b/Essentials/src/messages_fi.properties
index 6d2fea177..5f5a3b48d 100644
--- a/Essentials/src/messages_fi.properties
+++ b/Essentials/src/messages_fi.properties
@@ -11,6 +11,8 @@ alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} sijainnissa: {3}
alertPlaced=laittoi:
alertUsed=k\u00e4ytti:
antiBuildBreak=\u00a74You are not permitted to break {0} blocks here.
+antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
+antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
antiBuildInteract=\u00a74You are not permitted to interact with {0}.
antiBuildPlace=\u00a74You are not permitted to place {0} here.
antiBuildUse=\u00a74You are not permitted to use {0}.
@@ -24,10 +26,16 @@ balance=\u00a77Rahatilanne: {0}
balanceTop=\u00a77Top rahatilanteet ({0})
banExempt=\u00a7cEt voi bannia pelaajaa.
banFormat=Banned: {0}
-banIpAddress=\u00a77Bannattu IP osoite
+bed=\u00a7obed\u00a7r
+bedMissing=\u00a74Your bed is either unset, missing or blocked.
+bedNull=\u00a7mbed\u00a7r
+bedSet=\u00a76Bed spawn set!
bigTreeFailure=\u00a7cIson puun luominen ep\u00e4onnistui. Yrit\u00e4 uudelleen nurmikolla tai mullalla.
bigTreeSuccess= \u00a77Iso puu luotu.
blockList=Essentials siirsi seuraavat komennot muihin plugineihin:
+bookAuthorSet=\u00a76Author of the book set to {0}
+bookLocked=\u00a7cThis book is now locked
+bookTitleSet=\u00a76Title of the book set to {0}
broadcast=[\u00a7cIlmoitus\u00a7f]\u00a7a {0}
buildAlert=\u00a7cSinulla ei ole oikeuksia rakentaa
bukkitFormatChanged=Bukkitin versiomuoto muuttui. Versiota ei ole tarkistettu.
@@ -39,6 +47,8 @@ cantSpawnItem=\u00a7cSinulla ei ole oikeutta luoda tavaraa {0}
chatTypeAdmin=[A]
chatTypeLocal=[L]
chatTypeSpy=[Spy]
+cleaned=Userfiles Cleaned.
+cleaning=Cleaning userfiles.
commandFailed=Komento {0} ep\u00e4onnistui:
commandHelpFailedForPlugin=Virhe haettaessa apua komennoista: {0}
commandNotLoaded=\u00a7cKomento {0} on v\u00e4\u00e4rin ladattu.
@@ -63,6 +73,9 @@ deleteHome=\u00a77Koti {0} on poistettu.
deleteJail=\u00a77Vankila {0} on poistettu.
deleteWarp=\u00a77Warp {0} on poistettu.
deniedAccessCommand={0} p\u00e4\u00e4sy komentoon ev\u00e4ttiin.
+denyBookEdit=\u00a74You cannot unlock this book
+denyChangeAuthor=\u00a74You cannot change the author of this book
+denyChangeTitle=\u00a74You cannot change the title of this book
dependancyDownloaded=[Essentials] Tarvittu tiedosto {0} ladattu onnistuneesti.
dependancyException=[Essentials] Virhe ladattaessa tarvittua tiedostoa
dependancyNotFound=[Essentials] Tarvittua tiedostoa ei l\u00f6ydy, ladataan nyt.
@@ -73,10 +86,12 @@ destinationNotSet=Sijaintia ei ole m\u00e4\u00e4ritetty
disableUnlimited=\u00a77Poistettu k\u00e4yt\u00f6st\u00e4 loputon laittaminen tavaralta "{0}", pelaajalta {1}.
disabled=poissa k\u00e4yt\u00f6st\u00e4
disabledToSpawnMob=T\u00e4m\u00e4n mobin luominen on poistettu k\u00e4yt\u00f6st\u00e4 config tiedostossa.
+distance=\u00a76Distance: {0}
dontMoveMessage=\u00a77Teleportataan {0} kuluttua. \u00c4l\u00e4 liiku.
downloadingGeoIp=Ladataan GeoIP tietokantaa ... t\u00e4m\u00e4 voi vied\u00e4 hetken (maa: 0.6 MB, kaupunki: 20MB)
duplicatedUserdata=Kopioitu k\u00e4ytt\u00e4j\u00e4n tiedot: {0} ja {1}
durability=\u00a77T\u00e4ll\u00e4 ty\u00f6kalulla on \u00a7c{0}\u00a77 k\u00e4ytt\u00f6kertaa j\u00e4ljell\u00e4
+editBookContents=\u00a7eYou may now edit the contents of this book
enableUnlimited=\u00a77Annetaan loputon m\u00e4\u00e4r\u00e4 tavaraa "{0}" pelaajalle {1}.
enabled=k\u00e4yt\u00f6ss\u00e4
enchantmentApplied = \u00a77Parannus "{0}" on lis\u00e4tty tavaraan k\u00e4dess\u00e4si.
@@ -100,17 +115,23 @@ false=v\u00e4\u00e4r\u00e4
feed=\u00a77Ruokahalusi on tyydytetty.
feedOther=\u00a77Tyydytit ruokahalun pelaajalta {0}.
fileRenameError={0} uudelleen nime\u00e4minen ep\u00e4onnistui
+fireworkColor=\u00a74You must apply a color to the firework to add an effect
+fireworkEffectsCleared=\u00a76Removed all effects from held stack.
+fireworkSyntax=\u00a76Firework parameters:\u00a7c color:<color> [fade:<color>] [shape:<shape>] [effect:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas: \u00a7cred,blue,pink\n\u00a76Shapes:\u00a7c star, ball, large, creeper, burst \u00a76Effects:\u00a7c trail, twinkle
flyMode=\u00a77Lento {0} pelaajalla {1}.
flying=flying
foreverAlone=\u00a7cSinulla ei ole ket\u00e4\u00e4n kenelle vastata.
freedMemory=Vapaata muistia {0} MB.
+fullStack=\u00a74You already have a full stack
gameMode=\u00a77Asetit pelimuodon "{0}" pelaajalle {1}.
+gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
gcfree=Vapaa muisti: {0} MB
gcmax=Maksimi muisti: {0} MB
gctotal=Sallittu muisti: {0} MB
geoIpUrlEmpty=GeoIP latausosoite on tyhj\u00e4.
geoIpUrlInvalid=GeoIP latausosoite on viallinen.
-geoipJoinFormat=Pelaaja {0} tulee maasta {1}
+geoipJoinFormat=\u00a76Pelaaja \u00a7c{0} \u00a76tulee maasta \u00a7c{1}\u00a76.
+giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
godDisabledFor=poistettu pelaajalta {0}
godEnabledFor=laitettu pelaajalle {0}
godMode=\u00a77God muoto {0}.
@@ -130,6 +151,9 @@ helpMatching=\u00a77Komennot "{0}":
helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
helpPages=Sivu \u00a7c{0}\u00a7f / \u00a7c{1}\u00a7f:
helpPlugin=\u00a74{0}\u00a7f: Plugin apu: /help {1}
+holdBook=\u00a74You are not holding a writable book
+holdFirework=\u00a74You must be holding a firework to add effects
+holdPotion=\u00a74You must be holding a potion to apply effects to it
holeInFloor=Reik\u00e4 lattiassa
homeSet=\u00a77Koti asetettu.
homeSetToBed=\u00a77Sinun koti on nyt asetettu t\u00e4h\u00e4n s\u00e4nkyyn.
@@ -148,14 +172,20 @@ invRestored=Sinun reppusi on palautettu.
invSee=N\u00e4et pelaajan {0} repun.
invSeeHelp=K\u00e4yt\u00e4 /invsee kun haluat palauttaa oman reppusi.
invalidCharge=\u00a7cMit\u00e4t\u00f6n m\u00e4\u00e4r\u00e4ys.
+invalidFireworkFormat=\u00a76The option \u00a74{0} \u00a76is not a valid value for \u00a74{1}
invalidHome=Kotia {0} ei ole olemassa
+invalidHomeName=\u00a74Invalid home name
invalidMob=Kelvoton mobin tyyppi.
+invalidNumber=Invalid Number
+invalidPotion=\u00a74Invalid Potion
+invalidPotionEffect=\u00a74You do not have permissions to apply potion effect \u00a7c{0} \u00a74to this potion
invalidServer=Kelvoton palvelin!
invalidSignLine=Kyltin rivi {0} on viallinen.
+invalidWarpName=\u00a74Invalid warp name
invalidWorld=\u00a7cKelvoton maailma.
inventoryCleared=\u00a77Reppu tyhjennetty.
-inventoryClearedOthers=\u00a77Pelaajan \u00a7c{0}\u00a77 reppu on tyhjennetty.
inventoryClearedAll=\u00a76Cleared everyone's inventory.
+inventoryClearedOthers=\u00a77Pelaajan \u00a7c{0}\u00a77 reppu on tyhjennetty.
is=on
itemCannotBeSold=Tuota tavaraa ei voi myyd\u00e4 t\u00e4ll\u00e4 palvelimella.
itemMustBeStacked=Tavara pit\u00e4\u00e4 vaihtaa pakattuina. M\u00e4\u00e4r\u00e4 2s olisi kaksi pakettia, jne.
@@ -185,9 +215,13 @@ kitError2=\u00a7cTuota pakkausta ei ole olemassa tai se on v\u00e4\u00e4rin muok
kitError=\u00a7cEi ole sopivia pakkauksia.
kitErrorHelp=\u00a7cEhk\u00e4 tavaralle ei ole m\u00e4\u00e4ritetty m\u00e4\u00e4r\u00e4\u00e4 configissa?
kitGive=\u00a77Annetaan pakkausta "{0}".
+kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to {1}\u00a7.
kitInvFull=\u00a7cSinun reppusi on t\u00e4ynn\u00e4, laitetaan tavarat maahan
+kitOnce=\u00a74You can't use that kit again.
+kitReceive=\u00a76Received kit\u00a7c {0}\u00a76.
kitTimed=\u00a7cAika, jota ennen et voi k\u00e4ytt\u00e4\u00e4 t\u00e4t\u00e4 pakkausta uudelleen: {0}.
kits=\u00a77Pakkaukset: {0}
+leatherSyntax=\u00a76Leather Color Syntax: color:<red>,<green>,<blue> eg: color:255,0,0.
lightningSmited=\u00a77Sinut on salamoitu
lightningUse=\u00a77Salamoidaan {0}
listAfkTag = \u00a77[AFK]\u00a7f
@@ -203,9 +237,11 @@ mailSent=\u00a77Viesti l\u00e4hetetty!
markMailAsRead=\u00a7cMerkitse viestit luetuiksi, kirjoita /mail clear
markedAsAway=\u00a77Sinut on laitettu poissaolevaksi.
markedAsNotAway=\u00a77Sinua ei ole en\u00e4\u00e4 laitettu poissaolevaksi.
+matchingIPAddress=\u00a76The following players previously logged in from that IP address:
maxHomes=Voit asettaa maksimissaan {0} kotia.
mayNotJail=\u00a7cEt voi laittaa tuota pelaajaa vankilaan
me=min\u00e4
+messageTruncated=\u00a74Message truncated, to see the full output type:\u00a7c /{0} {1}
minute=minuutti
minutes=minuuttia
missingItems=Sinulla ei ole {0}kpl {1}.
@@ -222,7 +258,10 @@ months=kuukaudet
moreThanZero=M\u00e4\u00e4r\u00e4n pit\u00e4\u00e4 olla enemm\u00e4n kuin 0.
moveSpeed=\u00a77Set {0} speed to {1} for {2}.
msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
+multipleCharges=\u00a74You cannot apply more than one charge to this firework.
+multiplePotionEffects=\u00a74You cannot apply more than one effect to this potion.
muteExempt=\u00a7cEt voi hiljent\u00e4\u00e4 tuota pelaajaa.
+muteNotify=\u00a74{0} \u00a76has muted \u00a74{1}
mutedPlayer=Pelaaja {0} hiljennetty.
mutedPlayerFor=Pelaaja {0} hiljennetty, koska {1}.
mutedUserSpeaks={0} yritti puhua, mutta oli hiljennetty.
@@ -238,6 +277,7 @@ nickSet=\u00a77Lempinimesi on nyt \u00a7c{0}
noAccessCommand=\u00a7cSinulla ei ole oikeutta tuohon komentoon.
noAccessPermission=\u00a7cSinulla ei ole oikeutta tuohon {0}.
noBreakBedrock=Sinulla ei ole lupaa tuhota bedrock-palikoita.
+noChapterMeta=\u00a74You do not have permission to create dynamic books.
noDestroyPermission=\u00a7cSinulla ei ole lupaa tuhota sit\u00e4 {0}.
noDurability=\u00a7cT\u00e4ll\u00e4 tavaralla ei ole kestoa.
noGodWorldWarning=\u00a7cVaroitus! God muoto ei ole k\u00e4yt\u00f6ss\u00e4 t\u00e4ss\u00e4 maailmassa.
@@ -247,6 +287,9 @@ noHomeSetPlayer=Pelaaja ei ole asettanut kotia.
noKitPermission=\u00a7cTarvitset \u00a7c{0}\u00a7c oikeuden, jotta voit k\u00e4ytt\u00e4\u00e4 tuota pakkausta.
noKits=\u00a77Ei pakkauksia saatavilla viel\u00e4
noMail=Ei uusia viestej\u00e4
+noMatchingPlayers=\u00a76No matching players found.
+noMetaFirework=\u00a74You do not have permission to apply firework meta.
+noMetaPerm=\u00a74You do not have permission to apply \u00a7c{0}\u00a74 meta to this item.
noMotd=\u00a7cEi ole p\u00e4iv\u00e4n viesti\u00e4.
noNewMail=\u00a77Ei viestej\u00e4.
noPendingRequest=Sinulla ei ole odottavia pyynt\u00f6j\u00e4.
@@ -269,9 +312,11 @@ now=nyt
nuke=Antaa kuoleman sateen kohdata heid\u00e4t
numberRequired=Numero menee tuohon, h\u00f6lm\u00f6.
onlyDayNight=/time tukee vain day/night.
+onlyPlayerSkulls=\u00a74You can only set the owner of player skulls (397:3).
onlyPlayers=Vain peliss\u00e4 olevat pelaajat voivat k\u00e4ytt\u00e4\u00e4 {0}.
onlySunStorm=/weather tukee vain sun/storm.
orderBalances=J\u00e4rjestet\u00e4\u00e4n rahatilanteita {0}, odota...
+oversizedTempban=\u00a74You may not ban a player for this period of time.
pTimeCurrent=Pelaajan \u00a7e{0}\u00a7f aika on {1}.
pTimeCurrentFixed=Pelaajan \u00a7e{0}\u00a7f aika on korjattu {1}.
pTimeNormal=Pelaajan \u00a7e{0}\u00a7f aika on normaali ja vastaa palvelimen aikaa.
@@ -294,7 +339,13 @@ playerNeverOnServer=\u00a7cPelaaja {0} ei ole koskaan ollut t\u00e4ll\u00e4 palv
playerNotFound=\u00a7cPelaajaa ei l\u00f6ydetty.
playerUnmuted=\u00a77Sin\u00e4 voit taas puhua
pong=Pong!
+posPitch=\u00a76Pitch: {0} (Head angle)
+posX=\u00a76X: {0} (+East <-> -West)
+posY=\u00a76Y: {0} (+Up <-> -Down)
+posYaw=\u00a76Yaw: {0} (Rotation)
+posZ=\u00a76Z: {0} (+South <-> -North)
possibleWorlds=\u00a77Mahdollisia maailmoja on numerot v\u00e4lilt\u00e4 0 - {0}.
+potions=\u00a76Potions:\u00a7r {0}
powerToolAir=Komentoa ei voi liitt\u00e4\u00e4 k\u00e4teen.
powerToolAlreadySet=Komento \u00a7c{0}\u00a7f on liitetty kohteeseen {1}.
powerToolAttach=\u00a7c{0}\u00a7f komento liitetty kohteeseen {1}.
@@ -309,6 +360,16 @@ powerToolsEnabled=Kaikki voimaty\u00f6alut on otettu k\u00e4ytt\u00f6\u00f6n.
protectionOwner=\u00a76[EssentialsProtect] Suojauksen omistaja: {0}
questionFormat=\u00a77[Question]\u00a7f {0}
readNextPage=Kirjoita /{0} {1} lukeaksesi seuraavan sivun
+recipe=\u00a76Recipe for \u00a7c{0}\u00a76 ({1} of {2})
+recipeBadIndex=There is no recipe by that number
+recipeFurnace=\u00a76Smelt \u00a7c{0}
+recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
+recipeGridItem=\ \u00a7{0}X \u00a76is \u00a7c{1}
+recipeMore=\u00a76Type /{0} \u00a7c{1}\u00a76 <number> to see other recipes for \u00a7c{2}
+recipeNone=No recipes exist for {0}
+recipeNothing=nothing
+recipeShapeless=\u00a76Combine \u00a7c{0}
+recipeWhere=\u00a76Where: {0}
reloadAllPlugins=\u00a77Kaikki pluginit uudelleen ladattu.
removed=\u00a77Poistettu {0} kokonaisuutta.
repair=Onnistuneesti korjasit ty\u00f6kalun: \u00a7e{0}.
@@ -323,7 +384,10 @@ requestDeniedFrom=\u00a77{0} kielt\u00e4ytyi sinun teleportti pyynn\u00f6st\u00e
requestSent=\u00a77Pyynt\u00f6 l\u00e4hetetty pelaajalle {0}\u00a77.
requestTimedOut=\u00a7cTeleportti pyynt\u00f6 aikakatkaistiin
requiredBukkit= * ! * Tarvitset v\u00e4hint\u00e4\u00e4n {0} version CraftBukkitista, lataa se osoitteesta http://dl.bukkit.org/downloads/craftbukkit/
+resetBal=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all online players
+resetBalAll=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all players
returnPlayerToJailError=Virhe laitettaessa pelaaja {0} takaisin vankilaan: {1}
+runningPlayerMatch=\u00a76Running search for players matching ''\u00a7c{0}\u00a76'' (this could take a little while)
second=sekunti
seconds=sekuntia
seenOffline=Pelaaja {0} on ollut offline jo {1}
@@ -360,7 +424,9 @@ teleportRequestTimeoutInfo=\u00a77T\u00e4m\u00e4 pyynt\u00f6 aikakatkaistaan {0}
teleportTop=\u00a77Teleportataan p\u00e4\u00e4lle.
teleportationCommencing=\u00a77Teleportataan...
teleportationDisabled=\u00a77Teleporttaus poistettu k\u00e4yt\u00f6st\u00e4.
+teleportationDisabledFor=\u00a76Teleportation disabled for {0}
teleportationEnabled=\u00a77Teleportation otettu k\u00e4ytt\u00f6\u00f6n.
+teleportationEnabledFor=\u00a76Teleportation enabled for {0}
teleporting=\u00a77Teleportataan...
teleportingPortal=\u00a77Teleportataan portaalin kautta.
tempBanned=Olet v\u00e4liaikaisesti bannattu palvelimelta, koska {0}
@@ -388,8 +454,6 @@ typeTpaccept=\u00a77Hyv\u00e4ksy\u00e4ksesi, kirjoita \u00a7c/tpaccept\u00a77.
typeTpdeny=\u00a77Kielt\u00e4\u00e4ksesi, kirjoita \u00a7c/tpdeny\u00a77.
typeWorldName=\u00a77Voit my\u00f6s laittaa maailman nimen.
unableToSpawnMob=Ei voida luoda mobia.
-unbannedIP=Unbanned IP osoite.
-unbannedPlayer=Unbanned pelaaja.
unignorePlayer=Otat taas huomioon pelaajan {0}.
unknownItemId=Tuntematon tavaran ID: {0}
unknownItemInList=Tuntematon tavara {0} listassa {1}.
@@ -400,10 +464,13 @@ unmutedPlayer=Pelaajat {0} voi taas puhua.
unvanished=\u00a7aOlet taas n\u00e4kyvill\u00e4.
unvanishedReload=\u00a7cSinut on pakotettu taas n\u00e4kyv\u00e4ksi uudelleen latauksen vuoksi.
upgradingFilesError=Virhe p\u00e4ivitett\u00e4ess\u00e4 tiedostoja
+uptime=\u00a76Uptime:\u00a7c {0}
+userAFK=\u00a75{0} \u00a75is currently AFK and may not respond
userDoesNotExist=Pelaajaa {0} ei ole olemassa.
userIsAway={0} on nyt AFK
userIsNotAway={0} ei ole en\u00e4\u00e4 AFK
userJailed=\u00a77Sinut on laitettu vankilaan
+userUnknown=\u00a74Warning: The user ''\u00a7c{0}\u00a74'' has never joined this server.
userUsedPortal={0} k\u00e4ytti portaalia.
userdataMoveBackError=Virhe siirrett\u00e4ess\u00e4 k\u00e4ytt\u00e4j\u00e4n tietoja/{0}.tmp k\u00e4ytt\u00e4j\u00e4n tietoihin/{1}
userdataMoveError=Virhe siirrett\u00e4ess\u00e4 k\u00e4ytt\u00e4j\u00e4n tietoja/{0} k\u00e4ytt\u00e4j\u00e4n tietoihin/{1}.tmp
@@ -414,6 +481,7 @@ versionMismatchAll=Versiot eiv\u00e4t t\u00e4sm\u00e4\u00e4! P\u00e4ivit\u00e4 k
voiceSilenced=\u00a77Sinun \u00e4\u00e4ni on hiljennetty
walking=walking
warpDeleteError=Virhe poistettaessa warp tiedostoa.
+warpList={0}
warpListPermission=\u00a7cSinulla ei ole oikeuksia n\u00e4hd\u00e4 warp-listaa.
warpNotExist=Tuota warppia ei ole olemassa.
warpOverwrite=\u00a7cEt voi korvata tuota warppia.
@@ -449,58 +517,6 @@ year=vuosi
years=vuosia
youAreHealed=\u00a77Sinut on parannettu.
youHaveNewMail=\u00a7cSinulla on {0} viesti(\u00e4)!\u00a7f Kirjoita \u00a77/mail read\u00a7f lukeaksesi viestit.
-posX=\u00a76X: {0} (+East <-> -West)
-posY=\u00a76Y: {0} (+Up <-> -Down)
-posZ=\u00a76Z: {0} (+South <-> -North)
-posYaw=\u00a76Yaw: {0} (Rotation)
-posPitch=\u00a76Pitch: {0} (Head angle)
-distance=\u00a76Distance: {0}
-giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
-warpList={0}
-uptime=\u00a76Uptime:\u00a7c {0}
-antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
-antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
-gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
-invalidHomeName=\u00a74Invalid home name
-invalidWarpName=\u00a74Invalid warp name
-userUnknown=\u00a74Warning: The user ''\u00a7c{0}\u00a74'' has never joined this server.
-teleportationEnabledFor=\u00a76Teleportation enabled for {0}
-teleportationDisabledFor=\u00a76Teleportation disabled for {0}
-kitOnce=\u00a74You can't use that kit again.
-fullStack=\u00a74You already have a full stack
-oversizedTempban=\u00a74You may not ban a player for this period of time.
-recipeNone=No recipes exist for {0}
-invalidNumber=Invalid Number
-recipeBadIndex=There is no recipe by that number
-recipeNothing=nothing
-recipe=\u00a76Recipe for \u00a7c{0}\u00a76 ({1} of {2})
-recipeFurnace=\u00a76Smelt \u00a7c{0}
-recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
-recipeGridItem=\ \u00a7{0}X \u00a76is \u00a7c{1}
-recipeMore=\u00a76Type /{0} \u00a7c{1}\u00a76 <number> to see other recipes for \u00a7c{2}
-recipeWhere=\u00a76Where: {0}
-recipeShapeless=\u00a76Combine \u00a7c{0}
-editBookContents=\u00a7eYou may now edit the contents of this book
-bookAuthorSet=\u00a76Author of the book set to {0}
-bookTitleSet=\u00a76Title of the book set to {0}
-denyChangeAuthor=\u00a74You cannot change the author of this book
-denyChangeTitle=\u00a74You cannot change the title of this book
-denyBookEdit=\u00a74You cannot unlock this book
-bookLocked=\u00a7cThis book is now locked
-holdBook=\u00a74You are not holding a writable book
-fireworkColor=\u00a74You must apply a color to the firework to add an effect
-holdFirework=\u00a74You must be holding a firework to add effects
-invalidFireworkFormat=\u00a76The option \u00a74{0} \u00a76is not a valid value for \u00a74{1}
-muteNotify=\u00a74{0} \u00a76has muted \u00a74{1}
-resetBal=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all online players
-resetBalAll=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all players
-messageTruncated=\u00a74Message truncated, to see the full output type:\u00a7c /{0} {1}
-userAFK=\u00a75{0} \u00a75is currently AFK and may not respond
-fireworkEffectsCleared=\u00a76Removed all effects from held stack.
-fireworkSyntax=\u00a76Firework parameters:\u00a7c color:<color> [fade:<color>] [shape:<shape>] [effect:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas: \u00a7cred,blue,pink\n\u00a76Shapes:\u00a7c star, ball, large, creeper, burst \u00a76Effects:\u00a7c trail, twinkle
-bed=\u00a7obed\u00a7r
-bedNull=\u00a7mbed\u00a7r
-bedMissing=\u00a74Your bed is either unset, missing or blocked.
-bedSet=\u00a76Bed spawn set!
-kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to {1}\u00a7.
-kitReceive=\u00a76Received kit\u00a7c {0}\u00a76.
+playerUnbanned=\u00a76Player\u00a7c {0} \u00a76unbanned {1}.
+playerUnbanIpAddress=\u00a76Player\u00a7c {0} \u00a76unbanned IP: {1}.
+playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address {1}\u00a76.
diff --git a/Essentials/src/messages_fr.properties b/Essentials/src/messages_fr.properties
index ddca65337..4e39d6e9e 100644
--- a/Essentials/src/messages_fr.properties
+++ b/Essentials/src/messages_fr.properties
@@ -11,6 +11,8 @@ alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} \u00e0:{3}
alertPlaced=a plac\u00e9 :
alertUsed=a utilis\u00e9 :
antiBuildBreak=\u00a74Vous n'\u00eates pas autoris\u00e9s \u00e0 casser des blocs de {0} ici.
+antiBuildCraft=\u00a74Vous n'\u00eates pas autoris\u00e9s \u00e0 cr\u00e9er\u00a7c {0}\u00a74.
+antiBuildDrop=\u00a74Vous n'\u00eates pas autoris\u00e9s \u00e0 jeter\u00a7c {0}\u00a74.
antiBuildInteract=\u00a74Vous n'\u00eates pas autoris\u00e9s \u00e0 interagir avec {0}.
antiBuildPlace=\u00a74Vous n'\u00eates pas autoris\u00e9s \u00e0 placer {0} ici.
antiBuildUse=\u00a74Vous n'\u00eates pas autoris\u00e9s \u00e0 utliser {0}.
@@ -24,10 +26,16 @@ balance=\u00a77Solde : {0}
balanceTop=\u00a77Meilleurs soldes au ({0})
banExempt=\u00a77Vous ne pouvez pas bannir ce joueur.
banFormat=Banni : {0}
-banIpAddress=\u00a77Adresse IP bannie.
+bed=\u00a7obed\u00a7r
+bedMissing=\u00a74Your bed is either unset, missing or blocked.
+bedNull=\u00a7mbed\u00a7r
+bedSet=\u00a76Bed spawn set!
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.
blockList=Essentials a relay\u00e9 les commandes suivantes \u00e0 un autre plugin :
+bookAuthorSet=\u00a76Author of the book set to {0}
+bookLocked=\u00a7cThis book is now locked
+bookTitleSet=\u00a76Title of the book set to {0}
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.
@@ -39,6 +47,8 @@ cantSpawnItem=\u00a7cVous n''avez pas le droit de faire appara\u00eetre {0}
chatTypeAdmin=[A]
chatTypeLocal=[L]
chatTypeSpy=[Spy]
+cleaned=Userfiles Cleaned.
+cleaning=Cleaning userfiles.
commandFailed=\u00c9chec de la commande {0} :
commandHelpFailedForPlugin=Erreur d''obtention d''aide pour : {0}
commandNotLoaded=\u00a7cLa commande {0} a \u00e9t\u00e9 mal charg\u00e9e.
@@ -63,6 +73,9 @@ deleteHome=\u00a77La r\u00e9sidence {0} a \u00e9t\u00e9 supprim\u00e9e.
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}.
+denyBookEdit=\u00a74You cannot unlock this book
+denyChangeAuthor=\u00a74You cannot change the author of this book
+denyChangeTitle=\u00a74You cannot change the title of this book
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.
@@ -73,10 +86,12 @@ destinationNotSet=Destination non d\u00e9finie
disableUnlimited=\u00a77D\u00e9sactivation du placement illimit\u00e9 de {0} pour {1}.
disabled=d\u00e9sactiv\u00e9
disabledToSpawnMob=L'invacation de ce monstre a \u00e9t\u00e9 d\u00e9sactiv\u00e9e dans le fichier de configuration.
+distance=\u00a76Distance : {0}
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 (Pays : 0.6 Mo, villes : 20Mo)
duplicatedUserdata=Donn\u00e9e utilisateur dupliqu\u00e9e : {0} et {1}
durability=\u00a77Cet outil a \u00a7c{0}\u00a77 usages restants
+editBookContents=\u00a7eYou may now edit the contents of this book
enableUnlimited=\u00a77Quantit\u00e9 illimit\u00e9e de {0} \u00e0 {1}.
enabled=activ\u00e9
enchantmentApplied = \u00a77L''enchantement {0} a \u00e9t\u00e9 appliqu\u00e9 \u00e0 l''objet dans votre main.
@@ -100,17 +115,23 @@ false=\u00a74false\u00a7f
feed=\u00a77Vous avez \u00e9t\u00e9 rassasi\u00e9.
feedOther=\u00a77 est rassasi\u00e9 {0}.
fileRenameError=Echec du changement de nom de {0}
+fireworkColor=\u00a74You must apply a color to the firework to add an effect
+fireworkEffectsCleared=\u00a76Removed all effects from held stack.
+fireworkSyntax=\u00a76Firework parameters:\u00a7c color:<color> [fade:<color>] [shape:<shape>] [effect:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas: \u00a7cred,blue,pink\n\u00a76Shapes:\u00a7c star, ball, large, creeper, burst \u00a76Effects:\u00a7c trail, twinkle
flyMode=\u00a77Fly mode {0} pour {1} d\u00e9fini.
flying=flying
foreverAlone=\u00a7cVous n''avez personne \u00e0 qui r\u00e9pondre
freedMemory=A lib\u00e9r\u00e9 {0} Mo.
+fullStack=\u00a74You already have a full stack
gameMode=\u00a77Mode de jeu {0} pour {1}.
+gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 portions, \u00a7c{3}\u00a76 entit\u00e9s
gcfree=M\u00e9moire libre : {0} Mo
gcmax=M\u00e9moire maximale : {0} Mo
gctotal=M\u00e9moire utilis\u00e9e : {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}
+geoipJoinFormat=\u00a76Joueur \u00a7c{0} \u00a76vient de \u00a7c{1}\u00a76.
+giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
godDisabledFor=d\u00e9sactiv\u00e9 pour {0}
godEnabledFor=activ\u00e9 pour {0}
godMode=\u00a77Mode Dieu {0}.
@@ -130,6 +151,9 @@ helpMatching=\u00a77Commandes correspondant \u00e0 "{0}" :
helpOp=\u00a7c[Aide Admin]\u00a7f \u00a77{0} : \u00a7f {1}
helpPages=Page \u00a7c{0}\u00a7f sur \u00a7c{1}\u00a7f.
helpPlugin=\u00a74{0}\u00a7f: Aide Plugin : /help {1}
+holdBook=\u00a74You are not holding a writable book
+holdFirework=\u00a74You must be holding a firework to add effects
+holdPotion=\u00a74You must be holding a potion to apply effects to it
holeInFloor=Trou dans le Sol.
homeSet=\u00a77R\u00e9sidence d\u00e9finie.
homeSetToBed=\u00a77Votre r\u00e9sidence est d\u00e9sormais li\u00e9e \u00e0 ce lit.
@@ -148,14 +172,20 @@ invRestored=Votre inventaire vous a \u00e9t\u00e9 rendu.
invSee=Vous voyez l''inventaire de {0}.
invSeeHelp=Utilisez /invsee pour revenir \u00e0 votre inventaire.
invalidCharge=\u00a7cCharge invalide.
+invalidFireworkFormat=\u00a76The option \u00a74{0} \u00a76is not a valid value for \u00a74{1}
invalidHome=La r\u00e9sidence {0} n'existe pas
+invalidHomeName=\u00a74Nom de r\u00e9sindence invalide
invalidMob=Mauvais type de cr\u00e9ature.
+invalidNumber=Invalid Number
+invalidPotion=\u00a74Invalid Potion
+invalidPotionEffect=\u00a74You do not have permissions to apply potion effect \u00a7c{0} \u00a74to this potion
invalidServer=Serveur non valide.
invalidSignLine=La ligne {0} du panneau est invalide.
+invalidWarpName=\u00a74Nom de warp invalide
invalidWorld=\u00a7cMonde invalide.
inventoryCleared=\u00a77Inventaire nettoy\u00e9.
-inventoryClearedOthers=\u00a77L''inventaire de \u00a7c{0}\u00a77 a \u00e9t\u00e9 nettoy\u00e9.
inventoryClearedAll=\u00a76Cleared everyone's inventory.
+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.
@@ -185,9 +215,13 @@ kitError2=\u00a7cCe kit n'existe pas ou a \u00e9t\u00e9 mal d\u00e9fini.
kitError=\u00a7cIl n'y a pas de kits valides.
kitErrorHelp=\u00a7cPeut-\u00eatre qu'un objet manque d'une quantit\u00e9 dans la configuration ?
kitGive=\u00a77Donner le kit {0}.
+kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to {1}\u00a7.
kitInvFull=\u00a7cVotre inventaire \u00e9tait plein, le kit est parre-terre.
+kitOnce=\u00a74You can't use that kit again.
+kitReceive=\u00a76Received kit\u00a7c {0}\u00a76.
kitTimed=\u00a7cVous ne pouvez pas utiliser ce kit pendant encore {0}.
kits=\u00a77Kits :{0}
+leatherSyntax=\u00a76Leather Color Syntax: color:<red>,<green>,<blue> eg: color:255,0,0.
lightningSmited=\u00a77Vous venez d'\u00eatre foudroy\u00e9.
lightningUse=\u00a77{0} a \u00e9t\u00e9 foudroy\u00e9.
listAfkTag = \u00a77[AFK]\u00a7f
@@ -203,9 +237,11 @@ 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 plus AFK.
+matchingIPAddress=\u00a76The following players previously logged in from that IP address:
maxHomes=Vous ne pouvez pas cr\u00e9er plus de {0} r\u00e9sidences.
mayNotJail=\u00a7cVous ne pouvez pas emprisonner cette personne.
me=moi
+messageTruncated=\u00a74Message truncated, to see the full output type:\u00a7c /{0} {1}
minute=minute
minutes=minutes
missingItems=Vous n''avez pas {0} x {1}.
@@ -222,7 +258,10 @@ months=mois
moreThanZero=Les quantit\u00e9s doivent \u00eatre sup\u00e9rieures \u00e0 z\u00e9ro.
moveSpeed=\u00a77Set {0} speed to {1} for {2}.
msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
+multipleCharges=\u00a74You cannot apply more than one charge to this firework.
+multiplePotionEffects=\u00a74You cannot apply more than one effect to this potion.
muteExempt=\u00a7cVous ne pouvez pas r\u00e9duire ce joueur au silence.
+muteNotify=\u00a74{0} \u00a76has muted \u00a74{1}
mutedPlayer=Le joueur {0} est d\u00e9sormais muet.
mutedPlayerFor={0} a \u00e9t\u00e9 muet pour {1}.
mutedUserSpeaks={0} a essay\u00e9 de parler mais est muet.
@@ -238,6 +277,7 @@ nickSet=\u00a77Votre surnom 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}
noBreakBedrock=Vous n'\u00eates pas autoris\u00e9s \u00e0 d\u00e9truire la bedrock.
+noChapterMeta=\u00a74You do not have permission to create dynamic books.
noDestroyPermission=\u00a7cVous n''avez pas la permission de d\u00e9truire ce {0}.
noDurability=\u00a7cCet item n'a pas de durabilit\u00e9.
noGodWorldWarning=\u00a7cAttention ! Le mode dieu est d\u00e9sactiv\u00e9 dans ce monde.
@@ -247,6 +287,9 @@ noHomeSetPlayer=Le joueur n'a pas d\u00e9fini sa r\u00e9sidence.
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
+noMatchingPlayers=\u00a76No matching players found.
+noMetaFirework=\u00a74You do not have permission to apply firework meta.
+noMetaPerm=\u00a74You do not have permission to apply \u00a7c{0}\u00a74 meta to this item.
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.
@@ -269,9 +312,11 @@ now=maintenant
nuke=Que la mort s'abatte sur eux !
numberRequired=Un nombre est requis ici.
onlyDayNight=/time ne supporte que (jour) day/night (nuit).
+onlyPlayerSkulls=\u00a74You can only set the owner of player skulls (397:3).
onlyPlayers=Seuls les joueurs en jeu peuvent utiliser {0}.
onlySunStorm=/weather ne supporte que (soleil) sun/storm (temp\u00eate).
orderBalances=Classement des soldes des {0} joueurs, patientez ...
+oversizedTempban=\u00a74You may not ban a player for this period of time.
pTimeCurrent=Pour \u00a7e{0}\u00a7f l''heure est {1}.
pTimeCurrentFixed=L''heure de \u00a7e{0}\u00a7f est fix\u00e9e \u00e0 {1}.
pTimeNormal=\u00a7fPour \u00a7e{0}\u00a7f l'heure est normale et correspond au server.
@@ -294,7 +339,13 @@ playerNeverOnServer=\u00a7cLe joueur {0} n''a jamais \u00e9t\u00e9 sur le serveu
playerNotFound=\u00a7cLe joueur est introuvable.
playerUnmuted=\u00a77Vous avez de nouveau la parole.
pong=Pong !
+posPitch=\u00a76Pitch : {0} (Head angle)
+posX=\u00a76X: {0} (+East <-> -West)
+posY=\u00a76Y: {0} (+Up <-> -Down)
+posYaw=\u00a76Yaw : {0} (Rotation)
+posZ=\u00a76Z: {0} (+South <-> -North)
possibleWorlds=\u00a77Les mondes possibles sont les nombres de 0 \u00e0 {0}.
+potions=\u00a76Potions:\u00a7r {0}
powerToolAir=La commande ne peut pas \u00eatre assign\u00e9e \u00e0 l'air.
powerToolAlreadySet=La commande \u00a7c{0}\u00a7f est d\u00e9j\u00e0 assign\u00e9e \u00e0 {1}.
powerToolAttach=Commande \u00a7c{0}\u00a7f assign\u00e9e \u00e0 {1}.
@@ -309,6 +360,16 @@ powerToolsEnabled=Toutes vos commandes assign\u00e9es ont \u00e9t\u00e9 activ\u0
protectionOwner=\u00a76[EssentialsProtect] Propri\u00e9taire de la protection : {0}
questionFormat=\u00a77[Question]\u00a7f {0}
readNextPage=Utilisez /{0} {1} pour lire la page suivante.
+recipe=\u00a76Recipe for \u00a7c{0}\u00a76 ({1} of {2})
+recipeBadIndex=There is no recipe by that number
+recipeFurnace=\u00a76Smelt \u00a7c{0}
+recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
+recipeGridItem=\ \u00a7{0}X \u00a76is \u00a7c{1}
+recipeMore=\u00a76Type /{0} \u00a7c{1}\u00a76 <number> to see other recipes for \u00a7c{2}
+recipeNone=No recipes exist for {0}
+recipeNothing=nothing
+recipeShapeless=\u00a76Combine \u00a7c{0}
+recipeWhere=\u00a76Where: {0}
reloadAllPlugins=\u00a77Toutes les extensions ont \u00e9t\u00e9 recharg\u00e9es.
removed=\u00a77{0} entit\u00e9s supprim\u00e9es.
repair=Vous avez r\u00e9par\u00e9 votre : \u00a7e{0}.
@@ -323,7 +384,10 @@ requestDeniedFrom=\u00a77{0} a refus\u00e9 votre demande de t\u00e9l\u00e9portat
requestSent=\u00a77Requ\u00eate envoy\u00e9e \u00e0 {0}\u00a77.
requestTimedOut=\u00a7cLa demande de t\u00e9l\u00e9portation a expir\u00e9.
requiredBukkit=* ! * Vous avez au moins besoin de la version {0} de CraftBukkit. T\u00e9l\u00e9chargez-la ici http://dl.bukkit.org/downloads/craftbukkit/
+resetBal=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all online players
+resetBalAll=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all players
returnPlayerToJailError=Error occurred when trying to return player {0} to jail: {1}
+runningPlayerMatch=\u00a76Running search for players matching ''\u00a7c{0}\u00a76'' (this could take a little while)
second=seconde
seconds=secondes
seenOffline=Le joueur {0} est hors ligne depuis {1}
@@ -360,7 +424,9 @@ teleportRequestTimeoutInfo=\u00a77Cette demande de t\u00e9l\u00e9portation expir
teleportTop=\u00a77T\u00e9l\u00e9portation vers le haut.
teleportationCommencing=\u00a77D\u00e9but de la t\u00e9l\u00e9portation...
teleportationDisabled=\u00a77T\u00e9l\u00e9portation d\u00e9sactiv\u00e9.
+teleportationDisabledFor=\u00a76Teleportation disabled for {0}
teleportationEnabled=\u00a77T\u00e9l\u00e9portation activ\u00e9e.
+teleportationEnabledFor=\u00a76Teleportation enabled for {0}
teleporting=\u00a77T\u00e9l\u00e9portation en cours...
teleportingPortal=\u00a77T\u00e9l\u00e9portation via portail.
tempBanned=Banni temporairement du serveur pour {0}
@@ -388,8 +454,6 @@ typeTpaccept=\u00a77Pour le t\u00e9l\u00e9porter, utilisez \u00a7c/tpaccept\u00a
typeTpdeny=\u00a77Pour d\u00e9cliner cette demande, utilisez \u00a7c/tpdeny\u00a77.
typeWorldName=\u00a77Vous pouvez aussi taper le nom d'un monde sp\u00e9cifique.
unableToSpawnMob=Incapable d'invoquer un cr\u00e9ature.
-unbannedIP=Adresse IP d\u00e9bannie.
-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}.
@@ -400,10 +464,13 @@ unmutedPlayer=Le joueur {0} n''est plus muet.
unvanished=\u00a7aYou are once again visible.
unvanishedReload=\u00a7cA reload has forced you to become visible.
upgradingFilesError=Erreur durant la mise \u00e0 jour des fichiers.
+uptime=\u00a76Dur\u00e9e de fonctionnent :\u00a7c {0}
+userAFK=\u00a75{0} \u00a75is currently AFK and may not respond
userDoesNotExist=L''utilisateur {0} n''existe pas.
userIsAway={0} est d\u00e9sormais AFK
userIsNotAway={0} n'est plus AFK
userJailed=\u00a77Vous avez \u00e9t\u00e9 emprisonn\u00e9.
+userUnknown=\u00a74Attention : Le joueur ''\u00a7c{0}\u00a74'' n''est jamais venu sur ce serveur.
userUsedPortal={0} a utilis\u00e9 un portail existant.
userdataMoveBackError=Echec du d\u00e9placement de userdata/{0}.tmp vers userdata/{1}
userdataMoveError=Echec du d\u00e9placement de userdata/{0} vers userdata/{1}.tmp
@@ -414,6 +481,7 @@ versionMismatchAll=Mauvaise version ! Veuillez mettre des jars Essentials de m\u
voiceSilenced=\u00a77Vous avez \u00e9t\u00e9 r\u00e9duit au silence.
walking=en train de marcher
warpDeleteError=Probl\u00e8me concernant la suppression du fichier warp.
+warpList={0}
warpListPermission=\u00a7cVous n'avez pas la permission d'afficher la liste des points de t\u00e9l\u00e9portation.
warpNotExist=Ce warp n'existe pas.
warpOverwrite=\u00a7cVous ne pouvez pas \u00e9craser ce warp.
@@ -449,58 +517,6 @@ 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.
-posX=\u00a76X: {0} (+East <-> -West)
-posY=\u00a76Y: {0} (+Up <-> -Down)
-posZ=\u00a76Z: {0} (+South <-> -North)
-posYaw=\u00a76Yaw : {0} (Rotation)
-posPitch=\u00a76Pitch : {0} (Head angle)
-distance=\u00a76Distance : {0}
-giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
-warpList={0}
-uptime=\u00a76Dur\u00e9e de fonctionnent :\u00a7c {0}
-antiBuildCraft=\u00a74Vous n'\u00eates pas autoris\u00e9s \u00e0 cr\u00e9er\u00a7c {0}\u00a74.
-antiBuildDrop=\u00a74Vous n'\u00eates pas autoris\u00e9s \u00e0 jeter\u00a7c {0}\u00a74.
-gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 portions, \u00a7c{3}\u00a76 entit\u00e9s
-invalidHomeName=\u00a74Nom de r\u00e9sindence invalide
-invalidWarpName=\u00a74Nom de warp invalide
-userUnknown=\u00a74Attention : Le joueur ''\u00a7c{0}\u00a74'' n''est jamais venu sur ce serveur.
-teleportationEnabledFor=\u00a76Teleportation enabled for {0}
-teleportationDisabledFor=\u00a76Teleportation disabled for {0}
-kitOnce=\u00a74You can't use that kit again.
-fullStack=\u00a74You already have a full stack
-oversizedTempban=\u00a74You may not ban a player for this period of time.
-recipeNone=No recipes exist for {0}
-invalidNumber=Invalid Number
-recipeBadIndex=There is no recipe by that number
-recipeNothing=nothing
-recipe=\u00a76Recipe for \u00a7c{0}\u00a76 ({1} of {2})
-recipeFurnace=\u00a76Smelt \u00a7c{0}
-recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
-recipeGridItem=\ \u00a7{0}X \u00a76is \u00a7c{1}
-recipeMore=\u00a76Type /{0} \u00a7c{1}\u00a76 <number> to see other recipes for \u00a7c{2}
-recipeWhere=\u00a76Where: {0}
-recipeShapeless=\u00a76Combine \u00a7c{0}
-editBookContents=\u00a7eYou may now edit the contents of this book
-bookAuthorSet=\u00a76Author of the book set to {0}
-bookTitleSet=\u00a76Title of the book set to {0}
-denyChangeAuthor=\u00a74You cannot change the author of this book
-denyChangeTitle=\u00a74You cannot change the title of this book
-denyBookEdit=\u00a74You cannot unlock this book
-bookLocked=\u00a7cThis book is now locked
-holdBook=\u00a74You are not holding a writable book
-fireworkColor=\u00a74You must apply a color to the firework to add an effect
-holdFirework=\u00a74You must be holding a firework to add effects
-invalidFireworkFormat=\u00a76The option \u00a74{0} \u00a76is not a valid value for \u00a74{1}
-muteNotify=\u00a74{0} \u00a76has muted \u00a74{1}
-resetBal=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all online players
-resetBalAll=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all players
-messageTruncated=\u00a74Message truncated, to see the full output type:\u00a7c /{0} {1}
-userAFK=\u00a75{0} \u00a75is currently AFK and may not respond
-fireworkEffectsCleared=\u00a76Removed all effects from held stack.
-fireworkSyntax=\u00a76Firework parameters:\u00a7c color:<color> [fade:<color>] [shape:<shape>] [effect:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas: \u00a7cred,blue,pink\n\u00a76Shapes:\u00a7c star, ball, large, creeper, burst \u00a76Effects:\u00a7c trail, twinkle
-bed=\u00a7obed\u00a7r
-bedNull=\u00a7mbed\u00a7r
-bedMissing=\u00a74Your bed is either unset, missing or blocked.
-bedSet=\u00a76Bed spawn set!
-kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to {1}\u00a7.
-kitReceive=\u00a76Received kit\u00a7c {0}\u00a76.
+playerUnbanned=\u00a76Player\u00a7c {0} \u00a76unbanned {1}.
+playerUnbanIpAddress=\u00a76Player\u00a7c {0} \u00a76unbanned IP: {1}.
+playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address {1}\u00a76.
diff --git a/Essentials/src/messages_it.properties b/Essentials/src/messages_it.properties
index 73d268799..b5c2bbd50 100644
--- a/Essentials/src/messages_it.properties
+++ b/Essentials/src/messages_it.properties
@@ -11,6 +11,8 @@ alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} a: {3}
alertPlaced=collocato:
alertUsed=usato:
antiBuildBreak=\u00a74You are not permitted to break {0} blocks here.
+antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
+antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
antiBuildInteract=\u00a74You are not permitted to interact with {0}.
antiBuildPlace=\u00a74You are not permitted to place {0} here.
antiBuildUse=\u00a74You are not permitted to use {0}.
@@ -24,10 +26,16 @@ balance=\u00a77Bilancio: {0}
balanceTop=\u00a77Top bilanci ({0})
banExempt=\u00a7cNon puoi bannare questo player.
banFormat=Banned: {0}
-banIpAddress=\u00a77IP address bannato
+bed=\u00a7obed\u00a7r
+bedMissing=\u00a74Your bed is either unset, missing or blocked.
+bedNull=\u00a7mbed\u00a7r
+bedSet=\u00a76Bed spawn set!
bigTreeFailure=\u00a7cCreazione del grande albero fallita. Riprova sull''erba o sul terreno.
bigTreeSuccess= \u00a77Grande albero creato.
blockList=Essentials ha trasmesso i seguenti comandi ad un altro plugin:
+bookAuthorSet=\u00a76Author of the book set to {0}
+bookLocked=\u00a7cThis book is now locked
+bookTitleSet=\u00a76Title of the book set to {0}
broadcast=[\u00a7cBroadcast\u00a7f]\u00a7a {0}
buildAlert=\u00a7cNon hai i permessi per costruire
bukkitFormatChanged=Il formato della versione Bukkit e'' cambiato. Versione non controllata.
@@ -39,6 +47,8 @@ cantSpawnItem=\u00a7cNon sei abilitato a generare l''oggetto {0}
chatTypeAdmin=[A]
chatTypeLocal=[L]
chatTypeSpy=[Spy]
+cleaned=Userfiles Cleaned.
+cleaning=Cleaning userfiles.
commandFailed=Comando {0} fallito:
commandHelpFailedForPlugin=Errore nella guida di: {0}
commandNotLoaded=\u00a7cIl comando {0} non e'' stato caricato correttamente.
@@ -63,6 +73,9 @@ deleteHome=\u00a77La home {0} e'' stata rimossa.
deleteJail=\u00a77La prigione {0} e'' stata rimossa.
deleteWarp=\u00a77Il Warp {0} e'' stato rimosso.
deniedAccessCommand={0} Accesso negato al comando.
+denyBookEdit=\u00a74You cannot unlock this book
+denyChangeAuthor=\u00a74You cannot change the author of this book
+denyChangeTitle=\u00a74You cannot change the title of this book
dependancyDownloaded=[Essentials] Dependancy {0} download effettuato con successo.
dependancyException=[Essentials] Errore durante il download di una dependacy
dependancyNotFound=[Essentials] Una dependancy necessaria non e'' stata trovata, sto effettuando il download..
@@ -73,10 +86,12 @@ destinationNotSet=Destinazione non impostata
disableUnlimited=\u00a77Collocazione illimitata di {0} per {1} disabilitata.
disabled=disabilitato
disabledToSpawnMob=La creazione di questo mob e'' stata disabilitata nel file config.
+distance=\u00a76Distance: {0}
dontMoveMessage=\u00a77Il teletrasporto iniziera'' tra {0}. Attendi.
downloadingGeoIp=Download del database GeoIP... potrebbe richiedere del tempo (nazione: 0.6 MB, citta'': 20MB)
duplicatedUserdata=Dati dell''utente duplicati: {0} e {1}
durability=\u00a77This tool has \u00a7c{0}\u00a77 uses left
+editBookContents=\u00a7eYou may now edit the contents of this book
enableUnlimited=\u00a77Sto inviando una quantita'' illimitata di {0} a {1}.
enabled=abilitato
enchantmentApplied = \u00a77L''incantesimo {0} e'' stato applicato all''oggetto nelle tue mani.
@@ -100,17 +115,23 @@ false=\u00a74false\u00a7f
feed=\u00a77Ora sei sazio.
feedOther=\u00a77{0} e''stato nutrito.
fileRenameError=Rinomina del file {0} fallita
+fireworkColor=\u00a74You must apply a color to the firework to add an effect
+fireworkEffectsCleared=\u00a76Removed all effects from held stack.
+fireworkSyntax=\u00a76Firework parameters:\u00a7c color:<color> [fade:<color>] [shape:<shape>] [effect:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas: \u00a7cred,blue,pink\n\u00a76Shapes:\u00a7c star, ball, large, creeper, burst \u00a76Effects:\u00a7c trail, twinkle
flyMode=\u00a77Modalita'' volo impostata {0} per {1}.
flying=flying
foreverAlone=\u00a7cNon c''e'' nessuno a cui rispondere.
freedMemory=Liberati {0} MB.
+fullStack=\u00a74You already have a full stack
gameMode=\u00a77Modalita''di gioco {0} impostata per {1}.
+gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
gcfree=Memoria libera: {0} MB
gcmax=Memoria massima: {0} MB
gctotal=Memoria allocata: {0} MB
geoIpUrlEmpty=L''url del download di GeoIP e'' vuoto.
geoIpUrlInvalid=L''url del download di GeoIP non e'' valido.
-geoipJoinFormat=Il Player {0} proviene da {1}
+geoipJoinFormat=\u00a76Il Player \u00a7c{0} \u00a76proviene da \u00a7c{1}\u00a76.
+giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
godDisabledFor=God disabilitato per {0}
godEnabledFor=God abilitato per {0}
godMode=\u00a77Modalita'' God {0}.
@@ -130,6 +151,9 @@ helpMatching=\u00a77Corrispondenza comandi "{0}":
helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
helpPages=Pagina \u00a7c{0}\u00a7f di \u00a7c{1}\u00a7f:
helpPlugin=\u00a74{0}\u00a7f: Plugin Help: /help {1}
+holdBook=\u00a74You are not holding a writable book
+holdFirework=\u00a74You must be holding a firework to add effects
+holdPotion=\u00a74You must be holding a potion to apply effects to it
holeInFloor=Buco nel terreno
homeSet=\u00a77Home impostata.
homeSetToBed=\u00a77La tua home e'' ora assegnata a questo letto.
@@ -148,14 +172,20 @@ invRestored=l tuo inventario e'' stato ripristinato.
invSee=Stai guardando l''inventario di {0}.
invSeeHelp=Digita /invsee per ripristinare il tuo inventario.
invalidCharge=\u00a7cIIstruzione non corretta.
+invalidFireworkFormat=\u00a76The option \u00a74{0} \u00a76is not a valid value for \u00a74{1}
invalidHome=La home {0} non esiste
+invalidHomeName=\u00a74Invalid home name
invalidMob=Tipo mob non valido.
+invalidNumber=Invalid Number
+invalidPotion=\u00a74Invalid Potion
+invalidPotionEffect=\u00a74You do not have permissions to apply potion effect \u00a7c{0} \u00a74to this potion
invalidServer=Server non valido!
invalidSignLine=Riga {0} non corretta.
+invalidWarpName=\u00a74Invalid warp name
invalidWorld=\u00a7cMondo incorretto.
inventoryCleared=\u00a77Inventario cancellato.
-inventoryClearedOthers=\u00a77Inventario di \u00a7c{0}\u00a77 cancellato.
inventoryClearedAll=\u00a76Cleared everyone's inventory.
+inventoryClearedOthers=\u00a77Inventario di \u00a7c{0}\u00a77 cancellato.
is=e''
itemCannotBeSold=L''oggetto non puo'' essere venduto.
itemMustBeStacked=L''oggetto deve essere commerciato in pile. 2 quantita'' equivalgono a 2 pile, etc.
@@ -185,9 +215,13 @@ kitError2=\u00a7cQuesto kit non esiste o non e'' definito.
kitError=\u00a7cNon ci sono kit validi.
kitErrorHelp=\u00a7cForse una quantita'' manca in un oggetto della configurazione?
kitGive=\u00a77Kit inviato {0}.
+kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to {1}\u00a7.
kitInvFull=\u00a7cIl tuo inventario e'' pieno, il kit e'' ora per terra.
+kitOnce=\u00a74You can't use that kit again.
+kitReceive=\u00a76Received kit\u00a7c {0}\u00a76.
kitTimed=\u00a7cNon puoi usare il kit per altri {0}.
kits=\u00a77Kits: {0}
+leatherSyntax=\u00a76Leather Color Syntax: color:<red>,<green>,<blue> eg: color:255,0,0.
lightningSmited=\u00a77Sei stato folgorato!
lightningUse=\u00a77{0} e'' stato folgorato!
listAfkTag = \u00a77[AFK]\u00a7f
@@ -203,9 +237,11 @@ mailSent=\u00a77Mail inviata!
markMailAsRead=\u00a7cPer contrassegnare la mail come gia'' letta, digita /mail read
markedAsAway=\u00a77Il tuo stato ora e'' "Non al computer".
markedAsNotAway=\u00a77Bentornato!
+matchingIPAddress=\u00a76The following players previously logged in from that IP address:
maxHomes=Non puoi assegnare piu'' di {0} home.
mayNotJail=\u00a7cNon puoi imprigionare questo player.
me=mi
+messageTruncated=\u00a74Message truncated, to see the full output type:\u00a7c /{0} {1}
minute=minuto
minutes=minuti
missingItems=Non hai {0}x {1}.
@@ -222,7 +258,10 @@ months=mesi
moreThanZero=La quantita'' deve essere maggiore di 0.
moveSpeed=\u00a77Set {0} speed to {1} for {2}.
msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
+multipleCharges=\u00a74You cannot apply more than one charge to this firework.
+multiplePotionEffects=\u00a74You cannot apply more than one effect to this potion.
muteExempt=\u00a7cNon puoi mutare questo player.
+muteNotify=\u00a74{0} \u00a76has muted \u00a74{1}
mutedPlayer=Player {0} mutato.
mutedPlayerFor=Player {0} mutato per {1}.
mutedUserSpeaks={0} ha provato a parlare, ma e'' mutato.
@@ -238,6 +277,7 @@ nickSet=\u00a77Il tuo nickname e'' ora \u00a7c{0}
noAccessCommand=\u00a7cNon hai accesso a questo comando.
noAccessPermission=\u00a7cNon hai i permessi di accesso per {0}.
noBreakBedrock=Non sei abilitato a distruggere la bedrock.
+noChapterMeta=\u00a74You do not have permission to create dynamic books.
noDestroyPermission=\u00a7cNon hai i permessi per distruggere {0}.
noDurability=\u00a7cThis item does not have a durability.
noGodWorldWarning=\u00a7cAttenzione! Modalita'' God disabilitata in questo mondo.
@@ -247,6 +287,9 @@ noHomeSetPlayer=Il Player non ha stabilito una home.
noKitPermission=\u00a7cHai bisogno del permesso \u00a7c{0}\u00a7c per usare questo kit.
noKits=\u00a77Non ci sono ancora kit disponibili
noMail=Non hai ricevuto nessuna mail
+noMatchingPlayers=\u00a76No matching players found.
+noMetaFirework=\u00a74You do not have permission to apply firework meta.
+noMetaPerm=\u00a74You do not have permission to apply \u00a7c{0}\u00a74 meta to this item.
noMotd=\u00a7cNon c''e'' nessun messaggio del giorno.
noNewMail=\u00a77Non hai ricevuto nuove mail.
noPendingRequest=Non hai richieste in sospeso.
@@ -269,9 +312,11 @@ now=adesso
nuke=Un regalino.. radioattivo
numberRequired=Che ne dici di metterci un numero?!
onlyDayNight=/time supporta solo day/night.
+onlyPlayerSkulls=\u00a74You can only set the owner of player skulls (397:3).
onlyPlayers=Solo i players durante il gioco possono usare {0}.
onlySunStorm=/weather supporta solo sun/storm.
orderBalances=Sto ordinando i bilanci di {0} utenti, attendere grazie...
+oversizedTempban=\u00a74You may not ban a player for this period of time.
pTimeCurrent=L''orario di \u00a7e{0}\u00a7f e'' {1}.
pTimeCurrentFixed=L''orario di \u00a7e{0}\u00a7f e'' fissato alle {1}.
pTimeNormal=L''orario di \u00a7e{0}\u00a7f e'' normale e corrisponde a quello del server.
@@ -294,7 +339,13 @@ playerNeverOnServer=\u00a7cIl Player {0} non e'' mai stato su questo server.
playerNotFound=\u00a7cPlayer non trovato.
playerUnmuted=\u00a77Sei stato smutato
pong=Pong!
+posPitch=\u00a76Pitch: {0} (Head angle)
+posX=\u00a76X: {0} (+East <-> -West)
+posY=\u00a76Y: {0} (+Up <-> -Down)
+posYaw=\u00a76Yaw: {0} (Rotation)
+posZ=\u00a76Z: {0} (+South <-> -North)
possibleWorlds=\u00a77I mondi sono numerati da 0 a {0}.
+potions=\u00a76Potions:\u00a7r {0}
powerToolAir=Il comando non puo'' essere collegato all''aria.
powerToolAlreadySet=Il comando \u00a7c{0}\u00a7f e'' gia'' stato assegnato a {1}.
powerToolAttach=Il comando \u00a7c{0}\u00a7f e'' stato assegnato a {1}.
@@ -309,6 +360,16 @@ powerToolsEnabled=Tutti i tuoi attrezzi sono stati abilitati.
protectionOwner=\u00a76[EssentialsProtect] Protetto dal proprietario: {0}
questionFormat=\u00a77[Domanda]\u00a7f {0}
readNextPage=Digita /{0} {1} per la pagina successiva
+recipe=\u00a76Recipe for \u00a7c{0}\u00a76 ({1} of {2})
+recipeBadIndex=There is no recipe by that number
+recipeFurnace=\u00a76Smelt \u00a7c{0}
+recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
+recipeGridItem=\ \u00a7{0}X \u00a76is \u00a7c{1}
+recipeMore=\u00a76Type /{0} \u00a7c{1}\u00a76 <number> to see other recipes for \u00a7c{2}
+recipeNone=No recipes exist for {0}
+recipeNothing=nothing
+recipeShapeless=\u00a76Combine \u00a7c{0}
+recipeWhere=\u00a76Where: {0}
reloadAllPlugins=\u00a77Tutti i plugins ricaricati.
removed=\u00a77Rimosse {0} entitita''.
repair=Hai riparato con successo il tuo: \u00a7e{0}.
@@ -323,7 +384,10 @@ requestDeniedFrom=\u00a77{0} ha rifiutato la tua richiesta di teletrasporto.
requestSent=\u00a77Richiesta inviata a {0}\u00a77.
requestTimedOut=\u00a7cRichiesta di teletrasporto scaduta.
requiredBukkit=* ! * e'' necessaria la versione {0} o superiore di CraftBukkit, scaricabile da http://dl.bukkit.org/downloads/craftbukkit/
+resetBal=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all online players
+resetBalAll=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all players
returnPlayerToJailError=Riscontrato errore nell''invio del player {0} alla prigione: {1}
+runningPlayerMatch=\u00a76Running search for players matching ''\u00a7c{0}\u00a76'' (this could take a little while)
second=secondo
seconds=secondi
seenOffline=Il Player {0} e'' offline da {1}
@@ -360,7 +424,9 @@ teleportRequestTimeoutInfo=\u00a77Questa richiesta scadra'' tra {0} secondi.
teleportTop=\u00a77Teletrasporto in cima.
teleportationCommencing=\u00a77Inizio teletrasporto...
teleportationDisabled=\u00a77Teletrasporto disabilitato.
+teleportationDisabledFor=\u00a76Teleportation disabled for {0}
teleportationEnabled=\u00a77Teletrasporto abilitato.
+teleportationEnabledFor=\u00a76Teleportation enabled for {0}
teleporting=\u00a77Teletrasporto in corso...
teleportingPortal=\u00a77Teletrasporto tramite portale.
tempBanned=Bannato temporaneamente dal server per {0}
@@ -388,8 +454,6 @@ typeTpaccept=\u00a77Per accetare il teletrasprto, digita \u00a7c/tpaccept\u00a77
typeTpdeny=\u00a77Per rifiutare il teletrasporto, digita \u00a7c/tpdeny\u00a77.
typeWorldName=\u00a77Puoi digitare anche il nome di un mondo.
unableToSpawnMob=Impossibile generare il mob.
-unbannedIP=IP address abilitato.
-unbannedPlayer=Player abilitato.
unignorePlayer=Non stai piu'' ignorando il player {0}.
unknownItemId=ID oggetto sconosciuto: {0}
unknownItemInList=Oggetto {0} sconosciuto nella lista {1}.
@@ -400,10 +464,13 @@ unmutedPlayer=Player {0} smutato.
unvanished=\u00a7aYou are once again visible.
unvanishedReload=\u00a7cA reload has forced you to become visible.
upgradingFilesError=Errore durante l''aggiornamento dei file
+uptime=\u00a76Uptime:\u00a7c {0}
+userAFK=\u00a75{0} \u00a75is currently AFK and may not respond
userDoesNotExist=L''utente {0} non esiste.
userIsAway={0} e'' AFK
userIsNotAway={0} non e'' piu'' AFK
userJailed=\u00a77Sei stato messo in prigione
+userUnknown=\u00a74Warning: The user ''\u00a7c{0}\u00a74'' has never joined this server.
userUsedPortal={0} ha usato un portale.
userdataMoveBackError=Errore durante lo spostamento di userdata/{0}.tmp a userdata/{1}
userdataMoveError=Errore durante lo spostamento di userdata/{0} a userdata/{1}.tmp
@@ -414,6 +481,7 @@ versionMismatchAll=Versione incorretta! Aggiornare tutti i jar Essentials alla s
voiceSilenced=\u00a77La tua voce e'' stata silenziata
walking=walking
warpDeleteError=Problema nell''eliminazione del file warp.
+warpList={0}
warpListPermission=\u00a7cNon hai i permessi per consultare la lista warps.
warpNotExist=Questo warp non esiste.
warpOverwrite=\u00a7cNon puoi sovrascrivere il warp.
@@ -449,58 +517,6 @@ year=anno
years=anni
youAreHealed=\u00a77Sei stato curato.
youHaveNewMail=\u00a7cHai {0} messaggi!\u00a7f digita \u00a77/mail read\u00a7f per consultare la tua mail.
-posX=\u00a76X: {0} (+East <-> -West)
-posY=\u00a76Y: {0} (+Up <-> -Down)
-posZ=\u00a76Z: {0} (+South <-> -North)
-posYaw=\u00a76Yaw: {0} (Rotation)
-posPitch=\u00a76Pitch: {0} (Head angle)
-distance=\u00a76Distance: {0}
-giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
-warpList={0}
-uptime=\u00a76Uptime:\u00a7c {0}
-antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
-antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
-gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
-invalidHomeName=\u00a74Invalid home name
-invalidWarpName=\u00a74Invalid warp name
-userUnknown=\u00a74Warning: The user ''\u00a7c{0}\u00a74'' has never joined this server.
-teleportationEnabledFor=\u00a76Teleportation enabled for {0}
-teleportationDisabledFor=\u00a76Teleportation disabled for {0}
-kitOnce=\u00a74You can't use that kit again.
-fullStack=\u00a74You already have a full stack
-oversizedTempban=\u00a74You may not ban a player for this period of time.
-recipeNone=No recipes exist for {0}
-invalidNumber=Invalid Number
-recipeBadIndex=There is no recipe by that number
-recipeNothing=nothing
-recipe=\u00a76Recipe for \u00a7c{0}\u00a76 ({1} of {2})
-recipeFurnace=\u00a76Smelt \u00a7c{0}
-recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
-recipeGridItem=\ \u00a7{0}X \u00a76is \u00a7c{1}
-recipeMore=\u00a76Type /{0} \u00a7c{1}\u00a76 <number> to see other recipes for \u00a7c{2}
-recipeWhere=\u00a76Where: {0}
-recipeShapeless=\u00a76Combine \u00a7c{0}
-editBookContents=\u00a7eYou may now edit the contents of this book
-bookAuthorSet=\u00a76Author of the book set to {0}
-bookTitleSet=\u00a76Title of the book set to {0}
-denyChangeAuthor=\u00a74You cannot change the author of this book
-denyChangeTitle=\u00a74You cannot change the title of this book
-denyBookEdit=\u00a74You cannot unlock this book
-bookLocked=\u00a7cThis book is now locked
-holdBook=\u00a74You are not holding a writable book
-fireworkColor=\u00a74You must apply a color to the firework to add an effect
-holdFirework=\u00a74You must be holding a firework to add effects
-invalidFireworkFormat=\u00a76The option \u00a74{0} \u00a76is not a valid value for \u00a74{1}
-muteNotify=\u00a74{0} \u00a76has muted \u00a74{1}
-resetBal=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all online players
-resetBalAll=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all players
-messageTruncated=\u00a74Message truncated, to see the full output type:\u00a7c /{0} {1}
-userAFK=\u00a75{0} \u00a75is currently AFK and may not respond
-fireworkEffectsCleared=\u00a76Removed all effects from held stack.
-fireworkSyntax=\u00a76Firework parameters:\u00a7c color:<color> [fade:<color>] [shape:<shape>] [effect:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas: \u00a7cred,blue,pink\n\u00a76Shapes:\u00a7c star, ball, large, creeper, burst \u00a76Effects:\u00a7c trail, twinkle
-bed=\u00a7obed\u00a7r
-bedNull=\u00a7mbed\u00a7r
-bedMissing=\u00a74Your bed is either unset, missing or blocked.
-bedSet=\u00a76Bed spawn set!
-kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to {1}\u00a7.
-kitReceive=\u00a76Received kit\u00a7c {0}\u00a76.
+playerUnbanned=\u00a76Player\u00a7c {0} \u00a76unbanned {1}.
+playerUnbanIpAddress=\u00a76Player\u00a7c {0} \u00a76unbanned IP: {1}.
+playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address {1}\u00a76.
diff --git a/Essentials/src/messages_nl.properties b/Essentials/src/messages_nl.properties
index 175e19a81..52d56b928 100644
--- a/Essentials/src/messages_nl.properties
+++ b/Essentials/src/messages_nl.properties
@@ -11,6 +11,8 @@ alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} bij: {3}
alertPlaced=geplaatst:
alertUsed=gebruikt:
antiBuildBreak=\u00a74You are not permitted to break {0} blocks here.
+antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
+antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
antiBuildInteract=\u00a74You are not permitted to interact with {0}.
antiBuildPlace=\u00a74You are not permitted to place {0} here.
antiBuildUse=\u00a74You are not permitted to use {0}.
@@ -24,10 +26,16 @@ balance=\u00a77Saldo: {0}
balanceTop=\u00a77 Top saldo ({0})
banExempt=\u00a77Je kunt deze speler niet verbannen.
banFormat=Banned: {0}
-banIpAddress=\u00a77Verbannen IP-adres.
+bed=\u00a7obed\u00a7r
+bedMissing=\u00a74Your bed is either unset, missing or blocked.
+bedNull=\u00a7mbed\u00a7r
+bedSet=\u00a76Bed spawn set!
bigTreeFailure=\u00a7cMaken van een grote boom is mislukt. Probeer het opnieuw op gras of dirt.
bigTreeSuccess= \u00a77Grote boom gemaakt.
blockList=Essentials heeft de volgende commandos doorgegeven naar een andere plugin:
+bookAuthorSet=\u00a76Author of the book set to {0}
+bookLocked=\u00a7cThis book is now locked
+bookTitleSet=\u00a76Title of the book set to {0}
broadcast=[\u00a7Uitzending\u00a7f]\u00a7a {0}
buildAlert=\u00a7cJe bent niet bevoegd om te bouwen.
bukkitFormatChanged=Bukkit versie formaat veranderd. Versie niet nagekeken.
@@ -39,6 +47,8 @@ cantSpawnItem=\u00a7cJe bent niet bevoegd om {0} te spawnen.
chatTypeAdmin=[A]
chatTypeLocal=[L]
chatTypeSpy=[Spy]
+cleaned=Gebruikersbestanden opgeschoont.
+cleaning=Opschonen van gebruikersbestanden.
commandFailed=Opdracht {0} is mislukt:
commandHelpFailedForPlugin=Fout bij het \u200b\u200bkrijgen van hulp voor: {0}
commandNotLoaded=\u00a7cOpdracht {0} is fout geladen.
@@ -63,6 +73,9 @@ deleteHome=\u00a77Huis {0} is verwijdered.
deleteJail=\u00a77Gevangenis {0} is verwijderd.
deleteWarp=\u00a77Warp {0} is verwijderd.
deniedAccessCommand={0} was de toegang verboden tot het commando.
+denyBookEdit=\u00a74You cannot unlock this book
+denyChangeAuthor=\u00a74You cannot change the author of this book
+denyChangeTitle=\u00a74You cannot change the title of this book
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.
@@ -73,10 +86,12 @@ destinationNotSet=Bestemming niet ingesteld.
disableUnlimited=\u00a77Oneindig plaatsen van {0} uitgeschakeld voor {1}.
disabled=uitgeschakeld
disabledToSpawnMob=Het voortbrengen van mobs is uitgeschakeld in het configuratie bestand.
+distance=\u00a76Distance: {0}
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 gebruikersdata: {0} en {1}.
durability=\u00a77Dit gereedschap kan nog \u00a7c{0}\u00a77 gebruikt worden.
+editBookContents=\u00a7eYou may now edit the contents of this book
enableUnlimited=\u00a77Oneindig aantal {0} aan {1} gegeven.
enabled=ingeschakeld
enchantmentApplied = \u00a77De betovering {0} is toegepast aan het voorwerp in je hand.
@@ -100,17 +115,23 @@ false=\u00a74Onjuist\u00a7f
feed=\u00a77Jouw honger is verzadigd.
feedOther=\u00a7Verzadigd {0}.
fileRenameError=Hernoemen van {0} mislukt
+fireworkColor=\u00a74You must apply a color to the firework to add an effect
+fireworkEffectsCleared=\u00a76Removed all effects from held stack.
+fireworkSyntax=\u00a76Firework parameters:\u00a7c color:<color> [fade:<color>] [shape:<shape>] [effect:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas: \u00a7cred,blue,pink\n\u00a76Shapes:\u00a7c star, ball, large, creeper, burst \u00a76Effects:\u00a7c trail, twinkle
flyMode=\u00a77Zet vlieg modus {0} voor {1}.
flying=vliegen
foreverAlone=\u00a7cJe hebt niemand waarnaar je kan reageren.
freedMemory={0} MB gelost.
+fullStack=\u00a74You already have a full stack
gameMode=\u00a77Zet spel modus {0} voor {1}.
+gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 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}
+geoipJoinFormat=\u00a76Speler \u00a7c{0} \u00a76komt uit \u00a7c{1}\u00a76.
+giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
godDisabledFor=uitgeschakeld voor {0}
godEnabledFor=ingeschakeld voor {0}
godMode=\u00a77God modus {0}.
@@ -130,6 +151,9 @@ helpMatching=\u00a77Commandos overeenkomen met "{0}":
helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
helpPages=Pagina \u00a7c{0}\u00a7f van de \u00a7c{1}\u00a7f:
helpPlugin=\u00a74{0}\u00a7f: Plugin Help: /help {1}
+holdBook=\u00a74You are not holding a writable book
+holdFirework=\u00a74You must be holding a firework to add effects
+holdPotion=\u00a74You must be holding a potion to apply effects to it
holeInFloor=Gat in de vloer
homeSet=\u00a77Home ingesteld.
homeSetToBed=\u00a77Je home is is nu verplaatst naar dit bed.
@@ -148,14 +172,20 @@ invRestored=Je inventaris is hersteld.
invSee=Je kijkt naar de inventory van {0}.
invSeeHelp=Type /invsee om je inventaris te herstellen.
invalidCharge=\u00a7cOngeldig te laden.
+invalidFireworkFormat=\u00a76The option \u00a74{0} \u00a76is not a valid value for \u00a74{1}
invalidHome=Huis {0} Bestaat niet.
+invalidHomeName=\u00a74Invalid home name
invalidMob=Ongeldig mob type.
+invalidNumber=Invalid Number
+invalidPotion=\u00a74Invalid Potion
+invalidPotionEffect=\u00a74You do not have permissions to apply potion effect \u00a7c{0} \u00a74to this potion
invalidServer=Ongeldige server!
invalidSignLine=Regel {0} op het bordje is ongeldig.
+invalidWarpName=\u00a74Invalid warp name
invalidWorld=\u00a7cOngeldige wereld.
inventoryCleared=\u00a7inventaris leeggemaakt.
-inventoryClearedOthers=\u00a7inventaris van \u00a7c{0}\u00a77 leeggemaakt.
inventoryClearedAll=\u00a76Cleared everyone's inventory.
+inventoryClearedOthers=\u00a7inventaris 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.
@@ -185,9 +215,13 @@ kitError2=\u00a7cDie kit bestaat niet of is verkeerde beschreven.
kitError=\u00a7cEr zijn geen geldige kits.
kitErrorHelp=\u00a7cMisschien mist er een hoeveelheid van het item in de configuratie?
kitGive=\u00a77Kit {0} wordt gegeven.
+kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to {1}\u00a7.
kitInvFull=\u00a7cJe inventaris was vol, de kit wordt op de grond geplaatst
+kitOnce=\u00a74You can't use that kit again.
+kitReceive=\u00a76Received kit\u00a7c {0}\u00a76.
kitTimed=\u00a7cJe kan die kit pas weer gebruiken over {0}.
kits=\u00a77Kits: {0}
+leatherSyntax=\u00a76Leather Color Syntax: color:<red>,<green>,<blue> eg: color:255,0,0.
lightningSmited=\u00a77Je bent zojuist verbrand
lightningUse=\u00a77Brand {0}
listAfkTag = \u00a77[AFK]\u00a7f
@@ -203,9 +237,11 @@ 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.
+matchingIPAddress=\u00a76The following players previously logged in from that IP address:
maxHomes=Je kunt niet meer dan {0} huizen zetten.
mayNotJail=\u00a7cJe mag die speler niet in de gevangenis zetten.
me=me
+messageTruncated=\u00a74Message truncated, to see the full output type:\u00a7c /{0} {1}
minute=minuut
minutes=minuten
missingItems=Je hebt geen {0}x {1}.
@@ -222,7 +258,10 @@ months=maanden
moreThanZero=Het aantal moet groter zijn dan 0.
moveSpeed=\u00a77Set {0} speed to {1} for {2}.
msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
+multipleCharges=\u00a74You cannot apply more than one charge to this firework.
+multiplePotionEffects=\u00a74You cannot apply more than one effect to this potion.
muteExempt=\u00a7cJe kan deze speler niet dempen.
+muteNotify=\u00a74{0} \u00a76has muted \u00a74{1}
mutedPlayer=Speler {0} gedempt.
mutedPlayerFor=Speler {0} is gedempt voor {1}.
mutedUserSpeaks={0} probeerde te praten, maar is gedempt.
@@ -238,6 +277,7 @@ nickSet=\u00a77Je bijnaam is nu \u00a7c{0}
noAccessCommand=\u00a7cJe hebt geen toegang tot die opdracht.
noAccessPermission=\u00a7cJe hebt hier geen toegang voor {0}.
noBreakBedrock=Je bent niet toegestaan om grondgesteente te breken.
+noChapterMeta=\u00a74You do not have permission to create dynamic books.
noDestroyPermission=\u00a7cJe hebt geen toegang om dat te vernietigen {0}.
noDurability=\u00a7cDit voorwerp heeft geen durabiliteit.
noGodWorldWarning=\u00a7cWaarschuwing! God modus is uitgeschakeld in deze wereld.
@@ -247,6 +287,9 @@ noHomeSetPlayer=Speler heeft geen huis.
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
+noMatchingPlayers=\u00a76No matching players found.
+noMetaFirework=\u00a74You do not have permission to apply firework meta.
+noMetaPerm=\u00a74You do not have permission to apply \u00a7c{0}\u00a74 meta to this item.
noMotd=\u00a7cEr is geen bericht van de dag.
noNewMail=\u00a77Je hebt geen nieuwe berichten.
noPendingRequest=Je hebt geen aanvragen.
@@ -269,9 +312,11 @@ now=nu
nuke=Moge de dood op hen neerregenen.
numberRequired=Er moet daar een nummer, grapjas.
onlyDayNight=/time ondersteund alleen day/night.
+onlyPlayerSkulls=\u00a74You can only set the owner of player skulls (397:3).
onlyPlayers=Alleen in-game spelers kunnen {0} gebruiken.
onlySunStorm=/weather ondersteunt alleen sun/storm.
orderBalances=Rekeningen bestellen van {0} gebruikers, Watch A.U.B ...
+oversizedTempban=\u00a74You may not ban a player for this period of time.
pTimeCurrent=\u00a7e{0}'s\u00a7f tijd is {1}.
pTimeCurrentFixed=\u00a7e{0}'s\u00a7f tijd is vastgezet op {1}.
pTimeNormal=\u00a7e{0}'s\u00a7f tijd is normaal en komt overeen met de server.
@@ -294,7 +339,13 @@ playerNeverOnServer=\u00a7cSpeler {0} is nooit op deze server geweest.
playerNotFound=\u00a7cSpeler niet gevonden.
playerUnmuted=\u00a77Speler mag weer praten
pong=Pong!
+posPitch=\u00a76Pitch: {0} (Head angle)
+posX=\u00a76X: {0} (+East <-> -West)
+posY=\u00a76Y: {0} (+Up <-> -Down)
+posYaw=\u00a76Yaw: {0} (Rotation)
+posZ=\u00a76Z: {0} (+South <-> -North)
possibleWorlds=\u00a77Mogelijke werelden zijn de nummers 0 tot en met {0}.
+potions=\u00a76Potions:\u00a7r {0}
powerToolAir=Commando kan niet worden bevestigd aan lucht.
powerToolAlreadySet=Commando \u00a7c{0}\u00a7f is al toegewezen aan {1}.
powerToolAttach=\u00a7c{0}\u00a7f commando toegewezen aan {1}.
@@ -309,6 +360,16 @@ powerToolsEnabled=Al jouw powertools zijn ingeschakeld.
protectionOwner=\u00a76[EssentialsProtect] Beschermingeigenaar: {0}
questionFormat=\u00a77[Vraag]\u00a7f {0}
readNextPage=Type /{0} {1} om de volgende pagina te lezen.
+recipe=\u00a76Recipe for \u00a7c{0}\u00a76 ({1} of {2})
+recipeBadIndex=There is no recipe by that number
+recipeFurnace=\u00a76Smelt \u00a7c{0}
+recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
+recipeGridItem=\ \u00a7{0}X \u00a76is \u00a7c{1}
+recipeMore=\u00a76Type /{0} \u00a7c{1}\u00a76 <number> to see other recipes for \u00a7c{2}
+recipeNone=No recipes exist for {0}
+recipeNothing=nothing
+recipeShapeless=\u00a76Combine \u00a7c{0}
+recipeWhere=\u00a76Where: {0}
reloadAllPlugins=\u00a77Alle plugins zijn herladen.
removed=\u00a77{0} entiteiten verwijderd.
repair=Je hebt succesvol je \u00a7e{0} \u00a7fverwijderd.
@@ -323,7 +384,10 @@ requestDeniedFrom=\u00a77{0} denied your teleport request.
requestSent=\u00a77Aanvraag verstuurd naar {0}\u00a77.
requestTimedOut=\u00a7cTeleportatie verzoek is verlopen.
requiredBukkit=* ! * You need atleast build {0} of CraftBukkit, download it from http://dl.bukkit.org/downloads/craftbukkit/
+resetBal=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all online players
+resetBalAll=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all players
returnPlayerToJailError=Error occurred when trying to return player {0} to jail: {1}
+runningPlayerMatch=\u00a76Running search for players matching ''\u00a7c{0}\u00a76'' (this could take a little while)
second=seconde
seconds=seconde
seenOffline=Speler {0} is offline vanaf {1}
@@ -360,7 +424,9 @@ teleportRequestTimeoutInfo=\u00a77Dit verzoekt verloopt over {0} seconden.
teleportTop=\u00a77Bezig met teleporteren naar het hoogste punt.
teleportationCommencing=\u00a77Aan het beginnen met teleporteren...
teleportationDisabled=\u00a77Teleportatie uitgeschakeld.
+teleportationDisabledFor=\u00a76Teleportation disabled for {0}
teleportationEnabled=\u00a77Teleportatie ingeschakeld.
+teleportationEnabledFor=\u00a76Teleportation enabled for {0}
teleporting=\u00a77Bezig met teleporteren...
teleportingPortal=\u00a77Bezig met teleporteren via de portal.
tempBanned=Tijdelijk geband voor {0}
@@ -388,8 +454,6 @@ typeTpaccept=\u00a77Om te accepteren, 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.
@@ -400,10 +464,13 @@ unmutedPlayer=Speler {0} mag weer spreken.
unvanished=\u00a7aYou are once again visible.
unvanishedReload=\u00a7cEen herlading heeft je geforceerd om zichtbaar te worden.
upgradingFilesError=Fout tijdens het upgraden van de bestanden
+uptime=\u00a76Uptime:\u00a7c {0}
+userAFK=\u00a75{0} \u00a75is currently AFK and may not respond
userDoesNotExist=Speler {0} bestaat niet.
userIsAway={0} is nu afwezig.
userIsNotAway={0} is niet meer afwezig.
userJailed=\u00a77Je bent in de gevangenis gezet.
+userUnknown=\u00a74Warning: The user ''\u00a7c{0}\u00a74'' has never joined this server.
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
@@ -414,6 +481,7 @@ versionMismatchAll=Verkeerde versie! Update alle Essentials jars naar dezelfde v
voiceSilenced=\u00a77Je kan niet meer praten
walking=walking
warpDeleteError=Fout bij het verwijderen van het warp bestand.
+warpList={0}
warpListPermission=\u00a7cJe hebt geen toegang om die warp te maken.
warpNotExist=Die warp bestaat niet.
warpOverwrite=\u00a7cJe kunt deze warp niet overschrijven.
@@ -449,58 +517,6 @@ year=jaar
years=jaren
youAreHealed=\u00a77Je bent genezen.
youHaveNewMail=\u00a7cJe hebt {0} berichten!\u00a7f Type \u00a77/mail read\u00a7f om je berichten te bekijken.
-posX=\u00a76X: {0} (+East <-> -West)
-posY=\u00a76Y: {0} (+Up <-> -Down)
-posZ=\u00a76Z: {0} (+South <-> -North)
-posYaw=\u00a76Yaw: {0} (Rotation)
-posPitch=\u00a76Pitch: {0} (Head angle)
-distance=\u00a76Distance: {0}
-giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
-warpList={0}
-uptime=\u00a76Uptime:\u00a7c {0}
-antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
-antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
-gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
-invalidHomeName=\u00a74Invalid home name
-invalidWarpName=\u00a74Invalid warp name
-userUnknown=\u00a74Warning: The user ''\u00a7c{0}\u00a74'' has never joined this server.
-teleportationEnabledFor=\u00a76Teleportation enabled for {0}
-teleportationDisabledFor=\u00a76Teleportation disabled for {0}
-kitOnce=\u00a74You can't use that kit again.
-fullStack=\u00a74You already have a full stack
-oversizedTempban=\u00a74You may not ban a player for this period of time.
-recipeNone=No recipes exist for {0}
-invalidNumber=Invalid Number
-recipeBadIndex=There is no recipe by that number
-recipeNothing=nothing
-recipe=\u00a76Recipe for \u00a7c{0}\u00a76 ({1} of {2})
-recipeFurnace=\u00a76Smelt \u00a7c{0}
-recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
-recipeGridItem=\ \u00a7{0}X \u00a76is \u00a7c{1}
-recipeMore=\u00a76Type /{0} \u00a7c{1}\u00a76 <number> to see other recipes for \u00a7c{2}
-recipeWhere=\u00a76Where: {0}
-recipeShapeless=\u00a76Combine \u00a7c{0}
-editBookContents=\u00a7eYou may now edit the contents of this book
-bookAuthorSet=\u00a76Author of the book set to {0}
-bookTitleSet=\u00a76Title of the book set to {0}
-denyChangeAuthor=\u00a74You cannot change the author of this book
-denyChangeTitle=\u00a74You cannot change the title of this book
-denyBookEdit=\u00a74You cannot unlock this book
-bookLocked=\u00a7cThis book is now locked
-holdBook=\u00a74You are not holding a writable book
-fireworkColor=\u00a74You must apply a color to the firework to add an effect
-holdFirework=\u00a74You must be holding a firework to add effects
-invalidFireworkFormat=\u00a76The option \u00a74{0} \u00a76is not a valid value for \u00a74{1}
-muteNotify=\u00a74{0} \u00a76has muted \u00a74{1}
-resetBal=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all online players
-resetBalAll=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all players
-messageTruncated=\u00a74Message truncated, to see the full output type:\u00a7c /{0} {1}
-userAFK=\u00a75{0} \u00a75is currently AFK and may not respond
-fireworkEffectsCleared=\u00a76Removed all effects from held stack.
-fireworkSyntax=\u00a76Firework parameters:\u00a7c color:<color> [fade:<color>] [shape:<shape>] [effect:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas: \u00a7cred,blue,pink\n\u00a76Shapes:\u00a7c star, ball, large, creeper, burst \u00a76Effects:\u00a7c trail, twinkle
-bed=\u00a7obed\u00a7r
-bedNull=\u00a7mbed\u00a7r
-bedMissing=\u00a74Your bed is either unset, missing or blocked.
-bedSet=\u00a76Bed spawn set!
-kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to {1}\u00a7.
-kitReceive=\u00a76Received kit\u00a7c {0}\u00a76.
+playerUnbanned=\u00a76Player\u00a7c {0} \u00a76unbanned {1}.
+playerUnbanIpAddress=\u00a76Player\u00a7c {0} \u00a76unbanned IP: {1}.
+playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address {1}\u00a76.
diff --git a/Essentials/src/messages_pl.properties b/Essentials/src/messages_pl.properties
index 6d0f6bf13..c12294df4 100644
--- a/Essentials/src/messages_pl.properties
+++ b/Essentials/src/messages_pl.properties
@@ -1,506 +1,522 @@
#version: TeamCity
# Single quotes have to be doubled: ''
# Translations start here
-# by: losdamianos, edited by Rutr
-action=* {0} {1}
+# by: losdamianos, edited by Rutr & skmedix
+action=\u00a75* {0} \u00a75{1}
addedToAccount=\u00a7a{0} zostalo dodane do twojego konta.
addedToOthersAccount=\u00a7a{0} dodane do konta {1}\u00a7. Nowy stan konta: {2}.
-adventure = adventure
-alertBroke=broke:
-alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} at: {3}
+adventure=Przygoda
+alertBroke=zniszczyl:
+alertFormat=\u00a73[{0}] \u00a7f {1} \u00a77 {2} at: {3}
alertPlaced=postawil:
alertUsed=uzyl:
-antiBuildBreak=\u00a74You are not permitted to break {0} blocks here.
-antiBuildInteract=\u00a74You are not permitted to interact with {0}.
-antiBuildPlace=\u00a74You are not permitted to place {0} here.
-antiBuildUse=\u00a74You are not permitted to use {0}.
+antiBuildBreak=\u00a74Nie masz praw by zniszczyc blok {0} tutaj.
+antiBuildCraft=\u00a74Nie masz praw by stworzyc\u00a7c {0}\u00a74.
+antiBuildDrop=\u00a74Nie masz praw by wyrzucic\u00a7c {0}\u00a74.
+antiBuildInteract=\u00a74Nie masz praw by odzialywac z {0}.
+antiBuildPlace=\u00a74Nie masz praw by postawic {0} tutaj.
+antiBuildUse=\u00a74Nie masz praw by uzyc {0}.
autoAfkKickReason=Zostales wyrzucony z serwera za nie ruszanie sie przez wiecej niz {0} minut.
backAfterDeath=\u00a77Uzyj komendy /back aby powrocic na miejsce swojej smierci.
backUsageMsg=\u00a77Transportowanie do poprzedniej lokacji.
-backupDisabled=Zewnetrzny skrypt backupu nie zostal skonfigurowany.
-backupFinished=Backup zakonczony.
-backupStarted=Backup rozpoczety.
-balance=\u00a77Stan konta: {0}
+backupDisabled=\u00a74Zewnetrzny skrypt backupu nie zostal skonfigurowany.
+backupFinished=\u00a77Backup zakonczony.
+backupStarted=\u00a77Backup rozpoczety.
+balance=\u00a7aStan konta:\u00a7c {0}
balanceTop=\u00a77Najbogatsi gracze ({0})
-banExempt=\u00a7cNie mozesz zbanowac tego gracza.
-banFormat=Banned: {0}
-banIpAddress=\u00a77Zbanowano adress IP
-bigTreeFailure=\u00a7cNie mozna tutaj postawic duzego drzewa. Sprobuj ponownie na ziemi lub trawie.
-bigTreeSuccess= \u00a77Utworzono duze drzewo.
-blockList=Essentials przekazuje nastepujace polecenie do innej wtyczki:
-broadcast=[\u00a7cOgloszenie\u00a7f]\u00a7a {0}
-buildAlert=\u00a7cNie mozesz tu budowac
+banExempt=\u00a74Nie mozesz zbanowac tego gracza.
+banFormat=\u00a74Zbanowany: {0}
+bed=\u00a7olozko\u00a7r
+bedMissing=\u00a74Twoje lozko nie jest ustawione, lub jest zablokowane.
+bedNull=\u00a7mlozko\u00a7r
+bedSet=\u00a77Spawn w lozku ustawiony!
+bigTreeFailure=\u00a74Nie mozna tutaj postawic duzego drzewa. Sprobuj ponownie na ziemi lub trawie.
+bigTreeSuccess= \u00a77Stworzono duze drzewo.
+blockList=\u00a77Essentials przekazuje nastepujace polecenie do innej wtyczki:
+bookAuthorSet=\u00a77Ustawiono autora ksiazki na {0} .
+bookLocked=\u00a7cKsiazka jest teraz zablokowana.
+bookTitleSet=\u00a77Ustawiono tytul ksiazki na {0} .
+broadcast=\u00a7r\u00a77[\u00a74Ogloszenie\u00a77]\u00a7a {0}
+buildAlert=\u00a74Nie mozesz tu budowac
bukkitFormatChanged=Format wersji Bukkita jest zmieniony. Wersja nie jest sprawdzana.
-burnMsg=\u00a77Podpaliles {0} na {1} sekund.
+burnMsg=\u00a77Podpaliles\u00a7c {0} \u00a77na \u00a7c{1} sekund\u00a77.
canTalkAgain=\u00a77Znow mozesz mowic.
cantFindGeoIpDB=Nie mozna znalezc bazy danych GeoIP!
cantReadGeoIpDB=Odczytywanie bazy danych GeoIP zawiodlo!
-cantSpawnItem=\u00a7cNie mozesz stworzyc przedmiotu {0}.
+cantSpawnItem=\u00a74Nie mozesz stworzyc przedmiotu\u00a7c {0}\u00a74.
chatTypeAdmin=[A]
chatTypeLocal=[L]
chatTypeSpy=[Szpieg]
+cleaned=Pliki gracza wyczyszczono.
+cleaning=Czyszczene plikow gracza.
commandFailed=Komenda {0} zawiodla.
commandHelpFailedForPlugin=Blad podczas uzyskiwania pomocy dla: {0}
-commandNotLoaded=\u00a7cKomenda {0} nie jest zaladowana!
-compassBearing=\u00a77Bearing: {0} ({1} stopni).
+commandNotLoaded=\u00a74Komenda {0} nie jest zaladowana!
+compassBearing=\u00a77Lozko: {0} ({1} stopni).
configFileMoveError=Nie udalo sie przeniesc config.yml do lokalizacji backupa.
configFileRenameError=Nie udalo sie zmienic nazwy tymczasowego pliku na config.yml
-connectedPlayers=Obecni gracze:
+connectedPlayers=\u00a77Obecni gracze:\u00a7r
connectionFailed=Blad podczas otwierania polaczenia.
-cooldownWithMessage=\u00a7cCooldown: {0}
-corruptNodeInConfig=\u00a74Notice: Twoj plik konfiguracyjny ma uszkodzony wpis: {0}
-couldNotFindTemplate=Nie mozna znajsc szablonu: {0}
-creatingConfigFromTemplate=tworzenie konfiguracji z szablonu: {0}
+cooldownWithMessage=\u00a74Cooldown: {0}
+corruptNodeInConfig=\u00a74Uwaga: Twoj plik konfiguracyjny ma uszkodzony wpis: {0}
+couldNotFindTemplate=\u00a74Nie mozna znalezc szablonu: {0}
+creatingConfigFromTemplate=Tworzenie konfiguracji z szablonu: {0}
creatingEmptyConfig=Stworzono pusty config: {0}
creative=Kreatywny
currency={0}{1}
-currentWorld=Biezacy swiat: {0}
+currentWorld=\u00a77Biezacy swiat:\u00a7c {0}
day=dzien
days=dnie
defaultBanReason=Admin ma zawsze racje!
deleteFileError=Nie mozna usunac pliku: {0}
-deleteHome=\u00a77Posterunek {0} zostal usuniety
-deleteJail=\u00a77Wiezienie {0} zostalo usuniete
-deleteWarp=\u00a77Warp {0} zostal usuniety
-deniedAccessCommand={0} nie ma dostepu do tego polecenia
+deleteHome=\u00a77Dom\u00a7c {0} \u00a77zostal usuniety.
+deleteJail=\u00a77Wiezienie\u00a7c {0} \u00a77zostalo usuniete.
+deleteWarp=\u00a77Warp\u00a7c {0} \u00a77zostal usuniety.
+deniedAccessCommand=\u00a7c{0} \u00a74nie ma dostepu do tego polecenia
+denyBookEdit=\u00a74Nie mozesz odblokowac tej ksiazki.
+denyChangeAuthor=\u00a74Nie mozesz zmienic autora tej ksiazki.
+denyChangeTitle=\u00a74Nie mozesz zmienic tytulu tej ksiazki.
dependancyDownloaded=[Essentials] Zaleznosci {0} pobrane prawidlowo.
dependancyException=[Essentials] Wystapil blad w trakcie pobierania zaleznosci.
dependancyNotFound=[Essentials] Wymagana zaleznosc nie zostala znaleziona, pobieranie.
depth=\u00a77Jestes na poziomie morza.
-depthAboveSea=\u00a77Jestes {0} blok(ow) nad poziomem morza.
-depthBelowSea=\u00a77Jestes {0} blok(ow) pod poziomem morza.
+depthAboveSea=\u00a77Jestes\u00a7c {0} \u00a77blok(ow) nad poziomem morza.
+depthBelowSea=\u00a77Jestes\u00a7c {0} \u00a77blok(ow) pod poziomem morza.
destinationNotSet=Cel nieokreslony.
-disableUnlimited=\u00a77Wylaczone nieograniczone tworzenia {0} dla {1}.
+disableUnlimited=\u00a77Wylaczone nieograniczone tworzenia\u00a7c {0} \u00a77dla {1}.
disabled=wylaczone
-disabledToSpawnMob=Tworzenie tego moba zostalo wylaczone w pliku config.
-dontMoveMessage=\u00a77Teleportacja nastapi za {0}. Prosze sie nie ruszac.
+disabledToSpawnMob=\u00a74Tworzenie tego moba zostalo wylaczone w pliku config.
+distance=\u00a77Odleglosc: {0}
+dontMoveMessage=\u00a77Teleportacja nastapi za\u00a7c {0}\u00a77. Prosze sie nie ruszac.
downloadingGeoIp=Pobieranie bazy danych GeoIP... To moze zajac chwile (wioska: 0.6 MB, miasto: 20MB)
duplicatedUserdata=Kopiowanie danych uzytkownika: {0} i {1}
durability=\u00a77This tool has \u00a7c{0}\u00a77 uses left
-enableUnlimited=\u00a77Przyznano nielimitowane zasoby {0} dla {1}.
+editBookContents=\u00a7eNie mozesz teraz edytowac tej ksiazki.
+enableUnlimited=\u00a77Przyznano nielimitowane zasoby\u00a7c {0} \u00a77dla {1}.
enabled=wlaczone
-enchantmentApplied = \u00a77Ulepszenie {0} zostalo przyznane przedmiotowi w twoim reku.
-enchantmentNotFound = \u00a7cUlepszenie nie odnalezione
-enchantmentPerm = \u00a7cNie masz zezwolenia na {0}.
-enchantmentRemoved = \u00a77Ulepszenie {0} zostalo usuniete z przedmiotu w twoim reku..
-enchantments = \u00a77Ulepszenia: {0}
+enchantmentApplied= \u00a77Ulepszenie\u00a7c {0} \u00a77zostalo przyznane przedmiotowi w twoim reku.
+enchantmentNotFound= \u00a74Ulepszenie nie odnalezione
+enchantmentPerm= \u00a74Nie masz zezwolenia na\u00a7c {0}\u00a7c4.
+enchantmentRemoved= \u00a77Ulepszenie\u00a7c {0} \u00a77zostalo usuniete z przedmiotu w twoim reku..
+enchantments= \u00a77Ulepszenia:\u00a7r {0}
errorCallingCommand=Blad wywolywania komendy /{0}
-errorWithMessage=\u00a7cBlad: {0}
-essentialsHelp1=Plik jest uszkodzony i Essentials nie moze go otworzyc. Essentials jest teraz wylaczone. Jesli nie mozesz samemu naprawic pliku, idz do adresu http://tiny.cc/EssentialsChat
-essentialsHelp2=Plik jest uszkodzony i Essentials nie moze go otworzyc. Essentials jest teraz wylaczone. Jesli nie mozesz samemu naprawic pliku, wpisz /essentialshelp w grze lub idz do adresu http://tiny.cc/EssentialsChat
-essentialsReload=\u00a77Essentials przeladowalo {0}.
+errorWithMessage=\u00a7cBlad:\u00a74 {0}
+essentialsHelp1=Plik jest uszkodzony i Essentials nie moze go otworzyc. Essentials jest teraz wylaczone. Jesli nie mozesz samemu naprawic pliku, idz na http://tiny.cc/EssentialsChat
+essentialsHelp2=Plik jest uszkodzony i Essentials nie moze go otworzyc. Essentials jest teraz wylaczone. Jesli nie mozesz samemu naprawic pliku, wpisz /essentialshelp w grze lub wejdz na http://tiny.cc/EssentialsChat
+essentialsReload=\u00a77Essentials przeladowalo\u00a7c {0}.
exp=\u00a7c{0} \u00a77ma\u00a7c {1} \u00a77doswiadczenia (poziom\u00a7c {2}\u00a77), potrzebuje\u00a7c {3} \u00a77wiecej doswiadczenia do nastepnego poziomu.
expSet=\u00a7c{0} \u00a77teraz ma\u00a7c {1} \u00a77doswiadczenia.
extinguish=\u00a77Zostales ugaszony.
-extinguishOthers=\u00a77Ugasiles {0}.
+extinguishOthers=\u00a77Ugasiles {0}\u00a77.
failedToCloseConfig=Blad podczas zamykania configu {0}
failedToCreateConfig=Blad podczas tworzenia configu {0}
failedToWriteConfig=Blad podczas pisania configu {0}
-false=\u00a74false\u00a7f
+false=\u00a74false\u00a7r
feed=\u00a77Twoj glod zostal zaspokojony.
feedOther=\u00a77Nakarmiono {0}.
fileRenameError=Blad podczas zmiany nazwy pliku \u0093{0}\u0094.
-flyMode=\u00a77Latanie {0} dla {1}.
-flying=flying
-foreverAlone=\u00a7cNie masz komu odpisac.
+fireworkColor=\u00a74Musisz dodac kolor fajerwerki by dodac do niej efekt.
+fireworkEffectsCleared=\u00a77Usunieto wszystkie efekty trzymanych w reku fajerwerek.
+fireworkSyntax=\u00a77Parametry Fajerwerki:\u00a74 color:<kolor> [fade:<kolor>] [shape:<ksztalt>] [effect:<efekt>]\n\u00a77By uzyc wielu kolorow/efektow, oddziel wartosci przecinkami: \u00a74red,blue,pink\n\u00a77Ksztalty:\u00a74 star, ball, large, creeper, burst \u00a77Efekty:\u00a74 trail, twinkle.
+flyMode=\u00a77Ustawiono latanie\u00a7c {0} \u00a77dla {1}\u00a77.
+flying=latanie
+foreverAlone=\u00a74Nie masz komu odpisac.
freedMemory=Zwolniono {0} MB.
-gameMode=\u00a77Ustawiono tryb gry {0} dla {1}.
-gcfree=Wolna pamiec: {0} MB
-gcmax=Maksymalna pamiec: {0} MB
+fullStack=\u00a74Juz masz pelny stack.
+gameMode=\u00a77Ustawiono tryb gry\u00a7c {0} \u00a77dla {1}\u00a77.
+gcWorld=\u00a77{0} "\u00a7c{1}\u00a77": \u00a7c{2}\u00a77 chunks, \u00a7c{3}\u00a77 entities
+gcfree=\u00a77Wolna pamiec:\u00a7c {0} MB
+gcmax=\u00a77Maksymalna pamiec:\u00a7c {0} MB
gctotal=Alokowana pamiec: {0} MB
geoIpUrlEmpty=Url pobierania GeoIP jest puste.
geoIpUrlInvalid=Url pobierania GeoIP jest nieprawidlowe.
-geoipJoinFormat=Gracz {0} przybyl z {1}
-godDisabledFor=Godmode wylaczony dla {0}.
-godEnabledFor=Godmode wlaczony dla {0}.
-godMode=\u00a77Godmode {0}.
-hatArmor=\u00a7cError, you cannot use this item as a hat!
-hatEmpty=\u00a7cYou are not wearing a hat.
-hatFail=\u00a7cMusisz cos trzymac w dloni.
-hatPlaced=\u00a7eCiesz sie nowym kapeluszem!
-hatRemoved=\u00a7eYour hat has been removed.
+geoipJoinFormat=\u00a76Gracz \u00a7c{0} \u00a76przybyl z \u00a7c{1}\u00a76.
+giveSpawn=\u00a77Dales\u00a7c {0} \u00a77of\u00a7c {1} to\u00a7c {2}\u00a77.
+godDisabledFor=\u00a74wylaczony\u00a77 dla\u00a7c {0}.
+godEnabledFor=\u00a7awlaczony\u00a77 dla\u00a7c {0}.
+godMode=\u00a77Godmode\u00a7c {0}\u00a77.
+hatArmor=\u00a74Blad, nie mozesz uzyc tego jako kapelusz.
+hatEmpty=\u00a74Nie nosisz aktualnie kapelusza.
+hatFail=\u00a74Musisz cos trzymac w dloni.
+hatPlaced=\u00a77Ciesz sie nowym kapeluszem!
+hatRemoved=\u00a77Twoj kapelusz zostal usuniety.
haveBeenReleased=\u00a77Zostales wypuszczony.
-heal=\u00a77Uleczony
-healDead=\u00a74You cannot heal someone who is dead!
+heal=\u00a77Uleczony.
+healDead=\u00a74Nie mozesz uleczyc kogos kto nie zyje!
healOther=\u00a77Uleczono {0}.
-helpConsole=Aby uzyskac pomoc z konsoli, wpisz \u0093????.
+helpConsole=Aby uzyskac pomoc z konsoli, wpisz ?.
helpFrom=\u00a77Komendy od {0}:
-helpLine=\u00a76/{0}\u00a7f: {1}
-helpMatching=\u00a77Komendy odpowiadajace "{0}":
-helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
-helpPages=Strona \u00a7c{0}\u00a7f z \u00a7c{1}\u00a7f:
-helpPlugin=\u00a74{0}\u00a7f: Plugin Help: /help {1}
-holeInFloor=Kosmos
-homeSet=\u00a77Dom ustawiono
+helpLine=\u00a77/{0}\u00a7r: {1}
+helpMatching=\u00a77Komendy odpowiadajace "\u00a7c{0}\u00a77":
+helpOp=\u00a74[HelpOp]\u00a7r \u00a77{0}:\u00a7r {1}
+helpPages=\u00a77Strona \u00a7c{0}\u00a77 z \u00a7c{1}\u00a77:
+helpPlugin=\u00a74{0}\u00a7r: Plugin Help: /help {1}
+holdBook=\u00a74Nie trzymasz napisanej ksiazki.
+holdFirework=\u00a74Musisz trzymac fajerwerke by dodac efekt.
+holdPotion=\u00a74You must be holding a potion to apply effects to it
+holeInFloor=\u00a74Kosmos
+homeSet=\u00a77Dom ustawiono.
homeSetToBed=\u00a77Twoj dom znajduje sie teraz w tym lozku.
-homes=Domy: {0}
+homes=\u00a77Domy:\u00a7r {0}
hour=godzina
hours=godziny
-ignorePlayer=Od tej chwili ignorujesz gracza {0}.
+ignorePlayer=\u00a77Od tej chwili ignorujesz gracza \u00a7c{0}\u00a77.
illegalDate=Nie prawidlowy format daty.
infoChapter=Wybierz rozdzial:
-infoChapterPages=Rozdzial {0}, strona \u00a7c{1}\u00a7f z \u00a7c{2}\u00a7f:
-infoFileDoesNotExist=Plik \u0093info.txt\u0094 nie istnieje. Tworzenie tego pliku.
-infoPages=\u00a7e ---- \u00a76{2} \u00a7e--\u00a76 Strona \u00a74{0}\u00a76/\u00a74{1} \u00a7e----
+infoChapterPages=\u00a77Rozdzial {0}, strona \u00a7c{1}\u00a77 z \u00a7c{2}\u00a77:
+infoFileDoesNotExist=Plik info.txt nie istnieje. Tworzenie tego pliku.
+infoPages=\u00a7e ---- \u00a77{2} \u00a7e--\u00a77 Strona \u00a7c{0}\u00a77/\u00a7c{1} \u00a7e----
infoUnknownChapter=Nieznany rozdzial.
-invBigger=Ekwipunek innego gracza jest wiekszy niz Twoj.
-invRestored=Twoj ekwipunek zostal przywrocony.
-invSee=Widzisz ekwipunek {0}.
-invSeeHelp=Wpisz /invsee aby przywrocic swoj ekwipunek.
-invalidCharge=\u00a7cInvalid charge.
-invalidHome=Dom {0} nie istnieje.
-invalidMob=Niepoprawny typ moba..
+invBigger=\u00a74Ekwipunek innego gracza jest wiekszy niz Twoj.
+invRestored=\u00a77Twoj ekwipunek zostal przywrocony.
+invSee=\u00a77Widzisz ekwipunek\u00a7c {0}\u00a77.
+invSeeHelp=\u00a77Wpisz /invsee aby przywrocic swoj ekwipunek.
+invalidCharge=\u00a74Invalid charge.
+invalidFireworkFormat=\u00a77Opcja \u00a74{0} \u00a77nie jest poprawna wartoscia dla \u00a74{1}\u00a77.
+invalidHome=\u00a74Dom\u00a7c {0} \u00a74nie istnieje.
+invalidHomeName=\u00a74Niepoprawna nazwa domu.
+invalidMob=Niepoprawny typ moba.
+invalidNumber=Niepoprawny Numer
+invalidPotion=\u00a74Invalid Potion
+invalidPotionEffect=\u00a74You do not have permissions to apply potion effect \u00a7c{0} \u00a74to this potion
invalidServer=Niepoprawny serwer!
-invalidSignLine=Linia {0} na znaku jest bledna.
-invalidWorld=\u00a7cNieprawidlowy swiat.
+invalidSignLine=\u00a74Linia\u00a7c {0} \u00a74na znaku jest bledna.
+invalidWarpName=\u00a74Niepoprawna nazwa warpa.
+invalidWorld=\u00a74Nieprawidlowy swiat.
inventoryCleared=\u00a77Ekwipunek oprozniony.
-inventoryClearedOthers=\u00a77Ekwipunek \u00a7c{0}\u00a77 oprozniony.
-inventoryClearedAll=\u00a76Cleared everyone's inventory.
+inventoryClearedAll=\u00a77Wszystkim wyczyszczono ekwipunek.
+inventoryClearedOthers=\u00a77Ekwipunek \u00a7c{0}\u00a77 oprozniony.
is=jest
-itemCannotBeSold=Nie mozesz sprzedac tego przedmiotu do serwera.
-itemMustBeStacked=Przedmiotem handluje sie w stackach. Wielkosc 2s to dwa stacki itd.
-itemNames=Item short names: {0}
-itemNotEnough1=\u00a7cMasz za malo tego przedmiotu, aby go sprzedac.
+itemCannotBeSold=\u00a7rNie mozesz sprzedac tego przedmiotu serwerowi.
+itemMustBeStacked=\u00a74Przedmiotem handluje sie w stackach. Wielkosc 2s to dwa stacki itd.
+itemNames=\u00a77Krotka nazwa:\u00a7r {0}
+itemNotEnough1=\u00a74Masz za malo tego przedmiotu, aby go sprzedac.
itemNotEnough2=\u00a77Jesli chcesz sprzedac wszystkie przedmioty tego typu, wpisz /sell nazwaprzedmiotu
itemNotEnough3=\u00a77/sell nazwaprzedmiotu -1 sprzeda cala ilosc przedmiotu poza 1 sztuka itd.
itemSellAir=Serio probujesz sprzedac powietrze? Miej w reku przedmiot..
-itemSold=\u00a77Sprzedamo za \u00a7c{0} \u00a77({1} {2} po {3} kazdy)
-itemSoldConsole={0} Sprzedano {1} za \u00a77{2} \u00a77({3} sztuki po {4} kazda)
-itemSpawn=\u00a77Otrzymywanie {0} {1}
-itemType=Item: {0} - {1}
+itemSold=\u00a7aSprzedamo za \u00a7c{0} \u00a7a({1} {2} po {3} kazdy)
+itemSoldConsole=\u00a7a{0} \u00a7aSprzedano {1} za \u00a7a{2} \u00a7a({3} sztuki po {4} kazda)
+itemSpawn=\u00a77Otrzymywanio\u00a7c {0} \u00a77z\u00a7c {1}
+itemType=\u00a77Przedmiot:\u00a7c {0} \u00a77-\u00a7c {1}
itemsCsvNotLoaded=Nie mozna wczytac items.csv.
-jailAlreadyIncarcerated=\u00a7cTen gracz jest juz w wiezieniu \u0093{0}\u0094.
-jailMessage=\u00a7cZa kazde przewinienie czeka kara.
-jailNotExist=Nie ma takiego wiezienia..
-jailReleased=\u00a77Gracz \u00a7e{0}\u00a77 wypuszczony z wiezienia.
+jailAlreadyIncarcerated=\u00a74Ten gracz jest juz w wiezieniu \u00a7c{0} \u00a74.
+jailMessage=\u00a74Za kazde przewinienie czeka kara.
+jailNotExist=\u00a74Nie ma takiego wiezienia..
+jailReleased=\u00a77Gracz \u00a7c{0}\u00a77 wypuszczony z wiezienia.
jailReleasedPlayerNotify=\u00a77Zostales zwolniony!
-jailSentenceExtended=Czas pobyty w wiezieniu zwiekszony do: {0}
-jailSet=\u00a77Zostalo stworzone wiezienie \u0093{0}\u0094.
-jumpError=To moglo by ci cos zrobic.
-kickDefault=Zostales wyrzucony z serwera.
-kickExempt=\u00a7cNie mozesz wyrzucic tej osoby.
-kickedAll=\u00a7cWyrzucanie wszystki graczy z serwera
-kill=\u00a77Zabito {0}.
-kitError2=\u00a7cTen zestaw nie istnieje lub zostal zle zdefininowany.
-kitError=\u00a7cNie ma prawidlowych zestawow.
-kitErrorHelp=\u00a7cByc moze przedmiotowi brakuje ilosci w konfiguracji?
-kitGive=\u00a77Przydzielanie zestawu {0}.
-kitInvFull=\u00a7cTwoj ekwipuek jest pelen, wyrzucanie zestawu na podloge.
-kitTimed=\u00a7cNie mozesz wziasc tego zestawu przez kolejne {0}.
-kits=\u00a77Zestawy: {0}
+jailSentenceExtended=\u00a77Czas pobyty w wiezieniu zwiekszony do: {0}
+jailSet=\u00a77Zostalo stworzone wiezienie \u00a7c{0}\u00a77.
+jumpError=\u00a74To moglo by ci cos zrobic.
+kickDefault=Zostales wyrzucony z serwera.
+kickExempt=\u00a74Nie mozesz wyrzucic tej osoby.
+kickedAll=\u00a74Wyrzucanie wszystki graczy z serwera
+kill=\u00a7c{0} \u00a77zostal zabity.
+kitError2=\u00a74Ten zestaw nie istnieje lub zostal zle zdefininowany.
+kitError=\u00a74Nie ma prawidlowych zestawow.
+kitErrorHelp=\u00a74Byc moze przedmiotowi brakuje ilosci w konfiguracji?
+kitGive=\u00a77Przydzielanie zestaw\u00a7c {0}\u00a77.
+kitGiveTo=\u00a74{1} \u00a77otrzymal zestaw\u00a7c {0}\u00a77.
+kitInvFull=\u00a74Twoj ekwipuek jest pelen, zestaw zostal wyrzucony na podloge.
+kitOnce=\u00a74Nie mozesz uzyc zestawu ponownie.
+kitReceive=\u00a77Otrzymales zestaw\u00a7c {0}\u00a77.
+kitTimed=\u00a74Nie mozesz wziasc tego zestawu przez kolejne\u00a7c {0}\u00a74.
+kits=\u00a77Zestawy:\u00a7r {0}
+leatherSyntax=\u00a76Leather Color Syntax: color:<red>,<green>,<blue> eg: color:255,0,0.
lightningSmited=\u00a77Zostales uderzony piorunem.
-lightningUse=\u00a77Uderzanie piorunem {0}.
-listAfkTag = \u00a77[AFK]\u00a7f
-listAmount = \u00a79Na serwerze jest \u00a7c{0}\u00a79 graczy z maksimum \u00a7c{1}\u00a79 online.
-listAmountHidden = \u00a79There are \u00a7c{0}\u00a77/{1}\u00a79 out of maximum \u00a7c{2}\u00a79 players online.
-listGroupTag={0}\u00a7f:
-listHiddenTag = \u00a77[UKRYTY]\u00a7f
-loadWarpError=Blad przy wczytywaniu Warpu {0}
-localFormat=Lokalny: <{0}> {1}
-mailClear=\u00a7cAby oczyscic skrzynke, wpisz /mail clear
+lightningUse=\u00a77Uderzono piorunem\u00a7c {0}\u00a77.
+listAfkTag= \u00a77[AFK]\u00a7f
+listAmount= \u00a77Na serwerze jest \u00a7c{0}\u00a77 graczy z maksimum \u00a7c{1}\u00a77 online.
+listAmountHidden= \u00a77There are \u00a7c{0}\u00a77/{1}\u00a77 out of maximum \u00a7c{2}\u00a77 players online.
+listGroupTag={0}\u00a7r:
+listHiddenTag= \u00a77[UKRYTY]\u00a7r
+loadWarpError=\u00a74Blad przy wczytywaniu warpu {0}.
+localFormat=[L]<{0}> {1}
+mailClear=\u00a77Aby oczyscic skrzynke, wpisz\u00a7c /mail clear
mailCleared=\u00a77Skrzynka oprozniona!!
mailSent=\u00a77Wiadomosc wyslana!
-markMailAsRead=\u00a7cAby oczyscic skrzynke, wpisz /mail clear
+markMailAsRead=\u00a77Aby oczyscic skrzynke, wpisz\u00a7c /mail clear
markedAsAway=\u00a77Zostales oznaczony jako nieobecny.
markedAsNotAway=\u00a77Juz nie jestes nieobecny.
-maxHomes=Nie mozesz ustawic wiecej niz {0} domow.
-mayNotJail=\u00a7cNie mozesz wtracic do wiezienia tej osoby.
+matchingIPAddress=\u00a77Gracz wczesniej zalogowany z tego adresu IP:
+maxHomes=\u00a74Nie mozesz ustawic wiecej niz\u00a7c {0} \u00a74domow.
+mayNotJail=\u00a74Nie mozesz wtracic do wiezienia tej osoby.
me=ja
+messageTruncated=\u00a74Wiadomosc skrocona: aby zobaczyc cala wpisz\u00a7c /{0} {1}
minute=minuta
minutes=minuty
-missingItems=Nie masz {0}x{1}.
+missingItems=\u00a74Nie masz {0}x {1}.
missingPrefixSuffix=Brakuje prefixu lub suffixu dla {0}
-mobSpawnError=Blad podczas zmiany spawnera.
+mobSpawnError=\u00a74Blad podczas zmiany spawnera.
mobSpawnLimit=Ilosc mobow ograniczona do limitu serwera.
-mobSpawnTarget=Blok musi byc spawnerem.
+mobSpawnTarget=\u00a74Blok musi byc spawnerem.
mobsAvailable=\u00a77Moby: {0}
moneyRecievedFrom=\u00a7a{0} otrzymane od {1}
moneySentTo=\u00a7a{0} zostalo wyslane do {1}
-moneyTaken={0} zostalo zabrane z Twoich funduszy..
+moneyTaken=\u00a7a{0} zostalo zabrane z Twoich funduszy..
month=miesiac
months=miesiecy
-moreThanZero=Ilosc musi byc wieksza od 0.
-moveSpeed=\u00a77Set {0} speed to {1} for {2}.
-msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
-muteExempt=\u00a7cNie mozesz wyciszyc tego gracza..
-mutedPlayer=Gracz {0} wyciszony.
-mutedPlayerFor=Gracz {0} wyciszony na {1}.
+moreThanZero=\u00a74Ilosc musi byc wieksza niz 0.
+moveSpeed=\u00a77Ustawiono {0} szybkosc {1} dla {2}.
+msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7r{2}
+multipleCharges=\u00a74You cannot apply more than one charge to this firework.
+multiplePotionEffects=\u00a74You cannot apply more than one effect to this potion.
+muteExempt=\u00a74Nie mozesz wyciszyc tego gracza..
+muteNotify=\u00a74{0} \u00a77zostal wyciszony \u00a74{1}
+mutedPlayer=\u00a77Gracz {0} \u00a77zostal wyciszony.
+mutedPlayerFor=\u00a77Gracz {0} \u00a77zostal wyciszony na {1}.
mutedUserSpeaks={0} probowal sie odezwac, ale jest wyciszony.
-nearbyPlayers=Gracze w poblizu: {0}
-negativeBalanceError=Gracz nie moze miec ujemnego stanu konta.
-nickChanged=Nick zmieniony.
-nickDisplayName=\u00a77Musisz wlaczyc \u0093change-displayname\u0094 w configu Essential.
-nickInUse=\u00a7cTen pseudonim jest juz w uzyciu.
-nickNamesAlpha=\u00a7cPseudonimy musza byc alfanumeryczne.
+nearbyPlayers=\u00a77Gracze w poblizu:\u00a7r {0}
+negativeBalanceError=\u00a74Gracz nie moze miec ujemnego stanu konta.
+nickChanged=\u00a7date6Nick zostal zmieniony.
+nickDisplayName=\u00a74Musisz wlaczyc change-displayname w configu Essential.
+nickInUse=\u00a74Ten pseudonim jest juz w uzyciu.
+nickNamesAlpha=\u00a74Pseudonimy musza byc alfanumeryczne.
nickNoMore=\u00a77Nie masz juz pseudonimu.
nickOthersPermission=\u00a7cNie masz uprawnienia do zmiany pseudonimu innym.
nickSet=\u00a77Twoj pseudonim od teraz to \u00a7c{0}
-noAccessCommand=\u00a7cNie masz dostepu do tej komendy.
-noAccessPermission=\u00a7cNie masz uprawnien do dostepu do {0}.
-noBreakBedrock=Nie masz uprawnien do niszczenia bedrocka.
-noDestroyPermission=\u00a7cNie masz uprawnien do niszczenia {0}.
-noDurability=\u00a7cThis item does not have a durability.
-noGodWorldWarning=\u00a7cUwaga! Godmode wylaczony w tym swiecie!.
-noHelpFound=\u00a7cNie ma odpowiadajacych komend.
-noHomeSet=Nie masz ustawionego domu.
-noHomeSetPlayer=Gracz nie ma ustawionego domu.
-noKitPermission=\u00a7cMusisz posiadac uprawnienia \u00a7c{0}\u00a7c aby uzywac tego zestawu.
+noAccessCommand=\u00a74Nie masz dostepu do tej komendy.
+noAccessPermission=\u00a74Nie masz uprawnien do dostepu do {0}.
+noBreakBedrock=\u00a74Nie masz uprawnien do niszczenia bedrocka.
+noChapterMeta=\u00a74You do not have permission to create dynamic books.
+noDestroyPermission=\u00a74Nie masz uprawnien do niszczenia {0}.
+noDurability=\u00a74Ten przedmiot nie jest wytrzymaly.
+noGodWorldWarning=\u00a74Uwaga! Godmode jest wylaczony w tym swiecie!.
+noHelpFound=\u00a74Nie ma odpowiadajacych komend.
+noHomeSet=\u00a74Nie masz ustawionego domu.
+noHomeSetPlayer=\u00a77Gracz nie ma ustawionego domu.
+noKitPermission=\u00a74Musisz posiadac uprawnienia \u00a7c{0}\u00a74 aby uzywac tego zestawu.
noKits=\u00a77Nie ma jeszcze dostepnych zestawow.
-noMail=Nie masz zadnych wiadomosci.
-noMotd=\u00a7cNie ma wiadomosci dnia..
+noMail=\u00a77Nie masz zadnych wiadomosci.
+noMatchingPlayers=\u00a77Nie znaleziono pasujacych graczy.
+noMetaFirework=\u00a74You do not have permission to apply firework meta.
+noMetaPerm=\u00a74You do not have permission to apply \u00a7c{0}\u00a74 meta to this item.
+noMotd=\u00a77Nie ma wiadomosci dnia..
noNewMail=\u00a77Nie masz zadnych nowych wiadomosci.
-noPendingRequest=Nie masz oczekuj\u00c3\u00a1cego z\u00c3\u00a1dania.
-noPerm=\u00a7cNie masz uprawnien \u00a7f{0}.
-noPermToSpawnMob=\u00a7cNie masz uprawnien do tworzenia tego moba..
-noPlacePermission=\u00a7cNie masz uprawnien do stawiania bloku kolo tego znaku..
-noPowerTools=Nie masz przypisanego zadnego power tool.
-noRules=\u00a7cNie ustalono jeszcze zadnych zasad.
-noWarpsDefined=Nie ma zadnych warpow.
+noPendingRequest=\u00a74Nie masz oczekujacej prosby.
+noPerm=\u00a74Nie masz uprawnien do \u00a7c{0}\u00a74.
+noPermToSpawnMob=\u00a74Nie masz uprawnien do tworzenia tego moba..
+noPlacePermission=\u00a74Nie masz uprawnien do stawiania bloku kolo tego znaku..
+noPowerTools=\u00a77Nie masz przypisanego zadnego power tool.
+noRules=\u00a74Nie ustalono jeszcze zadnych zasad.
+noWarpsDefined=\u00a77Nie ma zadnych warpow.
none=zaden
-notAllowedToQuestion=\u00a7cNie mozesz zadac tego pytania.
-notAllowedToShout=\u00a7cNie mozesz krzyczec..
-notEnoughExperience=Nie masz wystarczajaco duzo doswiadczenia.
-notEnoughMoney=Nie masz tyle pieniedzy.
-notFlying=not flying
-notRecommendedBukkit= * ! * Wersja Bukkita nie jest rekomendowana wersja dla Essentials.
+notAllowedToQuestion=\u00a74Nie mozesz zadac tego pytania.
+notAllowedToShout=\u00a74Nie mozesz krzyczec..
+notEnoughExperience=\u00a74Nie masz wystarczajaco duzo doswiadczenia.
+notEnoughMoney=\u00a74Nie masz tyle pieniedzy.
+notFlying=nie lata
+notRecommendedBukkit= \u00a74* ! * Wersja Bukkita nie jest rekomendowana dla Essentials.
notSupportedYet=Jeszcze nie wspierane.
-nothingInHand = \u00a7cNie masz nic w reku..
+nothingInHand=\u00a74Nie masz nic w reku..
now=teraz
-nuke=Niech smierc pochlonie caly swiat!
+nuke=\u00a75Niech smierc pochlonie caly swiat!
numberRequired=Tutaj powinna byc liczba, gluptasie.
onlyDayNight=/time obsluguje tylko day/night.
-onlyPlayers=Tylko gracze w grze moga uzywac {0}.
-onlySunStorm=/weather obsluguje tylko sun/storm.
+onlyPlayerSkulls=\u00a74You can only set the owner of player skulls (397:3).
+onlyPlayers=\u00a74Tylko gracze w grze moga uzywac {0}.
+onlySunStorm=\u00a74/weather obsluguje tylko sun/storm.
orderBalances=Ordering balances of {0} users, please wait ...
+oversizedTempban=\u00a74Nie mozesz teraz zbanowac tego gracza.
pTimeCurrent=Czas \u00a7e{0} u00a7f to {1}.
-pTimeCurrentFixed=Czas \u00a7e{0}\u00a7f przywrocony do {1}.
-pTimeNormal=Czas \u00a7e{0}'s\u00a7f jest normalny i odpowiada serwerowemu.
-pTimeOthersPermission=\u00a7cNie masz uprawnien do zmiany czasu innym.
-pTimePlayers=Ci gracze beda miec wlasny czas:
-pTimeReset=Czas gracza zostal zresetowany dla \u00a7e{0}
-pTimeSet=Czas gracza ustawiony na \u00a73{0}\u00a7f dla \u00a7e{1}
-pTimeSetFixed=Czas gracza przywrocony do \u00a73{0}\u00a7f dla \u00a7e{1}
-parseError=Blad skladniowy {0} w linii {1}.
-pendingTeleportCancelled=\u00a7cOczekujace zapytanie teleportacji odrzucone.
-permissionsError=Brakuje Permissions/GroupManager; prefixy/suffixy czatu zostana wylaczone.
-playerBanned=\u00a7c{0} zbanowal {1} za {2}.
-playerInJail=\u00a7cGracz jest juz w wiezieniu \u0093{0}\u0094.
-playerJailed=\u00a77Gracz {0} wtracony do wiezienia.
-playerJailedFor= \u00a77Gracz {0} wtracony do wiezienia na {1}.
-playerKicked=\u00a7c{0} wyrzucil {1} za {2}.
+pTimeCurrentFixed=\u00a77Czas \u00a7c{0}\u00a77 przywrocony do\u00a7c {1}\u00a77.
+pTimeNormal=\u00a77Czas \u00a7c{0}'s\u00a77 jest normalny i odpowiada serwerowemu.
+pTimeOthersPermission=\u00a74Nie masz uprawnien do zmiany czasu innym.
+pTimePlayers=\u00a77Ci gracze beda miec wlasny czas:\u00a7r
+pTimeReset=\u00a77Czas gracza zostal zresetowany dla \u00a7c{0}
+pTimeSet=\u00a77Czas gracza ustawiony na \u00a7c{0}\u00a77 dla: \u00a7c{1}.
+pTimeSetFixed=\u00a77Czas gracza przywrocony do \u00a7c{0}\u00a77 dla \u00a7c{1}.
+parseError=\u00a74Blad skladniowy\u00a7c {0} \u00a77w linii {1}.
+pendingTeleportCancelled=\u00a74Oczekujace zapytanie teleportacji odrzucone.
+permissionsError=Brakuje Permissions/GroupManager; prefixy/suffixy czatu zostana wylaczone.
+playerBanned=\u00a77Gracz\u00a7c {0} \u00a77zbanowal {1} \u00a77za {2}.
+playerInJail=\u00a74Gracz jest juz w wiezieniu\u00a7c {0}\u00a77.
+playerJailed=\u00a77Gracz\u00a7c {0} \u00a77zostal wtracony do wiezienia.
+playerJailedFor= \u00a77Gracz\u00a7c {0} \u00a77zostal wtracony do wiezienia na {1}.
+playerKicked=\u00a77Gracz\u00a7c {0} \u00a77wyrzucil {1} za {2}.
playerMuted=\u00a77Zostales wyciszony.
-playerMutedFor=\u00a77Zostales wyciszony na {0}.
-playerNeverOnServer=\u00a7cGracz {0} nigdy nie byl na tym serwerze.
-playerNotFound=\u00a7cNie odnaleziono gracza.
-playerUnmuted=\u00a77Zostales przywrocony do glosu.
+playerMutedFor=\u00a77Zostales wyciszony na\u00a7c {0}.
+playerNeverOnServer=\u00a74Gracz\u00a7c {0} \u00a74nigdy nie byl na tym serwerze.
+playerNotFound=\u00a74Nie odnaleziono gracza.
+playerUnmuted=\u00a77Twoj glos zostal przywrocony.
pong=Pong!
+posPitch=\u00a77Pitch: {0} (Head angle)
+posX=\u00a77X: {0} (+Wschod <-> -Zachod)
+posY=\u00a77Y: {0} (+Gora <-> -Dol)
+posYaw=\u00a77Wysokosc: {0} (Rotacja)
+posZ=\u00a77Z: {0} (+Poludnie <-> -Polnoc)
possibleWorlds=\u00a77Mozliwe swiaty maja numery od 0 do {0}.
-powerToolAir=Nie zartuj, chcesz przypisac polecenie do powietrza?
-powerToolAlreadySet=Polecenie \u00a7c{0}\u00a7f jest juz przypisane do {1}.
-powerToolAttach=\u00a7c{0}\u00a7f polecenie przypisane do {1}.
-powerToolClearAll=Wszystkie przypisane polecenia zostaly usuniete!
-powerToolList={1} zawiera nastepujace polecenia: \u00a7c{0}\u00a7f.
-powerToolListEmpty={0} nie ma przypisanych polecen.
-powerToolNoSuchCommandAssigned=Polecenie \u00a7c{0}\u00a7f nie moze byc przypisane do {1}.
-powerToolRemove=Polecenie \u00a7c{0}\u00a7f usuniete z {1}.
-powerToolRemoveAll=Wszystkie polecenia zostaly usuniete z {0}.
-powerToolsDisabled=Wszystkie twoje podpiecia zostaly zdezaktywowane.
-powerToolsEnabled=Wszystkie twoje podpiecia zostaly aktywowane.
-protectionOwner=\u00a76[EssentialsProtect] Wlasciciel zabezpieczen: {0}
-questionFormat=\u00a77[Question]\u00a7f {0}
-readNextPage=Wpisz /{0} {1} aby przeczytac nastepna strone
+potions=\u00a76Potions:\u00a7r {0}
+powerToolAir=\u00a74Nie zartuj, chcesz przypisac polecenie do powietrza?
+powerToolAlreadySet=\u00a74Polecenie \u00a7c{0}\u00a74 jest juz przypisane do {1}.
+powerToolAttach=\u00a7c{0}\u00a77 polecenie przypisane do {1}.
+powerToolClearAll=\u00a77Wszystkie przypisane polecenia zostaly usuniete!
+powerToolList=\u00a77Przedmiot \u00a7c{1} \u00a77zawiera nastepujace polecenia: \u00a7c{0}\u00a77.
+powerToolListEmpty=\u00a74Przedmiot \u00a7c{0} \u00a74nie ma przypisanych polecen.
+powerToolNoSuchCommandAssigned=\u00a74Polecenie \u00a7c{0}\u00a74 nie moze byc przypisane do {1}.
+powerToolRemove=\u00a77Polecenie \u00a7c{0}\u00a77 usuniete z {1}.
+powerToolRemoveAll=\u00a77Wszystkie polecenia zostaly usuniete z {0}.
+powerToolsDisabled=\u00a77Wszystkie twoje podpiecia zostaly zdezaktywowane.
+powerToolsEnabled=\u00a77Wszystkie twoje podpiecia zostaly aktywowane.
+protectionOwner=\u00a77[EssentialsProtect] Wlasciciel zabezpieczen:\u00a7r {0}
+questionFormat=\u00a72[Pytanie]\u00a7r {0}
+readNextPage=\u00a77Wpisz\u00a7c /{0} {1} \u00a77aby przeczytac nastepna strone
+recipe=\u00a77Receptura dla \u00a7c{0}\u00a77 ({1} z {2})
+recipeBadIndex=Nie ma receptury dla tego numeru.
+recipeFurnace=\u00a77Przetop \u00a7c{0}
+recipeGrid=\u00a7{0}X \u00a77| \u00a7{1}X \u00a77| \u00a7{2}X
+recipeGridItem=\ \u00a7{0}X \u00a77is \u00a7c{1}
+recipeMore=\u00a77Wpisz /{0} \u00a7c{1}\u00a77 <numer> by zobaczyc receptury dla \u00a7c{2} \u00a77.
+recipeNone=Nie ma receptur dla {0} .
+recipeNothing=nic
+recipeShapeless=\u00a77Kombinacja \u00a7c{0}
+recipeWhere=\u00a77Gdzie: {0}
reloadAllPlugins=\u00a77Przeladowano wszystkie wtyczki
-removed=\u00a77Usunieto {0} byty.
-repair=Udalo sie naprawic twoj: \u00a7e{0}.
-repairAlreadyFixed=\u00a77Ten przedmiot nie potrzebuje naprawy
-repairEnchanted=\u00a77Nie masz zezwolenia do naprawiania ulepszonych przedmiotow.
-repairInvalidType=\u00a7cTen przedmiot nie moze byc naprawiony.
-repairNone=Zaden przedmiot nie wymagal naprawy.
-requestAccepted=\u00a77Zadanie teleportacji - zaakceptowano.
-requestAcceptedFrom=\u00a77{0} zaakceptowal Twoje z\u00c3\u00a1danie teleportacji.
-requestDenied=\u00a77Zadanie teleportacji - odrzucone.
-requestDeniedFrom=\u00a77{0} odrzucil Twoje z\u00c3\u00a1danie teleportacji.
-requestSent=\u00a77zZ\u00c3\u00a1danie wyslania do {0}\u00a77.
-requestTimedOut=\u00a7cZ\u00c3\u00a1danie teleportacji - przedawnione.
+removed=\u00a77Usunieto\u00a7c {0} \u00a77podmitow.
+repair=\u00a77Udalo sie naprawic twoj: \u00a7c{0}.
+repairAlreadyFixed=\u00a74Ten przedmiot nie potrzebuje naprawy
+repairEnchanted=\u00a74Nie masz zezwolenia do naprawiania ulepszonych przedmiotow.
+repairInvalidType=\u00a74Ten przedmiot nie moze byc naprawiony.
+repairNone=\u00a74Zaden przedmiot nie wymagal naprawy.
+requestAccepted=\u00a77Prosba o teleportacje - zaakceptowano.
+requestAcceptedFrom=\u00a7c{0} \u00a77zaakceptowal Twoja prosbe o teleportacje.
+requestDenied=\u00a77Prosba o teleportacje - odrzucona.
+requestDeniedFrom=\u00a7c{0} \u00a77odrzucil Twoja prosbe o teleportacje.
+requestSent=\u00a77Twoja prosba o teleportacje zostala wyslana do\u00a7c {0}\u00a77.
+requestTimedOut=\u00a77Prosba o teleportacje - przedawniona.
requiredBukkit= * ! * Potrzebujesz najnowszego {0} CraftBukkit-a, pobierz go z http://dl.bukkit.org/downloads/craftbukkit/
-returnPlayerToJailError=Wystapil blad podczas powrotu gracza {0} do wiezienia: {1}
+resetBal=\u00a77Fundusz zostal zresetowany \u00a7a{0} \u00a77 wszystkim graczom online.
+resetBalAll=\u00a77Fundusz zostal zresetowany \u00a7a{0} \u00a77 wszystkim graczom.
+returnPlayerToJailError=\u00a74Wystapil blad podczas powrotu gracza\u00a7c {0} \u00a74do wiezienia: {1} .
+runningPlayerMatch=\u00a77Wyszukiwanie pasujacych graczy ''\u00a7c{0}\u00a77'' (to moze chwile potrwac)
second=sekunda
seconds=sekund
-seenOffline=Gracz {0} jest offline od {1}
-seenOnline=Gracz {0} jest online od {1}
+seenOffline=\u00a77Gracz\u00a7c {0} \u00a77jest \u00a74offline\u00a77 od {1}
+seenOnline=\u00a77Gracz\u00a7c {0} \u00a77jest \u00a7aonline\u00a77 od {1}
serverFull=Serwer jest pelen graczy, sprobuj pozniej.
-serverTotal=Podsumowanie serwera: {0}
-setSpawner=Ustawiono spawn na {0}.
-sheepMalformedColor=Niewlasciwa barwa.
-shoutFormat=\u00a77[Shout]\u00a7f {0}
+serverTotal=\u00a77Podsumowanie serwera:\u00a7c {0}
+setSpawner=\u00a77Ustawiono spawner na\u00a7c {0}.
+sheepMalformedColor=\u00a74Niewlasciwa barwa.
+shoutFormat=\u00a77[Shout]\u00a7r {0}
signFormatFail=\u00a74[{0}]
signFormatSuccess=\u00a71[{0}]
signFormatTemplate=[{0}]
signProtectInvalidLocation=\u00a74Nie masz zezwolenia do tworzenia tutaj znakow.
-similarWarpExist=Warp o tej nazwie juz istnieje.
-slimeMalformedSize=Niewlasciwy rozmiar.
-soloMob=Ten mob lubi byc sam.
-spawnSet=\u00a77Ustawiono punkt spawnu dla grupy {0}.
+similarWarpExist=\u00a74Warp o tej nazwie juz istnieje.
+slimeMalformedSize=\u00a74Niewlasciwy rozmiar.
+soloMob=\u00a74Ten mob lubi byc sam.
+spawnSet=\u00a77Ustawiono punkt spawnu dla grupy\u00a7c {0}\u00a77.
spawned=stworzono
-sudoExempt=Nie mozesz podniesc uprawnien tego uzytkownika.
-sudoRun=Probuje {0} uruchomic: /{1} {2}
+sudoExempt=\u00a74Nie mozesz podniesc uprawnien tego uzytkownika.
+sudoRun=\u00a77Probuje\u00a7c {0} \u00a77uruchomic:\u00a7r /{1} {2}
suicideMessage=\u00a77Zegnaj okrutny swiecie.
suicideSuccess= \u00a77{0} dokonal zamachu na swoje zycie
-survival=survival
-takenFromAccount=\u00a7c{0} zostalo pobrane z konta.
-takenFromOthersAccount=\u00a7c{0} zostalo pobrane z {1}\u00a7c konta. Nowy stan konta: {2}
-teleportAAll=\u00a77Zadanie teleportacji - wyslano do wszystkich graczy.
-teleportAll=\u00a77Teleportowanie wszystkich graczy.
-teleportAtoB=\u00a77{0}\u00a77 przeteleportowal Ciebie do {1}\u00a77.
-teleportDisabled={0} ma zdezaktywowana teleportacje.
-teleportHereRequest=\u00a7c{0}\u00a7c ma zadanie przeteleportowac cie do nich.
-teleportNewPlayerError=Blad przy teleportowniu nowego gracza.
-teleportRequest=\u00a7c{0}\u00a7c zazadal teleportacji do Ciebie.
-teleportRequestTimeoutInfo=\u00a77 Zadanie teleportacji przedawni sie za {0} sekund.
+survival=przetrwanie
+takenFromAccount=\u00a7a{0} zostalo pobrane z konta.
+takenFromOthersAccount=\u00a7a{0} zostalo pobrane z {1}\u00a7a konta. Nowy stan konta: {2}
+teleportAAll=\u00a77Prosbe o teleportacje - wyslano do wszystkich graczy.
+teleportAll=\u00a77Teleportowanio wszystkich graczy.
+teleportAtoB=\u00a7c{0}\u00a77 przeteleportowal Ciebie do {1}\u00a77.
+teleportDisabled=\u00a7c{0} \u00a74ma zdezaktywowana teleportacje.
+teleportHereRequest=\u00a7c{0}\u00a77 ma zadanie przeteleportowac cie do nich.
+teleportNewPlayerError=\u00a74Blad przy teleportowniu nowego gracza.
+teleportRequest=\u00a7c{0}\u00a77 prosbe o teleportacje do Ciebie.
+teleportRequestTimeoutInfo=\u00a77 Prosba o teleportacje przedawni sie za\u00a7c {0} \u00a77sekund.
teleportTop=\u00a77Teleportacja na wierzch.
teleportationCommencing=\u00a77Teleport rozgrzewa sie...
teleportationDisabled=\u00a77Teleportacja - zdezaktywowana.
+teleportationDisabledFor=\u00a77Teleportacja zablokowana dla {0}
teleportationEnabled=\u00a77Teleportacja - aktywowana.
+teleportationEnabledFor=\u00a77Teleportacja odblokowana dla {0}
teleporting=\u00a77Teleportacja...
teleportingPortal=\u00a77Teleportacja przez portal.
tempBanned=Tymczasowo zbanowany na serwerze przez {0}.
-tempbanExempt=\u00a77Nie mozesz tymczasowo zbanowac tego gracza.
-thunder= {0} przywowlal burze.
-thunderDuration={0} przywolal burze na {1} sekund.
-timeBeforeHeal=Czas przed nastepnym uzdrowieniem: {0}.
-timeBeforeTeleport=Czas przed nastepnym teleportem:{0}.
-timeFormat=\u00a73{0}\u00a7f or \u00a73{1}\u00a7f or \u00a73{2}\u00a7f
+tempbanExempt=\u00a74Nie mozesz tymczasowo zbanowac tego gracza.
+thunder= \u00a7c{0} \u00a77przywowlal burze.
+thunderDuration=\u00a7c{0} \u00a77przywolal burze na\u00a7c {1} \u00a77sekund.
+timeBeforeHeal=\u00a77Czas przed nastepnym uzdrowieniem:\u00a7c {0}\u00a77.
+timeBeforeTeleport=\u00a77Czas przed nastepnym teleportem:\u00a7c {0}.
+timeFormat=\u00a7c{0}\u00a77 lub \u00a7c{1}\u00a77 lub \u00a7c{2}\u00a77.
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=Czas ustawiono we wszystkich swiatach.
-timeSetPermission=\u00a7cNie masz uprawnien do ustawiania czasu.
-timeWorldCurrent=Obecny czas {0} to \u00a73{1}.
-timeWorldSet=Czas ustawiono {0} w: \u00a7c{1}.
-totalWorthAll=\u00a7aSold all items and blocks for a total worth of \u00a7c{1}\u00a7a.
-totalWorthBlocks=\u00a7aSold all blocks for a total worth of \u00a7c{1}\u00a7a.
-tps=Current TPS = {0}
-tradeCompleted=\u00a77Handel zakonczono.
-tradeSignEmpty=Tabliczka handlowa nie jest dostepna dla Ciebie.
-tradeSignEmptyOwner=Nie ma nic do pobrania z tej tabliczki.
-treeFailure=\u00a7cUtworzenie drzewa nie powiodlo sie, sprobuj na trawie lub ziemi.
-treeSpawned=\u00a77Drzewo utworzono.
-true=\u00a72true\u00a7f
+timeSet=\u00a77Czas ustawiono we wszystkich swiatach.
+timeSetPermission=\u00a74Nie masz uprawnien do ustawiania czasu.
+timeWorldCurrent=\u00a77Obecny czas\u00a7c {0} \u00a77to \u00a7c{1}\u00a77.
+timeWorldSet=\u00a77Czas ustawiono\u00a7c {0} \u00a77w: \u00a7c{1}\u00a77.
+totalWorthAll=\u00a7aSprzedano wszystkie bloki i przedmioty za kwote {1}.
+totalWorthBlocks=\u00a7aSprzedano wszystkie bloki za kwote {1}.
+tps=\u00a77Aktualne TPS = {0}
+tradeCompleted=\u00a7aHandel zakonczono.
+tradeSignEmpty=\u00a74Tabliczka handlowa nie jest dostepna dla Ciebie.
+tradeSignEmptyOwner=\u00a74Nie ma nic do pobrania z tej tabliczki.
+treeFailure=\u00a74Utworzenie drzewa nie powiodlo sie, sprobuj na trawie lub ziemi.
+treeSpawned=\u00a77Stworzono drzewo.
+true=\u00a72true\u00a7r
typeTpaccept=\u00a77Aby zaakceptowac teleport, wpisz \u00a7c/tpaccept\u00a77.
typeTpdeny=\u00a77Aby odmowic teleportacji, wpisz \u00a7c/tpdeny\u00a77.
typeWorldName=\u00a77Mozesz rowniez wpisac nazwe danego swiata.
-unableToSpawnMob=Nie udalo sie stworzyc potwora.
-unbannedIP=Odbanowana gracza o danym adresie IP.
-unbannedPlayer=Odbanowano gracza.
-unignorePlayer=Nie ignorujesz juz gracza {0}.
-unknownItemId=Nieznane id przedmiotu: {0}.
-unknownItemInList=Nieznany przedmiot {0} w liscie {1} .
-unknownItemName=Nieznana nazwa przedmiotu: {0}.
-unlimitedItemPermission=\u00a7cBrak uprawnien dla nielimitowanego przedmiotu {0}.
-unlimitedItems=Nielimitowane przedmioty:
-unmutedPlayer=Gracz {0} moze znowu mowic.
-unvanished=\u00a7aZn\u00c3\u00b3w jestes widoczny.
-unvanishedReload=\u00a7cReload spowodowal ze cie widac.
-upgradingFilesError=Wystapil blad podczas aktualizowaniu plik\u00c3\u00b3w.
-userDoesNotExist=Uzytkownik {0} nie istnieje w bazie danych.
-userIsAway={0} jest teraz AFK.
-userIsNotAway={0} nie jest juz AFK.
+unableToSpawnMob=\u00a74Nie udalo sie stworzyc potwora.
+unignorePlayer=\u00a77Nie ignorujesz juz gracza \u00a7c{0}\u00a77.
+unknownItemId=\u00a74Nieznane id przedmiotu:\u00a7r {0}\u00a74.
+unknownItemInList=\u00a74Nieznany przedmiot {0} w liscie {1} .
+unknownItemName=\u00a74Nieznana nazwa przedmiotu: {0}.
+unlimitedItemPermission=\u00a74Brak uprawnien dla nielimitowanego przedmiotu {0}.
+unlimitedItems=\u00a77Nielimitowane przedmioty:\u00a7r
+unmutedPlayer=\u00a77Gracz\u00a7c {0} \u00a77moze znowu mowic.
+unvanished=\u00a77Znow jestes widoczny.
+unvanishedReload=\u00a74Przeladowanie spowodowalo ze cie widac.
+upgradingFilesError=Wystapil blad podczas aktualizowaniu plikow.
+uptime=\u00a77Uptime:\u00a7c {0}
+userAFK=\u00a74{0} \u00a7\u00a77jest teraz AFK i nie reaguje.
+userDoesNotExist=\u00a74Uzytkownik\u00a7c {0} \u00a74nie istnieje w bazie danych.
+userIsAway=\u00a75{0} \u00a75jest teraz AFK.
+userIsNotAway=\u00a7c{0} \u00a75nie jest juz AFK.
userJailed=\u00a77Zostales zamkniety w wiezieniu.
+userUnknown=\u00a74Ostrzezenie: Gracz '\u00a7c{0}\u00a74' nigdy nie byl na tym serwerze.
userUsedPortal={0} uzyl istniejacego portalu wyjscia.
userdataMoveBackError=Nie udalo sie przeniesc userdata/{0}.tmp do userdata/{1}
userdataMoveError=Nie udalo sie przeniesc userdata/{0} do userdata/{1}.tmp
usingTempFolderForTesting=Uzywam tymczasowego folderu dla testu:
-vanished=\u00a7aJuz jestes niewidoczny.
-versionMismatch=Niepoprawna wersja! Prosze zaktualizowac {0} do tej samej wersji co inne pliki.
-versionMismatchAll=Niepoprawna wersja! Prosze zaktualizowac wszystkie pliki Essentials do tej samej wersji.
+vanished=\u00a77Juz jestes niewidoczny.
+versionMismatch=\u00a74Niepoprawna wersja! Prosze zaktualizowac {0} do tej samej wersji co inne pliki.
+versionMismatchAll=\u00a74Niepoprawna wersja! Prosze zaktualizowac wszystkie pliki Essentials do tej samej wersji.
voiceSilenced=\u00a77Twe usta zostaly zaszyte.
-walking=walking
-warpDeleteError=Wystapil problem podczas usuwania pliku z Warpami.
-warpListPermission=\u00a7cNie masz pozwolenia na sprawdzenie listy Warp\u00c3\u00b3w..
-warpNotExist=Ten Warp nie istnieje.
-warpOverwrite=\u00a7cNie mozesz nadpisac tego Warpa.
-warpSet=\u00a77Warp {0} stworzony.
-warpUsePermission=\u00a7cNie masz pozwolenie na korzystanie z tego Warpa.
-warpingTo=\u00a77Teleportuje do {0}.
+walking=chodzi
+warpDeleteError=\u00a74Wystapil problem podczas usuwania pliku z Warpami.
+warpList={0}
+warpListPermission=\u00a74Nie masz pozwolenia na sprawdzenie listy Warp\u00c3\u00b3w..
+warpNotExist=\u00a74Ten Warp nie istnieje.
+warpOverwrite=\u00a74Nie mozesz nadpisac tego Warpa.
+warpSet=\u00a77Warp\u00a7c {0} \u00a77stworzony.
+warpUsePermission=\u00a74Nie masz pozwolenie na korzystanie z tego Warpa.
+warpingTo=\u00a77Teleportuje do\u00a7c {0}\u00a77.
warps=Warpy: {0}
-warpsCount=\u00a77Istnieje {0} warp\u00c3\u00b3w. Pokazuje strone {1} z {2}.
-weatherStorm=\u00a77Ustawiles burze w {0}.
-weatherStormFor=\u00a77Ustawiles burze w {0} na {1} sekund.
-weatherSun=\u00a77Ustawiles bezchmurna pogode w {0}.
-weatherSunFor=\u00a77Ustawiles bezchmurna pogode w {0} na {1} sekund.
-whoisAFK=\u00a76 - AFK:\u00a7f {0}
-whoisBanned=\u00a76 - Zbanowany:\u00a7f {0}.
-whoisExp=\u00a76 - Punkty Doswiadczenia:\u00a7f {0} (Poziom {1}).
-whoisFly=\u00a76 - Fly mode:\u00a7f {0} ({1})
-whoisGamemode=\u00a76 - Tryb Gry:\u00a7f {0}.
-whoisGeoLocation=\u00a76 - Lokalizacja:\u00a7f {0}.
-whoisGod=\u00a76 - Godmode:\u00a7f {0}.
-whoisHealth=\u00a76 - Zdrowie:\u00a7f {0}/20.
-whoisIPAddress=\u00a76 - Adres IP:\u00a7f {0}.
-whoisJail=\u00a76 - W wiezieniu:\u00a7f {0}.
-whoisLocation=\u00a76 - Lokalizacja:\u00a7f ({0}, {1}, {2}, {3})
-whoisMoney=\u00a76 - Pieniadze:\u00a7f {0}.
-whoisMuted=\u00a76 - Muted:\u00a7f {0}
-whoisNick=\u00a76 - Nick:\u00a7f {0}
-whoisOp=\u00a76 - OP:\u00a7f {0}
-whoisTop=\u00a76 ====== WhoIs:\u00a7f {0} \u00a76======
-worth=\u00a77Stack {0} jest warty \u00a7c{1}\u00a77 ({2}rzedmiot(y) po {3} kazdy)
-worthMeta=\u00a77Stack {0} z metadata {1} jest warty \u00a7c{2}\u00a77 ({3} przedmiot(y) po {4} kazdy)
-worthSet=Cena przedmiotu ustawiona.
+warpsCount=\u00a77Istnieje \u00a7c{0} \u00a77warp. Pokazuje strone {1} z {2}.
+weatherStorm=\u00a77Ustawiles \u00a7cburze\u00a77 w\u00a7c {0}\u00a77.
+weatherStormFor=\u00a77Ustawiles \u00a7cburze\u00a77 w\u00a7c {0} \u00a77na {1} sekund.
+weatherSun=\u00a77Ustawiles \u00a7cbezchmurna\u00a77 pogode w\u00a7c {0}\u00a77.
+weatherSunFor=\u00a77Ustawiles bezchmurna pogode w\u00a7c {0} \u00a77na {1} sekund.
+whoisAFK=\u00a77 - AFK:\u00a7r {0}
+whoisBanned=\u00a77 - Zbanowany:\u00a7r {0}.
+whoisExp=\u00a77 - Punkty Doswiadczenia:\u00a7r {0} (Poziom {1}).
+whoisFly=\u00a77 - Lata:\u00a7r {0} ({1})
+whoisGamemode=\u00a77 - Tryb Gry:\u00a7r {0}.
+whoisGeoLocation=\u00a77 - Lokalizacja:\u00a7r {0}.
+whoisGod=\u00a77 - Godmode:\u00a7r {0}.
+whoisHealth=\u00a77 - Zdrowie:\u00a7r {0}/20.
+whoisIPAddress=\u00a77 - Adres IP:\u00a7r {0}.
+whoisJail=\u00a77 - W wiezieniu:\u00a7r {0}.
+whoisLocation=\u00a77 - Lokalizacja:\u00a7r ({0}, {1}, {2}, {3})
+whoisMoney=\u00a77 - Pieniadze:\u00a7r {0}.
+whoisMuted=\u00a77 - Wyciszony:\u00a7r {0}
+whoisNick=\u00a77 - Nick:\u00a7r {0}
+whoisOp=\u00a77 - OP:\u00a7r {0}
+whoisTop=\u00a77 ====== WhoIs:\u00a7c {0} \u00a77======
+worth=\u00a7aStack {0} jest warty \u00a7c{1}\u00a7a ({2}rzedmiot(y) po {3} kazdy)
+worthMeta=\u00a7aStack {0} z metadata {1} jest warty \u00a7c{2}\u00a7a ({3} przedmiot(y) po {4} kazdy)
+worthSet=\u00a77Cena przedmiotu ustawiona.
year=rok
years=lat
youAreHealed=\u00a77Zostales/as uleczony/na.
-youHaveNewMail=\u00a7cMasz {0} wiadomosci!\u00a7f napisz \u00a77/mail read\u00a7f aby je przeczytac.
-posX=\u00a76X: {0} (+East <-> -West)
-posY=\u00a76Y: {0} (+Up <-> -Down)
-posZ=\u00a76Z: {0} (+South <-> -North)
-posYaw=\u00a76Yaw: {0} (Rotation)
-posPitch=\u00a76Pitch: {0} (Head angle)
-distance=\u00a76Distance: {0}
-giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
-warpList={0}
-uptime=\u00a76Uptime:\u00a7c {0}
-antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
-antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
-gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
-invalidHomeName=\u00a74Invalid home name
-invalidWarpName=\u00a74Invalid warp name
-userUnknown=\u00a74Warning: The user ''\u00a7c{0}\u00a74'' has never joined this server.
-teleportationEnabledFor=\u00a76Teleportation enabled for {0}
-teleportationDisabledFor=\u00a76Teleportation disabled for {0}
-kitOnce=\u00a74You can't use that kit again.
-fullStack=\u00a74You already have a full stack
-oversizedTempban=\u00a74You may not ban a player for this period of time.
-recipeNone=No recipes exist for {0}
-invalidNumber=Invalid Number
-recipeBadIndex=There is no recipe by that number
-recipeNothing=nothing
-recipe=\u00a76Recipe for \u00a7c{0}\u00a76 ({1} of {2})
-recipeFurnace=\u00a76Smelt \u00a7c{0}
-recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
-recipeGridItem=\ \u00a7{0}X \u00a76is \u00a7c{1}
-recipeMore=\u00a76Type /{0} \u00a7c{1}\u00a76 <number> to see other recipes for \u00a7c{2}
-recipeWhere=\u00a76Where: {0}
-recipeShapeless=\u00a76Combine \u00a7c{0}
-editBookContents=\u00a7eYou may now edit the contents of this book
-bookAuthorSet=\u00a76Author of the book set to {0}
-bookTitleSet=\u00a76Title of the book set to {0}
-denyChangeAuthor=\u00a74You cannot change the author of this book
-denyChangeTitle=\u00a74You cannot change the title of this book
-denyBookEdit=\u00a74You cannot unlock this book
-bookLocked=\u00a7cThis book is now locked
-holdBook=\u00a74You are not holding a writable book
-fireworkColor=\u00a74You must apply a color to the firework to add an effect
-holdFirework=\u00a74You must be holding a firework to add effects
-invalidFireworkFormat=\u00a76The option \u00a74{0} \u00a76is not a valid value for \u00a74{1}
-muteNotify=\u00a74{0} \u00a76has muted \u00a74{1}
-resetBal=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all online players
-resetBalAll=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all players
-messageTruncated=\u00a74Message truncated, to see the full output type:\u00a7c /{0} {1}
-userAFK=\u00a75{0} \u00a75is currently AFK and may not respond
-fireworkEffectsCleared=\u00a76Removed all effects from held stack.
-fireworkSyntax=\u00a76Firework parameters:\u00a7c color:<color> [fade:<color>] [shape:<shape>] [effect:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas: \u00a7cred,blue,pink\n\u00a76Shapes:\u00a7c star, ball, large, creeper, burst \u00a76Effects:\u00a7c trail, twinkle
-bed=\u00a7obed\u00a7r
-bedNull=\u00a7mbed\u00a7r
-bedMissing=\u00a74Your bed is either unset, missing or blocked.
-bedSet=\u00a76Bed spawn set!
-kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to {1}\u00a7.
-kitReceive=\u00a76Received kit\u00a7c {0}\u00a76.
+youHaveNewMail=\u00a77Masz\u00a7c {0} \u00a77wiadomosci! Wpisz \u00a7c/mail read\u00a77 aby je przeczytac.
+playerUnbanned=\u00a76Player\u00a7c {0} \u00a76unbanned {1}.
+playerUnbanIpAddress=\u00a76Player\u00a7c {0} \u00a76unbanned IP: {1}.
+playerBanIpAddress=\u00a77Gracz\u00a7c {0} \u00a77zostal zbanowany na adres IP {1}\u00a77.
diff --git a/Essentials/src/messages_pt.properties b/Essentials/src/messages_pt.properties
index c4eb6d44c..ddd2d3678 100644
--- a/Essentials/src/messages_pt.properties
+++ b/Essentials/src/messages_pt.properties
@@ -11,6 +11,8 @@ alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} em: {3}
alertPlaced=Colocou:
alertUsed=Usou:
antiBuildBreak=\u00a74You are not permitted to break {0} blocks here.
+antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
+antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
antiBuildInteract=\u00a74You are not permitted to interact with {0}.
antiBuildPlace=\u00a74You are not permitted to place {0} here.
antiBuildUse=\u00a74You are not permitted to use {0}.
@@ -24,10 +26,16 @@ balance=\u00a77Saldo: {0}
balanceTop=\u00a77 Saldos superiores ({0})
banExempt=\u00a7cVoc\u00ea nao pode banir este jogador.
banFormat=Banned: {0}
-banIpAddress=\u00a77Endere\u00e7o de IP banido
+bed=\u00a7obed\u00a7r
+bedMissing=\u00a74Your bed is either unset, missing or blocked.
+bedNull=\u00a7mbed\u00a7r
+bedSet=\u00a76Bed spawn set!
bigTreeFailure=\u00a7cFalha na gera\u00e7ao da \u00e1rvore grande. Tente de novo na terra ou grama.
bigTreeSuccess= \u00a77\u00c1rvore grande gerada.
blockList=Essentials passou o seguinte comando a outro plugin:
+bookAuthorSet=\u00a76Author of the book set to {0}
+bookLocked=\u00a7cThis book is now locked
+bookTitleSet=\u00a76Title of the book set to {0}
broadcast=[\u00a7cBroadcast\u00a7f]\u00a7a {0}
buildAlert=\u00a7cVoc\u00ea nao tem permissao de construir.
bukkitFormatChanged=Bukkit: formato da versao alterada. Versao nao verificada.
@@ -39,6 +47,8 @@ cantSpawnItem=\u00a7cVoc\u00ea nao tem permissao de pegar este item {0}
chatTypeAdmin=[A]
chatTypeLocal=[L]
chatTypeSpy=[Spy]
+cleaned=Userfiles Cleaned.
+cleaning=Cleaning userfiles.
commandFailed=Comando {0} falhou:
commandHelpFailedForPlugin=Erro ao obter ajuda para: {0}
commandNotLoaded=\u00a7cCommando {0} provavelmente esta carregado.
@@ -63,6 +73,9 @@ deleteHome=\u00a77Casa {0} foi removida.
deleteJail=\u00a77prisao {0} foi removida.
deleteWarp=\u00a77Warp {0} foi removido.
deniedAccessCommand={0} Acesso negado ao comando.
+denyBookEdit=\u00a74You cannot unlock this book
+denyChangeAuthor=\u00a74You cannot change the author of this book
+denyChangeTitle=\u00a74You cannot change the title of this book
dependancyDownloaded=[Essentials] Dependencia {0} baixada com sucesso.
dependancyException=[Essentials] Ocorreu um erro ao tentar baixar uma dependencia
dependancyNotFound=[Essentials] Uma dependencia necess\u00e1ria nao foi encontrada. Baixando agora.
@@ -73,10 +86,12 @@ destinationNotSet=Destino nao definido.
disableUnlimited=\u00a77Desativada itens ilimitados de {0} para {1}.
disabled=desativado
disabledToSpawnMob=Desovar este mob esta desativado nas configura\u00e7\u00f5es.
+distance=\u00a76Distance: {0}
dontMoveMessage=\u00a77Teleporte vai come\u00e7ar em {0}. Nao se mova.
downloadingGeoIp=Baixando GeoIP database ... pode demorar um pouco (Pais: 0.6 MB, Cidade: 20MB)
duplicatedUserdata=Dado de usu\u00e1rio duplicado: {0} e {1}
durability=\u00a77This tool has \u00a7c{0}\u00a77 uses left
+editBookContents=\u00a7eYou may now edit the contents of this book
enableUnlimited=\u00a77Colocando quantidade ilimitada de {0} para {1}.
enabled=ativado
enchantmentApplied = \u00a77O encantamento {0} foi aplicado ao item na sua mao.
@@ -100,17 +115,23 @@ false=\u00a74false\u00a7f
feed=\u00a77Seu apetite foi saciado.
feedOther=\u00a77Satisfeito {0}.
fileRenameError=Falha ao renomear o arquivo {0}.
+fireworkColor=\u00a74You must apply a color to the firework to add an effect
+fireworkEffectsCleared=\u00a76Removed all effects from held stack.
+fireworkSyntax=\u00a76Firework parameters:\u00a7c color:<color> [fade:<color>] [shape:<shape>] [effect:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas: \u00a7cred,blue,pink\n\u00a76Shapes:\u00a7c star, ball, large, creeper, burst \u00a76Effects:\u00a7c trail, twinkle
flyMode=\u00a77Definir o modo de voar {0} para {1}.
flying=flying
foreverAlone=\u00a7cVoc\u00ea nao tem ninguem a quem responder.
freedMemory=Livre {0} MB.
+fullStack=\u00a74You already have a full stack
gameMode=\u00a77Gamemode {0} definido para {1}.
+gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
gcfree=Memoria livre: {0} MB
gcmax=Mem\u00f3ria Maxima: {0} MB
gctotal=Mem\u00f3ria alocada: {0} MB
geoIpUrlEmpty=GeoIP url de download esta vazia.
geoIpUrlInvalid=GeoIP url de download e invalida.
-geoipJoinFormat=Jogador {0} veio do {1}
+geoipJoinFormat=\u00a76Jogador \u00a7c{0} \u00a76veio do \u00a7c{1}\u00a76.
+giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
godDisabledFor=desativado para {0}
godEnabledFor=ativado para {0}
godMode=\u00a77Modo Deus {0}.
@@ -130,6 +151,9 @@ helpMatching=\u00a77Comandos correspondentes "{0}":
helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
helpPages=P\u00e1gina \u00a7c{0}\u00a7f of \u00a7c{1}\u00a7f:
helpPlugin=\u00a74{0}\u00a7f: Ajuda Plugin: /help {1}
+holdBook=\u00a74You are not holding a writable book
+holdFirework=\u00a74You must be holding a firework to add effects
+holdPotion=\u00a74You must be holding a potion to apply effects to it
holeInFloor=Buraco no chao
homeSet=\u00a77Casa definida.
homeSetToBed=\u00a77Sua casa agora esta definida a esta cama.
@@ -148,14 +172,20 @@ invRestored=Seu invent\u00e1rio foi restaurado.
invSee=Voc\u00ea v\u00ea o invent\u00e1rio de {0}.
invSeeHelp=Use /invsee para voltar ao seu invent\u00e1rio.
invalidCharge=\u00a7cCarga invalida.
+invalidFireworkFormat=\u00a76The option \u00a74{0} \u00a76is not a valid value for \u00a74{1}
invalidHome=Home {0} nao existe
+invalidHomeName=\u00a74Invalid home name
invalidMob=Tipo de mob inv\u00e1lido.
+invalidNumber=Invalid Number
+invalidPotion=\u00a74Invalid Potion
+invalidPotionEffect=\u00a74You do not have permissions to apply potion effect \u00a7c{0} \u00a74to this potion
invalidServer=Servidor inv\u00e1lido!
invalidSignLine=Linha {0} da placa e inv\u00e1lida.
+invalidWarpName=\u00a74Invalid warp name
invalidWorld=\u00a7cMundo inv\u00e1lido.
inventoryCleared=\u00a77Invent\u00e1rio limpo.
-inventoryClearedOthers=\u00a77Invent\u00e1rio de \u00a7c{0}\u00a77 limpo.
inventoryClearedAll=\u00a76Cleared everyone's inventory.
+inventoryClearedOthers=\u00a77Invent\u00e1rio de \u00a7c{0}\u00a77 limpo.
is=\u00e9
itemCannotBeSold=Este item nao pode ser vendido para o servidor.
itemMustBeStacked=O item deve ser negociado em pacotes. A qantidade de 2s seria dois pacotes, etc.
@@ -185,9 +215,13 @@ kitError2=\u00a7cEsse kit nao existe ou foi definido impropiamente.
kitError=\u00a7cNao existe kits v\u00e1lidos.
kitErrorHelp=\u00a7cTalvez um item esta faltando a quantidade nas configura\u00e7\u00f5es?
kitGive=\u00a77Dando kit {0}.
+kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to {1}\u00a7.
kitInvFull=\u00a7cSeu invent\u00e1rio esta cheio, colocando kit no chao
+kitOnce=\u00a74You can't use that kit again.
+kitReceive=\u00a76Received kit\u00a7c {0}\u00a76.
kitTimed=\u00a7cVoc\u00ea nao pode usar este kit denovo por {0}.
kits=\u00a77Kits: {0}
+leatherSyntax=\u00a76Leather Color Syntax: color:<red>,<green>,<blue> eg: color:255,0,0.
lightningSmited=\u00a77YVoc\u00ea acaba de ser castigado
lightningUse=\u00a77Castigando {0}
listAfkTag = \u00a77[Ausente]\u00a7f
@@ -203,9 +237,11 @@ mailSent=\u00a77eMail enviado!
markMailAsRead=\u00a7cPara marcar seu email como lido, use /mail clear
markedAsAway=\u00a77[AFK] Agora voc\u00ea esta marcado como aus\u00eante.
markedAsNotAway=\u00a77[AFK] Voc\u00ea nao esta mais marcado como aus\u00eante.
+matchingIPAddress=\u00a76The following players previously logged in from that IP address:
maxHomes=Voc\u00ea nao pode definir mais de {0} casas.
mayNotJail=\u00a7cVoc\u00ea nao pode prender esta pessoa
me=eu
+messageTruncated=\u00a74Message truncated, to see the full output type:\u00a7c /{0} {1}
minute=minuto
minutes=minutos
missingItems=Voc\u00ea nao tem {0}x {1}.
@@ -222,7 +258,10 @@ months=meses
moreThanZero=Quantidade deve ser maior que 0.
moveSpeed=\u00a77Set {0} speed to {1} for {2}.
msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
+multipleCharges=\u00a74You cannot apply more than one charge to this firework.
+multiplePotionEffects=\u00a74You cannot apply more than one effect to this potion.
muteExempt=\u00a7cVoc\u00ea nao pode mutar este jogador.
+muteNotify=\u00a74{0} \u00a76has muted \u00a74{1}
mutedPlayer=Player {0} mutado.
mutedPlayerFor=Player {0} mutado por {1}.
mutedUserSpeaks={0} tentou falar, mas esta mutado.
@@ -238,6 +277,7 @@ nickSet=\u00a77Agora seu apelido \u00e9 \u00a7c{0}
noAccessCommand=\u00a7cVoc\u00ea nao tem acesso a este comando.
noAccessPermission=\u00a7cVoc\u00ea nao tem permissao para acessar isso {0}.
noBreakBedrock=Voce nao tem permissao para destruir bedrock.
+noChapterMeta=\u00a74You do not have permission to create dynamic books.
noDestroyPermission=\u00a7cVoc\u00ea nao tem permissao para destruir isso {0}.
noDurability=\u00a7cThis item does not have a durability.
noGodWorldWarning=\u00a7cAviso! Modo Deus neste mundo esta desativado.
@@ -247,6 +287,9 @@ noHomeSetPlayer=Jogador nao definiu nenhuma casa.
noKitPermission=\u00a7cVoc\u00ea precisa da permissao \u00a7c{0}\u00a7c para usar este kit.
noKits=\u00a77Ainda nao tem nenhum item disponivel
noMail=Voc\u00ea nao tem nenhum email
+noMatchingPlayers=\u00a76No matching players found.
+noMetaFirework=\u00a74You do not have permission to apply firework meta.
+noMetaPerm=\u00a74You do not have permission to apply \u00a7c{0}\u00a74 meta to this item.
noMotd=\u00a7cNao h\u00e1 nenhuma mensagem do dia.
noNewMail=\u00a77Voc\u00ea nao tem nenhum novo email.
noPendingRequest=Voc\u00ea nao tem um pedido pendente.
@@ -269,9 +312,11 @@ now=agora
nuke=Pode chover a morte sobre eles
numberRequired=Um numero vai aqui, bobinho.
onlyDayNight=/time apenas suporta day/night.
+onlyPlayerSkulls=\u00a74You can only set the owner of player skulls (397:3).
onlyPlayers=Apenas jogadores no jogo pode usar {0}.
onlySunStorm=/weather apenas suporta sun/storm.
orderBalances=Ordenando saldos de {0} usuarios, aguarde ...
+oversizedTempban=\u00a74You may not ban a player for this period of time.
pTimeCurrent=\u00a7e{0}''s\u00a7f horario e {1}.
pTimeCurrentFixed=\u00a7e{0}''s\u00a7f hor\u00e1rio foi fixado para {1}.
pTimeNormal=\u00a7e{0}''s\u00a7f o tempo esta normal e sincronisado com o servidor.
@@ -294,7 +339,13 @@ playerNeverOnServer=\u00a7cJogador {0} nunca esteve no servidor.
playerNotFound=\u00a7cJogador nao encontrado.
playerUnmuted=\u00a77Foi desmutado
pong=Pong!
+posPitch=\u00a76Pitch: {0} (Head angle)
+posX=\u00a76X: {0} (+East <-> -West)
+posY=\u00a76Y: {0} (+Up <-> -Down)
+posYaw=\u00a76Yaw: {0} (Rotation)
+posZ=\u00a76Z: {0} (+South <-> -North)
possibleWorlds=\u00a77Mundos poss\u00edveis sao 0 at\u00e9 {0}.
+potions=\u00a76Potions:\u00a7r {0}
powerToolAir=Comando nao pode ser definido para o ar.
powerToolAlreadySet=Comando \u00a7c{0}\u00a7f j\u00e1 esta definido para {1}.
powerToolAttach=\u00a7c{0}\u00a7f comando definido para {1}.
@@ -309,6 +360,16 @@ powerToolsEnabled=Todas suas super ferramentas foram desabilitadas.
protectionOwner=\u00a76[EssentialsProtect] Dono da prote\u00e7ao: {0}
questionFormat=\u00a77[Pergunta]\u00a7f {0}
readNextPage=Digite /{0} {1} para ler a pr\u00f3xima p\u00e1gina
+recipe=\u00a76Recipe for \u00a7c{0}\u00a76 ({1} of {2})
+recipeBadIndex=There is no recipe by that number
+recipeFurnace=\u00a76Smelt \u00a7c{0}
+recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
+recipeGridItem=\ \u00a7{0}X \u00a76is \u00a7c{1}
+recipeMore=\u00a76Type /{0} \u00a7c{1}\u00a76 <number> to see other recipes for \u00a7c{2}
+recipeNone=No recipes exist for {0}
+recipeNothing=nothing
+recipeShapeless=\u00a76Combine \u00a7c{0}
+recipeWhere=\u00a76Where: {0}
reloadAllPlugins=\u00a77Todos plugins recarregados.
removed=\u00a77Removido {0} entidades.
repair=Voc\u00ea reparou com sucesso sua: \u00a7e{0}.
@@ -323,7 +384,10 @@ requestDeniedFrom=\u00a77{0} recusou seu pedido de teleporte
requestSent=\u00a77Pedindo enviado para {0}\u00a77.
requestTimedOut=\u00a7cPedido de teleporte passou o limite de tempo
requiredBukkit=* ! * Voc\u00ea precisa da ultima build {0} do CraftBukkit, baixa ela em http://dl.bukkit.org/downloads/craftbukkit/
+resetBal=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all online players
+resetBalAll=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all players
returnPlayerToJailError=Erro ocorreu ao tentar retornar jogador {0} para a cadeia: {1}
+runningPlayerMatch=\u00a76Running search for players matching ''\u00a7c{0}\u00a76'' (this could take a little while)
second=segundo
seconds=segundos
seenOffline=Jogador {0} esta offline desde {1}
@@ -360,7 +424,9 @@ teleportRequestTimeoutInfo=\u00a77Este pedido vai acabar em {0} segundos.
teleportTop=\u00a77Teleportando para o alto.
teleportationCommencing=\u00a77Iniciando teleporte...
teleportationDisabled=\u00a77Teleporte desativado.
+teleportationDisabledFor=\u00a76Teleportation disabled for {0}
teleportationEnabled=\u00a77Teleporte ativado.
+teleportationEnabledFor=\u00a76Teleportation enabled for {0}
teleporting=\u00a77Teleportando...
teleportingPortal=\u00a77Teleportando via portal.
tempBanned=Banido temporariamente do servidor por {0}
@@ -388,8 +454,6 @@ typeTpaccept=\u00a77Para aceitar o teleporte, digite \u00a7c/tpaccept\u00a77.
typeTpdeny=\u00a77Para recusar o teleporte, digite \u00a7c/tpdeny\u00a77.
typeWorldName=\u00a77Voc\u00ea tambem pode digitar o nome do mundo.
unableToSpawnMob=Incapaz de gerar o mob.
-unbannedIP=Endereco de IP desbanido.
-unbannedPlayer=Jogador desbanido.
unignorePlayer=Agora voc\u00ea nao esta mais ignorando o {0}.
unknownItemId=ID do item desconhecido: {0}
unknownItemInList=Item desconhecido {0} em {1} lista.
@@ -400,10 +464,13 @@ unmutedPlayer=Jogador {0} desmutado.
unvanished=\u00a7aEsta mais uma vez visivel.
unvanishedReload=\u00a7cA recarga foi forcado a se tornar visivel.
upgradingFilesError=Erro ao aprimorar os arquivos
+uptime=\u00a76Uptime:\u00a7c {0}
+userAFK=\u00a75{0} \u00a75is currently AFK and may not respond
userDoesNotExist=O usu\u00e1rio {0} nao existe.
userIsAway=[AFK]: {0} esta aus\u00eante.
userIsNotAway=[AFK]: {0} nao esta mais aus\u00eante.
userJailed=\u00a77Voc\u00ea foi preso, muaha!
+userUnknown=\u00a74Warning: The user ''\u00a7c{0}\u00a74'' has never joined this server.
userUsedPortal={0} usou um portal de saida existente.
userdataMoveBackError=Falha ao mover userdata/{0}.tmp para userdata/{1}
userdataMoveError=Falha ao mover userdata/{0} para userdata/{1}.tmp
@@ -414,6 +481,7 @@ versionMismatchAll=Versao imcompativel! Atualise todos os essentials jars para m
voiceSilenced=\u00a77Sua voz foi silenciada
walking=walking
warpDeleteError=Problema ao deletar o arquivo warp.
+warpList={0}
warpListPermission=\u00a7cVoc\u00ea nao tem permissao para listar os warps.
warpNotExist=Este warp nao existe.
warpOverwrite=\u00a7cVoce nao pode substituir essa warp.
@@ -449,58 +517,6 @@ year=ano
years=anos
youAreHealed=\u00a77Voc\u00ea foi curado.
youHaveNewMail=\u00a7cVoc\u00ea tem {0} mensagens!\u00a7f Digite \u00a77/mail read\u00a7f para ver seu email.
-posX=\u00a76X: {0} (+East <-> -West)
-posY=\u00a76Y: {0} (+Up <-> -Down)
-posZ=\u00a76Z: {0} (+South <-> -North)
-posYaw=\u00a76Yaw: {0} (Rotation)
-posPitch=\u00a76Pitch: {0} (Head angle)
-distance=\u00a76Distance: {0}
-giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
-warpList={0}
-uptime=\u00a76Uptime:\u00a7c {0}
-antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
-antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
-gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
-invalidHomeName=\u00a74Invalid home name
-invalidWarpName=\u00a74Invalid warp name
-userUnknown=\u00a74Warning: The user ''\u00a7c{0}\u00a74'' has never joined this server.
-teleportationEnabledFor=\u00a76Teleportation enabled for {0}
-teleportationDisabledFor=\u00a76Teleportation disabled for {0}
-kitOnce=\u00a74You can't use that kit again.
-fullStack=\u00a74You already have a full stack
-oversizedTempban=\u00a74You may not ban a player for this period of time.
-recipeNone=No recipes exist for {0}
-invalidNumber=Invalid Number
-recipeBadIndex=There is no recipe by that number
-recipeNothing=nothing
-recipe=\u00a76Recipe for \u00a7c{0}\u00a76 ({1} of {2})
-recipeFurnace=\u00a76Smelt \u00a7c{0}
-recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
-recipeGridItem=\ \u00a7{0}X \u00a76is \u00a7c{1}
-recipeMore=\u00a76Type /{0} \u00a7c{1}\u00a76 <number> to see other recipes for \u00a7c{2}
-recipeWhere=\u00a76Where: {0}
-recipeShapeless=\u00a76Combine \u00a7c{0}
-editBookContents=\u00a7eYou may now edit the contents of this book
-bookAuthorSet=\u00a76Author of the book set to {0}
-bookTitleSet=\u00a76Title of the book set to {0}
-denyChangeAuthor=\u00a74You cannot change the author of this book
-denyChangeTitle=\u00a74You cannot change the title of this book
-denyBookEdit=\u00a74You cannot unlock this book
-bookLocked=\u00a7cThis book is now locked
-holdBook=\u00a74You are not holding a writable book
-fireworkColor=\u00a74You must apply a color to the firework to add an effect
-holdFirework=\u00a74You must be holding a firework to add effects
-invalidFireworkFormat=\u00a76The option \u00a74{0} \u00a76is not a valid value for \u00a74{1}
-muteNotify=\u00a74{0} \u00a76has muted \u00a74{1}
-resetBal=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all online players
-resetBalAll=\u00a76Balance has been reset to \u00a7a{0} \u00a76 for all players
-messageTruncated=\u00a74Message truncated, to see the full output type:\u00a7c /{0} {1}
-userAFK=\u00a75{0} \u00a75is currently AFK and may not respond
-fireworkEffectsCleared=\u00a76Removed all effects from held stack.
-fireworkSyntax=\u00a76Firework parameters:\u00a7c color:<color> [fade:<color>] [shape:<shape>] [effect:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas: \u00a7cred,blue,pink\n\u00a76Shapes:\u00a7c star, ball, large, creeper, burst \u00a76Effects:\u00a7c trail, twinkle
-bed=\u00a7obed\u00a7r
-bedNull=\u00a7mbed\u00a7r
-bedMissing=\u00a74Your bed is either unset, missing or blocked.
-bedSet=\u00a76Bed spawn set!
-kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to {1}\u00a7.
-kitReceive=\u00a76Received kit\u00a7c {0}\u00a76.
+playerUnbanned=\u00a76Player\u00a7c {0} \u00a76unbanned {1}.
+playerUnbanIpAddress=\u00a76Player\u00a7c {0} \u00a76unbanned IP: {1}.
+playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address {1}\u00a76.
diff --git a/Essentials/src/messages_se.properties b/Essentials/src/messages_se.properties
index e910a5cc3..8d535037f 100644
--- a/Essentials/src/messages_se.properties
+++ b/Essentials/src/messages_se.properties
@@ -11,6 +11,8 @@ alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} at: {3}
alertPlaced=placerade:
alertUsed=anv\u00e4nde:
antiBuildBreak=\u00a74Du har inte till\u00e5telse att ta s\u00f6nder {0} blocks h\u00e4r.
+antiBuildCraft=\u00a74Du har inte till\u00e5telse att skapa\u00a7c {0}\u00a74.
+antiBuildDrop=\u00a74Du har inte till\u00e5telse att kasta ut\u00a7c {0}\u00a74.
antiBuildInteract=\u00a74Du har inte till\u00e5telse att p\u00e5verka {0}.
antiBuildPlace=\u00a74Du har inte till\u00e5telse att placera {0} h\u00e4r.
antiBuildUse=\u00a74Du har inte till\u00e5telse att anv\u00e4nda {0}.
@@ -24,10 +26,16 @@ balance=\u00a77Balans: {0}
balanceTop=\u00a77Topp balans ({0})
banExempt=\u00a7cDu kan inte banna den spelaren.
banFormat=Banned: {0}
-banIpAddress=\u00a77Bannade IP-adress
+bed=\u00a7obed\u00a7r
+bedMissing=\u00a74Your bed is either unset, missing or blocked.
+bedNull=\u00a7mbed\u00a7r
+bedSet=\u00a76Bed spawn set!
bigTreeFailure=\u00a7cEtt stort tr\u00e4d kunde inte genereras misslyckades. F\u00f6s\u00f6k igen p\u00e5 gr\u00e4s eller jord.
bigTreeSuccess= \u00a77Stort tr\u00e4d genererat.
blockList=Essentials vidarebefordrade f\u00f6ljande kommandon till ett annat insticksprogram:
+bookAuthorSet=\u00a76F\u00c3\u00b6rfattaren av boken \u00c3\u00a4r nu{0}
+bookLocked=\u00a7cDenna bok \u00c3\u00a4r nu l\u00c3\u00a5st
+bookTitleSet=\u00a76Titeln av boken har blivit \u00c3\u00a4ndrad till {0}
broadcast=[\u00a7cUts\u00e4ndning\u00a7f]\u00a7a {0}
buildAlert=\u00a7cDu har inte till\u00e5telse att bygga
bukkitFormatChanged=Bukkit versionsformat bytt. Version \u00e4r inte kollad.
@@ -39,6 +47,8 @@ cantSpawnItem=\u00a7cDu har inte beh\u00f6righet att spawna {0}
chatTypeAdmin=[A]
chatTypeLocal=[L]
chatTypeSpy=[Spy]
+cleaned=Userfiles Cleaned.
+cleaning=Cleaning userfiles.
commandFailed=Kommando {0} misslyckades:
commandHelpFailedForPlugin=Kunde inte hitta hj\u00e4lp f\u00f6r: {0}
commandNotLoaded=\u00a7cKommando {0} \u00e4r felaktigt laddat.
@@ -63,6 +73,9 @@ deleteHome=\u00a77Hemmet {0} har tagits bort.
deleteJail=\u00a77F\u00e4ngelset {0} har tagits bort.
deleteWarp=\u00a77Warpen {0} har tagits bort.
deniedAccessCommand={0} nekades \u00e5tkomst till kommandot.
+denyBookEdit=\u00a74Du kan inte l\u00c3\u00a5sa upp denna boken
+denyChangeAuthor=\u00a74Du kan inte byta f\u00c3\u00b6rfattare p\u00c3\u00a5 denna bok
+denyChangeTitle=\u00a74Du kan inte byta titel p\u00c3\u00a5 denna bok
dependancyDownloaded=[Essentials] Beroende {0} laddades ner framg\u00e5ngsrikt.
dependancyException=[Essentials] Ett fel uppstod n\u00e4r ett beroende laddades ner.
dependancyNotFound=[Essentials] Ett n\u00f6dv\u00e4ndigt beroende hittades inte, laddar ner nu.
@@ -73,10 +86,12 @@ destinationNotSet=Ingen destination \u00e4r inst\u00e4lld.
disableUnlimited=\u00a77Inaktiverade o\u00e4ndligt placerande av {0} f\u00f6r {1}.
disabled=inaktiverad
disabledToSpawnMob=Att spawna fram den h\u00e4r moben \u00e4r inaktiverat i configurationsfilen.
+distance=\u00a76Avst\u00e5nd: {0}
dontMoveMessage=\u00a77Teleporteringen p\u00e5b\u00f6rjas om {0}. R\u00f6r dig inte.
downloadingGeoIp=Laddar ner GeoIP-databasen... det h\u00e4r kan ta en stund (land: 0.6 MB, stad: 20MB)
duplicatedUserdata=Dublicerad anv\u00e4ndardata: {0} och {1}
durability=\u00a77Det h\u00e4r verktyget har \u00a7c{0}\u00a77 anv\u00e4ndningar kvar
+editBookContents=\u00a7eDu kan nu \u00c3\u00a4ndra inneh\u00c3\u00a5llet i denna bok
enableUnlimited=\u00a77Ger o\u00e4ndligt av {0} till {1}.
enabled=aktiverad
enchantmentApplied = \u00a77F\u00f6rtrollningen {0} har blivit till\u00e4mpad p\u00e5 saken du har i handen.
@@ -100,17 +115,23 @@ false=falskt
feed=\u00a77Din hunger \u00e4r m\u00e4ttad.
feedOther=\u00a77Matade {0}.
fileRenameError=Namnbytet av filen {0} misslyckades
+fireworkColor=\u00a74Du m\u00c3\u00a5ste l\u00c3\u00a4gga till en f\u00c3\u00a4rg till fyrverkeripj\u00c3\u00a4sen f\u00c3\u00b6r att l\u00c3\u00a4gga till en effekt
+fireworkEffectsCleared=\u00a76Removed all effects from held stack.
+fireworkSyntax=\u00a76Firework parameters:\u00a7c color:<color> [fade:<color>] [shape:<shape>] [effect:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas: \u00a7cred,blue,pink\n\u00a76Shapes:\u00a7c star, ball, large, creeper, burst \u00a76Effects:\u00a7c trail, twinkle
flyMode=\u00a77Aktiverade flygl\u00e4ge {0} f\u00f6r {1}.
flying=flying
foreverAlone=\u00a7cDu har ingen att svara.
freedMemory=Befriade {0} MB.
+fullStack=\u00a74Du har redan en full stapel
gameMode=\u00a77Satte {0}s spell\u00e4ge till {1}.
+gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 bitar, \u00a7c{3}\u00a76 enheter
gcfree=Ledigt minne: {0} MB
gcmax=Maximalt minne: {0} MB
gctotal=Tilldelat minne: {0} MB
geoIpUrlEmpty=Nerladdningsadressen f\u00f6r GeoIP \u00e4r tom.
geoIpUrlInvalid=Nerladdningsadressen f\u00f6r GeoIP \u00e4r ogiltig.
-geoipJoinFormat=Spelaren {0} kommer fr\u00e5n {1}
+geoipJoinFormat=\u00a76Spelaren \u00a7c{0} \u00a76kommer fr\u00e5n \u00a7c{1}\u00a76.
+giveSpawn=\u00a76Ger\u00a7c {0} \u00a76av\u00a7c {1} till\u00a7c {2}\u00a76.
godDisabledFor=inaktiverat f\u00f6r {0}
godEnabledFor=aktiverat f\u00f6r {0}
godMode=\u00a77Od\u00f6dlighet {0}.
@@ -130,6 +151,9 @@ helpMatching=\u00a77Kommandon matchar "{0}":
helpOp=\u00a7c[OpHj\u00e4lp]\u00a7f \u00a77{0}:\u00a7f {1}
helpPages=Sida \u00a7c{0}\u00a7f av \u00a7c{1}\u00a7f:
helpPlugin=\u00a74{0}\u00a7f: Hj\u00e4lp f\u00f6r insticksprogram: /help {1}
+holdBook=\u00a74Boken du h\u00c3\u00a5ller i \u00c3\u00a4r inte skrivbar
+holdFirework=\u00a74Du m\u00c3\u00a5ste h\u00c3\u00a5lla i en fyrverkeripj\u00c3\u00a4s f\u00c3\u00b6r att l\u00c3\u00a4gga till effekter
+holdPotion=\u00a74You must be holding a potion to apply effects to it
holeInFloor=H\u00e5l i golvet
homeSet=\u00a77Hem inst\u00e4llt.
homeSetToBed=\u00a77Ditt hem \u00e4r nu inst\u00e4llt till den h\u00e4r s\u00e4ngen.
@@ -148,14 +172,20 @@ invRestored=Ditt f\u00f6rr\u00e5d har blivit \u00e5terst\u00e4llt.
invSee=Du ser nu {0}s f\u00f6rr\u00e5d.
invSeeHelp=Anv\u00e4nd /invsee f\u00f6r att \u00e5terst\u00e4lla ditt f\u00f6rr\u00e5d.
invalidCharge=\u00a7cOgiltig laddning.
+invalidFireworkFormat=\u00a76Alternativet \u00a74{0} \u00a76is \u00c3\u00a4r inte ett korrekt alternativ f\u00c3\u00b6r \u00a74{1}
invalidHome=Hemmet {0} finns inte
+invalidHomeName=\u00a74Ogiltigt hemnamn
invalidMob=Ogiltig monstertyp.
+invalidNumber=Felaktigt nummer
+invalidPotion=\u00a74Invalid Potion
+invalidPotionEffect=\u00a74You do not have permissions to apply potion effect \u00a7c{0} \u00a74to this potion
invalidServer=Ogiltig server!
invalidSignLine=Rad {0} p\u00e5 skylten \u00e4r ogiltig.
+invalidWarpName=\u00a74Ogiltigt warpnamn
invalidWorld=\u00a7cOgiltig v\u00e4rld.
inventoryCleared=\u00a77F\u00f6rr\u00e5d rensat.
-inventoryClearedOthers=\u00a77F\u00f6rr\u00e5det av \u00a7c{0}\u00a77 \u00e4r rensat.
inventoryClearedAll=\u00a76Cleared everyone's inventory.
+inventoryClearedOthers=\u00a77F\u00f6rr\u00e5det av \u00a7c{0}\u00a77 \u00e4r rensat.
is=\u00e4r
itemCannotBeSold=Det objektet kan inte s\u00e4ljas till servern.
itemMustBeStacked=Objektet m\u00e5ste k\u00f6pas i staplar. En m\u00e4ngd av 2s kommer bli 2 staplar, etc.
@@ -185,9 +215,13 @@ kitError2=\u00a7cDet kit:et finns inte eller har blivit felaktigt definierat.
kitError=\u00a7cDet finns inga giltiga kit.
kitErrorHelp=\u00a7cKanske en sak fattar m\u00e4ngd i konfigurationen?
kitGive=\u00a77Ger kit {0}.
+kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to {1}\u00a7.
kitInvFull=\u00a7cDitt F\u00f6rr\u00e5d var fullt, placerar kit p\u00e5 golvet
+kitOnce=\u00a74Du kan inte av\u00e4nda det kitet igen.
+kitReceive=\u00a76Received kit\u00a7c {0}\u00a76.
kitTimed=\u00a7cDu kan inte anv\u00e4nda det kit:et igen p\u00e5 {0}.
kits=\u00a77Kit: {0}
+leatherSyntax=\u00a76Leather Color Syntax: color:<red>,<green>,<blue> eg: color:255,0,0.
lightningSmited=\u00a77Blixten har slagit ner p\u00e5 dig
lightningUse=\u00a77En blixt kommer sl\u00e5 ner p\u00e5 {0}
listAfkTag = \u00a77[AFK]\u00a7f
@@ -203,9 +237,11 @@ mailSent=\u00a77Meddelandet skickad!
markMailAsRead=\u00a7cF\u00f6r att markera dina meddelanden som l\u00e4sta, skriv /mail clear
markedAsAway=\u00a77Du \u00e4r nu markerad som borta.
markedAsNotAway=\u00a77Du \u00e4r inte l\u00e4ngre markerad som borta.
+matchingIPAddress=\u00a76The following players previously logged in from that IP address:
maxHomes=Du kan inte ha fler \u00e4n {0} hem.
mayNotJail=\u00a7cDu f\u00e5r inte s\u00e4tta den personen i f\u00e4ngelse
me=jag
+messageTruncated=\u00a74Meddelandet har blivit f\u00c3\u00b6rkortat, f\u00c3\u00b6r att se allt, skriv:\u00a7c /{0} {1}
minute=minut
minutes=minuter
missingItems=Du har inte {0}x {1}.
@@ -222,7 +258,10 @@ months=m\u00e5nader
moreThanZero=M\u00e5ngden m\u00e5ste vara st\u00f6rre \u00e4n 0.
moveSpeed=\u00a77Satte {0}fart till {1} f\u00f6r {2}.
msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
+multipleCharges=\u00a74You cannot apply more than one charge to this firework.
+multiplePotionEffects=\u00a74You cannot apply more than one effect to this potion.
muteExempt=\u00a7cDu kan inte tysta den spelaren.
+muteNotify=\u00a74{0} \u00a76har tystat \u00a74{1}
mutedPlayer=Spelaren {0} \u00e4r tystad.
mutedPlayerFor=Spelaren {0} \u00e4r tystad i {1}.
mutedUserSpeaks={0} f\u00f6rs\u00f6kte att prata, men blev tystad.
@@ -238,6 +277,7 @@ nickSet=\u00a77Ditt smeknamn \u00e4r nu \u00a7c{0}
noAccessCommand=\u00a7cDu har inte tillg\u00e5ng till det kommandot.
noAccessPermission=\u00a7cDu har inte tillst\u00e5nd till att komma \u00e5t det {0}.
noBreakBedrock=Du har inte till\u00e5telse att f\u00f6rst\u00f6ra berggrund.
+noChapterMeta=\u00a74You do not have permission to create dynamic books.
noDestroyPermission=\u00a7Du har inte till\u00e5telse att f\u00f6rst\u00f6ra det {0}.
noDurability=\u00a7cDen saken har inte en h\u00e5llbarhet.
noGodWorldWarning=\u00a7cVarning! Od\u00f6dlighet i den h\u00e4r v\u00e4rlden \u00e4r inaktiverat.
@@ -247,6 +287,9 @@ noHomeSetPlayer=Den h\u00e4r spelaren har inte ett hem.
noKitPermission=\u00a7cDu beh\u00f6ver \u00a7c{0}\u00a7c tillst\u00e5nd f\u00f6r att anv\u00e4nda det kitet.
noKits=\u00a77Det finns inga kits tillg\u00e4ngliga \u00e4n
noMail=Du har inget meddelande
+noMatchingPlayers=\u00a76No matching players found.
+noMetaFirework=\u00a74You do not have permission to apply firework meta.
+noMetaPerm=\u00a74You do not have permission to apply \u00a7c{0}\u00a74 meta to this item.
noMotd=\u00a7cDet finns inget meddelande f\u00f6r dagen.
noNewMail=\u00a77Du har inget nytt meddelande.
noPendingRequest=Du har inga v\u00e4ntande f\u00f6rfr\u00e5gan.
@@ -269,9 +312,11 @@ now=nu
nuke=L\u00e5t d\u00f6d regna \u00f6ver dem
numberRequired=Det ska vara ett nummer d\u00e4r, dumbom.
onlyDayNight=/time st\u00f6der bara day(dag) eller night(natt).
+onlyPlayerSkulls=\u00a74You can only set the owner of player skulls (397:3).
onlyPlayers=Bara spelare som \u00e4r online kan anv\u00e4nda {0}.
onlySunStorm=/weather st\u00f6der bara sun(sol) eller storm(storm).
orderBalances=Best\u00e4ller balanser av {0} anv\u00e4ndare, v\u00e4nligen v\u00e4nta...
+oversizedTempban=\u00a74Du kan inte banna en spelare just vid denna tidpunkt.
pTimeCurrent=\u00a7e{0}'*s\u00a7f klockan \u00e4r {1}.
pTimeCurrentFixed=\u00a7e{0}''s\u00a7f tiden \u00e4r fixerad till {1}.
pTimeNormal=\u00a7e{0}''s\u00a7f tiden \u00e4r normal och matchar servern.
@@ -294,7 +339,13 @@ playerNeverOnServer=\u00a7cSpelaren {0} har aldrig varit p\u00e5 den h\u00e4r se
playerNotFound=\u00a7cSpelaren hittades inte.
playerUnmuted=\u00a77Du kan nu prata
pong=Pong!
+posPitch=\u00a76Pitch: {0} (Huvudvinkel)
+posX=\u00a76X: {0} (+\u00d6ster <-> -V\u00e4st)
+posY=\u00a76Y: {0} (+Upp <-> -Ner)
+posYaw=\u00a76Girning: {0} (Rotation)
+posZ=\u00a76Z: {0} (+Syd <-> -Nort)
possibleWorlds=\u00a77M\u00f6jliga v\u00e4rdar \u00e4r nummer mellan 0 och {0}.
+potions=\u00a76Potions:\u00a7r {0}
powerToolAir=Kommandot kan inte tilldelas luft.
powerToolAlreadySet=Kommandot \u00a7c{0}\u00a7f \u00e4r redan tilldelat {1}.
powerToolAttach=\u00a7c{0}\u00a7f kommandot tilldelat {1}.
@@ -309,6 +360,16 @@ powerToolsEnabled=Alla dina powertools har blivit aktiverade.
protectionOwner=\u00a76[EssentialsProtect] Skydds\u00e4gare: {0}
questionFormat=\u00a77[Fr\u00e5ga]\u00a7f {0}
readNextPage=Skriv /{0} {1} f\u00f6r att l\u00e4sa n\u00e4sta sida
+recipe=\u00a76Recept f\u00c3\u00b6r \u00a7c{0}\u00a76 ({1} av {2})
+recipeBadIndex=Det finns inget recept med det numret
+recipeFurnace=\u00a76Sm\u00c3\u00a4lt \u00a7c{0}
+recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
+recipeGridItem=\ \u00a7{0}X \u00a76\u00c3\u00a4r \u00a7c{1}
+recipeMore=\u00a76Skriv /{0} \u00a7c{1}\u00a76 <nummer> f\u00c3\u00b6r att se andra recept f\u00c3\u00b6r \u00a7c{2}
+recipeNone=Inga recept existerar f\u00c3\u00b6r {0}
+recipeNothing=ingenting
+recipeShapeless=\u00a76Kombinera \u00a7c{0}
+recipeWhere=\u00a76Var: {0}
reloadAllPlugins=\u00a77Laddade om alla insticksprogram.
removed=\u00a77Tog bort {0} enheter.
repair=Du har reparerat din: \u00a7e{0}.
@@ -323,7 +384,10 @@ requestDeniedFrom=\u00a77{0} nekade din teleportations-f\u00f6rfr\u00e5gan.
requestSent=\u00a77F\u00f6rfr\u00e5gan skickad till {0}\u00a77.
requestTimedOut=\u00a7cTeleportations-f\u00f6rfr\u00e5gan har g\u00e5tt ut
requiredBukkit= * ! * Du beh\u00f6ver minst bygge {0} av CraftBukkit, ladda ner den fr\u00e5n http://dl.bukkit.org/downloads/craftbukkit/
+resetBal=\u00a76Balansen har blivit \u00c3\u00a5terst\u00c3\u00a4lld till \u00a7a{0} \u00a76 f\u00c3\u00b6r alla spelare som \u00c3\u00a4r online
+resetBalAll=\u00a76Balansen har blivit \u00c3\u00a5terst\u00c3\u00a4lld till \u00a7a{0} \u00a76 f\u00c3\u00b6r alla spelare
returnPlayerToJailError=Ett fel uppstod n\u00e4r spelaren {0} skulle \u00e5terv\u00e4nda till f\u00e4ngelset: {1}
+runningPlayerMatch=\u00a76Running search for players matching ''\u00a7c{0}\u00a76'' (this could take a little while)
second=sekund
seconds=sekunder
seenOffline=Spelaren {0} \u00e4r offline sedan {1}
@@ -360,7 +424,9 @@ teleportRequestTimeoutInfo=\u00a77Den h\u00e4r beg\u00e4ran kommer att g\u00e5 u
teleportTop=\u00a77Teleporterar till toppen.
teleportationCommencing=\u00a77Teleporteringen p\u00e5b\u00f6rjas...
teleportationDisabled=\u00a77Teleportering inaktiverat.
+teleportationDisabledFor=\u00a76Teleportering inaktiverat f\u00f6r {0}
teleportationEnabled=\u00a77Teleportering aktiverat.
+teleportationEnabledFor=\u00a76TTeleportering aktiverat f\u00f6r {0}
teleporting=\u00a77Teleporterar...
teleportingPortal=\u00a77Teleporterar via portal.
tempBanned=Tempor\u00e4rt bannad fr\u00e5n servern f\u00f6r {0}
@@ -388,8 +454,6 @@ typeTpaccept=\u00a77F\u00f6r att teleportera, skriv \u00a7c/tpaccept\u00a77.
typeTpdeny=\u00a77F\u00f6r att neka denna f\u00f6rfr\u00e5gan, skriv \u00a7c/tpdeny\u00a77.
typeWorldName=\u00a77Du kan ocks\u00e5 skriva namnet av en specifik v\u00e4rld.
unableToSpawnMob=Kunde inte spawna moben.
-unbannedIP=Tog bort bannlysningen fr\u00e5n IP-adress.
-unbannedPlayer=Tog bort bannlysningen fr\u00e5n spelaren.
unignorePlayer=Du ignorerar inte spelaren {0} l\u00e4ngre.
unknownItemId=Ok\u00e4nt objekt-ID: {0}
unknownItemInList=Ok\u00e4nt objekt {0} i listan {1}.
@@ -400,10 +464,13 @@ unmutedPlayer=Spelaren {0} \u00e4r inte bannlyst l\u00e4ngre.
unvanished=\u00a7aDu \u00e4r synlig igen.
unvanishedReload=\u00a7cEn omladdning har tvingat dig att bli synlig.
upgradingFilesError=Fel vid uppgradering av filerna
+uptime=\u00a76Upptid:\u00a7c {0}
+userAFK=\u00a75{0} \u00a75\u00c3\u00a4r f\u00c3\u00b6r n\u00c3\u00a4rvarande borta och svarar kanske inte
userDoesNotExist=Anv\u00e4ndaren {0} existerar inte.
userIsAway={0} \u00e4r nu AFK
userIsNotAway={0} \u00e4r inte l\u00e4ngre AFK
userJailed=\u00a77Du har blivit f\u00e4ngslad
+userUnknown=\u00a74Varning: Anv\u00e4ndaren ''\u00a7c{0}\u00a74'' har aldrig varit inne p\u00e5 denna server tidigare.
userUsedPortal={0} anv\u00e4nde en existerande utg\u00e5ngsportal.
userdataMoveBackError=Kunde inte flytta userdata/{0}.tmp till userdata/{1}
userdataMoveError=Kunde inte flytta userdata/{0} till userdata/{1}.tmp
@@ -414,6 +481,7 @@ versionMismatchAll=Versionerna matchar inte! V\u00e4nligen uppgradera alla Essen
voiceSilenced=\u00a77Din r\u00f6st har tystats
walking=g\u00e5r
warpDeleteError=Problem med att ta bort warp-filen.
+warpList={0}
warpListPermission=\u00a7cDu har inte tillst\u00e5nd att lista warparna.
warpNotExist=Den warpen finns inte.
warpOverwrite=\u00a7cDu kan inte skriva \u00f6ver den warpen.
@@ -449,58 +517,6 @@ year=\u00e5r
years=\u00e5r
youAreHealed=\u00a77Du har blivit l\u00e4kt.
youHaveNewMail=\u00a7cDu har {0} meddelanden!\u00a7f Skriv \u00a77/mail read\u00a7f f\u00f6r att l\u00e4sa dina meddelanden.
-posX=\u00a76X: {0} (+\u00d6ster <-> -V\u00e4st)
-posY=\u00a76Y: {0} (+Upp <-> -Ner)
-posZ=\u00a76Z: {0} (+Syd <-> -Nort)
-posYaw=\u00a76Girning: {0} (Rotation)
-posPitch=\u00a76Pitch: {0} (Huvudvinkel)
-distance=\u00a76Avst\u00e5nd: {0}
-giveSpawn=\u00a76Ger\u00a7c {0} \u00a76av\u00a7c {1} till\u00a7c {2}\u00a76.
-warpList={0}
-uptime=\u00a76Upptid:\u00a7c {0}
-antiBuildCraft=\u00a74Du har inte till\u00e5telse att skapa\u00a7c {0}\u00a74.
-antiBuildDrop=\u00a74Du har inte till\u00e5telse att kasta ut\u00a7c {0}\u00a74.
-gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 bitar, \u00a7c{3}\u00a76 enheter
-invalidHomeName=\u00a74Ogiltigt hemnamn
-invalidWarpName=\u00a74Ogiltigt warpnamn
-userUnknown=\u00a74Varning: Anv\u00e4ndaren ''\u00a7c{0}\u00a74'' har aldrig varit inne p\u00e5 denna server tidigare.
-teleportationEnabledFor=\u00a76TTeleportering aktiverat f\u00f6r {0}
-teleportationDisabledFor=\u00a76Teleportering inaktiverat f\u00f6r {0}
-kitOnce=\u00a74Du kan inte av\u00e4nda det kitet igen.
-fullStack=\u00a74Du har redan en full stapel
-oversizedTempban=\u00a74Du kan inte banna en spelare just vid denna tidpunkt.
-recipeNone=Inga recept existerar f\u00c3\u00b6r {0}
-invalidNumber=Felaktigt nummer
-recipeBadIndex=Det finns inget recept med det numret
-recipeNothing=ingenting
-recipe=\u00a76Recept f\u00c3\u00b6r \u00a7c{0}\u00a76 ({1} av {2})
-recipeFurnace=\u00a76Sm\u00c3\u00a4lt \u00a7c{0}
-recipeGrid=\u00a7{0}X \u00a76| \u00a7{1}X \u00a76| \u00a7{2}X
-recipeGridItem=\ \u00a7{0}X \u00a76\u00c3\u00a4r \u00a7c{1}
-recipeMore=\u00a76Skriv /{0} \u00a7c{1}\u00a76 <nummer> f\u00c3\u00b6r att se andra recept f\u00c3\u00b6r \u00a7c{2}
-recipeWhere=\u00a76Var: {0}
-recipeShapeless=\u00a76Kombinera \u00a7c{0}
-editBookContents=\u00a7eDu kan nu \u00c3\u00a4ndra inneh\u00c3\u00a5llet i denna bok
-bookAuthorSet=\u00a76F\u00c3\u00b6rfattaren av boken \u00c3\u00a4r nu{0}
-bookTitleSet=\u00a76Titeln av boken har blivit \u00c3\u00a4ndrad till {0}
-denyChangeAuthor=\u00a74Du kan inte byta f\u00c3\u00b6rfattare p\u00c3\u00a5 denna bok
-denyChangeTitle=\u00a74Du kan inte byta titel p\u00c3\u00a5 denna bok
-denyBookEdit=\u00a74Du kan inte l\u00c3\u00a5sa upp denna boken
-bookLocked=\u00a7cDenna bok \u00c3\u00a4r nu l\u00c3\u00a5st
-holdBook=\u00a74Boken du h\u00c3\u00a5ller i \u00c3\u00a4r inte skrivbar
-fireworkColor=\u00a74Du m\u00c3\u00a5ste l\u00c3\u00a4gga till en f\u00c3\u00a4rg till fyrverkeripj\u00c3\u00a4sen f\u00c3\u00b6r att l\u00c3\u00a4gga till en effekt
-holdFirework=\u00a74Du m\u00c3\u00a5ste h\u00c3\u00a5lla i en fyrverkeripj\u00c3\u00a4s f\u00c3\u00b6r att l\u00c3\u00a4gga till effekter
-invalidFireworkFormat=\u00a76Alternativet \u00a74{0} \u00a76is \u00c3\u00a4r inte ett korrekt alternativ f\u00c3\u00b6r \u00a74{1}
-muteNotify=\u00a74{0} \u00a76har tystat \u00a74{1}
-resetBal=\u00a76Balansen har blivit \u00c3\u00a5terst\u00c3\u00a4lld till \u00a7a{0} \u00a76 f\u00c3\u00b6r alla spelare som \u00c3\u00a4r online
-resetBalAll=\u00a76Balansen har blivit \u00c3\u00a5terst\u00c3\u00a4lld till \u00a7a{0} \u00a76 f\u00c3\u00b6r alla spelare
-messageTruncated=\u00a74Meddelandet har blivit f\u00c3\u00b6rkortat, f\u00c3\u00b6r att se allt, skriv:\u00a7c /{0} {1}
-userAFK=\u00a75{0} \u00a75\u00c3\u00a4r f\u00c3\u00b6r n\u00c3\u00a4rvarande borta och svarar kanske inte
-fireworkEffectsCleared=\u00a76Removed all effects from held stack.
-fireworkSyntax=\u00a76Firework parameters:\u00a7c color:<color> [fade:<color>] [shape:<shape>] [effect:<effect>]\n\u00a76To use multiple colors/effects, seperate values with commas: \u00a7cred,blue,pink\n\u00a76Shapes:\u00a7c star, ball, large, creeper, burst \u00a76Effects:\u00a7c trail, twinkle
-bed=\u00a7obed\u00a7r
-bedNull=\u00a7mbed\u00a7r
-bedMissing=\u00a74Your bed is either unset, missing or blocked.
-bedSet=\u00a76Bed spawn set!
-kitGiveTo=\u00a76Giving kit\u00a7c {0}\u00a76 to {1}\u00a7.
-kitReceive=\u00a76Received kit\u00a7c {0}\u00a76.
+playerUnbanned=\u00a76Player\u00a7c {0} \u00a76unbanned {1}.
+playerUnbanIpAddress=\u00a76Player\u00a7c {0} \u00a76unbanned IP: {1}.
+playerBanIpAddress=\u00a76Player\u00a7c {0} \u00a76banned IP address {1}\u00a76.
diff --git a/Essentials/src/plugin.yml b/Essentials/src/plugin.yml
index 71ca7f626..3ecb39b5f 100644
--- a/Essentials/src/plugin.yml
+++ b/Essentials/src/plugin.yml
@@ -266,6 +266,10 @@ commands:
description: Pong!
usage: /<command>
aliases: [echo,eecho,eping,pong,epong]
+ potion:
+ description: Adds custom potion effects to a potion.
+ usage: /<command> <clear|apply|effect:<effect> power:<power> duration:<duration>>
+ aliases: [epotion,elixer,eelixer]
powertool:
description: Assigns a command to the item in hand.
usage: /<command> [l:|a:|r:|c:|d:][command] [arguments] - {player} can be replaced by name of a clicked player.
diff --git a/EssentialsAntiBuild/src/plugin.yml b/EssentialsAntiBuild/src/plugin.yml
index 897d70876..8d7ffbc14 100644
--- a/EssentialsAntiBuild/src/plugin.yml
+++ b/EssentialsAntiBuild/src/plugin.yml
@@ -6,4 +6,4 @@ version: TeamCity
website: http://tiny.cc/EssentialsCommands
description: Provides build protection.
authors: [Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans, Xeology, KHobbits]
-softdepend: [Essentials] \ No newline at end of file
+depend: [Essentials]
diff --git a/EssentialsGroupManager/src/Changelog.txt b/EssentialsGroupManager/src/Changelog.txt
index f3bc35baa..f7c66782a 100644
--- a/EssentialsGroupManager/src/Changelog.txt
+++ b/EssentialsGroupManager/src/Changelog.txt
@@ -213,3 +213,10 @@ v 2.0:
- Prevent '*' permissions granting the 'groupmanager.noofflineperms' permission.
- Added '/mancheckw <world>' to inspect which permission files a world is referencing.
- Add config potion to set if GM commands should be allowed on CommnandBlocks.
+ - Catch the error when using an out of date config for 'allow_commandblocks' So it doesn't kill the whole config.
+ - '/manselect' will no longer list duplicate worlds.
+ - Added a new mirroring option in the config of 'all_unnamed_worlds'. This will cause all new or unnamed worlds to use this mirroring.
+ - Don't allow adding a node with '/manuaddp' and '/mangaddp' which is already negated.
+ - Warn when adding a node where an exception already exist.
+ - Only prevent adding nodes with '/manuaddp' and '/mangaddp' if they are exact matches (not wildcards).
+ - Store worldSelection indexed on the senders name rather than the object (fixes commandblocks using manselect). \ No newline at end of file
diff --git a/EssentialsGroupManager/src/config.yml b/EssentialsGroupManager/src/config.yml
index 479399bb6..b73671e18 100644
--- a/EssentialsGroupManager/src/config.yml
+++ b/EssentialsGroupManager/src/config.yml
@@ -4,7 +4,7 @@ settings:
# The user will be able to promote players to the same group or even above.
opOverrides: true
- # Default setting for 'mantoglevalidate'
+ # Default setting for 'mantogglevalidate'
# true will cause GroupManager to attempt name matching by default.
validate_toggle: true
# **********************************************************************************************************************************
@@ -26,10 +26,11 @@ settings:
mirrors:
# Worlds listed here have their settings mirrored in their children.
- # The first element 'world' is the main worlds name
+ # The first element 'world' is the main worlds name, and is the parent world.
# subsequent elements 'world_nether' and 'world_the_end' are worlds which will use
# the same user/groups files as the parent.
- # Each child world can be configured to mirror the 'groups', 'users' or both files from it's parent.
+ # the element 'all_unnamed_worlds' specifies all worlds that aren't listed, and automatically mirrors them to it's parent.
+ # Each child world can be configured to mirror the 'groups', 'users' or both files from its parent.
world:
world_nether:
- users
@@ -37,6 +38,9 @@ settings:
world_the_end:
- users
- groups
+ all_unnamed_worlds:
+ - users
+ - groups
# world2: (World2 would have it's own set of user and groups files)
# world3:
# - users (World3 would use the users.yml from world2, but it's own groups.yml)
diff --git a/EssentialsGroupManager/src/globalgroups.yml b/EssentialsGroupManager/src/globalgroups.yml
index c3bcfac77..cec4d889d 100644
--- a/EssentialsGroupManager/src/globalgroups.yml
+++ b/EssentialsGroupManager/src/globalgroups.yml
@@ -195,7 +195,7 @@ groups:
- essentials.fly.safelogin
- essentials.getpos
- essentials.getpos.others
- - essentials.helpop.recieve
+ - essentials.helpop.receive
- essentials.home.others
- essentials.invsee
- essentials.jails
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GMConfiguration.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GMConfiguration.java
index e5a24258e..fbf8109f6 100644
--- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GMConfiguration.java
+++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GMConfiguration.java
@@ -85,9 +85,23 @@ public class GMConfiguration {
try {
Map<String, Object> config = getElement("config", getElement("settings", GMconfig));
- allowCommandBlocks = (Boolean) config.get("allow_commandblocks");
- opOverride = (Boolean) config.get("opOverrides");
- toggleValidate = (Boolean) config.get("validate_toggle");
+ try {
+ allowCommandBlocks = (Boolean) config.get("allow_commandblocks");
+ } catch (Exception ex) {
+ GroupManager.logger.log(Level.SEVERE, "Missing or corrupt 'allow_commandblocks' node. Using default settings", ex);
+ }
+
+ try {
+ opOverride = (Boolean) config.get("opOverrides");
+ } catch (Exception ex) {
+ GroupManager.logger.log(Level.SEVERE, "Missing or corrupt 'opOverrides' node. Using default settings", ex);
+ }
+
+ try {
+ toggleValidate = (Boolean) config.get("validate_toggle");
+ } catch (Exception ex) {
+ GroupManager.logger.log(Level.SEVERE, "Missing or corrupt 'validate_toggle' node. Using default settings", ex);
+ }
/*
* data node for save/backup timers.
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java
index 14006bf75..6e75b3a8a 100644
--- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java
+++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java
@@ -56,7 +56,7 @@ public class GroupManager extends JavaPlugin {
private Runnable commiter;
private ScheduledThreadPoolExecutor scheduler;
private Map<String, ArrayList<User>> overloadedUsers = new HashMap<String, ArrayList<User>>();
- private Map<CommandSender, String> selectedWorlds = new HashMap<CommandSender, String>();
+ private Map<String, String> selectedWorlds = new HashMap<String, String>();
private WorldsHolder worldsHolder;
private boolean validateOnlinePlayer = true;
@@ -142,7 +142,7 @@ public class GroupManager extends JavaPlugin {
* reset local variables.
*/
overloadedUsers = new HashMap<String, ArrayList<User>>();
- selectedWorlds = new HashMap<CommandSender, String>();
+ selectedWorlds = new HashMap<String, String>();
lastError = "";
/*
@@ -393,7 +393,8 @@ public class GroupManager extends JavaPlugin {
// PREVENT GM COMMANDS BEING USED ON COMMANDBLOCKS
if (sender instanceof BlockCommandSender && !isAllowCommandBlocks) {
Block block = ((BlockCommandSender)sender).getBlock();
- GroupManager.logger.warning(ChatColor.RED + "GM Commands can not be called from the CommandBlock at location: " + ChatColor.GREEN + block.getWorld().getName() + " - " + block.getX() + ", " + block.getY() + ", " + block.getZ());
+ GroupManager.logger.warning(ChatColor.RED + "GM Commands can not be called from CommandBlocks");
+ GroupManager.logger.warning(ChatColor.RED + "Location: " + ChatColor.GREEN + block.getWorld().getName() + ", " + block.getX() + ", " + block.getY() + ", " + block.getZ());
return true;
}
@@ -410,11 +411,10 @@ public class GroupManager extends JavaPlugin {
senderGroup = senderUser.getGroup();
isOpOverride = (isOpOverride && (senderPlayer.isOp() || worldsHolder.getWorldPermissions(senderPlayer).has(senderPlayer, "groupmanager.op")));
- System.out.println("[PLAYER_COMMAND] " + senderPlayer.getName() + ": /" + commandLabel + " " + Tasks.join(args, " "));
if (isOpOverride || worldsHolder.getWorldPermissions(senderPlayer).has(senderPlayer, "groupmanager." + cmd.getName())) {
playerCanDo = true;
}
- } else if ((sender instanceof ConsoleCommandSender) || (sender instanceof RemoteConsoleCommandSender)) {
+ } else if ((sender instanceof ConsoleCommandSender) || (sender instanceof RemoteConsoleCommandSender) || (sender instanceof BlockCommandSender)) {
if (!lastError.isEmpty() && !commandLabel.equalsIgnoreCase("manload")) {
sender.sendMessage(ChatColor.RED + "All commands are locked due to an error. " + ChatColor.BOLD + "" + ChatColor.UNDERLINE + "Check the log" + ChatColor.RESET + "" + ChatColor.RED + " and then try a '/manload'.");
@@ -432,7 +432,7 @@ public class GroupManager extends JavaPlugin {
dataHolder = worldsHolder.getWorldData(senderPlayer);
}
- String selectedWorld = selectedWorlds.get(sender);
+ String selectedWorld = selectedWorlds.get(sender.getName());
if (selectedWorld != null) {
dataHolder = worldsHolder.getWorldData(selectedWorld);
}
@@ -488,8 +488,8 @@ public class GroupManager extends JavaPlugin {
// Validating arguments
if ((args.length != 2) && (args.length != 3)) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <player> <group> | optional [world])");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/manuadd <player> <group> | optional [world])");
+ return true;
}
// Select the relevant world (if specified)
@@ -515,7 +515,7 @@ public class GroupManager extends JavaPlugin {
}
auxGroup = dataHolder.getGroup(args[1]);
if (auxGroup == null) {
- sender.sendMessage(ChatColor.RED + "Group not found!");
+ sender.sendMessage(ChatColor.RED + "" + args[1] + " Group doesnt exist!");
return false;
}
if (auxGroup.isGlobal()) {
@@ -526,15 +526,15 @@ public class GroupManager extends JavaPlugin {
// Validating permissions
if (!isConsole && !isOpOverride && (senderGroup != null ? permissionHandler.inGroup(auxUser.getName(), senderGroup.getName()) : false)) {
sender.sendMessage(ChatColor.RED + "Can't modify a player with the same permissions as you, or higher.");
- return false;
+ return true;
}
if (!isConsole && !isOpOverride && (permissionHandler.hasGroupInInheritance(auxGroup, senderGroup.getName()))) {
sender.sendMessage(ChatColor.RED + "The destination group can't be the same as yours, or higher.");
- return false;
+ return true;
}
if (!isConsole && !isOpOverride && (!permissionHandler.inGroup(senderUser.getName(), auxUser.getGroupName()) || !permissionHandler.inGroup(senderUser.getName(), auxGroup.getName()))) {
sender.sendMessage(ChatColor.RED + "You can't modify a player involving a group that you don't inherit.");
- return false;
+ return true;
}
// Seems OK
@@ -552,8 +552,8 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if (args.length != 1) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <player>)");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/manudel <player>)");
+ return true;
}
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
return false;
@@ -567,7 +567,7 @@ public class GroupManager extends JavaPlugin {
// Validating permission
if (!isConsole && !isOpOverride && (senderGroup != null ? permissionHandler.inGroup(auxUser.getName(), senderGroup.getName()) : false)) {
sender.sendMessage(ChatColor.RED + "You can't modify a player with same permissions as you, or higher.");
- return false;
+ return true;
}
// Seems OK
dataHolder.removeUser(auxUser.getName());
@@ -591,8 +591,8 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if (args.length != 2) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <player> <group>)");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/manuaddsub <player> <group>)");
+ return true;
}
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
return false;
@@ -605,13 +605,13 @@ public class GroupManager extends JavaPlugin {
}
auxGroup = dataHolder.getGroup(args[1]);
if (auxGroup == null) {
- sender.sendMessage(ChatColor.RED + "Group not found!");
- return false;
+ sender.sendMessage(ChatColor.RED + "" + args[1] + " Group doesnt exist!");
+ return true;
}
// Validating permission
if (!isConsole && !isOpOverride && (senderGroup != null ? permissionHandler.inGroup(auxUser.getName(), senderGroup.getName()) : false)) {
sender.sendMessage(ChatColor.RED + "You can't modify a player with same permissions as you, or higher.");
- return false;
+ return true;
}
// Seems OK
if (auxUser.addSubGroup(auxGroup))
@@ -630,7 +630,7 @@ public class GroupManager extends JavaPlugin {
// Validating arguments
if (args.length != 2) {
sender.sendMessage(ChatColor.RED + "Review your arguments count! (/manudelsub <user> <group>)");
- return false;
+ return true;
}
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
return false;
@@ -643,14 +643,14 @@ public class GroupManager extends JavaPlugin {
}
auxGroup = dataHolder.getGroup(args[1]);
if (auxGroup == null) {
- sender.sendMessage(ChatColor.RED + "Group not found!");
- return false;
+ sender.sendMessage(ChatColor.RED + "" + args[1] + " Group doesnt exist!");
+ return true;
}
// Validating permission
if (!isConsole && !isOpOverride && (senderGroup != null ? permissionHandler.inGroup(auxUser.getName(), senderGroup.getName()) : false)) {
sender.sendMessage(ChatColor.RED + "You can't modify a player with same permissions as you, or higher.");
- return false;
+ return true;
}
// Seems OK
auxUser.removeSubGroup(auxGroup);
@@ -670,13 +670,13 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if (args.length != 1) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <group>)");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/mangadd <group>)");
+ return true;
}
auxGroup = dataHolder.getGroup(args[0]);
if (auxGroup != null) {
- sender.sendMessage(ChatColor.RED + "Group already exists!");
- return false;
+ sender.sendMessage(ChatColor.RED + "" + args[0] + " Group already exist!");
+ return true;
}
// Seems OK
auxGroup = dataHolder.createGroup(args[0]);
@@ -692,13 +692,13 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if (args.length != 1) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <group>)");
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/mangdel <group>)");
return false;
}
auxGroup = dataHolder.getGroup(args[0]);
if (auxGroup == null) {
- sender.sendMessage(ChatColor.RED + "Group not exists!");
- return false;
+ sender.sendMessage(ChatColor.RED + "" + args[0] + " Group doesnt exist!");
+ return true;
}
// Seems OK
dataHolder.removeGroup(auxGroup.getName());
@@ -716,9 +716,16 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if (args.length != 2) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <player> <permission>)");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/manuaddp <player> <permission>)");
+ return true;
}
+
+ auxString = args[1];
+ if (auxString.startsWith("'") && auxString.endsWith("'"))
+ {
+ auxString = auxString.substring(1, auxString.length() - 1);
+ }
+
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
return false;
}
@@ -731,41 +738,52 @@ public class GroupManager extends JavaPlugin {
// Validating your permissions
if (!isConsole && !isOpOverride && (senderGroup != null ? permissionHandler.inGroup(auxUser.getName(), senderGroup.getName()) : false)) {
sender.sendMessage(ChatColor.RED + "Can't modify player with same group than you, or higher.");
- return false;
+ return true;
}
permissionResult = permissionHandler.checkFullUserPermission(senderUser, args[1]);
if (!isConsole && !isOpOverride && (permissionResult.resultType.equals(PermissionCheckResult.Type.NOTFOUND) || permissionResult.resultType.equals(PermissionCheckResult.Type.NEGATION))) {
sender.sendMessage(ChatColor.RED + "You can't add a permission you don't have.");
- return false;
+ return true;
}
// Validating permissions of user
permissionResult = permissionHandler.checkUserOnlyPermission(auxUser, args[1]);
- if (args[1].startsWith("+")) {
+ if (auxString.startsWith("+")) {
if (permissionResult.resultType.equals(PermissionCheckResult.Type.EXCEPTION)) {
sender.sendMessage(ChatColor.RED + "The user already has direct access to that permission.");
sender.sendMessage(ChatColor.RED + "Node: " + permissionResult.accessLevel);
- return false;
+ return true;
}
- } else if (args[1].startsWith("-")) {
+ } else if (auxString.startsWith("-")) {
if (permissionResult.resultType.equals(PermissionCheckResult.Type.EXCEPTION)) {
sender.sendMessage(ChatColor.RED + "The user already has an exception for this node.");
sender.sendMessage(ChatColor.RED + "Node: " + permissionResult.accessLevel);
- return false;
+ return true;
} else if (permissionResult.resultType.equals(PermissionCheckResult.Type.NEGATION)) {
- sender.sendMessage(ChatColor.RED + "The user already has a matching node ");
+ sender.sendMessage(ChatColor.RED + "The user already has a matching node.");
sender.sendMessage(ChatColor.RED + "Node: " + permissionResult.accessLevel);
- return false;
+ return true;
}
} else {
- if (permissionResult.resultType.equals(PermissionCheckResult.Type.FOUND)) {
+ if (permissionResult.resultType.equals(PermissionCheckResult.Type.EXCEPTION)) {
+ // Warn only while still allowing you to add the node.
+ sender.sendMessage(ChatColor.RED + "The user already has an exception for this node.");
+ sender.sendMessage(ChatColor.RED + "Node: " + permissionResult.accessLevel);
+ } else if (permissionResult.resultType.equals(PermissionCheckResult.Type.FOUND)) {
sender.sendMessage(ChatColor.RED + "The user already has direct access to that permission.");
sender.sendMessage(ChatColor.RED + "Node: " + permissionResult.accessLevel);
- return false;
+ if (permissionResult.accessLevel.equalsIgnoreCase(args[1]))
+ {
+ return true;
+ }
+ } else if (permissionResult.resultType.equals(PermissionCheckResult.Type.NEGATION)) {
+ // Warn only while still allowing you to add the node.
+ sender.sendMessage(ChatColor.RED + "The user already has a matching Negated node.");
+ sender.sendMessage(ChatColor.RED + "Node: " + permissionResult.accessLevel);
}
}
// Seems OK
- auxUser.addPermission(args[1]);
- sender.sendMessage(ChatColor.YELLOW + "You added '" + args[1] + "' to player '" + auxUser.getName() + "' permissions.");
+ auxUser.addPermission(auxString);
+ sender.sendMessage(ChatColor.YELLOW + "You added '" + auxString + "' to player '" + auxUser.getName() + "' permissions.");
targetPlayer = this.getServer().getPlayer(auxUser.getName());
if (targetPlayer != null)
@@ -781,9 +799,16 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if (args.length != 2) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <player> <permission>)");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/manudelp <player> <permission>)");
+ return true;
+ }
+
+ auxString = args[1];
+ if (auxString.startsWith("'") && auxString.endsWith("'"))
+ {
+ auxString = auxString.substring(1, auxString.length() - 1);
}
+
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
return false;
}
@@ -796,27 +821,27 @@ public class GroupManager extends JavaPlugin {
// Validating your permissions
if (!isConsole && !isOpOverride && (senderGroup != null ? permissionHandler.inGroup(auxUser.getName(), senderGroup.getName()) : false)) {
sender.sendMessage(ChatColor.RED + "You can't modify a player with same group as you, or higher.");
- return false;
+ return true;
}
- permissionResult = permissionHandler.checkFullUserPermission(senderUser, args[1]);
+ permissionResult = permissionHandler.checkFullUserPermission(senderUser, auxString);
if (!isConsole && !isOpOverride && (permissionResult.resultType.equals(PermissionCheckResult.Type.NOTFOUND) || permissionResult.resultType.equals(PermissionCheckResult.Type.NEGATION))) {
sender.sendMessage(ChatColor.RED + "You can't remove a permission you don't have.");
- return false;
+ return true;
}
// Validating permissions of user
- permissionResult = permissionHandler.checkUserOnlyPermission(auxUser, args[1]);
+ permissionResult = permissionHandler.checkUserOnlyPermission(auxUser, auxString);
if (permissionResult.resultType.equals(PermissionCheckResult.Type.NOTFOUND)) {
sender.sendMessage(ChatColor.RED + "The user doesn't have direct access to that permission.");
- return false;
+ return true;
}
- if (!auxUser.hasSamePermissionNode(args[1])) {
+ if (!auxUser.hasSamePermissionNode(auxString)) {
sender.sendMessage(ChatColor.RED + "This permission node doesn't match any node.");
sender.sendMessage(ChatColor.RED + "But might match node: " + permissionResult.accessLevel);
- return false;
+ return true;
}
// Seems OK
- auxUser.removePermission(args[1]);
- sender.sendMessage(ChatColor.YELLOW + "You removed '" + args[1] + "' from player '" + auxUser.getName() + "' permissions.");
+ auxUser.removePermission(auxString);
+ sender.sendMessage(ChatColor.YELLOW + "You removed '" + auxString + "' from player '" + auxUser.getName() + "' permissions.");
targetPlayer = this.getServer().getPlayer(auxUser.getName());
if (targetPlayer != null)
@@ -832,8 +857,8 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if ((args.length == 0) || (args.length > 2)) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <player> (+))");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/manulistp <player> (+))");
+ return true;
}
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
@@ -897,8 +922,14 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if (args.length != 2) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <player> <permission>)");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/manucheckp <player> <permission>)");
+ return true;
+ }
+
+ auxString = args[1];
+ if (auxString.startsWith("'") && auxString.endsWith("'"))
+ {
+ auxString = auxString.substring(1, auxString.length() - 1);
}
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
@@ -912,24 +943,24 @@ public class GroupManager extends JavaPlugin {
}
targetPlayer = this.getServer().getPlayer(auxUser.getName());
// Validating permission
- permissionResult = permissionHandler.checkFullGMPermission(auxUser, args[1], false);
+ permissionResult = permissionHandler.checkFullGMPermission(auxUser, auxString, false);
if (permissionResult.resultType.equals(PermissionCheckResult.Type.NOTFOUND)) {
// No permissions found in GM so fall through and check Bukkit.
- sender.sendMessage(ChatColor.RED + "The player doesn't have access to that permission");
+ sender.sendMessage(ChatColor.YELLOW + "The player doesn't have access to that permission");
} else {
// This permission was found in groupmanager.
if (permissionResult.owner instanceof User) {
if (permissionResult.resultType.equals(PermissionCheckResult.Type.NEGATION)) {
- sender.sendMessage(ChatColor.RED + "The user has directly a negation node for that permission.");
+ sender.sendMessage(ChatColor.YELLOW + "The user has directly a negation node for that permission.");
} else {
sender.sendMessage(ChatColor.YELLOW + "The user has directly this permission.");
}
sender.sendMessage(ChatColor.YELLOW + "Permission Node: " + permissionResult.accessLevel);
} else if (permissionResult.owner instanceof Group) {
if (permissionResult.resultType.equals(PermissionCheckResult.Type.NEGATION)) {
- sender.sendMessage(ChatColor.RED + "The user inherits a negation permission from group: " + permissionResult.owner.getName());
+ sender.sendMessage(ChatColor.YELLOW + "The user inherits a negation permission from group: " + permissionResult.owner.getName());
} else {
sender.sendMessage(ChatColor.YELLOW + "The user inherits the permission from group: " + permissionResult.owner.getName());
}
@@ -952,48 +983,67 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if (args.length != 2) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <group> <permission>)");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/mangaaddp <group> <permission>)");
+ return true;
+ }
+
+ auxString = args[1];
+ if (auxString.startsWith("'") && auxString.endsWith("'"))
+ {
+ auxString = auxString.substring(1, auxString.length() - 1);
}
+
auxGroup = dataHolder.getGroup(args[0]);
if (auxGroup == null) {
- sender.sendMessage(ChatColor.RED + "The specified group does not exist!");
+ sender.sendMessage(ChatColor.RED + "" + args[0] + " Group doesnt exist!");
return false;
}
// Validating your permissions
permissionResult = permissionHandler.checkFullUserPermission(senderUser, args[1]);
if (!isConsole && !isOpOverride && (permissionResult.resultType.equals(PermissionCheckResult.Type.NOTFOUND) || permissionResult.resultType.equals(PermissionCheckResult.Type.NEGATION))) {
sender.sendMessage(ChatColor.RED + "You can't add a permission you don't have.");
- return false;
+ return true;
}
// Validating permissions of user
permissionResult = permissionHandler.checkGroupOnlyPermission(auxGroup, args[1]);
- if (args[1].startsWith("+")) {
+ if (auxString.startsWith("+")) {
if (permissionResult.resultType.equals(PermissionCheckResult.Type.EXCEPTION)) {
sender.sendMessage(ChatColor.RED + "The group already has direct access to that permission.");
sender.sendMessage(ChatColor.RED + "Node: " + permissionResult.accessLevel);
- return false;
+ return true;
}
- } else if (args[1].startsWith("-")) {
+ } else if (auxString.startsWith("-")) {
if (permissionResult.resultType.equals(PermissionCheckResult.Type.EXCEPTION)) {
sender.sendMessage(ChatColor.RED + "The group already has an exception for this node.");
sender.sendMessage(ChatColor.RED + "Node: " + permissionResult.accessLevel);
- return false;
+ return true;
} else if (permissionResult.resultType.equals(PermissionCheckResult.Type.NEGATION)) {
sender.sendMessage(ChatColor.RED + "The group already has a matching node.");
sender.sendMessage(ChatColor.RED + "Node: " + permissionResult.accessLevel);
- return false;
+ return true;
}
} else {
- if (permissionResult.resultType.equals(PermissionCheckResult.Type.FOUND)) {
+ if (permissionResult.resultType.equals(PermissionCheckResult.Type.EXCEPTION)) {
+ // Warn only while still allowing you to add the node.
+ sender.sendMessage(ChatColor.RED + "The group already has an exception for this node.");
+ sender.sendMessage(ChatColor.RED + "Node: " + permissionResult.accessLevel);
+ } else if (permissionResult.resultType.equals(PermissionCheckResult.Type.FOUND)) {
sender.sendMessage(ChatColor.RED + "The group already has direct access to that permission.");
sender.sendMessage(ChatColor.RED + "Node: " + permissionResult.accessLevel);
- return false;
+ // Abort adding if the node is a direct match.
+ if (permissionResult.accessLevel.equalsIgnoreCase(args[1]))
+ {
+ return true;
+ }
+ } else if (permissionResult.resultType.equals(PermissionCheckResult.Type.NEGATION)) {
+ // Warn only while still allowing you to add the node.
+ sender.sendMessage(ChatColor.RED + "The group already has a matching Negated node.");
+ sender.sendMessage(ChatColor.RED + "Node: " + permissionResult.accessLevel);
}
}
// Seems OK
- auxGroup.addPermission(args[1]);
- sender.sendMessage(ChatColor.YELLOW + "You added '" + args[1] + "' to group '" + auxGroup.getName() + "' permissions.");
+ auxGroup.addPermission(auxString);
+ sender.sendMessage(ChatColor.YELLOW + "You added '" + auxString + "' to group '" + auxGroup.getName() + "' permissions.");
BukkitPermissions.updateAllPlayers();
@@ -1007,34 +1057,41 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if (args.length != 2) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <group> <permission>)");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/mangdelp <group> <permission>)");
+ return true;
}
+
+ auxString = args[1];
+ if (auxString.startsWith("'") && auxString.endsWith("'"))
+ {
+ auxString = auxString.substring(1, auxString.length() - 1);
+ }
+
auxGroup = dataHolder.getGroup(args[0]);
if (auxGroup == null) {
- sender.sendMessage(ChatColor.RED + "The specified group does not exist!");
- return false;
+ sender.sendMessage(ChatColor.RED + "" + args[0] + " Group doesnt exist!");
+ return true;
}
// Validating your permissions
- permissionResult = permissionHandler.checkFullUserPermission(senderUser, args[1]);
+ permissionResult = permissionHandler.checkFullUserPermission(senderUser, auxString);
if (!isConsole && (permissionResult.resultType.equals(PermissionCheckResult.Type.NOTFOUND) || permissionResult.resultType.equals(PermissionCheckResult.Type.NEGATION))) {
sender.sendMessage(ChatColor.RED + "Can't remove a permission you don't have.");
- return false;
+ return true;
}
// Validating permissions of user
- permissionResult = permissionHandler.checkGroupOnlyPermission(auxGroup, args[1]);
+ permissionResult = permissionHandler.checkGroupOnlyPermission(auxGroup, auxString);
if (permissionResult.resultType.equals(PermissionCheckResult.Type.NOTFOUND)) {
sender.sendMessage(ChatColor.RED + "The group doesn't have direct access to that permission.");
return false;
}
- if (!auxGroup.hasSamePermissionNode(args[1])) {
+ if (!auxGroup.hasSamePermissionNode(auxString)) {
sender.sendMessage(ChatColor.RED + "This permission node doesn't match any node.");
sender.sendMessage(ChatColor.RED + "But might match node: " + permissionResult.accessLevel);
- return false;
+ return true;
}
// Seems OK
- auxGroup.removePermission(args[1]);
- sender.sendMessage(ChatColor.YELLOW + "You removed '" + args[1] + "' from group '" + auxGroup.getName() + "' permissions.");
+ auxGroup.removePermission(auxString);
+ sender.sendMessage(ChatColor.YELLOW + "You removed '" + auxString + "' from group '" + auxGroup.getName() + "' permissions.");
BukkitPermissions.updateAllPlayers();
@@ -1048,13 +1105,13 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if (args.length != 1) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <group>)");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/manglistp <group>)");
+ return true;
}
auxGroup = dataHolder.getGroup(args[0]);
if (auxGroup == null) {
- sender.sendMessage(ChatColor.RED + "The specified group does not exist!");
- return false;
+ sender.sendMessage(ChatColor.RED + "" + args[0] + " Group doesnt exist!");
+ return true;
}
// Validating permission
@@ -1097,25 +1154,32 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if (args.length != 2) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <group> <permission>)");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/mangcheckp <group> <permission>)");
+ return true;
+ }
+
+ auxString = args[1];
+ if (auxString.startsWith("'") && auxString.endsWith("'"))
+ {
+ auxString = auxString.substring(1, auxString.length() - 1);
}
+
auxGroup = dataHolder.getGroup(args[0]);
if (auxGroup == null) {
- sender.sendMessage(ChatColor.RED + "The specified group does not exist!");
- return false;
+ sender.sendMessage(ChatColor.RED + "" + args[0] + " Group doesnt exist!");
+ return true;
}
// Validating permission
- permissionResult = permissionHandler.checkGroupPermissionWithInheritance(auxGroup, args[1]);
+ permissionResult = permissionHandler.checkGroupPermissionWithInheritance(auxGroup, auxString);
if (permissionResult.resultType.equals(PermissionCheckResult.Type.NOTFOUND)) {
- sender.sendMessage(ChatColor.RED + "The group doesn't have access to that permission");
- return false;
+ sender.sendMessage(ChatColor.YELLOW + "The group doesn't have access to that permission");
+ return true;
}
// Seems OK
// auxString = permissionHandler.checkUserOnlyPermission(auxUser, args[1]);
if (permissionResult.owner instanceof Group) {
if (permissionResult.resultType.equals(PermissionCheckResult.Type.NEGATION)) {
- sender.sendMessage(ChatColor.RED + "The group inherits the negation permission from group: " + permissionResult.owner.getName());
+ sender.sendMessage(ChatColor.YELLOW + "The group inherits the negation permission from group: " + permissionResult.owner.getName());
} else {
sender.sendMessage(ChatColor.YELLOW + "The user inherits the permission from group: " + permissionResult.owner.getName());
}
@@ -1132,28 +1196,28 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if (args.length != 2) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <group1> <group2>)");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/mangaddi <group1> <group2>)");
+ return true;
}
auxGroup = dataHolder.getGroup(args[0]);
if (auxGroup == null) {
- sender.sendMessage(ChatColor.RED + "Group 1 does not exist!");
- return false;
+ sender.sendMessage(ChatColor.RED + "" + args[0] + " Group doesnt exist!");
+ return true;
}
auxGroup2 = dataHolder.getGroup(args[1]);
if (auxGroup2 == null) {
- sender.sendMessage(ChatColor.RED + "Group 2 does not exist!");
- return false;
+ sender.sendMessage(ChatColor.RED + "" + args[1] + " Group doesnt exist!");
+ return true;
}
if (auxGroup.isGlobal()) {
sender.sendMessage(ChatColor.RED + "GlobalGroups do NOT support inheritance.");
- return false;
+ return true;
}
// Validating permission
if (permissionHandler.hasGroupInInheritance(auxGroup, auxGroup2.getName())) {
sender.sendMessage(ChatColor.RED + "Group " + auxGroup.getName() + " already inherits " + auxGroup2.getName() + " (might not be directly)");
- return false;
+ return true;
}
// Seems OK
auxGroup.addInherits(auxGroup2);
@@ -1171,32 +1235,32 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if (args.length != 2) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <group1> <group2>)");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/mangdeli <group1> <group2>)");
+ return true;
}
auxGroup = dataHolder.getGroup(args[0]);
if (auxGroup == null) {
- sender.sendMessage(ChatColor.RED + "Group 1 does not exist!");
- return false;
+ sender.sendMessage(ChatColor.RED + "" + args[0] + " Group doesnt exist!");
+ return true;
}
auxGroup2 = dataHolder.getGroup(args[1]);
if (auxGroup2 == null) {
- sender.sendMessage(ChatColor.RED + "Group 2 does not exist!");
- return false;
+ sender.sendMessage(ChatColor.RED + "" + args[1] + " Group doesnt exist!");
+ return true;
}
if (auxGroup.isGlobal()) {
sender.sendMessage(ChatColor.RED + "GlobalGroups do NOT support inheritance.");
- return false;
+ return true;
}
// Validating permission
if (!permissionHandler.hasGroupInInheritance(auxGroup, auxGroup2.getName())) {
sender.sendMessage(ChatColor.RED + "Group " + auxGroup.getName() + " does not inherits " + auxGroup2.getName() + ".");
- return false;
+ return true;
}
if (!auxGroup.getInherits().contains(auxGroup2.getName())) {
sender.sendMessage(ChatColor.RED + "Group " + auxGroup.getName() + " does not inherits " + auxGroup2.getName() + " directly.");
- return false;
+ return true;
}
// Seems OK
auxGroup.removeInherits(auxGroup2.getName());
@@ -1214,8 +1278,8 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if (args.length < 3) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <user> <variable> <value>)");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/manuaddv <user> <variable> <value>)");
+ return true;
}
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
return false;
@@ -1235,6 +1299,10 @@ public class GroupManager extends JavaPlugin {
auxString += " ";
}
}
+ if (auxString.startsWith("'") && auxString.endsWith("'"))
+ {
+ auxString = auxString.substring(1, auxString.length() - 1);
+ }
auxUser.getVariables().addVar(args[1], Variables.parseVariableValue(auxString));
sender.sendMessage(ChatColor.YELLOW + "Variable " + ChatColor.GOLD + args[1] + ChatColor.YELLOW + ":'" + ChatColor.GREEN + auxString + ChatColor.YELLOW + "' added to the user " + auxUser.getName());
@@ -1248,8 +1316,8 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if (args.length != 2) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <user> <variable>)");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/manudelv <user> <variable>)");
+ return true;
}
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
return false;
@@ -1263,6 +1331,7 @@ public class GroupManager extends JavaPlugin {
// Validating permission
if (!auxUser.getVariables().hasVar(args[1])) {
sender.sendMessage(ChatColor.RED + "The user doesn't have directly that variable!");
+ return true;
}
// Seems OK
auxUser.getVariables().removeVar(args[1]);
@@ -1278,8 +1347,8 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if (args.length != 1) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <user>)");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/manulistv <user>)");
+ return true;
}
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
return false;
@@ -1313,8 +1382,8 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if (args.length != 2) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <user> <variable>)");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/manucheckv <user> <variable>)");
+ return true;
}
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
return false;
@@ -1337,8 +1406,8 @@ public class GroupManager extends JavaPlugin {
continue;
}
if (auxGroup2 == null) {
- sender.sendMessage(ChatColor.RED + "The user doesn't have access to that variable!");
- return false;
+ sender.sendMessage(ChatColor.YELLOW + "The user doesn't have access to that variable!");
+ return true;
}
}
// Seems OK
@@ -1361,17 +1430,17 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if (args.length < 3) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <group> <variable> <value>)");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/mangaddv <group> <variable> <value>)");
+ return true;
}
auxGroup = dataHolder.getGroup(args[0]);
if (auxGroup == null) {
- sender.sendMessage(ChatColor.RED + "The specified group does not exist!");
- return false;
+ sender.sendMessage(ChatColor.RED + "" + args[0] + " Group doesnt exist!");
+ return true;
}
if (auxGroup.isGlobal()) {
sender.sendMessage(ChatColor.RED + "GlobalGroups do NOT support Info Nodes.");
- return false;
+ return true;
}
// Validating permission
// Seems OK
@@ -1382,6 +1451,10 @@ public class GroupManager extends JavaPlugin {
auxString += " ";
}
}
+ if (auxString.startsWith("'") && auxString.endsWith("'"))
+ {
+ auxString = auxString.substring(1, auxString.length() - 1);
+ }
auxGroup.getVariables().addVar(args[1], Variables.parseVariableValue(auxString));
sender.sendMessage(ChatColor.YELLOW + "Variable " + ChatColor.GOLD + args[1] + ChatColor.YELLOW + ":'" + ChatColor.GREEN + auxString + ChatColor.YELLOW + "' added to the group " + auxGroup.getName());
@@ -1395,21 +1468,22 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if (args.length != 2) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <group> <variable>)");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/mangdelv <group> <variable>)");
+ return true;
}
auxGroup = dataHolder.getGroup(args[0]);
if (auxGroup == null) {
- sender.sendMessage(ChatColor.RED + "The specified group does not exist!");
- return false;
+ sender.sendMessage(ChatColor.RED + "" + args[0] + " Group doesnt exist!");
+ return true;
}
if (auxGroup.isGlobal()) {
sender.sendMessage(ChatColor.RED + "GlobalGroups do NOT support Info Nodes.");
- return false;
+ return true;
}
// Validating permission
if (!auxGroup.getVariables().hasVar(args[1])) {
sender.sendMessage(ChatColor.RED + "The group doesn't have directly that variable!");
+ return true;
}
// Seems OK
auxGroup.getVariables().removeVar(args[1]);
@@ -1425,17 +1499,17 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if (args.length != 1) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <group>)");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/manglistv <group>)");
+ return true;
}
auxGroup = dataHolder.getGroup(args[0]);
if (auxGroup == null) {
- sender.sendMessage(ChatColor.RED + "The specified group does not exist!");
- return false;
+ sender.sendMessage(ChatColor.RED + "" + args[0] + " Group doesnt exist!");
+ return true;
}
if (auxGroup.isGlobal()) {
sender.sendMessage(ChatColor.RED + "GlobalGroups do NOT support Info Nodes.");
- return false;
+ return true;
}
// Validating permission
// Seems OK
@@ -1468,17 +1542,17 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if (args.length != 2) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <group> <variable>)");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/mangcheckv <group> <variable>)");
+ return true;
}
auxGroup = dataHolder.getGroup(args[0]);
if (auxGroup == null) {
- sender.sendMessage(ChatColor.RED + "The specified group does not exist!");
- return false;
+ sender.sendMessage(ChatColor.RED + "" + args[0] + " Group doesnt exist!");
+ return true;
}
if (auxGroup.isGlobal()) {
sender.sendMessage(ChatColor.RED + "GlobalGroups do NOT support Info Nodes.");
- return false;
+ return true;
}
// Validating permission
auxGroup2 = permissionHandler.nextGroupWithVariable(auxGroup, args[1]);
@@ -1501,8 +1575,8 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if (args.length != 1) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <player>)");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/manwhois <player>)");
+ return true;
}
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
return false;
@@ -1541,8 +1615,8 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if (args.length != 1) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <player>)");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/tempadd <player>)");
+ return true;
}
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
return false;
@@ -1555,7 +1629,7 @@ public class GroupManager extends JavaPlugin {
// Validating permission
if (!isConsole && !isOpOverride && (senderGroup != null ? permissionHandler.inGroup(auxUser.getName(), senderGroup.getName()) : false)) {
sender.sendMessage(ChatColor.RED + "Can't modify player with same permissions than you, or higher.");
- return false;
+ return true;
}
// Seems OK
if (overloadedUsers.get(dataHolder.getName().toLowerCase()) == null) {
@@ -1563,7 +1637,7 @@ public class GroupManager extends JavaPlugin {
}
dataHolder.overloadUser(auxUser.getName());
overloadedUsers.get(dataHolder.getName().toLowerCase()).add(dataHolder.getUser(auxUser.getName()));
- sender.sendMessage(ChatColor.YELLOW + "Player overloaded!");
+ sender.sendMessage(ChatColor.YELLOW + "Player set to overload mode!");
return true;
@@ -1575,8 +1649,8 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if (args.length != 1) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <player>)");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/tempdel <player>)");
+ return true;
}
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
return false;
@@ -1589,7 +1663,7 @@ public class GroupManager extends JavaPlugin {
// Validating permission
if (!isConsole && !isOpOverride && (senderGroup != null ? permissionHandler.inGroup(auxUser.getName(), senderGroup.getName()) : false)) {
sender.sendMessage(ChatColor.RED + "You can't modify a player with same permissions as you, or higher.");
- return false;
+ return true;
}
// Seems OK
if (overloadedUsers.get(dataHolder.getName().toLowerCase()) == null) {
@@ -1599,7 +1673,7 @@ public class GroupManager extends JavaPlugin {
if (overloadedUsers.get(dataHolder.getName().toLowerCase()).contains(auxUser)) {
overloadedUsers.get(dataHolder.getName().toLowerCase()).remove(auxUser);
}
- sender.sendMessage(ChatColor.YELLOW + "You removed that player's overload. He's back to normal!");
+ sender.sendMessage(ChatColor.YELLOW + "Player overload mode is now disabled.");
return true;
@@ -1759,8 +1833,8 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if (args.length != 2) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <player> <group>)");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/manpromote <player> <group>)");
+ return true;
}
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
return false;
@@ -1772,33 +1846,33 @@ public class GroupManager extends JavaPlugin {
}
auxGroup = dataHolder.getGroup(args[1]);
if (auxGroup == null) {
- sender.sendMessage(ChatColor.RED + "Group not found!");
- return false;
+ sender.sendMessage(ChatColor.RED + "" + args[0] + " Group doesnt exist!");
+ return true;
}
if (auxGroup.isGlobal()) {
sender.sendMessage(ChatColor.RED + "Players may not be members of GlobalGroups directly.");
- return false;
+ return true;
}
// Validating permission
if (!isConsole && !isOpOverride && (senderGroup != null ? permissionHandler.inGroup(auxUser.getName(), senderGroup.getName()) : false)) {
sender.sendMessage(ChatColor.RED + "You can't modify a player with same permissions as you, or higher.");
- return false;
+ return true;
}
if (!isConsole && !isOpOverride && (permissionHandler.hasGroupInInheritance(auxGroup, senderGroup.getName()))) {
sender.sendMessage(ChatColor.RED + "The destination group can't be the same as yours, or higher.");
- return false;
+ return true;
}
if (!isConsole && !isOpOverride && (!permissionHandler.inGroup(senderUser.getName(), auxUser.getGroupName()) || !permissionHandler.inGroup(senderUser.getName(), auxGroup.getName()))) {
sender.sendMessage(ChatColor.RED + "You can't modify a player involving a group that you don't inherit.");
- return false;
+ return true;
}
if (!isConsole && !isOpOverride && (!permissionHandler.hasGroupInInheritance(auxUser.getGroup(), auxGroup.getName()) && !permissionHandler.hasGroupInInheritance(auxGroup, auxUser.getGroupName()))) {
sender.sendMessage(ChatColor.RED + "You can't modify a player using groups with different heritage line.");
- return false;
+ return true;
}
if (!isConsole && !isOpOverride && (!permissionHandler.hasGroupInInheritance(auxGroup, auxUser.getGroupName()))) {
sender.sendMessage(ChatColor.RED + "The new group must be a higher rank.");
- return false;
+ return true;
}
// Seems OK
auxUser.setGroup(auxGroup);
@@ -1815,8 +1889,8 @@ public class GroupManager extends JavaPlugin {
}
// Validating arguments
if (args.length != 2) {
- sender.sendMessage(ChatColor.RED + "Review your arguments count! (/<command> <player> <group>)");
- return false;
+ sender.sendMessage(ChatColor.RED + "Review your arguments count! (/mandemote <player> <group>)");
+ return true;
}
if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) {
return false;
@@ -1828,33 +1902,33 @@ public class GroupManager extends JavaPlugin {
}
auxGroup = dataHolder.getGroup(args[1]);
if (auxGroup == null) {
- sender.sendMessage(ChatColor.RED + "Group not found!");
- return false;
+ sender.sendMessage(ChatColor.RED + "" + args[0] + " Group doesnt exist!");
+ return true;
}
if (auxGroup.isGlobal()) {
sender.sendMessage(ChatColor.RED + "Players may not be members of GlobalGroups directly.");
- return false;
+ return true;
}
// Validating permission
if (!isConsole && !isOpOverride && (senderGroup != null ? permissionHandler.inGroup(auxUser.getName(), senderGroup.getName()) : false)) {
sender.sendMessage(ChatColor.RED + "You can't modify a player with same permissions as you, or higher.");
- return false;
+ return true;
}
if (!isConsole && !isOpOverride && (permissionHandler.hasGroupInInheritance(auxGroup, senderGroup.getName()))) {
sender.sendMessage(ChatColor.RED + "The destination group can't be the same as yours, or higher.");
- return false;
+ return true;
}
if (!isConsole && !isOpOverride && (!permissionHandler.inGroup(senderUser.getName(), auxUser.getGroupName()) || !permissionHandler.inGroup(senderUser.getName(), auxGroup.getName()))) {
sender.sendMessage(ChatColor.RED + "You can't modify a player involving a group that you don't inherit.");
- return false;
+ return true;
}
if (!isConsole && !isOpOverride && (!permissionHandler.hasGroupInInheritance(auxUser.getGroup(), auxGroup.getName()) && !permissionHandler.hasGroupInInheritance(auxGroup, auxUser.getGroupName()))) {
sender.sendMessage(ChatColor.RED + "You can't modify a player using groups with different inheritage line.");
- return false;
+ return true;
}
if (!isConsole && !isOpOverride && (permissionHandler.hasGroupInInheritance(auxGroup, auxUser.getGroupName()))) {
sender.sendMessage(ChatColor.RED + "The new group must be a lower rank.");
- return false;
+ return true;
}
// Seems OK
auxUser.setGroup(auxGroup);
@@ -1881,7 +1955,7 @@ public class GroupManager extends JavaPlugin {
}
return true;
case manworld:
- auxString = selectedWorlds.get(sender);
+ auxString = selectedWorlds.get(sender.getName());
if (auxString != null) {
sender.sendMessage(ChatColor.YELLOW + "You have the world '" + dataHolder.getName() + "' in your selection.");
} else {
@@ -1924,7 +1998,7 @@ public class GroupManager extends JavaPlugin {
}
dataHolder = worldsHolder.getWorldData(auxString);
permissionHandler = dataHolder.getPermissionsHandler();
- selectedWorlds.put(sender, dataHolder.getName());
+ selectedWorlds.put(sender.getName(), dataHolder.getName());
sender.sendMessage(ChatColor.YELLOW + "You have selected world '" + dataHolder.getName() + "'.");
return true;
@@ -1934,7 +2008,7 @@ public class GroupManager extends JavaPlugin {
sender.sendMessage(ChatColor.RED + "Review your arguments count!");
return false;
}
- selectedWorlds.remove(sender);
+ selectedWorlds.remove(sender.getName());
sender.sendMessage(ChatColor.YELLOW + "You have removed your world selection. Working with current world(if possible).");
return true;
@@ -1980,7 +2054,7 @@ public class GroupManager extends JavaPlugin {
}
}
sender.sendMessage(ChatColor.RED + "You are not allowed to use that command.");
- return false;
+ return true;
}
/**
@@ -1992,7 +2066,7 @@ public class GroupManager extends JavaPlugin {
permissionHandler = dataHolder.getPermissionsHandler();
if ((dataHolder != null) && (permissionHandler != null)) {
- selectedWorlds.put(sender, dataHolder.getName());
+ selectedWorlds.put(sender.getName(), dataHolder.getName());
sender.sendMessage(ChatColor.RED + "Couldn't retrieve your world. Default world '" + worldsHolder.getDefaultWorld().getName() + "' selected.");
return true;
}
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java
index bbb2ae03a..adec183cd 100644
--- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java
+++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java
@@ -144,7 +144,7 @@ public class User extends DataUnit implements Cloneable {
boolean notify = (!oldGroup.equalsIgnoreCase(defaultGroupName)) || ((oldGroup.equalsIgnoreCase(defaultGroupName)) && (!this.group.equalsIgnoreCase(defaultGroupName)));
if (notify)
- GroupManager.notify(this.getName(), String.format(" moved to the group %s.", group.getName()));
+ GroupManager.notify(this.getName(), String.format(" moved to the group %s in %s.", group.getName(), this.getDataSource().getName()));
GroupManager.getGMEventHandler().callEvent(this, Action.USER_GROUP_CHANGED);
}
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/worlds/WorldsHolder.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/worlds/WorldsHolder.java
index 2661c6bc0..d173307f2 100644
--- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/worlds/WorldsHolder.java
+++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/worlds/WorldsHolder.java
@@ -59,6 +59,28 @@ public class WorldsHolder {
resetWorldsHolder();
}
+ /**
+ * @return the mirrorsGroup
+ */
+ public Map<String, String> getMirrorsGroup() {
+
+ return mirrorsGroup;
+ }
+
+
+ /**
+ * @return the mirrorsUser
+ */
+ public Map<String, String> getMirrorsUser() {
+
+ return mirrorsUser;
+ }
+
+ public boolean isWorldKnown(String name) {
+
+ return worldsData.containsKey(name.toLowerCase());
+ }
+
public void resetWorldsHolder() {
worldsData = new HashMap<String, OverloadedWorldHolder>();
@@ -92,33 +114,46 @@ public class WorldsHolder {
private void loadAllSearchedWorlds() {
/*
- * Read all known worlds from Bukkit
- * Create the data files if they don't already exist,
- * and they are not mirrored.
+ * Read all known worlds from Bukkit Create the data files if they don't
+ * already exist, and they are not mirrored.
*/
- for (World world : plugin.getServer().getWorlds()){
+ for (World world : plugin.getServer().getWorlds()) {
GroupManager.logger.log(Level.FINE, "Checking data for " + world.getName() + ".");
if ((!worldsData.containsKey(world.getName().toLowerCase())) && ((!mirrorsGroup.containsKey(world.getName().toLowerCase())) || (!mirrorsUser.containsKey(world.getName().toLowerCase())))) {
+
+ if (worldsData.containsKey("all_unnamed_worlds")) {
+
+ String usersMirror = mirrorsUser.get("all_unnamed_worlds");
+ String groupsMirror = mirrorsGroup.get("all_unnamed_worlds");
+
+ if (usersMirror != null)
+ mirrorsUser.put(world.getName().toLowerCase(), usersMirror);
+
+ if (groupsMirror != null)
+ mirrorsGroup.put(world.getName().toLowerCase(), groupsMirror);
+
+ }
+
GroupManager.logger.log(Level.FINE, "Creating folders for " + world.getName() + ".");
setupWorldFolder(world.getName());
}
}
/*
- * Loop over all folders within the worlds folder
- * and attempt to load the world data
+ * Loop over all folders within the worlds folder and attempt to load
+ * the world data
*/
for (File folder : worldsFolder.listFiles()) {
if (folder.isDirectory() && !folder.getName().startsWith(".")) {
GroupManager.logger.info("World Found: " + folder.getName());
/*
- * don't load any worlds which are already loaded
- * or fully mirrored worlds that don't need data.
+ * don't load any worlds which are already loaded or fully
+ * mirrored worlds that don't need data.
*/
if (!worldsData.containsKey(folder.getName().toLowerCase()) && ((!mirrorsGroup.containsKey(folder.getName().toLowerCase())) || (!mirrorsUser.containsKey(folder.getName().toLowerCase())))) {
/*
- * Call setupWorldFolder to check case sensitivity
- * and convert to lower case, before we attempt to load this
+ * Call setupWorldFolder to check case sensitivity and
+ * convert to lower case, before we attempt to load this
* world.
*/
setupWorldFolder(folder.getName());
@@ -383,8 +418,14 @@ public class WorldsHolder {
// Find this worlds data
if (worldsData.containsKey(worldNameLowered))
return getUpdatedWorldData(worldNameLowered);
-
- // Oddly no data source was found for this world so return the default.
+
+ // Oddly no data source was found for this world so attempt to return the global mirror.
+ if (worldsData.containsKey("all_unnamed_worlds")) {
+ GroupManager.logger.finest("Requested world " + worldName + " not found or badly mirrored. Returning all_unnamed_worlds world...");
+ return getUpdatedWorldData("all_unnamed_worlds");
+ }
+
+ // Oddly no data source or global mirror was found for this world so return the default.
GroupManager.logger.finest("Requested world " + worldName + " not found or badly mirrored. Returning default world...");
return getDefaultWorld();
}
@@ -699,41 +740,53 @@ public class WorldsHolder {
}
/**
- * Returns all physically loaded worlds which have at least
- * one of their own data sets for users or groups which isn't an identical mirror.
+ * Returns all physically loaded worlds which have at least one of their own
+ * data sets for users or groups which isn't an identical mirror.
*
* @return ArrayList<OverloadedWorldHolder> of all loaded worlds
*/
public ArrayList<OverloadedWorldHolder> allWorldsDataList() {
ArrayList<OverloadedWorldHolder> list = new ArrayList<OverloadedWorldHolder>();
- for (OverloadedWorldHolder data : worldsData.values()) {
- if ((!list.contains(data))) { // && (!mirrorsGroup.containsKey(data.getName().toLowerCase()) || !mirrorsUser.containsKey(data.getName().toLowerCase()))) {
- String worldNameLowered = data.getName().toLowerCase();
- String usersMirror = mirrorsUser.get(worldNameLowered);
- String groupsMirror = mirrorsGroup.get(worldNameLowered);
+ for (String world : worldsData.keySet()) {
+
+ if (!world.equalsIgnoreCase("all_unnamed_worlds")) {
+
+ // Fetch the relevant world object
+ OverloadedWorldHolder data = getWorldData(world);
- // is users mirrored?
- if (usersMirror != null) {
+ if (!list.contains(data)) {
- // If both are mirrored
- if (groupsMirror != null) {
+ String worldNameLowered = data.getName().toLowerCase();
+ String usersMirror = mirrorsUser.get(worldNameLowered);
+ String groupsMirror = mirrorsGroup.get(worldNameLowered);
- // if the data sources are the same, return the parent
- if (usersMirror == groupsMirror) {
- if (!list.contains(usersMirror.toLowerCase()))
- list.add(worldsData.get(usersMirror.toLowerCase()));
- continue;
+ // is users mirrored?
+ if (usersMirror != null) {
+
+ // If both are mirrored
+ if (groupsMirror != null) {
+
+ // if the data sources are the same, return the parent
+ if (usersMirror == groupsMirror) {
+ data = getWorldData(usersMirror.toLowerCase());
+
+ // Only add the parent if it's not already listed.
+ if (!list.contains(data))
+ list.add(data);
+
+ continue;
+ }
+ // Both data sources are mirrors, but they are from different parents
+ // so fall through to add the actual data object.
}
- // Both data sources are mirrors, but they are from different parents
- // so fall through to add the actual data object.
+ // Groups isn't a mirror so fall through to add this this worlds data source
}
- // Groups isn't a mirror so fall through to add this this worlds data source
- }
- // users isn't mirrored so we need to add this worlds data source
- list.add(data);
+ // users isn't mirrored so we need to add this worlds data source
+ list.add(data);
+ }
}
}
return list;
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMWorldListener.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMWorldListener.java
index f7a7109ab..51937bd67 100644
--- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMWorldListener.java
+++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMWorldListener.java
@@ -35,8 +35,24 @@ public class GMWorldListener implements Listener {
if (GroupManager.isLoaded() && !plugin.getWorldsHolder().isInList(worldName)) {
GroupManager.logger.info("New world detected...");
GroupManager.logger.info("Creating data for: " + worldName);
+
+ if (plugin.getWorldsHolder().isWorldKnown("all_unnamed_worlds")) {
+
+ String usersMirror = plugin.getWorldsHolder().getMirrorsUser().get("all_unnamed_worlds");
+ String groupsMirror = plugin.getWorldsHolder().getMirrorsGroup().get("all_unnamed_worlds");
+
+ if (usersMirror != null)
+ plugin.getWorldsHolder().getMirrorsUser().put(worldName.toLowerCase(), usersMirror);
+
+ if (groupsMirror != null)
+ plugin.getWorldsHolder().getMirrorsGroup().put(worldName.toLowerCase(), groupsMirror);
+
+ }
+
plugin.getWorldsHolder().setupWorldFolder(worldName);
plugin.getWorldsHolder().loadWorld(worldName);
+
+
if (plugin.getWorldsHolder().isInList(worldName)) {
GroupManager.logger.info("Don't forget to configure/mirror this world in config.yml.");
} else
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java
index f303aea35..bef2fb713 100644
--- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java
+++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java
@@ -708,6 +708,7 @@ public class AnjoPermissionsHandler extends PermissionsReaderInterface {
for (String access : user.getPermissionList()) {
result.resultType = comparePermissionString(access, permission);
if (result.resultType != PermissionCheckResult.Type.NOTFOUND) {
+ result.accessLevel = access;
return result;
}
}
@@ -732,6 +733,7 @@ public class AnjoPermissionsHandler extends PermissionsReaderInterface {
for (String access : group.getPermissionList()) {
result.resultType = comparePermissionString(access, permission);
if (result.resultType != PermissionCheckResult.Type.NOTFOUND) {
+ result.accessLevel = access;
return result;
}
}
diff --git a/EssentialsProtect/build.xml b/EssentialsProtect/build.xml
index 1f88786d0..9d7571f4d 100644
--- a/EssentialsProtect/build.xml
+++ b/EssentialsProtect/build.xml
@@ -75,7 +75,6 @@
<target name="-post-jar">
<jar jarfile="${dist.dir}/EssentialsProtect.jar">
<zipfileset src="${dist.jar}" excludes="META-INF/*" />
- <zipfileset src="../lib/c3p0-0.9.1.2.jar" excludes="META-INF/*" />
<manifest>
<attribute name="Classpath" value="EssentialsProtect.jar"/>
</manifest>
diff --git a/EssentialsProtect/nbproject/project.properties b/EssentialsProtect/nbproject/project.properties
index 77c12c248..af6412bde 100644
--- a/EssentialsProtect/nbproject/project.properties
+++ b/EssentialsProtect/nbproject/project.properties
@@ -64,14 +64,12 @@ dist.javadoc.dir=${dist.dir}/javadoc
endorsed.classpath=
excludes=
file.reference.bukkit.jar=../lib/bukkit.jar
-file.reference.c3p0-0.9.1.2.jar=..\\lib\\c3p0-0.9.1.2.jar
includes=**
jar.archive.disabled=${jnlp.enabled}
jar.compress=true
jar.index=${jnlp.enabled}
javac.classpath=\
${reference.Essentials.jar}:\
- ${file.reference.c3p0-0.9.1.2.jar}:\
${file.reference.bukkit.jar}
# Space-separated list of extra javac options
javac.compilerargs=
diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsConnect.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsConnect.java
index d52e12444..f19362ee2 100644
--- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsConnect.java
+++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsConnect.java
@@ -3,10 +3,6 @@ package com.earth2me.essentials.protect;
import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.IConf;
import com.earth2me.essentials.IEssentials;
-import com.earth2me.essentials.protect.data.ProtectedBlockMemory;
-import com.earth2me.essentials.protect.data.ProtectedBlockMySQL;
-import com.earth2me.essentials.protect.data.ProtectedBlockSQLite;
-import java.beans.PropertyVetoException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.plugin.Plugin;
@@ -41,10 +37,6 @@ public class EssentialsConnect
@Override
public void reloadConfig()
{
- if (protect.getStorage() != null)
- {
- protect.getStorage().onPluginDeactivation();
- }
for (ProtectConfig protectConfig : ProtectConfig.values())
{
if (protectConfig.isList())
@@ -61,37 +53,6 @@ public class EssentialsConnect
}
}
-
- if (protect.getSettingString(ProtectConfig.datatype).equalsIgnoreCase("mysql"))
- {
- try
- {
- protect.setStorage(new ProtectedBlockMySQL(
- protect.getSettingString(ProtectConfig.mysqlDB),
- protect.getSettingString(ProtectConfig.dbUsername),
- protect.getSettingString(ProtectConfig.dbPassword)));
- }
- catch (PropertyVetoException ex)
- {
- LOGGER.log(Level.SEVERE, null, ex);
- }
- }
- else
- {
- try
- {
- protect.setStorage(new ProtectedBlockSQLite("jdbc:sqlite:plugins/Essentials/EssentialsProtect.db"));
- }
- catch (PropertyVetoException ex)
- {
- LOGGER.log(Level.SEVERE, null, ex);
- }
- }
- if (protect.getSettingBool(ProtectConfig.memstore))
- {
- protect.setStorage(new ProtectedBlockMemory(protect.getStorage(), protect));
- }
-
}
}
-}
+} \ No newline at end of file
diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtect.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtect.java
index 712de076d..1e9013408 100644
--- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtect.java
+++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtect.java
@@ -1,11 +1,8 @@
package com.earth2me.essentials.protect;
-import com.earth2me.essentials.protect.data.IProtectedBlock;
-import com.mchange.v2.log.MLevel;
import java.util.EnumMap;
import java.util.List;
import java.util.Map;
-import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.entity.Player;
@@ -17,33 +14,12 @@ import org.bukkit.plugin.java.JavaPlugin;
public class EssentialsProtect extends JavaPlugin implements IProtect
{
private static final Logger LOGGER = Logger.getLogger("Minecraft");
- private static com.mchange.v2.log.MLogger C3P0logger;
private final Map<ProtectConfig, Boolean> settingsBoolean = new EnumMap<ProtectConfig, Boolean>(ProtectConfig.class);
private final Map<ProtectConfig, String> settingsString = new EnumMap<ProtectConfig, String>(ProtectConfig.class);
private final Map<ProtectConfig, List<Integer>> settingsList = new EnumMap<ProtectConfig, List<Integer>>(ProtectConfig.class);
- private IProtectedBlock storage = null;
private EssentialsConnect ess = null;
@Override
- public void onLoad()
- {
- try
- {
- // Simple fix for the case that log4j is on the class path by another plugin
- Class propertyConfiguratorClass = Class.forName("org.apache.log4j.PropertyConfigurator");
- Properties properties = new Properties();
- properties.load(this.getClass().getResourceAsStream("log4j.properties"));
- propertyConfiguratorClass.getMethod("configure", Properties.class).invoke(null, properties);
- }
- catch (Exception ex)
- {
- //Ignore me, log4j not found on classloader.
- }
- C3P0logger = com.mchange.v2.log.MLog.getLogger(com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.class);
- C3P0logger.setLevel(MLevel.WARNING);
- }
-
- @Override
public void onEnable()
{
final PluginManager pm = this.getServer().getPluginManager();
@@ -55,9 +31,6 @@ public class EssentialsProtect extends JavaPlugin implements IProtect
}
ess = new EssentialsConnect(essPlugin, this);
- final EssentialsProtectPlayerListener playerListener = new EssentialsProtectPlayerListener(this);
- pm.registerEvents(playerListener, this);
-
final EssentialsProtectBlockListener blockListener = new EssentialsProtectBlockListener(this);
pm.registerEvents(blockListener, this);
@@ -81,18 +54,6 @@ public class EssentialsProtect extends JavaPlugin implements IProtect
}
@Override
- public IProtectedBlock getStorage()
- {
- return storage;
- }
-
- @Override
- public void setStorage(IProtectedBlock pb)
- {
- storage = pb;
- }
-
- @Override
public EssentialsConnect getEssentialsConnect()
{
return ess;
@@ -129,22 +90,4 @@ public class EssentialsProtect extends JavaPlugin implements IProtect
final String str = settingsString.get(protectConfig);
return str == null ? protectConfig.getDefaultValueString() : str;
}
-
- @Override
- public void onDisable()
- {
- if (storage != null)
- {
- storage.onPluginDeactivation();
- }
- // Sleep for a second to allow the database to close.
- try
- {
- Thread.sleep(1000);
- }
- catch (InterruptedException ex)
- {
- Logger.getLogger(EssentialsProtect.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
}
diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectBlockListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectBlockListener.java
index cca7cbef9..246d9a583 100644
--- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectBlockListener.java
+++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectBlockListener.java
@@ -1,10 +1,6 @@
package com.earth2me.essentials.protect;
import com.earth2me.essentials.IEssentials;
-import com.earth2me.essentials.User;
-import com.earth2me.essentials.protect.data.IProtectedBlock;
-import java.util.ArrayList;
-import java.util.List;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
@@ -24,68 +20,10 @@ public class EssentialsProtectBlockListener implements Listener
this.prot = parent;
this.ess = prot.getEssentialsConnect().getEssentials();
}
-
- @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
- public void onBlockPlace(final BlockPlaceEvent event)
- {
- final User user = ess.getUser(event.getPlayer());
- final Block blockPlaced = event.getBlockPlaced();
- final Block below = blockPlaced.getRelative(BlockFace.DOWN);
- if ((below.getType() == Material.RAILS || below.getType() == Material.POWERED_RAIL || below.getType() == Material.DETECTOR_RAIL)
- && prot.getSettingBool(ProtectConfig.prevent_block_on_rail)
- && isProtected(below, user))
- {
- event.setCancelled(true);
- return;
- }
-
- final List<Block> protect = new ArrayList<Block>();
- if ((blockPlaced.getType() == Material.RAILS || blockPlaced.getType() == Material.POWERED_RAIL || blockPlaced.getType() == Material.DETECTOR_RAIL)
- && prot.getSettingBool(ProtectConfig.protect_rails)
- && user.isAuthorized("essentials.protect"))
- {
- protect.add(blockPlaced);
- if (prot.getSettingBool(ProtectConfig.protect_below_rails)
- && !isProtected(blockPlaced.getRelative(BlockFace.DOWN), user))
- {
- protect.add(blockPlaced.getRelative(BlockFace.DOWN));
- }
- }
- if ((blockPlaced.getType() == Material.SIGN_POST || blockPlaced.getType() == Material.WALL_SIGN)
- && prot.getSettingBool(ProtectConfig.protect_signs)
- && user.isAuthorized("essentials.protect"))
- {
- protect.add(blockPlaced);
- if (prot.getSettingBool(ProtectConfig.protect_against_signs)
- && event.getBlockAgainst().getType() != Material.SIGN_POST
- && event.getBlockAgainst().getType() != Material.WALL_SIGN
- && !isProtected(event.getBlockAgainst(), user))
- {
- protect.add(event.getBlockAgainst());
- }
- }
- for (Block block : protect)
- {
- prot.getStorage().protectBlock(block, user.getName());
- }
- }
-
+
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onBlockIgnite(BlockIgniteEvent event)
{
- final Block block = event.getBlock();
- if ((block.getType() == Material.RAILS || block.getType() == Material.POWERED_RAIL || block.getType() == Material.DETECTOR_RAIL)
- && prot.getSettingBool(ProtectConfig.protect_rails))
- {
- event.setCancelled(true);
- return;
- }
- if ((block.getType() == Material.WALL_SIGN || block.getType() == Material.SIGN_POST)
- && prot.getSettingBool(ProtectConfig.protect_signs))
- {
- event.setCancelled(true);
- return;
- }
if (event.getBlock().getType() == Material.OBSIDIAN
|| event.getBlock().getRelative(BlockFace.DOWN).getType() == Material.OBSIDIAN)
{
@@ -119,21 +57,8 @@ public class EssentialsProtectBlockListener implements Listener
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onBlockFromTo(final BlockFromToEvent event)
{
- final Block toBlock = event.getToBlock();
- if ((toBlock.getType() == Material.RAILS || toBlock.getType() == Material.POWERED_RAIL || toBlock.getType() == Material.DETECTOR_RAIL)
- && prot.getSettingBool(ProtectConfig.protect_rails))
- {
- event.setCancelled(true);
- return;
- }
- if ((toBlock.getType() == Material.WALL_SIGN || toBlock.getType() == Material.SIGN_POST)
- && prot.getSettingBool(ProtectConfig.protect_signs))
- {
- event.setCancelled(true);
- return;
- }
-
final Block block = event.getBlock();
+
if (block.getType() == Material.WATER || block.getType() == Material.STATIONARY_WATER)
{
event.setCancelled(prot.getSettingBool(ProtectConfig.prevent_water_flow));
@@ -154,252 +79,11 @@ public class EssentialsProtectBlockListener implements Listener
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onBlockBurn(final BlockBurnEvent event)
- {
- final Block block = event.getBlock();
- if ((block.getType() == Material.RAILS || block.getType() == Material.POWERED_RAIL || block.getType() == Material.DETECTOR_RAIL) && prot.getSettingBool(ProtectConfig.protect_rails))
- {
- event.setCancelled(true);
- return;
- }
- if ((block.getType() == Material.WALL_SIGN || block.getType() == Material.SIGN_POST)
- && prot.getSettingBool(ProtectConfig.protect_signs))
- {
- event.setCancelled(true);
- return;
- }
+ {
if (prot.getSettingBool(ProtectConfig.prevent_fire_spread))
{
event.setCancelled(true);
}
}
- private final static BlockFace[] faces = new BlockFace[]
- {
- BlockFace.NORTH,
- BlockFace.EAST,
- BlockFace.SOUTH,
- BlockFace.WEST,
- BlockFace.UP,
- BlockFace.DOWN,
- BlockFace.SELF
- };
-
- @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
- public void onBlockBreak(final BlockBreakEvent event)
- {
- final User user = ess.getUser(event.getPlayer());
- final Block block = event.getBlock();
- final Material type = block.getType();
- final IProtectedBlock storage = prot.getStorage();
-
- if (user.isAuthorized("essentials.protect.admin"))
- {
- if (type == Material.WALL_SIGN || type == Material.SIGN_POST || type == Material.RAILS || type == Material.POWERED_RAIL || type == Material.DETECTOR_RAIL)
- {
- storage.unprotectBlock(block);
- if (type == Material.RAILS || type == Material.POWERED_RAIL || type == Material.DETECTOR_RAIL || type == Material.SIGN_POST)
- {
- final Block below = block.getRelative(BlockFace.DOWN);
- storage.unprotectBlock(below);
- }
- else
- {
- for (BlockFace blockFace : faces)
- {
- final Block against = block.getRelative(blockFace);
- storage.unprotectBlock(against);
- }
- }
- }
- else
- {
- for (BlockFace blockFace : faces)
- {
- final Block against = block.getRelative(blockFace);
- storage.unprotectBlock(against);
- }
- }
- }
- else
- {
-
- final boolean isProtected = isProtected(block, user);
- if (isProtected)
- {
- event.setCancelled(true);
- }
- else
- {
- if (type == Material.WALL_SIGN || type == Material.SIGN_POST || type == Material.RAILS || type == Material.POWERED_RAIL || type == Material.DETECTOR_RAIL)
- {
- storage.unprotectBlock(block);
- if (type == Material.RAILS || type == Material.POWERED_RAIL || type == Material.DETECTOR_RAIL || type == Material.SIGN_POST)
- {
- final Block below = block.getRelative(BlockFace.DOWN);
- storage.unprotectBlock(below);
- }
- else
- {
- for (BlockFace blockFace : faces)
- {
- final Block against = block.getRelative(blockFace);
- storage.unprotectBlock(against);
- }
- }
- }
- else
- {
- for (BlockFace blockFace : faces)
- {
- final Block against = block.getRelative(blockFace);
- storage.unprotectBlock(against);
- }
- }
- }
- }
- }
-
- @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
- public void onBlockPistonExtend(BlockPistonExtendEvent event)
- {
- for (Block block : event.getBlocks())
- {
- if ((block.getRelative(BlockFace.UP).getType() == Material.RAILS
- || block.getType() == Material.RAILS
- || block.getRelative(BlockFace.UP).getType() == Material.POWERED_RAIL
- || block.getType() == Material.POWERED_RAIL
- || block.getRelative(BlockFace.UP).getType() == Material.DETECTOR_RAIL
- || block.getType() == Material.DETECTOR_RAIL)
- && prot.getSettingBool(ProtectConfig.protect_rails))
- {
- event.setCancelled(true);
- return;
- }
- if (prot.getSettingBool(ProtectConfig.protect_signs))
- {
- for (BlockFace blockFace : faces)
- {
- if (blockFace == BlockFace.DOWN)
- {
- continue;
- }
- final Block sign = block.getRelative(blockFace);
- if ((blockFace == BlockFace.UP || blockFace == BlockFace.SELF)
- && sign.getType() == Material.SIGN_POST)
- {
- event.setCancelled(true);
- return;
- }
- if ((blockFace == BlockFace.NORTH || blockFace == BlockFace.EAST
- || blockFace == BlockFace.SOUTH || blockFace == BlockFace.WEST
- || blockFace == BlockFace.SELF)
- && sign.getType() == Material.WALL_SIGN)
- {
- event.setCancelled(true);
- return;
- }
- }
- }
- }
- }
-
- @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
- public void onBlockPistonRetract(BlockPistonRetractEvent event)
- {
- if (!event.isSticky())
- {
- return;
- }
- final Block block = event.getRetractLocation().getBlock();
- if ((block.getRelative(BlockFace.UP).getType() == Material.RAILS
- || block.getType() == Material.RAILS
- || block.getRelative(BlockFace.UP).getType() == Material.POWERED_RAIL
- || block.getType() == Material.POWERED_RAIL
- || block.getRelative(BlockFace.UP).getType() == Material.DETECTOR_RAIL
- || block.getType() == Material.DETECTOR_RAIL)
- && prot.getSettingBool(ProtectConfig.protect_rails))
- {
- event.setCancelled(true);
- return;
- }
- if (prot.getSettingBool(ProtectConfig.protect_signs))
- {
- for (BlockFace blockFace : faces)
- {
- if (blockFace == BlockFace.DOWN)
- {
- continue;
- }
- final Block sign = block.getRelative(blockFace);
- if ((blockFace == BlockFace.UP || blockFace == BlockFace.SELF)
- && sign.getType() == Material.SIGN_POST)
- {
- event.setCancelled(true);
- return;
- }
- if ((blockFace == BlockFace.NORTH || blockFace == BlockFace.EAST
- || blockFace == BlockFace.SOUTH || blockFace == BlockFace.WEST
- || blockFace == BlockFace.SELF)
- && sign.getType() == Material.WALL_SIGN)
- {
- event.setCancelled(true);
- return;
- }
- }
- }
- }
-
- private boolean isProtected(final Block block, final User user)
- {
- final Material type = block.getType();
- if (prot.getSettingBool(ProtectConfig.protect_signs))
- {
- if (type == Material.WALL_SIGN || type == Material.SIGN_POST)
- {
- return prot.getStorage().isProtected(block, user.getName());
- }
- if (prot.getSettingBool(ProtectConfig.protect_against_signs))
- {
- final Block up = block.getRelative(BlockFace.UP);
- if (up != null && up.getType() == Material.SIGN_POST)
- {
- return prot.getStorage().isProtected(block, user.getName());
- }
- final BlockFace[] directions = new BlockFace[]
- {
- BlockFace.NORTH,
- BlockFace.EAST,
- BlockFace.SOUTH,
- BlockFace.WEST
- };
- for (BlockFace blockFace : directions)
- {
- final Block signblock = block.getRelative(blockFace);
- if (signblock.getType() == Material.WALL_SIGN)
- {
- final org.bukkit.material.Sign signMat = (org.bukkit.material.Sign)signblock.getState().getData();
- if (signMat != null && signMat.getFacing() == blockFace)
- {
- return prot.getStorage().isProtected(block, user.getName());
- }
- }
- }
- }
- }
- if (prot.getSettingBool(ProtectConfig.protect_rails))
- {
- if (type == Material.RAILS || type == Material.POWERED_RAIL || type == Material.DETECTOR_RAIL)
- {
- return prot.getStorage().isProtected(block, user.getName());
- }
- if (prot.getSettingBool(ProtectConfig.protect_below_rails))
- {
- final Block up = block.getRelative(BlockFace.UP);
- if (up != null && (type == Material.RAILS || type == Material.POWERED_RAIL || type == Material.DETECTOR_RAIL))
- {
- return prot.getStorage().isProtected(block, user.getName());
- }
- }
- }
- return false;
- }
}
+ \ No newline at end of file
diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java
index d9102c023..bcfa52104 100644
--- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java
+++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java
@@ -3,9 +3,6 @@ package com.earth2me.essentials.protect;
import com.earth2me.essentials.IEssentials;
import com.earth2me.essentials.User;
import java.util.Locale;
-import org.bukkit.Material;
-import org.bukkit.block.Block;
-import org.bukkit.block.BlockFace;
import org.bukkit.entity.*;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
@@ -13,6 +10,8 @@ import org.bukkit.event.Listener;
import org.bukkit.event.entity.*;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.event.entity.EntityTargetEvent.TargetReason;
+import org.bukkit.event.hanging.HangingBreakByEntityEvent;
+import org.bukkit.event.hanging.HangingBreakEvent;
public class EssentialsProtectEntityListener implements Listener
@@ -176,7 +175,7 @@ public class EssentialsProtectEntityListener implements Listener
private boolean shouldBeDamaged(final User user, final String type)
{
return (user.isAuthorized("essentials.protect.damage.".concat(type))
- && !user.isAuthorized("essentials.protect.damage.disable"));
+ && !user.isAuthorized("essentials.protect.damage.disable"));
}
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
@@ -202,7 +201,6 @@ public class EssentialsProtectEntityListener implements Listener
&& prot.getSettingBool(ProtectConfig.prevent_wither_spawnexplosion))
{
event.setCancelled(true);
- return;
}
else if (event.getEntity() instanceof Creeper
&& (prot.getSettingBool(ProtectConfig.prevent_creeper_explosion)
@@ -212,56 +210,26 @@ public class EssentialsProtectEntityListener implements Listener
//Nicccccccccce plaaacccccccccce..
event.setCancelled(true);
event.getLocation().getWorld().createExplosion(event.getLocation(), 0F);
- return;
}
else if (event.getEntity() instanceof TNTPrimed
&& prot.getSettingBool(ProtectConfig.prevent_tnt_explosion))
{
event.setCancelled(true);
- return;
+
}
else if ((event.getEntity() instanceof Fireball || event.getEntity() instanceof SmallFireball)
&& prot.getSettingBool(ProtectConfig.prevent_fireball_explosion))
{
event.setCancelled(true);
- return;
+
}
else if ((event.getEntity() instanceof WitherSkull)
&& prot.getSettingBool(ProtectConfig.prevent_witherskull_explosion))
{
event.setCancelled(true);
- return;
+
}
- // This code will prevent explosions near protected rails, signs or protected chests
- // TODO: Use protect db instead of this code
-
- for (Block block : event.blockList())
- {
- if ((block.getRelative(BlockFace.UP).getType() == Material.RAILS
- || block.getType() == Material.RAILS
- || block.getRelative(BlockFace.UP).getType() == Material.POWERED_RAIL
- || block.getType() == Material.POWERED_RAIL
- || block.getRelative(BlockFace.UP).getType() == Material.DETECTOR_RAIL
- || block.getType() == Material.DETECTOR_RAIL)
- && prot.getSettingBool(ProtectConfig.protect_rails))
- {
- event.setCancelled(true);
- return;
- }
- if ((block.getType() == Material.WALL_SIGN
- || block.getRelative(BlockFace.NORTH).getType() == Material.WALL_SIGN
- || block.getRelative(BlockFace.EAST).getType() == Material.WALL_SIGN
- || block.getRelative(BlockFace.SOUTH).getType() == Material.WALL_SIGN
- || block.getRelative(BlockFace.WEST).getType() == Material.WALL_SIGN
- || block.getType() == Material.SIGN_POST
- || block.getRelative(BlockFace.UP).getType() == Material.SIGN_POST)
- && prot.getSettingBool(ProtectConfig.protect_signs))
- {
- event.setCancelled(true);
- return;
- }
- }
}
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
@@ -332,4 +300,15 @@ public class EssentialsProtectEntityListener implements Listener
event.setCancelled(true);
}
}
+
+ @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
+ public void onPaintingBreak(HangingBreakByEntityEvent event)
+ {
+ if (event.getCause() == HangingBreakEvent.RemoveCause.ENTITY
+ && event.getRemover() instanceof Creeper
+ && prot.getSettingBool(ProtectConfig.prevent_creeper_explosion))
+ {
+ event.setCancelled(true);
+ }
+ }
}
diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectPlayerListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectPlayerListener.java
deleted file mode 100644
index 9236213d5..000000000
--- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectPlayerListener.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package com.earth2me.essentials.protect;
-
-import static com.earth2me.essentials.I18n._;
-import com.earth2me.essentials.IEssentials;
-import com.earth2me.essentials.User;
-import org.bukkit.block.Block;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.EventPriority;
-import org.bukkit.event.Listener;
-import org.bukkit.event.block.Action;
-import org.bukkit.event.player.PlayerInteractEvent;
-
-
-public class EssentialsProtectPlayerListener implements Listener
-{
- private final IProtect prot;
- private final IEssentials ess;
-
- public EssentialsProtectPlayerListener(final IProtect prot)
- {
- this.prot = prot;
- this.ess = prot.getEssentialsConnect().getEssentials();
- }
-
- @EventHandler(priority = EventPriority.LOW)
- public void onPlayerInteract(final PlayerInteractEvent event)
- {
- // Do not return if cancelled, because the interact event has 2 cancelled states.
- final User user = ess.getUser(event.getPlayer());
-
- if (user.isAuthorized("essentials.protect.ownerinfo") && event.getAction() == Action.RIGHT_CLICK_BLOCK)
- {
- final StringBuilder stringBuilder = new StringBuilder();
- boolean first = true;
- final Block blockClicked = event.getClickedBlock();
- for (String owner : prot.getStorage().getOwners(blockClicked))
- {
- if (!first)
- {
- stringBuilder.append(", ");
- }
- first = false;
- stringBuilder.append(owner);
- }
- final String ownerNames = stringBuilder.toString();
- if (ownerNames != null && !ownerNames.isEmpty())
- {
- user.sendMessage(_("protectionOwner", ownerNames));
- }
- }
- }
-}
diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/IProtect.java b/EssentialsProtect/src/com/earth2me/essentials/protect/IProtect.java
index b82481267..e3acaabce 100644
--- a/EssentialsProtect/src/com/earth2me/essentials/protect/IProtect.java
+++ b/EssentialsProtect/src/com/earth2me/essentials/protect/IProtect.java
@@ -1,6 +1,5 @@
package com.earth2me.essentials.protect;
-import com.earth2me.essentials.protect.data.IProtectedBlock;
import java.util.List;
import java.util.Map;
import org.bukkit.plugin.Plugin;
@@ -11,11 +10,7 @@ public interface IProtect extends Plugin
boolean getSettingBool(final ProtectConfig protectConfig);
String getSettingString(final ProtectConfig protectConfig);
-
- IProtectedBlock getStorage();
-
- void setStorage(IProtectedBlock pb);
-
+
EssentialsConnect getEssentialsConnect();
Map<ProtectConfig, Boolean> getSettingsBoolean();
diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/ProtectConfig.java b/EssentialsProtect/src/com/earth2me/essentials/protect/ProtectConfig.java
index d7f428539..232322893 100644
--- a/EssentialsProtect/src/com/earth2me/essentials/protect/ProtectConfig.java
+++ b/EssentialsProtect/src/com/earth2me/essentials/protect/ProtectConfig.java
@@ -3,11 +3,6 @@ package com.earth2me.essentials.protect;
public enum ProtectConfig
{
- datatype("protect.datatype", "sqlite"),
- mysqlDB("protect.mysqlDb", "jdbc:mysql://localhost:3306/minecraft"),
- dbUsername("protect.username", "root"),
- dbPassword("protect.password", ""),
- memstore("protect.memstore", false),
disable_contactdmg("protect.disable.contactdmg", false),
disable_lavadmg("protect.disable.lavadmg", false),
disable_pvp("protect.disable.pvp", false),
@@ -46,10 +41,6 @@ public enum ProtectConfig
prevent_villager_death("protect.prevent.villager-death", false),
prevent_enderdragon_blockdmg("protect.prevent.enderdragon-blockdamage", true),
prevent_entitytarget("protect.prevent.entitytarget", false),
- protect_rails("protect.protect.rails", true),
- protect_below_rails("protect.protect.block-below", true),
- protect_signs("protect.protect.signs", true),
- protect_against_signs("protect.protect.block-below", true),
enderdragon_fakeexplosions("protect.enderdragon-fakeexplosions", false);
private final String configName;
private final String defValueString;
diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/data/IProtectedBlock.java b/EssentialsProtect/src/com/earth2me/essentials/protect/data/IProtectedBlock.java
deleted file mode 100644
index 755baface..000000000
--- a/EssentialsProtect/src/com/earth2me/essentials/protect/data/IProtectedBlock.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.earth2me.essentials.protect.data;
-
-import java.util.List;
-import org.bukkit.block.Block;
-
-
-public interface IProtectedBlock
-{
- public void clearProtections();
-
- public void importProtections(List<OwnedBlock> blocks);
-
- public List<OwnedBlock> exportProtections();
-
- public void protectBlock(Block block, String playerName);
-
- public boolean isProtected(Block block, String playerName);
-
- public List<String> getOwners(Block block);
-
- public int unprotectBlock(Block block);
-
- public void onPluginDeactivation();
-}
diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/data/OwnedBlock.java b/EssentialsProtect/src/com/earth2me/essentials/protect/data/OwnedBlock.java
deleted file mode 100644
index dc28feae8..000000000
--- a/EssentialsProtect/src/com/earth2me/essentials/protect/data/OwnedBlock.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.earth2me.essentials.protect.data;
-
-
-public class OwnedBlock
-{
- final int x;
- final int y;
- final int z;
- final String world;
- final String playerName;
-
- public OwnedBlock(int x, int y, int z, String world, String playerName)
- {
- this.x = x;
- this.y = y;
- this.z = z;
- this.world = world;
- this.playerName = playerName;
- }
-}
diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/data/ProtectedBlockJDBC.java b/EssentialsProtect/src/com/earth2me/essentials/protect/data/ProtectedBlockJDBC.java
deleted file mode 100644
index 18bb19a48..000000000
--- a/EssentialsProtect/src/com/earth2me/essentials/protect/data/ProtectedBlockJDBC.java
+++ /dev/null
@@ -1,426 +0,0 @@
-package com.earth2me.essentials.protect.data;
-
-import com.mchange.v2.c3p0.ComboPooledDataSource;
-import java.beans.PropertyVetoException;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import org.bukkit.block.Block;
-
-
-public abstract class ProtectedBlockJDBC implements IProtectedBlock
-{
- protected static final Logger LOGGER = Logger.getLogger("Minecraft");
- protected final ComboPooledDataSource cpds;
- protected abstract PreparedStatement getStatementCreateTable(Connection conn) throws SQLException;
- protected abstract PreparedStatement getStatementUpdateFrom2_0Table(Connection conn) throws SQLException;
- protected abstract PreparedStatement getStatementDeleteAll(Connection conn) throws SQLException;
- protected abstract PreparedStatement getStatementInsert(Connection conn, String world, int x, int y, int z, String playerName) throws SQLException;
- protected abstract PreparedStatement getStatementPlayerCountByLocation(Connection conn, String world, int x, int y, int z, String playerName) throws SQLException;
- protected abstract PreparedStatement getStatementPlayersByLocation(Connection conn, String name, int x, int y, int z) throws SQLException;
- protected abstract PreparedStatement getStatementDeleteByLocation(Connection conn, String world, int x, int y, int z) throws SQLException;
- protected abstract PreparedStatement getStatementAllBlocks(Connection conn) throws SQLException;
-
- public ProtectedBlockJDBC(String driver, String url) throws PropertyVetoException
- {
- this(driver, url, null, null);
- }
-
- public ProtectedBlockJDBC(String driver, String url, String username, String password) throws PropertyVetoException
- {
- cpds = new ComboPooledDataSource();
- cpds.setDriverClass(driver);
- cpds.setJdbcUrl(url);
- if (username != null)
- {
- cpds.setUser(username);
- cpds.setPassword(password);
- }
- cpds.setMaxStatements(20);
- createAndConvertTable();
- }
-
- private void createAndConvertTable()
- {
- Connection conn = null;
- PreparedStatement ps = null;
- try
- {
- conn = cpds.getConnection();
- ps = getStatementCreateTable(conn);
- ps.execute();
- ps.close();
- ps = getStatementUpdateFrom2_0Table(conn);
- ps.execute();
- }
- catch (SQLException ex)
- {
- LOGGER.log(Level.SEVERE, null, ex);
- }
- finally
- {
- if (ps != null)
- {
- try
- {
- ps.close();
- }
- catch (SQLException ex)
- {
- LOGGER.log(Level.SEVERE, null, ex);
- }
- }
- if (conn != null)
- {
- try
- {
- conn.close();
- }
- catch (SQLException ex)
- {
- LOGGER.log(Level.SEVERE, null, ex);
- }
- }
- }
- }
-
- @Override
- public void clearProtections()
- {
- Connection conn = null;
- PreparedStatement ps = null;
- try
- {
- conn = cpds.getConnection();
- ps = getStatementDeleteAll(conn);
- ps.executeUpdate();
- }
- catch (SQLException ex)
- {
- LOGGER.log(Level.SEVERE, null, ex);
- }
- finally
- {
- if (ps != null)
- {
- try
- {
- ps.close();
- }
- catch (SQLException ex)
- {
- LOGGER.log(Level.SEVERE, null, ex);
- }
- }
- if (conn != null)
- {
- try
- {
- conn.close();
- }
- catch (SQLException ex)
- {
- LOGGER.log(Level.SEVERE, null, ex);
- }
- }
- }
- }
-
- @Override
- public void importProtections(List<OwnedBlock> blocks)
- {
- for (OwnedBlock ownedBlock : blocks)
- {
- if (ownedBlock.playerName == null)
- {
- continue;
- }
- protectBlock(ownedBlock.world, ownedBlock.x, ownedBlock.y, ownedBlock.z, ownedBlock.playerName);
- }
- }
-
- @Override
- public List<OwnedBlock> exportProtections()
- {
- Connection conn = null;
- PreparedStatement ps = null;
- ResultSet rs = null;
- List<OwnedBlock> blocks = new ArrayList<OwnedBlock>();
- try
- {
- conn = cpds.getConnection();
- ps = getStatementAllBlocks(conn);
- rs = ps.executeQuery();
- while (rs.next())
- {
- OwnedBlock ob = new OwnedBlock(
- rs.getInt(2),
- rs.getInt(3),
- rs.getInt(4),
- rs.getString(1),
- rs.getString(5));
- blocks.add(ob);
- }
- return blocks;
- }
- catch (SQLException ex)
- {
- LOGGER.log(Level.SEVERE, null, ex);
- return blocks;
- }
- finally
- {
- if (rs != null)
- {
- try
- {
- rs.close();
- }
- catch (SQLException ex)
- {
- LOGGER.log(Level.SEVERE, null, ex);
- }
- }
- if (ps != null)
- {
- try
- {
- ps.close();
- }
- catch (SQLException ex)
- {
- LOGGER.log(Level.SEVERE, null, ex);
- }
- }
- if (conn != null)
- {
- try
- {
- conn.close();
- }
- catch (SQLException ex)
- {
- LOGGER.log(Level.SEVERE, null, ex);
- }
- }
- }
- }
-
- @Override
- public void protectBlock(Block block, String playerName)
- {
- protectBlock(block.getWorld().getName(), block.getX(), block.getY(), block.getZ(), playerName);
- }
-
- private void protectBlock(String world, int x, int y, int z, String playerName)
- {
- Connection conn = null;
- PreparedStatement ps = null;
- try
- {
- conn = cpds.getConnection();
- ps = getStatementInsert(conn, world, x, y, z, playerName);
- ps.executeUpdate();
- }
- catch (SQLException ex)
- {
- LOGGER.log(Level.SEVERE, null, ex);
- }
- finally
- {
- if (ps != null)
- {
- try
- {
- ps.close();
- }
- catch (SQLException ex)
- {
- LOGGER.log(Level.SEVERE, null, ex);
- }
- }
- if (conn != null)
- {
- try
- {
- conn.close();
- }
- catch (SQLException ex)
- {
- LOGGER.log(Level.SEVERE, null, ex);
- }
- }
- }
- }
-
- @Override
- public boolean isProtected(Block block, String playerName)
- {
- Connection conn = null;
- PreparedStatement ps = null;
- ResultSet rs = null;
- try
- {
- conn = cpds.getConnection();
- ps = getStatementPlayerCountByLocation(conn, block.getWorld().getName(), block.getX(), block.getY(), block.getZ(), playerName);
- rs = ps.executeQuery();
- return rs.next() && rs.getInt(1) > 0 && rs.getInt(2) == 0;
- }
- catch (SQLException ex)
- {
- LOGGER.log(Level.SEVERE, null, ex);
- return true;
- }
- finally
- {
- if (rs != null)
- {
- try
- {
- rs.close();
- }
- catch (SQLException ex)
- {
- LOGGER.log(Level.SEVERE, null, ex);
- }
- }
- if (ps != null)
- {
- try
- {
- ps.close();
- }
- catch (SQLException ex)
- {
- LOGGER.log(Level.SEVERE, null, ex);
- }
- }
- if (conn != null)
- {
- try
- {
- conn.close();
- }
- catch (SQLException ex)
- {
- LOGGER.log(Level.SEVERE, null, ex);
- }
- }
- }
- }
-
- @Override
- public List<String> getOwners(Block block)
- {
- Connection conn = null;
- PreparedStatement ps = null;
- ResultSet rs = null;
- List<String> owners = new ArrayList<String>();
- try
- {
- conn = cpds.getConnection();
- ps = getStatementPlayersByLocation(conn, block.getWorld().getName(), block.getX(), block.getY(), block.getZ());
- rs = ps.executeQuery();
- while (rs.next())
- {
- owners.add(rs.getString(1));
- }
- return owners;
- }
- catch (SQLException ex)
- {
- LOGGER.log(Level.SEVERE, null, ex);
- return owners;
- }
- finally
- {
- if (rs != null)
- {
- try
- {
- rs.close();
- }
- catch (SQLException ex)
- {
- LOGGER.log(Level.SEVERE, null, ex);
- }
- }
- if (ps != null)
- {
- try
- {
- ps.close();
- }
- catch (SQLException ex)
- {
- LOGGER.log(Level.SEVERE, null, ex);
- }
- }
- if (conn != null)
- {
- try
- {
- conn.close();
- }
- catch (SQLException ex)
- {
- LOGGER.log(Level.SEVERE, null, ex);
- }
- }
- }
- }
-
- @Override
- public int unprotectBlock(Block block)
- {
- Connection conn = null;
- PreparedStatement ps = null;
- try
- {
- conn = cpds.getConnection();
- ps = getStatementDeleteByLocation(conn, block.getWorld().getName(), block.getX(), block.getY(), block.getZ());
- return ps.executeUpdate();
- }
- catch (SQLException ex)
- {
- LOGGER.log(Level.SEVERE, null, ex);
- return 0;
- }
- finally
- {
- if (ps != null)
- {
- try
- {
- ps.close();
- }
- catch (SQLException ex)
- {
- LOGGER.log(Level.SEVERE, null, ex);
- }
- }
- if (conn != null)
- {
- try
- {
- conn.close();
- }
- catch (SQLException ex)
- {
- LOGGER.log(Level.SEVERE, null, ex);
- }
- }
- }
- }
-
- @Override
- public void onPluginDeactivation()
- {
- cpds.close();
- }
-}
diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/data/ProtectedBlockMemory.java b/EssentialsProtect/src/com/earth2me/essentials/protect/data/ProtectedBlockMemory.java
deleted file mode 100644
index 348e75515..000000000
--- a/EssentialsProtect/src/com/earth2me/essentials/protect/data/ProtectedBlockMemory.java
+++ /dev/null
@@ -1,258 +0,0 @@
-package com.earth2me.essentials.protect.data;
-
-import java.util.*;
-import java.util.Map.Entry;
-import org.bukkit.World;
-import org.bukkit.block.Block;
-import org.bukkit.plugin.Plugin;
-
-
-public class ProtectedBlockMemory implements IProtectedBlock
-{
- private final List<String> worlds = new ArrayList<String>();
- private final List<String> playerNames = new ArrayList<String>();
- private final IProtectedBlock storage;
- private final Plugin plugin;
-
-
- static class ProtectedLocation
- {
- private final int x;
- private final int y;
- private final int z;
- private final int w;
-
- public ProtectedLocation(final Block block, final int worldId)
- {
- this.x = block.getX();
- this.y = block.getY();
- this.z = block.getZ();
- this.w = worldId;
- }
-
- public ProtectedLocation(final OwnedBlock ownedBlock, final int worldId)
- {
- this.x = ownedBlock.x;
- this.y = ownedBlock.y;
- this.z = ownedBlock.z;
- this.w = worldId;
- }
-
- @Override
- public boolean equals(final Object object)
- {
- if (object instanceof ProtectedLocation)
- {
- final ProtectedLocation pLoc = (ProtectedLocation)object;
- return x == pLoc.x && y == pLoc.y && z == pLoc.z && w == pLoc.w;
- }
- return false;
- }
-
- @Override
- public int hashCode()
- {
- return x ^ y ^ z ^ w;
- }
- }
-
-
- static class ProtectedBy
- {
- private int playerId = -1;
- private Set<Integer> playerIds;
-
- public void add(final int playerId)
- {
- if (this.playerId == -1 || this.playerId == playerId)
- {
- this.playerId = playerId;
- }
- else
- {
- if (playerIds == null)
- {
- playerIds = new HashSet<Integer>(4);
- playerIds.add(this.playerId);
- }
- playerIds.add(playerId);
- }
- }
-
- public boolean contains(final int playerId)
- {
- if (playerIds == null)
- {
- return this.playerId == playerId;
- }
- return playerIds.contains(playerId);
- }
-
- public List<String> getPlayers(final List<String> playerNames)
- {
- final List<String> list = new ArrayList<String>(2);
- if (playerIds == null)
- {
- list.add(playerNames.get(playerId));
- }
- else
- {
- for (Integer integer : playerIds)
- {
- list.add(playerNames.get(integer));
- }
- }
- return list;
- }
-
- public int size()
- {
- if (playerIds == null)
- {
- return 1;
- }
- return playerIds.size();
- }
- }
- private final Map<ProtectedLocation, ProtectedBy> blocks = new HashMap<ProtectedLocation, ProtectedBy>();
-
- public ProtectedBlockMemory(final IProtectedBlock storage, final Plugin plugin)
- {
- this.storage = storage;
- this.plugin = plugin;
- importProtections(storage.exportProtections());
- }
-
- @Override
- public void clearProtections()
- {
- blocks.clear();
- }
-
- @Override
- public final void importProtections(final List<OwnedBlock> blocks)
- {
- for (OwnedBlock ownedBlock : blocks)
- {
- final ProtectedLocation pl = new ProtectedLocation(ownedBlock, getWorldId(ownedBlock.world));
- if (ownedBlock.playerName == null)
- {
- continue;
- }
- protectBlock(pl, ownedBlock.playerName);
- }
- }
-
- @Override
- public List<OwnedBlock> exportProtections()
- {
- final List<OwnedBlock> blockList = new ArrayList<OwnedBlock>(blocks.size());
- for (Entry<ProtectedLocation, ProtectedBy> entry : blocks.entrySet())
- {
- for (String name : entry.getValue().getPlayers(playerNames))
- {
- final OwnedBlock ob = new OwnedBlock(
- entry.getKey().x,
- entry.getKey().y,
- entry.getKey().z,
- worlds.get(entry.getKey().w),
- name);
- blockList.add(ob);
- }
- }
- return blockList;
- }
-
- @Override
- public void protectBlock(final Block block, final String playerName)
- {
- final ProtectedLocation pl = new ProtectedLocation(block, getWorldId(block.getWorld()));
- protectBlock(pl, playerName);
- plugin.getServer().getScheduler().runTaskAsynchronously(plugin, new Runnable()
- {
- @Override
- public void run()
- {
- storage.protectBlock(block, playerName);
- }
- });
- }
-
- private void protectBlock(ProtectedLocation pl, String playerName)
- {
- int playerId = getPlayerId(playerName);
- ProtectedBy pb = blocks.get(pl);
- if (pb == null)
- {
- pb = new ProtectedBy();
- blocks.put(pl, pb);
- }
- pb.add(playerId);
- }
-
- @Override
- public boolean isProtected(Block block, String playerName)
- {
- int playerId = getPlayerId(playerName);
- ProtectedLocation pl = new ProtectedLocation(block, getWorldId(block.getWorld()));
- ProtectedBy pb = blocks.get(pl);
- return !pb.contains(playerId);
- }
-
- @Override
- public List<String> getOwners(Block block)
- {
- ProtectedLocation pl = new ProtectedLocation(block, getWorldId(block.getWorld()));
- ProtectedBy pb = blocks.get(pl);
- return pb.getPlayers(playerNames);
- }
-
- @Override
- public int unprotectBlock(final Block block)
- {
- ProtectedLocation pl = new ProtectedLocation(block, getWorldId(block.getWorld()));
- ProtectedBy pb = blocks.remove(pl);
- plugin.getServer().getScheduler().runTaskAsynchronously(plugin, new Runnable()
- {
- @Override
- public void run()
- {
- storage.unprotectBlock(block);
- }
- });
- return pb.size();
- }
-
- private int getPlayerId(String playername)
- {
- int id = playerNames.indexOf(playername);
- if (id < 0)
- {
- playerNames.add(playername);
- id = playerNames.indexOf(playername);
- }
- return id;
- }
-
- private int getWorldId(World world)
- {
- return getWorldId(world.getName());
- }
-
- private int getWorldId(String name)
- {
- int id = worlds.indexOf(name);
- if (id < 0)
- {
- worlds.add(name);
- id = worlds.indexOf(name);
- }
- return id;
- }
-
- @Override
- public void onPluginDeactivation()
- {
- storage.onPluginDeactivation();
- }
-}
diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/data/ProtectedBlockMySQL.java b/EssentialsProtect/src/com/earth2me/essentials/protect/data/ProtectedBlockMySQL.java
deleted file mode 100644
index 2a0077698..000000000
--- a/EssentialsProtect/src/com/earth2me/essentials/protect/data/ProtectedBlockMySQL.java
+++ /dev/null
@@ -1,156 +0,0 @@
-package com.earth2me.essentials.protect.data;
-
-import java.beans.PropertyVetoException;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-
-public class ProtectedBlockMySQL extends ProtectedBlockJDBC
-{
- public ProtectedBlockMySQL(String url, String username, String password) throws PropertyVetoException
- {
- super("com.mysql.jdbc.Driver", url, username, password);
- }
- private static final String QueryCreateTable =
- "CREATE TABLE IF NOT EXISTS `EssentialsProtect` ("
- + "`worldName` varchar(60) NOT NULL,"
- + "`x` int(11) NOT NULL, `y` int(11) NOT NULL, `z` int(11) NOT NULL,"
- + "`playerName` varchar(150) DEFAULT NULL,"
- + "KEY `pos` (`worldName`,`x`,`z`,`y`)"
- + ") ENGINE=MyISAM DEFAULT CHARSET=utf8";
-
- @Override
- protected PreparedStatement getStatementCreateTable(Connection conn) throws SQLException
- {
- return conn.prepareStatement(QueryCreateTable);
- }
- private static final String QueryUpdateFrom2_0TableCheck =
- "SHOW COLUMNS FROM `EssentialsProtect` LIKE 'id';";
- private static final String QueryUpdateFrom2_0Table =
- "ALTER TABLE `EssentialsProtect` "
- + "CHARACTER SET = utf8, ENGINE = MyISAM,"
- + "DROP COLUMN `id`,"
- + "CHANGE COLUMN `playerName` `playerName` VARCHAR(150) NULL AFTER `z`,"
- + "CHANGE COLUMN `worldName` `worldName` VARCHAR(60) NOT NULL,"
- + "ADD INDEX `position` (`worldName` ASC, `x` ASC, `z` ASC, `y` ASC),"
- + "DROP PRIMARY KEY ;";
-
- @Override
- protected PreparedStatement getStatementUpdateFrom2_0Table(Connection conn) throws SQLException
- {
- PreparedStatement testPS = null;
- ResultSet testRS = null;
- try
- {
- testPS = conn.prepareStatement(QueryUpdateFrom2_0TableCheck);
- testRS = testPS.executeQuery();
- if (testRS.first())
- {
- return conn.prepareStatement(QueryUpdateFrom2_0Table);
- }
- else
- {
- return conn.prepareStatement("SELECT 1;");
- }
- }
- finally
- {
- if (testRS != null)
- {
- try
- {
- testRS.close();
- }
- catch (SQLException ex)
- {
- Logger.getLogger(ProtectedBlockMySQL.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- if (testPS != null)
- {
- try
- {
- testPS.close();
- }
- catch (SQLException ex)
- {
- Logger.getLogger(ProtectedBlockMySQL.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- }
- }
- private static final String QueryDeleteAll = "DELETE FROM EssentialsProtect;";
-
- @Override
- protected PreparedStatement getStatementDeleteAll(Connection conn) throws SQLException
- {
- return conn.prepareStatement(QueryDeleteAll);
- }
- private static final String QueryInsert =
- "INSERT INTO EssentialsProtect (worldName, x, y, z, playerName) VALUES (?, ?, ?, ?, ?);";
-
- @Override
- protected PreparedStatement getStatementInsert(Connection conn, String world, int x, int y, int z, String playerName) throws SQLException
- {
- PreparedStatement ps = conn.prepareStatement(QueryInsert);
- ps.setString(1, world);
- ps.setInt(2, x);
- ps.setInt(3, y);
- ps.setInt(4, z);
- ps.setString(5, playerName);
- return ps;
- }
- private static final String QueryCountByPlayer =
- "SELECT COUNT(playerName), SUM(playerName = ?) FROM EssentialsProtect "
- + "WHERE worldName = ? AND x = ? AND y = ? AND z = ? GROUP BY x;";
-
- @Override
- protected PreparedStatement getStatementPlayerCountByLocation(Connection conn, String world, int x, int y, int z, String playerName) throws SQLException
- {
- PreparedStatement ps = conn.prepareStatement(QueryCountByPlayer);
- ps.setString(1, playerName);
- ps.setString(2, world);
- ps.setInt(3, x);
- ps.setInt(4, y);
- ps.setInt(5, z);
- return ps;
- }
- private static final String QueryPlayersByLocation =
- "SELECT playerName FROM EssentialsProtect WHERE worldname = ? AND x = ? AND y = ? AND z = ?;";
-
- @Override
- protected PreparedStatement getStatementPlayersByLocation(Connection conn, String world, int x, int y, int z) throws SQLException
- {
- PreparedStatement ps = conn.prepareStatement(QueryPlayersByLocation);
- ps.setString(1, world);
- ps.setInt(2, x);
- ps.setInt(3, y);
- ps.setInt(4, z);
- return ps;
- }
- private static final String QueryDeleteByLocation =
- "DELETE FROM EssentialsProtect WHERE worldName = ? AND x = ? AND y = ? AND z = ?;";
-
- @Override
- protected PreparedStatement getStatementDeleteByLocation(Connection conn, String world, int x, int y, int z) throws SQLException
- {
- PreparedStatement ps = conn.prepareStatement(QueryDeleteByLocation);
- ps.setString(1, world);
- ps.setInt(2, x);
- ps.setInt(3, y);
- ps.setInt(4, z);
- return ps;
- }
- private static final String QueryAllBlocks =
- "SELECT worldName, x, y, z, playerName FROM EssentialsProtect;";
-
- @Override
- protected PreparedStatement getStatementAllBlocks(Connection conn) throws SQLException
- {
- return conn.prepareStatement(QueryAllBlocks);
- }
-}
diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/data/ProtectedBlockSQLite.java b/EssentialsProtect/src/com/earth2me/essentials/protect/data/ProtectedBlockSQLite.java
deleted file mode 100644
index cf256f1ec..000000000
--- a/EssentialsProtect/src/com/earth2me/essentials/protect/data/ProtectedBlockSQLite.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package com.earth2me.essentials.protect.data;
-
-import java.beans.PropertyVetoException;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
-
-
-public class ProtectedBlockSQLite extends ProtectedBlockJDBC
-{
- public ProtectedBlockSQLite(String url) throws PropertyVetoException
- {
- super("org.sqlite.JDBC", url);
- }
- private static final String QueryCreateTable =
- "CREATE TABLE IF NOT EXISTS EssentialsProtect ("
- + "worldName TEXT ,playerName TEXT, "
- + "x NUMERIC, y NUMERIC, z NUMERIC)";
-
- @Override
- protected PreparedStatement getStatementCreateTable(Connection conn) throws SQLException
- {
- return conn.prepareStatement(QueryCreateTable);
- }
- private static final String QueryUpdateFrom2_0Table =
- "CREATE INDEX IF NOT EXISTS position ON EssentialsProtect ("
- + "worldName, x, z, y)";
-
- @Override
- protected PreparedStatement getStatementUpdateFrom2_0Table(Connection conn) throws SQLException
- {
- return conn.prepareStatement(QueryUpdateFrom2_0Table);
- }
- private static final String QueryDeleteAll = "DELETE FROM EssentialsProtect;";
-
- @Override
- protected PreparedStatement getStatementDeleteAll(Connection conn) throws SQLException
- {
- return conn.prepareStatement(QueryDeleteAll);
- }
- private static final String QueryInsert =
- "INSERT INTO EssentialsProtect (worldName, x, y, z, playerName) VALUES (?, ?, ?, ?, ?);";
-
- @Override
- protected PreparedStatement getStatementInsert(Connection conn, String world, int x, int y, int z, String playerName) throws SQLException
- {
- PreparedStatement ps = conn.prepareStatement(QueryInsert);
- ps.setString(1, world);
- ps.setInt(2, x);
- ps.setInt(3, y);
- ps.setInt(4, z);
- ps.setString(5, playerName);
- return ps;
- }
- private static final String QueryPlayerCountByLocation =
- "SELECT COUNT(playerName), SUM(playerName = ?) FROM EssentialsProtect "
- + "WHERE worldName = ? AND x = ? AND y = ? AND z = ? GROUP BY x;";
-
- @Override
- protected PreparedStatement getStatementPlayerCountByLocation(Connection conn, String world, int x, int y, int z, String playerName) throws SQLException
- {
- PreparedStatement ps = conn.prepareStatement(QueryPlayerCountByLocation);
- ps.setString(1, playerName);
- ps.setString(2, world);
- ps.setInt(3, x);
- ps.setInt(4, y);
- ps.setInt(5, z);
- return ps;
- }
- private static final String QueryPlayersByLocation =
- "SELECT playerName FROM EssentialsProtect WHERE worldname = ? AND x = ? AND y = ? AND z = ?;";
-
- @Override
- protected PreparedStatement getStatementPlayersByLocation(Connection conn, String world, int x, int y, int z) throws SQLException
- {
- PreparedStatement ps = conn.prepareStatement(QueryPlayersByLocation);
- ps.setString(1, world);
- ps.setInt(2, x);
- ps.setInt(3, y);
- ps.setInt(4, z);
- return ps;
- }
- private static final String QueryDeleteByLocation =
- "DELETE FROM EssentialsProtect WHERE worldName = ? AND x = ? AND y = ? AND z = ?;";
-
- @Override
- protected PreparedStatement getStatementDeleteByLocation(Connection conn, String world, int x, int y, int z) throws SQLException
- {
- PreparedStatement ps = conn.prepareStatement(QueryDeleteByLocation);
- ps.setString(1, world);
- ps.setInt(2, x);
- ps.setInt(3, y);
- ps.setInt(4, z);
- return ps;
- }
- private static final String QueryAllBlocks =
- "SELECT worldName, x, y, z, playerName FROM EssentialsProtect;";
-
- @Override
- protected PreparedStatement getStatementAllBlocks(Connection conn) throws SQLException
- {
- return conn.prepareStatement(QueryAllBlocks);
- }
-}
diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/log4j.properties b/EssentialsProtect/src/com/earth2me/essentials/protect/log4j.properties
deleted file mode 100644
index 2642ee541..000000000
--- a/EssentialsProtect/src/com/earth2me/essentials/protect/log4j.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-log4j.rootLogger=INFO, A1
-log4j.appender.A1=org.apache.log4j.ConsoleAppender
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n \ No newline at end of file
diff --git a/EssentialsSpawn/src/com/earth2me/essentials/spawn/Commandspawn.java b/EssentialsSpawn/src/com/earth2me/essentials/spawn/Commandspawn.java
index 6335d6c69..31882cc4a 100644
--- a/EssentialsSpawn/src/com/earth2me/essentials/spawn/Commandspawn.java
+++ b/EssentialsSpawn/src/com/earth2me/essentials/spawn/Commandspawn.java
@@ -4,6 +4,7 @@ import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.Trade;
import com.earth2me.essentials.User;
import com.earth2me.essentials.commands.EssentialsCommand;
+import com.earth2me.essentials.commands.NoChargeException;
import com.earth2me.essentials.commands.NotEnoughArgumentsException;
import org.bukkit.Location;
import org.bukkit.Server;
@@ -26,7 +27,7 @@ public class Commandspawn extends EssentialsCommand
if (args.length > 0 && user.isAuthorized("essentials.spawn.others"))
{
final User otherUser = getPlayer(server, args, 0);
- respawn(otherUser, null);
+ respawn(otherUser, charge);
if (!otherUser.equals(user))
{
otherUser.sendMessage(_("teleportAtoB", user.getDisplayName(), "spawn"));
@@ -35,8 +36,9 @@ public class Commandspawn extends EssentialsCommand
}
else
{
- respawn(user, null);
+ respawn(user, charge);
}
+ throw new NoChargeException();
}
@Override
diff --git a/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawn.java b/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawn.java
index f0c5ee466..88be7169e 100644
--- a/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawn.java
+++ b/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawn.java
@@ -23,6 +23,7 @@ public class EssentialsSpawn extends JavaPlugin
private transient IEssentials ess;
private transient SpawnStorage spawns;
+ @Override
public void onEnable()
{
final PluginManager pluginManager = getServer().getPluginManager();
@@ -59,13 +60,13 @@ public class EssentialsSpawn extends JavaPlugin
}, this);
}
+ @Override
public void onDisable()
{
}
@Override
- public boolean onCommand(final CommandSender sender, final Command command,
- final String commandLabel, final String[] args)
+ public boolean onCommand(final CommandSender sender, final Command command, final String commandLabel, final String[] args)
{
return ess.onCommandEssentials(sender, command, commandLabel, args, EssentialsSpawn.class.getClassLoader(), "com.earth2me.essentials.spawn.Command", "essentials.", spawns);
}
diff --git a/README.markdown b/README.markdown
index 1913e1ba1..81cb76976 100644
--- a/README.markdown
+++ b/README.markdown
@@ -11,6 +11,22 @@ Recommended NetBeans plugins:
* Git
* PMD & FindBugs ( http://kenai.com/projects/sqe/pages/Home )
+
+Commit Guidelines
+-----------------
+
+Commits should fall into one of 3 areas:
+
+[Feature] Commits which are features should start with '[Feature]' and followed by a quick summary on the top line, followed by some extra details in the commit body.
+
+[Fix] Commits which fix bugs, or minor improvements to existing features should start with '[Fix]' and followed by a quick summary on the top line, followed by some extra details in the commit body.
+
+Commits which fix bugs caused by previous commits (since last release), or otherwise make no functionality changes, should have no prefix. These will not be added to the project change log.
+
+Coding Guidelines
+-----------------
+
+
Please follow the format guidelines that are saved in the project properties.
Windows users, please read this: http://help.github.com/line-endings/
@@ -20,4 +36,4 @@ To build all jars, select the BuildAll project and build that. You'll find all j
If you create pull requests, always make them for the master branch.
-The essentials bug tracker can be found at http://www.assembla.com/spaces/essentials/tickets \ No newline at end of file
+The essentials bug tracker can be found at http://www.assembla.com/spaces/essentials/tickets
diff --git a/lib/c3p0-0.9.1.2.jar b/lib/c3p0-0.9.1.2.jar
deleted file mode 100644
index 0f42d60e3..000000000
--- a/lib/c3p0-0.9.1.2.jar
+++ /dev/null
Binary files differ