mirror of
https://github.com/EssentialsX/Essentials.git
synced 2026-11-06 01:22:32 -05:00
Compare commits
280
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5622882602 | ||
|
|
b3d3928db8 | ||
|
|
6df3b9008a | ||
|
|
c36ca65e09 | ||
|
|
2e788802fe | ||
|
|
b0552019f5 | ||
|
|
dae69622a5 | ||
|
|
696b930fb2 | ||
|
|
e43a62f992 | ||
|
|
02c1cb05c7 | ||
|
|
b44d738867 | ||
|
|
e1818f7e62 | ||
|
|
e5081db7e4 | ||
|
|
ba346bd797 | ||
|
|
0670ece7f3 | ||
|
|
a8da3eebd7 | ||
|
|
056303b53c | ||
|
|
454f7d30de | ||
|
|
6d1c270976 | ||
|
|
d1001274bb | ||
|
|
3099855562 | ||
|
|
3f26d4ad98 | ||
|
|
bae337cc49 | ||
|
|
3823e7a108 | ||
|
|
1c2221f52f | ||
|
|
1b780a4364 | ||
|
|
ac3e65a829 | ||
|
|
332f19177e | ||
|
|
6ab57b9abe | ||
|
|
862f3aad59 | ||
|
|
e277acf80e | ||
|
|
9f893e68e9 | ||
|
|
833a5b2b55 | ||
|
|
340f0c68eb | ||
|
|
a5e3182dad | ||
|
|
10ae9c3aa2 | ||
|
|
bcf903de92 | ||
|
|
ad08d27504 | ||
|
|
d24f77dbd5 | ||
|
|
a5b38ce1a4 | ||
|
|
5d048d2c1d | ||
|
|
13d3cc3306 | ||
|
|
9f02fb4dd4 | ||
|
|
07baa6e611 | ||
|
|
50bd5869bf | ||
|
|
fa49fc91d2 | ||
|
|
28f478dd04 | ||
|
|
6fb8dad0ec | ||
|
|
9f605e9a88 | ||
|
|
e5b91dae73 | ||
|
|
e1749fecd1 | ||
|
|
358edff798 | ||
|
|
34f13ba89c | ||
|
|
945ba6f8ab | ||
|
|
46f05ee92f | ||
|
|
6d46fc66ce | ||
|
|
ed7fe9213f | ||
|
|
9c68cbae72 | ||
|
|
c0df771539 | ||
|
|
9bd0c33fef | ||
|
|
cf7da7a83f | ||
|
|
f46948249e | ||
|
|
3b81593ebb | ||
|
|
8042cefd3d | ||
|
|
514f07ce57 | ||
|
|
4f4d9f6209 | ||
|
|
3077ea4ef1 | ||
|
|
945ae71480 | ||
|
|
3d1c0fd157 | ||
|
|
fab9688abb | ||
|
|
b2dbb3f9e3 | ||
|
|
16a0f44b4d | ||
|
|
7633b136e3 | ||
|
|
0252d756f6 | ||
|
|
ad05516fd5 | ||
|
|
6d127012d8 | ||
|
|
c064da9af8 | ||
|
|
d05f2d7a32 | ||
|
|
3fc6bb4e4f | ||
|
|
59679e0423 | ||
|
|
1a2acb43ae | ||
|
|
f0c0ee1a8d | ||
|
|
3c98718387 | ||
|
|
cfdb2a36c1 | ||
|
|
3b7d194902 | ||
|
|
72d514d52f | ||
|
|
9fe119e720 | ||
|
|
4a5c431163 | ||
|
|
a6ac333a74 | ||
|
|
bc2578b788 | ||
|
|
36d07cb539 | ||
|
|
effe0d5ec5 | ||
|
|
0ab2e745cf | ||
|
|
57a2ef08d4 | ||
|
|
2699e02f96 | ||
|
|
62cd219b4e | ||
|
|
2d56de1483 | ||
|
|
bbc6da5106 | ||
|
|
b0d06ce6ed | ||
|
|
de1554cb68 | ||
|
|
c890ea8f87 | ||
|
|
c0517c1203 | ||
|
|
9efd0eb6f9 | ||
|
|
f0ee026fb9 | ||
|
|
b3fc790000 | ||
|
|
83f9209bcc | ||
|
|
691a0ef4ce | ||
|
|
97bd49e598 | ||
|
|
e93e50f6d2 | ||
|
|
76ba5caeec | ||
|
|
6ca1cdec4f | ||
|
|
86a1dda46c | ||
|
|
4326ce0d4a | ||
|
|
3ff1f4adbb | ||
|
|
492c4e8521 | ||
|
|
e3f3fe84ea | ||
|
|
6e2ac3b56e | ||
|
|
5c19e71858 | ||
|
|
a0103afde3 | ||
|
|
dbf30740fb | ||
|
|
92fa415848 | ||
|
|
2942ef40f3 | ||
|
|
3f02bcd702 | ||
|
|
fe050dd725 | ||
|
|
5b4966c888 | ||
|
|
e2abf05a27 | ||
|
|
8500542e93 | ||
|
|
d9e6f2975a | ||
|
|
2f1d9ad82c | ||
|
|
d8ac3587ac | ||
|
|
2c8aa20542 | ||
|
|
a2418a68d9 | ||
|
|
85c4fbdf4f | ||
|
|
dff8f541fe | ||
|
|
d0a5656fa4 | ||
|
|
bc76e87366 | ||
|
|
bf9a67a2e4 | ||
|
|
95885e46c9 | ||
|
|
5a7f38fa29 | ||
|
|
6a5fefb102 | ||
|
|
c47c008871 | ||
|
|
a31f5e219d | ||
|
|
9ee78bdaec | ||
|
|
735f9ce212 | ||
|
|
417148f5da | ||
|
|
8f0350570e | ||
|
|
27365d1f1b | ||
|
|
ebb3a77430 | ||
|
|
b3252168f6 | ||
|
|
e1abdbdd37 | ||
|
|
3deff2afe7 | ||
|
|
a85cbdd505 | ||
|
|
c6aa34076a | ||
|
|
92f83dfe73 | ||
|
|
00057eaca4 | ||
|
|
2f96c9763f | ||
|
|
137b60c5f2 | ||
|
|
292b7b0546 | ||
|
|
d1d31e9769 | ||
|
|
f7c6759433 | ||
|
|
5137502646 | ||
|
|
9ff8b69282 | ||
|
|
7f269187c5 | ||
|
|
6d34a2aa17 | ||
|
|
9b58b2b9c0 | ||
|
|
b4d91978c7 | ||
|
|
8aa260ee34 | ||
|
|
25976edc2b | ||
|
|
8e9094a3ef | ||
|
|
16bde87982 | ||
|
|
b8944d0b25 | ||
|
|
69209eeb2f | ||
|
|
746eb353a2 | ||
|
|
3708f2b3bb | ||
|
|
e563405a7d | ||
|
|
ae2cf3d95c | ||
|
|
270533652b | ||
|
|
324dd05c97 | ||
|
|
2a0c3eebbc | ||
|
|
e1660d47ba | ||
|
|
03d640260d | ||
|
|
da3a6af92d | ||
|
|
593cb8d56e | ||
|
|
f40f5f880b | ||
|
|
8390594682 | ||
|
|
a13740f638 | ||
|
|
5f19cbf17b | ||
|
|
145b0be2f3 | ||
|
|
1dab4f95dd | ||
|
|
f27b2290dc | ||
|
|
0ea41d9169 | ||
|
|
f93769dd1d | ||
|
|
125ea7c701 | ||
|
|
6e03ea7b7d | ||
|
|
9041596384 | ||
|
|
efda9beece | ||
|
|
4b61ac9043 | ||
|
|
72edfacfb8 | ||
|
|
aa88205d95 | ||
|
|
8d441a4cc7 | ||
|
|
766935871f | ||
|
|
f5d65371b2 | ||
|
|
662749be8b | ||
|
|
e46fe381b4 | ||
|
|
04a43eb5d0 | ||
|
|
792f70efa5 | ||
|
|
46298ae858 | ||
|
|
d08b1a5089 | ||
|
|
e015cad131 | ||
|
|
008f0d595f | ||
|
|
7ee3919175 | ||
|
|
2560bdca4a | ||
|
|
16d537bd6c | ||
|
|
5f04d1867c | ||
|
|
a10f6850e5 | ||
|
|
36bc1adf83 | ||
|
|
cd8cc63113 | ||
|
|
947bee98a0 | ||
|
|
9c052b5178 | ||
|
|
64af5b465d | ||
|
|
5c1d49fd0e | ||
|
|
79a13e97a2 | ||
|
|
89c41b0508 | ||
|
|
e7fd26ee64 | ||
|
|
8fc6684290 | ||
|
|
a66ffd8921 | ||
|
|
1f2c669eca | ||
|
|
1d5a09a03e | ||
|
|
4435121c84 | ||
|
|
813e66b4f2 | ||
|
|
26d63f3666 | ||
|
|
0fb07d4cc1 | ||
|
|
cd2f819c29 | ||
|
|
149ce7d74d | ||
|
|
c7c7e5e4ce | ||
|
|
f26cccb663 | ||
|
|
81ec87d893 | ||
|
|
91563e9dca | ||
|
|
359ea194b8 | ||
|
|
1a0b03db4d | ||
|
|
c860b1c668 | ||
|
|
c584d74852 | ||
|
|
6e82419c15 | ||
|
|
3f6b9586b4 | ||
|
|
29d4e09983 | ||
|
|
f61f80164d | ||
|
|
f0def90301 | ||
|
|
d0e5685ac0 | ||
|
|
856cef3286 | ||
|
|
d16fef9f7f | ||
|
|
43f1c0f89d | ||
|
|
256d202d50 | ||
|
|
4884bed117 | ||
|
|
3fdde2f764 | ||
|
|
390b17f0d8 | ||
|
|
fe9d5645f6 | ||
|
|
eb5c88ef08 | ||
|
|
6eea852b1d | ||
|
|
768c92e5bf | ||
|
|
2a478fe03d | ||
|
|
58057a771d | ||
|
|
4c485f3147 | ||
|
|
7726fd0081 | ||
|
|
9a568992f1 | ||
|
|
283dc9b3c1 | ||
|
|
3aba996e97 | ||
|
|
69847af08a | ||
|
|
debcf4714a | ||
|
|
791e8f2d14 | ||
|
|
5d4f22ad84 | ||
|
|
31e80ba698 | ||
|
|
a2202439bb | ||
|
|
7c8c40c790 | ||
|
|
abd86347c7 | ||
|
|
5bb7d82fca | ||
|
|
afe8ecd3df | ||
|
|
244673e1fb | ||
|
|
de40f7f556 | ||
|
|
ac77bbb0b4 | ||
|
|
815a9dcca2 |
No files matched your search
+3
-1
@@ -37,4 +37,6 @@
|
||||
/WebPush/apikey.php
|
||||
/WebPush/nbproject/private
|
||||
/.idea
|
||||
*.iml
|
||||
*.iml
|
||||
/EssentialsGroupManager/bin
|
||||
/EssentialsGroupManager/.externalToolBuilders
|
||||
@@ -922,6 +922,14 @@ is divided into following sections:
|
||||
-->
|
||||
<target depends="init" if="have.sources" name="-javadoc-build">
|
||||
<mkdir dir="${dist.javadoc.dir}"/>
|
||||
<condition else="" property="javadoc.endorsed.classpath.cmd.line.arg" value="-J${endorsed.classpath.cmd.line.arg}">
|
||||
<and>
|
||||
<isset property="endorsed.classpath.cmd.line.arg"/>
|
||||
<not>
|
||||
<equals arg1="${endorsed.classpath.cmd.line.arg}" arg2=""/>
|
||||
</not>
|
||||
</and>
|
||||
</condition>
|
||||
<javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
|
||||
<classpath>
|
||||
<path path="${javac.classpath}"/>
|
||||
@@ -933,6 +941,7 @@ is divided into following sections:
|
||||
<include name="**/*.java"/>
|
||||
<exclude name="*.java"/>
|
||||
</fileset>
|
||||
<arg line="${javadoc.endorsed.classpath.cmd.line.arg}"/>
|
||||
</javadoc>
|
||||
<copy todir="${dist.javadoc.dir}">
|
||||
<fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
|
||||
|
||||
@@ -4,5 +4,5 @@ build.xml.stylesheet.CRC32=28e38971@1.44.1.45
|
||||
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
|
||||
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
|
||||
nbproject/build-impl.xml.data.CRC32=51b33957
|
||||
nbproject/build-impl.xml.script.CRC32=c8376938
|
||||
nbproject/build-impl.xml.stylesheet.CRC32=c12040a1@1.47.1.46
|
||||
nbproject/build-impl.xml.script.CRC32=c5170bed
|
||||
nbproject/build-impl.xml.stylesheet.CRC32=fcddb364@1.50.1.46
|
||||
@@ -873,6 +873,14 @@ is divided into following sections:
|
||||
-->
|
||||
<target depends="init" if="have.sources" name="-javadoc-build">
|
||||
<mkdir dir="${dist.javadoc.dir}"/>
|
||||
<condition else="" property="javadoc.endorsed.classpath.cmd.line.arg" value="-J${endorsed.classpath.cmd.line.arg}">
|
||||
<and>
|
||||
<isset property="endorsed.classpath.cmd.line.arg"/>
|
||||
<not>
|
||||
<equals arg1="${endorsed.classpath.cmd.line.arg}" arg2=""/>
|
||||
</not>
|
||||
</and>
|
||||
</condition>
|
||||
<javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
|
||||
<classpath>
|
||||
<path path="${javac.classpath}"/>
|
||||
@@ -884,6 +892,7 @@ is divided into following sections:
|
||||
<include name="**/*.java"/>
|
||||
<exclude name="*.java"/>
|
||||
</fileset>
|
||||
<arg line="${javadoc.endorsed.classpath.cmd.line.arg}"/>
|
||||
</javadoc>
|
||||
<copy todir="${dist.javadoc.dir}">
|
||||
<fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
|
||||
|
||||
@@ -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=40df7eaf
|
||||
nbproject/build-impl.xml.stylesheet.CRC32=c12040a1@1.47.1.46
|
||||
nbproject/build-impl.xml.script.CRC32=a9f8842a
|
||||
nbproject/build-impl.xml.stylesheet.CRC32=fcddb364@1.50.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
|
||||
@@ -66,16 +66,19 @@ endorsed.classpath=
|
||||
excludes=
|
||||
file.reference.BOSEconomy7.jar=../lib/BOSEconomy7.jar
|
||||
file.reference.bPermissions.jar=../lib/bPermissions.jar
|
||||
file.reference.bpermissions2.jar=../lib/bpermissions2.jar
|
||||
file.reference.bukkit.jar=../lib/bukkit.jar
|
||||
file.reference.craftbukkit.jar=../lib/craftbukkit.jar
|
||||
file.reference.iCo4.jar=../lib/iCo4.jar
|
||||
file.reference.iCo5.jar=../lib/iCo5.jar
|
||||
file.reference.iCo6.jar=../lib/iCo6.jar
|
||||
file.reference.lombok-0.10.1.jar=../lib/lombok-0.10.1.jar
|
||||
file.reference.lombok.jar=../lib/lombok-0.10.8.jar
|
||||
file.reference.MultiCurrency.jar=../lib/MultiCurrency.jar
|
||||
file.reference.Permissions3.jar=../lib/Permissions3.jar
|
||||
file.reference.PermissionsBukkit-1.2.jar=../lib/PermissionsBukkit-1.2.jar
|
||||
file.reference.PermissionsEx.jar=../lib/PermissionsEx.jar
|
||||
file.reference.Privileges.jar=..\\lib\\Privileges.jar
|
||||
file.reference.Vault.jar=../lib/Vault.jar
|
||||
includes=**
|
||||
jar.archive.disabled=${jnlp.enabled}
|
||||
jar.compress=true
|
||||
@@ -90,10 +93,13 @@ javac.classpath=\
|
||||
${file.reference.PermissionsEx.jar}:\
|
||||
${file.reference.bPermissions.jar}:\
|
||||
${file.reference.PermissionsBukkit-1.2.jar}:\
|
||||
${file.reference.lombok-0.10.1.jar}:\
|
||||
${file.reference.lombok.jar}:\
|
||||
${reference.EssentialsGroupManager.jar}:\
|
||||
${file.reference.bukkit.jar}:\
|
||||
${file.reference.craftbukkit.jar}
|
||||
${file.reference.craftbukkit.jar}:\
|
||||
${file.reference.Vault.jar}:\
|
||||
${file.reference.Privileges.jar}:\
|
||||
${file.reference.bpermissions2.jar}
|
||||
# Space-separated list of extra javac options
|
||||
javac.compilerargs=
|
||||
javac.deprecation=false
|
||||
|
||||
@@ -54,6 +54,12 @@ public class Enchantments
|
||||
ENCHANTMENTS.put("silktouch", Enchantment.SILK_TOUCH);
|
||||
ENCHANTMENTS.put("waterworker", Enchantment.WATER_WORKER);
|
||||
ENCHANTMENTS.put("aquaaffinity", Enchantment.WATER_WORKER);
|
||||
ENCHANTMENTS.put("firearrow", Enchantment.ARROW_FIRE);
|
||||
ENCHANTMENTS.put("arrowdamage", Enchantment.ARROW_DAMAGE);
|
||||
ENCHANTMENTS.put("arrowknockback", Enchantment.ARROW_KNOCKBACK);
|
||||
ENCHANTMENTS.put("arrowkb", Enchantment.ARROW_KNOCKBACK);
|
||||
ENCHANTMENTS.put("infinitearrows", Enchantment.ARROW_INFINITE);
|
||||
ENCHANTMENTS.put("infarrows", Enchantment.ARROW_INFINITE);
|
||||
}
|
||||
|
||||
public static Enchantment getByName(String name) {
|
||||
|
||||
@@ -24,7 +24,6 @@ import com.earth2me.essentials.commands.EssentialsCommand;
|
||||
import com.earth2me.essentials.commands.IEssentialsCommand;
|
||||
import com.earth2me.essentials.commands.NoChargeException;
|
||||
import com.earth2me.essentials.commands.NotEnoughArgumentsException;
|
||||
import com.earth2me.essentials.craftbukkit.ItemDupeFix;
|
||||
import com.earth2me.essentials.perm.PermissionsHandler;
|
||||
import com.earth2me.essentials.register.payment.Methods;
|
||||
import com.earth2me.essentials.signs.SignBlockListener;
|
||||
@@ -33,23 +32,29 @@ import com.earth2me.essentials.signs.SignPlayerListener;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Array;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.LogRecord;
|
||||
import java.util.logging.Logger;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandException;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.PluginCommand;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Event.Priority;
|
||||
import org.bukkit.event.Event.Type;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerListener;
|
||||
import org.bukkit.event.world.WorldLoadEvent;
|
||||
import org.bukkit.event.world.WorldUnloadEvent;
|
||||
import org.bukkit.plugin.InvalidDescriptionException;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.PluginDescriptionFile;
|
||||
@@ -61,7 +66,7 @@ import org.yaml.snakeyaml.error.YAMLException;
|
||||
|
||||
public class Essentials extends JavaPlugin implements IEssentials
|
||||
{
|
||||
public static final int BUKKIT_VERSION = 1597;
|
||||
public static final int BUKKIT_VERSION = 1988;
|
||||
private static final Logger LOGGER = Logger.getLogger("Minecraft");
|
||||
private transient ISettings settings;
|
||||
private final transient TNTExplodeListener tntListener = new TNTExplodeListener(this);
|
||||
@@ -124,10 +129,10 @@ public class Essentials extends JavaPlugin implements IEssentials
|
||||
LOGGER.log(Level.WARNING, _("versionMismatch", plugin.getDescription().getName()));
|
||||
}
|
||||
}
|
||||
final Matcher versionMatch = Pattern.compile("git-Bukkit-([0-9]+).([0-9]+).([0-9]+)-R[0-9]+-(?:[0-9]+-g[0-9a-f]+-)?b([0-9]+)jnks.*").matcher(getServer().getVersion());
|
||||
final Matcher versionMatch = Pattern.compile("git-Bukkit-(?:(?:[0-9]+)\\.)+[0-9]+-R[0-9]+-(?:[0-9]+-g[0-9a-f]+-)?b([0-9]+)jnks.*").matcher(getServer().getVersion());
|
||||
if (versionMatch.matches())
|
||||
{
|
||||
final int versionNumber = Integer.parseInt(versionMatch.group(4));
|
||||
final int versionNumber = Integer.parseInt(versionMatch.group(1));
|
||||
if (versionNumber < BUKKIT_VERSION)
|
||||
{
|
||||
LOGGER.log(Level.SEVERE, _("notRecommendedBukkit"));
|
||||
@@ -179,14 +184,14 @@ public class Essentials extends JavaPlugin implements IEssentials
|
||||
LOGGER.log(Level.SEVERE, _("essentialsHelp1"));
|
||||
}
|
||||
LOGGER.log(Level.SEVERE, exception.toString());
|
||||
pm.registerEvent(Type.PLAYER_JOIN, new PlayerListener()
|
||||
pm.registerEvents(new Listener()
|
||||
{
|
||||
@Override
|
||||
public void onPlayerJoin(PlayerJoinEvent event)
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onPlayerJoin(final PlayerJoinEvent event)
|
||||
{
|
||||
event.getPlayer().sendMessage("Essentials failed to load, read the log file.");
|
||||
}
|
||||
}, Priority.Low, this);
|
||||
}, this);
|
||||
for (Player player : getServer().getOnlinePlayers())
|
||||
{
|
||||
player.sendMessage("Essentials failed to load, read the log file.");
|
||||
@@ -198,63 +203,40 @@ public class Essentials extends JavaPlugin implements IEssentials
|
||||
permissionsHandler = new PermissionsHandler(this, settings.useBukkitPermissions());
|
||||
alternativeCommandsHandler = new AlternativeCommandsHandler(this);
|
||||
final EssentialsPluginListener serverListener = new EssentialsPluginListener(this);
|
||||
pm.registerEvent(Type.PLUGIN_ENABLE, serverListener, Priority.Low, this);
|
||||
pm.registerEvent(Type.PLUGIN_DISABLE, serverListener, Priority.Low, this);
|
||||
pm.registerEvents(serverListener, this);
|
||||
confList.add(serverListener);
|
||||
|
||||
final EssentialsPlayerListener playerListener = new EssentialsPlayerListener(this);
|
||||
pm.registerEvent(Type.PLAYER_JOIN, playerListener, Priority.Monitor, this);
|
||||
pm.registerEvent(Type.PLAYER_QUIT, playerListener, Priority.Monitor, this);
|
||||
pm.registerEvent(Type.PLAYER_CHAT, playerListener, Priority.Lowest, this);
|
||||
pm.registerEvent(Type.PLAYER_COMMAND_PREPROCESS, playerListener, Priority.Lowest, this);
|
||||
pm.registerEvent(Type.PLAYER_MOVE, playerListener, Priority.High, this);
|
||||
pm.registerEvent(Type.PLAYER_LOGIN, playerListener, Priority.High, this);
|
||||
pm.registerEvent(Type.PLAYER_TELEPORT, playerListener, Priority.High, this);
|
||||
pm.registerEvent(Type.PLAYER_EGG_THROW, playerListener, Priority.High, this);
|
||||
pm.registerEvent(Type.PLAYER_BUCKET_EMPTY, playerListener, Priority.High, this);
|
||||
pm.registerEvent(Type.PLAYER_ANIMATION, playerListener, Priority.High, this);
|
||||
pm.registerEvent(Type.PLAYER_CHANGED_WORLD, playerListener, Priority.Normal, this);
|
||||
pm.registerEvent(Type.PLAYER_INTERACT, playerListener, Priority.Monitor, this);
|
||||
pm.registerEvent(Type.PLAYER_PICKUP_ITEM, playerListener, Priority.Low, this);
|
||||
pm.registerEvent(Type.PLAYER_TELEPORT, new ItemDupeFix(), Priority.Monitor, this);
|
||||
pm.registerEvents(playerListener, this);
|
||||
|
||||
final EssentialsBlockListener blockListener = new EssentialsBlockListener(this);
|
||||
pm.registerEvent(Type.BLOCK_PLACE, blockListener, Priority.Lowest, this);
|
||||
pm.registerEvents(blockListener, this);
|
||||
|
||||
final SignBlockListener signBlockListener = new SignBlockListener(this);
|
||||
pm.registerEvent(Type.SIGN_CHANGE, signBlockListener, Priority.Highest, this);
|
||||
pm.registerEvent(Type.BLOCK_PLACE, signBlockListener, Priority.Low, this);
|
||||
pm.registerEvent(Type.BLOCK_BREAK, signBlockListener, Priority.Highest, this);
|
||||
pm.registerEvent(Type.BLOCK_IGNITE, signBlockListener, Priority.Low, this);
|
||||
pm.registerEvent(Type.BLOCK_BURN, signBlockListener, Priority.Low, this);
|
||||
pm.registerEvent(Type.BLOCK_PISTON_EXTEND, signBlockListener, Priority.Low, this);
|
||||
pm.registerEvent(Type.BLOCK_PISTON_RETRACT, signBlockListener, Priority.Low, this);
|
||||
pm.registerEvents(signBlockListener, this);
|
||||
|
||||
final SignPlayerListener signPlayerListener = new SignPlayerListener(this);
|
||||
pm.registerEvent(Type.PLAYER_INTERACT, signPlayerListener, Priority.Low, this);
|
||||
pm.registerEvents(signPlayerListener, this);
|
||||
|
||||
final SignEntityListener signEntityListener = new SignEntityListener(this);
|
||||
pm.registerEvent(Type.ENTITY_EXPLODE, signEntityListener, Priority.Low, this);
|
||||
pm.registerEvent(Type.ENDERMAN_PICKUP, signEntityListener, Priority.Low, this);
|
||||
pm.registerEvents(signEntityListener, this);
|
||||
|
||||
final EssentialsEntityListener entityListener = new EssentialsEntityListener(this);
|
||||
pm.registerEvent(Type.ENTITY_DAMAGE, entityListener, Priority.Lowest, this);
|
||||
pm.registerEvent(Type.ENTITY_COMBUST, entityListener, Priority.Lowest, this);
|
||||
pm.registerEvent(Type.ENTITY_DEATH, entityListener, Priority.Lowest, this);
|
||||
pm.registerEvent(Type.ENTITY_REGAIN_HEALTH, entityListener, Priority.Lowest, this);
|
||||
pm.registerEvent(Type.FOOD_LEVEL_CHANGE, entityListener, Priority.Lowest, this);
|
||||
pm.registerEvents(entityListener, this);
|
||||
|
||||
final EssentialsWorldListener worldListener = new EssentialsWorldListener(this);
|
||||
pm.registerEvents(worldListener, this);
|
||||
|
||||
//TODO: Check if this should be here, and not above before reload()
|
||||
jails = new Jails(this);
|
||||
confList.add(jails);
|
||||
|
||||
pm.registerEvent(Type.ENTITY_EXPLODE, tntListener, Priority.High, this);
|
||||
pm.registerEvents(tntListener, this);
|
||||
|
||||
final EssentialsTimer timer = new EssentialsTimer(this);
|
||||
getScheduler().scheduleSyncRepeatingTask(this, timer, 1, 100);
|
||||
Economy.setEss(this);
|
||||
execTimer.mark("RegListeners");
|
||||
LOGGER.info(_("loadinfo", this.getDescription().getName(), this.getDescription().getVersion(), Util.joinList(this.getDescription().getAuthors())));
|
||||
final String timeroutput = execTimer.end();
|
||||
if (getSettings().isDebug())
|
||||
{
|
||||
@@ -300,7 +282,29 @@ public class Essentials extends JavaPlugin implements IEssentials
|
||||
if (pc != null)
|
||||
{
|
||||
alternativeCommandsHandler.executed(commandLabel, pc.getLabel());
|
||||
return pc.execute(sender, commandLabel, args);
|
||||
try
|
||||
{
|
||||
return pc.execute(sender, commandLabel, args);
|
||||
}
|
||||
catch (final Exception ex)
|
||||
{
|
||||
final ArrayList<StackTraceElement> elements = new ArrayList<StackTraceElement>(Arrays.asList(ex.getStackTrace()));
|
||||
elements.remove(0);
|
||||
final ArrayList<StackTraceElement> toRemove = new ArrayList<StackTraceElement>();
|
||||
for (final StackTraceElement e : elements)
|
||||
{
|
||||
if (e.getClassName().equals("com.earth2me.essentials.Essentials"))
|
||||
{
|
||||
toRemove.add(e);
|
||||
}
|
||||
}
|
||||
elements.removeAll(toRemove);
|
||||
final StackTraceElement[] trace = elements.toArray(new StackTraceElement[elements.size()]);
|
||||
ex.setStackTrace(trace);
|
||||
ex.printStackTrace();
|
||||
sender.sendMessage(ChatColor.RED + "An internal error occurred while attempting to perform this command");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -440,7 +444,12 @@ public class Essentials extends JavaPlugin implements IEssentials
|
||||
}
|
||||
if (base instanceof String)
|
||||
{
|
||||
return userMap.getUser((String)base);
|
||||
final User user = userMap.getUser((String)base);
|
||||
if (user != null && user.getBase() instanceof OfflinePlayer)
|
||||
{
|
||||
((OfflinePlayer)user.getBase()).setName((String)base);
|
||||
}
|
||||
return user;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -472,7 +481,12 @@ public class Essentials extends JavaPlugin implements IEssentials
|
||||
@Override
|
||||
public User getOfflineUser(final String name)
|
||||
{
|
||||
return userMap.getUser(name);
|
||||
final User user = userMap.getUser(name);
|
||||
if (user != null && user.getBase() instanceof OfflinePlayer)
|
||||
{
|
||||
((OfflinePlayer)user.getBase()).setName(name);
|
||||
}
|
||||
return user;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -585,4 +599,46 @@ public class Essentials extends JavaPlugin implements IEssentials
|
||||
{
|
||||
return i18n;
|
||||
}
|
||||
|
||||
private static class EssentialsWorldListener implements Listener, Runnable {
|
||||
private transient final IEssentials ess;
|
||||
|
||||
public EssentialsWorldListener(final IEssentials ess)
|
||||
{
|
||||
this.ess = ess;
|
||||
}
|
||||
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onWorldLoad(final WorldLoadEvent event)
|
||||
{
|
||||
ess.getJails().onReload();
|
||||
ess.getWarps().reloadConfig();
|
||||
for (IConf iConf : ((Essentials)ess).confList)
|
||||
{
|
||||
if (iConf instanceof IEssentialsModule) {
|
||||
iConf.reloadConfig();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onWorldUnload(final WorldUnloadEvent event)
|
||||
{
|
||||
ess.getJails().onReload();
|
||||
ess.getWarps().reloadConfig();
|
||||
for (IConf iConf : ((Essentials)ess).confList)
|
||||
{
|
||||
if (iConf instanceof IEssentialsModule) {
|
||||
iConf.reloadConfig();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
ess.reload();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,25 +1,24 @@
|
||||
package com.earth2me.essentials;
|
||||
|
||||
import java.util.logging.Logger;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.event.block.BlockListener;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.BlockPlaceEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
|
||||
public class EssentialsBlockListener extends BlockListener
|
||||
public class EssentialsBlockListener implements Listener
|
||||
{
|
||||
private final IEssentials ess;
|
||||
private static final Logger logger = Logger.getLogger("Minecraft");
|
||||
private final transient IEssentials ess;
|
||||
|
||||
public EssentialsBlockListener(IEssentials ess)
|
||||
public EssentialsBlockListener(final IEssentials ess)
|
||||
{
|
||||
this.ess = ess;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockPlace(BlockPlaceEvent event)
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
public void onBlockPlace(final BlockPlaceEvent event)
|
||||
{
|
||||
if (event.isCancelled())
|
||||
{
|
||||
|
||||
@@ -3,7 +3,6 @@ package com.earth2me.essentials;
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import java.io.*;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.logging.Level;
|
||||
@@ -12,12 +11,14 @@ import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.configuration.InvalidConfigurationException;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.util.config.Configuration;
|
||||
|
||||
|
||||
public class EssentialsConf extends Configuration
|
||||
public class EssentialsConf extends YamlConfiguration
|
||||
{
|
||||
private static final Logger LOGGER = Logger.getLogger("Minecraft");
|
||||
private transient File configFile;
|
||||
@@ -26,15 +27,10 @@ public class EssentialsConf extends Configuration
|
||||
|
||||
public EssentialsConf(final File configFile)
|
||||
{
|
||||
super(configFile);
|
||||
super();
|
||||
this.configFile = configFile;
|
||||
if (this.root == null)
|
||||
{
|
||||
this.root = new HashMap<String, Object>();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void load()
|
||||
{
|
||||
configFile = configFile.getAbsoluteFile();
|
||||
@@ -105,19 +101,24 @@ public class EssentialsConf extends Configuration
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
super.load();
|
||||
super.load(configFile);
|
||||
}
|
||||
catch (RuntimeException e)
|
||||
catch (FileNotFoundException ex)
|
||||
{
|
||||
LOGGER.log(Level.SEVERE, "File broken: " + configFile.toString());
|
||||
throw e;
|
||||
LOGGER.log(Level.SEVERE, null, ex);
|
||||
}
|
||||
|
||||
if (this.root == null)
|
||||
catch (IOException ex)
|
||||
{
|
||||
this.root = new HashMap<String, Object>();
|
||||
LOGGER.log(Level.SEVERE, null, ex);
|
||||
}
|
||||
catch (InvalidConfigurationException ex)
|
||||
{
|
||||
File broken = new File(configFile.getAbsolutePath() + ".broken." + System.currentTimeMillis());
|
||||
configFile.renameTo(broken);
|
||||
LOGGER.log(Level.SEVERE, "The file " + configFile.toString() + " is broken, it has been renamed to " + broken.toString(), ex.getCause());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -192,7 +193,7 @@ public class EssentialsConf extends Configuration
|
||||
|
||||
public boolean hasProperty(final String path)
|
||||
{
|
||||
return getProperty(path) != null;
|
||||
return isSet(path);
|
||||
}
|
||||
|
||||
public Location getLocation(final String path, final Server server) throws Exception
|
||||
@@ -217,24 +218,25 @@ public class EssentialsConf extends Configuration
|
||||
|
||||
public void setProperty(final String path, final Location loc)
|
||||
{
|
||||
setProperty((path == null ? "" : path + ".") + "world", loc.getWorld().getName());
|
||||
setProperty((path == null ? "" : path + ".") + "x", loc.getX());
|
||||
setProperty((path == null ? "" : path + ".") + "y", loc.getY());
|
||||
setProperty((path == null ? "" : path + ".") + "z", loc.getZ());
|
||||
setProperty((path == null ? "" : path + ".") + "yaw", loc.getYaw());
|
||||
setProperty((path == null ? "" : path + ".") + "pitch", loc.getPitch());
|
||||
set((path == null ? "" : path + ".") + "world", loc.getWorld().getName());
|
||||
set((path == null ? "" : path + ".") + "x", loc.getX());
|
||||
set((path == null ? "" : path + ".") + "y", loc.getY());
|
||||
set((path == null ? "" : path + ".") + "z", loc.getZ());
|
||||
set((path == null ? "" : path + ".") + "yaw", loc.getYaw());
|
||||
set((path == null ? "" : path + ".") + "pitch", loc.getPitch());
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getItemStack(final String path)
|
||||
{
|
||||
final ItemStack stack = new ItemStack(
|
||||
Material.valueOf(getString(path + ".type", "AIR")),
|
||||
getInt(path + ".amount", 1),
|
||||
(short)getInt(path + ".damage", 0));
|
||||
final List<String> enchants = getKeys(path + ".enchant");
|
||||
final ConfigurationSection enchants = getConfigurationSection(path + ".enchant");
|
||||
if (enchants != null)
|
||||
{
|
||||
for (String enchant : enchants)
|
||||
for (String enchant : enchants.getKeys(false))
|
||||
{
|
||||
final Enchantment enchantment = Enchantment.getByName(enchant.toUpperCase(Locale.ENGLISH));
|
||||
if (enchantment == null)
|
||||
@@ -270,14 +272,14 @@ public class EssentialsConf extends Configuration
|
||||
}
|
||||
// getData().getData() is broken
|
||||
//map.put("data", stack.getDurability());
|
||||
setProperty(path, map);
|
||||
set(path, map);
|
||||
}
|
||||
|
||||
public long getLong(final String path, final long def)
|
||||
{
|
||||
try
|
||||
{
|
||||
final Number num = (Number)getProperty(path);
|
||||
final Number num = (Number)get(path);
|
||||
return num == null ? def : num.longValue();
|
||||
}
|
||||
catch (ClassCastException ex)
|
||||
@@ -291,7 +293,7 @@ public class EssentialsConf extends Configuration
|
||||
{
|
||||
try
|
||||
{
|
||||
Number num = (Number)getProperty(path);
|
||||
Number num = (Number)get(path);
|
||||
return num == null ? def : num.doubleValue();
|
||||
}
|
||||
catch (ClassCastException ex)
|
||||
@@ -299,4 +301,27 @@ public class EssentialsConf extends Configuration
|
||||
return def;
|
||||
}
|
||||
}
|
||||
|
||||
public void save() {
|
||||
try
|
||||
{
|
||||
save(configFile);
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
LOGGER.log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
|
||||
public Object getProperty(String path) {
|
||||
return get(path);
|
||||
}
|
||||
|
||||
public void setProperty(String path, Object object) {
|
||||
set(path, object);
|
||||
}
|
||||
|
||||
public void removeProperty(String path) {
|
||||
set(path, null);
|
||||
}
|
||||
}
|
||||
@@ -2,19 +2,20 @@ package com.earth2me.essentials;
|
||||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import java.util.List;
|
||||
import java.util.logging.Logger;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Animals;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason;
|
||||
import org.bukkit.event.entity.*;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
|
||||
public class EssentialsEntityListener extends EntityListener
|
||||
public class EssentialsEntityListener implements Listener
|
||||
{
|
||||
private static final Logger LOGGER = Logger.getLogger("Minecraft");
|
||||
private final IEssentials ess;
|
||||
|
||||
public EssentialsEntityListener(IEssentials ess)
|
||||
@@ -22,7 +23,7 @@ public class EssentialsEntityListener extends EntityListener
|
||||
this.ess = ess;
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
public void onEntityDamage(EntityDamageEvent event)
|
||||
{
|
||||
if (event instanceof EntityDamageByEntityEvent)
|
||||
@@ -55,7 +56,8 @@ public class EssentialsEntityListener extends EntityListener
|
||||
{
|
||||
User player = ess.getUser(eAttack);
|
||||
ItemStack hand = player.getItemInHand();
|
||||
if (hand != null && hand.getType() == Material.MILK_BUCKET) {
|
||||
if (hand != null && hand.getType() == Material.MILK_BUCKET)
|
||||
{
|
||||
((Animals)eDefend).setAge(-24000);
|
||||
hand.setType(Material.BUCKET);
|
||||
player.setItemInHand(hand);
|
||||
@@ -73,7 +75,7 @@ public class EssentialsEntityListener extends EntityListener
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
public void onEntityCombust(EntityCombustEvent event)
|
||||
{
|
||||
if (event.getEntity() instanceof Player && ess.getUser(event.getEntity()).isGodModeEnabled())
|
||||
@@ -82,7 +84,7 @@ public class EssentialsEntityListener extends EntityListener
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
public void onEntityDeath(final EntityDeathEvent event)
|
||||
{
|
||||
if (event instanceof PlayerDeathEvent)
|
||||
@@ -101,7 +103,7 @@ public class EssentialsEntityListener extends EntityListener
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
public void onFoodLevelChange(FoodLevelChangeEvent event)
|
||||
{
|
||||
if (event.getEntity() instanceof Player && ess.getUser(event.getEntity()).isGodModeEnabled())
|
||||
@@ -110,7 +112,7 @@ public class EssentialsEntityListener extends EntityListener
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
public void onEntityRegainHealth(EntityRegainHealthEvent event)
|
||||
{
|
||||
if (event.getRegainReason() == RegainReason.SATIATED && event.getEntity() instanceof Player
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.earth2me.essentials;
|
||||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.craftbukkit.SetBed;
|
||||
import com.earth2me.essentials.textreader.IText;
|
||||
import com.earth2me.essentials.textreader.KeywordReplacer;
|
||||
import com.earth2me.essentials.textreader.TextInput;
|
||||
@@ -17,15 +16,17 @@ import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.entity.Player;
|
||||
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.PlayerLoginEvent.Result;
|
||||
import org.bukkit.event.player.*;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
|
||||
public class EssentialsPlayerListener extends PlayerListener
|
||||
public class EssentialsPlayerListener implements Listener
|
||||
{
|
||||
private static final Logger LOGGER = Logger.getLogger("Minecraft");
|
||||
private final transient Server server;
|
||||
@@ -37,7 +38,7 @@ public class EssentialsPlayerListener extends PlayerListener
|
||||
this.server = parent.getServer();
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.NORMAL)
|
||||
public void onPlayerRespawn(final PlayerRespawnEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
@@ -48,7 +49,7 @@ public class EssentialsPlayerListener extends PlayerListener
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
public void onPlayerChat(final PlayerChatEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
@@ -74,7 +75,7 @@ public class EssentialsPlayerListener extends PlayerListener
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.HIGH)
|
||||
public void onPlayerMove(final PlayerMoveEvent event)
|
||||
{
|
||||
if (event.isCancelled())
|
||||
@@ -108,7 +109,7 @@ public class EssentialsPlayerListener extends PlayerListener
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onPlayerQuit(final PlayerQuitEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
@@ -125,7 +126,7 @@ public class EssentialsPlayerListener extends PlayerListener
|
||||
user.dispose();
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onPlayerJoin(final PlayerJoinEvent event)
|
||||
{
|
||||
ess.getBackup().onPlayerJoin();
|
||||
@@ -178,12 +179,11 @@ public class EssentialsPlayerListener extends PlayerListener
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.HIGH)
|
||||
public void onPlayerLogin(final PlayerLoginEvent event)
|
||||
{
|
||||
if (event.getResult() != Result.ALLOWED && event.getResult() != Result.KICK_FULL && event.getResult() != Result.KICK_BANNED)
|
||||
{
|
||||
LOGGER.log(Level.INFO, "Disconnecting user " + event.getPlayer().toString() + " due to " + event.getResult().toString());
|
||||
return;
|
||||
}
|
||||
User user = ess.getUser(event.getPlayer());
|
||||
@@ -225,8 +225,8 @@ public class EssentialsPlayerListener extends PlayerListener
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerTeleport(PlayerTeleportEvent event)
|
||||
@EventHandler(priority = EventPriority.HIGH)
|
||||
public void onPlayerTeleport(final PlayerTeleportEvent event)
|
||||
{
|
||||
if (event.isCancelled())
|
||||
{
|
||||
@@ -247,19 +247,19 @@ public class EssentialsPlayerListener extends PlayerListener
|
||||
updateCompass(user);
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.HIGH)
|
||||
public void onPlayerEggThrow(final PlayerEggThrowEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
final ItemStack is = new ItemStack(Material.EGG, 1);
|
||||
if (user.hasUnlimited(is))
|
||||
final ItemStack stack = new ItemStack(Material.EGG, 1);
|
||||
if (user.hasUnlimited(stack))
|
||||
{
|
||||
user.getInventory().addItem(is);
|
||||
user.getInventory().addItem(stack);
|
||||
user.updateInventory();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.HIGH)
|
||||
public void onPlayerBucketEmpty(final PlayerBucketEmptyEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
@@ -277,52 +277,14 @@ public class EssentialsPlayerListener extends PlayerListener
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.NORMAL)
|
||||
public void onPlayerAnimation(final PlayerAnimationEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
user.updateActivity(true);
|
||||
usePowertools(event);
|
||||
}
|
||||
|
||||
private void usePowertools(final PlayerAnimationEvent event)
|
||||
{
|
||||
if (event.getAnimationType() != PlayerAnimationType.ARM_SWING)
|
||||
{
|
||||
return;
|
||||
}
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
final ItemStack is = user.getItemInHand();
|
||||
if (is == null || is.getType() == Material.AIR || !user.arePowerToolsEnabled())
|
||||
{
|
||||
return;
|
||||
}
|
||||
final List<String> commandList = user.getPowertool(is);
|
||||
if (commandList == null || commandList.isEmpty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// We need to loop through each command and execute
|
||||
for (String command : commandList)
|
||||
{
|
||||
if (command.matches(".*\\{player\\}.*"))
|
||||
{
|
||||
//user.sendMessage("Click a player to use this command");
|
||||
continue;
|
||||
}
|
||||
else if (command.startsWith("c:"))
|
||||
{
|
||||
user.chat(command.substring(2));
|
||||
}
|
||||
else
|
||||
{
|
||||
user.getServer().dispatchCommand(event.getPlayer(), command);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onPlayerCommandPreprocess(final PlayerCommandPreprocessEvent event)
|
||||
{
|
||||
if (event.isCancelled())
|
||||
@@ -349,7 +311,7 @@ public class EssentialsPlayerListener extends PlayerListener
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onPlayerChangedWorld(final PlayerChangedWorldEvent event)
|
||||
{
|
||||
if (ess.getSettings().getNoGodWorlds().contains(event.getPlayer().getLocation().getWorld().getName()))
|
||||
@@ -362,25 +324,82 @@ public class EssentialsPlayerListener extends PlayerListener
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onPlayerInteract(final PlayerInteractEvent event)
|
||||
{
|
||||
if (event.isCancelled())
|
||||
switch (event.getAction())
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (event.getAction() != Action.RIGHT_CLICK_BLOCK)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (ess.getSettings().getUpdateBedAtDaytime() && event.getClickedBlock().getType() == Material.BED_BLOCK)
|
||||
{
|
||||
SetBed.setBed(event.getPlayer(), event.getClickedBlock());
|
||||
case RIGHT_CLICK_BLOCK:
|
||||
if (event.isCancelled())
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (ess.getSettings().getUpdateBedAtDaytime() && event.getClickedBlock().getType() == Material.BED_BLOCK)
|
||||
{
|
||||
event.getPlayer().setBedSpawnLocation(event.getClickedBlock().getLocation());
|
||||
}
|
||||
break;
|
||||
case LEFT_CLICK_AIR:
|
||||
case LEFT_CLICK_BLOCK:
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
if (user.hasPowerTools() && user.arePowerToolsEnabled())
|
||||
{
|
||||
if (usePowertools(user))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
private boolean usePowertools(final User user)
|
||||
{
|
||||
final ItemStack is = user.getItemInHand();
|
||||
int id;
|
||||
if (is == null || (id = is.getTypeId()) == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
final List<String> commandList = user.getPowertool(id);
|
||||
if (commandList == null || commandList.isEmpty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
boolean used = false;
|
||||
// We need to loop through each command and execute
|
||||
for (final String command : commandList)
|
||||
{
|
||||
if (command.matches(".*\\{player\\}.*"))
|
||||
{
|
||||
//user.sendMessage("Click a player to use this command");
|
||||
continue;
|
||||
}
|
||||
else if (command.startsWith("c:"))
|
||||
{
|
||||
used = true;
|
||||
user.chat(command.substring(2));
|
||||
}
|
||||
else
|
||||
{
|
||||
used = true;
|
||||
ess.scheduleSyncDelayedTask(
|
||||
new Runnable()
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
user.getServer().dispatchCommand(user.getBase(), command);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
return used;
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onPlayerPickupItem(PlayerPickupItemEvent event)
|
||||
{
|
||||
if (event.isCancelled() || !ess.getSettings().getDisableItemPickupWhileAfk())
|
||||
|
||||
@@ -1,34 +1,34 @@
|
||||
package com.earth2me.essentials;
|
||||
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.server.PluginDisableEvent;
|
||||
import org.bukkit.event.server.PluginEnableEvent;
|
||||
import org.bukkit.event.server.ServerListener;
|
||||
|
||||
|
||||
public class EssentialsPluginListener extends ServerListener implements IConf
|
||||
public class EssentialsPluginListener implements Listener, IConf
|
||||
{
|
||||
private final transient IEssentials ess;
|
||||
private static final Logger LOGGER = Logger.getLogger("Minecraft");
|
||||
|
||||
|
||||
public EssentialsPluginListener(final IEssentials ess)
|
||||
{
|
||||
this.ess = ess;
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onPluginEnable(final PluginEnableEvent event)
|
||||
{
|
||||
ess.getPermissionsHandler().checkPermissions();
|
||||
ess.getAlternativeCommandsHandler().addPlugin(event.getPlugin());
|
||||
if (!ess.getPaymentMethod().hasMethod() && ess.getPaymentMethod().setMethod(ess.getServer().getPluginManager()))
|
||||
{
|
||||
LOGGER.log(Level.INFO, "[Essentials] Payment method found (" + ess.getPaymentMethod().getMethod().getName() + " version: " + ess.getPaymentMethod().getMethod().getVersion() + ")");
|
||||
ess.getLogger().log(Level.INFO, "Payment method found (" + ess.getPaymentMethod().getMethod().getName() + " version: " + ess.getPaymentMethod().getMethod().getVersion() + ")");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.MONITOR)
|
||||
public void onPluginDisable(final PluginDisableEvent event)
|
||||
{
|
||||
ess.getPermissionsHandler().checkPermissions();
|
||||
@@ -37,7 +37,7 @@ public class EssentialsPluginListener extends ServerListener implements IConf
|
||||
if (ess.getPaymentMethod() != null && ess.getPaymentMethod().hasMethod() && ess.getPaymentMethod().checkDisabled(event.getPlugin()))
|
||||
{
|
||||
ess.getPaymentMethod().reset();
|
||||
LOGGER.log(Level.INFO, "[Essentials] Payment method was disabled. No longer accepting payments.");
|
||||
ess.getLogger().log(Level.INFO, "Payment method was disabled. No longer accepting payments.");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.earth2me.essentials;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Level;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
||||
@@ -22,10 +23,17 @@ public class EssentialsTimer implements Runnable
|
||||
final long currentTime = System.currentTimeMillis();
|
||||
for (Player player : ess.getServer().getOnlinePlayers())
|
||||
{
|
||||
final User user = ess.getUser(player);
|
||||
onlineUsers.add(user);
|
||||
user.setLastOnlineActivity(currentTime);
|
||||
user.checkActivity();
|
||||
try
|
||||
{
|
||||
final User user = ess.getUser(player);
|
||||
onlineUsers.add(user);
|
||||
user.setLastOnlineActivity(currentTime);
|
||||
user.checkActivity();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
ess.getLogger().log(Level.WARNING, "EssentialsTimer Error:", e);
|
||||
}
|
||||
}
|
||||
|
||||
final Iterator<User> iterator = onlineUsers.iterator();
|
||||
|
||||
@@ -95,7 +95,7 @@ public class EssentialsUpgrade
|
||||
}
|
||||
final EssentialsConf conf = new EssentialsConf(configFile);
|
||||
conf.load();
|
||||
List<String> lines = conf.getStringList(name, null);
|
||||
List<String> lines = conf.getStringList(name);
|
||||
if (lines != null && !lines.isEmpty())
|
||||
{
|
||||
if (!file.createNewFile())
|
||||
@@ -271,18 +271,18 @@ public class EssentialsUpgrade
|
||||
if (config.hasProperty("powertools"))
|
||||
{
|
||||
@SuppressWarnings("unchecked")
|
||||
final Map<Integer, Object> powertools = (Map<Integer, Object>)config.getProperty("powertools");
|
||||
final Map<String, Object> powertools = config.getConfigurationSection("powertools").getValues(false);
|
||||
if (powertools == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
for (Map.Entry<Integer, Object> entry : powertools.entrySet())
|
||||
for (Map.Entry<String, Object> entry : powertools.entrySet())
|
||||
{
|
||||
if (entry.getValue() instanceof String)
|
||||
{
|
||||
List<String> temp = new ArrayList<String>();
|
||||
temp.add((String)entry.getValue());
|
||||
((Map<Integer, Object>)powertools).put(entry.getKey(), temp);
|
||||
((Map<String, Object>)powertools).put(entry.getKey(), temp);
|
||||
}
|
||||
}
|
||||
config.save();
|
||||
@@ -332,7 +332,7 @@ public class EssentialsUpgrade
|
||||
config.setProperty("homes.home", defloc);
|
||||
}
|
||||
|
||||
List<String> worlds = config.getKeys("home.worlds");
|
||||
Set<String> worlds = config.getConfigurationSection("home.worlds").getKeys(false);
|
||||
Location loc;
|
||||
String worldName;
|
||||
|
||||
@@ -381,7 +381,7 @@ public class EssentialsUpgrade
|
||||
}
|
||||
final EssentialsConf usersConfig = new EssentialsConf(usersFile);
|
||||
usersConfig.load();
|
||||
for (String username : usersConfig.getKeys(null))
|
||||
for (String username : usersConfig.getKeys(false))
|
||||
{
|
||||
final User user = new User(new OfflinePlayer(username, ess), ess);
|
||||
final String nickname = usersConfig.getString(username + ".nickname");
|
||||
@@ -389,7 +389,7 @@ public class EssentialsUpgrade
|
||||
{
|
||||
user.setNickname(nickname);
|
||||
}
|
||||
final List<String> mails = usersConfig.getStringList(username + ".mail", null);
|
||||
final List<String> mails = usersConfig.getStringList(username + ".mail");
|
||||
if (mails != null && !mails.isEmpty())
|
||||
{
|
||||
user.setMails(mails);
|
||||
@@ -701,7 +701,7 @@ public class EssentialsUpgrade
|
||||
if (!config.hasProperty("spawns"))
|
||||
{
|
||||
final Spawns spawns = new Spawns();
|
||||
List<String> keys = config.getKeys();
|
||||
Set<String> keys = config.getKeys(false);
|
||||
for (String group : keys)
|
||||
{
|
||||
Location loc = getFakeLocation(config, group);
|
||||
@@ -748,7 +748,7 @@ public class EssentialsUpgrade
|
||||
if (!config.hasProperty("jails"))
|
||||
{
|
||||
final com.earth2me.essentials.settings.Jails jails = new com.earth2me.essentials.settings.Jails();
|
||||
List<String> keys = config.getKeys();
|
||||
Set<String> keys = config.getKeys(false);
|
||||
for (String jailName : keys)
|
||||
{
|
||||
Location loc = getFakeLocation(config, jailName);
|
||||
|
||||
@@ -1,20 +1,22 @@
|
||||
package com.earth2me.essentials;
|
||||
|
||||
import com.earth2me.essentials.commands.IEssentialsCommand;
|
||||
import com.earth2me.essentials.signs.EssentialsSign;
|
||||
import com.earth2me.essentials.textreader.IText;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.event.Event.Priority;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.event.EventPriority;
|
||||
|
||||
|
||||
public interface ISettings extends IConf
|
||||
{
|
||||
boolean areSignsDisabled();
|
||||
|
||||
String format(String format, IUser user);
|
||||
|
||||
String getAnnounceNewPlayerFormat(IUser user);
|
||||
IText getAnnounceNewPlayerFormat();
|
||||
|
||||
boolean getAnnounceNewPlayers();
|
||||
|
||||
@@ -22,7 +24,7 @@ public interface ISettings extends IConf
|
||||
|
||||
long getBackupInterval();
|
||||
|
||||
String getChatFormat(String group);
|
||||
MessageFormat getChatFormat(String group);
|
||||
|
||||
int getChatRadius();
|
||||
|
||||
@@ -33,14 +35,14 @@ public interface ISettings extends IConf
|
||||
String getCurrencySymbol();
|
||||
|
||||
int getOversizedStackSize();
|
||||
|
||||
|
||||
int getDefaultStackSize();
|
||||
|
||||
double getHealCooldown();
|
||||
|
||||
Object getKit(String name);
|
||||
Map<String, Object> getKit(String name);
|
||||
|
||||
Map<String, Object> getKits();
|
||||
ConfigurationSection getKits();
|
||||
|
||||
String getLocale();
|
||||
|
||||
@@ -64,7 +66,7 @@ public interface ISettings extends IConf
|
||||
|
||||
boolean getRespawnAtHome();
|
||||
|
||||
List getMultipleHomes();
|
||||
Set getMultipleHomes();
|
||||
|
||||
int getHomeLimit(String set);
|
||||
|
||||
@@ -100,6 +102,8 @@ public interface ISettings extends IConf
|
||||
|
||||
List<Integer> itemSpawnBlacklist();
|
||||
|
||||
List<EssentialsSign> enabledSigns();
|
||||
|
||||
boolean permissionBasedItemSpawn();
|
||||
|
||||
boolean showNonEssCommandsInHelp();
|
||||
@@ -111,8 +115,12 @@ public interface ISettings extends IConf
|
||||
boolean warnOnSmite();
|
||||
|
||||
double getMaxMoney();
|
||||
|
||||
double getMinMoney();
|
||||
|
||||
boolean isEcoLogEnabled();
|
||||
|
||||
boolean isEcoLogUpdateEnabled();
|
||||
|
||||
boolean removeGodOnDisconnect();
|
||||
|
||||
@@ -139,18 +147,18 @@ public interface ISettings extends IConf
|
||||
public void setDebug(boolean debug);
|
||||
|
||||
Set<String> getNoGodWorlds();
|
||||
|
||||
|
||||
boolean getUpdateBedAtDaytime();
|
||||
|
||||
|
||||
boolean getRepairEnchanted();
|
||||
|
||||
|
||||
boolean getIsWorldTeleportPermissions();
|
||||
|
||||
|
||||
boolean registerBackInListener();
|
||||
|
||||
public boolean getDisableItemPickupWhileAfk();
|
||||
boolean getDisableItemPickupWhileAfk();
|
||||
|
||||
EventPriority getRespawnPriority();
|
||||
|
||||
public Priority getRespawnPriority();
|
||||
|
||||
long getTpaAcceptCancellation();
|
||||
}
|
||||
@@ -32,6 +32,8 @@ public interface IUser extends Player
|
||||
void takeMoney(double value);
|
||||
|
||||
void giveMoney(double value);
|
||||
|
||||
boolean canAfford(double value);
|
||||
|
||||
String getGroup();
|
||||
|
||||
|
||||
@@ -1,18 +1,24 @@
|
||||
package com.earth2me.essentials;
|
||||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.api.IJails;
|
||||
import com.earth2me.essentials.storage.AsyncStorageObjectHolder;
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import java.io.File;
|
||||
import java.util.*;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.event.Event.Priority;
|
||||
import org.bukkit.event.Event.Type;
|
||||
import org.bukkit.event.block.*;
|
||||
import org.bukkit.event.player.*;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.BlockBreakEvent;
|
||||
import org.bukkit.event.block.BlockDamageEvent;
|
||||
import org.bukkit.event.block.BlockPlaceEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerRespawnEvent;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
|
||||
@@ -33,13 +39,8 @@ public class Jails extends AsyncStorageObjectHolder<com.earth2me.essentials.sett
|
||||
final PluginManager pluginManager = ess.getServer().getPluginManager();
|
||||
final JailBlockListener blockListener = new JailBlockListener();
|
||||
final JailPlayerListener playerListener = new JailPlayerListener();
|
||||
pluginManager.registerEvent(Type.BLOCK_BREAK, blockListener, Priority.Low, ess);
|
||||
pluginManager.registerEvent(Type.BLOCK_DAMAGE, blockListener, Priority.Low, ess);
|
||||
pluginManager.registerEvent(Type.BLOCK_PLACE, blockListener, Priority.Low, ess);
|
||||
pluginManager.registerEvent(Type.PLAYER_INTERACT, playerListener, Priority.Low, ess);
|
||||
pluginManager.registerEvent(Type.PLAYER_RESPAWN, playerListener, Priority.High, ess);
|
||||
pluginManager.registerEvent(Type.PLAYER_TELEPORT, playerListener, Priority.High, ess);
|
||||
pluginManager.registerEvent(Type.PLAYER_JOIN, playerListener, Priority.High, ess);
|
||||
pluginManager.registerEvents(blockListener, ess);
|
||||
pluginManager.registerEvents(playerListener, ess);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -146,9 +147,9 @@ public class Jails extends AsyncStorageObjectHolder<com.earth2me.essentials.sett
|
||||
}
|
||||
|
||||
|
||||
private class JailBlockListener extends BlockListener
|
||||
private class JailBlockListener implements Listener
|
||||
{
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onBlockBreak(final BlockBreakEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
@@ -158,7 +159,7 @@ public class Jails extends AsyncStorageObjectHolder<com.earth2me.essentials.sett
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onBlockPlace(final BlockPlaceEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
@@ -168,7 +169,7 @@ public class Jails extends AsyncStorageObjectHolder<com.earth2me.essentials.sett
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onBlockDamage(final BlockDamageEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
@@ -180,9 +181,9 @@ public class Jails extends AsyncStorageObjectHolder<com.earth2me.essentials.sett
|
||||
}
|
||||
|
||||
|
||||
private class JailPlayerListener extends PlayerListener
|
||||
private class JailPlayerListener implements Listener
|
||||
{
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onPlayerInteract(final PlayerInteractEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
@@ -192,7 +193,7 @@ public class Jails extends AsyncStorageObjectHolder<com.earth2me.essentials.sett
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onPlayerRespawn(final PlayerRespawnEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
@@ -207,11 +208,18 @@ public class Jails extends AsyncStorageObjectHolder<com.earth2me.essentials.sett
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, _("returnPlayerToJailError"), ex);
|
||||
if (ess.getSettings().isDebug())
|
||||
{
|
||||
LOGGER.log(Level.INFO, _("returnPlayerToJailError", user.getName(), ex.getLocalizedMessage()), ex);
|
||||
}
|
||||
else
|
||||
{
|
||||
LOGGER.log(Level.INFO, _("returnPlayerToJailError", user.getName(), ex.getLocalizedMessage()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.HIGH)
|
||||
public void onPlayerTeleport(final PlayerTeleportEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
@@ -226,12 +234,19 @@ public class Jails extends AsyncStorageObjectHolder<com.earth2me.essentials.sett
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, _("returnPlayerToJailError"), ex);
|
||||
if (ess.getSettings().isDebug())
|
||||
{
|
||||
LOGGER.log(Level.INFO, _("returnPlayerToJailError", user.getName(), ex.getLocalizedMessage()), ex);
|
||||
}
|
||||
else
|
||||
{
|
||||
LOGGER.log(Level.INFO, _("returnPlayerToJailError", user.getName(), ex.getLocalizedMessage()));
|
||||
}
|
||||
}
|
||||
user.sendMessage(_("jailMessage"));
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onPlayerJoin(final PlayerJoinEvent event)
|
||||
{
|
||||
final User user = ess.getUser(event.getPlayer());
|
||||
@@ -246,7 +261,14 @@ public class Jails extends AsyncStorageObjectHolder<com.earth2me.essentials.sett
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LOGGER.log(Level.WARNING, _("returnPlayerToJailError"), ex);
|
||||
if (ess.getSettings().isDebug())
|
||||
{
|
||||
LOGGER.log(Level.INFO, _("returnPlayerToJailError", user.getName(), ex.getLocalizedMessage()), ex);
|
||||
}
|
||||
else
|
||||
{
|
||||
LOGGER.log(Level.INFO, _("returnPlayerToJailError", user.getName(), ex.getLocalizedMessage()));
|
||||
}
|
||||
}
|
||||
user.sendMessage(_("jailMessage"));
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.earth2me.essentials.commands.NoChargeException;
|
||||
import com.earth2me.essentials.craftbukkit.InventoryWorkaround;
|
||||
import java.util.*;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
|
||||
@@ -15,16 +16,16 @@ public class Kit
|
||||
{
|
||||
try
|
||||
{
|
||||
final Map<String, Object> kits = ess.getSettings().getKits();
|
||||
final ConfigurationSection kits = ess.getSettings().getKits();
|
||||
final StringBuilder list = new StringBuilder();
|
||||
for (String kiteItem : kits.keySet())
|
||||
for (String kiteItem : kits.getKeys(false))
|
||||
{
|
||||
if (user.isAuthorized("essentials.kit." + kiteItem.toLowerCase(Locale.ENGLISH)))
|
||||
{
|
||||
list.append(" ").append(kiteItem);
|
||||
}
|
||||
}
|
||||
return list.toString();
|
||||
return list.toString().trim();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
@@ -9,40 +9,40 @@ import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.entity.CreatureType;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
||||
public enum Mob
|
||||
{
|
||||
CHICKEN("Chicken", Enemies.FRIENDLY, CreatureType.CHICKEN),
|
||||
COW("Cow", Enemies.FRIENDLY, CreatureType.COW),
|
||||
CREEPER("Creeper", Enemies.ENEMY, CreatureType.CREEPER),
|
||||
GHAST("Ghast", Enemies.ENEMY, CreatureType.GHAST),
|
||||
GIANT("Giant", Enemies.ENEMY, CreatureType.GIANT),
|
||||
PIG("Pig", Enemies.FRIENDLY, CreatureType.PIG),
|
||||
PIGZOMB("PigZombie", Enemies.NEUTRAL, CreatureType.PIG_ZOMBIE),
|
||||
SHEEP("Sheep", Enemies.FRIENDLY, "", CreatureType.SHEEP),
|
||||
SKELETON("Skeleton", Enemies.ENEMY, CreatureType.SKELETON),
|
||||
SLIME("Slime", Enemies.ENEMY, CreatureType.SLIME),
|
||||
SPIDER("Spider", Enemies.ENEMY, CreatureType.SPIDER),
|
||||
SQUID("Squid", Enemies.FRIENDLY, CreatureType.SQUID),
|
||||
ZOMBIE("Zombie", Enemies.ENEMY, CreatureType.ZOMBIE),
|
||||
WOLF("Wolf", Enemies.NEUTRAL, CreatureType.WOLF),
|
||||
CAVESPIDER("CaveSpider", Enemies.ENEMY, CreatureType.CAVE_SPIDER),
|
||||
ENDERMAN("Enderman", Enemies.ENEMY, "", CreatureType.ENDERMAN),
|
||||
SILVERFISH("Silverfish", Enemies.ENEMY, "", CreatureType.SILVERFISH),
|
||||
ENDERDRAGON("EnderDragon", Enemies.ENEMY, CreatureType.ENDER_DRAGON),
|
||||
VILLAGER("Villager", Enemies.FRIENDLY, CreatureType.VILLAGER),
|
||||
BLAZE("Blaze", Enemies.ENEMY, CreatureType.BLAZE),
|
||||
MUSHROOMCOW("MushroomCow", Enemies.FRIENDLY, CreatureType.MUSHROOM_COW),
|
||||
MAGMACUBE("MagmaCube", Enemies.ENEMY, CreatureType.MAGMA_CUBE),
|
||||
SNOWMAN("Snowman", Enemies.FRIENDLY, "", CreatureType.SNOWMAN);
|
||||
CHICKEN("Chicken", Enemies.FRIENDLY, EntityType.CHICKEN),
|
||||
COW("Cow", Enemies.FRIENDLY, EntityType.COW),
|
||||
CREEPER("Creeper", Enemies.ENEMY, EntityType.CREEPER),
|
||||
GHAST("Ghast", Enemies.ENEMY, EntityType.GHAST),
|
||||
GIANT("Giant", Enemies.ENEMY, EntityType.GIANT),
|
||||
PIG("Pig", Enemies.FRIENDLY, EntityType.PIG),
|
||||
PIGZOMB("PigZombie", Enemies.NEUTRAL, EntityType.PIG_ZOMBIE),
|
||||
SHEEP("Sheep", Enemies.FRIENDLY, "", EntityType.SHEEP),
|
||||
SKELETON("Skeleton", Enemies.ENEMY, EntityType.SKELETON),
|
||||
SLIME("Slime", Enemies.ENEMY, EntityType.SLIME),
|
||||
SPIDER("Spider", Enemies.ENEMY, EntityType.SPIDER),
|
||||
SQUID("Squid", Enemies.FRIENDLY, EntityType.SQUID),
|
||||
ZOMBIE("Zombie", Enemies.ENEMY, EntityType.ZOMBIE),
|
||||
WOLF("Wolf", Enemies.NEUTRAL, EntityType.WOLF),
|
||||
CAVESPIDER("CaveSpider", Enemies.ENEMY, EntityType.CAVE_SPIDER),
|
||||
ENDERMAN("Enderman", Enemies.ENEMY, "", EntityType.ENDERMAN),
|
||||
SILVERFISH("Silverfish", Enemies.ENEMY, "", EntityType.SILVERFISH),
|
||||
ENDERDRAGON("EnderDragon", Enemies.ENEMY, EntityType.ENDER_DRAGON),
|
||||
VILLAGER("Villager", Enemies.FRIENDLY, EntityType.VILLAGER),
|
||||
BLAZE("Blaze", Enemies.ENEMY, EntityType.BLAZE),
|
||||
MUSHROOMCOW("MushroomCow", Enemies.FRIENDLY, EntityType.MUSHROOM_COW),
|
||||
MAGMACUBE("MagmaCube", Enemies.ENEMY, EntityType.MAGMA_CUBE),
|
||||
SNOWMAN("Snowman", Enemies.FRIENDLY, "", EntityType.SNOWMAN);
|
||||
|
||||
public static final Logger logger = Logger.getLogger("Minecraft");
|
||||
|
||||
private Mob(String n, Enemies en, String s, CreatureType type)
|
||||
private Mob(String n, Enemies en, String s, EntityType type)
|
||||
{
|
||||
this.suffix = s;
|
||||
this.name = n;
|
||||
@@ -50,7 +50,7 @@ public enum Mob
|
||||
this.bukkitType = type;
|
||||
}
|
||||
|
||||
private Mob(String n, Enemies en, CreatureType type)
|
||||
private Mob(String n, Enemies en, EntityType type)
|
||||
{
|
||||
this.name = n;
|
||||
this.type = en;
|
||||
@@ -59,7 +59,7 @@ public enum Mob
|
||||
public String suffix = "s";
|
||||
final public String name;
|
||||
final public Enemies type;
|
||||
final private CreatureType bukkitType;
|
||||
final private EntityType bukkitType;
|
||||
private static final Map<String, Mob> hashMap = new HashMap<String, Mob>();
|
||||
|
||||
static
|
||||
@@ -99,7 +99,7 @@ public enum Mob
|
||||
final protected String type;
|
||||
}
|
||||
|
||||
public CreatureType getType()
|
||||
public EntityType getType()
|
||||
{
|
||||
return bukkitType;
|
||||
}
|
||||
|
||||
@@ -1,36 +1,39 @@
|
||||
package com.earth2me.essentials;
|
||||
|
||||
import com.earth2me.essentials.craftbukkit.OfflineBedLocation;
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.*;
|
||||
import lombok.Delegate;
|
||||
import org.bukkit.*;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.conversations.Conversation;
|
||||
import org.bukkit.entity.*;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.InventoryView;
|
||||
import org.bukkit.inventory.InventoryView.Property;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.PlayerInventory;
|
||||
import org.bukkit.map.MapView;
|
||||
import org.bukkit.metadata.MetadataValue;
|
||||
import org.bukkit.permissions.Permission;
|
||||
import org.bukkit.permissions.PermissionAttachment;
|
||||
import org.bukkit.permissions.PermissionAttachmentInfo;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
|
||||
public class OfflinePlayer implements Player
|
||||
{
|
||||
private final transient IEssentials ess;
|
||||
private Location location = new Location(null, 0, 0, 0, 0, 0);
|
||||
private World world;
|
||||
private UUID uniqueId = UUID.randomUUID();
|
||||
private transient Location location = new Location(null, 0, 0, 0, 0, 0);
|
||||
private transient World world;
|
||||
private final transient UUID uniqueId = UUID.randomUUID();
|
||||
@Delegate(types = org.bukkit.OfflinePlayer.class)
|
||||
private final org.bukkit.OfflinePlayer base;
|
||||
private transient org.bukkit.OfflinePlayer base;
|
||||
|
||||
public OfflinePlayer(final String name, final IEssentials ess)
|
||||
{
|
||||
@@ -173,11 +176,6 @@ public class OfflinePlayer implements Player
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isPlayer()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRemainingAir()
|
||||
{
|
||||
@@ -667,18 +665,6 @@ public class OfflinePlayer implements Player
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getExperience()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setExperience(int i)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLevel()
|
||||
{
|
||||
@@ -739,12 +725,6 @@ public class OfflinePlayer implements Player
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Location getBedSpawnLocation()
|
||||
{
|
||||
return OfflineBedLocation.getBedLocation(base.getName(), ess);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSprinting()
|
||||
{
|
||||
@@ -822,4 +802,229 @@ public class OfflinePlayer implements Player
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
void setName(final String name)
|
||||
{
|
||||
if (!this.base.getName().equalsIgnoreCase(name))
|
||||
{
|
||||
this.base = ess.getServer().getOfflinePlayer(name);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendPluginMessage(Plugin plugin, String string, byte[] bytes)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getListeningPluginChannels()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAllowFlight(boolean bln)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getAllowFlight()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBedSpawnLocation(Location lctn)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void playEffect(EntityEffect ee)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hidePlayer(Player player)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showPlayer(Player player)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canSee(Player player)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean addPotionEffect(PotionEffect pe)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean addPotionEffect(PotionEffect pe, boolean bln)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean addPotionEffects(Collection<PotionEffect> clctn)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPotionEffect(PotionEffectType pet)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removePotionEffect(PotionEffectType pet)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<PotionEffect> getActivePotionEffects()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends Projectile> T launchProjectile(Class<? extends T> arg0)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityType getType()
|
||||
{
|
||||
return EntityType.PLAYER;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> void playEffect(Location lctn, Effect effect, T t)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setWindowProperty(Property prprt, int i)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public InventoryView getOpenInventory()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public InventoryView openInventory(Inventory invntr)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public InventoryView openWorkbench(Location lctn, boolean bln)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public InventoryView openEnchanting(Location lctn, boolean bln)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void openInventory(InventoryView iv)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void closeInventory()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getItemOnCursor()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setItemOnCursor(ItemStack is)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setMetadata(String string, MetadataValue mv)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MetadataValue> getMetadata(String string)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasMetadata(String string)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeMetadata(String string, Plugin plugin)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean isConversing()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void acceptConversationInput(String string)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean beginConversation(Conversation c)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void abandonConversation(Conversation c)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendMessage(String[] strings)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
}
|
||||
@@ -2,12 +2,18 @@ package com.earth2me.essentials;
|
||||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.commands.IEssentialsCommand;
|
||||
import com.earth2me.essentials.signs.EssentialsSign;
|
||||
import com.earth2me.essentials.signs.Signs;
|
||||
import com.earth2me.essentials.textreader.IText;
|
||||
import com.earth2me.essentials.textreader.SimpleTextInput;
|
||||
import java.io.File;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.*;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.event.Event.Priority;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
|
||||
@@ -38,15 +44,15 @@ public class Settings implements ISettings
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getMultipleHomes()
|
||||
public Set<String> getMultipleHomes()
|
||||
{
|
||||
return config.getKeys("sethome-multiple");
|
||||
return config.getConfigurationSection("sethome-multiple").getKeys(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getHomeLimit(final User user)
|
||||
{
|
||||
final List<String> homeList = getMultipleHomes();
|
||||
final Set<String> homeList = getMultipleHomes();
|
||||
if (homeList == null)
|
||||
{
|
||||
//TODO: Replace this code to remove backwards compat, after settings are automatically updated
|
||||
@@ -109,7 +115,7 @@ public class Settings implements ISettings
|
||||
@Override
|
||||
public boolean isCommandDisabled(String label)
|
||||
{
|
||||
for (String c : config.getStringList("disabled-commands", new ArrayList<String>(0)))
|
||||
for (String c : config.getStringList("disabled-commands"))
|
||||
{
|
||||
if (!c.equalsIgnoreCase(label))
|
||||
{
|
||||
@@ -129,7 +135,7 @@ public class Settings implements ISettings
|
||||
@Override
|
||||
public boolean isCommandRestricted(String label)
|
||||
{
|
||||
for (String c : config.getStringList("restricted-commands", new ArrayList<String>(0)))
|
||||
for (String c : config.getStringList("restricted-commands"))
|
||||
{
|
||||
if (!c.equalsIgnoreCase(label))
|
||||
{
|
||||
@@ -143,7 +149,7 @@ public class Settings implements ISettings
|
||||
@Override
|
||||
public boolean isPlayerCommand(String label)
|
||||
{
|
||||
for (String c : config.getStringList("player-commands", new ArrayList<String>(0)))
|
||||
for (String c : config.getStringList("player-commands"))
|
||||
{
|
||||
if (!c.equalsIgnoreCase(label))
|
||||
{
|
||||
@@ -157,9 +163,7 @@ public class Settings implements ISettings
|
||||
@Override
|
||||
public boolean isCommandOverridden(String name)
|
||||
{
|
||||
List<String> defaultList = new ArrayList<String>(1);
|
||||
defaultList.add("god");
|
||||
for (String c : config.getStringList("overridden-commands", defaultList))
|
||||
for (String c : config.getStringList("overridden-commands"))
|
||||
{
|
||||
if (!c.equalsIgnoreCase(name))
|
||||
{
|
||||
@@ -206,23 +210,28 @@ public class Settings implements ISettings
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getKit(String name)
|
||||
public Map<String, Object> getKit(String name)
|
||||
{
|
||||
Map<String, Object> kits = (Map<String, Object>)config.getProperty("kits");
|
||||
for (Map.Entry<String, Object> entry : kits.entrySet())
|
||||
name = name.replace('.', '_').replace('/', '_');
|
||||
if (config.isConfigurationSection("kits"))
|
||||
{
|
||||
if (entry.getKey().equalsIgnoreCase(name.replace('.', '_').replace('/', '_')))
|
||||
final ConfigurationSection kits = getKits();
|
||||
if (kits.isConfigurationSection(name))
|
||||
{
|
||||
return entry.getValue();
|
||||
return kits.getConfigurationSection(name).getValues(true);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getKits()
|
||||
public ConfigurationSection getKits()
|
||||
{
|
||||
return (Map<String, Object>)config.getProperty("kits");
|
||||
if (config.isConfigurationSection("kits"))
|
||||
{
|
||||
return config.getConfigurationSection("kits");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -247,7 +256,7 @@ public class Settings implements ISettings
|
||||
{
|
||||
}
|
||||
|
||||
return ChatColor.getByCode(Integer.parseInt(colorName, 16));
|
||||
return ChatColor.getByChar(colorName);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -277,7 +286,7 @@ public class Settings implements ISettings
|
||||
@Override
|
||||
public boolean areSignsDisabled()
|
||||
{
|
||||
return config.getBoolean("signs-disabled", false);
|
||||
return enabledSigns.isEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -291,12 +300,27 @@ public class Settings implements ISettings
|
||||
{
|
||||
return config.getString("backup.command", null);
|
||||
}
|
||||
private Map<String, MessageFormat> chatFormats = new HashMap<String, MessageFormat>();
|
||||
|
||||
@Override
|
||||
public String getChatFormat(String group)
|
||||
public MessageFormat getChatFormat(String group)
|
||||
{
|
||||
return config.getString("chat.group-formats." + (group == null ? "Default" : group),
|
||||
config.getString("chat.format", "&7[{GROUP}]&f {DISPLAYNAME}&7:&f {MESSAGE}"));
|
||||
MessageFormat mFormat = chatFormats.get(group);
|
||||
if (mFormat == null)
|
||||
{
|
||||
String format = config.getString("chat.group-formats." + (group == null ? "Default" : group),
|
||||
config.getString("chat.format", "&7[{GROUP}]&f {DISPLAYNAME}&7:&f {MESSAGE}"));
|
||||
format = Util.replaceColor(format);
|
||||
format = format.replace("{DISPLAYNAME}", "%1$s");
|
||||
format = format.replace("{GROUP}", "{0}");
|
||||
format = format.replace("{MESSAGE}", "%2$s");
|
||||
format = format.replace("{WORLDNAME}", "{1}");
|
||||
format = format.replace("{SHORTWORLDNAME}", "{2}");
|
||||
format = format.replaceAll("\\{(\\D*)\\}", "\\[$1\\]");
|
||||
mFormat = new MessageFormat(format);
|
||||
chatFormats.put(group, mFormat);
|
||||
}
|
||||
return mFormat;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -306,15 +330,9 @@ public class Settings implements ISettings
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getAnnounceNewPlayerFormat(IUser user)
|
||||
public IText getAnnounceNewPlayerFormat()
|
||||
{
|
||||
return format(config.getString("newbies.announce-format", "&dWelcome {DISPLAYNAME} to the server!"), user);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String format(String format, IUser user)
|
||||
{
|
||||
return format.replace('&', '§').replace("§§", "&").replace("{PLAYER}", user.getDisplayName()).replace("{DISPLAYNAME}", user.getDisplayName()).replace("{GROUP}", user.getGroup()).replace("{USERNAME}", user.getName()).replace("{ADDRESS}", user.getAddress().toString());
|
||||
return new SimpleTextInput(Util.replaceColor(config.getString("newbies.announce-format", "&dWelcome {DISPLAYNAME} to the server!")));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -339,13 +357,27 @@ public class Settings implements ISettings
|
||||
public void reloadConfig()
|
||||
{
|
||||
config.load();
|
||||
noGodWorlds = new HashSet<String>(config.getStringList("no-god-in-worlds", Collections.<String>emptyList()));
|
||||
noGodWorlds = new HashSet<String>(config.getStringList("no-god-in-worlds"));
|
||||
enabledSigns = getEnabledSigns();
|
||||
itemSpawnBl = getItemSpawnBlacklist();
|
||||
chatFormats.clear();
|
||||
}
|
||||
private List<Integer> itemSpawnBl = new ArrayList<Integer>();
|
||||
|
||||
@Override
|
||||
public List<Integer> itemSpawnBlacklist()
|
||||
{
|
||||
return itemSpawnBl;
|
||||
}
|
||||
|
||||
private List<Integer> getItemSpawnBlacklist()
|
||||
{
|
||||
final List<Integer> epItemSpwn = new ArrayList<Integer>();
|
||||
if (ess.getItemDb() == null)
|
||||
{
|
||||
logger.log(Level.FINE, "Aborting ItemSpawnBL read, itemDB not yet loaded.");
|
||||
return epItemSpwn;
|
||||
}
|
||||
for (String itemName : config.getString("item-spawn-blacklist", "").split(","))
|
||||
{
|
||||
itemName = itemName.trim();
|
||||
@@ -353,11 +385,10 @@ public class Settings implements ISettings
|
||||
{
|
||||
continue;
|
||||
}
|
||||
ItemStack is;
|
||||
try
|
||||
{
|
||||
is = ess.getItemDb().get(itemName);
|
||||
epItemSpwn.add(is.getTypeId());
|
||||
final ItemStack iStack = ess.getItemDb().get(itemName);
|
||||
epItemSpwn.add(iStack.getTypeId());
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -366,6 +397,36 @@ public class Settings implements ISettings
|
||||
}
|
||||
return epItemSpwn;
|
||||
}
|
||||
private List<EssentialsSign> enabledSigns = new ArrayList<EssentialsSign>();
|
||||
|
||||
@Override
|
||||
public List<EssentialsSign> enabledSigns()
|
||||
{
|
||||
return enabledSigns;
|
||||
}
|
||||
|
||||
private List<EssentialsSign> getEnabledSigns()
|
||||
{
|
||||
List<EssentialsSign> newSigns = new ArrayList<EssentialsSign>();
|
||||
|
||||
for (String signName : config.getStringList("enabledSigns"))
|
||||
{
|
||||
signName = signName.trim().toUpperCase(Locale.ENGLISH);
|
||||
if (signName.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
try
|
||||
{
|
||||
newSigns.add(Signs.valueOf(signName).getSign());
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.log(Level.SEVERE, _("unknownItemInList", signName, "enabledSigns"));
|
||||
}
|
||||
}
|
||||
return newSigns;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean spawnIfNoHome()
|
||||
@@ -476,12 +537,34 @@ public class Settings implements ISettings
|
||||
}
|
||||
return max;
|
||||
}
|
||||
private final static double MINMONEY = -10000000000000.0;
|
||||
|
||||
@Override
|
||||
public double getMinMoney()
|
||||
{
|
||||
double min = config.getDouble("min-money", MINMONEY);
|
||||
if (min > 0)
|
||||
{
|
||||
min = -min;
|
||||
}
|
||||
if (min < MINMONEY)
|
||||
{
|
||||
min = MINMONEY;
|
||||
}
|
||||
return min;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEcoLogEnabled()
|
||||
{
|
||||
return config.getBoolean("economy-log-enabled", false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEcoLogUpdateEnabled()
|
||||
{
|
||||
return config.getBoolean("economy-log-update-enabled", false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean removeGodOnDisconnect()
|
||||
@@ -542,7 +625,7 @@ public class Settings implements ISettings
|
||||
{
|
||||
return config.getBoolean("death-messages", true);
|
||||
}
|
||||
Set<String> noGodWorlds = new HashSet<String>();
|
||||
private Set<String> noGodWorlds = new HashSet<String>();
|
||||
|
||||
@Override
|
||||
public Set<String> getNoGodWorlds()
|
||||
@@ -581,35 +664,35 @@ public class Settings implements ISettings
|
||||
}
|
||||
|
||||
@Override
|
||||
public Priority getRespawnPriority()
|
||||
public EventPriority getRespawnPriority()
|
||||
{
|
||||
String priority = config.getString("respawn-listener-priority", "normal").toLowerCase(Locale.ENGLISH);
|
||||
if ("lowest".equals(priority))
|
||||
{
|
||||
return Priority.Lowest;
|
||||
return EventPriority.LOWEST;
|
||||
}
|
||||
if ("low".equals(priority))
|
||||
{
|
||||
return Priority.Low;
|
||||
return EventPriority.LOW;
|
||||
}
|
||||
if ("normal".equals(priority))
|
||||
{
|
||||
return Priority.Normal;
|
||||
return EventPriority.NORMAL;
|
||||
}
|
||||
if ("high".equals(priority))
|
||||
{
|
||||
return Priority.High;
|
||||
return EventPriority.HIGH;
|
||||
}
|
||||
if ("highest".equals(priority))
|
||||
{
|
||||
return Priority.Highest;
|
||||
return EventPriority.HIGHEST;
|
||||
}
|
||||
return Priority.Normal;
|
||||
return EventPriority.NORMAL;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public long getTpaAcceptCancellation()
|
||||
{
|
||||
return config.getLong("tpa-accept-cancellation", 0);
|
||||
return config.getLong("tpa-accept-cancellation", 0);
|
||||
}
|
||||
}
|
||||
@@ -2,11 +2,13 @@ package com.earth2me.essentials;
|
||||
|
||||
import com.earth2me.essentials.craftbukkit.FakeExplosion;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||
import org.bukkit.event.entity.EntityListener;
|
||||
|
||||
|
||||
public class TNTExplodeListener extends EntityListener implements Runnable
|
||||
public class TNTExplodeListener implements Listener, Runnable
|
||||
{
|
||||
private final transient IEssentials ess;
|
||||
private transient boolean enabled = false;
|
||||
@@ -33,7 +35,7 @@ public class TNTExplodeListener extends EntityListener implements Runnable
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onEntityExplode(final EntityExplodeEvent event)
|
||||
{
|
||||
if (!enabled)
|
||||
|
||||
@@ -13,6 +13,7 @@ import java.util.Map;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Item;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
|
||||
@@ -38,7 +39,7 @@ public class Trade
|
||||
{
|
||||
this(null, null, items, null, ess);
|
||||
}
|
||||
|
||||
|
||||
public Trade(final int exp, final IEssentials ess)
|
||||
{
|
||||
this(null, null, null, exp, ess);
|
||||
@@ -79,9 +80,10 @@ public class Trade
|
||||
{
|
||||
throw new ChargeException(_("notEnoughMoney"));
|
||||
}
|
||||
|
||||
if (exp != null && exp > 0
|
||||
&& SetExpFix.getTotalExperience(user) < exp) {
|
||||
|
||||
if (exp != null && exp > 0
|
||||
&& SetExpFix.getTotalExperience(user) < exp)
|
||||
{
|
||||
throw new ChargeException(_("notEnoughExperience"));
|
||||
}
|
||||
}
|
||||
@@ -103,9 +105,25 @@ public class Trade
|
||||
if (dropItems)
|
||||
{
|
||||
final Map<Integer, ItemStack> leftOver = InventoryWorkaround.addItem(user.getInventory(), true, getItemStack());
|
||||
final Location loc = user.getLocation();
|
||||
for (ItemStack itemStack : leftOver.values())
|
||||
{
|
||||
InventoryWorkaround.dropItem(user.getLocation(), itemStack);
|
||||
final int maxStackSize = itemStack.getType().getMaxStackSize();
|
||||
final int stacks = itemStack.getAmount() / maxStackSize;
|
||||
final int leftover = itemStack.getAmount() % maxStackSize;
|
||||
final Item[] itemStacks = new Item[stacks + (leftover > 0 ? 1 : 0)];
|
||||
for (int i = 0; i < stacks; i++)
|
||||
{
|
||||
final ItemStack stack = itemStack.clone();
|
||||
stack.setAmount(maxStackSize);
|
||||
itemStacks[i] = loc.getWorld().dropItem(loc, stack);
|
||||
}
|
||||
if (leftover > 0)
|
||||
{
|
||||
final ItemStack stack = itemStack.clone();
|
||||
stack.setAmount(leftover);
|
||||
itemStacks[stacks] = loc.getWorld().dropItem(loc, stack);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -125,8 +143,7 @@ public class Trade
|
||||
{
|
||||
if (getMoney() != null)
|
||||
{
|
||||
final double mon = user.getMoney();
|
||||
if (mon < getMoney() && getMoney() > 0 && !user.isAuthorized("essentials.eco.loan"))
|
||||
if (!user.canAfford(getMoney()) && getMoney() > 0)
|
||||
{
|
||||
throw new ChargeException(_("notEnoughMoney"));
|
||||
}
|
||||
@@ -145,9 +162,8 @@ public class Trade
|
||||
&& !user.isAuthorized("essentials.nocommandcost.all")
|
||||
&& !user.isAuthorized("essentials.nocommandcost." + command))
|
||||
{
|
||||
final double mon = user.getMoney();
|
||||
final double cost = ess.getSettings().getCommandCost(command.charAt(0) == '/' ? command.substring(1) : command);
|
||||
if (mon < cost && cost > 0 && !user.isAuthorized("essentials.eco.loan"))
|
||||
if (!user.canAfford(cost) && cost > 0)
|
||||
{
|
||||
throw new ChargeException(_("notEnoughMoney"));
|
||||
}
|
||||
@@ -173,7 +189,7 @@ public class Trade
|
||||
{
|
||||
return itemStack;
|
||||
}
|
||||
|
||||
|
||||
public Integer getExperience()
|
||||
{
|
||||
return exp;
|
||||
@@ -182,7 +198,8 @@ public class Trade
|
||||
|
||||
public static void log(String type, String subtype, String event, String sender, Trade charge, String receiver, Trade pay, Location loc, IEssentials ess)
|
||||
{
|
||||
if (!ess.getSettings().isEcoLogEnabled())
|
||||
if ((loc == null && !ess.getSettings().isEcoLogUpdateEnabled())
|
||||
|| (loc != null && !ess.getSettings().isEcoLogEnabled()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@ import java.util.Calendar;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -23,34 +22,37 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
private transient long lastOnlineActivity;
|
||||
private transient long lastActivity = System.currentTimeMillis();
|
||||
private boolean hidden = false;
|
||||
private transient Location afkPosition;
|
||||
private transient Location afkPosition = null;
|
||||
private static final Logger logger = Logger.getLogger("Minecraft");
|
||||
|
||||
|
||||
User(final Player base, final IEssentials ess)
|
||||
{
|
||||
super(base, ess);
|
||||
teleport = new Teleport(this, ess);
|
||||
afkPosition = getLocation();
|
||||
if (isAfk())
|
||||
{
|
||||
afkPosition = getLocation();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
User update(final Player base)
|
||||
{
|
||||
setBase(base);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean isAuthorized(final IEssentialsCommand cmd)
|
||||
{
|
||||
return isAuthorized(cmd, "essentials.");
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean isAuthorized(final IEssentialsCommand cmd, final String permissionPrefix)
|
||||
{
|
||||
return isAuthorized(permissionPrefix + (cmd.getName().equals("r") ? "msg" : cmd.getName()));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean isAuthorized(final String node)
|
||||
{
|
||||
@@ -58,20 +60,20 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
if (isOp())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
if (isJailed())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
return ess.getPermissionsHandler().hasPermission(base, node);
|
||||
}
|
||||
|
||||
|
||||
public void healCooldown() throws Exception
|
||||
{
|
||||
final Calendar now = new GregorianCalendar();
|
||||
@@ -89,13 +91,13 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
}
|
||||
setLastHealTimestamp(now.getTimeInMillis());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void giveMoney(final double value)
|
||||
{
|
||||
giveMoney(value, null);
|
||||
}
|
||||
|
||||
|
||||
public void giveMoney(final double value, final CommandSender initiator)
|
||||
{
|
||||
if (value == 0)
|
||||
@@ -106,10 +108,10 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
sendMessage(_("addedToAccount", Util.formatCurrency(value, ess)));
|
||||
if (initiator != null)
|
||||
{
|
||||
initiator.sendMessage(_("addedToOthersAccount", Util.formatCurrency(value, ess), this.getDisplayName()));
|
||||
initiator.sendMessage(_("addedToOthersAccount", Util.formatCurrency(value, ess), this.getDisplayName(), Util.formatCurrency(getMoney(), ess)));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void payUser(final User reciever, final double value) throws Exception
|
||||
{
|
||||
if (value == 0)
|
||||
@@ -128,13 +130,13 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
throw new Exception(_("notEnoughMoney"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void takeMoney(final double value)
|
||||
{
|
||||
takeMoney(value, null);
|
||||
}
|
||||
|
||||
|
||||
public void takeMoney(final double value, final CommandSender initiator)
|
||||
{
|
||||
if (value == 0)
|
||||
@@ -145,39 +147,48 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
sendMessage(_("takenFromAccount", Util.formatCurrency(value, ess)));
|
||||
if (initiator != null)
|
||||
{
|
||||
initiator.sendMessage(_("takenFromOthersAccount", Util.formatCurrency(value, ess), this.getDisplayName()));
|
||||
initiator.sendMessage(_("takenFromOthersAccount", Util.formatCurrency(value, ess), this.getDisplayName(), Util.formatCurrency(getMoney(), ess)));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public boolean canAfford(final double cost)
|
||||
{
|
||||
final double mon = getMoney();
|
||||
return mon >= cost || isAuthorized("essentials.eco.loan");
|
||||
return canAfford(cost, true);
|
||||
}
|
||||
|
||||
|
||||
public boolean canAfford(final double cost, final boolean permcheck)
|
||||
{
|
||||
final double mon = getMoney();
|
||||
if (!permcheck || isAuthorized("essentials.eco.loan"))
|
||||
{
|
||||
return (mon - cost) >= ess.getSettings().getMinMoney();
|
||||
}
|
||||
return cost <= mon;
|
||||
}
|
||||
|
||||
public void dispose()
|
||||
{
|
||||
this.base = new OfflinePlayer(getName(), ess);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void setReplyTo(final CommandSender user)
|
||||
{
|
||||
replyTo = user;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public CommandSender getReplyTo()
|
||||
{
|
||||
return replyTo;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int compareTo(final User other)
|
||||
{
|
||||
return Util.stripColor(this.getDisplayName()).compareToIgnoreCase(Util.stripColor(other.getDisplayName()));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean equals(final Object object)
|
||||
{
|
||||
@@ -186,58 +197,58 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
return false;
|
||||
}
|
||||
return this.getName().equalsIgnoreCase(((User)object).getName());
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int hashCode()
|
||||
{
|
||||
return this.getName().hashCode();
|
||||
}
|
||||
|
||||
|
||||
public Boolean canSpawnItem(final int itemId)
|
||||
{
|
||||
return !ess.getSettings().itemSpawnBlacklist().contains(itemId);
|
||||
}
|
||||
|
||||
|
||||
public Location getHome() throws Exception
|
||||
{
|
||||
return getHome(getHomes().get(0));
|
||||
}
|
||||
|
||||
|
||||
public void setHome()
|
||||
{
|
||||
setHome("home", getLocation());
|
||||
}
|
||||
|
||||
|
||||
public void setHome(final String name)
|
||||
{
|
||||
setHome(name, getLocation());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void setLastLocation()
|
||||
{
|
||||
setLastLocation(getLocation());
|
||||
}
|
||||
|
||||
|
||||
public void requestTeleport(final User player, final boolean here)
|
||||
{
|
||||
teleportRequestTime = System.currentTimeMillis();
|
||||
teleportRequester = player;
|
||||
teleportRequestHere = here;
|
||||
}
|
||||
|
||||
|
||||
public User getTeleportRequest()
|
||||
{
|
||||
return teleportRequester;
|
||||
}
|
||||
|
||||
|
||||
public boolean isTeleportRequestHere()
|
||||
{
|
||||
return teleportRequestHere;
|
||||
}
|
||||
|
||||
|
||||
public String getNick(boolean addprefixsuffix)
|
||||
{
|
||||
final StringBuilder nickname = new StringBuilder();
|
||||
@@ -261,7 +272,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (addprefixsuffix && ess.getSettings().addPrefixSuffix())
|
||||
{
|
||||
if (!ess.getSettings().disablePrefix())
|
||||
@@ -283,10 +294,10 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
nickname.append("§f");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return nickname.toString();
|
||||
}
|
||||
|
||||
|
||||
public void setDisplayNick()
|
||||
{
|
||||
String name = getNick(true);
|
||||
@@ -308,7 +319,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
logger.log(Level.INFO, "Playerlist for " + name + " was not updated. Use a shorter displayname prefix.");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String getDisplayName()
|
||||
{
|
||||
@@ -318,22 +329,22 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
}
|
||||
return super.getDisplayName() == null ? super.getName() : super.getDisplayName();
|
||||
}
|
||||
|
||||
|
||||
public Teleport getTeleport()
|
||||
{
|
||||
return teleport;
|
||||
}
|
||||
|
||||
|
||||
public long getLastOnlineActivity()
|
||||
{
|
||||
return lastOnlineActivity;
|
||||
}
|
||||
|
||||
|
||||
public void setLastOnlineActivity(final long timestamp)
|
||||
{
|
||||
lastOnlineActivity = timestamp;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public double getMoney()
|
||||
{
|
||||
@@ -355,7 +366,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
}
|
||||
return super.getMoney();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void setMoney(final double value)
|
||||
{
|
||||
@@ -374,10 +385,19 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
catch (Throwable ex)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
super.setMoney(value);
|
||||
Trade.log("Update", "Set", "API", getName(), new Trade(value, ess), null, null, null, ess);
|
||||
}
|
||||
|
||||
|
||||
public void updateMoneyCache(final double value)
|
||||
{
|
||||
if (ess.getPaymentMethod().hasMethod() && super.getMoney() != value)
|
||||
{
|
||||
super.setMoney(value);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAfk(final boolean set)
|
||||
{
|
||||
@@ -386,9 +406,13 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
{
|
||||
afkPosition = getLocation();
|
||||
}
|
||||
else if (!set && isAfk())
|
||||
{
|
||||
afkPosition = null;
|
||||
}
|
||||
super.setAfk(set);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean toggleAfk()
|
||||
{
|
||||
@@ -396,13 +420,13 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
this.setSleepingIgnored(this.isAuthorized("essentials.sleepingignored") ? true : now);
|
||||
return now;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean isHidden()
|
||||
{
|
||||
return hidden;
|
||||
}
|
||||
|
||||
|
||||
public void setHidden(final boolean hidden)
|
||||
{
|
||||
this.hidden = hidden;
|
||||
@@ -453,7 +477,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public void updateActivity(final boolean broadcast)
|
||||
{
|
||||
if (isAfk())
|
||||
@@ -466,7 +490,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
}
|
||||
lastActivity = System.currentTimeMillis();
|
||||
}
|
||||
|
||||
|
||||
public void checkActivity()
|
||||
{
|
||||
final long autoafkkick = ess.getSettings().getAutoAfkKick();
|
||||
@@ -476,8 +500,8 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
final String kickReason = _("autoAfkKickReason", autoafkkick / 60.0);
|
||||
lastActivity = 0;
|
||||
kickPlayer(kickReason);
|
||||
|
||||
|
||||
|
||||
|
||||
for (Player player : ess.getServer().getOnlinePlayers())
|
||||
{
|
||||
final User user = ess.getUser(player);
|
||||
@@ -497,12 +521,12 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public Location getAfkPosition()
|
||||
{
|
||||
return afkPosition;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean toggleGodModeEnabled()
|
||||
{
|
||||
@@ -512,36 +536,40 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||
}
|
||||
return super.toggleGodModeEnabled();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean isGodModeEnabled()
|
||||
{
|
||||
return (super.isGodModeEnabled() && !ess.getSettings().getNoGodWorlds().contains(getLocation().getWorld().getName()))
|
||||
|| (isAfk() && ess.getSettings().getFreezeAfkPlayers());
|
||||
}
|
||||
|
||||
|
||||
public boolean isGodModeEnabledRaw()
|
||||
{
|
||||
return super.isGodModeEnabled();
|
||||
}
|
||||
|
||||
|
||||
public String getGroup()
|
||||
{
|
||||
return ess.getPermissionsHandler().getGroup(base);
|
||||
}
|
||||
|
||||
|
||||
public boolean inGroup(final String group)
|
||||
{
|
||||
return ess.getPermissionsHandler().inGroup(base, group);
|
||||
}
|
||||
|
||||
|
||||
public boolean canBuild()
|
||||
{
|
||||
if (isOp())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return ess.getPermissionsHandler().canBuild(base, getGroup());
|
||||
}
|
||||
|
||||
|
||||
public long getTeleportRequestTime()
|
||||
{
|
||||
return teleportRequestTime;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -53,7 +53,6 @@ public abstract class UserData extends PlayerExtension implements IConf
|
||||
lastLogout = _getLastLogout();
|
||||
lastLoginAddress = _getLastLoginAddress();
|
||||
afk = getAfk();
|
||||
newplayer = getNew();
|
||||
geolocation = _getGeoLocation();
|
||||
isSocialSpyEnabled = _isSocialSpyEnabled();
|
||||
isNPC = _isNPC();
|
||||
@@ -95,17 +94,11 @@ public abstract class UserData extends PlayerExtension implements IConf
|
||||
|
||||
private Map<String, Object> _getHomes()
|
||||
{
|
||||
Object o = config.getProperty("homes");
|
||||
|
||||
if (o instanceof Map)
|
||||
if (config.isConfigurationSection("homes"))
|
||||
{
|
||||
return (Map<String, Object>)o;
|
||||
return config.getConfigurationSection("homes").getValues(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
return new HashMap<String, Object>();
|
||||
}
|
||||
|
||||
return new HashMap<String, Object>();
|
||||
}
|
||||
|
||||
public Location getHome(String name) throws Exception
|
||||
@@ -210,7 +203,7 @@ public abstract class UserData extends PlayerExtension implements IConf
|
||||
|
||||
private List<Integer> _getUnlimited()
|
||||
{
|
||||
return config.getIntList("unlimited", new ArrayList<Integer>());
|
||||
return config.getIntegerList("unlimited");
|
||||
}
|
||||
|
||||
public List<Integer> getUnlimited()
|
||||
@@ -236,22 +229,15 @@ public abstract class UserData extends PlayerExtension implements IConf
|
||||
config.setProperty("unlimited", unlimited);
|
||||
config.save();
|
||||
}
|
||||
private Map<Integer, Object> powertools;
|
||||
private Map<String, Object> powertools;
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private Map<Integer, Object> _getPowertools()
|
||||
private Map<String, Object> _getPowertools()
|
||||
{
|
||||
Object o = config.getProperty("powertools");
|
||||
|
||||
if (o instanceof Map)
|
||||
if (config.isConfigurationSection("powertools"))
|
||||
{
|
||||
return (Map<Integer, Object>)o;
|
||||
return config.getConfigurationSection("powertools").getValues(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
return new HashMap<Integer, Object>();
|
||||
}
|
||||
|
||||
return new HashMap<String, Object>();
|
||||
}
|
||||
|
||||
public void clearAllPowertools()
|
||||
@@ -263,18 +249,23 @@ public abstract class UserData extends PlayerExtension implements IConf
|
||||
|
||||
public List<String> getPowertool(ItemStack stack)
|
||||
{
|
||||
return (List<String>)powertools.get(stack.getTypeId());
|
||||
return (List<String>)powertools.get("" + stack.getTypeId());
|
||||
}
|
||||
|
||||
public List<String> getPowertool(int id)
|
||||
{
|
||||
return (List<String>)powertools.get("" + id);
|
||||
}
|
||||
|
||||
public void setPowertool(ItemStack stack, List<String> commandList)
|
||||
{
|
||||
if (commandList == null || commandList.isEmpty())
|
||||
{
|
||||
powertools.remove(stack.getTypeId());
|
||||
powertools.remove("" + stack.getTypeId());
|
||||
}
|
||||
else
|
||||
{
|
||||
powertools.put(stack.getTypeId(), commandList);
|
||||
powertools.put("" + stack.getTypeId(), commandList);
|
||||
}
|
||||
config.setProperty("powertools", powertools);
|
||||
config.save();
|
||||
@@ -379,7 +370,7 @@ public abstract class UserData extends PlayerExtension implements IConf
|
||||
|
||||
private List<String> _getMails()
|
||||
{
|
||||
return config.getStringList("mail", new ArrayList<String>());
|
||||
return config.getStringList("mail");
|
||||
}
|
||||
|
||||
public List<String> getMails()
|
||||
@@ -487,7 +478,7 @@ public abstract class UserData extends PlayerExtension implements IConf
|
||||
|
||||
public List<String> getIgnoredPlayers()
|
||||
{
|
||||
return config.getStringList("ignore", new ArrayList<String>());
|
||||
return config.getStringList("ignore");
|
||||
}
|
||||
|
||||
public void setIgnoredPlayers(List<String> players)
|
||||
@@ -735,23 +726,6 @@ public abstract class UserData extends PlayerExtension implements IConf
|
||||
return ret;
|
||||
}
|
||||
private boolean newplayer;
|
||||
|
||||
private boolean getNew()
|
||||
{
|
||||
return config.getBoolean("newplayer", true);
|
||||
}
|
||||
|
||||
public boolean isNew()
|
||||
{
|
||||
return newplayer;
|
||||
}
|
||||
|
||||
public void setNew(boolean set)
|
||||
{
|
||||
newplayer = set;
|
||||
config.setProperty("newplayer", set);
|
||||
config.save();
|
||||
}
|
||||
private String geolocation;
|
||||
|
||||
private String _getGeoLocation()
|
||||
@@ -843,16 +817,12 @@ public abstract class UserData extends PlayerExtension implements IConf
|
||||
|
||||
private Map<String, Object> _getKitTimestamps()
|
||||
{
|
||||
final Object map = config.getProperty("timestamps.kits");
|
||||
|
||||
if (map instanceof Map)
|
||||
|
||||
if (config.isConfigurationSection("timestamps.kits"))
|
||||
{
|
||||
return (Map<String, Object>)map;
|
||||
}
|
||||
else
|
||||
{
|
||||
return new HashMap<String, Object>();
|
||||
return config.getConfigurationSection("timestamps.kits").getValues(false);
|
||||
}
|
||||
return new HashMap<String, Object>();
|
||||
}
|
||||
|
||||
public Long getKitTimestamp(final String name)
|
||||
|
||||
@@ -6,7 +6,6 @@ import com.google.common.cache.CacheLoader;
|
||||
import com.google.common.util.concurrent.UncheckedExecutionException;
|
||||
import java.io.File;
|
||||
import java.util.Collections;
|
||||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentSkipListSet;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
@@ -47,7 +46,7 @@ public class UserMap extends CacheLoader<String, User> implements IConf
|
||||
continue;
|
||||
}
|
||||
final String name = string.substring(0, string.length() - 4);
|
||||
keys.add(name.toLowerCase(Locale.ENGLISH));
|
||||
keys.add(Util.sanitizeFileName(name));
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -55,14 +54,14 @@ public class UserMap extends CacheLoader<String, User> implements IConf
|
||||
|
||||
public boolean userExists(final String name)
|
||||
{
|
||||
return keys.contains(name.toLowerCase(Locale.ENGLISH));
|
||||
return keys.contains(Util.sanitizeFileName(name));
|
||||
}
|
||||
|
||||
public User getUser(final String name)
|
||||
{
|
||||
try
|
||||
{
|
||||
return users.get(name.toLowerCase(Locale.ENGLISH));
|
||||
return users.get(name);
|
||||
}
|
||||
catch (ExecutionException ex)
|
||||
{
|
||||
@@ -77,18 +76,31 @@ public class UserMap extends CacheLoader<String, User> implements IConf
|
||||
@Override
|
||||
public User load(final String name) throws Exception
|
||||
{
|
||||
String sanitizedName = Util.sanitizeFileName(name);
|
||||
if (!sanitizedName.equals(name))
|
||||
{
|
||||
User user = getUser(sanitizedName);
|
||||
if (user == null)
|
||||
{
|
||||
throw new Exception("User not found!");
|
||||
}
|
||||
else
|
||||
{
|
||||
return user;
|
||||
}
|
||||
}
|
||||
for (Player player : ess.getServer().getOnlinePlayers())
|
||||
{
|
||||
if (player.getName().equalsIgnoreCase(name))
|
||||
{
|
||||
keys.add(name.toLowerCase(Locale.ENGLISH));
|
||||
keys.add(sanitizedName);
|
||||
return new User(player, ess);
|
||||
}
|
||||
}
|
||||
final File userFile = getUserFile(name);
|
||||
final File userFile = getUserFile2(sanitizedName);
|
||||
if (userFile.exists())
|
||||
{
|
||||
keys.add(name.toLowerCase(Locale.ENGLISH));
|
||||
keys.add(sanitizedName);
|
||||
return new User(new OfflinePlayer(name, ess), ess);
|
||||
}
|
||||
throw new Exception("User not found!");
|
||||
@@ -102,8 +114,9 @@ public class UserMap extends CacheLoader<String, User> implements IConf
|
||||
|
||||
public void removeUser(final String name)
|
||||
{
|
||||
keys.remove(name.toLowerCase(Locale.ENGLISH));
|
||||
users.invalidate(name.toLowerCase(Locale.ENGLISH));
|
||||
keys.remove(Util.sanitizeFileName(name));
|
||||
users.invalidate(Util.sanitizeFileName(name));
|
||||
users.invalidate(name);
|
||||
}
|
||||
|
||||
public Set<String> getAllUniqueUsers()
|
||||
@@ -115,10 +128,15 @@ public class UserMap extends CacheLoader<String, User> implements IConf
|
||||
{
|
||||
return keys.size();
|
||||
}
|
||||
|
||||
|
||||
public File getUserFile(final String name)
|
||||
{
|
||||
return getUserFile2(Util.sanitizeFileName(name));
|
||||
}
|
||||
|
||||
private File getUserFile2(final String name)
|
||||
{
|
||||
final File userFolder = new File(ess.getDataFolder(), "userdata");
|
||||
return new File(userFolder, Util.sanitizeFileName(name) + ".yml");
|
||||
return new File(userFolder, name + ".yml");
|
||||
}
|
||||
}
|
||||
@@ -21,10 +21,18 @@ public class Util
|
||||
{
|
||||
}
|
||||
private final static Logger logger = Logger.getLogger("Minecraft");
|
||||
private final static Pattern INVALIDFILECHARS = Pattern.compile("[^a-z0-9]");
|
||||
private final static Pattern INVALIDCHARS = Pattern.compile("[^\t\n\r\u0020-\u007E\u0085\u00A0-\uD7FF\uE000-\uFFFC]");
|
||||
|
||||
public static String sanitizeFileName(String name)
|
||||
public static String sanitizeFileName(final String name)
|
||||
{
|
||||
return name.toLowerCase(Locale.ENGLISH).replaceAll("[^a-z0-9]", "_");
|
||||
final String newName = INVALIDFILECHARS.matcher(name.toLowerCase(Locale.ENGLISH)).replaceAll("_");
|
||||
return newName;
|
||||
}
|
||||
|
||||
public static String sanitizeString(final String string)
|
||||
{
|
||||
return INVALIDCHARS.matcher(string).replaceAll("");
|
||||
}
|
||||
|
||||
public static String formatDateDiff(long date)
|
||||
@@ -477,7 +485,8 @@ public class Util
|
||||
}
|
||||
return buf.toString();
|
||||
}
|
||||
private static transient final Pattern COLOR_PATTERN = Pattern.compile("(?i)\u00A7[0-9A-F]");
|
||||
private static transient final Pattern VANILLA_COLOR_PATTERN = Pattern.compile("\u00A7+[0-9A-FKa-fk]");
|
||||
private static transient final Pattern EASY_COLOR_PATTERN = Pattern.compile("&([0-9a-fk])");
|
||||
|
||||
public static String stripColor(final String input)
|
||||
{
|
||||
@@ -486,6 +495,16 @@ public class Util
|
||||
return null;
|
||||
}
|
||||
|
||||
return COLOR_PATTERN.matcher(input).replaceAll("");
|
||||
return VANILLA_COLOR_PATTERN.matcher(input).replaceAll("");
|
||||
}
|
||||
|
||||
public static String replaceColor(final String input)
|
||||
{
|
||||
if (input == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return EASY_COLOR_PATTERN.matcher(input).replaceAll("\u00a7$1");
|
||||
}
|
||||
}
|
||||
@@ -115,6 +115,10 @@ public final class Economy
|
||||
{
|
||||
throw new UserDoesNotExistException(name);
|
||||
}
|
||||
if (balance < ess.getSettings().getMinMoney())
|
||||
{
|
||||
throw new NoLoanPermittedException();
|
||||
}
|
||||
if (balance < 0.0 && !user.isAuthorized("essentials.eco.loan"))
|
||||
{
|
||||
throw new NoLoanPermittedException();
|
||||
|
||||
@@ -20,5 +20,6 @@ public class Commandback extends EssentialsCommand
|
||||
charge.isAffordableFor(user);
|
||||
user.sendMessage(_("backUsageMsg"));
|
||||
user.getTeleport().back(charge);
|
||||
throw new NoChargeException();
|
||||
}
|
||||
}
|
||||
@@ -105,14 +105,18 @@ public class Commandbalancetop extends EssentialsCommand
|
||||
{
|
||||
if (force || cacheage <= System.currentTimeMillis() - CACHETIME)
|
||||
{
|
||||
cache.getLines().clear();
|
||||
cache.getLines().clear();
|
||||
final Map<String, Double> balances = new HashMap<String, Double>();
|
||||
double totalMoney = 0d;
|
||||
for (String u : ess.getUserMap().getAllUniqueUsers())
|
||||
{
|
||||
final User user = ess.getUserMap().getUser(u);
|
||||
if (user != null)
|
||||
{
|
||||
balances.put(u, user.getMoney());
|
||||
final double userMoney = user.getMoney();
|
||||
user.updateMoneyCache(userMoney);
|
||||
totalMoney += userMoney;
|
||||
balances.put(user.getDisplayName(), userMoney);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -125,6 +129,8 @@ public class Commandbalancetop extends EssentialsCommand
|
||||
return -entry1.getValue().compareTo(entry2.getValue());
|
||||
}
|
||||
});
|
||||
|
||||
cache.getLines().add(_("serverTotal", Util.formatCurrency(totalMoney, ess)));
|
||||
int pos = 1;
|
||||
for (Map.Entry<String, Double> entry : sortedEntries)
|
||||
{
|
||||
|
||||
@@ -15,7 +15,7 @@ public class Commanddelhome extends EssentialsCommand
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
|
||||
public void run(final Server server, final CommandSender sender, final String commandLabel, String[] args) throws Exception
|
||||
{
|
||||
if (args.length < 1)
|
||||
{
|
||||
@@ -24,7 +24,18 @@ public class Commanddelhome extends EssentialsCommand
|
||||
|
||||
User user = ess.getUser(sender);
|
||||
String name;
|
||||
final String[] expandedArg = args[0].split(":");
|
||||
String[] expandedArg;
|
||||
|
||||
//Allowing both formats /sethome khobbits house | /sethome khobbits:house
|
||||
final String[] nameParts = args[0].split(":");
|
||||
if (nameParts[0].length() != args[0].length())
|
||||
{
|
||||
expandedArg = nameParts;
|
||||
}
|
||||
else
|
||||
{
|
||||
expandedArg = args;
|
||||
}
|
||||
|
||||
if (expandedArg.length > 1 && (user == null || user.isAuthorized("essentials.delhome.others")))
|
||||
{
|
||||
@@ -41,9 +52,7 @@ public class Commanddelhome extends EssentialsCommand
|
||||
}
|
||||
//TODO: Think up a nice error message
|
||||
/*
|
||||
* if (name.equalsIgnoreCase("bed")) {
|
||||
* throw new Exception("You cannot remove the vanilla home point");
|
||||
* }
|
||||
* if (name.equalsIgnoreCase("bed")) { throw new Exception("You cannot remove the vanilla home point"); }
|
||||
*/
|
||||
user.delHome(name.toLowerCase(Locale.ENGLISH));
|
||||
sender.sendMessage(_("deleteHome", name));
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.earth2me.essentials.commands;
|
||||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.User;
|
||||
import java.util.Locale;
|
||||
import org.bukkit.Server;
|
||||
@@ -45,6 +46,10 @@ public class Commandeco extends EssentialsCommand
|
||||
break;
|
||||
|
||||
case TAKE:
|
||||
if (!player.canAfford(amount, false))
|
||||
{
|
||||
throw new Exception(_("notEnoughMoney"));
|
||||
}
|
||||
player.takeMoney(amount);
|
||||
break;
|
||||
|
||||
@@ -64,6 +69,10 @@ public class Commandeco extends EssentialsCommand
|
||||
break;
|
||||
|
||||
case TAKE:
|
||||
if (!player.canAfford(amount, false))
|
||||
{
|
||||
throw new Exception(_("notEnoughMoney"));
|
||||
}
|
||||
player.takeMoney(amount, sender);
|
||||
break;
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ public class Commandhelp extends EssentialsCommand
|
||||
output = new KeywordReplacer(input, user, ess);
|
||||
}
|
||||
final TextPager pager = new TextPager(output);
|
||||
pager.showPage(pageStr, chapterPageStr, "help", user);
|
||||
pager.showPage(pageStr, chapterPageStr, commandLabel, user);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.earth2me.essentials.commands;
|
||||
|
||||
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.entity.Player;
|
||||
@@ -22,7 +23,7 @@ public class Commandhelpop extends EssentialsCommand
|
||||
throw new NotEnoughArgumentsException();
|
||||
}
|
||||
|
||||
final String message = _("helpOp", user.getDisplayName(), getFinalArg(args, 0));
|
||||
final String message = _("helpOp", user.getDisplayName(), Util.stripColor(getFinalArg(args, 0)));
|
||||
logger.log(Level.INFO, message);
|
||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||
{
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.earth2me.essentials.Util;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||
|
||||
@@ -47,27 +48,31 @@ public class Commandhome extends EssentialsCommand
|
||||
if ("bed".equalsIgnoreCase(homeName))
|
||||
{
|
||||
final Location bed = player.getBedSpawnLocation();
|
||||
if (bed != null)
|
||||
if (bed != null && bed.getBlock().getType() == Material.BED_BLOCK)
|
||||
{
|
||||
user.getTeleport().teleport(bed, charge, TeleportCause.COMMAND);
|
||||
return;
|
||||
throw new NoChargeException();
|
||||
}
|
||||
}
|
||||
user.getTeleport().home(player, homeName.toLowerCase(Locale.ENGLISH), charge);
|
||||
}
|
||||
catch (NotEnoughArgumentsException e)
|
||||
{
|
||||
Location bed = player.getBedSpawnLocation();
|
||||
if (bed != null && bed.getBlock().getType() != Material.BED_BLOCK)
|
||||
{
|
||||
bed = null;
|
||||
}
|
||||
final List<String> homes = player.getHomes();
|
||||
if (homes.isEmpty() && player.equals(user))
|
||||
{
|
||||
final Location bed = player.getBedSpawnLocation();
|
||||
if (bed != null)
|
||||
{
|
||||
user.getTeleport().teleport(bed, charge, TeleportCause.COMMAND);
|
||||
return;
|
||||
throw new NoChargeException();
|
||||
}
|
||||
user.getTeleport().respawn(charge, TeleportCause.COMMAND);
|
||||
return;
|
||||
|
||||
}
|
||||
else if (homes.isEmpty())
|
||||
{
|
||||
@@ -76,11 +81,13 @@ public class Commandhome extends EssentialsCommand
|
||||
else if (homes.size() == 1 && player.equals(user))
|
||||
{
|
||||
user.getTeleport().home(player, homes.get(0), charge);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
homes.add("bed");
|
||||
if (bed != null)
|
||||
{
|
||||
homes.add("bed");
|
||||
}
|
||||
user.sendMessage(_("homes", Util.joinList(homes)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,6 @@ public class Commandinfo extends EssentialsCommand
|
||||
final IText input = new TextInput(sender, "info", true, ess);
|
||||
final IText output = new KeywordReplacer(input, sender, ess);
|
||||
final TextPager pager = new TextPager(output);
|
||||
pager.showPage(args.length > 0 ? args[0] : null, args.length > 1 ? args[1] : null, "info", sender);
|
||||
pager.showPage(args.length > 0 ? args[0] : null, args.length > 1 ? args[1] : null, commandLabel, sender);
|
||||
}
|
||||
}
|
||||
@@ -10,7 +10,7 @@ public class Commanditemdb extends EssentialsCommand
|
||||
{
|
||||
public Commanditemdb()
|
||||
{
|
||||
super("find");
|
||||
super("itemdb");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -31,6 +31,7 @@ public class Commandkill extends EssentialsCommand
|
||||
continue;
|
||||
}
|
||||
|
||||
matchPlayer.damage(1000);
|
||||
matchPlayer.setHealth(0);
|
||||
sender.sendMessage(_("kill", matchPlayer.getDisplayName()));
|
||||
}
|
||||
|
||||
@@ -125,7 +125,7 @@ public class Commandkillall extends EssentialsCommand
|
||||
{
|
||||
if (entity instanceof Animals || entity instanceof NPC || entity instanceof Snowman || entity instanceof WaterMob)
|
||||
{
|
||||
EntityDeathEvent event = new EntityDeathEvent(entity, Collections.EMPTY_LIST);
|
||||
EntityDeathEvent event = new EntityDeathEvent((LivingEntity)entity, Collections.EMPTY_LIST);
|
||||
ess.getServer().getPluginManager().callEvent(event);
|
||||
entity.remove();
|
||||
numKills++;
|
||||
@@ -135,7 +135,7 @@ public class Commandkillall extends EssentialsCommand
|
||||
{
|
||||
if (entity instanceof Monster || entity instanceof ComplexLivingEntity || entity instanceof Flying || entity instanceof Slime)
|
||||
{
|
||||
EntityDeathEvent event = new EntityDeathEvent(entity, Collections.EMPTY_LIST);
|
||||
EntityDeathEvent event = new EntityDeathEvent((LivingEntity)entity, Collections.EMPTY_LIST);
|
||||
ess.getServer().getPluginManager().callEvent(event);
|
||||
entity.remove();
|
||||
numKills++;
|
||||
@@ -143,14 +143,14 @@ public class Commandkillall extends EssentialsCommand
|
||||
}
|
||||
else if (all)
|
||||
{
|
||||
EntityDeathEvent event = new EntityDeathEvent(entity, Collections.EMPTY_LIST);
|
||||
EntityDeathEvent event = new EntityDeathEvent((LivingEntity)entity, Collections.EMPTY_LIST);
|
||||
ess.getServer().getPluginManager().callEvent(event);
|
||||
entity.remove();
|
||||
numKills++;
|
||||
}
|
||||
else if (entityClass != null && entityClass.isAssignableFrom(entity.getClass()))
|
||||
{
|
||||
EntityDeathEvent event = new EntityDeathEvent(entity, Collections.EMPTY_LIST);
|
||||
EntityDeathEvent event = new EntityDeathEvent((LivingEntity)entity, Collections.EMPTY_LIST);
|
||||
ess.getServer().getPluginManager().callEvent(event);
|
||||
entity.remove();
|
||||
numKills++;
|
||||
|
||||
@@ -32,16 +32,16 @@ public class Commandkit extends EssentialsCommand
|
||||
else
|
||||
{
|
||||
final String kitName = args[0].toLowerCase(Locale.ENGLISH);
|
||||
final Object kit = ess.getSettings().getKit(kitName);
|
||||
final Map<String, Object> kit = ess.getSettings().getKit(kitName);
|
||||
|
||||
if (!user.isAuthorized("essentials.kit." + kitName))
|
||||
{
|
||||
throw new Exception(_("noKitPermission", "essentials.kit." + kitName));
|
||||
}
|
||||
final Map<String, Object> els = (Map<String, Object>)kit;
|
||||
final List<String> items = Kit.getItems(user, els);
|
||||
|
||||
final List<String> items = Kit.getItems(user, kit);
|
||||
|
||||
Kit.checkTime(user, kitName, els);
|
||||
Kit.checkTime(user, kitName, kit);
|
||||
|
||||
final Trade charge = new Trade("kit-" + kitName, ess);
|
||||
charge.isAffordableFor(user);
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.earth2me.essentials.commands;
|
||||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.Util;
|
||||
import java.util.List;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Server;
|
||||
@@ -39,7 +40,7 @@ public class Commandmail extends EssentialsCommand
|
||||
{
|
||||
if (!user.isAuthorized("essentials.mail.send"))
|
||||
{
|
||||
throw new Exception(_("noPerm","essentials.mail.send"));
|
||||
throw new Exception(_("noPerm", "essentials.mail.send"));
|
||||
}
|
||||
|
||||
Player player = server.getPlayer(args[1]);
|
||||
@@ -58,7 +59,8 @@ public class Commandmail extends EssentialsCommand
|
||||
}
|
||||
if (!u.isIgnoredPlayer(user.getName()))
|
||||
{
|
||||
u.addMail(user.getName() + ": " + getFinalArg(args, 2));
|
||||
final String mail = Util.sanitizeString(Util.stripColor(getFinalArg(args, 2)));
|
||||
u.addMail(user.getName() + ": " + mail);
|
||||
}
|
||||
user.sendMessage(_("mailSent"));
|
||||
return;
|
||||
@@ -67,9 +69,9 @@ public class Commandmail extends EssentialsCommand
|
||||
{
|
||||
if (!user.isAuthorized("essentials.mail.sendall"))
|
||||
{
|
||||
throw new Exception(_("noPerm","essentials.mail.sendall"));
|
||||
throw new Exception(_("noPerm", "essentials.mail.sendall"));
|
||||
}
|
||||
ess.scheduleAsyncDelayedTask(new SendAll(user.getName() + ": " + getFinalArg(args, 1)));
|
||||
ess.scheduleAsyncDelayedTask(new SendAll(user.getName() + ": " + Util.stripColor(getFinalArg(args, 1))));
|
||||
user.sendMessage(_("mailSent"));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.earth2me.essentials.commands;
|
||||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.Util;
|
||||
import org.bukkit.Server;
|
||||
|
||||
|
||||
@@ -28,8 +29,12 @@ public class Commandme extends EssentialsCommand
|
||||
String message = getFinalArg(args, 0);
|
||||
if (user.isAuthorized("essentials.chat.color"))
|
||||
{
|
||||
message = message.replaceAll("&([0-9a-f])", "§$1");
|
||||
message = Util.replaceColor(message);
|
||||
}
|
||||
else {
|
||||
message = Util.stripColor(message);
|
||||
}
|
||||
|
||||
|
||||
ess.broadcastMessage(user, _("action", user.getDisplayName(), message));
|
||||
}
|
||||
|
||||
@@ -21,6 +21,6 @@ public class Commandmotd extends EssentialsCommand
|
||||
final IText input = new TextInput(sender, "motd", true, ess);
|
||||
final IText output = new KeywordReplacer(input, sender, ess);
|
||||
final TextPager pager = new TextPager(output);
|
||||
pager.showPage(args.length > 0 ? args[0] : null, args.length > 1 ? args[1] : null, "motd", sender);
|
||||
pager.showPage(args.length > 0 ? args[0] : null, args.length > 1 ? args[1] : null, commandLabel, sender);
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import com.earth2me.essentials.Console;
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.IReplyTo;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.Util;
|
||||
import java.util.List;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@@ -25,6 +26,7 @@ public class Commandmsg extends EssentialsCommand
|
||||
throw new NotEnoughArgumentsException();
|
||||
}
|
||||
|
||||
String message = getFinalArg(args, 1);
|
||||
if (sender instanceof Player)
|
||||
{
|
||||
User user = ess.getUser(sender);
|
||||
@@ -32,13 +34,24 @@ public class Commandmsg extends EssentialsCommand
|
||||
{
|
||||
throw new Exception(_("voiceSilenced"));
|
||||
}
|
||||
if (user.isAuthorized("essentials.msg.color"))
|
||||
{
|
||||
message = Util.replaceColor(message);
|
||||
}
|
||||
else
|
||||
{
|
||||
message = Util.stripColor(message);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
message = Util.replaceColor(message);
|
||||
}
|
||||
|
||||
String message = getFinalArg(args, 1);
|
||||
String translatedMe = _("me");
|
||||
final String translatedMe = _("me");
|
||||
|
||||
IReplyTo replyTo = sender instanceof Player ? ess.getUser((Player)sender) : Console.getConsoleReplyTo();
|
||||
String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
|
||||
final IReplyTo replyTo = sender instanceof Player ? ess.getUser((Player)sender) : Console.getConsoleReplyTo();
|
||||
final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
|
||||
|
||||
if (args[0].equalsIgnoreCase(Console.NAME))
|
||||
{
|
||||
@@ -50,38 +63,38 @@ public class Commandmsg extends EssentialsCommand
|
||||
return;
|
||||
}
|
||||
|
||||
List<Player> matches = server.matchPlayer(args[0]);
|
||||
final List<Player> matchedPlayers = server.matchPlayer(args[0]);
|
||||
|
||||
if (matches.isEmpty())
|
||||
if (matchedPlayers.isEmpty())
|
||||
{
|
||||
throw new Exception(_("playerNotFound"));
|
||||
}
|
||||
|
||||
int i = 0;
|
||||
for (Player p : matches)
|
||||
for (Player matchedPlayer : matchedPlayers)
|
||||
{
|
||||
final User u = ess.getUser(p);
|
||||
final User u = ess.getUser(matchedPlayer);
|
||||
if (u.isHidden())
|
||||
{
|
||||
i++;
|
||||
}
|
||||
}
|
||||
if (i == matches.size())
|
||||
if (i == matchedPlayers.size())
|
||||
{
|
||||
throw new Exception(_("playerNotFound"));
|
||||
}
|
||||
|
||||
for (Player p : matches)
|
||||
for (Player matchedPlayer : matchedPlayers)
|
||||
{
|
||||
sender.sendMessage(_("msgFormat", translatedMe, p.getDisplayName(), message));
|
||||
final User u = ess.getUser(p);
|
||||
if (sender instanceof Player && (u.isIgnoredPlayer(((Player)sender).getName()) || u.isHidden()))
|
||||
sender.sendMessage(_("msgFormat", translatedMe, matchedPlayer.getDisplayName(), message));
|
||||
final User matchedUser = ess.getUser(matchedPlayer);
|
||||
if (sender instanceof Player && (matchedUser.isIgnoredPlayer(((Player)sender).getName()) || matchedUser.isHidden()))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
p.sendMessage(_("msgFormat", senderName, translatedMe, message));
|
||||
replyTo.setReplyTo(ess.getUser(p));
|
||||
ess.getUser(p).setReplyTo(sender);
|
||||
matchedPlayer.sendMessage(_("msgFormat", senderName, translatedMe, message));
|
||||
replyTo.setReplyTo(ess.getUser(matchedPlayer));
|
||||
ess.getUser(matchedPlayer).setReplyTo(sender);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -15,40 +15,40 @@ public class Commandnear extends EssentialsCommand
|
||||
{
|
||||
super("near");
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
long radius = 200;
|
||||
User otherUser = null;
|
||||
|
||||
|
||||
if (args.length > 0)
|
||||
{
|
||||
try
|
||||
{
|
||||
otherUser = getPlayer(server, args, 0);
|
||||
radius = Long.parseLong(args[0]);
|
||||
}
|
||||
catch (Exception ex)
|
||||
catch (NumberFormatException e)
|
||||
{
|
||||
try
|
||||
{
|
||||
radius = Long.parseLong(args[0]);
|
||||
otherUser = getPlayer(server, args, 0);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
}
|
||||
}
|
||||
if (args.length > 1 && otherUser != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
radius = Long.parseLong(args[1]);
|
||||
}
|
||||
catch (NumberFormatException e)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
if (args.length > 1 && otherUser != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
radius = Long.parseLong(args[1]);
|
||||
}
|
||||
catch (NumberFormatException e)
|
||||
{
|
||||
}
|
||||
}
|
||||
if (otherUser == null || user.isAuthorized("essentials.near.others"))
|
||||
{
|
||||
user.sendMessage(_("nearbyPlayers", getLocal(server, otherUser == null ? user : otherUser, radius)));
|
||||
@@ -58,20 +58,15 @@ public class Commandnear extends EssentialsCommand
|
||||
user.sendMessage(_("noAccessCommand"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
|
||||
User otherUser = null;
|
||||
if (args.length > 0)
|
||||
{
|
||||
otherUser = getPlayer(server, args, 0);
|
||||
}
|
||||
else
|
||||
if (args.length == 0)
|
||||
{
|
||||
throw new NotEnoughArgumentsException();
|
||||
}
|
||||
final User otherUser = getPlayer(server, args, 0);
|
||||
long radius = 200;
|
||||
if (args.length > 1)
|
||||
{
|
||||
@@ -85,14 +80,14 @@ public class Commandnear extends EssentialsCommand
|
||||
}
|
||||
sender.sendMessage(_("nearbyPlayers", getLocal(server, otherUser, radius)));
|
||||
}
|
||||
|
||||
|
||||
private String getLocal(final Server server, final User user, final long radius)
|
||||
{
|
||||
final Location loc = user.getLocation();
|
||||
final World world = loc.getWorld();
|
||||
final StringBuilder output = new StringBuilder();
|
||||
final long radiusSquared = radius * radius;
|
||||
|
||||
|
||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||
{
|
||||
final User player = ess.getUser(onlinePlayer);
|
||||
@@ -103,7 +98,7 @@ public class Commandnear extends EssentialsCommand
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
final long delta = (long)playerLoc.distanceSquared(loc);
|
||||
if (delta < radiusSquared)
|
||||
{
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.earth2me.essentials.commands;
|
||||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.Util;
|
||||
import java.util.Locale;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@@ -65,9 +66,10 @@ public class Commandnick extends EssentialsCommand
|
||||
{
|
||||
if (user == null || user.isAuthorized("essentials.nick.color"))
|
||||
{
|
||||
return nick.replace('&', '\u00a7').replace("\u00a7\u00a7", "&");
|
||||
return nick.replace('&', '\u00a7').replaceAll("\u00a7+k", "");
|
||||
} else {
|
||||
return Util.stripColor(nick);
|
||||
}
|
||||
return nick;
|
||||
}
|
||||
|
||||
private void resetAllNicknames(final Server server)
|
||||
@@ -86,7 +88,7 @@ public class Commandnick extends EssentialsCommand
|
||||
|
||||
private void setNickname(final Server server, final User target, final String nick) throws Exception
|
||||
{
|
||||
if (nick.matches("[^a-zA-Z_0-9]"))
|
||||
if (!nick.matches("^[a-zA-Z_0-9\u00a7]+$"))
|
||||
{
|
||||
throw new Exception(_("nickNamesAlpha"));
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.earth2me.essentials.commands;
|
||||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
@@ -43,7 +44,7 @@ public class Commandnuke extends EssentialsCommand
|
||||
{
|
||||
continue;
|
||||
}
|
||||
player.sendMessage("May death rain upon them");
|
||||
player.sendMessage(_("nuke"));
|
||||
final Location loc = player.getLocation();
|
||||
final World world = loc.getWorld();
|
||||
for (int x = -10; x <= 10; x += 5)
|
||||
|
||||
@@ -21,6 +21,11 @@ public class Commandpay extends EssentialsCommand
|
||||
{
|
||||
throw new NotEnoughArgumentsException();
|
||||
}
|
||||
|
||||
if (args[0] == "")
|
||||
{
|
||||
throw new NotEnoughArgumentsException("You need to specify a player to pay.");
|
||||
}
|
||||
|
||||
double amount = Double.parseDouble(args[1].replaceAll("[^0-9\\.]", ""));
|
||||
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
package com.earth2me.essentials.commands;
|
||||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.Util;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
|
||||
public class Commandping extends EssentialsCommand
|
||||
@@ -13,8 +14,16 @@ public class Commandping extends EssentialsCommand
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(Server server, User player, String commandLabel, String[] args) throws Exception
|
||||
public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
player.sendMessage(_("pong"));
|
||||
if (args.length < 1)
|
||||
{
|
||||
|
||||
sender.sendMessage(_("pong"));
|
||||
}
|
||||
else
|
||||
{
|
||||
sender.sendMessage(Util.replaceColor(getFinalArg(args, 0)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import com.earth2me.essentials.Console;
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.IReplyTo;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.Util;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -24,13 +25,35 @@ public class Commandr extends EssentialsCommand
|
||||
throw new NotEnoughArgumentsException();
|
||||
}
|
||||
|
||||
final String message = getFinalArg(args, 0);
|
||||
final IReplyTo replyTo = sender instanceof Player ? ess.getUser((Player)sender) : Console.getConsoleReplyTo();
|
||||
final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
|
||||
String message = getFinalArg(args, 0);
|
||||
IReplyTo replyTo;
|
||||
String senderName;
|
||||
|
||||
if (sender instanceof Player)
|
||||
{
|
||||
User user = ess.getUser(sender);
|
||||
if (user.isAuthorized("essentials.msg.color"))
|
||||
{
|
||||
message = Util.replaceColor(message);
|
||||
}
|
||||
else
|
||||
{
|
||||
message = Util.stripColor(message);
|
||||
}
|
||||
replyTo = user;
|
||||
senderName = user.getDisplayName();
|
||||
}
|
||||
else
|
||||
{
|
||||
message = Util.replaceColor(message);
|
||||
replyTo = Console.getConsoleReplyTo();
|
||||
senderName = Console.NAME;
|
||||
}
|
||||
|
||||
final CommandSender target = replyTo.getReplyTo();
|
||||
final String targetName = target instanceof Player ? ((Player)target).getDisplayName() : Console.NAME;
|
||||
|
||||
if (target == null)
|
||||
if (target == null || ((target instanceof Player) && !((Player)target).isOnline()))
|
||||
{
|
||||
throw new Exception(_("foreverAlone"));
|
||||
}
|
||||
|
||||
@@ -80,7 +80,7 @@ public class Commandrepair extends EssentialsCommand
|
||||
private void repairItem(final ItemStack item) throws Exception
|
||||
{
|
||||
final Material material = Material.getMaterial(item.getTypeId());
|
||||
if (material.isBlock() || material.getMaxDurability() < 0)
|
||||
if (material.isBlock() || material.getMaxDurability() < 1)
|
||||
{
|
||||
throw new Exception(_("repairInvalidType"));
|
||||
}
|
||||
|
||||
@@ -29,6 +29,9 @@ public class Commandsethome extends EssentialsCommand
|
||||
{
|
||||
if (user.isAuthorized("essentials.sethome.multiple"))
|
||||
{
|
||||
if ("bed".equals(args[0].toLowerCase(Locale.ENGLISH))) {
|
||||
throw new NotEnoughArgumentsException();
|
||||
}
|
||||
if ((user.isAuthorized("essentials.sethome.multiple.unlimited")) || (user.getHomes().size() < ess.getSettings().getHomeLimit(user))
|
||||
|| (user.getHomes().contains(args[0].toLowerCase(Locale.ENGLISH))))
|
||||
{
|
||||
@@ -63,6 +66,9 @@ public class Commandsethome extends EssentialsCommand
|
||||
{
|
||||
name = "home";
|
||||
}
|
||||
if ("bed".equals(name.toLowerCase(Locale.ENGLISH))) {
|
||||
throw new NotEnoughArgumentsException();
|
||||
}
|
||||
usersHome.setHome(name, user.getLocation());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.earth2me.essentials.commands;
|
||||
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.Mob;
|
||||
import com.earth2me.essentials.Trade;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.Util;
|
||||
import java.util.Locale;
|
||||
@@ -9,6 +10,7 @@ import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.block.CreatureSpawner;
|
||||
import org.bukkit.entity.EntityType;
|
||||
|
||||
|
||||
public class Commandspawner extends EssentialsCommand
|
||||
@@ -47,11 +49,14 @@ public class Commandspawner extends EssentialsCommand
|
||||
{
|
||||
throw new Exception(_("unableToSpawnMob"));
|
||||
}
|
||||
if (!user.isAuthorized("essentials.spawner." + mob.name.toLowerCase()))
|
||||
if (!user.isAuthorized("essentials.spawner." + mob.name.toLowerCase(Locale.ENGLISH)))
|
||||
{
|
||||
throw new Exception(_("unableToSpawnMob"));
|
||||
}
|
||||
((CreatureSpawner)target.getBlock().getState()).setCreatureType(mob.getType());
|
||||
final Trade charge = new Trade("spawner-" + mob.name.toLowerCase(Locale.ENGLISH), ess);
|
||||
charge.isAffordableFor(user);
|
||||
((CreatureSpawner)target.getBlock().getState()).setSpawnedType(mob.getType());
|
||||
charge.charge(user);
|
||||
user.sendMessage(_("setSpawner", mob.name));
|
||||
}
|
||||
catch (Throwable ex)
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.Util;
|
||||
import java.util.Locale;
|
||||
import java.util.Random;
|
||||
import java.util.Set;
|
||||
import org.bukkit.DyeColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Server;
|
||||
@@ -26,7 +27,19 @@ public class Commandspawnmob extends EssentialsCommand
|
||||
{
|
||||
if (args.length < 1)
|
||||
{
|
||||
throw new NotEnoughArgumentsException(_("mobsAvailable", Util.joinList(Mob.getMobList())));
|
||||
Set<String> availableList = Mob.getMobList();
|
||||
for (String mob : availableList)
|
||||
{
|
||||
if (!user.isAuthorized("essentials.spawnmob." + mob.toLowerCase()))
|
||||
{
|
||||
availableList.remove(mob);
|
||||
}
|
||||
}
|
||||
if (availableList.isEmpty())
|
||||
{
|
||||
availableList.add(_("none"));
|
||||
}
|
||||
throw new NotEnoughArgumentsException(_("mobsAvailable", Util.joinList(availableList)));
|
||||
}
|
||||
|
||||
|
||||
@@ -79,7 +92,7 @@ public class Commandspawnmob extends EssentialsCommand
|
||||
User otherUser = null;
|
||||
if (args.length >= 3)
|
||||
{
|
||||
otherUser = getPlayer(ess.getServer(), args, 2);
|
||||
otherUser = getPlayer(ess.getServer(), args, 2);
|
||||
}
|
||||
final Location loc = (otherUser == null) ? block.getLocation() : otherUser.getLocation();
|
||||
final Location sloc = Util.getSafeDestination(loc);
|
||||
@@ -184,9 +197,9 @@ public class Commandspawnmob extends EssentialsCommand
|
||||
}
|
||||
}
|
||||
|
||||
private void changeMobData(final CreatureType type, final Entity spawned, final String data, final User user) throws Exception
|
||||
private void changeMobData(final EntityType type, final Entity spawned, final String data, final User user) throws Exception
|
||||
{
|
||||
if (type == CreatureType.SLIME || type == CreatureType.MAGMA_CUBE)
|
||||
if (type == EntityType.SLIME || type == EntityType.MAGMA_CUBE)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -197,18 +210,18 @@ public class Commandspawnmob extends EssentialsCommand
|
||||
throw new Exception(_("slimeMalformedSize"), e);
|
||||
}
|
||||
}
|
||||
if ((type == CreatureType.SHEEP
|
||||
|| type == CreatureType.COW
|
||||
|| type == CreatureType.MUSHROOM_COW
|
||||
|| type == CreatureType.CHICKEN
|
||||
|| type == CreatureType.PIG
|
||||
|| type == CreatureType.WOLF)
|
||||
if ((type == EntityType.SHEEP
|
||||
|| type == EntityType.COW
|
||||
|| type == EntityType.MUSHROOM_COW
|
||||
|| type == EntityType.CHICKEN
|
||||
|| type == EntityType.PIG
|
||||
|| type == EntityType.WOLF)
|
||||
&& data.equalsIgnoreCase("baby"))
|
||||
{
|
||||
((Animals)spawned).setAge(-24000);
|
||||
return;
|
||||
}
|
||||
if (type == CreatureType.SHEEP)
|
||||
if (type == EntityType.SHEEP)
|
||||
{
|
||||
if (data.toLowerCase(Locale.ENGLISH).contains("baby"))
|
||||
{
|
||||
@@ -233,7 +246,7 @@ public class Commandspawnmob extends EssentialsCommand
|
||||
throw new Exception(_("sheepMalformedColor"), e);
|
||||
}
|
||||
}
|
||||
if (type == CreatureType.WOLF
|
||||
if (type == EntityType.WOLF
|
||||
&& data.toLowerCase(Locale.ENGLISH).startsWith("tamed"))
|
||||
{
|
||||
final Wolf wolf = ((Wolf)spawned);
|
||||
@@ -245,7 +258,7 @@ public class Commandspawnmob extends EssentialsCommand
|
||||
((Animals)spawned).setAge(-24000);
|
||||
}
|
||||
}
|
||||
if (type == CreatureType.WOLF
|
||||
if (type == EntityType.WOLF
|
||||
&& data.toLowerCase(Locale.ENGLISH).startsWith("angry"))
|
||||
{
|
||||
((Wolf)spawned).setAngry(true);
|
||||
@@ -254,7 +267,7 @@ public class Commandspawnmob extends EssentialsCommand
|
||||
((Animals)spawned).setAge(-24000);
|
||||
}
|
||||
}
|
||||
if (type == CreatureType.CREEPER && data.equalsIgnoreCase("powered"))
|
||||
if (type == EntityType.CREEPER && data.equalsIgnoreCase("powered"))
|
||||
{
|
||||
((Creeper)spawned).setPowered(true);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.earth2me.essentials.commands;
|
||||
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.Util;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.PluginCommand;
|
||||
@@ -30,7 +31,13 @@ public class Commandsudo extends EssentialsCommand
|
||||
}
|
||||
|
||||
//TODO: Translate this.
|
||||
sender.sendMessage("Running the command as " + user.getDisplayName());
|
||||
if (user.isAuthorized("essentials.sudo.exempt"))
|
||||
{
|
||||
throw new Exception("You cannot sudo this user");
|
||||
}
|
||||
|
||||
//TODO: Translate this.
|
||||
sender.sendMessage("Forcing " + user.getDisplayName() + " to run: /" + command + " " + getFinalArg(arguments, 0));
|
||||
|
||||
final PluginCommand execCommand = ess.getServer().getPluginCommand(command);
|
||||
if (execCommand != null)
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.earth2me.essentials.commands;
|
||||
import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.User;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
|
||||
|
||||
public class Commandsuicide extends EssentialsCommand
|
||||
@@ -15,9 +16,11 @@ public class Commandsuicide extends EssentialsCommand
|
||||
@Override
|
||||
public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
|
||||
{
|
||||
EntityDamageEvent ede = new EntityDamageEvent(user.getBase(), EntityDamageEvent.DamageCause.SUICIDE, 1000);
|
||||
server.getPluginManager().callEvent(ede);
|
||||
user.damage(1000);
|
||||
user.setHealth(0);
|
||||
user.sendMessage(_("suicideMessage"));
|
||||
ess.broadcastMessage(user,
|
||||
_("suicideSuccess", user.getDisplayName()));
|
||||
ess.broadcastMessage(user,_("suicideSuccess", user.getDisplayName()));
|
||||
}
|
||||
}
|
||||
@@ -22,7 +22,14 @@ public class Commandtpaccept extends EssentialsCommand
|
||||
final User target = user.getTeleportRequest();
|
||||
if (target == null
|
||||
|| target.getBase() instanceof OfflinePlayer
|
||||
|| (user.isTeleportRequestHere() && !target.isAuthorized("essentials.tpahere")))
|
||||
|| (user.isTeleportRequestHere() && !target.isAuthorized("essentials.tpahere"))
|
||||
|| (!user.isTeleportRequestHere() && !target.isAuthorized("essentials.tpa") && !target.isAuthorized("essentials.tpaall"))
|
||||
)
|
||||
{
|
||||
throw new Exception(_("noPendingRequest"));
|
||||
}
|
||||
|
||||
if (args.length > 0 && !target.getName().contains(args[0]))
|
||||
{
|
||||
throw new Exception(_("noPendingRequest"));
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.earth2me.essentials.Warps;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||
@@ -44,10 +45,10 @@ public class Commandwarp extends EssentialsCommand
|
||||
{
|
||||
throw new Exception(_("playerNotFound"));
|
||||
}
|
||||
warpUser(otherUser, args[0]);
|
||||
warpUser(user, otherUser, args[0]);
|
||||
throw new NoChargeException();
|
||||
}
|
||||
warpUser(user, args[0]);
|
||||
warpUser(user, user, args[0]);
|
||||
throw new NoChargeException();
|
||||
}
|
||||
}
|
||||
@@ -65,7 +66,7 @@ public class Commandwarp extends EssentialsCommand
|
||||
{
|
||||
throw new Exception(_("playerNotFound"));
|
||||
}
|
||||
warpUser(otherUser, args[0]);
|
||||
otherUser.getTeleport().warp(args[0], null, TeleportCause.COMMAND);
|
||||
throw new NoChargeException();
|
||||
|
||||
}
|
||||
@@ -112,17 +113,12 @@ public class Commandwarp extends EssentialsCommand
|
||||
}
|
||||
}
|
||||
|
||||
private void warpUser(final User user, final String name) throws Exception
|
||||
private void warpUser(final User owner, final User user, final String name) throws Exception
|
||||
{
|
||||
final Trade charge = new Trade(this.getName(), ess);
|
||||
charge.isAffordableFor(user);
|
||||
if (ess.getSettings().getPerWarpPermission())
|
||||
final Trade charge = new Trade("warp-" + name.toLowerCase(Locale.ENGLISH).replace('_', '-'), ess);
|
||||
charge.isAffordableFor(owner);
|
||||
if (ess.getSettings().getPerWarpPermission() && !owner.isAuthorized("essentials.warp." + name))
|
||||
{
|
||||
if (user.isAuthorized("essentials.warp." + name))
|
||||
{
|
||||
user.getTeleport().warp(name, charge, TeleportCause.COMMAND);
|
||||
return;
|
||||
}
|
||||
throw new Exception(_("warpUsePermission"));
|
||||
}
|
||||
user.getTeleport().warp(name, charge, TeleportCause.COMMAND);
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
package com.earth2me.essentials.craftbukkit;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.ListIterator;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.HumanEntity;
|
||||
import org.bukkit.event.inventory.InventoryType;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.InventoryHolder;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
|
||||
@@ -187,4 +192,34 @@ public class FakeInventory implements Inventory
|
||||
items[i] = null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<HumanEntity> getViewers()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTitle()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public InventoryType getType()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public InventoryHolder getHolder()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ListIterator<ItemStack> iterator()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
package com.earth2me.essentials.craftbukkit;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import org.bukkit.*;
|
||||
import org.bukkit.block.Biome;
|
||||
@@ -10,6 +12,8 @@ import org.bukkit.entity.*;
|
||||
import org.bukkit.generator.BlockPopulator;
|
||||
import org.bukkit.generator.ChunkGenerator;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.metadata.MetadataValue;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
|
||||
@@ -228,12 +232,6 @@ public class FakeWorld implements World
|
||||
return name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getId()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Location getSpawnLocation()
|
||||
{
|
||||
@@ -521,4 +519,112 @@ public class FakeWorld implements World
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends Entity> Collection<T> getEntitiesByClass(Class<T>... types)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public WorldType getWorldType()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendPluginMessage(Plugin plugin, String string, byte[] bytes)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getListeningPluginChannels()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canGenerateStructures()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getTicksPerAnimalSpawns()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTicksPerAnimalSpawns(int i)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getTicksPerMonsterSpawns()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTicksPerMonsterSpawns(int i)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends Entity> Collection<T> getEntitiesByClass(Class<T> type)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Entity> getEntitiesByClasses(Class<?>... types)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public LivingEntity spawnCreature(Location arg0, EntityType arg1)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> void playEffect(Location lctn, Effect effect, T t)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> void playEffect(Location lctn, Effect effect, T t, int i)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setMetadata(String string, MetadataValue mv)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MetadataValue> getMetadata(String string)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasMetadata(String string)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeMetadata(String string, Plugin plugin)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
}
|
||||
@@ -1,17 +1,12 @@
|
||||
package com.earth2me.essentials.craftbukkit;
|
||||
|
||||
import com.earth2me.essentials.craftbukkit.FakeInventory;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Item;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
/*
|
||||
* This class can be removed when
|
||||
* https://github.com/Bukkit/CraftBukkit/pull/193
|
||||
* is accepted to CraftBukkit
|
||||
* This class can be removed when https://github.com/Bukkit/CraftBukkit/pull/193 is accepted to CraftBukkit
|
||||
*/
|
||||
|
||||
public final class InventoryWorkaround
|
||||
@@ -47,7 +42,7 @@ public final class InventoryWorkaround
|
||||
{
|
||||
return firstPartial(cinventory, item, forceDurability, item.getType().getMaxStackSize());
|
||||
}
|
||||
|
||||
|
||||
public static int firstPartial(final Inventory cinventory, final ItemStack item, final boolean forceDurability, final int maxAmount)
|
||||
{
|
||||
if (item == null)
|
||||
@@ -93,10 +88,9 @@ public final class InventoryWorkaround
|
||||
{
|
||||
final Map<Integer, ItemStack> leftover = new HashMap<Integer, ItemStack>();
|
||||
|
||||
/* TODO: some optimization
|
||||
* - Create a 'firstPartial' with a 'fromIndex'
|
||||
* - Record the lastPartial per Material
|
||||
* - Cache firstEmpty result
|
||||
/*
|
||||
* TODO: some optimization - Create a 'firstPartial' with a 'fromIndex' - Record the lastPartial per Material -
|
||||
* Cache firstEmpty result
|
||||
*/
|
||||
|
||||
// combine items
|
||||
@@ -175,7 +169,7 @@ public final class InventoryWorkaround
|
||||
|
||||
final int amount = item.getAmount();
|
||||
final int partialAmount = partialItem.getAmount();
|
||||
|
||||
|
||||
// Check if it fully fits
|
||||
if (amount + partialAmount <= maxAmount)
|
||||
{
|
||||
@@ -325,25 +319,4 @@ public final class InventoryWorkaround
|
||||
}
|
||||
return leftover.isEmpty();
|
||||
}
|
||||
|
||||
public static Item[] dropItem(final Location loc, final ItemStack itm)
|
||||
{
|
||||
final int maxStackSize = itm.getType().getMaxStackSize();
|
||||
final int stacks = itm.getAmount() / maxStackSize;
|
||||
final int leftover = itm.getAmount() % maxStackSize;
|
||||
final Item[] itemStacks = new Item[stacks + (leftover > 0 ? 1 : 0)];
|
||||
for (int i = 0; i < stacks; i++)
|
||||
{
|
||||
final ItemStack stack = itm.clone();
|
||||
stack.setAmount(maxStackSize);
|
||||
itemStacks[i] = loc.getWorld().dropItem(loc, stack);
|
||||
}
|
||||
if (leftover > 0)
|
||||
{
|
||||
final ItemStack stack = itm.clone();
|
||||
stack.setAmount(leftover);
|
||||
itemStacks[stacks] = loc.getWorld().dropItem(loc, stack);
|
||||
}
|
||||
return itemStacks;
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
package com.earth2me.essentials.craftbukkit;
|
||||
|
||||
import net.minecraft.server.EntityPlayer;
|
||||
import org.bukkit.craftbukkit.entity.CraftPlayer;
|
||||
import org.bukkit.event.player.PlayerListener;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||
|
||||
|
||||
public class ItemDupeFix extends PlayerListener
|
||||
{
|
||||
@Override
|
||||
public void onPlayerTeleport(final PlayerTeleportEvent event)
|
||||
{
|
||||
if (event.isCancelled())
|
||||
{
|
||||
return;
|
||||
}
|
||||
final CraftPlayer player = (CraftPlayer)event.getPlayer();
|
||||
final EntityPlayer entity = player.getHandle();
|
||||
if (entity.activeContainer != entity.defaultContainer)
|
||||
{
|
||||
entity.closeInventory();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
package com.earth2me.essentials.craftbukkit;
|
||||
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import net.minecraft.server.ChunkCoordinates;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.craftbukkit.entity.CraftPlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
||||
public class SetBed
|
||||
{
|
||||
public static void setBed(final Player player, final Block block)
|
||||
{
|
||||
try
|
||||
{
|
||||
final CraftPlayer cplayer = (CraftPlayer)player;
|
||||
cplayer.getHandle().a(new ChunkCoordinates(block.getX(), block.getY(), block.getZ()));
|
||||
}
|
||||
catch (Throwable ex)
|
||||
{
|
||||
Logger.getLogger("Minecraft").log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
package com.earth2me.essentials.craftbukkit;
|
||||
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import net.minecraft.server.EntityPlayer;
|
||||
import net.minecraft.server.IInventory;
|
||||
import net.minecraft.server.PlayerInventory;
|
||||
import org.bukkit.craftbukkit.entity.CraftPlayer;
|
||||
import org.bukkit.craftbukkit.inventory.CraftInventoryPlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
|
||||
public class ShowInventory
|
||||
{
|
||||
public static void showEmptyInventory(final Player player)
|
||||
{
|
||||
try
|
||||
{
|
||||
final EntityPlayer entityPlayer = ((CraftPlayer)player).getHandle();
|
||||
final CraftInventoryPlayer inv = new CraftInventoryPlayer(new PlayerInventory(((CraftPlayer)player).getHandle()));
|
||||
inv.clear();
|
||||
entityPlayer.a((IInventory)inv.getInventory());
|
||||
}
|
||||
catch (Throwable ex)
|
||||
{
|
||||
Logger.getLogger("Minecraft").log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
|
||||
public static void showFilledInventory(final Player player, final ItemStack stack)
|
||||
{
|
||||
try
|
||||
{
|
||||
final EntityPlayer entityPlayer = ((CraftPlayer)player).getHandle();
|
||||
final CraftInventoryPlayer inv = new CraftInventoryPlayer(new PlayerInventory(((CraftPlayer)player).getHandle()));
|
||||
inv.clear();
|
||||
InventoryWorkaround.addItem(inv, true, stack);
|
||||
entityPlayer.a((IInventory)inv.getInventory());
|
||||
}
|
||||
catch (Throwable ex)
|
||||
{
|
||||
Logger.getLogger("Minecraft").log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
package com.earth2me.essentials.perm;
|
||||
|
||||
import de.bananaco.bpermissions.api.ApiLayer;
|
||||
import de.bananaco.bpermissions.api.World;
|
||||
import de.bananaco.bpermissions.api.WorldManager;
|
||||
import de.bananaco.bpermissions.api.util.Calculable;
|
||||
import de.bananaco.bpermissions.api.util.CalculableType;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
||||
public class BPermissions2Handler extends SuperpermsHandler
|
||||
{
|
||||
public BPermissions2Handler()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getGroup(final Player base)
|
||||
{
|
||||
final List<String> groups = getGroups(base);
|
||||
if (groups == null || groups.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return groups.get(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getGroups(final Player base)
|
||||
{
|
||||
final String[] groups = ApiLayer.getGroups(base.getWorld().getName(), CalculableType.USER, base.getName());
|
||||
return Arrays.asList(groups);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean inGroup(final Player base, final String group)
|
||||
{
|
||||
return ApiLayer.hasGroup(base.getWorld().getName(), CalculableType.USER, base.getName(), group);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canBuild(final Player base, final String group)
|
||||
{
|
||||
return hasPermission(base, "essentials.build") || hasPermission(base, "bPermissions.build");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPrefix(final Player base)
|
||||
{
|
||||
return ApiLayer.getValue(base.getWorld().getName(), CalculableType.USER, base.getName(), "prefix");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSuffix(final Player base)
|
||||
{
|
||||
return ApiLayer.getValue(base.getWorld().getName(), CalculableType.USER, base.getName(), "suffix");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.earth2me.essentials.perm;
|
||||
|
||||
import com.earth2me.essentials.Util;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
@@ -111,17 +112,6 @@ public class PermissionsHandler implements IPermissionsHandler
|
||||
return;
|
||||
}
|
||||
|
||||
final Plugin bPermPlugin = pluginManager.getPlugin("bPermissions");
|
||||
if (bPermPlugin != null && bPermPlugin.isEnabled())
|
||||
{
|
||||
if (!(handler instanceof BPermissionsHandler))
|
||||
{
|
||||
LOGGER.log(Level.INFO, "Essentials: Using bPermissions based permissions.");
|
||||
handler = new BPermissionsHandler();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
final Plugin GMplugin = pluginManager.getPlugin("GroupManager");
|
||||
if (GMplugin != null && GMplugin.isEnabled())
|
||||
{
|
||||
@@ -144,6 +134,38 @@ public class PermissionsHandler implements IPermissionsHandler
|
||||
return;
|
||||
}
|
||||
|
||||
final Plugin privPlugin = pluginManager.getPlugin("Privileges");
|
||||
if (privPlugin != null && privPlugin.isEnabled())
|
||||
{
|
||||
if (!(handler instanceof PrivilegesHandler))
|
||||
{
|
||||
LOGGER.log(Level.INFO, "Essentials: Using Privileges based permissions.");
|
||||
handler = new PrivilegesHandler(privPlugin);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
final Plugin bPermPlugin = pluginManager.getPlugin("bPermissions");
|
||||
if (bPermPlugin != null && bPermPlugin.isEnabled())
|
||||
{
|
||||
final String bVer = bPermPlugin.getDescription().getVersion().replace(".", "");
|
||||
if (Util.isInt(bVer) && Integer.parseInt(bVer) < 284)
|
||||
{
|
||||
if (!(handler instanceof BPermissionsHandler))
|
||||
{
|
||||
LOGGER.log(Level.INFO, "Essentials: Using bPermissions based permissions.");
|
||||
handler = new BPermissionsHandler();
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (!(handler instanceof BPermissions2Handler))
|
||||
{
|
||||
LOGGER.log(Level.INFO, "Essentials: Using bPermissions2 based permissions.");
|
||||
handler = new BPermissions2Handler();
|
||||
}
|
||||
return;
|
||||
|
||||
}
|
||||
final Plugin permPlugin = pluginManager.getPlugin("Permissions");
|
||||
if (permPlugin != null && permPlugin.isEnabled())
|
||||
{
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
package com.earth2me.essentials.perm;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import net.krinsoft.privileges.Privileges;
|
||||
import net.krinsoft.privileges.groups.Group;
|
||||
import net.krinsoft.privileges.groups.GroupManager;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
public class PrivilegesHandler extends SuperpermsHandler
|
||||
{
|
||||
private final transient Privileges plugin;
|
||||
private final GroupManager manager;
|
||||
|
||||
public PrivilegesHandler(final Plugin plugin)
|
||||
{
|
||||
this.plugin = (Privileges) plugin;
|
||||
this.manager = this.plugin.getGroupManager();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getGroup(final Player base)
|
||||
{
|
||||
Group group = manager.getGroup(base);
|
||||
if (group == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return group.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getGroups(final Player base)
|
||||
{
|
||||
Group group = manager.getGroup(base);
|
||||
if (group == null)
|
||||
{
|
||||
return new ArrayList<String>();
|
||||
}
|
||||
return group.getGroupTree();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean inGroup(final Player base, final String group)
|
||||
{
|
||||
Group pGroup = manager.getGroup(base);
|
||||
if (pGroup == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return pGroup.isMemberOf(group);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canBuild(Player base, String group)
|
||||
{
|
||||
return base.hasPermission("essentials.build") || base.hasPermission("privileges.build");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -27,7 +27,7 @@ public class SuperpermsHandler implements IPermissionsHandler
|
||||
@Override
|
||||
public boolean inGroup(final Player base, final String group)
|
||||
{
|
||||
return false;
|
||||
return hasPermission(base, "group." + group);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -7,23 +7,23 @@ import org.bukkit.plugin.PluginManager;
|
||||
|
||||
|
||||
/**
|
||||
* The <code>Methods</code> initializes Methods that utilize the Method interface
|
||||
* based on a "first come, first served" basis.
|
||||
* The
|
||||
* <code>Methods</code> initializes Methods that utilize the Method interface based on a "first come, first served"
|
||||
* basis.
|
||||
*
|
||||
* Allowing you to check whether a payment method exists or not.
|
||||
*
|
||||
* Methods also allows you to set a preferred method of payment before it captures
|
||||
* payment plugins in the initialization process.
|
||||
* Methods also allows you to set a preferred method of payment before it captures payment plugins in the initialization
|
||||
* process.
|
||||
*
|
||||
* in <code>bukkit.yml</code>:
|
||||
* <blockquote><pre>
|
||||
* in
|
||||
* <code>bukkit.yml</code>: <blockquote><pre>
|
||||
* economy:
|
||||
* preferred: "iConomy"
|
||||
* </pre></blockquote>
|
||||
*
|
||||
* @author: Nijikokun <nijikokun@shortmail.com> (@nijikokun)
|
||||
* @copyright: Copyright (C) 2011
|
||||
* @license: AOL license <http://aol.nexua.org>
|
||||
* @author: Nijikokun <nijikokun@shortmail.com> (@nijikokun) @copyright: Copyright (C) 2011 @license: AOL license
|
||||
* <http://aol.nexua.org>
|
||||
*/
|
||||
public class Methods
|
||||
{
|
||||
@@ -52,6 +52,7 @@ public class Methods
|
||||
addMethod("BOSEconomy", new com.earth2me.essentials.register.payment.methods.BOSE7());
|
||||
addMethod("Currency", new com.earth2me.essentials.register.payment.methods.MCUR());
|
||||
Dependencies.add("MultiCurrency");
|
||||
addMethod("Vault", new com.earth2me.essentials.register.payment.methods.VaultEco());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -78,6 +79,7 @@ public class Methods
|
||||
|
||||
/**
|
||||
* Use to get version of Register plugin
|
||||
*
|
||||
* @return version
|
||||
*/
|
||||
public static String getVersion()
|
||||
@@ -86,10 +88,11 @@ public class Methods
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an array of payment method names that have been loaded
|
||||
* through the <code>_init</code> method.
|
||||
* Returns an array of payment method names that have been loaded through the
|
||||
* <code>_init</code> method.
|
||||
*
|
||||
* @return <code>Set<String></code> - Array of payment methods that are loaded.
|
||||
* @return
|
||||
* <code>Set<String></code> - Array of payment methods that are loaded.
|
||||
* @see #setMethod(org.bukkit.plugin.Plugin)
|
||||
*/
|
||||
public static Set<String> getDependencies()
|
||||
@@ -98,8 +101,8 @@ public class Methods
|
||||
}
|
||||
|
||||
/**
|
||||
* Interprets Plugin class data to verify whether it is compatible with an existing payment
|
||||
* method to use for payments and other various economic activity.
|
||||
* Interprets Plugin class data to verify whether it is compatible with an existing payment method to use for
|
||||
* payments and other various economic activity.
|
||||
*
|
||||
* @param plugin Plugin data from bukkit, Internal Class file.
|
||||
* @return Method <em>or</em> Null
|
||||
@@ -127,7 +130,8 @@ public class Methods
|
||||
/**
|
||||
* Verifies if Register has set a payment method for usage yet.
|
||||
*
|
||||
* @return <code>boolean</code>
|
||||
* @return
|
||||
* <code>boolean</code>
|
||||
* @see #setMethod(org.bukkit.plugin.Plugin)
|
||||
* @see #checkDisabled(org.bukkit.plugin.Plugin)
|
||||
*/
|
||||
@@ -137,11 +141,11 @@ public class Methods
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks Plugin Class against a multitude of checks to verify it's usability
|
||||
* as a payment method.
|
||||
* Checks Plugin Class against a multitude of checks to verify it's usability as a payment method.
|
||||
*
|
||||
* @param <code>PluginManager</code> the plugin manager for the server
|
||||
* @return <code>boolean</code> True on success, False on failure.
|
||||
* @return
|
||||
* <code>boolean</code> True on success, False on failure.
|
||||
*/
|
||||
public static boolean setMethod(PluginManager manager)
|
||||
{
|
||||
@@ -242,7 +246,8 @@ public class Methods
|
||||
/**
|
||||
* Sets the preferred economy
|
||||
*
|
||||
* @return <code>boolean</code>
|
||||
* @return
|
||||
* <code>boolean</code>
|
||||
*/
|
||||
public static boolean setPreferred(String check)
|
||||
{
|
||||
@@ -258,7 +263,9 @@ public class Methods
|
||||
/**
|
||||
* Grab the existing and initialized (hopefully) Method Class.
|
||||
*
|
||||
* @return <code>Method</code> <em>or</em> <code>Null</code>
|
||||
* @return
|
||||
* <code>Method</code> <em>or</em>
|
||||
* <code>Null</code>
|
||||
*/
|
||||
public static Method getMethod()
|
||||
{
|
||||
@@ -266,11 +273,11 @@ public class Methods
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify is a plugin is disabled, only does this if we there is an existing payment
|
||||
* method initialized in Register.
|
||||
* Verify is a plugin is disabled, only does this if we there is an existing payment method initialized in Register.
|
||||
*
|
||||
* @param method Plugin data from bukkit, Internal Class file.
|
||||
* @return <code>boolean</code>
|
||||
* @return
|
||||
* <code>boolean</code>
|
||||
*/
|
||||
public static boolean checkDisabled(Plugin method)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,339 @@
|
||||
package com.earth2me.essentials.register.payment.methods;
|
||||
|
||||
import net.milkbowl.vault.Vault;
|
||||
import net.milkbowl.vault.economy.Economy;
|
||||
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.RegisteredServiceProvider;
|
||||
|
||||
import com.earth2me.essentials.register.payment.Method;
|
||||
|
||||
|
||||
public class VaultEco implements Method
|
||||
{
|
||||
private Vault vault;
|
||||
private Economy economy;
|
||||
|
||||
@Override
|
||||
public Vault getPlugin()
|
||||
{
|
||||
return this.vault;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean createAccount(String name, Double amount)
|
||||
{
|
||||
if (hasAccount(name))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName()
|
||||
{
|
||||
|
||||
return this.vault.getDescription().getName().concat(" - Economy: ").concat(economy == null ? "NoEco" : economy.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getVersion()
|
||||
{
|
||||
return this.vault.getDescription().getVersion();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int fractionalDigits()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String format(double amount)
|
||||
{
|
||||
return this.economy.format(amount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasBanks()
|
||||
{
|
||||
return this.economy.hasBankSupport();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasBank(String bank)
|
||||
{
|
||||
return this.economy.getBanks().contains(bank);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasAccount(String name)
|
||||
{
|
||||
return this.economy.hasAccount(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasBankAccount(String bank, String name)
|
||||
{
|
||||
return this.economy.isBankOwner(bank, name).transactionSuccess()
|
||||
|| this.economy.isBankMember(bank, name).transactionSuccess();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean createAccount(String name)
|
||||
{
|
||||
return this.economy.createBank(name, "").transactionSuccess();
|
||||
}
|
||||
|
||||
public boolean createAccount(String name, double balance)
|
||||
{
|
||||
if (!this.economy.createBank(name, "").transactionSuccess())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return this.economy.bankDeposit(name, balance).transactionSuccess();
|
||||
}
|
||||
|
||||
@Override
|
||||
public MethodAccount getAccount(String name)
|
||||
{
|
||||
if (!hasAccount(name))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return new VaultAccount(name, this.economy);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MethodBankAccount getBankAccount(String bank, String name)
|
||||
{
|
||||
if (!hasBankAccount(bank, name))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return new VaultBankAccount(bank, economy);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCompatible(Plugin plugin)
|
||||
{
|
||||
try
|
||||
{
|
||||
RegisteredServiceProvider<Economy> ecoPlugin = plugin.getServer().getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class);
|
||||
return plugin instanceof Vault && ecoPlugin != null && !ecoPlugin.getProvider().getName().equals("Essentials Economy");
|
||||
}
|
||||
catch (LinkageError e)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPlugin(Plugin plugin)
|
||||
{
|
||||
this.vault = (Vault)plugin;
|
||||
RegisteredServiceProvider<Economy> economyProvider = this.vault.getServer().getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class);
|
||||
if (economyProvider != null)
|
||||
{
|
||||
this.economy = economyProvider.getProvider();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public class VaultAccount implements MethodAccount
|
||||
{
|
||||
private final String name;
|
||||
private final Economy economy;
|
||||
|
||||
public VaultAccount(String name, Economy economy)
|
||||
{
|
||||
this.name = name;
|
||||
this.economy = economy;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double balance()
|
||||
{
|
||||
return this.economy.getBalance(this.name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean set(double amount)
|
||||
{
|
||||
if (!this.economy.withdrawPlayer(this.name, this.balance()).transactionSuccess())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (amount == 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return this.economy.depositPlayer(this.name, amount).transactionSuccess();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean add(double amount)
|
||||
{
|
||||
return this.economy.depositPlayer(this.name, amount).transactionSuccess();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean subtract(double amount)
|
||||
{
|
||||
return this.economy.withdrawPlayer(this.name, amount).transactionSuccess();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean multiply(double amount)
|
||||
{
|
||||
double balance = this.balance();
|
||||
return this.set(balance * amount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean divide(double amount)
|
||||
{
|
||||
double balance = this.balance();
|
||||
return this.set(balance / amount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasEnough(double amount)
|
||||
{
|
||||
return (this.balance() >= amount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasOver(double amount)
|
||||
{
|
||||
return (this.balance() > amount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasUnder(double amount)
|
||||
{
|
||||
return (this.balance() < amount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isNegative()
|
||||
{
|
||||
return (this.balance() < 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean remove()
|
||||
{
|
||||
return this.set(0.0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public class VaultBankAccount implements MethodBankAccount
|
||||
{
|
||||
private final String bank;
|
||||
private final Economy economy;
|
||||
|
||||
public VaultBankAccount(String bank, Economy economy)
|
||||
{
|
||||
this.bank = bank;
|
||||
this.economy = economy;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getBankName()
|
||||
{
|
||||
return this.bank;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getBankId()
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double balance()
|
||||
{
|
||||
return this.economy.bankBalance(this.bank).balance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean set(double amount)
|
||||
{
|
||||
if (!this.economy.bankWithdraw(this.bank, this.balance()).transactionSuccess())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (amount == 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return this.economy.bankDeposit(this.bank, amount).transactionSuccess();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean add(double amount)
|
||||
{
|
||||
return this.economy.bankDeposit(this.bank, amount).transactionSuccess();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean subtract(double amount)
|
||||
{
|
||||
return this.economy.bankWithdraw(this.bank, amount).transactionSuccess();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean multiply(double amount)
|
||||
{
|
||||
double balance = this.balance();
|
||||
return this.set(balance * amount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean divide(double amount)
|
||||
{
|
||||
double balance = this.balance();
|
||||
return this.set(balance / amount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasEnough(double amount)
|
||||
{
|
||||
return (this.balance() >= amount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasOver(double amount)
|
||||
{
|
||||
return (this.balance() > amount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasUnder(double amount)
|
||||
{
|
||||
return (this.balance() < amount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isNegative()
|
||||
{
|
||||
return (this.balance() < 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean remove()
|
||||
{
|
||||
return this.set(0.0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8,10 +8,13 @@ import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.Sign;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.*;
|
||||
|
||||
|
||||
public class SignBlockListener extends BlockListener
|
||||
public class SignBlockListener implements Listener
|
||||
{
|
||||
private final transient IEssentials ess;
|
||||
private final static Logger LOGGER = Logger.getLogger("Minecraft");
|
||||
@@ -21,7 +24,7 @@ public class SignBlockListener extends BlockListener
|
||||
this.ess = ess;
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onBlockBreak(final BlockBreakEvent event)
|
||||
{
|
||||
if (event.isCancelled() || ess.getSettings().areSignsDisabled())
|
||||
@@ -41,9 +44,9 @@ public class SignBlockListener extends BlockListener
|
||||
if (mat == Material.SIGN_POST.getId() || mat == Material.WALL_SIGN.getId())
|
||||
{
|
||||
final Sign csign = (Sign)block.getState();
|
||||
for (Signs signs : Signs.values())
|
||||
|
||||
for (EssentialsSign sign : ess.getSettings().enabledSigns())
|
||||
{
|
||||
final EssentialsSign sign = signs.getSign();
|
||||
if (csign.getLine(0).equalsIgnoreCase(sign.getSuccessName())
|
||||
&& !sign.onSignBreak(block, player, ess))
|
||||
{
|
||||
@@ -59,9 +62,8 @@ public class SignBlockListener extends BlockListener
|
||||
LOGGER.log(Level.INFO, "Prevented that a block was broken next to a sign.");
|
||||
return true;
|
||||
}
|
||||
for (Signs signs : Signs.values())
|
||||
for (EssentialsSign sign : ess.getSettings().enabledSigns())
|
||||
{
|
||||
final EssentialsSign sign = signs.getSign();
|
||||
if (sign.getBlocks().contains(block.getType())
|
||||
&& !sign.onBlockBreak(block, player, ess))
|
||||
{
|
||||
@@ -73,7 +75,7 @@ public class SignBlockListener extends BlockListener
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onSignChange(final SignChangeEvent event)
|
||||
{
|
||||
if (event.isCancelled() || ess.getSettings().areSignsDisabled())
|
||||
@@ -105,7 +107,7 @@ public class SignBlockListener extends BlockListener
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onBlockPlace(final BlockPlaceEvent event)
|
||||
{
|
||||
if (event.isCancelled() || ess.getSettings().areSignsDisabled())
|
||||
@@ -139,7 +141,7 @@ public class SignBlockListener extends BlockListener
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onBlockBurn(final BlockBurnEvent event)
|
||||
{
|
||||
if (event.isCancelled() || ess.getSettings().areSignsDisabled())
|
||||
@@ -156,9 +158,8 @@ public class SignBlockListener extends BlockListener
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
for (Signs signs : Signs.values())
|
||||
for (EssentialsSign sign : ess.getSettings().enabledSigns())
|
||||
{
|
||||
final EssentialsSign sign = signs.getSign();
|
||||
if (sign.getBlocks().contains(block.getType())
|
||||
&& !sign.onBlockBurn(block, ess))
|
||||
{
|
||||
@@ -168,7 +169,7 @@ public class SignBlockListener extends BlockListener
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onBlockIgnite(final BlockIgniteEvent event)
|
||||
{
|
||||
if (event.isCancelled() || ess.getSettings().areSignsDisabled())
|
||||
@@ -185,9 +186,8 @@ public class SignBlockListener extends BlockListener
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
for (Signs signs : Signs.values())
|
||||
for (EssentialsSign sign : ess.getSettings().enabledSigns())
|
||||
{
|
||||
final EssentialsSign sign = signs.getSign();
|
||||
if (sign.getBlocks().contains(block.getType())
|
||||
&& !sign.onBlockIgnite(block, ess))
|
||||
{
|
||||
@@ -197,7 +197,7 @@ public class SignBlockListener extends BlockListener
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onBlockPistonExtend(final BlockPistonExtendEvent event)
|
||||
{
|
||||
for (Block block : event.getBlocks())
|
||||
@@ -210,9 +210,8 @@ public class SignBlockListener extends BlockListener
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
for (Signs signs : Signs.values())
|
||||
for (EssentialsSign sign : ess.getSettings().enabledSigns())
|
||||
{
|
||||
final EssentialsSign sign = signs.getSign();
|
||||
if (sign.getBlocks().contains(block.getType())
|
||||
&& !sign.onBlockPush(block, ess))
|
||||
{
|
||||
@@ -223,7 +222,7 @@ public class SignBlockListener extends BlockListener
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onBlockPistonRetract(final BlockPistonRetractEvent event)
|
||||
{
|
||||
if (event.isSticky())
|
||||
@@ -237,9 +236,8 @@ public class SignBlockListener extends BlockListener
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
for (Signs signs : Signs.values())
|
||||
for (EssentialsSign sign : ess.getSettings().enabledSigns())
|
||||
{
|
||||
final EssentialsSign sign = signs.getSign();
|
||||
if (sign.getBlocks().contains(block.getType())
|
||||
&& !sign.onBlockPush(block, ess))
|
||||
{
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.earth2me.essentials.signs;
|
||||
|
||||
import com.earth2me.essentials.IEssentials;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.craftbukkit.ShowInventory;
|
||||
|
||||
|
||||
public class SignDisposal extends EssentialsSign
|
||||
@@ -15,7 +14,10 @@ public class SignDisposal extends EssentialsSign
|
||||
@Override
|
||||
protected boolean onSignInteract(final ISign sign, final User player, final String username, final IEssentials ess)
|
||||
{
|
||||
ShowInventory.showEmptyInventory(player.getBase());
|
||||
player.sendMessage("Bukkit broke this sign :(");
|
||||
//TODO: wait for a fix in bukkit
|
||||
//Problem: Items can be duplicated
|
||||
//player.getBase().openInventory(ess.getServer().createInventory(player, 36));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -3,12 +3,14 @@ package com.earth2me.essentials.signs;
|
||||
import com.earth2me.essentials.IEssentials;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.event.entity.EndermanPickupEvent;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityChangeBlockEvent;
|
||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||
import org.bukkit.event.entity.EntityListener;
|
||||
|
||||
|
||||
public class SignEntityListener extends EntityListener
|
||||
public class SignEntityListener implements Listener
|
||||
{
|
||||
private final transient IEssentials ess;
|
||||
|
||||
@@ -17,7 +19,7 @@ public class SignEntityListener extends EntityListener
|
||||
this.ess = ess;
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onEntityExplode(final EntityExplodeEvent event)
|
||||
{
|
||||
for (Block block : event.blockList())
|
||||
@@ -30,9 +32,8 @@ public class SignEntityListener extends EntityListener
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
for (Signs signs : Signs.values())
|
||||
for (EssentialsSign sign : ess.getSettings().enabledSigns())
|
||||
{
|
||||
final EssentialsSign sign = signs.getSign();
|
||||
if (sign.getBlocks().contains(block.getType()))
|
||||
{
|
||||
event.setCancelled(!sign.onBlockExplode(block, ess));
|
||||
@@ -42,8 +43,8 @@ public class SignEntityListener extends EntityListener
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEndermanPickup(EndermanPickupEvent event)
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onEntityChangeBlock(final EntityChangeBlockEvent event)
|
||||
{
|
||||
if (event.isCancelled() || ess.getSettings().areSignsDisabled())
|
||||
{
|
||||
@@ -59,9 +60,8 @@ public class SignEntityListener extends EntityListener
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
for (Signs signs : Signs.values())
|
||||
for (EssentialsSign sign : ess.getSettings().enabledSigns())
|
||||
{
|
||||
final EssentialsSign sign = signs.getSign();
|
||||
if (sign.getBlocks().contains(block.getType())
|
||||
&& !sign.onBlockBreak(block, ess))
|
||||
{
|
||||
|
||||
@@ -4,8 +4,10 @@ import static com.earth2me.essentials.I18n._;
|
||||
import com.earth2me.essentials.IEssentials;
|
||||
import com.earth2me.essentials.Trade;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.craftbukkit.ShowInventory;
|
||||
import com.earth2me.essentials.craftbukkit.InventoryWorkaround;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.event.inventory.InventoryType;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
|
||||
@@ -32,8 +34,15 @@ public class SignFree extends EssentialsSign
|
||||
throw new SignException(_("cantSpawnItem", "Air"));
|
||||
}
|
||||
|
||||
item.setAmount(item.getType().getMaxStackSize() * 9 * 4);
|
||||
ShowInventory.showFilledInventory(player.getBase(), item);
|
||||
item.setAmount(item.getType().getMaxStackSize());
|
||||
InventoryWorkaround.addItem(player.getInventory(), true, item);
|
||||
player.sendMessage("Item added to your inventory.");
|
||||
player.updateInventory();
|
||||
//TODO: wait for a fix in bukkit
|
||||
//Problem: Items can be duplicated
|
||||
//Inventory i = ess.getServer().createInventory(player, InventoryType.CHEST);
|
||||
//i.addItem(item);
|
||||
//player.openInventory(i);
|
||||
Trade.log("Sign", "Free", "Interact", username, null, username, new Trade(item, ess), sign.getBlock().getLocation(), ess);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ public class SignKit extends EssentialsSign
|
||||
protected boolean onSignCreate(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException
|
||||
{
|
||||
validateTrade(sign, 3, ess);
|
||||
|
||||
|
||||
final String kitName = sign.getLine(1).toLowerCase(Locale.ENGLISH);
|
||||
|
||||
if (kitName.isEmpty())
|
||||
@@ -56,10 +56,9 @@ public class SignKit extends EssentialsSign
|
||||
charge.isAffordableFor(player);
|
||||
try
|
||||
{
|
||||
final Object kit = ess.getSettings().getKit(kitName);
|
||||
final Map<String, Object> els = (Map<String, Object>)kit;
|
||||
final List<String> items = Kit.getItems(player, els);
|
||||
Kit.expandItems(ess, player, items);
|
||||
final Map<String, Object> kit = ess.getSettings().getKit(kitName);
|
||||
final List<String> items = Kit.getItems(player, kit);
|
||||
Kit.expandItems(ess, player, items);
|
||||
charge.charge(player);
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
@@ -4,22 +4,24 @@ import com.earth2me.essentials.IEssentials;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.Sign;
|
||||
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;
|
||||
import org.bukkit.event.player.PlayerListener;
|
||||
|
||||
|
||||
public class SignPlayerListener extends PlayerListener
|
||||
public class SignPlayerListener implements Listener
|
||||
{
|
||||
private final transient IEssentials ess;
|
||||
|
||||
public SignPlayerListener(IEssentials ess)
|
||||
public SignPlayerListener(final IEssentials ess)
|
||||
{
|
||||
this.ess = ess;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerInteract(PlayerInteractEvent event)
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onPlayerInteract(final PlayerInteractEvent event)
|
||||
{
|
||||
if (event.isCancelled() || ess.getSettings().areSignsDisabled())
|
||||
{
|
||||
@@ -39,9 +41,8 @@ public class SignPlayerListener extends PlayerListener
|
||||
return;
|
||||
}
|
||||
final Sign csign = (Sign)block.getState();
|
||||
for (Signs signs : Signs.values())
|
||||
for (EssentialsSign sign : ess.getSettings().enabledSigns())
|
||||
{
|
||||
final EssentialsSign sign = signs.getSign();
|
||||
if (csign.getLine(0).equalsIgnoreCase(sign.getSuccessName()))
|
||||
{
|
||||
sign.onSignInteract(block, event.getPlayer(), ess);
|
||||
@@ -52,9 +53,8 @@ public class SignPlayerListener extends PlayerListener
|
||||
}
|
||||
else
|
||||
{
|
||||
for (Signs signs : Signs.values())
|
||||
for (EssentialsSign sign : ess.getSettings().enabledSigns())
|
||||
{
|
||||
final EssentialsSign sign = signs.getSign();
|
||||
if (sign.getBlocks().contains(block.getType())
|
||||
&& !sign.onBlockInteract(block, event.getPlayer(), ess))
|
||||
{
|
||||
|
||||
@@ -129,7 +129,7 @@ public class SignProtection extends EssentialsSign
|
||||
if (block.getType() == Material.SIGN_POST || block.getType() == Material.WALL_SIGN)
|
||||
{
|
||||
final BlockSign sign = new BlockSign(block);
|
||||
if (sign.getLine(0).equalsIgnoreCase(this.getSuccessName()))
|
||||
if (sign.getLine(0).equals(this.getSuccessName()))
|
||||
{
|
||||
return checkProtectionSign(sign, user, username);
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ public class SignTrade extends EssentialsSign
|
||||
try
|
||||
{
|
||||
stored = getTrade(sign, 1, true, true, ess);
|
||||
substractAmount(sign, 1, stored, ess);
|
||||
subtractAmount(sign, 1, stored, ess);
|
||||
stored.pay(player);
|
||||
}
|
||||
catch (SignException e)
|
||||
@@ -53,12 +53,14 @@ public class SignTrade extends EssentialsSign
|
||||
final Trade charge = getTrade(sign, 1, false, false, ess);
|
||||
final Trade trade = getTrade(sign, 2, false, true, ess);
|
||||
charge.isAffordableFor(player);
|
||||
addAmount(sign, 1, charge, ess);
|
||||
subtractAmount(sign, 2, trade, ess);
|
||||
if (!trade.pay(player, false))
|
||||
{
|
||||
subtractAmount(sign, 1, charge, ess);
|
||||
addAmount(sign, 2, trade, ess);
|
||||
throw new ChargeException("Full inventory");
|
||||
}
|
||||
substractAmount(sign, 2, trade, ess);
|
||||
addAmount(sign, 1, charge, ess);
|
||||
charge.charge(player);
|
||||
Trade.log("Sign", "Trade", "Interact", sign.getLine(3), charge, username, trade, sign.getBlock().getLocation(), ess);
|
||||
}
|
||||
@@ -256,7 +258,7 @@ public class SignTrade extends EssentialsSign
|
||||
throw new SignException(_("invalidSignLine", index + 1));
|
||||
}
|
||||
|
||||
protected final void substractAmount(final ISign sign, final int index, final Trade trade, final IEssentials ess) throws SignException
|
||||
protected final void subtractAmount(final ISign sign, final int index, final Trade trade, final IEssentials ess) throws SignException
|
||||
{
|
||||
final Double money = trade.getMoney();
|
||||
if (money != null)
|
||||
@@ -294,6 +296,7 @@ public class SignTrade extends EssentialsSign
|
||||
}
|
||||
}
|
||||
|
||||
//TODO: Translate these exceptions.
|
||||
private void changeAmount(final ISign sign, final int index, final double value, final IEssentials ess) throws SignException
|
||||
{
|
||||
|
||||
@@ -313,7 +316,7 @@ public class SignTrade extends EssentialsSign
|
||||
final String newline = Util.formatCurrency(money, ess) + ":" + Util.formatCurrency(amount + value, ess).substring(1);
|
||||
if (newline.length() > 15)
|
||||
{
|
||||
throw new SignException("Line too long!");
|
||||
throw new SignException("This sign is full: Line too long!");
|
||||
}
|
||||
sign.setLine(index, newline);
|
||||
return;
|
||||
@@ -329,7 +332,7 @@ public class SignTrade extends EssentialsSign
|
||||
final String newline = stackamount + " " + split[1] + ":" + (amount + Math.round(value));
|
||||
if (newline.length() > 15)
|
||||
{
|
||||
throw new SignException("Line too long!");
|
||||
throw new SignException("This sign is full: Line too long!");
|
||||
}
|
||||
sign.setLine(index, newline);
|
||||
return;
|
||||
@@ -343,7 +346,7 @@ public class SignTrade extends EssentialsSign
|
||||
final String newline = stackamount + " " + split[1] + ":" + (amount + Math.round(value));
|
||||
if (newline.length() > 15)
|
||||
{
|
||||
throw new SignException("Line too long!");
|
||||
throw new SignException("This sign is full: Line too long!");
|
||||
}
|
||||
sign.setLine(index, newline);
|
||||
return;
|
||||
|
||||
@@ -30,9 +30,9 @@ public class HelpInput implements IText
|
||||
try
|
||||
{
|
||||
final PluginDescriptionFile desc = p.getDescription();
|
||||
final HashMap<String, HashMap<String, Object>> cmds = (HashMap<String, HashMap<String, Object>>)desc.getCommands();
|
||||
final Map<String, Map<String, Object>> cmds = desc.getCommands();
|
||||
pluginName = p.getDescription().getName().toLowerCase(Locale.ENGLISH);
|
||||
for (Map.Entry<String, HashMap<String, Object>> k : cmds.entrySet())
|
||||
for (Map.Entry<String, Map<String, Object>> k : cmds.entrySet())
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -57,7 +57,7 @@ public class HelpInput implements IText
|
||||
{
|
||||
if (ess.getSettings().showNonEssCommandsInHelp())
|
||||
{
|
||||
final HashMap<String, Object> value = k.getValue();
|
||||
final Map<String, Object> value = k.getValue();
|
||||
Object permissions = null;
|
||||
if (value.containsKey(PERMISSION))
|
||||
{
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.earth2me.essentials.DescParseTickFormat;
|
||||
import com.earth2me.essentials.IEssentials;
|
||||
import com.earth2me.essentials.User;
|
||||
import java.text.DateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -16,32 +17,36 @@ import org.bukkit.plugin.Plugin;
|
||||
public class KeywordReplacer implements IText
|
||||
{
|
||||
private final transient IText input;
|
||||
private final transient List<String> replaced;
|
||||
private final transient IEssentials ess;
|
||||
|
||||
|
||||
public KeywordReplacer(final IText input, final CommandSender sender, final IEssentials ess)
|
||||
{
|
||||
this.input = input;
|
||||
this.replaced = new ArrayList<String>(this.input.getLines().size());
|
||||
this.ess = ess;
|
||||
replaceKeywords(sender);
|
||||
}
|
||||
|
||||
|
||||
private void replaceKeywords(final CommandSender sender)
|
||||
{
|
||||
String displayName, ipAddress, balance, mails, world;
|
||||
String worlds, online, unique, playerlist, date, time;
|
||||
String worldTime12, worldTime24, worldDate, plugins;
|
||||
String version;
|
||||
String userName, address, version;
|
||||
if (sender instanceof Player)
|
||||
{
|
||||
final User user = ess.getUser(sender);
|
||||
displayName = user.getDisplayName();
|
||||
userName = user.getName();
|
||||
ipAddress = user.getAddress().getAddress().toString();
|
||||
address = user.getAddress().toString();
|
||||
balance = Double.toString(user.getMoney());
|
||||
mails = Integer.toString(user.getMails().size());
|
||||
world = user.getLocation().getWorld().getName();
|
||||
worldTime12 = DescParseTickFormat.format12(user.getWorld().getTime());
|
||||
worldTime24 = DescParseTickFormat.format24(user.getWorld().getTime());
|
||||
worldDate = DateFormat.getDateInstance(DateFormat.MEDIUM, ess.getI18n().getCurrentLocale()).format(DescParseTickFormat.ticksToDate(user.getWorld().getTime()));
|
||||
worldDate = DateFormat.getDateInstance(DateFormat.MEDIUM, ess.getI18n().getCurrentLocale()).format(DescParseTickFormat.ticksToDate(user.getWorld().getFullTime()));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -98,14 +103,18 @@ public class KeywordReplacer implements IText
|
||||
|
||||
date = DateFormat.getDateInstance(DateFormat.MEDIUM, ess.getI18n().getCurrentLocale()).format(new Date());
|
||||
time = DateFormat.getTimeInstance(DateFormat.MEDIUM, ess.getI18n().getCurrentLocale()).format(new Date());
|
||||
|
||||
|
||||
version = ess.getServer().getVersion();
|
||||
|
||||
for (int i = 0; i < input.getLines().size(); i++)
|
||||
{
|
||||
String line = input.getLines().get(i);
|
||||
|
||||
line = line.replace("{PLAYER}", displayName);
|
||||
line = line.replace("{DISPLAYNAME}", displayName);
|
||||
line = line.replace("{USERNAME}", displayName);
|
||||
line = line.replace("{IP}", ipAddress);
|
||||
line = line.replace("{ADDRESS}", ipAddress);
|
||||
line = line.replace("{BALANCE}", balance);
|
||||
line = line.replace("{MAILS}", mails);
|
||||
line = line.replace("{WORLD}", world);
|
||||
@@ -120,14 +129,14 @@ public class KeywordReplacer implements IText
|
||||
line = line.replace("{WORLDDATE}", worldDate);
|
||||
line = line.replace("{PLUGINS}", plugins);
|
||||
line = line.replace("{VERSION}", version);
|
||||
input.getLines().set(i, line);
|
||||
replaced.add(line);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getLines()
|
||||
{
|
||||
return input.getLines();
|
||||
return replaced;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.earth2me.essentials.textreader;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
public class SimpleTextInput implements IText
|
||||
{
|
||||
private final transient List<String> lines = new ArrayList<String>();
|
||||
|
||||
public SimpleTextInput (final String input) {
|
||||
lines.add(input);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getLines()
|
||||
{
|
||||
return lines;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getChapters()
|
||||
{
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Integer> getBookmarks()
|
||||
{
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.earth2me.essentials.textreader;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
|
||||
public class SimpleTextPager
|
||||
{
|
||||
private final transient IText text;
|
||||
|
||||
public SimpleTextPager(final IText text)
|
||||
{
|
||||
this.text = text;
|
||||
}
|
||||
|
||||
public void showPage(final CommandSender sender)
|
||||
{
|
||||
for (String line : text.getLines())
|
||||
{
|
||||
sender.sendMessage(line);
|
||||
}
|
||||
}
|
||||
|
||||
public String getString(int line)
|
||||
{
|
||||
if (text.getLines().size() < line)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return text.getLines().get(line);
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import com.earth2me.essentials.IEssentials;
|
||||
import com.earth2me.essentials.User;
|
||||
import com.earth2me.essentials.Util;
|
||||
import java.io.*;
|
||||
import java.lang.ref.SoftReference;
|
||||
import java.util.*;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -11,9 +12,11 @@ import org.bukkit.entity.Player;
|
||||
|
||||
public class TextInput implements IText
|
||||
{
|
||||
private final transient List<String> lines = new ArrayList<String>();
|
||||
private final transient List<String> chapters = new ArrayList<String>();
|
||||
private final transient Map<String, Integer> bookmarks = new HashMap<String, Integer>();
|
||||
private final transient List<String> lines;
|
||||
private final transient List<String> chapters;
|
||||
private final transient Map<String, Integer> bookmarks;
|
||||
private final transient long lastChange;
|
||||
private final static HashMap<String, SoftReference<TextInput>> cache = new HashMap<String, SoftReference<TextInput>>();
|
||||
|
||||
public TextInput(final CommandSender sender, final String filename, final boolean createFile, final IEssentials ess) throws IOException
|
||||
{
|
||||
@@ -34,33 +37,62 @@ public class TextInput implements IText
|
||||
}
|
||||
if (file.exists())
|
||||
{
|
||||
final BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
|
||||
try
|
||||
lastChange = file.lastModified();
|
||||
boolean readFromfile;
|
||||
synchronized (cache)
|
||||
{
|
||||
int lineNumber = 0;
|
||||
while (bufferedReader.ready())
|
||||
final SoftReference<TextInput> inputRef = cache.get(file.getName());
|
||||
TextInput input;
|
||||
if (inputRef == null || (input = inputRef.get()) == null || input.lastChange < lastChange)
|
||||
{
|
||||
final String line = bufferedReader.readLine();
|
||||
if (line == null)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if (line.length() > 0 && line.charAt(0) == '#')
|
||||
{
|
||||
bookmarks.put(line.substring(1).toLowerCase(Locale.ENGLISH).replaceAll("&[0-9a-f]", ""), lineNumber);
|
||||
chapters.add(line.substring(1).replace('&', '§').replace("§§", "&"));
|
||||
}
|
||||
lines.add(line.replace('&', '§').replace("§§", "&"));
|
||||
lineNumber++;
|
||||
lines = new ArrayList<String>();
|
||||
chapters = new ArrayList<String>();
|
||||
bookmarks = new HashMap<String, Integer>();
|
||||
cache.put(file.getName(), new SoftReference<TextInput>(this));
|
||||
readFromfile = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
lines = Collections.unmodifiableList(input.getLines());
|
||||
chapters = Collections.unmodifiableList(input.getChapters());
|
||||
bookmarks = Collections.unmodifiableMap(input.getBookmarks());
|
||||
readFromfile = false;
|
||||
}
|
||||
}
|
||||
finally
|
||||
if (readFromfile)
|
||||
{
|
||||
bufferedReader.close();
|
||||
final BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
|
||||
try
|
||||
{
|
||||
int lineNumber = 0;
|
||||
while (bufferedReader.ready())
|
||||
{
|
||||
final String line = bufferedReader.readLine();
|
||||
if (line == null)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if (line.length() > 0 && line.charAt(0) == '#')
|
||||
{
|
||||
bookmarks.put(line.substring(1).toLowerCase(Locale.ENGLISH).replaceAll("&[0-9a-f]", ""), lineNumber);
|
||||
chapters.add(line.substring(1).replace('&', '§').replace("§§", "&"));
|
||||
}
|
||||
lines.add(line.replace('&', '§').replace("§§", "&"));
|
||||
lineNumber++;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
bufferedReader.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lastChange = 0;
|
||||
lines = Collections.emptyList();
|
||||
chapters = Collections.emptyList();
|
||||
bookmarks = Collections.emptyMap();
|
||||
if (createFile)
|
||||
{
|
||||
final InputStream input = ess.getResource(filename + ".txt");
|
||||
@@ -68,8 +100,7 @@ public class TextInput implements IText
|
||||
try
|
||||
{
|
||||
final byte[] buffer = new byte[1024];
|
||||
int length = 0;
|
||||
length = input.read(buffer);
|
||||
int length = input.read(buffer);
|
||||
while (length > 0)
|
||||
{
|
||||
output.write(buffer, 0, length);
|
||||
|
||||
@@ -196,4 +196,15 @@ public class User extends UserBase implements IUser
|
||||
unlock();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canAfford(final double cost)
|
||||
{
|
||||
final double mon = getMoney();
|
||||
if (isAuthorized("essentials.eco.loan"))
|
||||
{
|
||||
return (mon - cost) >= ess.getSettings().getMinMoney();
|
||||
}
|
||||
return cost <= mon;
|
||||
}
|
||||
}
|
||||
+52
-32
@@ -18,8 +18,6 @@
|
||||
# - CraftBukkit and Permissions have been updated: CraftBukkit and Essentials almost always line up, but sometimes other plugins fall behind CraftBukkit's multiple daily updates
|
||||
# - You have saved the document as UTF-8, NOT the default, ANSI
|
||||
|
||||
|
||||
|
||||
############################################################
|
||||
# +------------------------------------------------------+ #
|
||||
# | Essentials (Global) | #
|
||||
@@ -157,6 +155,7 @@ player-commands:
|
||||
- xmpp
|
||||
|
||||
# Note: All items MUST be followed by a quantity!
|
||||
# All kit names should be lower case, and will be treated as lower in permissions/costs.
|
||||
# Times are measured in seconds.
|
||||
kits:
|
||||
tools:
|
||||
@@ -166,8 +165,28 @@ kits:
|
||||
- 278 1
|
||||
- 279 1
|
||||
|
||||
# Disable all signs
|
||||
signs-disabled: false
|
||||
# Essentials Sign Control
|
||||
# See http://ess.khhq.net/wiki/Sign_Tutorial for instructions on how to use these.
|
||||
# To enable signs, remove # symbol. To disable all signs, comment/remove each sign.
|
||||
# We recommend not enabling chest protection signs if you don't intend to use them, (or are using LWC/Lockette).
|
||||
|
||||
enabledSigns:
|
||||
#- balance
|
||||
#- buy
|
||||
#- sell
|
||||
#- trade
|
||||
#- free
|
||||
#- disposal
|
||||
#- warp
|
||||
#- kit
|
||||
#- mail
|
||||
#- enchant
|
||||
#- gamemode
|
||||
#- heal
|
||||
#- spawnmob
|
||||
#- time
|
||||
#- weather
|
||||
#- protection
|
||||
|
||||
# Backup runs a command while saving is disabled
|
||||
backup:
|
||||
@@ -253,28 +272,25 @@ register-back-in-listener: false
|
||||
# +------------------------------------------------------+ #
|
||||
############################################################
|
||||
|
||||
# When users die, should they respawn at their first home, instead of the spawnpoint or bed?
|
||||
respawn-at-home: false
|
||||
|
||||
# If no home is set send you to bed or spawn when /home is used
|
||||
# If no home is set, send players to spawn when /home is used
|
||||
spawn-if-no-home: true
|
||||
|
||||
# Allows people to set their bed at daytime
|
||||
update-bed-at-daytime: true
|
||||
|
||||
# Allow players to have multiple homes.
|
||||
# Players need essentials.sethome.multiple before they can have more than 1 home, default to 'default' below.
|
||||
# Define different amounts of multiple homes for different permissions, e.g. essentials.sethome.multiple.vip
|
||||
# People with essentials.sethome.multiple.unlimited are not limited by these numbers.
|
||||
sethome-multiple:
|
||||
# essentials.sethome.multiple
|
||||
default: 3
|
||||
# essentials.sethome.multiple.vip
|
||||
vip: 5
|
||||
# essentials.sethome.multiple.staff
|
||||
staff: 10
|
||||
|
||||
#Set timeout in seconds for players to accept tpa before request is cancelled.
|
||||
#Set to 0 for no timeout
|
||||
# Set timeout in seconds for players to accept tpa before request is cancelled.
|
||||
# Set to 0 for no timeout
|
||||
tpa-accept-cancellation: 0
|
||||
|
||||
############################################################
|
||||
@@ -295,7 +311,7 @@ command-costs:
|
||||
#example: 1000
|
||||
# /kit tools costs $1500 PER USE
|
||||
#kit-tools: 1500
|
||||
|
||||
|
||||
# Set this to a currency symbol you want to use.
|
||||
currency-symbol: '$'
|
||||
|
||||
@@ -303,6 +319,10 @@ currency-symbol: '$'
|
||||
# The amount is always limited to 10 trillions because of the limitations of a java double
|
||||
max-money: 10000000000000
|
||||
|
||||
# Set the minimum amount of money a player can have
|
||||
# Setting this to 0, will disable overdrafts/loans compeltely. Users need 'essentials.eco.loan' perm to go below 0.
|
||||
min-money: -10000000000000
|
||||
|
||||
# Enable this to log all interactions with trade/buy/sell signs and sell command
|
||||
economy-log-enabled: false
|
||||
|
||||
@@ -317,7 +337,7 @@ non-ess-in-help: true
|
||||
|
||||
# Hide plugins which dont give a permission
|
||||
# You can override a true value here for a single plugin by adding a permission to a user/group.
|
||||
# The indervidual permission is: essentials.help.<plugin>, anyone with essentials.* or '*' will see all help this setting reguardless.
|
||||
# The individual permission is: essentials.help.<plugin>, anyone with essentials.* or '*' will see all help this setting reguardless.
|
||||
# You can use negitive permissions to remove access to just a single plugins help if the following is enabled.
|
||||
hide-permissionless-help: true
|
||||
|
||||
@@ -328,30 +348,28 @@ hide-permissionless-help: true
|
||||
############################################################
|
||||
|
||||
chat:
|
||||
|
||||
|
||||
# If EssentialsChat is installed, this will define how far a player's voice travels, in blocks. Set to 0 to make all chat global.
|
||||
# Note that users with the "essentials.chat.spy" permission will hear everything, regardless of this setting.
|
||||
# Users with essentials.chat.shout can override this by prefixing text with an exclamation mark (!)
|
||||
# Or with essentials.chat.question can override this by prefixing text with a question mark (?)
|
||||
# You can add command costs for shout/question by adding chat-shout and chat-question to the command costs section."
|
||||
radius: 0
|
||||
|
||||
|
||||
# Chat formatting can be done in two ways, you can either define a standard format for all chat
|
||||
# Or you can give a group specific chat format, to give some extra variation.
|
||||
# If set to the default chat format which "should" be compatible with ichat.
|
||||
# For more information of chat formatting, check out the wiki: http://ess.khhq.net/wiki/Chat_Formatting
|
||||
|
||||
|
||||
format: '<{DISPLAYNAME}> {MESSAGE}'
|
||||
#format: '&7[{GROUP}]&f {DISPLAYNAME}&7:&f {MESSAGE}'
|
||||
|
||||
|
||||
group-formats:
|
||||
# Default: '{WORLDNAME} {DISPLAYNAME}&7:&f {MESSAGE}'
|
||||
# Admins: '{WORLDNAME} &c[{GROUP}]&f {DISPLAYNAME}&7:&c {MESSAGE}'
|
||||
|
||||
# If your using group formats make sure to remove the '#' to allow the setting to be read.
|
||||
|
||||
|
||||
|
||||
############################################################
|
||||
# +------------------------------------------------------+ #
|
||||
# | EssentialsProtect | #
|
||||
@@ -382,13 +400,13 @@ protect:
|
||||
|
||||
# Which blocks should people be prevented from placing
|
||||
placement: 10,11,46,327
|
||||
|
||||
|
||||
# Which items should people be prevented from using
|
||||
usage: 327
|
||||
|
||||
|
||||
# Which blocks should people be prevented from breaking
|
||||
break:
|
||||
|
||||
|
||||
# Which blocks should not be pushed by pistons
|
||||
piston:
|
||||
|
||||
@@ -442,12 +460,12 @@ protect:
|
||||
mushroom_cow: false
|
||||
magma_cube: false
|
||||
snowman: false
|
||||
|
||||
|
||||
# Maximum height the creeper should explode. -1 allows them to explode everywhere.
|
||||
# Set prevent.creeper-explosion to true, if you want to disable creeper explosions.
|
||||
creeper:
|
||||
max-height: -1
|
||||
|
||||
|
||||
# Protect various blocks.
|
||||
protect:
|
||||
# Protect all signs
|
||||
@@ -463,7 +481,7 @@ protect:
|
||||
|
||||
# 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
|
||||
|
||||
@@ -492,22 +510,21 @@ protect:
|
||||
|
||||
# Burn, baby, burn! Should fire damage be disabled?
|
||||
firedmg: false
|
||||
|
||||
|
||||
# Should the damage after hit by a lightning be disabled?
|
||||
lightning: false
|
||||
|
||||
# Should people with build: false in permissions be allowed to build
|
||||
# Set true to disable building for those people
|
||||
build: true
|
||||
|
||||
|
||||
# Should people with build: false in permissions be allowed to use items
|
||||
# Set true to disable useing for those people
|
||||
# Set true to disable using for those people
|
||||
use: true
|
||||
|
||||
# Should we tell people they are not allowed to build
|
||||
warn-on-build-disallow: true
|
||||
|
||||
|
||||
# Disable weather options
|
||||
weather:
|
||||
storm: false
|
||||
@@ -526,14 +543,17 @@ newbies:
|
||||
# If not, set to ''
|
||||
#announce-format: ''
|
||||
announce-format: '&dWelcome {DISPLAYNAME}&d to the server!'
|
||||
|
||||
|
||||
# When we spawn for the first time, which spawnpoint do we use?
|
||||
# Set to "none" if you want to use the spawn point of the world.
|
||||
spawnpoint: newbies
|
||||
|
||||
# Set this to lowest, if you want Multiverse to handle the respawning
|
||||
# Set this to normal, if you want EssentialsSpawn to handle the respawning
|
||||
# Set this to high, if you want EssentialsSpawn to handle the respawning
|
||||
# Set this to highest, if you want to force EssentialsSpawn to handle the respawning
|
||||
respawn-listener-priority: normal
|
||||
respawn-listener-priority: high
|
||||
|
||||
# When users die, should they respawn at their first home or bed, instead of the spawnpoint?
|
||||
respawn-at-home: false
|
||||
|
||||
# End of File <-- No seriously, you're done with configuration.
|
||||
@@ -7,6 +7,10 @@ Name it info_username.txt or info_groupname.txt
|
||||
|
||||
This also works with motd and rules.
|
||||
|
||||
Extra pages:
|
||||
Type /info Colours
|
||||
Type /info Tags
|
||||
|
||||
It can contain chapters like the Chapter1 below:
|
||||
|
||||
#Chapter1
|
||||
@@ -25,7 +29,9 @@ Minecraft colors:
|
||||
|
||||
#Tags
|
||||
PLAYER: {PLAYER}
|
||||
USERNAME: {PLAYER}
|
||||
IP: {IP}
|
||||
ADDRESS: {ADDRESS}
|
||||
BALANCE: {BALANCE}
|
||||
MAILS: {MAILS}
|
||||
WORLD: {WORLD}
|
||||
@@ -39,3 +45,4 @@ WORLDTIME12: {WORLDTIME12}
|
||||
WORLDTIME24: {WORLDTIME24}
|
||||
WORLDDATE: {WORLDDATE}
|
||||
PLUGINS: {PLUGINS}
|
||||
VERSION: {VERSION}
|
||||
@@ -2429,6 +2429,30 @@ glisteringmelon,382,0
|
||||
shiningmelon,382,0
|
||||
gmelon,382,0
|
||||
smelon,382,0
|
||||
creeperegg,383,50
|
||||
skeletonegg,383,51
|
||||
spideregg,383,52
|
||||
giantegg,383,53
|
||||
zombieegg,383,54
|
||||
slimeegg,383,55
|
||||
ghastegg,383,56
|
||||
zombiepigmanegg,383,57
|
||||
pigmanegg,383,57
|
||||
endermanegg,383,58
|
||||
cavespideregg,383,59
|
||||
silverfishegg,383,60
|
||||
blazeegg,383,61
|
||||
lavaslimeegg,383,62
|
||||
magmacubeegg,383,63
|
||||
pigegg,383,90
|
||||
sheepegg,383,91
|
||||
cowegg,383,92
|
||||
chickenegg,383,93
|
||||
squidegg,383,94
|
||||
wolfegg,383,95
|
||||
mooshroomegg,383,96
|
||||
mushroomcowegg,383,96
|
||||
villageregg,383,120
|
||||
goldmusicrecord,2256,0
|
||||
goldmusicdisk,2256,0
|
||||
goldmusiccd,2256,0
|
||||
|
||||
|
@@ -4,16 +4,16 @@
|
||||
# by:
|
||||
action=* {0} {1}
|
||||
addedToAccount=\u00a7a{0} has been added to your account.
|
||||
addedToOthersAccount=\u00a7a{0} has been added to {1} account.
|
||||
addedToOthersAccount=\u00a7a{0} added to {1}\u00a7a account. New balance: {2}
|
||||
alertBroke=broke:
|
||||
alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} at: {3}
|
||||
alertPlaced=placed:
|
||||
alertUsed=used:
|
||||
autoAfkKickReason=You have been kicked for idling more than {0} minutes.
|
||||
backAfterDeath=\u00a77Use the /back command to return to your death point.
|
||||
backUsageMsg=\u00a77Returning to previous location.
|
||||
backupFinished=Backup finished
|
||||
backupStarted=Backup started
|
||||
backUsageMsg=\u00a77Returning to previous location.
|
||||
balance=\u00a77Balance: {0}
|
||||
balanceTop=\u00a77Top balances ({0})
|
||||
banExempt=\u00a7cYou can not ban that player.
|
||||
@@ -33,6 +33,8 @@ canTalkAgain=\u00a77You can talk again
|
||||
cantFindGeoIpDB=Can''t find GeoIP database!
|
||||
cantReadGeoIpDB=Failed to read GeoIP database!
|
||||
cantSpawnItem=\u00a7cYou are not allowed to spawn the item {0}
|
||||
chatTypeLocal=[L]
|
||||
chatTypeSpy=[Spy]
|
||||
commandFailed=Command {0} failed:
|
||||
commandHelpFailedForPlugin=Error getting help for: {0}
|
||||
commandNotLoaded=\u00a7cCommand {0} is improperly loaded.
|
||||
@@ -62,14 +64,14 @@ depth=\u00a77You are at sea level.
|
||||
depthAboveSea=\u00a77You are {0} block(s) above sea level.
|
||||
depthBelowSea=\u00a77You are {0} block(s) below sea level.
|
||||
destinationNotSet=Destination not set
|
||||
disableUnlimited=\u00a77Disabled unlimited placing of {0} for {1}.
|
||||
disabled=disabled
|
||||
disabledToSpawnMob=Spawning this mob was disabled in the config file.
|
||||
disableUnlimited=\u00a77Disabled unlimited placing of {0} for {1}.
|
||||
dontMoveMessage=\u00a77Teleportation will commence in {0}. Don''t move.
|
||||
downloadingGeoIp=Downloading GeoIP database ... this might take a while (country: 0.6 MB, city: 20MB)
|
||||
duplicatedUserdata=Duplicated userdata: {0} and {1}
|
||||
enableUnlimited=\u00a77Giving unlimited amount of {0} to {1}.
|
||||
enabled=enabled
|
||||
enableUnlimited=\u00a77Giving unlimited amount of {0} to {1}.
|
||||
enchantmentApplied = \u00a77The enchantment {0} has been applied to your item in hand.
|
||||
enchantmentNotFound = \u00a7cEnchantment not found
|
||||
enchantmentPerm = \u00a7cYou do not have the permission for {0}
|
||||
@@ -97,9 +99,9 @@ gcentities= entities
|
||||
gcfree=Free memory: {0} MB
|
||||
gcmax=Maximum memory: {0} MB
|
||||
gctotal=Allocated memory: {0} MB
|
||||
geoipJoinFormat=Player {0} comes from {1}
|
||||
geoIpUrlEmpty=GeoIP download url is empty.
|
||||
geoIpUrlInvalid=GeoIP download url is invalid.
|
||||
geoipJoinFormat=Player {0} comes from {1}
|
||||
godDisabledFor=disabled for {0}
|
||||
godEnabledFor=enabled for {0}
|
||||
godMode=\u00a77God mode {0}.
|
||||
@@ -110,9 +112,9 @@ helpConsole=To view help from the console, type ?.
|
||||
helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
|
||||
helpPages=Page \u00a7c{0}\u00a7f of \u00a7c{1}\u00a7f:
|
||||
holeInFloor=Hole in floor
|
||||
homes=Homes: {0}
|
||||
homeSet=\u00a77Home set.
|
||||
homeSetToBed=\u00a77Your home is now set to this bed.
|
||||
homes=Homes: {0}
|
||||
hour=hour
|
||||
hours=hours
|
||||
ignorePlayer=You ignore player {0} from now on.
|
||||
@@ -122,28 +124,28 @@ infoChapterPages=Chapter {0}, page \u00a7c{1}\u00a7f of \u00a7c{2}\u00a7f:
|
||||
infoFileDoesNotExist=File info.txt does not exist. Creating one for you.
|
||||
infoPages=Page \u00a7c{0}\u00a7f of \u00a7c{1}\u00a7f:
|
||||
infoUnknownChapter=Unknown chapter.
|
||||
invBigger=The other users inventory is bigger than yours.
|
||||
invRestored=Your inventory has been restored.
|
||||
invSee=You see the inventory of {0}.
|
||||
invSeeHelp=Use /invsee to restore your inventory.
|
||||
invalidCharge=\u00a7cInvalid charge.
|
||||
invalidMob=Invalid mob type.
|
||||
invalidServer=Invalid server!
|
||||
invalidSignLine=Line {0} on sign is invalid.
|
||||
invalidWorld=\u00a7cInvalid world.
|
||||
invBigger=The other users inventory is bigger than yours.
|
||||
inventoryCleared=\u00a77Inventory Cleared.
|
||||
inventoryClearedOthers=\u00a77Inventory of \u00a7c{0}\u00a77 cleared.
|
||||
invRestored=Your inventory has been restored.
|
||||
invSee=You see the inventory of {0}.
|
||||
invSeeHelp=Use /invsee to restore your inventory.
|
||||
is=is
|
||||
itemCannotBeSold=That item cannot be sold to the server.
|
||||
itemMustBeStacked=Item must be traded in stacks. A quantity of 2s would be two stacks, etc.
|
||||
itemNotEnough1=\u00a7cYou do not have enough of that item to sell.
|
||||
itemNotEnough2=\u00a77If you meant to sell all of your items of that type, use /sell itemname
|
||||
itemNotEnough3=\u00a77/sell itemname -1 will sell all but one item, etc.
|
||||
itemsCsvNotLoaded=Could not load items.csv.
|
||||
itemSellAir=You really tried to sell Air? Put an item in your hand.
|
||||
itemSold=\u00a77Sold for \u00a7c{0} \u00a77({1} {2} at {3} each)
|
||||
itemSoldConsole={0} sold {1} for \u00a77{2} \u00a77({3} items at {4} each)
|
||||
itemSpawn=\u00a77Giving {0} of {1}
|
||||
itemsCsvNotLoaded=Could not load items.csv.
|
||||
jailAlreadyIncarcerated=\u00a7cPerson is already in jail: {0}
|
||||
jailMessage=\u00a7cYou do the crime, you do the time.
|
||||
jailNotExist=That jail does not exist.
|
||||
@@ -160,8 +162,8 @@ kitError=\u00a7cThere are no valid kits.
|
||||
kitErrorHelp=\u00a7cPerhaps an item is missing a quantity in the configuration?
|
||||
kitGive=\u00a77Giving kit {0}.
|
||||
kitInvFull=\u00a7cYour inventory was full, placing kit on the floor
|
||||
kitTimed=\u00a7cYou can''t use that kit again for another {0}.
|
||||
kits=\u00a77Kits: {0}
|
||||
kitTimed=\u00a7cYou can''t use that kit again for another {0}.
|
||||
lightningSmited=\u00a77You have just been smited
|
||||
lightningUse=\u00a77Smiting {0}
|
||||
listAfkTag = \u00a77[AFK]\u00a7f
|
||||
@@ -169,14 +171,13 @@ listAmount = \u00a79There are \u00a7c{0}\u00a79 out of maximum \u00a7c{1}\u00a79
|
||||
listAmountHidden = \u00a79There are \u00a7c{0}\u00a77/{1}\u00a79 out of maximum \u00a7c{2}\u00a79 players online.
|
||||
listHiddenTag = \u00a77[HIDDEN]\u00a7f
|
||||
loadWarpError=Failed to load warp {0}
|
||||
loadinfo=Loaded {0} build {1} by: {2}
|
||||
localFormat=Local: <{0}> {1}
|
||||
mailClear=\u00a7cTo mark your mail as read, type /mail clear
|
||||
mailCleared=\u00a77Mail Cleared!
|
||||
mailSent=\u00a77Mail sent!
|
||||
markMailAsRead=\u00a7cTo mark your mail as read, type /mail clear
|
||||
markedAsAway=\u00a77You are now marked as away.
|
||||
markedAsNotAway=\u00a77You are no longer marked as away.
|
||||
markMailAsRead=\u00a7cTo mark your mail as read, type /mail clear
|
||||
maxHomes=You cannot set more than {0} homes.
|
||||
mayNotJail=\u00a7cYou may not jail that person
|
||||
me=me
|
||||
@@ -184,10 +185,10 @@ minute=minute
|
||||
minutes=minutes
|
||||
missingItems=You do not have {0}x {1}.
|
||||
missingPrefixSuffix=Missing a prefix or suffix for {0}
|
||||
mobsAvailable=\u00a77Mobs: {0}
|
||||
mobSpawnError=Error while changing mob spawner.
|
||||
mobSpawnLimit=Mob quantity limited to server limit
|
||||
mobSpawnTarget=Target block must be a mob spawner.
|
||||
mobsAvailable=\u00a77Mobs: {0}
|
||||
moneyRecievedFrom=\u00a7a{0} has been received from {1}
|
||||
moneySentTo=\u00a7a{0} has been sent to {1}
|
||||
moneyTaken={0} taken from your bank account.
|
||||
@@ -195,10 +196,10 @@ month=month
|
||||
months=months
|
||||
moreThanZero=Quantities must be greater than 0.
|
||||
msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
|
||||
muteExempt=\u00a7cYou may not mute that player.
|
||||
mutedPlayer=Player {0} muted.
|
||||
mutedPlayerFor=Player {0} muted for {1}.
|
||||
mutedUserSpeaks={0} tried to speak, but is muted.
|
||||
muteExempt=\u00a7cYou may not mute that player.
|
||||
nearbyPlayers=Players nearby: {0}
|
||||
needTpohere=You need access to /tpohere to teleport other players.
|
||||
negativeBalanceError=User is not allowed to have a negative balance.
|
||||
@@ -220,6 +221,7 @@ noKitPermission=\u00a7cYou need the \u00a7c{0}\u00a7c permission to use that kit
|
||||
noKits=\u00a77There are no kits available yet
|
||||
noMail=You do not have any mail
|
||||
noMotd=\u00a7cThere is no message of the day.
|
||||
none=none
|
||||
noNewMail=\u00a77You have no new mail.
|
||||
noPendingRequest=You do not have a pending request.
|
||||
noPerm=\u00a7cYou do not have the \u00a7f{0}\u00a7c permission.
|
||||
@@ -227,29 +229,21 @@ noPermToSpawnMob=\u00a7cYou don''t have permission to spawn this mob.
|
||||
noPlacePermission=\u00a7cYou do not have permission to place a block near that sign.
|
||||
noPowerTools=You have no power tools assigned.
|
||||
noRules=\u00a7cThere are no rules specified yet.
|
||||
noWarpsDefined=No warps defined
|
||||
none=none
|
||||
notAllowedToQuestion=\u00a7cYou are not authorized to use question.
|
||||
notAllowedToShout=\u00a7cYou are not authorized to shout.
|
||||
notEnoughExperience=You do not have enough experience.
|
||||
notEnoughMoney=You do not have sufficient funds.
|
||||
nothingInHand = \u00a7cYou have nothing in your hand.
|
||||
notRecommendedBukkit= * ! * Bukkit version is not the recommended build for Essentials.
|
||||
notSupportedYet=Not supported yet.
|
||||
nothingInHand = \u00a7cYou have nothing in your hand.
|
||||
now=now
|
||||
noWarpsDefined=No warps defined
|
||||
nuke=May death rain upon them
|
||||
numberRequired=A number goes there, silly.
|
||||
onlyDayNight=/time only supports day/night.
|
||||
onlyPlayers=Only in-game players can use {0}.
|
||||
onlySunStorm=/weather only supports sun/storm.
|
||||
orderBalances=Ordering balances of {0} users, please wait ...
|
||||
pTimeCurrent=\u00a7e{0}''s\u00a7f time is {1}.
|
||||
pTimeCurrentFixed=\u00a7e{0}''s\u00a7f time is fixed to {1}.
|
||||
pTimeNormal=\u00a7e{0}''s\u00a7f time is normal and matches the server.
|
||||
pTimeOthersPermission=\u00a7cYou are not authorized to set other players'' time.
|
||||
pTimePlayers=These players have their own time:
|
||||
pTimeReset=Player time has been reset for: \u00a7e{0}
|
||||
pTimeSet=Player time is set to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
pTimeSetFixed=Player time is fixed to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
parseError=Error parsing {0} on line {1}
|
||||
pendingTeleportCancelled=\u00a7cPending teleportation request cancelled.
|
||||
permissionsError=Missing Permissions/GroupManager; chat prefixes/suffixes will be disabled.
|
||||
@@ -277,6 +271,14 @@ powerToolRemoveAll=All commands removed from {0}.
|
||||
powerToolsDisabled=All of your power tools have been disabled.
|
||||
powerToolsEnabled=All of your power tools have been enabled.
|
||||
protectionOwner=\u00a76[EssentialsProtect] Protection owner: {0}
|
||||
pTimeCurrent=\u00a7e{0}''s\u00a7f time is {1}.
|
||||
pTimeCurrentFixed=\u00a7e{0}''s\u00a7f time is fixed to {1}.
|
||||
pTimeNormal=\u00a7e{0}''s\u00a7f time is normal and matches the server.
|
||||
pTimeOthersPermission=\u00a7cYou are not authorized to set other players'' time.
|
||||
pTimePlayers=These players have their own time:
|
||||
pTimeReset=Player time has been reset for: \u00a7e{0}
|
||||
pTimeSet=Player time is set to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
pTimeSetFixed=Player time is fixed to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
questionFormat=\u00a77[Question]\u00a7f {0}
|
||||
readNextPage=Type /{0} {1} to read the next page
|
||||
reloadAllPlugins=\u00a77Reloaded all plugins.
|
||||
@@ -291,13 +293,15 @@ requestAcceptedFrom=\u00a77{0} accepted your teleport request.
|
||||
requestDenied=\u00a77Teleport request denied.
|
||||
requestDeniedFrom=\u00a77{0} denied your teleport request.
|
||||
requestSent=\u00a77Request sent to {0}\u00a77.
|
||||
requestTimedOut=\u00a7cTeleport request has timed out
|
||||
requiredBukkit= * ! * You need atleast build {0} of CraftBukkit, download it from http://ci.bukkit.org.
|
||||
returnPlayerToJailError=Error occurred when trying to return player to jail.
|
||||
returnPlayerToJailError=Error occurred when trying to return player {0} to jail: {1}
|
||||
second=second
|
||||
seconds=seconds
|
||||
seenOffline=Player {0} is offline since {1}
|
||||
seenOnline=Player {0} is online since {1}
|
||||
serverFull=Server is full
|
||||
serverTotal=Server Total: {0}
|
||||
setSpawner=Changed spawner type to {0}
|
||||
sheepMalformedColor=Malformed color.
|
||||
shoutFormat=\u00a77[Shout]\u00a7f {0}
|
||||
@@ -308,28 +312,29 @@ signProtectInvalidLocation=\u00a74You are not allowed to create sign here.
|
||||
similarWarpExist=A warp with a similar name already exists.
|
||||
slimeMalformedSize=Malformed size.
|
||||
soloMob=That mob likes to be alone
|
||||
spawnSet=\u00a77Spawn location set for group {0}.
|
||||
spawned=spawned
|
||||
spawnSet=\u00a77Spawn location set for group {0}.
|
||||
suicideMessage=\u00a77Goodbye Cruel World...
|
||||
suicideSuccess= \u00a77{0} took their own life
|
||||
survival=survival
|
||||
takenFromAccount=\u00a7c{0} has been taken from your account.
|
||||
takenFromOthersAccount=\u00a7c{0} has been taken from {1} account.
|
||||
takenFromOthersAccount=\u00a7c{0} taken from {1}\u00a7c account. New balance: {2}
|
||||
teleportAAll=\u00a77Teleporting request sent to all players...
|
||||
teleportAll=\u00a77Teleporting all players...
|
||||
teleportAtoB=\u00a77{0}\u00a77 teleported you to {1}\u00a77.
|
||||
teleportDisabled={0} has teleportation disabled.
|
||||
teleportHereRequest=\u00a7c{0}\u00a7c has requested that you teleport to them.
|
||||
teleportNewPlayerError=Failed to teleport new player
|
||||
teleportRequest=\u00a7c{0}\u00a7c has requested to teleport to you.
|
||||
teleportTop=\u00a77Teleporting to top.
|
||||
teleportationCommencing=\u00a77Teleportation commencing...
|
||||
teleportationDisabled=\u00a77Teleportation disabled.
|
||||
teleportationEnabled=\u00a77Teleportation enabled.
|
||||
teleportAtoB=\u00a77{0}\u00a77 teleported you to {1}\u00a77.
|
||||
teleportDisabled={0} has teleportation disabled.
|
||||
teleportHereRequest=\u00a7c{0}\u00a7c has requested that you teleport to them.
|
||||
teleporting=\u00a77Teleporting...
|
||||
teleportingPortal=\u00a77Teleporting via portal.
|
||||
tempBanned=Temporarily banned from server for {0}
|
||||
teleportNewPlayerError=Failed to teleport new player
|
||||
teleportRequest=\u00a7c{0}\u00a7c has requested to teleport to you.
|
||||
teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds.
|
||||
teleportTop=\u00a77Teleporting to top.
|
||||
tempbanExempt=\u00a77You may not tempban that player
|
||||
tempBanned=Temporarily banned from server for {0}
|
||||
thunder= You {0} thunder in your world
|
||||
thunderDuration=You {0} thunder in your world for {1} seconds.
|
||||
timeBeforeHeal=Time before next heal: {0}
|
||||
@@ -360,25 +365,25 @@ unlimitedItemPermission=\u00a7cNo permission for unlimited item {0}.
|
||||
unlimitedItems=Unlimited items:
|
||||
unmutedPlayer=Player {0} unmuted.
|
||||
upgradingFilesError=Error while upgrading the files
|
||||
userdataMoveBackError=Failed to move userdata/{0}.tmp to userdata/{1}
|
||||
userdataMoveError=Failed to move userdata/{0} to userdata/{1}.tmp
|
||||
userDoesNotExist=The user {0} does not exist.
|
||||
userIsAway={0} is now AFK
|
||||
userIsNotAway={0} is no longer AFK
|
||||
userJailed=\u00a77You have been jailed
|
||||
userUsedPortal={0} used an existing exit portal.
|
||||
userdataMoveBackError=Failed to move userdata/{0}.tmp to userdata/{1}
|
||||
userdataMoveError=Failed to move userdata/{0} to userdata/{1}.tmp
|
||||
usingTempFolderForTesting=Using temp folder for testing:
|
||||
versionMismatch=Version mismatch! Please update {0} to the same version.
|
||||
versionMismatchAll=Version mismatch! Please update all Essentials jars to the same version.
|
||||
voiceSilenced=\u00a77Your voice has been silenced
|
||||
warpDeleteError=Problem deleting the warp file.
|
||||
warpingTo=\u00a77Warping to {0}.
|
||||
warpListPermission=\u00a7cYou do not have Permission to list warps.
|
||||
warpNotExist=That warp does not exist.
|
||||
warpSet=\u00a77Warp {0} set.
|
||||
warpUsePermission=\u00a7cYou do not have Permission to use that warp.
|
||||
warpingTo=\u00a77Warping to {0}.
|
||||
warps=Warps: {0}
|
||||
warpsCount=\u00a77There are {0} warps. Showing page {1} of {2}.
|
||||
warpSet=\u00a77Warp {0} set.
|
||||
warpUsePermission=\u00a7cYou do not have Permission to use that warp.
|
||||
weatherStorm=\u00a77You set the weather to storm in {0}
|
||||
weatherStormFor=\u00a77You set the weather to storm in {0} for {1} seconds
|
||||
weatherSun=\u00a77You set the weather to sun in {0}
|
||||
@@ -402,5 +407,3 @@ year=year
|
||||
years=years
|
||||
youAreHealed=\u00a77You have been healed.
|
||||
youHaveNewMail=\u00a7cYou have {0} messages!\u00a7f Type \u00a77/mail read\u00a7f to view your mail.
|
||||
requestTimedOut=\u00a7cTeleport request has timed out
|
||||
teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds.
|
||||
@@ -4,18 +4,18 @@
|
||||
# by: Dysp, dysperen@gmail.com
|
||||
action=* {0} {1}
|
||||
addedToAccount=\u00a7a{0} er blevet tilf\u00f8jet til din konto.
|
||||
addedToOthersAccount=\u00a7a{0} er blevet tilf\u00f8jet til {1} konto.
|
||||
addedToOthersAccount=\u00a7a{0} added to {1}\u00a7a account. New balance: {2}
|
||||
alertBroke=\u00f8delagde:
|
||||
alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} ved: {3}
|
||||
alertPlaced=placerede:
|
||||
alertUsed=brugte:
|
||||
autoAfkKickReason=Du er blevet kicked for at idle mere end {0} minutter.
|
||||
backAfterDeath=\u00a77Brug /back kommandoen for at teleportere til dit d\u00f8dspunkt.
|
||||
backUsageMsg=\u00a77Teleporterer til tidligere placering.
|
||||
backupFinished=Backup sluttet
|
||||
backupStarted=Backup startet
|
||||
backUsageMsg=\u00a77Teleporterer til tidligere placering.
|
||||
balance=\u00a77Saldo: {0}
|
||||
balanceTop=\u00a77 Top saldoer ({0})
|
||||
balanceTop=\u00a77Top saldoer ({0})
|
||||
banExempt=\u00a7cDu kan ikke banne den p\u00e5g\u00e6ldende spiller.
|
||||
banIpAddress=\u00a77Bannede IP addresse
|
||||
bannedIpsFileError=Fejl i afl\u00e6sning af banned-ips.txt
|
||||
@@ -33,6 +33,8 @@ canTalkAgain=\u00a77Du kan nu snakke igen.
|
||||
cantFindGeoIpDB=Kan ikke finde GeoIP database!
|
||||
cantReadGeoIpDB=Fejl ved afl\u00e6sning af GeoIP database!
|
||||
cantSpawnItem=\u00a7cDu har ikke tilladelse til at skabe tingen.{0}
|
||||
chatTypeLocal=[L]
|
||||
chatTypeSpy=[Spy]
|
||||
commandFailed=Kommandoen {0} fejlede:
|
||||
commandHelpFailedForPlugin=Fejl ved hentning af hj\u00e6lp til: {0}
|
||||
commandNotLoaded=\u00a7cKommando {0} er ikke indl\u00e6st korrekt.
|
||||
@@ -62,14 +64,14 @@ depth=\u00a77Du er ved havoverfladen.
|
||||
depthAboveSea=\u00a77Du er {0} blok(ke) over havets overflade.
|
||||
depthBelowSea=\u00a77Du er {0} blok(ke) under havets overflade.
|
||||
destinationNotSet=Destination ikke sat
|
||||
disableUnlimited=\u00a77Deaktiverede ubergr\u00e6nset placering af {0} for {1}.
|
||||
disabled=deaktiveret
|
||||
disabledToSpawnMob=Skabelse af denne mob er deaktiveret i configfilen.
|
||||
disableUnlimited=\u00a77Deaktiverede ubergr\u00e6nset placering af {0} for {1}.
|
||||
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}
|
||||
enableUnlimited=\u00a77Giver ubegr\u00e6nset m\u00e6ngde af {0} til {1}.
|
||||
enabled=aktiveret
|
||||
enableUnlimited=\u00a77Giver ubegr\u00e6nset m\u00e6ngde af {0} til {1}.
|
||||
enchantmentApplied = \u00a77Enchantment {0} er blevet tilf\u00c3\u00b8jet til tingen i din h\u00c3\u00a5nd.
|
||||
enchantmentNotFound = \u00a7cEnchantment ikke fundet.
|
||||
enchantmentPerm = \u00a7cDu har ikke tilladelse til at {0}
|
||||
@@ -97,9 +99,9 @@ gcentities= entities
|
||||
gcfree=Free memory: {0} MB
|
||||
gcmax=Maximum memory: {0} MB
|
||||
gctotal=Allocated memory: {0} MB
|
||||
geoipJoinFormat=Spilleren {0} kommer fra {1}
|
||||
geoIpUrlEmpty=GeoIP download url er tom.
|
||||
geoIpUrlInvalid=GeoIP download url er ugyldig.
|
||||
geoipJoinFormat=Spilleren {0} kommer fra {1}
|
||||
godDisabledFor=deaktiveret for {0}
|
||||
godEnabledFor=aktiveret for {0}
|
||||
godMode=\u00a77Gud mode {0}.
|
||||
@@ -110,9 +112,9 @@ helpConsole=For at se hj\u00e6lp fra konsolen, skriv ?.
|
||||
helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
|
||||
helpPages=Side \u00a7c{0}\u00a7f af \u00a7c{1}\u00a7f:
|
||||
holeInFloor=Hul i gulv
|
||||
homes=Hjem: {0}
|
||||
homeSet=\u00a77Hjem sat.
|
||||
homeSetToBed=\u00a77Dit hjem er nu sat til denne seng.
|
||||
homes=Hjem: {0}
|
||||
hour=time
|
||||
hours=timer
|
||||
ignorePlayer=Du ignorerer spiller {0} fra nu af.
|
||||
@@ -122,28 +124,28 @@ infoChapterPages=Kapitel {0}, side \u00a7c{1}\u00a7f af \u00a7c{2}\u00a7f:
|
||||
infoFileDoesNotExist=Fil info.txt eksisterer ikke. Fixer liiige en for dig.
|
||||
infoPages=Side \u00a7c{0}\u00a7f af \u00a7c{1}\u00a7f:
|
||||
infoUnknownChapter=Ukendt kapitel.
|
||||
invBigger=Den anden brugers inventory er st\u00f8rre end din.
|
||||
invRestored=Din inventory er blevet genoprettet.
|
||||
invSee=Du ser {0}''s inventory.
|
||||
invSeeHelp=Brug /invsee for at genoprette din inventory.
|
||||
invalidCharge=\u00a7cUgyldig opladning (korrekt oversat?).
|
||||
invalidMob=Ugyldig mob type.
|
||||
invalidServer=Ugyldig server!
|
||||
invalidSignLine=Linje {0} p\u00e5 skilt er ugyldig.
|
||||
invalidWorld=\u00a7cUgyldig verden.
|
||||
invBigger=Den anden brugers inventory er st\u00f8rre end din.
|
||||
inventoryCleared=\u00a77Inventory ryddet.
|
||||
inventoryClearedOthers=\u00a7c{0}\u00a77''s inventory ryddet.
|
||||
invRestored=Din inventory er blevet genoprettet.
|
||||
invSee=Du ser {0}''s inventory.
|
||||
invSeeHelp=Brug /invsee for at genoprette din inventory.
|
||||
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.
|
||||
itemNotEnough1=\u00a7cDu har ikke nok af denne ting til at kunne s\u00e6lge.
|
||||
itemNotEnough2=\u00a77Hvis du mente, at du ville s\u00c3\u00a6lge alle ting af den type, brug da /sell tingens-navn
|
||||
itemNotEnough3=\u00a77/sell ting-navn -1 vil s\u00e6lge alle enheder, undtagen \u00c3\u00a9n, osv.
|
||||
itemsCsvNotLoaded=Kunne ikke loade items.csv.
|
||||
itemSellAir=Fors\u00f8gte du virkelig at s\u00e6lge luft? Kom en ting i h\u00e5nden, hattemand.
|
||||
itemSold=\u00a77Solgte til \u00a7c{0} \u00a77({1} {2} ting for {3} pr. stk.)
|
||||
itemSoldConsole={0} solgte {1} til \u00a77{2} \u00a77({3} ting for {4} pr. stk.)
|
||||
itemSpawn=\u00a77Giver {0} af {1}
|
||||
itemsCsvNotLoaded=Kunne ikke loade items.csv.
|
||||
jailAlreadyIncarcerated=\u00a7cSpilleren er allerede i f\u00c3\u00a6ngsel: {0}
|
||||
jailMessage=\u00a7cDu bryder reglerne, du tager straffen.
|
||||
jailNotExist=Det f\u00e6ngsel eksisterer ikke.
|
||||
@@ -160,8 +162,8 @@ 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?).
|
||||
kitInvFull=\u00a7cDin inventory er fuld, placerer kit p\u00e5 gulvet.
|
||||
kitTimed=\u00a7cDu kan ikke benytte dette kit igen i {0}.
|
||||
kits=\u00a77Kits: {0}
|
||||
kitTimed=\u00a7cDu kan ikke benytte dette kit igen i {0}.
|
||||
lightningSmited=\u00a77Du er blevet ramt af Guds vrede (din admin)
|
||||
lightningUse=\u00a77Kaster lyn efter {0}
|
||||
listAfkTag = \u00a77[AFK]\u00a7f
|
||||
@@ -169,14 +171,13 @@ listAmount = \u00a79Der er \u00a7c{0}\u00a79 ud af maksimum\u00a7c{1}\u00a79 spi
|
||||
listAmountHidden = \u00a79Der er \u00a7c{0}\u00a77/{1}\u00a79 ud af maksimum \u00a7c{2}\u00a79 spillere online.
|
||||
listHiddenTag = \u00a77[HIDDEN]\u00a7f
|
||||
loadWarpError=Kunne ikke l\u00c3\u00a6se warp {0}
|
||||
loadinfo=Loadede {0} build {1} af {2}
|
||||
localFormat=Local: <{0}> {1}
|
||||
mailClear=\u00a7cFor at markere din flaskepost som l\u00e6st, skriv /mail clear
|
||||
mailCleared=\u00a77Flaskepot ryddet!
|
||||
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.
|
||||
markMailAsRead=\u00a7cFor at markere din flaskepost som l\u00e6st, skriv /mail clear
|
||||
maxHomes=Du kan ikke have mere end {0} hjem.
|
||||
mayNotJail=\u00a7cDu kan ikke smide denne person i f\u00c3\u00a6ngsel.
|
||||
me=mig
|
||||
@@ -184,10 +185,10 @@ minute=minut
|
||||
minutes=minutter
|
||||
missingItems=Du har ikke {0}x {1}.
|
||||
missingPrefixSuffix=Mangler et pr\u00e6fiks eller suffiks for {0}
|
||||
mobsAvailable=\u00a77Mobs: {0}
|
||||
mobSpawnError=Fejl ved \u00e6ndring af mob spawner.
|
||||
mobSpawnLimit=Mob m\u00e6ngde begr\u00e6nset til serverens fastsatte gr\u00e6nse.
|
||||
mobSpawnTarget=M\u00e5l blok skal v\u00e6re en mob spawner.
|
||||
mobsAvailable=\u00a77Mobs: {0}
|
||||
moneyRecievedFrom=\u00a7a{0} er modtaget fra {1}
|
||||
moneySentTo=\u00a7a{0} er sendt til {1}
|
||||
moneyTaken={0} blev taget fra din bankkonto.
|
||||
@@ -195,10 +196,10 @@ month=m\u00e5nede
|
||||
months=m\u00e5neder
|
||||
moreThanZero=M\u00e6ngder skal v\u00e6re st\u00f8rre end 0.
|
||||
msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
|
||||
muteExempt=\u00a7cDu kan ikke mute denne spiller.
|
||||
mutedPlayer=Spiller {0} muted.
|
||||
mutedPlayerFor=Spiller {0} muted i {1}.
|
||||
mutedUserSpeaks={0} pr\u00f8vede at snakke, men er muted.
|
||||
muteExempt=\u00a7cDu kan ikke mute denne spiller.
|
||||
nearbyPlayers=Spillere i n\u00c3\u00a6rheden: {0}
|
||||
needTpohere=Du skal have adgang til /tpohere for at teleportere andre spillere.
|
||||
negativeBalanceError=Brugeren har ikke tilladelse til at have en negativ saldo.
|
||||
@@ -220,6 +221,7 @@ noKitPermission=\u00a7cDu har brug for \u00a7c{0}\u00a7c permission for at bruge
|
||||
noKits=\u00a77Der er ikke nogen kits tilg\u00e6ngelige endnu
|
||||
noMail=Du har ikke noget flaskepost.
|
||||
noMotd=\u00a7cDer er ingen Message of the day.
|
||||
none=ingen
|
||||
noNewMail=\u00a77Du har ingen ny flaskepost.
|
||||
noPendingRequest=Du har ikke en ventende anmodning.
|
||||
noPerm=\u00a7cDu har ikke \u00a7f{0}\u00a7c permission.
|
||||
@@ -227,29 +229,21 @@ noPermToSpawnMob=\u00a7cDu har ikke tilladelse til at spawne denne mob.
|
||||
noPlacePermission=\u00a7cDu har ikke tiladelse til at placere en block n\u00c3\u00a6r det skilt.
|
||||
noPowerTools= Du har ingen power tools tilf\u00c3\u00b8jet.
|
||||
noRules=\u00a7cDer er ingen regler endnu. ANARKI!
|
||||
noWarpsDefined=Ingen warps er defineret
|
||||
none=ingen
|
||||
notAllowedToQuestion=\u00a7cDu har ikke tilladelse til at bruge sp\u00f8rgsm\u00e5l.
|
||||
notAllowedToShout=\u00a7cDu har ikke tilladelse til at r\u00e5be.
|
||||
notEnoughExperience=You do not have enough experience.
|
||||
notEnoughMoney=Du har ikke tilstr\u00e6kkeligt med penge.
|
||||
nothingInHand = \u00a7cDu har intet i din h\u00c3\u00a5nd.
|
||||
notRecommendedBukkit=* ! * Bukkit version er ikke den anbefalede build til Essentials.
|
||||
notSupportedYet=Ikke underst\u00f8ttet endnu.
|
||||
nothingInHand = \u00a7cDu har intet i din h\u00c3\u00a5nd.
|
||||
now=nu
|
||||
noWarpsDefined=Ingen warps er defineret
|
||||
nuke=May death rain upon them
|
||||
numberRequired=Et nummer skal v\u00e6re, din tardo.
|
||||
onlyDayNight=/time underst\u00f8tter kun day/night.
|
||||
onlyPlayers=Kun in-game spillere kan bruge {0}.
|
||||
onlySunStorm=/weather underst\u00c3\u00b8tter kun sun/storm.
|
||||
orderBalances=Tjekker saldoer af {0} spillere, vent venligst...
|
||||
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.
|
||||
pTimeOthersPermission=\u00a7cDu har ikke tilladelse til at \u00c3\u00a6ndre andre spilleres tid.
|
||||
pTimePlayers=Disse spillere har deres egen tid:
|
||||
pTimeReset=Spiler-tid er blevet nulstillet for: \u00a7e{0} (oversat korrekt?)
|
||||
pTimeSet=Spiller-tid er blevet sat til \u00a73{0}\u00a7f for: \u00a7e{1} (oversat korrekt?)
|
||||
pTimeSetFixed=Spiller-tid er fastsat til \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
parseError=Fejl ved parsing af {0} p\u00e5 linje {1}
|
||||
pendingTeleportCancelled=\u00a7cAnmodning om teleport er blevet afvist.
|
||||
permissionsError=Mangler Permissions/GroupManager; chat pr\u00e6fikser/suffikser vil v\u00e6re deaktiveret.
|
||||
@@ -277,6 +271,14 @@ powerToolRemoveAll=Alle kommandoer fjernet fra {0}.
|
||||
powerToolsDisabled= Alle dine power tools er blevet deaktiveret.
|
||||
powerToolsEnabled= Alle dine power tools er blevet aktiveret.
|
||||
protectionOwner=\u00a76[EssentialsProtect] Protection owner: {0}
|
||||
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.
|
||||
pTimeOthersPermission=\u00a7cDu har ikke tilladelse til at \u00c3\u00a6ndre andre spilleres tid.
|
||||
pTimePlayers=Disse spillere har deres egen tid:
|
||||
pTimeReset=Spiler-tid er blevet nulstillet for: \u00a7e{0} (oversat korrekt?)
|
||||
pTimeSet=Spiller-tid er blevet sat til \u00a73{0}\u00a7f for: \u00a7e{1} (oversat korrekt?)
|
||||
pTimeSetFixed=Spiller-tid er fastsat til \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
questionFormat=\u00a77[Sp\u00f8rgsm\u00e5l]\u00a7f {0}
|
||||
readNextPage=Skriv /{0} {1} for at l\u00c3\u00a6se n\u00c3\u00a6ste side.
|
||||
reloadAllPlugins=\u00a77Reload alle plugins.
|
||||
@@ -291,13 +293,15 @@ requestAcceptedFrom=\u00a77{0} accepterede din anmodning om teleport.
|
||||
requestDenied=\u00a77Anmodning om teleport afvist.
|
||||
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://ci.bukkit.org.
|
||||
returnPlayerToJailError=En fejl opstod ved fors\u00f8g p\u00e5 at returnere spilleren til f\u00e6ngsel.
|
||||
returnPlayerToJailError=Error occurred when trying to return player {0} to jail: {1}
|
||||
second=sekund
|
||||
seconds=sekunder
|
||||
seenOffline=Spilleren {0} har v\u00c3\u00a6ret offline i {1}
|
||||
seenOnline=Spilleren {0} har v\u00c3\u00a6ret online i {1}
|
||||
serverFull=Serveren er sgu fuld. Den b\u00c3\u00b8r melde sig til AA.
|
||||
serverTotal=Server Total: {0}
|
||||
setSpawner=\u00c3\u0086ndrede spawner type til {0}
|
||||
sheepMalformedColor=Forkert farve. (Korrekt oversat?)
|
||||
shoutFormat=\u00a77[Shout]\u00a7f {0}
|
||||
@@ -308,28 +312,29 @@ signProtectInvalidLocation=\u00a74Du har ikke tilladelse til at lave et skilt he
|
||||
similarWarpExist=En warp med dette navn eksisterer allerede.
|
||||
slimeMalformedSize=Forkert st\u00f8rrelse. (Korrekt oversat?)
|
||||
soloMob=Denne mob kan godt lide at v\u00e6re alene. Den hygger sig.
|
||||
spawnSet=\u00a77Spawnplacering fastsat for gruppe: {0}.
|
||||
spawned=spawnet
|
||||
spawnSet=\u00a77Spawnplacering fastsat for gruppe: {0}.
|
||||
suicideMessage=\u00a77Farvel grusomme verden...
|
||||
suicideSuccess= \u00a77{0} tog sit eget liv
|
||||
survival=survival
|
||||
takenFromAccount=\u00a7c{0} er blevet taget fra din konto.
|
||||
takenFromOthersAccount=\u00a7c{0} er blevet taget fra {1}''s konto.
|
||||
takenFromOthersAccount=\u00a7c{0} taken from {1}\u00a7c account. New balance: {2}
|
||||
teleportAAll=\u00a77Anmodning om teleport er sendt til alle spillere.
|
||||
teleportAll=\u00a77Teleporterer alle spillere...
|
||||
teleportAtoB=\u00a77{0}\u00a77 teleporterede dig til {1}\u00a77.
|
||||
teleportDisabled={0} har ikke teleportation aktiveret.
|
||||
teleportHereRequest=\u00a7c{0}\u00a7c har anmodet om, at du teleporterer dig til ham/hende.
|
||||
teleportNewPlayerError=Fejlede ved teleportering af ny spiller
|
||||
teleportRequest=\u00a7c{0}\u00a7c har anmodet om at teleportere til dig.
|
||||
teleportTop=\u00a77Teleporterer til toppen.
|
||||
teleportationCommencing=\u00a77Teleport begynder...
|
||||
teleportationDisabled=\u00a77Teleport deaktiveret.
|
||||
teleportationEnabled=\u00a77Teleport aktiveret.
|
||||
teleportAtoB=\u00a77{0}\u00a77 teleporterede dig til {1}\u00a77.
|
||||
teleportDisabled={0} har ikke teleportation aktiveret.
|
||||
teleportHereRequest=\u00a7c{0}\u00a7c har anmodet om, at du teleporterer dig til ham/hende.
|
||||
teleporting=\u00a77Teleporterer...
|
||||
teleportingPortal=\u00a77Teleporterede via portal.
|
||||
tempBanned=Midlertidigt bannet fra serveren for {0}
|
||||
teleportNewPlayerError=Fejlede ved teleportering af ny spiller
|
||||
teleportRequest=\u00a7c{0}\u00a7c har anmodet om at teleportere til dig.
|
||||
teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds.
|
||||
teleportTop=\u00a77Teleporterer til toppen.
|
||||
tempbanExempt=\u00a77Du m\u00c3\u00a5 ikke tempbanne denne spiller! Slemme, slemme du!
|
||||
tempBanned=Midlertidigt bannet fra serveren for {0}
|
||||
thunder= Du har nu {0} torden i din verden
|
||||
thunderDuration=Du har nu {0} torden i din verden i {1} sekunder.
|
||||
timeBeforeHeal=Tid f\u00c3\u00b8r du kan heale igen: {0}
|
||||
@@ -360,25 +365,25 @@ unlimitedItemPermission=\u00a7cIngen tilladelse til ubegr\u00e6nset ting {0}.
|
||||
unlimitedItems=Ubegr\u00c3\u00a6nsede ting:
|
||||
unmutedPlayer=Spilleren {0} unmuted.
|
||||
upgradingFilesError=Fejl under opgradering af filerne.
|
||||
userdataMoveBackError=Kunne ikke flytte userdata/{0}.tmp til userdata/{1}
|
||||
userdataMoveError=Kunne ikke flytte userdata/{0} til userdata/{1}.tmp
|
||||
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.
|
||||
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
|
||||
usingTempFolderForTesting=Bruger temp-mappe til testing:
|
||||
versionMismatch=Versioner matcher ikke! Opdater venligst {0} til den nyeste version.
|
||||
versionMismatchAll=Versioner matcher ikke! Opdater venligst alle Essentials jar-filer til samme version.
|
||||
voiceSilenced=\u00a77Din stemme er blevet gjort stille.
|
||||
warpDeleteError=Ah, shit; kunne sgu ikke fjerne warp-filen. Jeg giver en \u00c3\u00b8l i lufthavnen.
|
||||
warpingTo=\u00a77Warper til {0}.
|
||||
warpListPermission=\u00a7cDu har ikke tilladelse til at vise listen over warps.
|
||||
warpNotExist=Den warp eksisterer ikke.
|
||||
warpSet=\u00a77Warp {0} sat.
|
||||
warpUsePermission=\u00a7cDu har ikke tilladelse til at benytte den warp.
|
||||
warpingTo=\u00a77Warper til {0}.
|
||||
warps=Warps: {0}
|
||||
warpsCount=\u00a77Der er {0} warps. Viser side {1} af {2}.
|
||||
warpSet=\u00a77Warp {0} sat.
|
||||
warpUsePermission=\u00a7cDu har ikke tilladelse til at benytte den warp.
|
||||
weatherStorm=\u00a77Du har sat vejret til ''storm'' i {0}
|
||||
weatherStormFor=\u00a77Du har sat vejret til ''storm'' i {0} i {1} sekunder
|
||||
weatherSun=\u00a77Du har sat vejret til ''sol'' i {0}
|
||||
@@ -402,5 +407,3 @@ 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.
|
||||
requestTimedOut=\u00a7cTeleport request has timed out
|
||||
teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds.
|
||||
@@ -4,7 +4,7 @@
|
||||
# by:
|
||||
action=* {0} {1}
|
||||
addedToAccount=\u00a7a{0} wurden zu deiner Geldb\u00f6rse hinzugef\u00fcgt.
|
||||
addedToOthersAccount=\u00a7a{0} wurden zu {1}s Konto hinzugef\u00fcgt.
|
||||
addedToOthersAccount=\u00a7a{0} added to {1}\u00a7a account. New balance: {2}
|
||||
alertBroke=zerst\u00f6rt:
|
||||
alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} bei: {3}
|
||||
alertPlaced=platziert:
|
||||
@@ -15,7 +15,7 @@ backUsageMsg=\u00a77Kehre zur letzten Position zur\u00fcck.
|
||||
backupFinished=Backup beendet
|
||||
backupStarted=Backup gestartet
|
||||
balance=\u00a77Geldb\u00f6rse: {0}
|
||||
balanceTop=\u00a77 Top Guthaben ({0})
|
||||
balanceTop=\u00a77Top Guthaben ({0})
|
||||
banExempt=\u00a7cDu kannst diesen Spieler nicht sperren.
|
||||
banIpAddress=\u00a77IP-Adresse gesperrt.
|
||||
bannedIpsFileError=Fehler beim Lesen von banned-ips.txt
|
||||
@@ -33,6 +33,8 @@ canTalkAgain=\u00a77Du kannst wieder sprechen.
|
||||
cantFindGeoIpDB=Kann GeoIP-Datenbank nicht finden!
|
||||
cantReadGeoIpDB=Fehler beim Einlesen der GeoIP-Datenbank!
|
||||
cantSpawnItem=\u00a7cDu darfst {0} nicht erzeugen.
|
||||
chatTypeLocal=[L]
|
||||
chatTypeSpy=[Spy]
|
||||
commandFailed=Befehl {0} scheiterte:
|
||||
commandHelpFailedForPlugin=Fehler beim Abrufen der Hilfe f\u00fcr: {0}
|
||||
commandNotLoaded=\u00a7cBefehl {0} ist nicht richtig geladen.
|
||||
@@ -169,7 +171,6 @@ listAmount = \u00a79Es sind \u00a7c{0}\u00a79 von maximal \u00a7c{1}\u00a79 Spie
|
||||
listAmountHidden = \u00a79Es sind \u00a7c{0}\u00a77/{1}\u00a79 von maximal \u00a7c{2}\u00a79 Spielern online.
|
||||
listHiddenTag = \u00a77[Versteckt]\u00a7f
|
||||
loadWarpError=Fehler beim Laden von Warp-Punkt {0}
|
||||
loadinfo=Plugin {0} Version {1} geladen, erstellt von {2}, \u00fcbersetzt von snowleo
|
||||
localFormat=Lokal: <{0}> {1}
|
||||
mailClear=\u00a7cUm deine Nachrichten zu l\u00f6schen, schreibe /mail clear
|
||||
mailCleared=\u00a77Nachrichten gel\u00f6scht!
|
||||
@@ -237,6 +238,7 @@ notRecommendedBukkit=* ! * Die verwendete Bukkit-Version ist nicht f\u00fcr Esse
|
||||
notSupportedYet=Noch nicht verf\u00fcgbar.
|
||||
nothingInHand = \u00a7cYou have nothing in your hand.
|
||||
now=jetzt
|
||||
nuke=May death rain upon them
|
||||
numberRequired=Ein Zahl wird ben\u00f6tigt.
|
||||
onlyDayNight=/time unterst\u00fctzt nur day und night.
|
||||
onlyPlayers=Nur Spieler k\u00f6nnen {0} benutzen.
|
||||
@@ -291,13 +293,15 @@ requestAcceptedFrom=\u00a77{0} hat deine Teleportierungsanfrage angenommen.
|
||||
requestDenied=\u00a77Teleportierungsanfrage verweigert.
|
||||
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://ci.bukkit.org.
|
||||
returnPlayerToJailError=Fehler beim Versuch, den Spieler ins Gef\u00e4ngnis zu teleportieren.
|
||||
returnPlayerToJailError=Error occurred when trying to return player {0} to jail: {1}
|
||||
second=Sekunde
|
||||
seconds=Sekunden
|
||||
seenOffline=Spieler {0} ist offline seit {1}
|
||||
seenOnline=Spieler {0} ist online seit {1}
|
||||
serverFull=Server ist voll
|
||||
serverTotal=Server Total: {0}
|
||||
setSpawner=\u00c4ndere Mob-Spawner zu {0}
|
||||
sheepMalformedColor=Ung\u00fcltige Farbe.
|
||||
shoutFormat=\u00a77[Schrei]\u00a7f {0}
|
||||
@@ -314,7 +318,7 @@ suicideMessage=\u00a77Lebewohl grausame Welt...
|
||||
suicideSuccess= \u00a77{0} hat sich das Leben genommen.
|
||||
survival=survival
|
||||
takenFromAccount=\u00a7c{0} wurden aus deiner Geldb\u00f6rse genommen.
|
||||
takenFromOthersAccount=\u00a7c{0} wurde von {1} wurde Rechnung getragen.
|
||||
takenFromOthersAccount=\u00a7c{0} taken from {1}\u00a7c account. New balance: {2}
|
||||
teleportAAll=\u00a77Teleportierungsanfrage zu allen Spielern gesendet...
|
||||
teleportAll=\u00a77Teleportiere alle Spieler...
|
||||
teleportAtoB=\u00a77{0}\u00a77 teleportiert dich zu {1}\u00a77.
|
||||
@@ -322,6 +326,7 @@ teleportDisabled={0} verweigert die Teleportierung.
|
||||
teleportHereRequest=\u00a7c{0}\u00a7c fragt, ob du dich zu ihm teleportierst.
|
||||
teleportNewPlayerError=Fehler beim Teleportieren eines neuen Spielers
|
||||
teleportRequest=\u00a7c{0}\u00a7c fragt, ob er sich zu dir teleportieren darf.
|
||||
teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds.
|
||||
teleportTop=\u00a77Teleportiere nach oben.
|
||||
teleportationCommencing=\u00a77Teleportierung gestartet...
|
||||
teleportationDisabled=\u00a77Teleportierung deaktiviert.
|
||||
@@ -402,5 +407,3 @@ year=Jahr
|
||||
years=Jahre
|
||||
youAreHealed=\u00a77Du wurdest geheilt.
|
||||
youHaveNewMail=\u00a7cDu hast {0} Nachrichten!\u00a7f Schreibe \u00a77/mail read\u00a7f um deine Nachrichten anzuzeigen.
|
||||
requestTimedOut=\u00a7cTeleport request has timed out
|
||||
teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds.
|
||||
@@ -4,18 +4,18 @@
|
||||
# by:
|
||||
action=* {0} {1}
|
||||
addedToAccount=\u00a7a{0} has been added to your account.
|
||||
addedToOthersAccount=\u00a7a{0} has been added to {1} account.
|
||||
addedToOthersAccount=\u00a7a{0} added to {1}\u00a7a account. New balance: {2}
|
||||
alertBroke=broke:
|
||||
alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} at: {3}
|
||||
alertPlaced=placed:
|
||||
alertUsed=used:
|
||||
autoAfkKickReason=You have been kicked for idling more than {0} minutes.
|
||||
backAfterDeath=\u00a77Use the /back command to return to your death point.
|
||||
backUsageMsg=\u00a77Returning to previous location.
|
||||
backupFinished=Backup finished
|
||||
backupStarted=Backup started
|
||||
backUsageMsg=\u00a77Returning to previous location.
|
||||
balance=\u00a77Balance: {0}
|
||||
balanceTop=\u00a77 Top balances ({0})
|
||||
balanceTop=\u00a77Top balances ({0})
|
||||
banExempt=\u00a7cYou can not ban that player.
|
||||
banIpAddress=\u00a77Banned IP address
|
||||
bannedIpsFileError=Error reading banned-ips.txt
|
||||
@@ -33,6 +33,8 @@ canTalkAgain=\u00a77You can talk again
|
||||
cantFindGeoIpDB=Can''t find GeoIP database!
|
||||
cantReadGeoIpDB=Failed to read GeoIP database!
|
||||
cantSpawnItem=\u00a7cYou are not allowed to spawn the item {0}
|
||||
chatTypeLocal=[L]
|
||||
chatTypeSpy=[Spy]
|
||||
commandFailed=Command {0} failed:
|
||||
commandHelpFailedForPlugin=Error getting help for: {0}
|
||||
commandNotLoaded=\u00a7cCommand {0} is improperly loaded.
|
||||
@@ -62,14 +64,14 @@ depth=\u00a77You are at sea level.
|
||||
depthAboveSea=\u00a77You are {0} block(s) above sea level.
|
||||
depthBelowSea=\u00a77You are {0} block(s) below sea level.
|
||||
destinationNotSet=Destination not set
|
||||
disableUnlimited=\u00a77Disabled unlimited placing of {0} for {1}.
|
||||
disabled=disabled
|
||||
disabledToSpawnMob=Spawning this mob was disabled in the config file.
|
||||
disableUnlimited=\u00a77Disabled unlimited placing of {0} for {1}.
|
||||
dontMoveMessage=\u00a77Teleportation will commence in {0}. Don''t move.
|
||||
downloadingGeoIp=Downloading GeoIP database ... this might take a while (country: 0.6 MB, city: 20MB)
|
||||
duplicatedUserdata=Duplicated userdata: {0} and {1}
|
||||
enableUnlimited=\u00a77Giving unlimited amount of {0} to {1}.
|
||||
enabled=enabled
|
||||
enableUnlimited=\u00a77Giving unlimited amount of {0} to {1}.
|
||||
enchantmentApplied = \u00a77The enchantment {0} has been applied to your item in hand.
|
||||
enchantmentNotFound = \u00a7cEnchantment not found
|
||||
enchantmentPerm = \u00a7cYou do not have the permission for {0}
|
||||
@@ -97,9 +99,9 @@ gcentities= entities
|
||||
gcfree=Free memory: {0} MB
|
||||
gcmax=Maximum memory: {0} MB
|
||||
gctotal=Allocated memory: {0} MB
|
||||
geoipJoinFormat=Player {0} comes from {1}
|
||||
geoIpUrlEmpty=GeoIP download url is empty.
|
||||
geoIpUrlInvalid=GeoIP download url is invalid.
|
||||
geoipJoinFormat=Player {0} comes from {1}
|
||||
godDisabledFor=disabled for {0}
|
||||
godEnabledFor=enabled for {0}
|
||||
godMode=\u00a77God mode {0}.
|
||||
@@ -110,9 +112,9 @@ helpConsole=To view help from the console, type ?.
|
||||
helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
|
||||
helpPages=Page \u00a7c{0}\u00a7f of \u00a7c{1}\u00a7f:
|
||||
holeInFloor=Hole in floor
|
||||
homes=Homes: {0}
|
||||
homeSet=\u00a77Home set.
|
||||
homeSetToBed=\u00a77Your home is now set to this bed.
|
||||
homes=Homes: {0}
|
||||
hour=hour
|
||||
hours=hours
|
||||
ignorePlayer=You ignore player {0} from now on.
|
||||
@@ -122,28 +124,28 @@ infoChapterPages=Chapter {0}, page \u00a7c{1}\u00a7f of \u00a7c{2}\u00a7f:
|
||||
infoFileDoesNotExist=File info.txt does not exist. Creating one for you.
|
||||
infoPages=Page \u00a7c{0}\u00a7f of \u00a7c{1}\u00a7f:
|
||||
infoUnknownChapter=Unknown chapter.
|
||||
invBigger=The other users inventory is bigger than yours.
|
||||
invRestored=Your inventory has been restored.
|
||||
invSee=You see the inventory of {0}.
|
||||
invSeeHelp=Use /invsee to restore your inventory.
|
||||
invalidCharge=\u00a7cInvalid charge.
|
||||
invalidMob=Invalid mob type.
|
||||
invalidServer=Invalid server!
|
||||
invalidSignLine=Line {0} on sign is invalid.
|
||||
invalidWorld=\u00a7cInvalid world.
|
||||
invBigger=The other users inventory is bigger than yours.
|
||||
inventoryCleared=\u00a77Inventory Cleared.
|
||||
inventoryClearedOthers=\u00a77Inventory of \u00a7c{0}\u00a77 cleared.
|
||||
invRestored=Your inventory has been restored.
|
||||
invSee=You see the inventory of {0}.
|
||||
invSeeHelp=Use /invsee to restore your inventory.
|
||||
is=is
|
||||
itemCannotBeSold=That item cannot be sold to the server.
|
||||
itemMustBeStacked=Item must be traded in stacks. A quantity of 2s would be two stacks, etc.
|
||||
itemNotEnough1=\u00a7cYou do not have enough of that item to sell.
|
||||
itemNotEnough2=\u00a77If you meant to sell all of your items of that type, use /sell itemname
|
||||
itemNotEnough3=\u00a77/sell itemname -1 will sell all but one item, etc.
|
||||
itemsCsvNotLoaded=Could not load items.csv.
|
||||
itemSellAir=You really tried to sell Air? Put an item in your hand.
|
||||
itemSold=\u00a77Sold for \u00a7c{0} \u00a77({1} {2} at {3} each)
|
||||
itemSoldConsole={0} sold {1} for \u00a77{2} \u00a77({3} items at {4} each)
|
||||
itemSpawn=\u00a77Giving {0} of {1}
|
||||
itemsCsvNotLoaded=Could not load items.csv.
|
||||
jailAlreadyIncarcerated=\u00a7cPerson is already in jail: {0}
|
||||
jailMessage=\u00a7cYou do the crime, you do the time.
|
||||
jailNotExist=That jail does not exist.
|
||||
@@ -160,8 +162,8 @@ kitError=\u00a7cThere are no valid kits.
|
||||
kitErrorHelp=\u00a7cPerhaps an item is missing a quantity in the configuration?
|
||||
kitGive=\u00a77Giving kit {0}.
|
||||
kitInvFull=\u00a7cYour inventory was full, placing kit on the floor
|
||||
kitTimed=\u00a7cYou can''t use that kit again for another {0}.
|
||||
kits=\u00a77Kits: {0}
|
||||
kitTimed=\u00a7cYou can''t use that kit again for another {0}.
|
||||
lightningSmited=\u00a77You have just been smited
|
||||
lightningUse=\u00a77Smiting {0}
|
||||
listAfkTag = \u00a77[AFK]\u00a7f
|
||||
@@ -169,14 +171,13 @@ listAmount = \u00a79There are \u00a7c{0}\u00a79 out of maximum \u00a7c{1}\u00a79
|
||||
listAmountHidden = \u00a79There are \u00a7c{0}\u00a77/{1}\u00a79 out of maximum \u00a7c{2}\u00a79 players online.
|
||||
listHiddenTag = \u00a77[HIDDEN]\u00a7f
|
||||
loadWarpError=Failed to load warp {0}
|
||||
loadinfo=Loaded {0} build {1} by: {2}
|
||||
localFormat=Local: <{0}> {1}
|
||||
mailClear=\u00a7cTo mark your mail as read, type /mail clear
|
||||
mailCleared=\u00a77Mail Cleared!
|
||||
mailSent=\u00a77Mail sent!
|
||||
markMailAsRead=\u00a7cTo mark your mail as read, type /mail clear
|
||||
markedAsAway=\u00a77You are now marked as away.
|
||||
markedAsNotAway=\u00a77You are no longer marked as away.
|
||||
markMailAsRead=\u00a7cTo mark your mail as read, type /mail clear
|
||||
maxHomes=You cannot set more than {0} homes.
|
||||
mayNotJail=\u00a7cYou may not jail that person
|
||||
me=me
|
||||
@@ -184,10 +185,10 @@ minute=minute
|
||||
minutes=minutes
|
||||
missingItems=You do not have {0}x {1}.
|
||||
missingPrefixSuffix=Missing a prefix or suffix for {0}
|
||||
mobsAvailable=\u00a77Mobs: {0}
|
||||
mobSpawnError=Error while changing mob spawner.
|
||||
mobSpawnLimit=Mob quantity limited to server limit
|
||||
mobSpawnTarget=Target block must be a mob spawner.
|
||||
mobsAvailable=\u00a77Mobs: {0}
|
||||
moneyRecievedFrom=\u00a7a{0} has been received from {1}
|
||||
moneySentTo=\u00a7a{0} has been sent to {1}
|
||||
moneyTaken={0} taken from your bank account.
|
||||
@@ -195,10 +196,10 @@ month=month
|
||||
months=months
|
||||
moreThanZero=Quantities must be greater than 0.
|
||||
msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
|
||||
muteExempt=\u00a7cYou may not mute that player.
|
||||
mutedPlayer=Player {0} muted.
|
||||
mutedPlayerFor=Player {0} muted for {1}.
|
||||
mutedUserSpeaks={0} tried to speak, but is muted.
|
||||
muteExempt=\u00a7cYou may not mute that player.
|
||||
nearbyPlayers=Players nearby: {0}
|
||||
needTpohere=You need access to /tpohere to teleport other players.
|
||||
negativeBalanceError=User is not allowed to have a negative balance.
|
||||
@@ -220,6 +221,7 @@ noKitPermission=\u00a7cYou need the \u00a7c{0}\u00a7c permission to use that kit
|
||||
noKits=\u00a77There are no kits available yet
|
||||
noMail=You do not have any mail
|
||||
noMotd=\u00a7cThere is no message of the day.
|
||||
none=none
|
||||
noNewMail=\u00a77You have no new mail.
|
||||
noPendingRequest=You do not have a pending request.
|
||||
noPerm=\u00a7cYou do not have the \u00a7f{0}\u00a7c permission.
|
||||
@@ -227,29 +229,21 @@ noPermToSpawnMob=\u00a7cYou don''t have permission to spawn this mob.
|
||||
noPlacePermission=\u00a7cYou do not have permission to place a block near that sign.
|
||||
noPowerTools=You have no power tools assigned.
|
||||
noRules=\u00a7cThere are no rules specified yet.
|
||||
noWarpsDefined=No warps defined
|
||||
none=none
|
||||
notAllowedToQuestion=\u00a7cYou are not authorized to use question.
|
||||
notAllowedToShout=\u00a7cYou are not authorized to shout.
|
||||
notEnoughExperience=You do not have enough experience.
|
||||
notEnoughMoney=You do not have sufficient funds.
|
||||
nothingInHand = \u00a7cYou have nothing in your hand.
|
||||
notRecommendedBukkit=* ! * Bukkit version is not the recommended build for Essentials.
|
||||
notSupportedYet=Not supported yet.
|
||||
nothingInHand = \u00a7cYou have nothing in your hand.
|
||||
now=now
|
||||
noWarpsDefined=No warps defined
|
||||
nuke=May death rain upon them
|
||||
numberRequired=A number goes there, silly.
|
||||
onlyDayNight=/time only supports day/night.
|
||||
onlyPlayers=Only in-game players can use {0}.
|
||||
onlySunStorm=/weather only supports sun/storm.
|
||||
orderBalances=Ordering balances of {0} users, please wait ...
|
||||
pTimeCurrent=\u00a7e{0}''s\u00a7f time is {1}.
|
||||
pTimeCurrentFixed=\u00a7e{0}''s\u00a7f time is fixed to {1}.
|
||||
pTimeNormal=\u00a7e{0}''s\u00a7f time is normal and matches the server.
|
||||
pTimeOthersPermission=\u00a7cYou are not authorized to set other players'' time.
|
||||
pTimePlayers=These players have their own time:
|
||||
pTimeReset=Player time has been reset for: \u00a7e{0}
|
||||
pTimeSet=Player time is set to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
pTimeSetFixed=Player time is fixed to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
parseError=Error parsing {0} on line {1}
|
||||
pendingTeleportCancelled=\u00a7cPending teleportation request cancelled.
|
||||
permissionsError=Missing Permissions/GroupManager; chat prefixes/suffixes will be disabled.
|
||||
@@ -277,6 +271,14 @@ powerToolRemoveAll=All commands removed from {0}.
|
||||
powerToolsDisabled=All of your power tools have been enabled.
|
||||
powerToolsEnabled=All of your power tools have been enabled.
|
||||
protectionOwner=\u00a76[EssentialsProtect] Protection owner: {0}
|
||||
pTimeCurrent=\u00a7e{0}''s\u00a7f time is {1}.
|
||||
pTimeCurrentFixed=\u00a7e{0}''s\u00a7f time is fixed to {1}.
|
||||
pTimeNormal=\u00a7e{0}''s\u00a7f time is normal and matches the server.
|
||||
pTimeOthersPermission=\u00a7cYou are not authorized to set other players'' time.
|
||||
pTimePlayers=These players have their own time:
|
||||
pTimeReset=Player time has been reset for: \u00a7e{0}
|
||||
pTimeSet=Player time is set to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
pTimeSetFixed=Player time is fixed to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
questionFormat=\u00a77[Question]\u00a7f {0}
|
||||
readNextPage=Type /{0} {1} to read the next page
|
||||
reloadAllPlugins=\u00a77Reloaded all plugins.
|
||||
@@ -291,13 +293,15 @@ requestAcceptedFrom=\u00a77{0} accepted your teleport request.
|
||||
requestDenied=\u00a77Teleport request denied.
|
||||
requestDeniedFrom=\u00a77{0} denied your teleport request
|
||||
requestSent=\u00a77Request sent to {0}\u00a77.
|
||||
requestTimedOut=\u00a7cTeleport request has timed out
|
||||
requiredBukkit=* ! * You need atleast build {0} of CraftBukkit, download it from http://ci.bukkit.org.
|
||||
returnPlayerToJailError=Error occurred when trying to return player to jail.
|
||||
returnPlayerToJailError=Error occurred when trying to return player {0} to jail: {1}
|
||||
second=second
|
||||
seconds=seconds
|
||||
seenOffline=Player {0} is offline since {1}
|
||||
seenOnline=Player {0} is online since {1}
|
||||
serverFull=Server is full
|
||||
serverTotal=Server Total: {0}
|
||||
setSpawner=Changed spawner type to {0}
|
||||
sheepMalformedColor=Malformed color.
|
||||
shoutFormat=\u00a77[Shout]\u00a7f {0}
|
||||
@@ -308,28 +312,29 @@ signProtectInvalidLocation=\u00a74You are not allowed to create sign here.
|
||||
similarWarpExist=A warp with a similar name already exists.
|
||||
slimeMalformedSize=Malformed size.
|
||||
soloMob=That mob likes to be alone
|
||||
spawnSet=\u00a77Spawn location set for group {0}.
|
||||
spawned=spawned
|
||||
spawnSet=\u00a77Spawn location set for group {0}.
|
||||
suicideMessage=\u00a77Goodbye Cruel World...
|
||||
suicideSuccess= \u00a77{0} took their own life
|
||||
survival=survival
|
||||
takenFromAccount=\u00a7c{0} has been taken from your account.
|
||||
takenFromOthersAccount=\u00a7c{0} has been taken from {1} account.
|
||||
takenFromOthersAccount=\u00a7c{0} taken from {1}\u00a7c account. New balance: {2}
|
||||
teleportAAll=\u00a77Teleporting request sent to all players...
|
||||
teleportAll=\u00a77Teleporting all players...
|
||||
teleportAtoB=\u00a77{0}\u00a77 teleported you to {1}\u00a77.
|
||||
teleportDisabled={0} has teleportation disabled.
|
||||
teleportHereRequest=\u00a7c{0}\u00a7c has requested that you teleport to them.
|
||||
teleportNewPlayerError=Failed to teleport new player
|
||||
teleportRequest=\u00a7c{0}\u00a7c has requested to teleport to you.
|
||||
teleportTop=\u00a77Teleporting to top.
|
||||
teleportationCommencing=\u00a77Teleportation commencing...
|
||||
teleportationDisabled=\u00a77Teleportation disabled.
|
||||
teleportationEnabled=\u00a77Teleportation enabled.
|
||||
teleportAtoB=\u00a77{0}\u00a77 teleported you to {1}\u00a77.
|
||||
teleportDisabled={0} has teleportation disabled.
|
||||
teleportHereRequest=\u00a7c{0}\u00a7c has requested that you teleport to them.
|
||||
teleporting=\u00a77Teleporting...
|
||||
teleportingPortal=\u00a77Teleporting via portal.
|
||||
tempBanned=Temporarily banned from server for {0}
|
||||
teleportNewPlayerError=Failed to teleport new player
|
||||
teleportRequest=\u00a7c{0}\u00a7c has requested to teleport to you.
|
||||
teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds.
|
||||
teleportTop=\u00a77Teleporting to top.
|
||||
tempbanExempt=\u00a77You may not tempban that player
|
||||
tempBanned=Temporarily banned from server for {0}
|
||||
thunder= You {0} thunder in your world
|
||||
thunderDuration=You {0} thunder in your world for {1} seconds.
|
||||
timeBeforeHeal=Time before next heal: {0}
|
||||
@@ -360,25 +365,25 @@ unlimitedItemPermission=\u00a7cNo permission for unlimited item {0}.
|
||||
unlimitedItems=Unlimited items:
|
||||
unmutedPlayer=Player {0} unmuted.
|
||||
upgradingFilesError=Error while upgrading the files
|
||||
userdataMoveBackError=Failed to move userdata/{0}.tmp to userdata/{1}
|
||||
userdataMoveError=Failed to move userdata/{0} to userdata/{1}.tmp
|
||||
userDoesNotExist=The user {0} does not exist.
|
||||
userIsAway={0} is now AFK
|
||||
userIsNotAway={0} is no longer AFK
|
||||
userJailed=\u00a77You have been jailed
|
||||
userUsedPortal={0} used an existing exit portal.
|
||||
userdataMoveBackError=Failed to move userdata/{0}.tmp to userdata/{1}
|
||||
userdataMoveError=Failed to move userdata/{0} to userdata/{1}.tmp
|
||||
usingTempFolderForTesting=Using temp folder for testing:
|
||||
versionMismatch=Version mismatch! Please update {0} to the same version.
|
||||
versionMismatchAll=Version mismatch! Please update all Essentials jars to the same version.
|
||||
voiceSilenced=\u00a77Your voice has been silenced
|
||||
warpDeleteError=Problem deleting the warp file.
|
||||
warpingTo=\u00a77Warping to {0}.
|
||||
warpListPermission=\u00a7cYou do not have Permission to list that warps.
|
||||
warpNotExist=That warp does not exist.
|
||||
warpSet=\u00a77Warp {0} set.
|
||||
warpUsePermission=\u00a7cYou do not have Permission to use that warp.
|
||||
warpingTo=\u00a77Warping to {0}.
|
||||
warps=Warps: {0}
|
||||
warpsCount=\u00a77There are {0} warps. Showing page {1} of {2}.
|
||||
warpSet=\u00a77Warp {0} set.
|
||||
warpUsePermission=\u00a7cYou do not have Permission to use that warp.
|
||||
weatherStorm=\u00a77You set the weather to storm in {0}
|
||||
weatherStormFor=\u00a77You set the weather to storm in {0} for {1} seconds
|
||||
weatherSun=\u00a77You set the weather to sun in {0}
|
||||
@@ -402,5 +407,3 @@ year=year
|
||||
years=years
|
||||
youAreHealed=\u00a77You have been healed.
|
||||
youHaveNewMail=\u00a7cYou have {0} messages!\u00a7f Type \u00a77/mail read\u00a7f to view your mail.
|
||||
requestTimedOut=\u00a7cTeleport request has timed out
|
||||
teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds.
|
||||
@@ -4,16 +4,16 @@
|
||||
# by:
|
||||
action=* {0} {1}
|
||||
addedToAccount=\u00a7a{0} ha sido agregado a tu cuenta.
|
||||
addedToOthersAccount=\u00a7a{0} ha sido agregado a la cuenta de {1}.
|
||||
addedToOthersAccount=\u00a7a{0} added to {1}\u00a7a account. New balance: {2}
|
||||
alertBroke=roto:
|
||||
alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} en: {3}
|
||||
alertPlaced=situado:
|
||||
alertUsed=usado:
|
||||
autoAfkKickReason=Has sido echado por ausentarte mas de {0} minutos.
|
||||
backAfterDeath=\u00a77Usa el comando /back para volver al punto en el que moriste.
|
||||
backUsageMsg=\u00a77Volviendo a la localizacion anterior.
|
||||
backupFinished=Copia de seguridad completada
|
||||
backupStarted=Comenzando copia de seguridad
|
||||
backUsageMsg=\u00a77Volviendo a la localizacion anterior.
|
||||
balance=\u00a77Cantidad: {0}
|
||||
balanceTop=\u00a77Top cantidades ({0})
|
||||
banExempt=\u00a7cNo puedes banear a ese jugador
|
||||
@@ -33,6 +33,8 @@ canTalkAgain=\u00a77Ya puedes hablar de nuevo
|
||||
cantFindGeoIpDB=No se puede encontrar la bases de datos del Geo IP
|
||||
cantReadGeoIpDB=Error al intentar leer la base de datos del Geo IP
|
||||
cantSpawnItem=\u00a7cNo tienes acceso para producir este objeto {0}
|
||||
chatTypeLocal=[L]
|
||||
chatTypeSpy=[Spy]
|
||||
commandFailed=Command {0} fallado:
|
||||
commandHelpFailedForPlugin=Error obteniendo ayuda para: {0}
|
||||
commandNotLoaded=\u00a7cCommand {0} esta cargado incorrectamente.
|
||||
@@ -62,14 +64,14 @@ depth=\u00a77Estas al nivel del mar.
|
||||
depthAboveSea=\u00a77Estas {0} bloque(s) por encima del mar.
|
||||
depthBelowSea=\u00a77Estas {0} bloque(s) por debajo del mar.
|
||||
destinationNotSet=Destino no establecido.
|
||||
disableUnlimited=\u00a77Desactivando colocacion ilimitada de {0} para {1}.
|
||||
disabled=desactivado
|
||||
disabledToSpawnMob=Spawning this mob was disabled in the config file.
|
||||
disableUnlimited=\u00a77Desactivando colocacion ilimitada de {0} para {1}.
|
||||
dontMoveMessage=\u00a77Teletransporte comenzara en {0}. No te muevas.
|
||||
downloadingGeoIp=Descargando base de datos de GeoIP ... puede llevar un tiempo (pais: 0.6 MB, ciudad: 20MB)
|
||||
duplicatedUserdata=Datos de usuario duplicados: {0} y {1}
|
||||
enableUnlimited=\u00a77Dando cantidad ilimitada de {0} a {1}.
|
||||
enabled=activado
|
||||
enableUnlimited=\u00a77Dando cantidad ilimitada de {0} a {1}.
|
||||
enchantmentApplied = \u00a77The enchantment {0} has been applied to your item in hand.
|
||||
enchantmentNotFound = \u00a7cEnchantment not found
|
||||
enchantmentPerm = \u00a7cYou do not have the permission for {0}
|
||||
@@ -97,9 +99,9 @@ gcentities= entidades
|
||||
gcfree=Memoria libre: {0} MB
|
||||
gcmax=Memoria maxima: {0} MB
|
||||
gctotal=Memoria localizada: {0} MB
|
||||
geoipJoinFormat=El jugador {0} viene de {1}
|
||||
geoIpUrlEmpty=Link para descargar GeoIP esta vacio.
|
||||
geoIpUrlInvalid=Link para descargar GeoIP es invalido.
|
||||
geoipJoinFormat=El jugador {0} viene de {1}
|
||||
godDisabledFor=Desactivado para {0}
|
||||
godEnabledFor=Activado para {0}
|
||||
godMode=\u00a77Modo Dios {0}.
|
||||
@@ -110,9 +112,9 @@ helpConsole=Para obtener ayuda de la consola, escribe ?.
|
||||
helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
|
||||
helpPages=Pagina \u00a7c{0}\u00a7f de \u00a7c{1}\u00a7f:
|
||||
holeInFloor=Agujero en el suelo
|
||||
homes=Hogares: {0}
|
||||
homeSet=\u00a77Hogar establecido.
|
||||
homeSetToBed=\u00a77Tu hogar esta ahora establecido a esta cama.
|
||||
homes=Hogares: {0}
|
||||
hour=hora
|
||||
hours=horas
|
||||
ignorePlayer=A partir de ahora ignoras al jugador {0}.
|
||||
@@ -122,28 +124,28 @@ infoChapterPages=Seccion {0}, pagina \u00a7c{1}\u00a7f of \u00a7c{2}\u00a7f:
|
||||
infoFileDoesNotExist=El archivo info.txt no existe. Creando uno para ti.
|
||||
infoPages=Pagina \u00a7c{0}\u00a7f de \u00a7c{1}\u00a7f:
|
||||
infoUnknownChapter=Seccion desconocida.
|
||||
invBigger=El inventario del otro usuario es mas grande que el tuyo
|
||||
invRestored=Tu inventario ha sido recuperado.
|
||||
invSee=Estas viendo el inventario de {0}.
|
||||
invSeeHelp=Usa /invsee para recuperar tu inventario.
|
||||
invalidCharge=\u00a7cCargo invalido.
|
||||
invalidMob=Mob invalido.
|
||||
invalidServer=Servidor invalido!
|
||||
invalidSignLine=Linea {0} en el signo es invalida.
|
||||
invalidWorld=\u00a7cMundo invalido.
|
||||
invBigger=El inventario del otro usuario es mas grande que el tuyo
|
||||
inventoryCleared=\u00a77Inventario limpiado.
|
||||
inventoryClearedOthers=\u00a77Inventario de \u00a7c{0}\u00a77 limpiado.
|
||||
invRestored=Tu inventario ha sido recuperado.
|
||||
invSee=Estas viendo el inventario de {0}.
|
||||
invSeeHelp=Usa /invsee para recuperar tu inventario.
|
||||
is=es
|
||||
itemCannotBeSold=Ese objeto no puede ser vendido al servidor.
|
||||
itemMustBeStacked=El objeto tiene que ser intercambiado en pilas. Una cantidad de 2s seria de dos pilas, etc.
|
||||
itemNotEnough1=\u00a7cNo tienes suficientes ejemplares de ese objeto para venderlo.
|
||||
itemNotEnough2=\u00a77Si pensabas en vender todos tus objetos de ese tipo, usa /sell nombredeobjeto
|
||||
itemNotEnough3=\u00a77/sell nombredeobjeto -1 vendera todos excepto un objeto, etc.
|
||||
itemsCsvNotLoaded=Error al leer items.csv.
|
||||
itemSellAir=Realmente has intentado vender Aire? Pon un objeto en tu mano!
|
||||
itemSold=\u00a77Vendido para \u00a7c {0} \u00a77 ({1} {2} a {3} cada uno)
|
||||
itemSoldConsole={0} Vendido {1} para\u00a77 {2} \u00a77({3} objetos a {4} cada uno)
|
||||
itemSpawn=\u00a77Dando {0} de {1}
|
||||
itemsCsvNotLoaded=Error al leer items.csv.
|
||||
jailAlreadyIncarcerated=\u00a7cLa persona ya esta en la carcel: {0}
|
||||
jailMessage=\u00a7cPor hacer el mal, tiempo en la carcel estaras.
|
||||
jailNotExist=Esa carcel no existe.
|
||||
@@ -160,8 +162,8 @@ kitError=\u00a7cNo hay ningun kit valido.
|
||||
kitErrorHelp=\u00a7cPerhaps an item is missing a quantity in the configuration?
|
||||
kitGive=\u00a77Dando kit a {0}.
|
||||
kitInvFull=\u00a7cTu inventario esta lleno, su kit se pondra en el suelo
|
||||
kitTimed=\u00a7c No puedes usar ese kit de nuevo para otro{0}.
|
||||
kits=\u00a77Kits: {0}
|
||||
kitTimed=\u00a7c No puedes usar ese kit de nuevo para otro{0}.
|
||||
lightningSmited=\u00a77Acabas de ser golpeado
|
||||
lightningUse=\u00a77Golpeando a {0}
|
||||
listAfkTag = \u00a77[AFK]\u00a7f
|
||||
@@ -169,14 +171,13 @@ listAmount = \u00a79There are \u00a7c{0}\u00a79 out of maximum \u00a7c{1}\u00a79
|
||||
listAmountHidden = \u00a79There are \u00a7c{0}\u00a77/{1}\u00a79 out of maximum \u00a7c{2}\u00a79 players online.
|
||||
listHiddenTag = \u00a77[HIDDEN]\u00a7f
|
||||
loadWarpError=Error al cargar el tenetransporte {0}
|
||||
loadinfo=Cargado {0}, construido {1} por: {2}
|
||||
localFormat=Local: <{0}> {1}
|
||||
mailClear=\u00a7cPara marcar tu email como leido, escribe /mail clear
|
||||
mailCleared=\u00a77Email limpiado!
|
||||
mailSent=\u00a77Email enviado!!
|
||||
markMailAsRead=\u00a7cPara marcar tu email como leido, escribe /mail clear
|
||||
markedAsAway=\u00a77Has sido puesto como AFK.
|
||||
markedAsNotAway=\u00a77Ya no estas AFK.
|
||||
markMailAsRead=\u00a7cPara marcar tu email como leido, escribe /mail clear
|
||||
maxHomes=No puedes establecer mas de {0} hogares.
|
||||
mayNotJail=\u00a7cNo puedes encarcelar a esa persona
|
||||
me=yo
|
||||
@@ -184,10 +185,10 @@ minute=minuto
|
||||
minutes=minutos
|
||||
missingItems=No tienes {0}x de {1}.
|
||||
missingPrefixSuffix=Falta un prefijo o un sufijo para {0}
|
||||
mobsAvailable=\u00a77Mobs: {0}
|
||||
mobSpawnError=Error al cambiar la localizacion para el nacimiento de los mobs.
|
||||
mobSpawnLimit=Cantidad de Mobs limitados al limite del server
|
||||
mobSpawnTarget=El block seleccionado sera el lugar donde van a nacer los mobs.
|
||||
mobsAvailable=\u00a77Mobs: {0}
|
||||
moneyRecievedFrom=\u00a7a{0} ha sido recivido de {1}
|
||||
moneySentTo=\u00a7a{0} ha sido enviado a {1}
|
||||
moneyTaken={0} han sido sacados de tu cuenta bancaria.
|
||||
@@ -195,10 +196,10 @@ month=mes
|
||||
months=meses
|
||||
moreThanZero=Las cantidades han de ser mayores que 0.
|
||||
msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
|
||||
muteExempt=\u00a7cNo puedes silenciar a ese jugador.
|
||||
mutedPlayer=Player {0} silenciado.
|
||||
mutedPlayerFor=Player {0} silenciado durante {1}.
|
||||
mutedUserSpeaks={0} intento hablar, pero esta silenciado.
|
||||
muteExempt=\u00a7cNo puedes silenciar a ese jugador.
|
||||
nearbyPlayers=Players nearby: {0}
|
||||
needTpohere=Necesitas acceso a /tpohere para teletransportar a otros jugadores.
|
||||
negativeBalanceError=El usuario no tiene permitido tener un saldo negativo.
|
||||
@@ -220,6 +221,7 @@ noKitPermission=\u00a7cNecesitas los \u00a7c{0}\u00a7c permisos para usar ese ki
|
||||
noKits=\u00a77No hay kits disponibles todavia
|
||||
noMail=No tienes ningun email recivido
|
||||
noMotd=\u00a7cNo hay ningun mensaje del dia.
|
||||
none=ninguno
|
||||
noNewMail=\u00a77No tienes ningun correo nuevo.
|
||||
noPendingRequest=No tienes ninguna peticion pendiente.
|
||||
noPerm=\u00a7cNo tienes el permiso de \u00a7f{0}\u00a7c.
|
||||
@@ -227,29 +229,21 @@ noPermToSpawnMob=\u00a7cYou don''t have permission to spawn this mob.
|
||||
noPlacePermission=\u00a7cNo tienes permiso para situar ese bloque en ese lugar.
|
||||
noPowerTools=You have no power tools assigned.
|
||||
noRules=\u00a7cNo hay reglas especificadas todavia.
|
||||
noWarpsDefined=No hay teletransportes definidos aun
|
||||
none=ninguno
|
||||
notAllowedToQuestion=\u00a7cYou estas autorizado para usar las preguntas.
|
||||
notAllowedToShout=\u00a7cNo estas autorizado para gritar.
|
||||
notEnoughExperience=You do not have enough experience.
|
||||
notEnoughMoney=No tienes el dinero suficiente.
|
||||
nothingInHand = \u00a7cYou have nothing in your hand.
|
||||
notRecommendedBukkit=* ! * La version de bukkit no es la recomendada para esta version de Essentials.
|
||||
notSupportedYet=No esta soportado aun.
|
||||
nothingInHand = \u00a7cYou have nothing in your hand.
|
||||
now=ahora
|
||||
noWarpsDefined=No hay teletransportes definidos aun
|
||||
nuke=May death rain upon them
|
||||
numberRequired=Un numero es necesario, amigo.
|
||||
onlyDayNight=/time solo soporta day/night. (dia/noche)
|
||||
onlyPlayers=Solo los jugadores conectados pueden usar {0}.
|
||||
onlySunStorm=/weather solo soporta sun/storm. (sol/tormenta)
|
||||
orderBalances=Ordering balances of {0} users, please wait ...
|
||||
pTimeCurrent=\u00a7e{0}''s\u00a7f la hora es {1}.
|
||||
pTimeCurrentFixed=\u00a7e{0}''s\u00a7f la hora ha sido cambiada a {1}.
|
||||
pTimeNormal=\u00a7e{0}''s\u00a7f el tiempo es normal y coincide con el servidor.
|
||||
pTimeOthersPermission=\u00a7cNo estas autorizado para especificar'' la hora de otros usuarios.
|
||||
pTimePlayers=Estos usuarios tienen su propia hora:
|
||||
pTimeReset=La hora del usuario ha sido reiniciada a las: \u00a7e{0}
|
||||
pTimeSet=La hora del jugador ha sido cambiada para las: \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
pTimeSetFixed=La hora del jugador ha sido arreglada para las: \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
parseError=error analizando {0} en la linea {1}
|
||||
pendingTeleportCancelled=\u00a7cPeticion de teletransporte pendiente cancelado.
|
||||
permissionsError=Falta el plugin Permissions/GroupManager; Los prefijos/sufijos de chat seran desactivados.
|
||||
@@ -277,6 +271,14 @@ powerToolRemoveAll=Todos los comandos borrados desde {0}.
|
||||
powerToolsDisabled=All of your power tools have been disabled.
|
||||
powerToolsEnabled=All of your power tools have been enabled.
|
||||
protectionOwner=\u00a76[EssentialsProtect] Dueño de la proteccion: {0}
|
||||
pTimeCurrent=\u00a7e{0}''s\u00a7f la hora es {1}.
|
||||
pTimeCurrentFixed=\u00a7e{0}''s\u00a7f la hora ha sido cambiada a {1}.
|
||||
pTimeNormal=\u00a7e{0}''s\u00a7f el tiempo es normal y coincide con el servidor.
|
||||
pTimeOthersPermission=\u00a7cNo estas autorizado para especificar'' la hora de otros usuarios.
|
||||
pTimePlayers=Estos usuarios tienen su propia hora:
|
||||
pTimeReset=La hora del usuario ha sido reiniciada a las: \u00a7e{0}
|
||||
pTimeSet=La hora del jugador ha sido cambiada para las: \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
pTimeSetFixed=La hora del jugador ha sido arreglada para las: \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
questionFormat=\u00a77[Pregunta]\u00a7f {0}
|
||||
readNextPage=Type /{0} {1} to read the next page
|
||||
reloadAllPlugins=\u00a77Todos los plugins recargados.
|
||||
@@ -291,13 +293,15 @@ requestAcceptedFrom=\u00a77{0} acepto tu peticion de teletransporte.
|
||||
requestDenied=\u00a77Peticion de teletransporte denegada.
|
||||
requestDeniedFrom=\u00a77{0} ha denegado tu peticion de teletransporte.
|
||||
requestSent=\u00a77Peticion enviada a {0}\u00a77.
|
||||
requestTimedOut=\u00a7cTeleport request has timed out
|
||||
requiredBukkit=* ! * You need atleast build {0} of CraftBukkit, download it from http://ci.bukkit.org.
|
||||
returnPlayerToJailError=Error al intentar quitar al jugador de la carcel.
|
||||
returnPlayerToJailError=Error occurred when trying to return player {0} to jail: {1}
|
||||
second=segundo
|
||||
seconds=segundos
|
||||
seenOffline=El jugador {0} esta desconectado desde {1}
|
||||
seenOnline=El jugador {0} lleva conectado desde {1}
|
||||
serverFull=Servidor lleno
|
||||
serverTotal=Server Total: {0}
|
||||
setSpawner=Cambiado tipo de lugar de nacimiento a {0}
|
||||
sheepMalformedColor=Color malformado.
|
||||
shoutFormat=\u00a77[Shout]\u00a7f {0}
|
||||
@@ -308,28 +312,29 @@ signProtectInvalidLocation=\u00a74No puedes poner carteles en ese sitio.
|
||||
similarWarpExist=Ya existe un teletransporte con ese nombre.
|
||||
slimeMalformedSize=Medidas malformadas.
|
||||
soloMob=A este mob le gusta estar solo
|
||||
spawnSet=\u00a77El lugar de nacimiento ha sido puesto para el grupo {0}.
|
||||
spawned=nacido
|
||||
spawnSet=\u00a77El lugar de nacimiento ha sido puesto para el grupo {0}.
|
||||
suicideMessage=\u00a77Adios mundo cruel...
|
||||
suicideSuccess= \u00a77{0} se quito su propia vida
|
||||
survival=survival
|
||||
takenFromAccount=\u00a7c{0} ha sido sacado de tu cuenta.
|
||||
takenFromOthersAccount=\u00a7c{0} ha sido sacado de la cuenta de {1}.
|
||||
takenFromOthersAccount=\u00a7c{0} taken from {1}\u00a7c account. New balance: {2}
|
||||
teleportAAll=\u00a77Peticion de teletransporte enviada a todos los jugadores...
|
||||
teleportAll=\u00a77Teletransportando a todos los jugadores...
|
||||
teleportAtoB=\u00a77{0}\u00a77 te teletransporto a {1}\u00a77.
|
||||
teleportDisabled={0} tiene desactivado los teletransportes.
|
||||
teleportHereRequest=\u00a7c{0}\u00a7c ha pedido que te teletransportes con el.
|
||||
teleportNewPlayerError=Error al teletransportar al nuevo jugador
|
||||
teleportRequest=\u00a7c{0}\u00a7c te ha pedido teletransportarse contigo.
|
||||
teleportTop=\u00a77Teletransportandote a la cima.
|
||||
teleportationCommencing=\u00a77Comenzando teletransporte...
|
||||
teleportationDisabled=\u00a77Teletransporte desactivado.
|
||||
teleportationEnabled=\u00a77Teletransporte activado.
|
||||
teleportAtoB=\u00a77{0}\u00a77 te teletransporto a {1}\u00a77.
|
||||
teleportDisabled={0} tiene desactivado los teletransportes.
|
||||
teleportHereRequest=\u00a7c{0}\u00a7c ha pedido que te teletransportes con el.
|
||||
teleporting=\u00a77Teletransportando...
|
||||
teleportingPortal=\u00a77Teletransportando via portal.
|
||||
tempBanned=Baneado temporalmente del servidor por {0}
|
||||
teleportNewPlayerError=Error al teletransportar al nuevo jugador
|
||||
teleportRequest=\u00a7c{0}\u00a7c te ha pedido teletransportarse contigo.
|
||||
teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds.
|
||||
teleportTop=\u00a77Teletransportandote a la cima.
|
||||
tempbanExempt=\u00a77No puedes banear temporalmente a ese jugador
|
||||
tempBanned=Baneado temporalmente del servidor por {0}
|
||||
thunder= Tu has {0} los truenos en tu mundo.
|
||||
thunderDuration=Tu has {0} los truenos en tu mundo durante {1} seconds.
|
||||
timeBeforeHeal=Tiempo antes de la siguiente curacion: {0}
|
||||
@@ -360,25 +365,25 @@ unlimitedItemPermission=\u00a7cNo tienes permiso para objetos ilimitados {0}.
|
||||
unlimitedItems=Objetos ilimitados.
|
||||
unmutedPlayer=Jugador {0} desmuteado.
|
||||
upgradingFilesError=Error mientras se actualizaban los archivos
|
||||
userdataMoveBackError=Error al mover userdata/{0}.tmp a userdata/{1}
|
||||
userdataMoveError=Error al mover userdata/{0} a userdata/{1}.tmp
|
||||
userDoesNotExist=El usuario {0} no existe
|
||||
userIsAway={0} esta ahora ausente!
|
||||
userIsNotAway={0} ya no esta ausente!
|
||||
userJailed=\u00a77Has sido encarcelado!
|
||||
userUsedPortal={0} uso un portal de salida existente.
|
||||
userdataMoveBackError=Error al mover userdata/{0}.tmp a userdata/{1}
|
||||
userdataMoveError=Error al mover userdata/{0} a userdata/{1}.tmp
|
||||
usingTempFolderForTesting=Usando carpeta temporal para pruebas:
|
||||
versionMismatch=La version no coincide! Por favor actualiza {0} a la misma version.
|
||||
versionMismatchAll=La version no coincide! Por favor actualiza todos los jars de Essentials a la misma version.
|
||||
voiceSilenced=\u00a77Tu voz ha sido silenciada
|
||||
warpDeleteError=Problema al borrar el archivo de teletransporte.
|
||||
warpingTo=\u00a77Teletransportandote a {0}.
|
||||
warpListPermission=\u00a7cNo tienes permiso para listar esos teletransportes.
|
||||
warpNotExist=Ese teletransporte no existe.
|
||||
warpSet=\u00a77Teletransporte {0} establecido.
|
||||
warpUsePermission=\u00a7cNo tienes permisos para usar ese teletransporte.
|
||||
warpingTo=\u00a77Teletransportandote a {0}.
|
||||
warps=Warps: {0}
|
||||
warpsCount=\u00a77Hay {0} teletransportes. Mostrando pagina {1} de {2}.
|
||||
warpSet=\u00a77Teletransporte {0} establecido.
|
||||
warpUsePermission=\u00a7cNo tienes permisos para usar ese teletransporte.
|
||||
weatherStorm=\u00a77Has establecido el tiempo a tormenta en este mundo.
|
||||
weatherStormFor=\u00a77Has establecido el tiempo a tormenta en este {1} durante {0} segundos.
|
||||
weatherSun=\u00a77Has establecido el tiempo a sol en este mundo.
|
||||
@@ -402,5 +407,3 @@ year=año
|
||||
years=años
|
||||
youAreHealed=\u00a77Has sido curado.
|
||||
youHaveNewMail=\u00a7cTienes {0} mensajes!\u00a7f Pon \u00a77/mail read\u00a7f para ver tus emails no leidos!.
|
||||
requestTimedOut=\u00a7cTeleport request has timed out
|
||||
teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds.
|
||||
@@ -1,46 +1,48 @@
|
||||
#version: TeamCity
|
||||
# Single quotes have to be doubled: ''
|
||||
# Translations start here
|
||||
# by:
|
||||
# by: L\u00e9a Gris
|
||||
action=* {0} {1}
|
||||
addedToAccount=\u00a7a{0} a \u00e9t\u00e9 rajout\u00e9 \u00e0 votre compte.
|
||||
addedToOthersAccount=\u00a7a{0} a \u00e9t\u00e9 ajout\u00e9 \u00e0 {1} compte.
|
||||
addedToOthersAccount=\u00a7a{0} added to {1}\u00a7a account. New balance: {2}
|
||||
alertBroke=a cass\u00e9 :
|
||||
alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} \u00e0:{3}
|
||||
alertPlaced=a plac\u00e9 :
|
||||
alertUsed=a utilis\u00e9 :
|
||||
autoAfkKickReason=Vous avez \u00e9t\u00e9 \u00e9ject\u00e9 pour inactivit\u00e9e sup\u00e9rieure \u00e0 {0} minutes.
|
||||
backAfterDeath=\u00a77Utilisez la commande /back pour retourner \u00e0 l''endroit ou vous \u00eates mort.
|
||||
backUsageMsg=\u00a77Retour \u00e0 votre emplacement pr\u00e9c\u00c3\u00a8dent.
|
||||
backupFinished=Sauvegarde termin\u00e9
|
||||
backupStarted=D\u00e9but de la sauvegarde
|
||||
backupStarted=D\u00e9but de la sauvegarde...
|
||||
backUsageMsg=\u00a77Retour \u00e0 votre emplacement pr\u00e9c\u00c3\u00a8dent.
|
||||
balance=\u00a77Solde : {0}
|
||||
balanceTop=\u00a77 Meilleurs soldes ({0})
|
||||
balanceTop=\u00a77Meilleurs soldes au ({0})
|
||||
banExempt=\u00a77Vous ne pouvez pas bannir ce joueur.
|
||||
banIpAddress=\u00a77Adresse IP bannie
|
||||
banIpAddress=\u00a77Adresse IP bannie.
|
||||
bannedIpsFileError=Erreur de lecture de banned-ips.txt
|
||||
bannedIpsFileNotFound=Fichier banned-ips.txt introuvable
|
||||
bannedPlayersFileError=Erreur lors de la lecture de banned-players.txt
|
||||
bannedPlayersFileNotFound=banned-players.txt introuvable.
|
||||
bigTreeFailure=\u00a7c\u00c9chec de la g\u00e9n\u00e9ration du gros arbre. Essayez de nouveau sur de la terre ou de l''herbe.
|
||||
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 relayed the following commands to another plugin:
|
||||
broadcast=[\u00a7cMessage\u00a7f]\u00a7a {0}
|
||||
buildAlert=\u00a7cVous n''avez pas la permission de construire.
|
||||
buildAlert=\u00a7cVous n'avez pas la permission de construire.
|
||||
bukkitFormatChanged=Le format de la version de Bukkit a \u00e9t\u00e9 chang\u00e9. La version n''a pas \u00e9t\u00e9 v\u00e9rifi\u00e9e.
|
||||
burnMsg=\u00a77Vous avez enflamm\u00e9 {0} pour {1} seconde(s).
|
||||
canTalkAgain=\u00a77Vous pouvez de nouveau parler.
|
||||
cantFindGeoIpDB=N''arrive pas \u00e0 trouver la base de donn\u00e9es GeoIP!
|
||||
cantFindGeoIpDB=N'arrive pas \u00e0 trouver la base de donn\u00e9es GeoIP!
|
||||
cantReadGeoIpDB=Echec de la lecture de la base de donn\u00e9es GeoIP!
|
||||
cantSpawnItem=\u00a7cVous n''avez pas le droit de faire appara\u00c3\u00aetre {0}
|
||||
chatTypeLocal=[L]
|
||||
chatTypeSpy=[Spy]
|
||||
commandFailed=\u00c9chec de la commande {0} :
|
||||
commandHelpFailedForPlugin=Erreur d''obtention d''aide pour : {0}
|
||||
commandNotLoaded=\u00a7cLa commande {0} a \u00e9t\u00e9 mal charg\u00e9e.
|
||||
compassBearing=\u00a77Orientation : {0} ({1} degr\u00e9s).
|
||||
configFileMoveError=\u00c9chec du d\u00e9placement de config.yml vers l''emplacement de sauvegarde.
|
||||
configFileMoveError=\u00c9chec du d\u00e9placement de config.yml vers l'emplacement de sauvegarde.
|
||||
configFileRenameError=\u00c9chec du changement de nom du fichier temporaire de config.yml
|
||||
connectedPlayers=Joueurs connect\u00e9s :
|
||||
connectionFailed=\u00c9chec de l''ouverture de la connexion.
|
||||
connectionFailed=\u00c9chec de l'ouverture de la connexion.
|
||||
cooldownWithMessage=\u00a7cR\u00e9utilisation : {0}
|
||||
corruptNodeInConfig=\u00a74Annonce : Votre fichier de configuration a un {0} n\u0153ud corrompu.
|
||||
couldNotFindTemplate=Le mod\u00c3\u00a8le {0} est introuvable
|
||||
@@ -57,19 +59,19 @@ deleteWarp=\u00a77Warp {0} supprim\u00e9.
|
||||
deniedAccessCommand=L''acc\u00c3\u00a8s \u00e0 la commande a \u00e9t\u00e9 refus\u00e9 pour {0}.
|
||||
dependancyDownloaded=[Essentials] Fichier {0} correctement t\u00e9l\u00e9charg\u00e9.
|
||||
dependancyException=[Essentials] Une erreur est survenue lors de la tentative de t\u00e9l\u00e9chargement.
|
||||
dependancyNotFound=[Essentials] Une d\u00e9pendance requise n''a pas \u00e9t\u00e9 trouv\u00e9e, t\u00e9l\u00e9chargement en cours.
|
||||
dependancyNotFound=[Essentials] Une d\u00e9pendance requise n'a pas \u00e9t\u00e9 trouv\u00e9e, t\u00e9l\u00e9chargement en cours.
|
||||
depth=\u00a77Vous \u00eates au niveau de la mer.
|
||||
depthAboveSea=\u00a77Vous \u00eates \u00e0 {0} bloc(s) au-dessus du niveau de la mer.
|
||||
depthBelowSea=\u00a77Vous \u00eates \u00e0 {0} bloc(s) en-dessous du niveau de la mer.
|
||||
destinationNotSet=Destination non d\u00e9finie
|
||||
disableUnlimited=\u00a77D\u00e9sactivation du placement illimit\u00e9 de {0} pour {1}.
|
||||
disabled=d\u00e9sactiv\u00e9
|
||||
disabledToSpawnMob=Spawning this mob was disabled in the config file.
|
||||
disableUnlimited=\u00a77D\u00e9sactivation du placement illimit\u00e9 de {0} pour {1}.
|
||||
dontMoveMessage=\u00a77La t\u00e9l\u00e9portation commence dans {0}. Ne bougez pas.
|
||||
downloadingGeoIp=T\u00e9l\u00e9chargement de la base de donn\u00e9es GeoIP ... Cela peut prendre un moment (campagne : 0.6 Mo, ville : 20Mo)
|
||||
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}
|
||||
enableUnlimited=\u00a77Quantit\u00e9 illimit\u00e9e de {0} \u00e0 {1}.
|
||||
enabled=activ\u00e9
|
||||
enableUnlimited=\u00a77Quantit\u00e9 illimit\u00e9e de {0} \u00e0 {1}.
|
||||
enchantmentApplied = \u00a77L''enchantement {0} a \u00e9t\u00e9 appliqu\u00e9 \u00e0 l''objet dans votre main.
|
||||
enchantmentNotFound = \u00a7cEnchantement non-trouv\u00e9
|
||||
enchantmentPerm = \u00a7cVous n''avez pas les droits pour {0}.
|
||||
@@ -77,17 +79,17 @@ enchantmentRemoved = \u00a77The enchantment {0} has been removed from your item
|
||||
enchantments = \u00a77Enchantments : {0}
|
||||
errorCallingCommand=Erreur en appelant la commande /{0}
|
||||
errorWithMessage=\u00a7cErreur : {0}
|
||||
essentialsHelp1=The file is broken and Essentials can't open it. Essentials is now disabled. If you can't fix the file yourself, go to http://tiny.cc/EssentialsChat
|
||||
essentialsHelp2=The file is broken and Essentials can't open it. Essentials is now disabled. If you can't fix the file yourself, either type /essentialshelp in game or go to http://tiny.cc/EssentialsChat
|
||||
essentialsReload=\u00a77Essentials Recharg\u00e9 {0}
|
||||
essentialsHelp1=Le fichier est corrompuet Essentials ne peut l'ouvrir. Essentials est maintenant d\u00e9sactiv\u00e9. Si vous ne pouvez corriger vous-m\u00eame, aller \u00e0 http://tiny.cc/EssentialsChat
|
||||
essentialsHelp2=Le fichier est corrompuet Essentials ne peut l'ouvrir. Essentials est maintenant d\u00e9sactiv\u00e9. Si vous ne pouvez corriger vous-m\u00eame, tapez /essentialshelp ou aller \u00e0 http://tiny.cc/EssentialsChat
|
||||
essentialsReload=\u00a77Essentials {0} a \u00e9t\u00e9 recharg\u00e9.
|
||||
extinguish=\u00a77Vous cessez de br\u00fbler.
|
||||
extinguishOthers=\u00a77Vous avez \u00e9teint la combustion de {0}.
|
||||
failedToCloseConfig=Echec de la fermeture de la configuration {0}
|
||||
failedToCreateConfig=Echec de la cr\u00e9ation de la configuration {0}
|
||||
failedToWriteConfig=\u00c9chec de l''\u00e9criture de la configuration {0}
|
||||
false=faux
|
||||
feed=\u00a77Your appetite was sated.
|
||||
feedOther=\u00a77Satisfied {0}.
|
||||
false=non
|
||||
feed=\u00a77Vous avez \u00e9t\u00e9 rassasi\u00e9.
|
||||
feedOther=\u00a77 est rassasi\u00e9 {0}.
|
||||
fileRenameError=Echec du changement de nom de {0}
|
||||
foreverAlone=\u00a7cVous n''avez personne \u00e0 qui r\u00e9pondre
|
||||
freedMemory=A lib\u00e9r\u00e9 {0} Mo.
|
||||
@@ -97,9 +99,9 @@ gcentities=entit\u00e9s
|
||||
gcfree=M\u00e9moire libre : {0} Mo
|
||||
gcmax=M\u00e9moire maximale : {0} Mo
|
||||
gctotal=M\u00e9moire utilis\u00e9e : {0} Mo
|
||||
geoipJoinFormat=Joueur {0} vient de {1}
|
||||
geoIpUrlEmpty=L''URL de t\u00e9l\u00e9chargement de GeoIP est vide.
|
||||
geoIpUrlInvalid=L''URL de t\u00e9l\u00e9chargement de GeoIP est invalide.
|
||||
geoipJoinFormat=Joueur {0} vient de {1}
|
||||
godDisabledFor=d\u00e9sactiv\u00e9 pour {0}
|
||||
godEnabledFor=activ\u00e9 pour {0}
|
||||
godMode=\u00a77Mode Dieu {0}.
|
||||
@@ -107,76 +109,75 @@ haveBeenReleased=\u00a77Vous avez \u00e9t\u00e9 lib\u00e9r\u00e9.
|
||||
heal=\u00a77Vous avez \u00e9t\u00e9 soign\u00e9.
|
||||
healOther=\u00a77{0} a \u00e9t\u00e9 soign\u00e9.
|
||||
helpConsole=Pour voir l''aide tapez ?
|
||||
helpOp=\u00a7c[Aide Admin]\u00a7f \u00a77{0}:\u00a7f {1}
|
||||
helpOp=\u00a7c[Aide Admin]\u00a7f \u00a77{0} : \u00a7f {1}
|
||||
helpPages=Page \u00a7c{0}\u00a7f sur \u00a7c{1}\u00a7f.
|
||||
holeInFloor=Trou dans le Sol.
|
||||
homes=R\u00e9sidences : {0}
|
||||
homeSet=\u00a77R\u00e9sidence d\u00e9finie.
|
||||
homeSetToBed=\u00a77Votre r\u00e9sidence est d\u00e9sormais li\u00e9e \u00e0 ce lit.
|
||||
homes=R\u00e9sidences : {0}
|
||||
hour=heure
|
||||
hours=heures
|
||||
ignorePlayer=Vous ignorez d\u00e9sormais {0}.
|
||||
illegalDate=Format de date ill\u00e9gal.
|
||||
infoChapter=S\u00e9lectionnez le chapitre :
|
||||
infoChapterPages=Chapitre {0}, page \u00a7c{1}\u00a7f sur \u00a7c{2}\u00a7f:
|
||||
infoFileDoesNotExist=Le fichier info.txt n''existe pas. Le fichier est en cours de cr\u00e9ation pour vous.
|
||||
infoFileDoesNotExist=Le fichier info.txt n'existe pas. Le fichier est en cours de cr\u00e9ation pour vous.
|
||||
infoPages=Page \u00a7c{0}\u00a7f de \u00a7c{1}\u00a7f.
|
||||
infoUnknownChapter=Chapitre inconnu.
|
||||
invBigger=Les inventaires des autres joueurs sont plus gros que le v\u00f4tre.
|
||||
invRestored=Votre inventaire vous a \u00e9t\u00e9 rendu.
|
||||
invSee=Vous voyez l''inventaire de {0}.
|
||||
invSeeHelp=Utilisez /invsee pour voir l''inventaire de quelqu''un.
|
||||
invalidCharge=\u00a7cCharge invalide.
|
||||
invalidMob=Mauvias type de monstre.
|
||||
invalidMob=Mauvias type de cr\u00e9ature.
|
||||
invalidServer=Serveur non valide.
|
||||
invalidSignLine=La ligne {0} du panneau est invalide.
|
||||
invalidWorld=\u00a7cMonde invalide.
|
||||
invBigger=Les inventaires des autres joueurs sont plus gros que le v\u00f4tre.
|
||||
inventoryCleared=\u00a77Inventaire nettoy\u00e9.
|
||||
inventoryClearedOthers=\u00a77L''inventaire de \u00a7c{0}\u00a77 a \u00e9t\u00e9 nettoy\u00e9.
|
||||
invRestored=Votre inventaire vous a \u00e9t\u00e9 rendu.
|
||||
invSee=Vous voyez l''inventaire de {0}.
|
||||
invSeeHelp=Utilisez /invsee pour revenir \u00e0 votre inventaire.
|
||||
is=est
|
||||
itemCannotBeSold=Cet objet ne peut \u00eatre vendu au serveur.
|
||||
itemMustBeStacked=Cet objet doit \u00eatre vendu par 64. Une quantit\u00e9 de 2 serait deux fois 64.
|
||||
itemNotEnough1=\u00a7cVous n''avez pas assez de cet objet pour le vendre.
|
||||
itemNotEnough2=\u00a77Si vous voulez vendre l''int\u00e9gralit\u00e9 de vos objets de ce type l\u00e0, utilisez /sell nomObjet
|
||||
itemNotEnough1=\u00a7cVous n'avez pas assez de cet objet pour le vendre.
|
||||
itemNotEnough2=\u00a77Si vous voulez vendre l'int\u00e9gralit\u00e9 de vos objets de ce type l\u00e0, utilisez /sell nomObjet
|
||||
itemNotEnough3=\u00a77/sell nomObjet -1 vendra tout sauf un objet, etc.
|
||||
itemSellAir=Vouliez-vous vraiment vendre de l''air ? Mettez un objet dans votre main.
|
||||
itemsCsvNotLoaded=N'a pas pu charger items.csv.
|
||||
itemSellAir=Vouliez-vous vraiment vendre de l'air ? Mettez un objet dans votre main.
|
||||
itemSold=\u00a77Vendu pour \u00a7c{0} \u00a77({1} {2} \u00e0 {3} chacun)
|
||||
itemSoldConsole={0} vendu {1} pour \u00a77{2} \u00a77({3} objet(s) \u00e0 {4} chacun)
|
||||
itemSpawn=\u00a77Donne {0} de {1}
|
||||
itemsCsvNotLoaded=N''a pas pu charger items.csv.
|
||||
jailAlreadyIncarcerated=\u00a7cJoueur d\u00e9j\u00e0 emprisonn\u00e9 : {0}
|
||||
jailMessage=\u00a7cVous avez commis un crime, vous en payez le prix.
|
||||
jailNotExist=Cette prison n''existe pas.
|
||||
jailNotExist=Cette prison n'existe pas.
|
||||
jailReleased=\u00a77Joueur \u00a7e{0}\u00a77 lib\u00e9r\u00e9.
|
||||
jailReleasedPlayerNotify=\u00a77Vous avez \u00e9t\u00e9 lib\u00e9r\u00e9 !
|
||||
jailSentenceExtended=Dur\u00e9e d''emprisonnement rallong\u00e9e de : {0)
|
||||
jailSet=\u00a77La prison {0} a \u00e9t\u00e9 cr\u00e9\u00e9.
|
||||
jumpError=\u00c7a aurait pu faire mal au cerveau de votre ordinateur.
|
||||
kickDefault=Kick\u00e9 du serveur
|
||||
kickExempt=\u00a77Vous ne pouvez pas lancer ce joueur.
|
||||
kickDefault=\u00c9ject\u00e9 du serveur
|
||||
kickExempt=\u00a77Vous ne pouvez pas \u00e9jecter ce joueur.
|
||||
kill=\u00a77Tu\u00e9 {0}.
|
||||
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 ?
|
||||
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}.
|
||||
kitInvFull=\u00a7cVotre inventaire \u00e9tait plein, le kit est parre-terre.
|
||||
kitTimed=\u00a7cVous ne pouvez pas utiliser ce kit pendant encore {0}.
|
||||
kits=\u00a77Kits :{0}
|
||||
lightningSmited=\u00a77Vous venez d''\u00eatre foudroy\u00e9.
|
||||
kitTimed=\u00a7cVous ne pouvez pas utiliser ce kit pendant encore {0}.
|
||||
lightningSmited=\u00a77Vous venez d'\u00eatre foudroy\u00e9.
|
||||
lightningUse=\u00a77{0} a \u00e9t\u00e9 foudroy\u00e9.
|
||||
listAfkTag = \u00a77[AFK]\u00a7f
|
||||
listAmount = \u00a79Il y a \u00a7c{0}\u00a79 joueurs en ligne sur \u00a7c{1}\u00a79 au total.
|
||||
listAmountHidden = \u00a79Il y a \u00a7c{0}\u00a77/{1}\u00a79 sur un maximum de \u00a7c{2}\u00a79 joueurs en ligne.
|
||||
listHiddenTag = \u00a77[MASQU\u00c9]\u00a7f
|
||||
loadWarpError=\u00c9chec du chargement du raccourci {0}
|
||||
loadinfo={0} version {1} par {2} a \u00e9t\u00e9 charg\u00e9
|
||||
localFormat=Locale :<{0}> {1}
|
||||
loadWarpError=\u00c9chec du chargement du point de t\u00e9l\u00e9portation {0}.
|
||||
localFormat=Locale : <{0}> {1}
|
||||
mailClear=\u00a7cPour marquer votre courrier en tant que lu, entrez /mail clear
|
||||
mailCleared=\u00a77Courrier supprim\u00e9 !
|
||||
mailSent=\u00a77Courrier envoy\u00e9 !
|
||||
markMailAsRead=\u00a7cPour marquer votre courrier en tant que lu, entrez /mail clear
|
||||
markedAsAway=\u00a77Vous \u00eates d\u00e9sormais AFK.
|
||||
markedAsNotAway=\u00a77Vous n''\u00eates d\u00e9sormais plus AFK.
|
||||
markedAsNotAway=\u00a77Vous n'\u00eates d\u00e9sormais plus AFK.
|
||||
markMailAsRead=\u00a7cPour marquer votre courrier en tant que lu, entrez /mail clear
|
||||
maxHomes=Vous ne pouvez pas cr\u00e9er plus de {0} r\u00e9sidences.
|
||||
mayNotJail=\u00a7cVous ne pouvez pas emprisonner cette personne.
|
||||
me=moi
|
||||
@@ -184,72 +185,65 @@ minute=minute
|
||||
minutes=minutes
|
||||
missingItems=Vous n''avez pas {0} x {1}.
|
||||
missingPrefixSuffix=Pr\u00e9fixe ou Suffixe manquant pour {0}
|
||||
mobSpawnError=Erreur lors du changement du g\u00e9n\u00e9rateur de monstres.
|
||||
mobSpawnLimit=Quantit\u00e9 de monstres limit\u00e9 \u00e0 au maximum du serveur.
|
||||
mobSpawnTarget=Le bloc cible doit \u00eatre un g\u00e9n\u00e9rateur de monstres.
|
||||
mobsAvailable=\u00a77Monstres : {0}
|
||||
mobsAvailable=\u00a77cr\u00e9atures : {0}
|
||||
mobSpawnError=Erreur lors du changement du g\u00e9n\u00e9rateur de cr\u00e9atures.
|
||||
mobSpawnLimit=Quantit\u00e9 de cr\u00e9atures limit\u00e9 \u00e0 au maximum du serveur.
|
||||
mobSpawnTarget=Le bloc cible doit \u00eatre un g\u00e9n\u00e9rateur de cr\u00e9atures.
|
||||
moneyRecievedFrom=\u00a7a{0} a \u00e9t\u00e9 re\u00e7u de {1}
|
||||
moneySentTo=\u00a7a{0} a \u00e9t\u00e9 envoy\u00e9 \u00e0 {1}
|
||||
moneyTaken={0} pr\u00e9lev\u00e9(s) de votre compte bancaire.
|
||||
moneyTaken={0} pr\u00e9lev\u00e9(s) de votre compte.
|
||||
month=mois
|
||||
months=mois
|
||||
moreThanZero=Les Quantit\u00e9s doivent \u00eatre sup\u00e9rieures \u00e0 z\u00e9ro.
|
||||
moreThanZero=Les quantit\u00e9s doivent \u00eatre sup\u00e9rieures \u00e0 z\u00e9ro.
|
||||
msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
|
||||
muteExempt=\u00a7cVous ne pouvez pas r\u00e9duire ce joueur au silence.
|
||||
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.
|
||||
nearbyPlayers=Players nearby: {0}
|
||||
needTpohere=Vous avez besoin de l''acc\u00c3\u00a8s \u00e0 /tpohere pour t\u00e9l\u00e9porter d''autres joueurs.
|
||||
negativeBalanceError=L''utilisateur n''est pas autoris\u00e9 \u00e0 avoir un solde n\u00e9gatif.
|
||||
muteExempt=\u00a7cVous ne pouvez pas r\u00e9duire ce joueur au silence.
|
||||
nearbyPlayers=Joueurs dans les environs : {0}
|
||||
needTpohere=Vous avez besoin de l'acc\u00c3\u00a8s \u00e0 /tpohere pour t\u00e9l\u00e9porter d'autres joueurs.
|
||||
negativeBalanceError=L'utilisateur n'est pas autoris\u00e9 \u00e0 avoir un solde n\u00e9gatif.
|
||||
nickChanged=surnom modifi\u00e9.
|
||||
nickDisplayName=\u00a77Vous devez activer change-displayname dans la configuration Essentials.
|
||||
nickInUse=\u00a7cCe nom est d\u00e9j\u00e0 utilis\u00e9.
|
||||
nickNamesAlpha=\u00a7cLes surnoms doivent \u00eatre alphanum\u00e9riques.
|
||||
nickNoMore=\u00a7Vous n''avez plus de surnom.
|
||||
nickOthersPermission=\u00a7cVous n''avez pas la permission de changer le surnom des autres.
|
||||
nickNoMore=\u00a7 Vous n'avez plus de surnom.
|
||||
nickOthersPermission=\u00a7cVous n'avez pas la permission de changer le surnom des autres.
|
||||
nickSet=\u00a77Votre surnom est maintenant \u00a7c{0}
|
||||
noAccessCommand=\u00a7cVous n''avez pas acc\u00c3\u00a8s \u00e0 cette commande.
|
||||
noAccessCommand=\u00a7cVous n'avez pas acc\u00c3\u00a8s \u00e0 cette commande.
|
||||
noAccessPermission=\u00a7cVous n''avez pas la permissions d''acc\u00e9der \u00e0 cette {0}
|
||||
noDestroyPermission=\u00a7cVous n''avez pas la permission de d\u00e9truire ce {0}.
|
||||
noGodWorldWarning=\u00a7cWarning! Le mode Dieu est d\u00e9sactiv\u00e9 dans ce monde.
|
||||
noHelpFound=\u00a7cAucune commande correspondante.
|
||||
noHomeSet=Vous n''avez pas d\u00e9fini de r\u00e9sidence.
|
||||
noHomeSetPlayer=Le joueur n''a pas d\u00e9fini sa r\u00e9sidence.
|
||||
noHomeSet=Vous n'avez pas d\u00e9fini de r\u00e9sidence.
|
||||
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
|
||||
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.
|
||||
noPerm=\u00a7cVous n''avez pas la permission \u00a7f{0}\u00a7c.
|
||||
noPermToSpawnMob=\u00a7cYou don''t have permission to spawn this mob.
|
||||
noPlacePermission=\u00a7cVous n''avez pas la permission de placer un bloc pr\u00c3\u00a8 de cette pancarte.
|
||||
noPowerTools=Vous n''avez pas d''outil automatique associ\u00e9.
|
||||
noRules=\u00a7cIl n''y a pas encore de r\u00c3\u00a8gles d\u00e9finies.
|
||||
noWarpsDefined=Aucun raccourci d\u00e9fini.
|
||||
noKits=\u00a77Il n'y a pas encore de kits disponibles.
|
||||
noMail=Vous n'avez pas de courrier
|
||||
noMotd=\u00a7cIl n'y a pas de message su jour.
|
||||
none=aucun
|
||||
notAllowedToQuestion=\u00a7cVous n''\u00eates pas autoris\u00e9 \u00e0 poser des questions.
|
||||
notAllowedToShout=\u00a7cVous n''\u00eates pas autoris\u00e9 \u00e0 crier.
|
||||
notEnoughExperience=You do not have enough experience.
|
||||
notEnoughMoney=Vous n''avez pas les fonds n\u00e9cessaires.
|
||||
notRecommendedBukkit=* ! * La version de Bukkit n''est pas celle qui est recommand\u00e9 pour cette version de Essentials.
|
||||
noNewMail=\u00a77Vous n'avez pas de courrier.
|
||||
noPendingRequest=Vous n'avez pas de requ\u00eate non lue.
|
||||
noPerm=\u00a7cVous n''avez pas la permission \u00a7f{0}\u00a7c.
|
||||
noPermToSpawnMob=\u00a7cVous n'avez pas la permission d'invoquer cette cr\u00e9ature.
|
||||
noPlacePermission=\u00a7cVous n'avez pas la permission de placer un bloc pr\u00c3\u00a8 de cette pancarte.
|
||||
noPowerTools=Vous n'avez pas d'outil macro associ\u00e9.
|
||||
noRules=\u00a7cIl n'y a pas encore de r\u00e8gles d\u00e9finies.
|
||||
notAllowedToQuestion=\u00a7cVous n'\u00eates pas autoris\u00e9 \u00e0 poser des questions.
|
||||
notAllowedToShout=\u00a7cVous n'\u00eates pas autoris\u00e9 \u00e0 crier.
|
||||
notEnoughExperience=Vous n'avez pas assez d'exp\u00e9rience.
|
||||
notEnoughMoney=Vous n'avez pas les fonds n\u00e9cessaires.
|
||||
nothingInHand = \u00a7cVous n'avez rien en main.
|
||||
notRecommendedBukkit=* ! * La version de Bukkit n'est pas celle qui est recommand\u00e9 pour cette version de Essentials.
|
||||
notSupportedYet=Pas encore pris en charge.
|
||||
nothingInHand = \u00a7cVous n''avez rien en main.
|
||||
now=maintenant
|
||||
noWarpsDefined=Aucun point de t\u00e9l\u00e9portation d\u00e9fini.
|
||||
nuke=Que la mort s'abatte sur eux !
|
||||
numberRequired=Il faut fournir un nombre ici.
|
||||
onlyDayNight=/time ne supporte que (jour) day/night (nuit).
|
||||
onlyPlayers=Seulement les joueurs en jeu peuvent utiliser {0}.
|
||||
onlySunStorm=/weather ne supporte que (soleil) sun/storm (temp\u00eate).
|
||||
orderBalances=Ordering balances of {0} users, please wait ...
|
||||
pTimeCurrent=\u00a7e{0}''s\u00a7f l''heure est {1}.
|
||||
pTimeCurrentFixed=\u00a7e{0}''s\u00a7f l''heure est fix\u00e9e \u00e0 {1}.
|
||||
pTimeNormal=\u00a7e{0}''s\u00a7f l''heure est normale et correspond au server.
|
||||
pTimeOthersPermission=\u00a7cVous n''etes pas autoris\u00e9 \u00e0 changer l''heure des autres joueurs.
|
||||
pTimePlayers=Ces joueurs ont leur propre horraire :
|
||||
pTimeReset=l''heure a \u00e9t\u00e9 r\u00e9initialis\u00e9e \u00e0 : \u00a7e{0}
|
||||
pTimeSet=l''heure du joueur a \u00e9t\u00e9 r\u00e9egl\u00e9ee \u00e0 \u00a73{0}\u00a7f pour : \u00a7e{1}
|
||||
pTimeSetFixed=l''heure du joueur a \u00e9t\u00e9 fix\u00e9e \u00e0 : \u00a7e{1}
|
||||
orderBalances=Classement des balance de {0} utilisateurs, patientez ...
|
||||
parseError=Erreur de conversion {0} \u00e0 la ligne {1}
|
||||
pendingTeleportCancelled=\u00a7cRequete de t\u00e9l\u00e9portation annul\u00e9e.
|
||||
permissionsError=Permissions/GroupManager manquant, les pr\u00e9fixes et suffixes ne seront pas affich\u00e9s.
|
||||
@@ -257,7 +251,7 @@ playerBanned=\u00a7cJoueur {0} banni {1} pour {2}
|
||||
playerInJail=\u00a7cLe joueur est d\u00e9j\u00e0 dans la prison {0}.
|
||||
playerJailed=\u00a77Le joueur {0} a \u00e9t\u00e9 emprisonn\u00e9.
|
||||
playerJailedFor=\u00a77{0} a \u00e9t\u00e9 emprisonn\u00e9 pour {1}.
|
||||
playerKicked=\u00a7cPlayer {0} kicked {1} for {2}
|
||||
playerKicked=\u00a7c{0} a \u00e9t\u00e9 \u00e9ject\u00e9 {1} pour {2}.
|
||||
playerMuted=\u00a77Vous avez \u00e9t\u00e9 r\u00e9duis au silence.
|
||||
playerMutedFor=\u00a77Vous avez \u00e9t\u00e9 r\u00e9duis au silence pour {0}
|
||||
playerNeverOnServer=\u00a7cLe joueur {0} n''a jamais \u00e9t\u00e9 sur le serveur.
|
||||
@@ -265,71 +259,82 @@ playerNotFound=\u00a7cLe joueur est introuvable.
|
||||
playerUnmuted=\u00a77Vous avez de nouveau la parole.
|
||||
pong=Pong !
|
||||
possibleWorlds=\u00a77Les mondes possibles sont les nombres de 0 \u00e0 {0}.
|
||||
powerToolAir=La commande ne peut pas \u00eatre assign\u00e9e \u00e0 l''air.
|
||||
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}.
|
||||
powerToolClearAll=Toutes les commandes assign\u00e9es ont \u00e9et\u00e9e retir\u00e9ees.
|
||||
powerToolList={1} assign\u00e9s aux commandes : \u00a7c{0}\u00a7f.
|
||||
powerToolListEmpty={0} n''a pas de commande assign\u00e9e.
|
||||
powerToolListEmpty={0} n'a pas de commande assign\u00e9e.
|
||||
powerToolNoSuchCommandAssigned=La commande \u00a7c{0}\u00a7f n''a pas \u00e9t\u00e9 assign\u00e9e \u00e0 {1}.
|
||||
powerToolRemove=Command \u00a7c{0}\u00a7f retir\u00e9e de {1}.
|
||||
powerToolRemove=Commande \u00a7c{0}\u00a7f retir\u00e9e de {1}.
|
||||
powerToolRemoveAll=Toutes les commandes retir\u00e9es de {0}.
|
||||
powerToolsDisabled=Toutes vos commandes assign\u00e9es ont \u00e9t\u00e9 retir\u00e9es.
|
||||
powerToolsEnabled=Toutes vos commandes assign\u00e9es ont \u00e9t\u00e9 activ\u00e9es.
|
||||
protectionOwner=\u00a76[EssentialsProtect] Propri\u00e9taire de la protection : {0}
|
||||
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.
|
||||
pTimeOthersPermission=\u00a7cVous n'etes pas autoris\u00e9 \u00e0 changer l'heure des autres joueurs.
|
||||
pTimePlayers=Ces joueurs ont leur propre horraire :
|
||||
pTimeReset=l''heure a \u00e9t\u00e9 r\u00e9initialis\u00e9e \u00e0 : \u00a7e{0}
|
||||
pTimeSet=l''heure du joueur a \u00e9t\u00e9 r\u00e9egl\u00e9ee \u00e0 \u00a73{0}\u00a7f pour : \u00a7e{1}
|
||||
pTimeSetFixed=l''heure du joueur a \u00e9t\u00e9 fix\u00e9e \u00e0 : \u00a7e{1}
|
||||
questionFormat=\u00a77[Question]\u00a7f {0}
|
||||
readNextPage=Type /{0} {1} to read the next page
|
||||
readNextPage=Utilisez /{0} {1} pour lire la page suivante.
|
||||
reloadAllPlugins=\u00a77Toutes les extensions ont \u00e9t\u00e9 recharg\u00e9es.
|
||||
removed=\u00a77Removed {0} entities.
|
||||
removed=\u00a77{0} entit\u00e9s supprim\u00e9es.
|
||||
repair=Vous avez r\u00e9par\u00e9 votre : \u00a7e{0}.
|
||||
repairAlreadyFixed=\u00a77Cet objet n''a pas besoin de r\u00e9paration.
|
||||
repairEnchanted=\u00a77You are not allowed to repair enchanted items.
|
||||
repairAlreadyFixed=\u00a77Cet objet n'a pas besoin de r\u00e9paration.
|
||||
repairEnchanted=\u00a77Vous n'\u00eates pas autoris\u00e9 \u00e0 r\u00e9parer les objets enchant\u00e9s.
|
||||
repairInvalidType=\u00a7cCet objet ne peut \u00eatre r\u00e9par\u00e9.
|
||||
repairNone=Aucun objet n''a besoin d''\u00eatre r\u00e9par\u00e9.
|
||||
repairNone=Aucun objet n'a besoin d'u00eatre r\u00e9par\u00e9.
|
||||
requestAccepted=\u00a77Demande de t\u00e9l\u00e9portation accept\u00e9e.
|
||||
requestAcceptedFrom=\u00a77{0} a accept\u00e9 votre demande de t\u00e9l\u00e9portation.
|
||||
requestDenied=\u00a77Demande de t\u00e9l\u00e9portation refus\u00e9e.
|
||||
requestDeniedFrom=\u00a77{0} a refus\u00e9 votre demande de t\u00e9l\u00e9portation.
|
||||
requestSent=\u00a77Requ\u00eate envoy\u00e9e \u00e0 {0}\u00a77.
|
||||
requiredBukkit=* ! * You need atleast build {0} of CraftBukkit, download it from http://ci.bukkit.org.
|
||||
returnPlayerToJailError=Erreur survenue lors de la tentative d''emprisonner de nouveau un joueur.
|
||||
requestTimedOut=\u00a7cLa de mande de t\u00e9l\u00e9portation a expir\u00e9.
|
||||
requiredBukkit=* ! * Vous avez besoin au moins de la version {0} de CraftBukkit. T\u00e9l\u00e9chargez-la ici http://ci.bukkit.org.
|
||||
returnPlayerToJailError=Error occurred when trying to return player {0} to jail: {1}
|
||||
second=seconde
|
||||
seconds=secondes
|
||||
seenOffline=Le joueur {0} est hors ligne depuis {1}
|
||||
seenOnline=Le joueur {0} est en ligne depuis {1}
|
||||
serverFull=Le serveur est plein.
|
||||
serverTotal=Server Total: {0}
|
||||
setSpawner=Type de g\u00e9n\u00e9rateur chang\u00e9 en {0}
|
||||
sheepMalformedColor=Couleur mal form\u00e9e.
|
||||
shoutFormat=\u00a77[Crie]\u00a7f {0}
|
||||
signFormatFail=\u00a74[{0}]
|
||||
signFormatSuccess=\u00a71[{0}]
|
||||
signFormatTemplate=[{0}]
|
||||
signProtectInvalidLocation=\u00a74Vous n''avez pas l''autorisation de cr\u00e9er une pancarte ici.
|
||||
similarWarpExist=Un raccourci avec un nom similaire existe d\u00e9j\u00e0.
|
||||
signProtectInvalidLocation=\u00a74Vous n'avez pas l'autorisation de cr\u00e9er une pancarte ici.
|
||||
similarWarpExist=Un point de t\u00e9l\u00e9portation avec un nom similaire existe d\u00e9j\u00e0.
|
||||
slimeMalformedSize=Taille mal form\u00e9e.
|
||||
soloMob=Ce monstre aime \u00eatre seul.
|
||||
spawnSet=\u00a77Le point de spawn a \u00e9t\u00e9 d\u00e9fini pour le groupe {0}.
|
||||
soloMob=Ce cr\u00e9ature aime \u00eatre seul.
|
||||
spawned=invoqu\u00e9(s)
|
||||
spawnSet=\u00a77Le point de d\u00e9part a \u00e9t\u00e9 d\u00e9fini pour le groupe {0}.
|
||||
suicideMessage=\u00a77Au revoir monde cruel...
|
||||
suicideSuccess=\u00a77{0} s''est suiscid\u00e9.
|
||||
suicideSuccess=\u00a77{0} s''est suicid\u00e9.
|
||||
survival=survie
|
||||
takenFromAccount=\u00a7c{0} ont \u00e9t\u00e9 retir\u00e9 de votre compte.
|
||||
takenFromOthersAccount=\u00a7c{0} a \u00e9t\u00e9 r\u00e9tir\u00e9 du compte de {1}.
|
||||
takenFromOthersAccount=\u00a7c{0} taken from {1}\u00a7c account. New balance: {2}
|
||||
teleportAAll=\u00a77Demande de t\u00e9l\u00e9portation envoy\u00e9e \u00e0 tous les joueurs...
|
||||
teleportAll=\u00a77T\u00e9l\u00e9poration de tous les joueurs.
|
||||
teleportAtoB=\u00a77{0}\u00a77 vous a t\u00e9l\u00e9port\u00e9 \u00e0 {1}\u00a77.
|
||||
teleportDisabled={0} a la t\u00e9l\u00e9portation d\u00e9sactiv\u00e9.
|
||||
teleportHereRequest=\u00a7c{0}\u00a7c Vous a demand\u00e9 de vous t\u00e9l\u00e9porter \u00e0 lui/elle.
|
||||
teleportNewPlayerError=\u00c9chec de la t\u00e9l\u00e9portation du nouveau joueur.
|
||||
teleportRequest=\u00a7c{0}\u00a7c vous demande s''il peut se t\u00e9l\u00e9porter vers vous.
|
||||
teleportTop=\u00a77T\u00e9l\u00e9portation vers le haut.
|
||||
teleportationCommencing=\u00a77D\u00e9but de la t\u00e9l\u00e9portation...
|
||||
teleportationDisabled=\u00a77T\u00e9l\u00e9poration d\u00e9sactiv\u00e9.
|
||||
teleportationEnabled=\u00a77T\u00e9l\u00e9portation activ\u00e9e.
|
||||
teleportAtoB=\u00a77{0}\u00a77 vous a t\u00e9l\u00e9port\u00e9 \u00e0 {1}\u00a77.
|
||||
teleportDisabled={0} a la t\u00e9l\u00e9portation d\u00e9sactiv\u00e9.
|
||||
teleportHereRequest=\u00a7c{0}\u00a7c Vous a demand\u00e9 de vous t\u00e9l\u00e9porter \u00e0 lui/elle.
|
||||
teleporting=\u00a77T\u00e9l\u00e9poration en cours...
|
||||
teleportingPortal=\u00a77T\u00e9l\u00e9portation via portail.
|
||||
tempBanned=Banni temporairement du serveur pour {0}
|
||||
teleportNewPlayerError=\u00c9chec de la t\u00e9l\u00e9portation du nouveau joueur.
|
||||
teleportRequest=\u00a7c{0}\u00a7c vous demande s''il peut se t\u00e9l\u00e9porter vers vous.
|
||||
teleportRequestTimeoutInfo=\u00a77Cette demande de t\u00e9l\u00e9portation expirera dans {0} secondes.
|
||||
teleportTop=\u00a77T\u00e9l\u00e9portation vers le haut.
|
||||
tempbanExempt=\u00a77Vous ne pouvez pas bannir temporairement ce joueur.
|
||||
tempBanned=Banni temporairement du serveur pour {0}
|
||||
thunder=Vous avez {0} la foudre dans votre monde.
|
||||
thunderDuration=Vous avez {0} la foudre dans le serveur pendant {1} secondes.
|
||||
timeBeforeHeal=Temps avant le prochain soin : {0}
|
||||
@@ -337,19 +342,19 @@ timeBeforeTeleport=Temps avant prochaine t\u00e9l\u00e9portation {0}
|
||||
timeFormat=\u00a73{0}\u00a7f ou \u00a73{1}\u00a7f ou \u00a73{2}\u00a7f
|
||||
timePattern=(?:([0-9]+)\\\\s*[ya][a-z]*[,\\\\s]*)?(?:([0-9]+)\\\\s*mo[a-z]*[,\\\\s]*)?(?:([0-9]+)\\\\s*(?:sem|w)[a-z]*[,\\\\s]*)?(?:([0-9]+)\\\\s*[dj][a-z]*[,\\\\s]*)?(?:([0-9]+)\\\\s*h[a-z]*[,\\\\s]*)?(?:([0-9]+)\\\\s*m[a-z]*[,\\\\s]*)?(?:([0-9]+)\\\\s*(?:s[a-z]*)?)?
|
||||
timeSet=Heure r\u00e9gl\u00e9e dans tous les mondes.
|
||||
timeSetPermission=\u00a7cVous n''\u00eates pas autoris\u00e9 \u00e0 r\u00e9gler l''heure.
|
||||
timeSetPermission=\u00a7cVous n'\u00eates pas autoris\u00e9 \u00e0 r\u00e9gler l'heure.
|
||||
timeWorldCurrent=Il est \u00a73{1}\u00a77 dans \u00a7c{0}.
|
||||
timeWorldSet=L''heure a \u00e9t\u00e9 r\u00e9gl\u00e9e \u00e0 {0} dans : \u00a7c{1}
|
||||
tradeCompleted=\u00a77\u00c9change termin\u00e9.
|
||||
tradeSignEmpty=Le panneau de vente n''as pas encore assez de stock.
|
||||
tradeSignEmptyOwner=Il n''y a rien \u00e0 collecter de cette pancarte d''\u00e9change commercial.
|
||||
treeFailure=\u00a7cEchec de la g\u00e9n\u00e9ration de l''arbre. Essayez de nouveau sur de l''herbe ou de la terre.
|
||||
tradeSignEmpty=Le panneau de vente n'as pas encore assez de stock.
|
||||
tradeSignEmptyOwner=Il n'y a rien \u00e0 collecter de cette pancarte d'\u00e9change commercial.
|
||||
treeFailure=\u00a7cEchec de la g\u00e9n\u00e9ration de l'arbre. Essayez de nouveau sur de l'herbe ou de la terre.
|
||||
treeSpawned=\u00a77Arbre cr\u00e9\u00e9.
|
||||
true=vrai
|
||||
typeTpaccept=\u00a77Pour le t\u00e9l\u00e9porter, tapez \u00a7c/tpaccept\u00a77.
|
||||
typeTpdeny=\u00a77Pour d\u00e9cliner cette demande, entrez \u00a7c/tpdeny\u00a77.
|
||||
typeWorldName=\u00a77Vous pouvez aussi taper le nom d''un monde sp\u00e9cifique.
|
||||
unableToSpawnMob=Incapable d''invoquer un monstre.
|
||||
true=oui
|
||||
typeTpaccept=\u00a77Pour le t\u00e9l\u00e9porter, utilisez \u00a7c/tpaccept\u00a77.
|
||||
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}.
|
||||
@@ -360,34 +365,34 @@ unlimitedItemPermission=\u00a7cPas de permission pour l''objet illimit\u00e9 {0}
|
||||
unlimitedItems=Objets illimit\u00e9s:
|
||||
unmutedPlayer=Le joueur {0} n''est plus muet.
|
||||
upgradingFilesError=Erreur durant la mise \u00e0 jour des fichiers.
|
||||
userDoesNotExist=L''utilisateur {0} n''existe pas.
|
||||
userIsAway={0} s''est mis en AFK
|
||||
userIsNotAway={0} n''est plus inactif
|
||||
userJailed=\u00a77Vous avez \u00e9t\u00e9 emprisonn\u00e9
|
||||
userUsedPortal={0} a utilis\u00e9 un portail existant.
|
||||
userdataMoveBackError=Echec du d\u00e9placement de userdata/{0}.tmp vers userdata/{1}
|
||||
userdataMoveError=Echec du d\u00e9placement de userdata/{0} vers userdata/{1}.tmp
|
||||
userDoesNotExist=L''utilisateur {0} n''existe pas.
|
||||
userIsAway={0} s'est mis en AFK
|
||||
userIsNotAway={0} n'est plus AFK
|
||||
userJailed=\u00a77Vous avez \u00e9t\u00e9 emprisonn\u00e9.
|
||||
userUsedPortal={0} a utilis\u00e9 un portail existant.
|
||||
usingTempFolderForTesting=Utilise un fichier temporaire pour un test.
|
||||
versionMismatch=Versions diff\u00e9rentes ! Mettez s''il vous plait {0} \u00e0 la m\u00eame version.
|
||||
versionMismatchAll=Mauvaise version ! S''il vous plait mettez des jars Essentials de version identique.
|
||||
versionMismatchAll=Mauvaise version ! S'il vous plait mettez des jars Essentials de version identique.
|
||||
voiceSilenced=\u00a77Vous avez \u00e9t\u00e9 r\u00e9duit au silence.
|
||||
warpDeleteError=Probl\u00c3\u00a8me concernant la suppression du fichier warp.
|
||||
warpListPermission=\u00a7cVous n''avez pas la permission d''afficher la liste des warps.
|
||||
warpNotExist=Ce raccourci n''existe pas.
|
||||
warpSet=\u00a77Le raccourci {0} a \u00e9t\u00e9 cr\u00e9\u00e9.
|
||||
warpUsePermission=\u00a7cVous n''avez pas la permission d''utiliser ce warp.
|
||||
warpingTo=\u00a77T\u00e9l\u00e9portation au warp {0}.
|
||||
warps=Raccourcis : {0}
|
||||
warpsCount=\u00a77Il y a {0} raccourcis. Page {1} sur {2}.
|
||||
warpingTo=\u00a77T\u00e9l\u00e9portation vers {0}.
|
||||
warpListPermission=\u00a7cVous n'avez pas la permission d'afficher la liste des points de t\u00e9l\u00e9portation.
|
||||
warpNotExist=Ce point de t\u00e9l\u00e9portation n'existe pas.
|
||||
warps=point de t\u00e9l\u00e9portations : {0}
|
||||
warpsCount=\u00a77Il y a {0} points de t\u00e9l\u00e9portations. Page {1} sur {2}.
|
||||
warpSet=\u00a77Le point de t\u00e9l\u00e9portation {0} a \u00e9t\u00e9 cr\u00e9\u00e9.
|
||||
warpUsePermission=\u00a7cVous n'avez pas la permission d'utiliser ce point de t\u00e9l\u00e9portation.
|
||||
weatherStorm=\u00a77Vous avez programm\u00e9 l''orage dans {0}
|
||||
weatherStormFor=\u00a77Vous avez programm\u00e9 l''orage dans {0} pour {1} secondes.
|
||||
weatherSun=\u00a77Vous avez programm\u00e9 le beau temps dans {0}
|
||||
weatherSunFor=\u00a77Vous avez programm\u00e9 le beau temps dans {0} pour {1} secondes.
|
||||
whoisBanned=\u00a79 - Banned: {0}
|
||||
whoisBanned=\u00a79 - Banni : {0}
|
||||
whoisGamemode=\u00a79 - Mode de jeu : {0}
|
||||
whoisGeoLocation=\u00a79 - Emplacement : {0}
|
||||
whoisGod=\u00a79 - Mode Dieu : {0}
|
||||
whoisHealth=\u00a79 - Vie : {0} / 20
|
||||
whoisHealth=\u00a79 - Sant\u00e9 : {0} / 20
|
||||
whoisIPAddress=\u00a79 - Adresse IP : {0}
|
||||
whoisIs={0} est {1}
|
||||
whoisLocation=\u00a79 - Emplacement : ({0}, {1}, {2}, {3})
|
||||
@@ -402,5 +407,3 @@ year=ann\u00e9e
|
||||
years=ann\u00e9es
|
||||
youAreHealed=\u00a77Vous avez \u00e9t\u00e9 soign\u00e9.
|
||||
youHaveNewMail=\u00a7cVous avez {0} messages ! \u00a7fEntrez \u00a77/mail read\u00a7f pour voir votre courrier.
|
||||
requestTimedOut=\u00a7cTeleport request has timed out
|
||||
teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds.
|
||||
@@ -4,16 +4,16 @@
|
||||
# by: Geertje123
|
||||
action=* {0} {1}
|
||||
addedToAccount=\u00a7a{0} is gestort op je account.
|
||||
addedToOthersAccount=\u00a7a{0} is overgemaakt naar {1}''s rekening
|
||||
addedToOthersAccount=\u00a7a{0} added to {1}\u00a7a account. New balance: {2}
|
||||
alertBroke=gebroken:
|
||||
alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} bij: {3}
|
||||
alertPlaced=geplaatst:
|
||||
alertUsed=gebruikt:
|
||||
autoAfkKickReason=You have been kicked for idling more than {0} minutes.
|
||||
backAfterDeath=\u00a77Gebruik het /back command om terug te keren naar je sterfplaats.
|
||||
backUsageMsg=\u00a77Naar de vorige locatie aan het gaan.
|
||||
backupFinished=Backup voltooid
|
||||
backupStarted=Backup gestart
|
||||
backUsageMsg=\u00a77Naar de vorige locatie aan het gaan.
|
||||
balance=\u00a77Saldo: {0}
|
||||
balanceTop=\u00a77 Top saldi ({0})
|
||||
banExempt=\u00a77Je kunt deze speler niet verbannen.
|
||||
@@ -33,6 +33,8 @@ canTalkAgain=\u00a77Je kan weer praten.
|
||||
cantFindGeoIpDB=De GeoIP database kon niet gevonden worden!
|
||||
cantReadGeoIpDB=Fout bij het lezen van de GeoIP database!
|
||||
cantSpawnItem=\u00a7cJe bent niet bevoegd om {0} te spawnen.
|
||||
chatTypeLocal=[L]
|
||||
chatTypeSpy=[Spy]
|
||||
commandFailed=Opdracht {0} mislukt:
|
||||
commandHelpFailedForPlugin=Fout bij het \u200b\u200bkrijgen van hulp voor: {0}
|
||||
commandNotLoaded=\u00a7cOpdracht {0} is fout geladen.
|
||||
@@ -62,14 +64,14 @@ depth=\u00a77Je zit op zeeniveau.
|
||||
depthAboveSea=\u00a77Je zit {0} blok(ken) boven zeeniveau.
|
||||
depthBelowSea=\u00a77Je zit {0} blok(ken) onder zeeniveau.
|
||||
destinationNotSet=Bestemming niet ingesteld
|
||||
disableUnlimited=\u00a77Oneindig plaatsen van {0} uitgeschakeld voor {1}.
|
||||
disabled=uitgeschakeld
|
||||
disabledToSpawnMob=Spawning this mob was disabled in the config file.
|
||||
disableUnlimited=\u00a77Oneindig plaatsen van {0} uitgeschakeld voor {1}.
|
||||
dontMoveMessage=\u00a77Beginnen met teleporteren in {0}. Niet bewegen.
|
||||
downloadingGeoIp=Bezig met downloaden van GeoIP database ... Dit kan een tijdje duren (country: 0.6 MB, city: 20MB)
|
||||
duplicatedUserdata=Dubbele userdata: {0} en {1}.
|
||||
enableUnlimited=\u00a77Oneindig aantal {0} aan {1} gegeven.
|
||||
enabled=ingeschakeld
|
||||
enableUnlimited=\u00a77Oneindig aantal {0} aan {1} gegeven.
|
||||
enchantmentApplied = \u00a77The enchantment {0} has been applied to your item in hand.
|
||||
enchantmentNotFound = \u00a7cEnchantment not found
|
||||
enchantmentPerm = \u00a7cYou do not have the permission for {0}
|
||||
@@ -97,9 +99,9 @@ gcentities= entities
|
||||
gcfree=Vrij geheugen: {0} MB
|
||||
gcmax=Maximaal geheugen: {0} MB
|
||||
gctotal=Gealloceerd geheugen: {0} MB
|
||||
geoipJoinFormat=Speler {0} komt uit {1}
|
||||
geoIpUrlEmpty=GeoIP download url is leeg.
|
||||
geoIpUrlInvalid=GeoIP download url is ongeldig.
|
||||
geoipJoinFormat=Speler {0} komt uit {1}
|
||||
godDisabledFor=uitgeschakeld voor {0}
|
||||
godEnabledFor=ingeschakeld voor {0}
|
||||
godMode=\u00a77God mode {0}.
|
||||
@@ -110,9 +112,9 @@ helpConsole=type ? om de consolehelp weer te geven.
|
||||
helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1}
|
||||
helpPages=Pagina \u00a7c{0}\u00a7f van de \u00a7c{1}\u00a7f:
|
||||
holeInFloor=Gat in de vloer
|
||||
homes=Homes: {0}
|
||||
homeSet=\u00a77Home ingesteld.
|
||||
homeSetToBed=\u00a77Je home is is nu verplaatst naar dit bed.
|
||||
homes=Homes: {0}
|
||||
hour=uur
|
||||
hours=uren
|
||||
ignorePlayer=Je negeert {0} vanaf nu.
|
||||
@@ -122,28 +124,28 @@ infoChapterPages=Hoofdstuk {0}, Pagina \u00a7c{1}\u00a7f van de \u00a7c{2}\u00a7
|
||||
infoFileDoesNotExist=Bestand info.txt bestaat niet. Bezig met aanmaken.
|
||||
infoPages=Pagina \u00a7c{0}\u00a7f van de \u00a7c{1}\u00a7f:
|
||||
infoUnknownChapter=Onbekend hoofdstuk.
|
||||
invBigger=De inventory van de andere speler is groter dan die van jou.
|
||||
invRestored=Je inventory is hersteld.
|
||||
invSee=Je kijkt naar de inventory van {0}.
|
||||
invSeeHelp=Type /invsee om je inventory te herstellen.
|
||||
invalidCharge=\u00a7cOngeldig te laden.
|
||||
invalidMob=Ongeldig mob type.
|
||||
invalidServer=Ongeldige server!
|
||||
invalidSignLine=Regel {0} op het bordje is ongeldig.
|
||||
invalidWorld=\u00a7cOngeldige wereld.
|
||||
invBigger=De inventory van de andere speler is groter dan die van jou.
|
||||
inventoryCleared=\u00a77inventory leeggemaakt.
|
||||
inventoryClearedOthers=\u00a77inventory van \u00a7c{0}\u00a77 leeggemaakt.
|
||||
invRestored=Je inventory is hersteld.
|
||||
invSee=Je kijkt naar de inventory van {0}.
|
||||
invSeeHelp=Type /invsee om je inventory te herstellen.
|
||||
is=is
|
||||
itemCannotBeSold=Dat voorwerp kan niet aan de server worden verkocht.
|
||||
itemMustBeStacked=Voorwerp moet geruild worden als stapel. Een hoeveelheid van 2 moet dus geruild worden als twee stapels, etc.
|
||||
itemNotEnough1=\u00a7cJe hebt niet genoeg van dat voorwerp om te verkopen.
|
||||
itemNotEnough2=\u00a77Type /sell itemname Als je alles daarvan wilt verkopen
|
||||
itemNotEnough3=\u00a77/sell itemname -1 zorgt ervoor dat ze allemaal behalve 1 worden verkocht, etc.
|
||||
itemsCsvNotLoaded=De item kunnen niet geladen worden.csv.
|
||||
itemSellAir=Je wilde serieus lucht verkopen? Plaats een voorwerp in je hand.
|
||||
itemSold=\u00a77Verkocht voor \u00a7c{0} \u00a77({1} {2} voorwerpen voor {3} per stuk)
|
||||
itemSoldConsole={0} verkocht {1} voor \u00a77{2} \u00a77({3} voorwerpen voor {4} per stuk)
|
||||
itemSpawn=\u00a77Geeft {0} {1}
|
||||
itemsCsvNotLoaded=De item kunnen niet geladen worden.csv.
|
||||
jailAlreadyIncarcerated=\u00a7cPerson is already in jail: {0}
|
||||
jailMessage=\u00a7cYou do the crime, you do the time.
|
||||
jailNotExist=Die gevangenis bestaat niet.
|
||||
@@ -160,8 +162,8 @@ kitError=\u00a7cEr zijn geen geldige kits.
|
||||
kitErrorHelp=\u00a7cMisschien mist er een hoeveelheid van het item in de configuratie?
|
||||
kitGive=\u00a77Kit {0} wordt gegeven.
|
||||
kitInvFull=\u00a7cJe inventory was vol, de kit wordt op de grond geplaatst
|
||||
kitTimed=\u00a7cJe kan die kit pas weer gebruiken over {0}.
|
||||
kits=\u00a77Kits: {0}
|
||||
kitTimed=\u00a7cJe kan die kit pas weer gebruiken over {0}.
|
||||
lightningSmited=\u00a77Je bent zojuist verbrand
|
||||
lightningUse=\u00a77Brand {0}
|
||||
listAfkTag = \u00a77[AFK]\u00a7f
|
||||
@@ -169,14 +171,13 @@ listAmount = \u00a79There are \u00a7c{0}\u00a79 out of maximum \u00a7c{1}\u00a79
|
||||
listAmountHidden = \u00a79There are \u00a7c{0}\u00a77/{1}\u00a79 out of maximum \u00a7c{2}\u00a79 players online.
|
||||
listHiddenTag = \u00a77[HIDDEN]\u00a7f
|
||||
loadWarpError=Fout bij het laden van warp {0}
|
||||
loadinfo=Build {1} geladen {0} van {2}
|
||||
localFormat=Local: <{0}> {1}
|
||||
mailClear=\u00a7cType /mail clear, om ej berichten als gelezen te markeren.
|
||||
mailCleared=\u00a77Bericht geklaard!
|
||||
mailSent=\u00a77Bericht verzonden!
|
||||
markMailAsRead=\u00a7cType /mail clear, om je berichten als gelezen te markeren
|
||||
markedAsAway=\u00a77Je staat nu als afwezig gemeld.
|
||||
markedAsNotAway=\u00a77Je staat niet meer als afwezig gemeld.
|
||||
markMailAsRead=\u00a7cType /mail clear, om je berichten als gelezen te markeren
|
||||
maxHomes=You cannot set more than {0} homes.
|
||||
mayNotJail=\u00a7cJe mag die speler niet in de gevangenis zetten.
|
||||
me=me
|
||||
@@ -184,10 +185,10 @@ minute=minuut
|
||||
minutes=minuten
|
||||
missingItems=Je hebt geen {0}x {1}.
|
||||
missingPrefixSuffix=Er mist een prefix of suffix voor {0}
|
||||
mobsAvailable=\u00a77Mobs: {0}
|
||||
mobSpawnError=Fout bij het veranderen van de mob spawner.
|
||||
mobSpawnLimit=Grootte van de mob hang af van het server limiet
|
||||
mobSpawnTarget=Target blok moet een mob spawner zijn.
|
||||
mobsAvailable=\u00a77Mobs: {0}
|
||||
moneyRecievedFrom=\u00a7a{0} is ontvangen van {1}
|
||||
moneySentTo=\u00a7a{0} is verzonden naar {1}
|
||||
moneyTaken={0} van je bankrekening afgehaald.
|
||||
@@ -195,10 +196,10 @@ month=maand
|
||||
months=maanden
|
||||
moreThanZero=Het aantal moet groter zijn dan 0.
|
||||
msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
|
||||
muteExempt=\u00a7cJe kan deze speler niet muten.
|
||||
mutedPlayer=Speler {0} gemute.
|
||||
mutedPlayerFor=Speler {0} is gemute voor {1}.
|
||||
mutedUserSpeaks={0} probeerde te praten, maar is gemute.
|
||||
muteExempt=\u00a7cJe kan deze speler niet muten.
|
||||
nearbyPlayers=Players nearby: {0}
|
||||
needTpohere=Je moet toegang krijgen tot /tpohere om naar andere spelers te teleporteren.
|
||||
negativeBalanceError=Speler is niet toegestaan om een negatief saldo te hebben.
|
||||
@@ -220,6 +221,7 @@ noKitPermission=\u00a7cJe hebt de \u00a7c{0}\u00a7c toestemming nodig om die kit
|
||||
noKits=\u00a77Er zijn nog geen kits beschikbaar
|
||||
noMail=Je hebt geen berichten
|
||||
noMotd=\u00a7cEr is geen bericht van de dag.
|
||||
none=geen
|
||||
noNewMail=\u00a77Je hebt geen nieuwe berichten.
|
||||
noPendingRequest=Je hebt geen aanvragen.
|
||||
noPerm=\u00a7cJe hebt de \u00a7f{0}\u00a7c toestemming niet.
|
||||
@@ -227,29 +229,21 @@ noPermToSpawnMob=\u00a7cYou don''t have permission to spawn this mob.
|
||||
noPlacePermission=\u00a7cJe hebt geen toestemming om een blok naast die sign te plaatsen.
|
||||
noPowerTools=You have no power tools assigned.
|
||||
noRules=\u00a7cEr zijn nog geen regels gegeven.
|
||||
noWarpsDefined=Geen warps gedefinieerd
|
||||
none=geen
|
||||
notAllowedToQuestion=\u00a7cJe bent niet bevoegd om de vraag functie te gebruiken.
|
||||
notAllowedToShout=\u00a7cJe bent niet bevoegd om de roep functie te gebruiken.
|
||||
notEnoughExperience=You do not have enough experience.
|
||||
notEnoughMoney=Je hebt niet voldoende middelen.
|
||||
nothingInHand = \u00a7cYou have nothing in your hand.
|
||||
notRecommendedBukkit=* ! * De Bukkit versie is niet de aangeraden build voor Essentials.
|
||||
notSupportedYet=Nog niet ondersteund.
|
||||
nothingInHand = \u00a7cYou have nothing in your hand.
|
||||
now=nu
|
||||
noWarpsDefined=Geen warps gedefinieerd
|
||||
nuke=May death rain upon them
|
||||
numberRequired=Er moet daar een nummer, grapjas.
|
||||
onlyDayNight=/time ondersteund alleen day/night.
|
||||
onlyPlayers=Alleen in-game spelers kunnen {0} gebruiken.
|
||||
onlySunStorm=/weather only supports sun/storm.
|
||||
orderBalances=Ordering balances of {0} users, please wait ...
|
||||
pTimeCurrent=\u00a7e{0}''s\u00a7f time is {1}.
|
||||
pTimeCurrentFixed=\u00a7e{0}''s\u00a7f time is fixed to {1}.
|
||||
pTimeNormal=\u00a7e{0}''s\u00a7f time is normal and matches the server.
|
||||
pTimeOthersPermission=\u00a7cYou are not authorized to set other players'' time.
|
||||
pTimePlayers=These players have their own time:
|
||||
pTimeReset=Player time has been reset for: \u00a7e{0}
|
||||
pTimeSet=Player time is set to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
pTimeSetFixed=Player time is fixed to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
parseError=Fout bij ontleding {0} op regel {1}
|
||||
pendingTeleportCancelled=\u00a7cAangevraagde teleportatie afgelast.
|
||||
permissionsError=Permissions/GroupManager ontbreekt; chat prefixes/suffixes worden uitgeschakeld.
|
||||
@@ -277,6 +271,14 @@ powerToolRemoveAll=All commands removed from {0}.
|
||||
powerToolsDisabled=All of your power tools have been disabled.
|
||||
powerToolsEnabled=All of your power tools have been enabled.
|
||||
protectionOwner=\u00a76[EssentialsProtect] Beschermingeigenaar: {0}
|
||||
pTimeCurrent=\u00a7e{0}''s\u00a7f time is {1}.
|
||||
pTimeCurrentFixed=\u00a7e{0}''s\u00a7f time is fixed to {1}.
|
||||
pTimeNormal=\u00a7e{0}''s\u00a7f time is normal and matches the server.
|
||||
pTimeOthersPermission=\u00a7cYou are not authorized to set other players'' time.
|
||||
pTimePlayers=These players have their own time:
|
||||
pTimeReset=Player time has been reset for: \u00a7e{0}
|
||||
pTimeSet=Player time is set to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
pTimeSetFixed=Player time is fixed to \u00a73{0}\u00a7f for: \u00a7e{1}
|
||||
questionFormat=\u00a77[Vraag]\u00a7f {0}
|
||||
readNextPage=Type /{0} {1} to read the next page
|
||||
reloadAllPlugins=\u00a77Alle plugins zijn herladen.
|
||||
@@ -291,13 +293,15 @@ requestAcceptedFrom=\u00a77{0} accepted your teleport request.
|
||||
requestDenied=\u00a77Teleporteer aanvraag geweigerd.
|
||||
requestDeniedFrom=\u00a77{0} denied your teleport request.
|
||||
requestSent=\u00a77Aanvraag verstuurd naar {0}\u00a77.
|
||||
requestTimedOut=\u00a7cTeleport request has timed out
|
||||
requiredBukkit=* ! * You need atleast build {0} of CraftBukkit, download it from http://ci.bukkit.org.
|
||||
returnPlayerToJailError=Fout opgetreden bij terugzetten van speler in gevangenis.
|
||||
returnPlayerToJailError=Error occurred when trying to return player {0} to jail: {1}
|
||||
second=seconde
|
||||
seconds=seconde
|
||||
seenOffline=Speler {0} is offline vanaf {1}
|
||||
seenOnline=Speler {0} is online vanaf {1}
|
||||
serverFull=Server is vol
|
||||
serverTotal=Server Total: {0}
|
||||
setSpawner=Changed spawner type to {0}
|
||||
sheepMalformedColor=Misvoormde kleur.
|
||||
shoutFormat=\u00a77[Shout]\u00a7f {0}
|
||||
@@ -308,28 +312,29 @@ signProtectInvalidLocation=\u00a74You are not allowed to create sign here.
|
||||
similarWarpExist=Er bestaat al een warp met dezelfde naam.
|
||||
slimeMalformedSize=Misvoormde grootte.
|
||||
soloMob=Die mob is liever in zijn eentje
|
||||
spawnSet=\u00a77Spawn locatie voor de groep {0} ingesteld.
|
||||
spawned=gespawned
|
||||
spawnSet=\u00a77Spawn locatie voor de groep {0} ingesteld.
|
||||
suicideMessage=\u00a77Vaarwel vreedzame wereld...
|
||||
suicideSuccess= \u00a77{0} pleegde zelfmoord
|
||||
survival=survival
|
||||
takenFromAccount=\u00a7c{0} is van je bank rekening afgehaald.
|
||||
takenFromOthersAccount=\u00a7c{0} is overgenomen uit {1} account.
|
||||
takenFromOthersAccount=\u00a7c{0} taken from {1}\u00a7c account. New balance: {2}
|
||||
teleportAAll=\u00a77Teleporting request sent to all players...
|
||||
teleportAll=\u00a77Bezig met teleporteren van alle spelers...
|
||||
teleportAtoB=\u00a77{0}\u00a77 is naar {1}\u00a77 geteleporteerd.
|
||||
teleportDisabled={0} heeft teleporteren uit gezet.
|
||||
teleportHereRequest=\u00a7c{0}\u00a7c Heeft gevraagd of hij/zij naar jou mag teleporteren.
|
||||
teleportNewPlayerError=Fout bij het teleporteren van nieuwe speler.
|
||||
teleportRequest=\u00a7c{0}\u00a7c vraagt of hij jou kan teleporteren.
|
||||
teleportTop=\u00a77Bezig met teleporteren naar de top.
|
||||
teleportationCommencing=\u00a77Aan het beginnen met teleporteren...
|
||||
teleportationDisabled=\u00a77Teleportatie uitgeschakeld.
|
||||
teleportationEnabled=\u00a77Teleportatie ingeschakeld.
|
||||
teleportAtoB=\u00a77{0}\u00a77 is naar {1}\u00a77 geteleporteerd.
|
||||
teleportDisabled={0} heeft teleporteren uit gezet.
|
||||
teleportHereRequest=\u00a7c{0}\u00a7c Heeft gevraagd of hij/zij naar jou mag teleporteren.
|
||||
teleporting=\u00a77Bezig met teleporteren...
|
||||
teleportingPortal=\u00a77Bezig met teleporteren via de portal.
|
||||
tempBanned=Tijdelijk geband voor {0}
|
||||
teleportNewPlayerError=Fout bij het teleporteren van nieuwe speler.
|
||||
teleportRequest=\u00a7c{0}\u00a7c vraagt of hij jou kan teleporteren.
|
||||
teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds.
|
||||
teleportTop=\u00a77Bezig met teleporteren naar de top.
|
||||
tempbanExempt=\u00a77Je mag deze speler niet een tempban geven
|
||||
tempBanned=Tijdelijk geband voor {0}
|
||||
thunder= Je {0} onweert de wereld
|
||||
thunderDuration=Je {0} onweert de wereld voor {1} seconde.
|
||||
timeBeforeHeal=Afkoeltijd tot de volgende heal: {0}
|
||||
@@ -360,25 +365,25 @@ unlimitedItemPermission=\u00a7cOnbevoegd om oneindig {0} te hebben.
|
||||
unlimitedItems=Oneindige voorwerpen:
|
||||
unmutedPlayer=Speler {0} mag weer spreken.
|
||||
upgradingFilesError=Fout tijdens het upgraden van de bestanden
|
||||
userdataMoveBackError=Fout bij het verplaasten van userdata/{0}.tmp naar userdata/{1}
|
||||
userdataMoveError=Fout bij het verplaasten van userdata/{0} naar userdata/{1}.tmp
|
||||
userDoesNotExist=Speler {0} bestaat niet.
|
||||
userIsAway={0} is nu AFK
|
||||
userIsNotAway={0} is niet meer AFK
|
||||
userJailed=\u00a77Je bent in de gevangenis gezet.
|
||||
userUsedPortal={0} gebruikte een bestaande uitgangs portal.
|
||||
userdataMoveBackError=Fout bij het verplaasten van userdata/{0}.tmp naar userdata/{1}
|
||||
userdataMoveError=Fout bij het verplaasten van userdata/{0} naar userdata/{1}.tmp
|
||||
usingTempFolderForTesting=Tijdelijke map om te testen:
|
||||
versionMismatch=Verkeerde versie! Update {0} naar dezelfde versie.
|
||||
versionMismatchAll=Verkeerde versie! Update alle Essentials jars naar dezelfde versie.
|
||||
voiceSilenced=\u00a77Je kan niet meer praten
|
||||
warpDeleteError=Fout bij het verwijderen van het warp bestand.
|
||||
warpingTo=\u00a77Aan het warpen naar {0}.
|
||||
warpListPermission=\u00a7cJe hebt geen toegang om die warp te maken.
|
||||
warpNotExist=Die warp bestaat niet.
|
||||
warpSet=\u00a77Warp {0} ingesteld.
|
||||
warpUsePermission=\u00a7cOnbevoegd om die warp te gebruiken.
|
||||
warpingTo=\u00a77Aan het warpen naar {0}.
|
||||
warps=Warps: {0}
|
||||
warpsCount=\u00a77There are {0} warps. Showing page {1} of {2}.
|
||||
warpSet=\u00a77Warp {0} ingesteld.
|
||||
warpUsePermission=\u00a7cOnbevoegd om die warp te gebruiken.
|
||||
weatherStorm=\u00a77Je hebt het weer naar storm gezet in de {0}
|
||||
weatherStormFor=\u00a77Je hebt het weer in de {0} naar storm gezet voor {1} seconde
|
||||
weatherSun=\u00a77Je hebt het weer naar zon gezet in de {0}
|
||||
@@ -402,5 +407,3 @@ year=jaar
|
||||
years=jaren
|
||||
youAreHealed=\u00a77Je bent genezen.
|
||||
youHaveNewMail=\u00a7cJe hebt {0} berichten!\u00a7f Type \u00a77/mail read\u00a7f om je berichten te bekijken.
|
||||
requestTimedOut=\u00a7cTeleport request has timed out
|
||||
teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds.
|
||||
+22
-22
@@ -3,9 +3,9 @@ name: Essentials
|
||||
main: com.earth2me.essentials.Essentials
|
||||
# Note to developers: This next line cannot change, or the automatic versioning system will break.
|
||||
version: TeamCity
|
||||
website: http://ci.earth2me.net/
|
||||
website: http://tiny.cc/EssentialsCommands
|
||||
description: Provides an essential, core set of commands for Bukkit.
|
||||
authors: [Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans, Xeology, KHobbits]
|
||||
authors: [Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans, Xeology, KHobbits, md_5]
|
||||
commands:
|
||||
afk:
|
||||
description: Marks you as away-from-keyboard.
|
||||
@@ -26,7 +26,7 @@ commands:
|
||||
balance:
|
||||
description: States the current balance of a player.
|
||||
usage: /<command> [player]
|
||||
aliases: [bal,emoney,ebalance,ebal]
|
||||
aliases: [bal,money,emoney,ebalance,ebal]
|
||||
balancetop:
|
||||
description: Gets the top balance values.
|
||||
usage: /<command> <page>
|
||||
@@ -58,11 +58,11 @@ commands:
|
||||
clearinventory:
|
||||
description: Clear all items in your inventory.
|
||||
usage: /<command>
|
||||
aliases: [ci,eci,eclearinventory]
|
||||
aliases: [ci,eci,clearinvent,eclearinvent,eclearinventory]
|
||||
compass:
|
||||
description: Describes your current bearing.
|
||||
usage: /<command>
|
||||
aliases: [ecompass]
|
||||
aliases: [ecompass,direction,edirection]
|
||||
delhome:
|
||||
description: Removes a home
|
||||
usage: /<command> [player:]<name>
|
||||
@@ -97,7 +97,7 @@ commands:
|
||||
feed:
|
||||
description: Satisfy the hunger.
|
||||
usage: /<command> [player]
|
||||
aliases: [efeed]
|
||||
aliases: [efeed,eat,eeat]
|
||||
itemdb:
|
||||
description: Searches for an item.
|
||||
usage: /<command> <item>
|
||||
@@ -113,14 +113,14 @@ commands:
|
||||
getpos:
|
||||
description: Get your current coordinates or those of a player.
|
||||
usage: /<command> [player]
|
||||
aliases: [coords,egetpos,whereami,ewhereami]
|
||||
aliases: [coords,egetpos,position,eposition,whereami,ewhereami]
|
||||
gc:
|
||||
description: Reports garbage collection info; useful to developers.
|
||||
usage: /<command>
|
||||
aliases: [mem,memory,egc,emem,ememory]
|
||||
give:
|
||||
description: Give a player an item.
|
||||
usage: /<command> <player> <item|numeric> [amount <enchantmentname[:level]> ...]
|
||||
usage: /<command> <player> <item|numeric> [amount <enchantmentname[:level]> ...]
|
||||
aliases: [egive]
|
||||
god:
|
||||
description: Enables your godly powers.
|
||||
@@ -141,7 +141,7 @@ commands:
|
||||
home:
|
||||
description: Teleport to your home.
|
||||
usage: /<command> [player:][name]
|
||||
aliases: [ehome]
|
||||
aliases: [ehome,homes,ehomes]
|
||||
ignore:
|
||||
description: Ignore other players.
|
||||
usage: /<command> <player>
|
||||
@@ -165,7 +165,7 @@ commands:
|
||||
jump:
|
||||
description: Jumps to the nearest block in the line of sight.
|
||||
usage: /<command>
|
||||
aliases: [j,ejump]
|
||||
aliases: [j,ej,jumpto,ejumpto,ejump]
|
||||
kick:
|
||||
description: Kicks a specified player with a reason.
|
||||
usage: /<command> <player> [reason]
|
||||
@@ -177,7 +177,7 @@ commands:
|
||||
kit:
|
||||
description: Obtains the specified kit or views all available kits.
|
||||
usage: /<command> [kit]
|
||||
aliases: [ekit,kits]
|
||||
aliases: [ekit,kits,ekits]
|
||||
kill:
|
||||
description: Kills specified player.
|
||||
usage: /<command> <player>
|
||||
@@ -189,7 +189,7 @@ commands:
|
||||
list:
|
||||
description: List all online players.
|
||||
usage: /<command>
|
||||
aliases: [playerlist,who,online,elist,ewho,eplayerlist,eonline]
|
||||
aliases: [playerlist,who,online,plist,eplist,elist,ewho,eplayerlist,eonline]
|
||||
lightning:
|
||||
description: The power of Thor. Strike at cursor or player.
|
||||
usage: /<command> [player] [power]
|
||||
@@ -220,7 +220,7 @@ commands:
|
||||
aliases: [emute]
|
||||
near:
|
||||
description: Lists the players near by or around a player
|
||||
usage: /<command> [playername] [radius]
|
||||
usage: /<command> [playername] [radius]
|
||||
aliases: [nearby,enear,enearby]
|
||||
nick:
|
||||
description: Change your nickname or that of another player.
|
||||
@@ -237,7 +237,7 @@ commands:
|
||||
ping:
|
||||
description: Pong!
|
||||
usage: /<command>
|
||||
aliases: [pong,eping,epong]
|
||||
aliases: [pong,echo,echo,eping,epong]
|
||||
powertool:
|
||||
description: Assigns a command to the item in hand, {player} will be replaced by the name of the player that you click.
|
||||
usage: /<command> [l:|a:|r:|c:|d:][command] [arguments]
|
||||
@@ -245,7 +245,7 @@ commands:
|
||||
powertooltoggle:
|
||||
description: Enables or disables all current powertools
|
||||
usage: /<command>
|
||||
aliases: [ptt,epowertooltoggle,eptt]
|
||||
aliases: [ptt,epowertooltoggle,pttoggle,epttoggle,eptt]
|
||||
ptime:
|
||||
description: Adjust player's client time. Add @ prefix to fix.
|
||||
usage: /<command> [list|reset|day|night|dawn|17:30|4pm|4000ticks] [player|*]
|
||||
@@ -337,18 +337,18 @@ commands:
|
||||
tp:
|
||||
description: Teleport to a player.
|
||||
usage: /<command> <player> [otherplayer]
|
||||
aliases: [tele,etele,etp,tp2p,etp2p]
|
||||
aliases: [tele,teleport,eteleport,etele,etp,tp2p,etp2p]
|
||||
tpa:
|
||||
description: Request to teleport to the specified player.
|
||||
usage: /<command> <player>
|
||||
aliases: [call,etpa,ecall]
|
||||
aliases: [call,tpask,etpask,etpa,ecall]
|
||||
tpaall:
|
||||
description: Requests all players online to teleport to you.
|
||||
usage: /<command> <player>
|
||||
aliases: [etpaall]
|
||||
tpaccept:
|
||||
description: Accepts a teleport request.
|
||||
usage: /<command>
|
||||
usage: /<command> [otherplayer]
|
||||
aliases: [tpyes,etpaccept,etpyes]
|
||||
tpahere:
|
||||
description: Request that the specified player teleport to you.
|
||||
@@ -389,11 +389,11 @@ commands:
|
||||
unban:
|
||||
description: Unbans the specified player.
|
||||
usage: /<command> <player>
|
||||
aliases: [pardon,eunban]
|
||||
aliases: [pardon,eunban,epardon]
|
||||
unbanip:
|
||||
description: Unbans the specified IP address.
|
||||
usage: /<command> <address>
|
||||
aliases: [eunbanip,pardonip]
|
||||
aliases: [eunbanip,pardonip,epardonip]
|
||||
unlimited:
|
||||
description: Allows the unlimited placing of items.
|
||||
usage: /<command> <list|item|clear> [player]
|
||||
@@ -401,7 +401,7 @@ commands:
|
||||
warp:
|
||||
description: List all warps or warp to the specified location.
|
||||
usage: /<command> <pagenumber|warp> [player]
|
||||
aliases: [ewarp,warps]
|
||||
aliases: [ewarp,warps,ewarps]
|
||||
weather:
|
||||
description: Setting the weather.
|
||||
usage: /<command> <storm/sun> [duration]
|
||||
@@ -417,4 +417,4 @@ commands:
|
||||
worth:
|
||||
description: Calculates the worth of items in hand or as specified.
|
||||
usage: /<command> [item] [amount]
|
||||
aliases: [eworth]
|
||||
aliases: [eworth,price,eprice]
|
||||
@@ -13,12 +13,18 @@ import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.ConsoleCommandSender;
|
||||
import org.bukkit.command.PluginCommand;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.InventoryType;
|
||||
import org.bukkit.generator.ChunkGenerator;
|
||||
import org.bukkit.help.HelpMap;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.InventoryHolder;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.Recipe;
|
||||
import org.bukkit.map.MapView;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import org.bukkit.plugin.ServicesManager;
|
||||
import org.bukkit.plugin.messaging.Messenger;
|
||||
import org.bukkit.scheduler.BukkitScheduler;
|
||||
import org.bukkit.scheduler.BukkitTask;
|
||||
import org.bukkit.scheduler.BukkitWorker;
|
||||
@@ -249,7 +255,6 @@ public class FakeServer implements Server
|
||||
return worlds;
|
||||
}
|
||||
|
||||
@Override
|
||||
public World createWorld(String string, Environment e)
|
||||
{
|
||||
World w = new FakeWorld(string, e);
|
||||
@@ -257,7 +262,6 @@ public class FakeServer implements Server
|
||||
return w;
|
||||
}
|
||||
|
||||
@Override
|
||||
public World createWorld(String string, Environment e, long l)
|
||||
{
|
||||
World w = new FakeWorld(string, e);
|
||||
@@ -330,18 +334,6 @@ public class FakeServer implements Server
|
||||
return player;
|
||||
}
|
||||
|
||||
@Override
|
||||
public World createWorld(String string, Environment e, ChunkGenerator cg)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public World createWorld(String string, Environment e, long l, ChunkGenerator cg)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public World createWorld(WorldCreator creator)
|
||||
{
|
||||
@@ -549,6 +541,12 @@ public class FakeServer implements Server
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Location getBedSpawnLocation()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -623,4 +621,88 @@ public class FakeServer implements Server
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Messenger getMessenger()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendPluginMessage(Plugin plugin, String string, byte[] bytes)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getListeningPluginChannels()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean useExactLoginLocation()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getTicksPerAnimalSpawns()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getTicksPerMonsterSpawns()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Recipe> getRecipesFor(ItemStack is)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterator<Recipe> recipeIterator()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clearRecipes()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resetRecipes()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public HelpMap getHelpMap()
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Inventory createInventory(InventoryHolder ih, InventoryType it)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Inventory createInventory(InventoryHolder ih, int i)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Inventory createInventory(InventoryHolder ih, int i, String string)
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
}
|
||||
@@ -873,6 +873,14 @@ is divided into following sections:
|
||||
-->
|
||||
<target depends="init" if="have.sources" name="-javadoc-build">
|
||||
<mkdir dir="${dist.javadoc.dir}"/>
|
||||
<condition else="" property="javadoc.endorsed.classpath.cmd.line.arg" value="-J${endorsed.classpath.cmd.line.arg}">
|
||||
<and>
|
||||
<isset property="endorsed.classpath.cmd.line.arg"/>
|
||||
<not>
|
||||
<equals arg1="${endorsed.classpath.cmd.line.arg}" arg2=""/>
|
||||
</not>
|
||||
</and>
|
||||
</condition>
|
||||
<javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
|
||||
<classpath>
|
||||
<path path="${javac.classpath}"/>
|
||||
@@ -884,6 +892,7 @@ is divided into following sections:
|
||||
<include name="**/*.java"/>
|
||||
<exclude name="*.java"/>
|
||||
</fileset>
|
||||
<arg line="${javadoc.endorsed.classpath.cmd.line.arg}"/>
|
||||
</javadoc>
|
||||
<copy todir="${dist.javadoc.dir}">
|
||||
<fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
|
||||
|
||||
@@ -4,5 +4,5 @@ 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=7c7f517b
|
||||
nbproject/build-impl.xml.script.CRC32=4e36cf00
|
||||
nbproject/build-impl.xml.stylesheet.CRC32=c12040a1@1.47.1.46
|
||||
nbproject/build-impl.xml.script.CRC32=52184b61
|
||||
nbproject/build-impl.xml.stylesheet.CRC32=fcddb364@1.50.1.46
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.earth2me.essentials.chat;
|
||||
|
||||
import com.earth2me.essentials.IEssentials;
|
||||
import com.earth2me.essentials.Trade;
|
||||
import com.earth2me.essentials.User;
|
||||
|
||||
|
||||
public class ChatStore
|
||||
{
|
||||
private final User user;
|
||||
private final String type;
|
||||
private final Trade charge;
|
||||
private long radius;
|
||||
|
||||
ChatStore(final IEssentials ess, final User user, final String type)
|
||||
{
|
||||
this.user = user;
|
||||
this.type = type;
|
||||
this.charge = new Trade(getLongType(), ess);
|
||||
}
|
||||
|
||||
public User getUser()
|
||||
{
|
||||
return user;
|
||||
}
|
||||
|
||||
public Trade getCharge()
|
||||
{
|
||||
return charge;
|
||||
}
|
||||
|
||||
public String getType()
|
||||
{
|
||||
return type;
|
||||
}
|
||||
|
||||
public String getLongType()
|
||||
{
|
||||
return type.length() == 0 ? "chat" : "chat-" + type;
|
||||
}
|
||||
|
||||
public long getRadius()
|
||||
{
|
||||
return radius;
|
||||
}
|
||||
|
||||
public void setRadius(long radius)
|
||||
{
|
||||
this.radius = radius;
|
||||
}
|
||||
}
|
||||
Loaded 100 of 186 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user