Merge branch '2.9' of github.com:essentials/Essentials into release

This commit is contained in:
KHobbits 2012-11-11 14:53:42 +00:00
commit 648a5ef8dd
31 changed files with 1302 additions and 393 deletions

View file

@ -12,9 +12,9 @@ is divided into following sections:
- execution
- debugging
- javadoc
- junit compilation
- junit execution
- junit debugging
- test compilation
- test execution
- test debugging
- applet
- cleanup
@ -181,6 +181,7 @@ is divided into following sections:
</and>
</condition>
<property name="run.jvmargs" value=""/>
<property name="run.jvmargs.ide" value=""/>
<property name="javac.compilerargs" value=""/>
<property name="work.dir" value="${basedir}"/>
<condition property="no.deps">
@ -225,6 +226,27 @@ is divided into following sections:
<property name="jar.index.metainf" value="${jar.index}"/>
<property name="copylibs.rebase" value="true"/>
<available file="${meta.inf.dir}/persistence.xml" property="has.persistence.xml"/>
<condition property="junit.available">
<or>
<available classname="org.junit.Test" classpath="${run.test.classpath}"/>
<available classname="junit.framework.Test" classpath="${run.test.classpath}"/>
</or>
</condition>
<condition property="testng.available">
<available classname="org.testng.annotations.Test" classpath="${run.test.classpath}"/>
</condition>
<condition property="junit+testng.available">
<and>
<istrue value="${junit.available}"/>
<istrue value="${testng.available}"/>
</and>
</condition>
<condition else="testng" property="testng.mode" value="mixed">
<istrue value="${junit+testng.available}"/>
</condition>
<condition else="" property="testng.debug.mode" value="-mixed">
<istrue value="${junit+testng.available}"/>
</condition>
</target>
<target name="-post-init">
<!-- Empty placeholder for easier customization. -->
@ -357,11 +379,52 @@ is divided into following sections:
</sequential>
</macrodef>
</target>
<target name="-init-macrodef-junit">
<target if="${junit.available}" name="-init-macrodef-junit-init">
<condition else="false" property="nb.junit.batch" value="true">
<and>
<istrue value="${junit.available}"/>
<not>
<isset property="test.method"/>
</not>
</and>
</condition>
<condition else="false" property="nb.junit.single" value="true">
<and>
<istrue value="${junit.available}"/>
<isset property="test.method"/>
</and>
</condition>
</target>
<target if="${nb.junit.single}" name="-init-macrodef-junit-single" unless="${nb.junit.batch}">
<macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<attribute default="" name="testmethods"/>
<element name="customize" optional="true"/>
<sequential>
<property name="junit.forkmode" value="perTest"/>
<junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
<test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/>
<syspropertyset>
<propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<formatter type="brief" usefile="false"/>
<formatter type="xml"/>
<jvmarg value="-ea"/>
<customize/>
</junit>
</sequential>
</macrodef>
</target>
<target if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}">
<macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<attribute default="" name="testmethods"/>
<element name="customize" optional="true"/>
<sequential>
<property name="junit.forkmode" value="perTest"/>
<junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
@ -370,32 +433,270 @@ is divided into following sections:
<filename name="@{testincludes}"/>
</fileset>
</batchtest>
<classpath>
<path path="${run.test.classpath}"/>
</classpath>
<syspropertyset>
<propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<formatter type="brief" usefile="false"/>
<formatter type="xml"/>
<jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
<jvmarg value="-ea"/>
<jvmarg line="${run.jvmargs}"/>
<customize/>
</junit>
</sequential>
</macrodef>
</target>
<target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile, -profile-init-check" name="profile-init"/>
<target name="-profile-pre-init">
<target depends="-init-macrodef-junit-init,-init-macrodef-junit-single, -init-macrodef-junit-batch" if="${junit.available}" name="-init-macrodef-junit"/>
<target if="${testng.available}" name="-init-macrodef-testng">
<macrodef name="testng" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<attribute default="" name="testmethods"/>
<element name="customize" optional="true"/>
<sequential>
<condition else="" property="testng.methods.arg" value="@{testincludes}.@{testmethods}">
<isset property="test.method"/>
</condition>
<union id="test.set">
<fileset dir="${test.src.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}">
<filename name="@{testincludes}"/>
</fileset>
</union>
<taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/>
<testng classfilesetref="test.set" failureProperty="tests.failed" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="BuildAll" testname="TestNG tests" workingDir="${work.dir}">
<xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/>
<propertyset>
<propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/>
</propertyset>
<customize/>
</testng>
</sequential>
</macrodef>
</target>
<target name="-init-macrodef-test-impl">
<macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<attribute default="" name="testmethods"/>
<element implicit="true" name="customize" optional="true"/>
<sequential>
<echo>No tests executed.</echo>
</sequential>
</macrodef>
</target>
<target depends="-init-macrodef-junit" if="${junit.available}" name="-init-macrodef-junit-impl">
<macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<attribute default="" name="testmethods"/>
<element implicit="true" name="customize" optional="true"/>
<sequential>
<j2seproject3:junit excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
<customize/>
</j2seproject3:junit>
</sequential>
</macrodef>
</target>
<target depends="-init-macrodef-testng" if="${testng.available}" name="-init-macrodef-testng-impl">
<macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<attribute default="" name="testmethods"/>
<element implicit="true" name="customize" optional="true"/>
<sequential>
<j2seproject3:testng excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
<customize/>
</j2seproject3:testng>
</sequential>
</macrodef>
</target>
<target depends="-init-macrodef-test-impl,-init-macrodef-junit-impl,-init-macrodef-testng-impl" name="-init-macrodef-test">
<macrodef name="test" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<attribute default="" name="testmethods"/>
<sequential>
<j2seproject3:test-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
<customize>
<classpath>
<path path="${run.test.classpath}"/>
</classpath>
<jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
<jvmarg line="${run.jvmargs}"/>
<jvmarg line="${run.jvmargs.ide}"/>
</customize>
</j2seproject3:test-impl>
</sequential>
</macrodef>
</target>
<target if="${junit.available}" name="-init-macrodef-junit-debug" unless="${nb.junit.batch}">
<macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<attribute default="" name="testmethods"/>
<element name="customize" optional="true"/>
<sequential>
<property name="junit.forkmode" value="perTest"/>
<junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
<test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/>
<syspropertyset>
<propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<formatter type="brief" usefile="false"/>
<formatter type="xml"/>
<jvmarg value="-ea"/>
<jvmarg line="${debug-args-line}"/>
<jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
<customize/>
</junit>
</sequential>
</macrodef>
</target>
<target if="${nb.junit.batch}" name="-init-macrodef-junit-debug-batch">
<macrodef name="junit-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<attribute default="" name="testmethods"/>
<element name="customize" optional="true"/>
<sequential>
<property name="junit.forkmode" value="perTest"/>
<junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}">
<batchtest todir="${build.test.results.dir}">
<fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
<filename name="@{testincludes}"/>
</fileset>
</batchtest>
<syspropertyset>
<propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<formatter type="brief" usefile="false"/>
<formatter type="xml"/>
<jvmarg value="-ea"/>
<jvmarg line="${debug-args-line}"/>
<jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
<customize/>
</junit>
</sequential>
</macrodef>
</target>
<target depends="-init-macrodef-junit-debug,-init-macrodef-junit-debug-batch" if="${junit.available}" name="-init-macrodef-junit-debug-impl">
<macrodef name="test-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<attribute default="" name="testmethods"/>
<element implicit="true" name="customize" optional="true"/>
<sequential>
<j2seproject3:junit-debug excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
<customize/>
</j2seproject3:junit-debug>
</sequential>
</macrodef>
</target>
<target if="${testng.available}" name="-init-macrodef-testng-debug">
<macrodef name="testng-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${main.class}" name="testClass"/>
<attribute default="" name="testMethod"/>
<element name="customize2" optional="true"/>
<sequential>
<condition else="-testclass @{testClass}" property="test.class.or.method" value="-methods @{testClass}.@{testMethod}">
<isset property="test.method"/>
</condition>
<condition else="-suitename BuildAll -testname @{testClass} ${test.class.or.method}" property="testng.cmd.args" value="@{testClass}">
<matches pattern=".*\.xml" string="@{testClass}"/>
</condition>
<delete dir="${build.test.results.dir}" quiet="true"/>
<mkdir dir="${build.test.results.dir}"/>
<j2seproject3:debug classname="org.testng.TestNG" classpath="${debug.test.classpath}">
<customize>
<customize2/>
<jvmarg value="-ea"/>
<arg line="${testng.debug.mode}"/>
<arg line="-d ${build.test.results.dir}"/>
<arg line="-listener org.testng.reporters.VerboseReporter"/>
<arg line="${testng.cmd.args}"/>
</customize>
</j2seproject3:debug>
</sequential>
</macrodef>
</target>
<target depends="-init-macrodef-testng-debug" if="${testng.available}" name="-init-macrodef-testng-debug-impl">
<macrodef name="testng-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${main.class}" name="testClass"/>
<attribute default="" name="testMethod"/>
<element implicit="true" name="customize2" optional="true"/>
<sequential>
<j2seproject3:testng-debug testClass="@{testClass}" testMethod="@{testMethod}">
<customize2/>
</j2seproject3:testng-debug>
</sequential>
</macrodef>
</target>
<target depends="-init-macrodef-junit-debug-impl" if="${junit.available}" name="-init-macrodef-test-debug-junit">
<macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<attribute default="" name="testmethods"/>
<attribute default="${main.class}" name="testClass"/>
<attribute default="" name="testMethod"/>
<sequential>
<j2seproject3:test-debug-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}">
<customize>
<classpath>
<path path="${run.test.classpath}"/>
</classpath>
<jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
<jvmarg line="${run.jvmargs}"/>
<jvmarg line="${run.jvmargs.ide}"/>
</customize>
</j2seproject3:test-debug-impl>
</sequential>
</macrodef>
</target>
<target depends="-init-macrodef-testng-debug-impl" if="${testng.available}" name="-init-macrodef-test-debug-testng">
<macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<attribute default="" name="testmethods"/>
<attribute default="${main.class}" name="testClass"/>
<attribute default="" name="testMethod"/>
<sequential>
<j2seproject3:testng-debug-impl testClass="@{testClass}" testMethod="@{testMethod}">
<customize2>
<syspropertyset>
<propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
</customize2>
</j2seproject3:testng-debug-impl>
</sequential>
</macrodef>
</target>
<target depends="-init-macrodef-test-debug-junit,-init-macrodef-test-debug-testng" name="-init-macrodef-test-debug"/>
<!--
pre NB7.2 profiling section; consider it deprecated
-->
<target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile, -profile-init-check" if="profiler.info.jvmargs.agent" name="profile-init"/>
<target if="profiler.info.jvmargs.agent" name="-profile-pre-init">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target name="-profile-post-init">
<target if="profiler.info.jvmargs.agent" name="-profile-post-init">
<!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. -->
</target>
<target name="-profile-init-macrodef-profile">
<target if="profiler.info.jvmargs.agent" name="-profile-init-macrodef-profile">
<macrodef name="resolve">
<attribute name="name"/>
<attribute name="value"/>
@ -427,10 +728,13 @@ is divided into following sections:
</sequential>
</macrodef>
</target>
<target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile" name="-profile-init-check">
<target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile" if="profiler.info.jvmargs.agent" name="-profile-init-check">
<fail unless="profiler.info.jvm">Must set JVM to use for profiling in profiler.info.jvm</fail>
<fail unless="profiler.info.jvmargs.agent">Must set profiler agent JVM arguments in profiler.info.jvmargs.agent</fail>
</target>
<!--
end of pre NB7.2 profiling section
-->
<target depends="-init-debug-args" name="-init-macrodef-nbjpda">
<macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1">
<attribute default="${main.class}" name="name"/>
@ -488,6 +792,7 @@ is divided into following sections:
<jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
<redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
<jvmarg line="${run.jvmargs}"/>
<jvmarg line="${run.jvmargs.ide}"/>
<classpath>
<path path="@{classpath}"/>
</classpath>
@ -504,6 +809,7 @@ is divided into following sections:
<macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
<attribute default="${main.class}" name="classname"/>
<attribute default="${run.classpath}" name="classpath"/>
<attribute default="jvm" name="jvm"/>
<element name="customize" optional="true"/>
<sequential>
<java classname="@{classname}" dir="${work.dir}" fork="true">
@ -511,6 +817,7 @@ is divided into following sections:
<jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
<redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
<jvmarg line="${run.jvmargs}"/>
<jvmarg line="${run.jvmargs.ide}"/>
<classpath>
<path path="@{classpath}"/>
</classpath>
@ -537,6 +844,9 @@ is divided into following sections:
<path path="${run.classpath.without.build.classes.dir}"/>
<chainedmapper>
<flattenmapper/>
<filtermapper>
<replacestring from=" " to="%20"/>
</filtermapper>
<globmapper from="*" to="lib/*"/>
</chainedmapper>
</pathconvert>
@ -582,7 +892,7 @@ is divided into following sections:
<target depends="-init-ap-cmdline-properties,-init-ap-cmdline-supported" name="-init-ap-cmdline">
<property name="ap.cmd.line.internal" value=""/>
</target>
<target depends="-pre-init,-init-private,-init-libraries,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-junit,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar,-init-ap-cmdline" name="init"/>
<target depends="-pre-init,-init-private,-init-libraries,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-test,-init-macrodef-test-debug,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar,-init-ap-cmdline" name="init"/>
<!--
===================
COMPILATION SECTION
@ -861,7 +1171,11 @@ is divided into following sections:
PROFILING SECTION
=================
-->
<target depends="profile-init,compile" description="Profile a project in the IDE." if="netbeans.home" name="profile">
<!--
pre NB7.2 profiler integration
-->
<target depends="profile-init,compile" description="Profile a project in the IDE." if="profiler.info.jvmargs.agent" name="-profile-pre72">
<fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
<nbprofiledirect>
<classpath>
<path path="${run.classpath}"/>
@ -869,8 +1183,9 @@ is divided into following sections:
</nbprofiledirect>
<profile/>
</target>
<target depends="profile-init,compile-single" description="Profile a selected class in the IDE." if="netbeans.home" name="profile-single">
<target depends="profile-init,compile-single" description="Profile a selected class in the IDE." if="profiler.info.jvmargs.agent" name="-profile-single-pre72">
<fail unless="profile.class">Must select one file in the IDE or set profile.class</fail>
<fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
<nbprofiledirect>
<classpath>
<path path="${run.classpath}"/>
@ -878,12 +1193,8 @@ is divided into following sections:
</nbprofiledirect>
<profile classname="${profile.class}"/>
</target>
<!--
=========================
APPLET PROFILING SECTION
=========================
-->
<target depends="profile-init,compile-single" if="netbeans.home" name="profile-applet">
<target depends="profile-init,compile-single" if="profiler.info.jvmargs.agent" name="-profile-applet-pre72">
<fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
<nbprofiledirect>
<classpath>
<path path="${run.classpath}"/>
@ -895,12 +1206,8 @@ is divided into following sections:
</customize>
</profile>
</target>
<!--
=========================
TESTS PROFILING SECTION
=========================
-->
<target depends="profile-init,compile-test-single" if="netbeans.home" name="profile-test-single">
<target depends="profile-init,compile-test-single" if="profiler.info.jvmargs.agent" name="-profile-test-single-pre72">
<fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
<nbprofiledirect>
<classpath>
<path path="${run.test.classpath}"/>
@ -922,6 +1229,42 @@ is divided into following sections:
<formatter type="xml"/>
</junit>
</target>
<!--
end of pre NB72 profiling section
-->
<target if="netbeans.home" name="-profile-check">
<condition property="profiler.configured">
<or>
<contains casesensitive="true" string="${run.jvmargs.ide}" substring="-agentpath:"/>
<contains casesensitive="true" string="${run.jvmargs.ide}" substring="-javaagent:"/>
</or>
</condition>
</target>
<target depends="-profile-check,-profile-pre72" description="Profile a project in the IDE." if="profiler.configured" name="profile" unless="profiler.info.jvmargs.agent">
<startprofiler/>
<antcall target="run"/>
</target>
<target depends="-profile-check,-profile-single-pre72" description="Profile a selected class in the IDE." if="profiler.configured" name="profile-single" unless="profiler.info.jvmargs.agent">
<fail unless="run.class">Must select one file in the IDE or set run.class</fail>
<startprofiler/>
<antcall target="run-single"/>
</target>
<target depends="-profile-test-single-pre72" description="Profile a selected test in the IDE." name="profile-test-single"/>
<target depends="-profile-check" description="Profile a selected test in the IDE." if="profiler.configured" name="profile-test" unless="profiler.info.jvmargs">
<fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
<startprofiler/>
<antcall target="test-single"/>
</target>
<target depends="-profile-check" description="Profile a selected class in the IDE." if="profiler.configured" name="profile-test-with-main">
<fail unless="run.class">Must select one file in the IDE or set run.class</fail>
<startprofiler/>
<antcal target="run-test-with-main"/>
</target>
<target depends="-profile-check,-profile-applet-pre72" if="profiler.configured" name="profile-applet" unless="profiler.info.jvmargs.agent">
<fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
<startprofiler/>
<antcall target="run-applet"/>
</target>
<!--
===============
JAVADOC SECTION
@ -965,7 +1308,7 @@ is divided into following sections:
<target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/>
<!--
=========================
JUNIT COMPILATION SECTION
TEST COMPILATION SECTION
=========================
-->
<target depends="init,compile" if="have.tests" name="-pre-pre-compile-test">
@ -1008,14 +1351,14 @@ is divided into following sections:
<target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/>
<!--
=======================
JUNIT EXECUTION SECTION
TEST EXECUTION SECTION
=======================
-->
<target depends="init" if="have.tests" name="-pre-test-run">
<mkdir dir="${build.test.results.dir}"/>
</target>
<target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
<j2seproject3:junit testincludes="**/*Test.java"/>
<j2seproject3:test testincludes="**/*Test.java"/>
</target>
<target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
<fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
@ -1028,39 +1371,40 @@ is divided into following sections:
</target>
<target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single">
<fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
<j2seproject3:junit excludes="" includes="${test.includes}"/>
<j2seproject3:test excludes="" includes="${test.includes}" testincludes="${test.includes}"/>
</target>
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single">
<fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
</target>
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/>
<target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single-method">
<fail unless="test.class">Must select some files in the IDE or set test.class</fail>
<fail unless="test.method">Must select some method in the IDE or set test.method</fail>
<j2seproject3:test excludes="" includes="${javac.includes}" testincludes="${test.class}" testmethods="${test.method}"/>
</target>
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method" if="have.tests" name="-post-test-run-single-method">
<fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
</target>
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method,-post-test-run-single-method" description="Run single unit test." name="test-single-method"/>
<!--
=======================
JUNIT DEBUGGING SECTION
TEST DEBUGGING SECTION
=======================
-->
<target depends="init,compile-test" if="have.tests" name="-debug-start-debuggee-test">
<target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test">
<fail unless="test.class">Must select one file in the IDE or set test.class</fail>
<property location="${build.test.results.dir}/TEST-${test.class}.xml" name="test.report.file"/>
<delete file="${test.report.file}"/>
<mkdir dir="${build.test.results.dir}"/>
<j2seproject3:debug classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner" classpath="${ant.home}/lib/ant.jar:${ant.home}/lib/ant-junit.jar:${debug.test.classpath}">
<customize>
<syspropertyset>
<propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<arg value="${test.class}"/>
<arg value="showoutput=true"/>
<arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.BriefJUnitResultFormatter"/>
<arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,${test.report.file}"/>
</customize>
</j2seproject3:debug>
<j2seproject3:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testincludes="${javac.includes}"/>
</target>
<target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test-method">
<fail unless="test.class">Must select one file in the IDE or set test.class</fail>
<fail unless="test.method">Must select some method in the IDE or set test.method</fail>
<j2seproject3:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testMethod="${test.method}" testincludes="${test.class}" testmethods="${test.method}"/>
</target>
<target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test">
<j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/>
</target>
<target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/>
<target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test-method" name="debug-test-method"/>
<target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test">
<j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/>
</target>
@ -1188,9 +1532,12 @@ is divided into following sections:
<target name="-check-call-dep">
<property file="${call.built.properties}" prefix="already.built."/>
<condition property="should.call.dep">
<not>
<isset property="already.built.${call.subproject}"/>
</not>
<and>
<not>
<isset property="already.built.${call.subproject}"/>
</not>
<available file="${call.script}"/>
</and>
</condition>
</target>
<target depends="-check-call-dep" if="should.call.dep" name="-maybe-call-dep">

View file

@ -4,5 +4,5 @@ build.xml.stylesheet.CRC32=28e38971@1.50.3.46
# 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=b4df970c
nbproject/build-impl.xml.script.CRC32=1fd6d3cc
nbproject/build-impl.xml.stylesheet.CRC32=fcddb364@1.50.3.46
nbproject/build-impl.xml.script.CRC32=8905537e
nbproject/build-impl.xml.stylesheet.CRC32=6ddba6b6@1.53.1.46

View file

@ -65,7 +65,7 @@ import org.yaml.snakeyaml.error.YAMLException;
public class Essentials extends JavaPlugin implements IEssentials
{
public static final int BUKKIT_VERSION = 2396;
public static final int BUKKIT_VERSION = 2455;
private static final Logger LOGGER = Logger.getLogger("Minecraft");
private transient ISettings settings;
private final transient TNTExplodeListener tntListener = new TNTExplodeListener(this);

View file

@ -5,10 +5,7 @@ import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.Material;
import org.bukkit.entity.Ageable;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.entity.*;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
@ -37,51 +34,18 @@ public class EssentialsEntityListener implements Listener
{
final User defender = ess.getUser(eDefend);
final User attacker = ess.getUser(eAttack);
if (ess.getSettings().getLoginAttackDelay() > 0 && !attacker.isAuthorized("essentials.pvpdelay.exempt")
&& (System.currentTimeMillis() < (attacker.getLastLogin() + ess.getSettings().getLoginAttackDelay())))
onPlayerVsPlayerDamage(event, defender, attacker);
onPlayerVsPlayerPowertool(event, defender, attacker);
}
else if (eDefend instanceof Player && eAttack instanceof Projectile)
{
Entity shooter = ((Projectile)event.getDamager()).getShooter();
if (shooter instanceof Player)
{
event.setCancelled(true);
}
if (attacker.hasInvulnerabilityAfterTeleport() || defender.hasInvulnerabilityAfterTeleport())
{
event.setCancelled(true);
}
if (attacker.isGodModeEnabled() && !attacker.isAuthorized("essentials.god.pvp"))
{
event.setCancelled(true);
}
if (attacker.isHidden() && !attacker.isAuthorized("essentials.vanish.pvp"))
{
event.setCancelled(true);
}
attacker.updateActivity(true);
final List<String> commandList = attacker.getPowertool(attacker.getItemInHand());
if (commandList != null && !commandList.isEmpty())
{
for (final String command : commandList)
{
if (command != null && !command.isEmpty())
{
ess.scheduleSyncDelayedTask(
new Runnable()
{
@Override
public void run()
{
attacker.getServer().dispatchCommand(attacker.getBase(), command.replaceAll("\\{player\\}", defender.getName()));
LOGGER.log(Level.INFO, String.format("[PT] %s issued server command: /%s", attacker.getName(), command));
}
});
event.setCancelled(true);
return;
}
}
final User defender = ess.getUser(eDefend);
final User attacker = ess.getUser(shooter);
onPlayerVsPlayerDamage(event, defender, attacker);
onPlayerVsPlayerPowertool(event, defender, attacker);
}
}
else if (eAttack instanceof Player)
@ -103,6 +67,59 @@ public class EssentialsEntityListener implements Listener
}
}
private void onPlayerVsPlayerDamage(final EntityDamageByEntityEvent event, final User defender, final User attacker)
{
if (ess.getSettings().getLoginAttackDelay() > 0 && !attacker.isAuthorized("essentials.pvpdelay.exempt")
&& (System.currentTimeMillis() < (attacker.getLastLogin() + ess.getSettings().getLoginAttackDelay())))
{
event.setCancelled(true);
}
if (attacker.hasInvulnerabilityAfterTeleport() || defender.hasInvulnerabilityAfterTeleport())
{
event.setCancelled(true);
}
if (attacker.isGodModeEnabled() && !attacker.isAuthorized("essentials.god.pvp"))
{
event.setCancelled(true);
}
if (attacker.isHidden() && !attacker.isAuthorized("essentials.vanish.pvp"))
{
event.setCancelled(true);
}
attacker.updateActivity(true);
}
private void onPlayerVsPlayerPowertool(final EntityDamageByEntityEvent event, final User defender, final User attacker)
{
final List<String> commandList = attacker.getPowertool(attacker.getItemInHand());
if (commandList != null && !commandList.isEmpty())
{
for (final String command : commandList)
{
if (command != null && !command.isEmpty())
{
ess.scheduleSyncDelayedTask(
new Runnable()
{
@Override
public void run()
{
attacker.getServer().dispatchCommand(attacker.getBase(), command.replaceAll("\\{player\\}", defender.getName()));
LOGGER.log(Level.INFO, String.format("[PT] %s issued server command: /%s", attacker.getName(), command));
}
});
event.setCancelled(true);
return;
}
}
}
}
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onEntityDamage(final EntityDamageEvent event)
{

View file

@ -166,7 +166,8 @@ public class EssentialsPlayerListener implements Listener
for (String p : ess.getVanishedPlayers())
{
Player toVanish = ess.getUser(p).getBase();
if (toVanish.isOnline()) {
if (toVanish.isOnline())
{
user.hidePlayer(toVanish);
}
}
@ -174,7 +175,14 @@ public class EssentialsPlayerListener implements Listener
if (user.isAuthorized("essentials.sleepingignored"))
{
user.setSleepingIgnored(true);
ess.scheduleSyncDelayedTask(new Runnable()
{
@Override
public void run()
{
user.setSleepingIgnored(true);
}
});
}
if (!ess.getSettings().isCommandDisabled("motd") && user.isAuthorized("essentials.motd"))
@ -204,7 +212,11 @@ public class EssentialsPlayerListener implements Listener
final List<String> mail = user.getMails();
if (mail.isEmpty())
{
user.sendMessage(_("noNewMail"));
final String msg = _("noNewMail");
if (!msg.isEmpty())
{
user.sendMessage(msg);
}
}
else
{
@ -352,9 +364,10 @@ public class EssentialsPlayerListener implements Listener
public void onPlayerChangedWorldHack(final PlayerChangedWorldEvent event)
{
final Player user = event.getPlayer();
if (user.getGameMode() != GameMode.CREATIVE) {
user.setAllowFlight(false);
}
if (user.getGameMode() != GameMode.CREATIVE)
{
user.setAllowFlight(false);
}
user.setFlySpeed(0.1f);
user.setWalkSpeed(0.2f);
}

View file

@ -102,6 +102,13 @@ public class Kit
boolean spew = false;
for (String d : items)
{
if (d.startsWith(ess.getSettings().getCurrencySymbol()))
{
Double value = Double.parseDouble(d.substring(ess.getSettings().getCurrencySymbol().length()).trim());
Trade t = new Trade(value, ess);
t.pay(user);
continue;
}
final String[] parts = d.split(" ");
final String[] item = parts[0].split("[:+',;.]", 2);
final int id = Material.getMaterial(Integer.parseInt(item[0])).getId();

View file

@ -37,7 +37,10 @@ public enum Mob
MAGMACUBE("MagmaCube", Enemies.ENEMY, EntityType.MAGMA_CUBE),
SNOWMAN("Snowman", Enemies.FRIENDLY, "", EntityType.SNOWMAN),
OCELOT("Ocelot", Enemies.NEUTRAL, EntityType.OCELOT),
IRONGOLEM("IronGolem", Enemies.NEUTRAL, EntityType.IRON_GOLEM);
IRONGOLEM("IronGolem", Enemies.NEUTRAL, EntityType.IRON_GOLEM),
WITHER("Wither", Enemies.ENEMY, EntityType.WITHER),
BAT("Bat", Enemies.NEUTRAL, EntityType.BAT),
WITCH("Witch", Enemies.ENEMY, EntityType.WITCH);
public static final Logger logger = Logger.getLogger("Minecraft");
@ -68,7 +71,7 @@ public enum Mob
hashMap.put(mob.name.toLowerCase(Locale.ENGLISH), mob);
}
}
public static Set<String> getMobList() {
return Collections.unmodifiableSet(hashMap.keySet());
}

View file

@ -841,6 +841,12 @@ public class OfflinePlayer implements Player
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void setBedSpawnLocation(Location lctn, boolean force)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void playEffect(EntityEffect ee)
{
@ -1105,4 +1111,10 @@ public class OfflinePlayer implements Player
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void giveExpLevels(int i)
{
throw new UnsupportedOperationException("Not supported yet.");
}
}

View file

@ -558,6 +558,8 @@ public class Settings implements ISettings
return config.getString("locale", "");
}
//This method should always only return one character due to the implementation of the calling methods
//If you need to use a string currency, for example "coins", use the translation key 'currency'.
@Override
public String getCurrencySymbol()
{

View file

@ -24,13 +24,13 @@ public class TNTExplodeListener implements Listener, Runnable
if (!enabled)
{
enabled = true;
timer = ess.scheduleSyncDelayedTask(this, 1000);
timer = ess.scheduleSyncDelayedTask(this, 200);
return;
}
if (timer != -1)
{
ess.getScheduler().cancelTask(timer);
timer = ess.scheduleSyncDelayedTask(this, 1000);
timer = ess.scheduleSyncDelayedTask(this, 200);
}
}

View file

@ -70,8 +70,8 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
}
return result;
}
private boolean isAuthorizedCheck(final String node)
private boolean isAuthorizedCheck(final String node)
{
if (base instanceof OfflinePlayer)
@ -538,7 +538,11 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
if (broadcast && !isHidden())
{
setDisplayNick();
ess.broadcastMessage(this, _("userIsNotAway", getDisplayName()));
final String msg = _("userIsNotAway", getDisplayName());
if (!msg.isEmpty())
{
ess.broadcastMessage(this, msg);
}
}
}
lastActivity = System.currentTimeMillis();
@ -571,7 +575,11 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
if (!isHidden())
{
setDisplayNick();
ess.broadcastMessage(this, _("userIsAway", getDisplayName()));
final String msg = _("userIsAway", getDisplayName());
if (!msg.isEmpty())
{
ess.broadcastMessage(this, msg);
}
}
}
}

View file

@ -32,12 +32,13 @@ public class Commandafk extends EssentialsCommand
private void toggleAfk(User user)
{
user.setDisplayNick();
String msg = "";
if (!user.toggleAfk())
{
//user.sendMessage(_("markedAsNotAway"));
if (!user.isHidden())
{
ess.broadcastMessage(user, _("userIsNotAway", user.getDisplayName()));
msg = _("userIsNotAway", user.getDisplayName());
}
user.updateActivity(false);
}
@ -46,8 +47,12 @@ public class Commandafk extends EssentialsCommand
//user.sendMessage(_("markedAsAway"));
if (!user.isHidden())
{
ess.broadcastMessage(user, _("userIsAway", user.getDisplayName()));
msg = _("userIsAway", user.getDisplayName());
}
}
if (!msg.isEmpty())
{
ess.broadcastMessage(user, msg);
}
}
}

View file

@ -125,13 +125,13 @@ public class Commandexp extends EssentialsCommand
sender.sendMessage(_("exp", target.getDisplayName(), SetExpFix.getTotalExperience(target), target.getLevel(), SetExpFix.getExpUntilNextLevel(target)));
}
private void setExp(final CommandSender sender, final User target, String strAmount, final boolean give)
private void setExp(final CommandSender sender, final User target, String strAmount, final boolean give) throws NotEnoughArgumentsException
{
Long amount;
strAmount = strAmount.toLowerCase(Locale.ENGLISH);
if (strAmount.startsWith("l"))
if (strAmount.startsWith("l") || strAmount.endsWith("l"))
{
strAmount = strAmount.substring(1);
strAmount = strAmount.replaceAll("l","");
int neededLevel = Integer.parseInt(strAmount);
if (give)
{
@ -142,6 +142,10 @@ public class Commandexp extends EssentialsCommand
}
else {
amount = Long.parseLong(strAmount);
if (amount < 0 || amount > Integer.MAX_VALUE)
{
throw new NotEnoughArgumentsException();
}
}
if (give)

View file

@ -19,12 +19,22 @@ public class Commandgamemode extends EssentialsCommand
@Override
protected void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{
if (args.length < 2)
GameMode gameMode;
if (args.length == 0)
{
throw new NotEnoughArgumentsException();
}
GameMode gameMode = matchGameMode(args[0].toLowerCase(Locale.ENGLISH));
gamemodeOtherPlayers(server, sender, gameMode, args[1]);
else if (args.length == 1)
{
gameMode = matchGameMode(commandLabel);
gamemodeOtherPlayers(server, sender, gameMode, args[0]);
}
else if (args.length == 2)
{
gameMode = matchGameMode(args[0].toLowerCase(Locale.ENGLISH));
gamemodeOtherPlayers(server, sender, gameMode, args[1]);
}
}
@Override
@ -41,7 +51,7 @@ public class Commandgamemode extends EssentialsCommand
gamemodeOtherPlayers(server, user, gameMode, args[1]);
return;
}
else
else
{
try
{

View file

@ -83,7 +83,7 @@ public class Commandhome extends EssentialsCommand
}
else
{
if (bed != null)
if (bed != null && user.isAuthorized("essentials.home.bed"))
{
homes.add("bed");
}

View file

@ -36,6 +36,10 @@ public class Commandtppos extends EssentialsCommand
{
location.setPitch(Float.parseFloat(args[4]));
}
if (x > 30000000 || y > 30000000 || z > 30000000 || x < -30000000 || y < -30000000 || z < -30000000)
{
throw new NotEnoughArgumentsException("Value of coordinates cannot be over 30000000"); //todo: I18n
}
final Trade charge = new Trade(this.getName(), ess);
charge.isAffordableFor(user);
user.sendMessage(_("teleporting"));
@ -64,8 +68,13 @@ public class Commandtppos extends EssentialsCommand
{
location.setPitch(Float.parseFloat(args[5]));
}
if (x > 30000000 || y > 30000000 || z > 30000000 || x < -30000000 || y < -30000000 || z < -30000000)
{
throw new NotEnoughArgumentsException("Value of coordinates cannot be over 30000000"); //todo: I18n
}
sender.sendMessage(_("teleporting"));
user.sendMessage(_("teleporting"));
user.getTeleport().teleport(location, null, TeleportCause.COMMAND);
}
}

View file

@ -699,4 +699,40 @@ public class FakeWorld implements World
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public int getAmbientSpawnLimit()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void setAmbientSpawnLimit(int i)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public String[] getGameRules()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public String getGameRuleValue(String string)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public boolean setGameRuleValue(String string, String string1)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public boolean isGameRule(String string)
{
throw new UnsupportedOperationException("Not supported yet.");
}
}

View file

@ -67,6 +67,10 @@ public class SetExpFix
exp += getExpAtLevel(currentLevel);
currentLevel++;
}
if (exp < 0)
{
exp = Integer.MAX_VALUE;
}
return exp;
}
@ -82,6 +86,10 @@ public class SetExpFix
currentLevel--;
exp += getExpAtLevel(currentLevel);
}
if (exp < 0)
{
exp = Integer.MAX_VALUE;
}
return exp;
}

View file

@ -200,7 +200,7 @@ kits:
# See http://wiki.ess3.net/wiki/Sign_Tutorial for instructions on how to use these.
# To enable signs, remove # symbol. To disable all signs, comment/remove each sign.
# Essentials Colored sign support will be enabled when any sign types are enabled.
# Color is not an actual sign, its for enabling using color codes on signs, when the correct permissions are given.
# Color is not an actual sign, it's for enabling using color codes on signs, when the correct permissions are given.
enabledSigns:
#- color
@ -287,12 +287,12 @@ no-god-in-worlds:
# Set to true to enable per-world permissions for teleporting between worlds with essentials commands
# This applies to /world, /back, /tp[a|o][here|all], but not warps.
# Give someone permission to teleport to a world with essentials.worlds.<worldname>
# This does not effect the /home command, there is a separate toggle below for this.
# This does not affect the /home command, there is a separate toggle below for this.
world-teleport-permissions: false
# The number of items given if the quantity parameter is left out in /item or /give.
# If this number is below 1, the maximum stack size size is given. If over-sized stacks
# are not enabled, any number higher then the maximum stack size results in more than one stack.
# are not enabled, any number higher than the maximum stack size results in more than one stack.
default-stack-size: -1
# Over-sized stacks are stacks that ignore the normal max stack size.
@ -315,7 +315,7 @@ login-attack-delay: 5
#Set the max fly speed, values range from 0.1 to 1.0
max-fly-speed: 0.8
#Set the maximum amount of mails that can be send within a minute.
#Set the maximum amount of mail that can be sent within a minute.
mails-per-minute: 1000
############################################################
@ -460,6 +460,10 @@ protect:
fireball-explosion: false
fireball-fire: false
fireball-playerdamage: false
witherskull-explosion: false
witherskull-playerdamage: false
wither-spawnexplosion: false
wither-blockreplace: false
creeper-explosion: false
creeper-playerdamage: false
creeper-blockdamage: false
@ -496,7 +500,10 @@ protect:
ocelot: false
iron_golem: false
villager: false
wither: false
bat: false
witch: 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:
@ -549,6 +556,9 @@ protect:
# Should the damage after hit by a lightning be disabled?
lightning: false
# Should Wither damage be disabled?
wither: false
# Disable weather options
weather:

View file

@ -639,19 +639,22 @@ pstick,29,7
spiderweb,30,0
sweb,30,0
web,30,0
longgrass,31,0
tallgrass,31,0
wildgrass,31,0
grasslong,31,0
grasstall,31,0
grasswild,31,0
lgrass,31,0
tgrass,31,0
wgrass,31,0
longgrass,31,1
tallgrass,31,1
wildgrass,31,1
grasslong,31,1
grasstall,31,1
grasswild,31,1
lgrass,31,1
tgrass,31,1
wgrass,31,1
fern,31,2
bush,31,2
deadshrub,32,0
shrubdead,32,0
dshrub,32,0
shrubd,32,0
deadbush,32,0
dbush,32,0
deadsapling,32,0
normalpistonbase,33,7
normalpiston,33,7
normpistonbase,33,7
@ -826,12 +829,16 @@ rose,38,0
redflower,38,0
rflower,38,0
brownmushroom,39,0
brownshroom,39,0
brownmush,39,0
bmushroom,39,0
bshroom,39,0
bmush,39,0
redmushroom,40,0
redshroom,40,0
redmush,40,0
rmushroom,40,0
rshroom,40,0
rmush,40,0
goldblock,41,0
blockgold,41,0
@ -1659,33 +1666,54 @@ circlestonebrick,98,3
circlestonebb,98,3
circlestone,98,3
circlesbb,98,3
giantredmushroom,99,0
hugeredmushroom,99,0
bigredmushroom,99,0
brmushroom,99,0
giantredmushroom,99,0
gredmushroom,99,0
hredmushroom,99,0
bredmushroom,99,0
giantrmushroom,99,0
hugermushroom,99,0
bigrmushroom,99,0
grmushroom,99,0
hrmushroom,99,0
brmushroom,99,0
giantbrownmushroom,100,0
hugebrownmushroom,100,0
bigbrownmushroom,100,0
bbmushroom,100,0
giantbrownmushroom,100,0
gbrownmushroom,100,0
hbrownmushroom,100,0
bbrownmushroom,100,0
giantbmushroom,100,0
hugebmushroom,100,0
bigbmushroom,100,0
gbmushroom,100,0
hbmushroom,100,0
bbmushroom,100,0
ironbars,101,0
ironbarsb,101,0
ironbarsblock,101,0
metalbarsblock,101,0
metalbarsb,101,0
ironfence,101,0
metalbars,101,0
jailbarsblock,101,0
jailbarsb,101,0
metalbarsb,101,0
metalbarsblock,101,0
metalfence,101,0
jailbars,101,0
mbarsblock,101,0
mbarsb,101,0
jailbarsb,101,0
jailbarsblock,101,0
jailfence,101,0
mbars,101,0
jbarsblock,101,0
jbarsb,101,0
mbarsb,101,0
mbarsblock,101,0
mfence,101,0
jbars,101,0
jbarsb,101,0
jbarsblock,101,0
jfence,101,0
ibars,101,0
ibarsb,101,0
ibarsblock,101,0
ifence,101,0
glasspane,102,0
glassp,102,0
paneglass,102,0
@ -2949,6 +2977,141 @@ forestwoodenstair,136,0
forestwoodstair,136,0
forestwstair,136,0
foreststair,136,0
commandblock,137,0
blockcommand,137,0
cmdblock,137,0
blockcmd,137,0
macroblock,137,0
blockmacro,137,0
beacon,138,0
beaconblock,138,0
cobblestonewall,139,0
cstonewall,139,0
cobblewall,139,0
cobblestonefence,139,0
cstonefence,139,0
cobblefence,139,0
mosscobblestonewall,139,1
mosscstonewall,139,1
mosscobblewall,139,1
mcobblestonewall,139,1
mcstonewall,139,1
mcobblewall,139,1
mosscobblestonefence,139,1
mosscstonefence,139,1
mosscobblefence,139,1
mcobblestonefence,139,1
mcstonefence,139,1
mcobblefence,139,1
emptyflowerpot,140,0
emptypot,140,0
flowerpotblock,140,0
potblock,140,0
roseflowerpot,140,1
rosepot,140,1
dandelionflowerpot,140,2
dandelionpot,140,2
oaksaplingflowerpot,140,3
saplingflowerpot,140,3
oakflowerpot,140,3
oaksaplingpot,140,3
saplingpot,140,3
oakpot,140,3
sprucesaplingflowerpot,140,4
spruceflowerpot,140,4
darksaplingflowerpot,140,4
darkflowerpot,140,4
pinesaplingflowerpot,140,4
pineflowerpot,140,4
sprucesaplingpot,140,4
sprucepot,140,4
darksaplingpot,140,4
darkpot,140,4
pinesaplingpot,140,4
pinepot,140,4
birchsaplingflowerpot,140,5
birchflowerpot,140,5
lightsaplingflowerpot,140,5
lightflowerpot,140,5
whitesaplingflowerpot,140,5
whiteflowerpot,140,5
birchsaplingpot,140,5
birchpot,140,5
lightsaplingpot,140,5
lightpot,140,5
whitesaplingpot,140,5
whitepot,140,5
forestsaplingflowerpot,140,6
forestflowerpot,140,6
junglesaplingflowerpot,140,6
jungleflowerpot,140,6
forestsaplingpot,140,6
forestpot,140,6
junglesaplingpot,140,6
junglepot,140,6
redmushroomflowerpot,140,7
redshroomflowerpot,140,7
redmushflowerpot,140,7
rmushroomflowerpot,140,7
rshroomflowerpot,140,7
rmushflowerpot,140,7
redmushroompot,140,7
redshroompot,140,7
redmushpot,140,7
rmushroompot,140,7
rshroompot,140,7
rmushpot,140,7
brownmushroomflowerpot,140,8
brownshroomflowerpot,140,8
brownmushflowerpot,140,8
bmushroomflowerpot,140,8
bshroomflowerpot,140,7
bmushflowerpot,140,8
brownmushroompot,140,8
brownshroompot,140,8
brownmushpot,140,8
bmushroompot,140,8
bshroompot,140,8
bmushpot,140,8
cactusflowerpot,140,9
cactuspot,140,9
deadbushflowerpot,140,10
dbushflowerpot,140,10
deadsaplingflowerpot,140,10
dsaplingflowerpot,140,10
deadshrubflowerpot,140,10
dshrubflowerpot,140,10
deadbushpot,140,10
dbushpot,140,10
deadsaplingpot,140,10
dsaplingpot,140,10
deadshrubpot,140,10
dshrubpot,140,10
fernflowerpot,140,11
bushflowerpot,140,11
fernpot,140,11
bushpot,140,11
carrots,141,0
plantedcarrot,141,0
plantcarrot,141,0
growingcarrot,141,0
potatoes,142,0
plantedpotato,142,0
plantpotato,142,0
growingpotato,142,0
woodenplankbutton,143,0
woodplankbutton,143,0
wplankbutton,143,0
plankbutton,143,0
woodenbutton,143,0
woodbutton,143,0
wbutton,143,0
headblock,144,0
anvil,145,0
slightlydamagedanvil,145,1
slightdamageanvil,145,1
damagedanvil,145,1
verydamagedanvil,145,2
ironshovel,256,0
ironspade,256,0
ishovel,256,0
@ -3818,7 +3981,6 @@ dioder,356,0
diode,356,0
cookie,357,0
chart,358,0
map,358,0
map0,358,0
map1,358,1
map2,358,2
@ -4074,6 +4236,19 @@ healingpot,373,8197
healpot,373,8197
lifepot,373,8197
hpot,373,8197
nightvisionpotion,373,8198
nvisionpotion,373,8198
nightvpotion,373,8198
darkvisionpotion,373,8198
dvisionpotion,373,8198
darkvpotion,373,8198
nightvisionpot,373,8198
nvisionpot,373,8198
nightvpot,373,8198
darkvisionpot,373,8198
dvisionpot,373,8198
darkvpot,373,8198
npot,373,8198
weaknesspotion,373,8200
weakpotion,373,8200
weaknesspot,373,8200
@ -4098,6 +4273,13 @@ harmingpot,373,8204
damagepot,373,8204
dmgpot,373,8204
dpot,373,8204
invisibilitypotion,373,8206
invisiblepotion,373,8206
invpotion,373,8206
invisibilitypot,373,8206
invisiblepot,373,8206
invpot,373,8206
ipot,373,8206
regenerationleveliipotion,373,8225
regenerateleveliipotion,373,8225
regenleveliipotion,373,8225
@ -4248,6 +4430,31 @@ acidextendedpot,373,8260
posionexpot,373,8260
acidexpot,373,8260
pepot,373,8260
nightvisionextendedpotion,373,8262
nvisionextendedpotion,373,8262
nightvextendedpotion,373,8262
darkvisionextendedpotion,373,8262
dvisionextendedpotion,373,8262
darkvextendedpotion,373,8262
nightvisionexpotion,373,8262
nvisionexpotion,373,8262
nightvexpotion,373,8262
darkvisionexpotion,373,8262
dvisionexpotion,373,8262
darkvexpotion,373,8262
nightvisionextendedpot,373,8262
nvisionextendedpot,373,8262
nightvextendedpot,373,8262
darkvisionextendedpot,373,8262
dvisionextendedpot,373,8262
darkvextendedpot,373,8262
nightvisionexpot,373,8262
nvisionexpot,373,8262
nightvexpot,373,8262
darkvisionexpot,373,8262
dvisionexpot,373,8262
darkvexpot,373,8262
nepot,373,8262
weaknessextendedpotion,373,8264
weakextendedpotion,373,8264
weaknessexpotion,373,8264
@ -4279,6 +4486,19 @@ slowextenedpot,373,8266
slownessexpot,373,8266
slowexpot,373,8266
slepot,373,8266
invisibilityextendedpotion,373,8270
invisibleextendedpotion,373,8270
invextendedpotion,373,8270
invisibilityexpotion,373,8270
invisibleexpotion,373,8270
invexpotion,373,8270
invisibilityextendedpot,373,8270
invisibleextendedpot,373,8270
invextendedpot,373,8270
invisibilityexpot,373,8270
invisibleexpot,373,8270
invexpot,373,8270
iepot,373,8270
regenerationdualbitpotion,373,8289
regeneratedualbitpotion,373,8289
regendualbitpotion,373,8289
@ -4397,6 +4617,31 @@ splashclearpotion,373,16390
splashclearpot,373,16390
splclearpotion,373,16390
splclearpot,373,16390
splashnightvisionpotion,373,16390
splashnvisionpotion,373,16390
splashnightvpotion,373,16390
splashdarkvisionpotion,373,16390
splashdvisionpotion,373,16390
splashdarkvpotion,373,16390
splashnightvisionpot,373,16390
splashnvisionpot,373,16390
splashnightvpot,373,16390
splashdarkvisionpot,373,16390
splashdvisionpot,373,16390
splashdarkvpot,373,16390
splnightvisionpotion,373,16390
splnvisionpotion,373,16390
splnightvpotion,373,16390
spldarkvisionpotion,373,16390
spldvisionpotion,373,16390
spldarkvpotion,373,16390
splnightvisionpot,373,16390
splnvisionpot,373,16390
splnightvpot,373,16390
spldarkvisionpot,373,16390
spldvisionpot,373,16390
spldarkvpot,373,16390
spnpot,373,16390
splashclearextendedpotion,373,16391
splashclearexpotion,373,16391
splashclear2potion,373,16391
@ -4465,6 +4710,19 @@ splashthinpotion,373,16398
splashthinpot,373,16398
splthinpotion,373,16398
splthinpot,373,16398
splashinvisibilitypotion,373,16398
splashinvisiblepotion,373,16398
splashinvpotion,373,16398
splashinvisibilitypot,373,16398
splashinvisiblepot,373,16398
splashinvpot,373,16398
splinvisibilitypotion,373,16398
splinvisiblepotion,373,16398
splinvpotion,373,16398
splinvisibilitypot,373,16398
splinvisiblepot,373,16398
splinvpot,373,16398
spipot,373,16398
splashthinextendedpotion,373,16399
splashthinexpotion,373,16399
splashthin2potion,373,16399
@ -4911,6 +5169,55 @@ splacidextendedpot,373,16452
splposionexpot,373,16452
splacidexpot,373,16452
sppepot,373,16452
splashnightvisionextendedpotion,373,16454
splashnvisionextendedpotion,373,16454
splashnightvextendedpotion,373,16454
splashdarkvisionextendedpotion,373,16454
splashdvisionextendedpotion,373,16454
splashdarkvextendedpotion,373,16454
splashnightvisionextendedpot,373,16454
splashnvisionextendedpot,373,16454
splashnightvextendedpot,373,16454
splashdarkvisionextendedpot,373,16454
splashdvisionextendedpot,373,16454
splashdarkvextendedpot,373,16454
splashnightvisionexpotion,373,16454
splashnvisionexpotion,373,16454
splashnightvexpotion,373,16454
splashdarkvisionexpotion,373,16454
splashdvisionexpotion,373,16454
splashdarkvexpotion,373,16454
splashnightvisionexpot,373,16454
splashnvisionexpot,373,16454
splashnightvexpot,373,16454
splashdarkvisionexpot,373,16454
splashdvisionexpot,373,16454
splashdarkvexpot,373,16454
splnightvisionextendedpotion,373,16454
splnvisionextendedpotion,373,16454
splnightvextendedpotion,373,16454
spldarkvisionextendedpotion,373,16454
spldvisionextendedpotion,373,16454
spldarkvextendedpotion,373,16454
splnightvisionextendedpot,373,16454
splnvisionextendedpot,373,16454
splnightvextendedpot,373,16454
spldarkvisionextendedpot,373,16454
spldvisionextendedpot,373,16454
spldarkvextendedpot,373,16454
splnightvisionexpotion,373,16454
splnvisionexpotion,373,16454
splnightvexpotion,373,16454
spldarkvisionexpotion,373,16454
spldvisionexpotion,373,16454
spldarkvexpotion,373,16454
splnightvisionexpot,373,16454
splnvisionexpot,373,16454
splnightvexpot,373,16454
spldarkvisionexpot,373,16454
spldvisionexpot,373,16454
spldarkvexpot,373,16454
spnepot,373,16454
splashweaknessextendedpotion,373,16456
splashweakextendedpotion,373,16456
splashweaknessexpotion,373,16456
@ -4970,6 +5277,31 @@ splslowextenedpot,373,16458
splslownessexpot,373,16458
splslowexpot,373,16458
spslepot,373,16458
splashinvisibilityextendedpotion,373,16462
splashinvisibleextendedpotion,373,16462
splashinvextendedpotion,373,16462
splashinvisibilityextendedpot,373,16462
splashinvisibleextendedpot,373,16462
splashinvextendedpot,373,16462
splashinvisibilityexpotion,373,16462
splashinvisibleexpotion,373,16462
splashinvexpotion,373,16462
splashinvisibilityexpot,373,16462
splashinvisibleexpot,373,16462
splashinvexpot,373,16462
splinvisibilityextendedpotion,373,16462
splinvisibleextendedpotion,373,16462
splinvextendedpotion,373,16462
splinvisibilityextendedpot,373,16462
splinvisibleextendedpot,373,16462
splinvextendedpot,373,16462
splinvisibilityexpotion,373,16462
splinvisibleexpotion,373,16462
splinvexpotion,373,16462
splinvisibilityexpot,373,16462
splinvisibleexpot,373,16462
splinvexpot,373,16462
spiepot,373,16462
splashregenerationdualbitpotion,373,16481
splashregeneratedualbitpotion,373,16481
splashregendualbitpotion,373,16481
@ -5190,6 +5522,10 @@ egglavaslime,383,62
egglavacube,383,62
eggmagmacube,383,62
eggmagmaslime,383,62
bategg,383,65
eggbat,383,65
witchegg,383,66
eggwitch,383,66
pigegg,383,90
eggpig,383,90
sheepegg,383,91
@ -5242,6 +5578,53 @@ sealedbook,387,0
diary,387,0
ownedbook,387,0
emerald,388,0
itemframe,389,0
pictureframe,389,0
iframe,389,0
pframe,389,0
flowerpot,390,0
pot,390,0
carrot,391,0
potato,392,0
bakedpotato,393,0
roastedpotato,393,0
cookedpotato,393,0
bakepotato,393,0
roastpotato,393,0
cookpotato,393,0
posionouspotato,394,0
posionpotato,394,0
emptymap,395,0
map,395,0
goldencarrot,396,0
goldcarrot,396,0
gcarrot,396,0
head,397,0
skeletonhead,397,0
headskeleton,397,0
witherhead,397,1
witherskeletonhead,397,1
wskeletionhead,397,1
headwither,397,1
headwitherskeleton,397,1
headwskeletion,397,1
zombiehead,397,2
headzombie,397,2
humanhead,397,3
stevehead,397,3
headhuman,397,3
headsteve,397,3
creeperhead,397,4
headcreeper,397,4
carrotonastick,398,0
carrotonstick,398,0
netherstar,399,0
hellstar,399,0
pumpkinpie,400,0
pumpkincake,400,0
ppie,400,0
pcake,400,0
pie,400,0
goldmusicrecord,2256,0
goldmusicdisk,2256,0
goldmusicdisc,2256,0

1 #version: TeamCity
639 spiderweb,30,0
640 sweb,30,0
641 web,30,0
642 longgrass,31,0 longgrass,31,1
643 tallgrass,31,0 tallgrass,31,1
644 wildgrass,31,0 wildgrass,31,1
645 grasslong,31,0 grasslong,31,1
646 grasstall,31,0 grasstall,31,1
647 grasswild,31,0 grasswild,31,1
648 lgrass,31,0 lgrass,31,1
649 tgrass,31,0 tgrass,31,1
650 wgrass,31,0 wgrass,31,1
651 fern,31,2
652 bush,31,2
653 deadshrub,32,0
shrubdead,32,0
654 dshrub,32,0
655 shrubd,32,0 deadbush,32,0
656 dbush,32,0
657 deadsapling,32,0
658 normalpistonbase,33,7
659 normalpiston,33,7
660 normpistonbase,33,7
829 redflower,38,0
830 rflower,38,0
831 brownmushroom,39,0
832 brownshroom,39,0
833 brownmush,39,0
834 bmushroom,39,0
835 bshroom,39,0
836 bmush,39,0
837 redmushroom,40,0
838 redshroom,40,0
839 redmush,40,0
840 rmushroom,40,0
841 rshroom,40,0
842 rmush,40,0
843 goldblock,41,0
844 blockgold,41,0
1666 circlestonebb,98,3
1667 circlestone,98,3
1668 circlesbb,98,3
1669 giantredmushroom,99,0
1670 hugeredmushroom,99,0
1671 bigredmushroom,99,0
1672 brmushroom,99,0 gredmushroom,99,0
1673 giantredmushroom,99,0 hredmushroom,99,0
1674 bredmushroom,99,0
1675 giantrmushroom,99,0
1676 hugermushroom,99,0
1677 bigrmushroom,99,0
1678 grmushroom,99,0
1679 hrmushroom,99,0
1680 brmushroom,99,0
1681 giantbrownmushroom,100,0
1682 hugebrownmushroom,100,0
1683 bigbrownmushroom,100,0
1684 bbmushroom,100,0 gbrownmushroom,100,0
1685 giantbrownmushroom,100,0 hbrownmushroom,100,0
1686 bbrownmushroom,100,0
1687 giantbmushroom,100,0
1688 hugebmushroom,100,0
1689 bigbmushroom,100,0
1690 gbmushroom,100,0
1691 hbmushroom,100,0
1692 bbmushroom,100,0
1693 ironbars,101,0
1694 ironbarsb,101,0
1695 ironbarsblock,101,0
1696 metalbarsblock,101,0 ironfence,101,0
metalbarsb,101,0
1697 metalbars,101,0
1698 jailbarsblock,101,0 metalbarsb,101,0
1699 jailbarsb,101,0 metalbarsblock,101,0
1700 metalfence,101,0
1701 jailbars,101,0
1702 mbarsblock,101,0 jailbarsb,101,0
1703 mbarsb,101,0 jailbarsblock,101,0
1704 jailfence,101,0
1705 mbars,101,0
1706 jbarsblock,101,0 mbarsb,101,0
1707 jbarsb,101,0 mbarsblock,101,0
1708 mfence,101,0
1709 jbars,101,0
1710 jbarsb,101,0
1711 jbarsblock,101,0
1712 jfence,101,0
1713 ibars,101,0
1714 ibarsb,101,0
1715 ibarsblock,101,0
1716 ifence,101,0
1717 glasspane,102,0
1718 glassp,102,0
1719 paneglass,102,0
2977 forestwoodstair,136,0
2978 forestwstair,136,0
2979 foreststair,136,0
2980 commandblock,137,0
2981 blockcommand,137,0
2982 cmdblock,137,0
2983 blockcmd,137,0
2984 macroblock,137,0
2985 blockmacro,137,0
2986 beacon,138,0
2987 beaconblock,138,0
2988 cobblestonewall,139,0
2989 cstonewall,139,0
2990 cobblewall,139,0
2991 cobblestonefence,139,0
2992 cstonefence,139,0
2993 cobblefence,139,0
2994 mosscobblestonewall,139,1
2995 mosscstonewall,139,1
2996 mosscobblewall,139,1
2997 mcobblestonewall,139,1
2998 mcstonewall,139,1
2999 mcobblewall,139,1
3000 mosscobblestonefence,139,1
3001 mosscstonefence,139,1
3002 mosscobblefence,139,1
3003 mcobblestonefence,139,1
3004 mcstonefence,139,1
3005 mcobblefence,139,1
3006 emptyflowerpot,140,0
3007 emptypot,140,0
3008 flowerpotblock,140,0
3009 potblock,140,0
3010 roseflowerpot,140,1
3011 rosepot,140,1
3012 dandelionflowerpot,140,2
3013 dandelionpot,140,2
3014 oaksaplingflowerpot,140,3
3015 saplingflowerpot,140,3
3016 oakflowerpot,140,3
3017 oaksaplingpot,140,3
3018 saplingpot,140,3
3019 oakpot,140,3
3020 sprucesaplingflowerpot,140,4
3021 spruceflowerpot,140,4
3022 darksaplingflowerpot,140,4
3023 darkflowerpot,140,4
3024 pinesaplingflowerpot,140,4
3025 pineflowerpot,140,4
3026 sprucesaplingpot,140,4
3027 sprucepot,140,4
3028 darksaplingpot,140,4
3029 darkpot,140,4
3030 pinesaplingpot,140,4
3031 pinepot,140,4
3032 birchsaplingflowerpot,140,5
3033 birchflowerpot,140,5
3034 lightsaplingflowerpot,140,5
3035 lightflowerpot,140,5
3036 whitesaplingflowerpot,140,5
3037 whiteflowerpot,140,5
3038 birchsaplingpot,140,5
3039 birchpot,140,5
3040 lightsaplingpot,140,5
3041 lightpot,140,5
3042 whitesaplingpot,140,5
3043 whitepot,140,5
3044 forestsaplingflowerpot,140,6
3045 forestflowerpot,140,6
3046 junglesaplingflowerpot,140,6
3047 jungleflowerpot,140,6
3048 forestsaplingpot,140,6
3049 forestpot,140,6
3050 junglesaplingpot,140,6
3051 junglepot,140,6
3052 redmushroomflowerpot,140,7
3053 redshroomflowerpot,140,7
3054 redmushflowerpot,140,7
3055 rmushroomflowerpot,140,7
3056 rshroomflowerpot,140,7
3057 rmushflowerpot,140,7
3058 redmushroompot,140,7
3059 redshroompot,140,7
3060 redmushpot,140,7
3061 rmushroompot,140,7
3062 rshroompot,140,7
3063 rmushpot,140,7
3064 brownmushroomflowerpot,140,8
3065 brownshroomflowerpot,140,8
3066 brownmushflowerpot,140,8
3067 bmushroomflowerpot,140,8
3068 bshroomflowerpot,140,7
3069 bmushflowerpot,140,8
3070 brownmushroompot,140,8
3071 brownshroompot,140,8
3072 brownmushpot,140,8
3073 bmushroompot,140,8
3074 bshroompot,140,8
3075 bmushpot,140,8
3076 cactusflowerpot,140,9
3077 cactuspot,140,9
3078 deadbushflowerpot,140,10
3079 dbushflowerpot,140,10
3080 deadsaplingflowerpot,140,10
3081 dsaplingflowerpot,140,10
3082 deadshrubflowerpot,140,10
3083 dshrubflowerpot,140,10
3084 deadbushpot,140,10
3085 dbushpot,140,10
3086 deadsaplingpot,140,10
3087 dsaplingpot,140,10
3088 deadshrubpot,140,10
3089 dshrubpot,140,10
3090 fernflowerpot,140,11
3091 bushflowerpot,140,11
3092 fernpot,140,11
3093 bushpot,140,11
3094 carrots,141,0
3095 plantedcarrot,141,0
3096 plantcarrot,141,0
3097 growingcarrot,141,0
3098 potatoes,142,0
3099 plantedpotato,142,0
3100 plantpotato,142,0
3101 growingpotato,142,0
3102 woodenplankbutton,143,0
3103 woodplankbutton,143,0
3104 wplankbutton,143,0
3105 plankbutton,143,0
3106 woodenbutton,143,0
3107 woodbutton,143,0
3108 wbutton,143,0
3109 headblock,144,0
3110 anvil,145,0
3111 slightlydamagedanvil,145,1
3112 slightdamageanvil,145,1
3113 damagedanvil,145,1
3114 verydamagedanvil,145,2
3115 ironshovel,256,0
3116 ironspade,256,0
3117 ishovel,256,0
3981 diode,356,0
3982 cookie,357,0
3983 chart,358,0
map,358,0
3984 map0,358,0
3985 map1,358,1
3986 map2,358,2
4236 healpot,373,8197
4237 lifepot,373,8197
4238 hpot,373,8197
4239 nightvisionpotion,373,8198
4240 nvisionpotion,373,8198
4241 nightvpotion,373,8198
4242 darkvisionpotion,373,8198
4243 dvisionpotion,373,8198
4244 darkvpotion,373,8198
4245 nightvisionpot,373,8198
4246 nvisionpot,373,8198
4247 nightvpot,373,8198
4248 darkvisionpot,373,8198
4249 dvisionpot,373,8198
4250 darkvpot,373,8198
4251 npot,373,8198
4252 weaknesspotion,373,8200
4253 weakpotion,373,8200
4254 weaknesspot,373,8200
4273 damagepot,373,8204
4274 dmgpot,373,8204
4275 dpot,373,8204
4276 invisibilitypotion,373,8206
4277 invisiblepotion,373,8206
4278 invpotion,373,8206
4279 invisibilitypot,373,8206
4280 invisiblepot,373,8206
4281 invpot,373,8206
4282 ipot,373,8206
4283 regenerationleveliipotion,373,8225
4284 regenerateleveliipotion,373,8225
4285 regenleveliipotion,373,8225
4430 posionexpot,373,8260
4431 acidexpot,373,8260
4432 pepot,373,8260
4433 nightvisionextendedpotion,373,8262
4434 nvisionextendedpotion,373,8262
4435 nightvextendedpotion,373,8262
4436 darkvisionextendedpotion,373,8262
4437 dvisionextendedpotion,373,8262
4438 darkvextendedpotion,373,8262
4439 nightvisionexpotion,373,8262
4440 nvisionexpotion,373,8262
4441 nightvexpotion,373,8262
4442 darkvisionexpotion,373,8262
4443 dvisionexpotion,373,8262
4444 darkvexpotion,373,8262
4445 nightvisionextendedpot,373,8262
4446 nvisionextendedpot,373,8262
4447 nightvextendedpot,373,8262
4448 darkvisionextendedpot,373,8262
4449 dvisionextendedpot,373,8262
4450 darkvextendedpot,373,8262
4451 nightvisionexpot,373,8262
4452 nvisionexpot,373,8262
4453 nightvexpot,373,8262
4454 darkvisionexpot,373,8262
4455 dvisionexpot,373,8262
4456 darkvexpot,373,8262
4457 nepot,373,8262
4458 weaknessextendedpotion,373,8264
4459 weakextendedpotion,373,8264
4460 weaknessexpotion,373,8264
4486 slownessexpot,373,8266
4487 slowexpot,373,8266
4488 slepot,373,8266
4489 invisibilityextendedpotion,373,8270
4490 invisibleextendedpotion,373,8270
4491 invextendedpotion,373,8270
4492 invisibilityexpotion,373,8270
4493 invisibleexpotion,373,8270
4494 invexpotion,373,8270
4495 invisibilityextendedpot,373,8270
4496 invisibleextendedpot,373,8270
4497 invextendedpot,373,8270
4498 invisibilityexpot,373,8270
4499 invisibleexpot,373,8270
4500 invexpot,373,8270
4501 iepot,373,8270
4502 regenerationdualbitpotion,373,8289
4503 regeneratedualbitpotion,373,8289
4504 regendualbitpotion,373,8289
4617 splashclearpot,373,16390
4618 splclearpotion,373,16390
4619 splclearpot,373,16390
4620 splashnightvisionpotion,373,16390
4621 splashnvisionpotion,373,16390
4622 splashnightvpotion,373,16390
4623 splashdarkvisionpotion,373,16390
4624 splashdvisionpotion,373,16390
4625 splashdarkvpotion,373,16390
4626 splashnightvisionpot,373,16390
4627 splashnvisionpot,373,16390
4628 splashnightvpot,373,16390
4629 splashdarkvisionpot,373,16390
4630 splashdvisionpot,373,16390
4631 splashdarkvpot,373,16390
4632 splnightvisionpotion,373,16390
4633 splnvisionpotion,373,16390
4634 splnightvpotion,373,16390
4635 spldarkvisionpotion,373,16390
4636 spldvisionpotion,373,16390
4637 spldarkvpotion,373,16390
4638 splnightvisionpot,373,16390
4639 splnvisionpot,373,16390
4640 splnightvpot,373,16390
4641 spldarkvisionpot,373,16390
4642 spldvisionpot,373,16390
4643 spldarkvpot,373,16390
4644 spnpot,373,16390
4645 splashclearextendedpotion,373,16391
4646 splashclearexpotion,373,16391
4647 splashclear2potion,373,16391
4710 splashthinpot,373,16398
4711 splthinpotion,373,16398
4712 splthinpot,373,16398
4713 splashinvisibilitypotion,373,16398
4714 splashinvisiblepotion,373,16398
4715 splashinvpotion,373,16398
4716 splashinvisibilitypot,373,16398
4717 splashinvisiblepot,373,16398
4718 splashinvpot,373,16398
4719 splinvisibilitypotion,373,16398
4720 splinvisiblepotion,373,16398
4721 splinvpotion,373,16398
4722 splinvisibilitypot,373,16398
4723 splinvisiblepot,373,16398
4724 splinvpot,373,16398
4725 spipot,373,16398
4726 splashthinextendedpotion,373,16399
4727 splashthinexpotion,373,16399
4728 splashthin2potion,373,16399
5169 splposionexpot,373,16452
5170 splacidexpot,373,16452
5171 sppepot,373,16452
5172 splashnightvisionextendedpotion,373,16454
5173 splashnvisionextendedpotion,373,16454
5174 splashnightvextendedpotion,373,16454
5175 splashdarkvisionextendedpotion,373,16454
5176 splashdvisionextendedpotion,373,16454
5177 splashdarkvextendedpotion,373,16454
5178 splashnightvisionextendedpot,373,16454
5179 splashnvisionextendedpot,373,16454
5180 splashnightvextendedpot,373,16454
5181 splashdarkvisionextendedpot,373,16454
5182 splashdvisionextendedpot,373,16454
5183 splashdarkvextendedpot,373,16454
5184 splashnightvisionexpotion,373,16454
5185 splashnvisionexpotion,373,16454
5186 splashnightvexpotion,373,16454
5187 splashdarkvisionexpotion,373,16454
5188 splashdvisionexpotion,373,16454
5189 splashdarkvexpotion,373,16454
5190 splashnightvisionexpot,373,16454
5191 splashnvisionexpot,373,16454
5192 splashnightvexpot,373,16454
5193 splashdarkvisionexpot,373,16454
5194 splashdvisionexpot,373,16454
5195 splashdarkvexpot,373,16454
5196 splnightvisionextendedpotion,373,16454
5197 splnvisionextendedpotion,373,16454
5198 splnightvextendedpotion,373,16454
5199 spldarkvisionextendedpotion,373,16454
5200 spldvisionextendedpotion,373,16454
5201 spldarkvextendedpotion,373,16454
5202 splnightvisionextendedpot,373,16454
5203 splnvisionextendedpot,373,16454
5204 splnightvextendedpot,373,16454
5205 spldarkvisionextendedpot,373,16454
5206 spldvisionextendedpot,373,16454
5207 spldarkvextendedpot,373,16454
5208 splnightvisionexpotion,373,16454
5209 splnvisionexpotion,373,16454
5210 splnightvexpotion,373,16454
5211 spldarkvisionexpotion,373,16454
5212 spldvisionexpotion,373,16454
5213 spldarkvexpotion,373,16454
5214 splnightvisionexpot,373,16454
5215 splnvisionexpot,373,16454
5216 splnightvexpot,373,16454
5217 spldarkvisionexpot,373,16454
5218 spldvisionexpot,373,16454
5219 spldarkvexpot,373,16454
5220 spnepot,373,16454
5221 splashweaknessextendedpotion,373,16456
5222 splashweakextendedpotion,373,16456
5223 splashweaknessexpotion,373,16456
5277 splslownessexpot,373,16458
5278 splslowexpot,373,16458
5279 spslepot,373,16458
5280 splashinvisibilityextendedpotion,373,16462
5281 splashinvisibleextendedpotion,373,16462
5282 splashinvextendedpotion,373,16462
5283 splashinvisibilityextendedpot,373,16462
5284 splashinvisibleextendedpot,373,16462
5285 splashinvextendedpot,373,16462
5286 splashinvisibilityexpotion,373,16462
5287 splashinvisibleexpotion,373,16462
5288 splashinvexpotion,373,16462
5289 splashinvisibilityexpot,373,16462
5290 splashinvisibleexpot,373,16462
5291 splashinvexpot,373,16462
5292 splinvisibilityextendedpotion,373,16462
5293 splinvisibleextendedpotion,373,16462
5294 splinvextendedpotion,373,16462
5295 splinvisibilityextendedpot,373,16462
5296 splinvisibleextendedpot,373,16462
5297 splinvextendedpot,373,16462
5298 splinvisibilityexpotion,373,16462
5299 splinvisibleexpotion,373,16462
5300 splinvexpotion,373,16462
5301 splinvisibilityexpot,373,16462
5302 splinvisibleexpot,373,16462
5303 splinvexpot,373,16462
5304 spiepot,373,16462
5305 splashregenerationdualbitpotion,373,16481
5306 splashregeneratedualbitpotion,373,16481
5307 splashregendualbitpotion,373,16481
5522 egglavacube,383,62
5523 eggmagmacube,383,62
5524 eggmagmaslime,383,62
5525 bategg,383,65
5526 eggbat,383,65
5527 witchegg,383,66
5528 eggwitch,383,66
5529 pigegg,383,90
5530 eggpig,383,90
5531 sheepegg,383,91
5578 diary,387,0
5579 ownedbook,387,0
5580 emerald,388,0
5581 itemframe,389,0
5582 pictureframe,389,0
5583 iframe,389,0
5584 pframe,389,0
5585 flowerpot,390,0
5586 pot,390,0
5587 carrot,391,0
5588 potato,392,0
5589 bakedpotato,393,0
5590 roastedpotato,393,0
5591 cookedpotato,393,0
5592 bakepotato,393,0
5593 roastpotato,393,0
5594 cookpotato,393,0
5595 posionouspotato,394,0
5596 posionpotato,394,0
5597 emptymap,395,0
5598 map,395,0
5599 goldencarrot,396,0
5600 goldcarrot,396,0
5601 gcarrot,396,0
5602 head,397,0
5603 skeletonhead,397,0
5604 headskeleton,397,0
5605 witherhead,397,1
5606 witherskeletonhead,397,1
5607 wskeletionhead,397,1
5608 headwither,397,1
5609 headwitherskeleton,397,1
5610 headwskeletion,397,1
5611 zombiehead,397,2
5612 headzombie,397,2
5613 humanhead,397,3
5614 stevehead,397,3
5615 headhuman,397,3
5616 headsteve,397,3
5617 creeperhead,397,4
5618 headcreeper,397,4
5619 carrotonastick,398,0
5620 carrotonstick,398,0
5621 netherstar,399,0
5622 hellstar,399,0
5623 pumpkinpie,400,0
5624 pumpkincake,400,0
5625 ppie,400,0
5626 pcake,400,0
5627 pie,400,0
5628 goldmusicrecord,2256,0
5629 goldmusicdisk,2256,0
5630 goldmusicdisc,2256,0

View file

@ -10,10 +10,10 @@ alertBroke=Roto:
alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} en: {3}
alertPlaced=Situado:
alertUsed=Usado:
antiBuildBreak=\u00a74You are not permitted to break {0} blocks here.
antiBuildInteract=\u00a74You are not permitted to interact with {0}.
antiBuildPlace=\u00a74You are not permitted to place {0} here.
antiBuildUse=\u00a74You are not permitted to use {0}.
antiBuildBreak=\u00a74Tu no tines permitido romper {0} bloques aca.
antiBuildInteract=\u00a74Tu no tienes permitido interactuar con {0}.
antiBuildPlace=\u00a74Tu no tienes permitido poner {0} aca.
antiBuildUse=\u00a74Tu no tienes permitido usar {0}.
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.
@ -28,7 +28,7 @@ banIpAddress=\u00a77Direccion IP baneada.
bigTreeFailure=\u00a7cBig Generacion de arbol fallida. Prueba de nuevo en hierba o arena.
bigTreeSuccess= \u00a77Big Arbol generado.
blockList=Essentials le ha cedido los siguientes comandos a otros plugins:
broadcast=[\u00a7cAnuncio\u00a7f]\u00a7a {0}
broadcast=\u00a7c[\u00a76Broadcast\u00a7c]\u00a7a {0}
buildAlert=\u00a7cNo tienes permisos para construir.
bukkitFormatChanged=Version de formato de Bukkit cambiado. Version no comprobada.
burnMsg=\u00a77Has puesto {0} en fuego durante {1} segundos.
@ -36,16 +36,16 @@ canTalkAgain=\u00a77Ya puedes hablar de nuevo.
cantFindGeoIpDB=No se puede encontrar la base 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}
chatTypeAdmin=[A]
chatTypeLocal=[L]
chatTypeAdmin=
chatTypeLocal=
chatTypeSpy=[Espia]
commandFailed=Comando {0} fallado:
commandHelpFailedForPlugin=Error obteniendo ayuda para: {0}
commandNotLoaded=\u00a7cCommand {0} esta cargado incorrectamente.
commandNotLoaded=\u00a7cComando {0} esta cargado incorrectamente.
compassBearing=\u00a77Bearing: {0} ({1} grados).
configFileMoveError=Error al mover config.yml para hacer una copia de seguridad de la localizacion.
configFileRenameError=Error al renombrar archivo temp a config.yml.
connectedPlayers=Jugadores conectados:
connectedPlayers=Jugadores conectados:
connectionFailed=Error al abrir conexion.
cooldownWithMessage=\u00a7cTiempo restante: {0}
corruptNodeInConfig=\u00a74Notice: Tu archivo de configuracion tiene un nodo {0} incorrecto.
@ -118,7 +118,7 @@ hatArmor=\u00a7cNo puedes usar este item como sombrero!
hatEmpty=\u00a7cNo estas usando un sombrero.
hatFail=\u00a7cDebes tener un item en tu mano para usarlo de sombrero.
hatPlaced=\u00a7eDisfruta tu nuevo sombrero!
hatRemoved=\u00a7eYour hat has been removed.
hatRemoved=\u00a7eTu sombrero a sido removido.
haveBeenReleased=\u00a77Has sido liberado.
heal=\u00a77Has sido curado.
healOther=\u00a77Has curado a {0}.
@ -157,7 +157,7 @@ inventoryClearedOthers=\u00a77Inventario de \u00a7c{0}\u00a77 limpiado.
is=es
itemCannotBeSold=Ese objeto no puede ser vendido al servidor.
itemMustBeStacked=El objeto tiene que ser intercambiado en pilas. Una cantidad de 2s seria de dos pilas, etc.
itemNames=Item short names: {0}
itemNames=Articulo nombres cortos: {0}
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.
@ -188,10 +188,10 @@ kitTimed=\u00a7c No puedes usar ese kit de nuevo para otro{0}.
kits=\u00a77Kits: {0}
lightningSmited=\u00a77Acabas de ser golpeado.
lightningUse=\u00a77Golpeando a {0}
listAfkTag = \u00a77[AFK]\u00a7f
listAfkTag = \u00a77[Lejos]\u00a7f
listAmount = \u00a79Hay \u00a7c{0}\u00a79 jugadores de un maximo de \u00a7c{1}\u00a79 jugadores online.
listAmountHidden = \u00a79Hay \u00a7c{0}\u00a79 jugadores de un maximo de \u00a7c{1}\u00a79 jugadores online.
listGroupTag={0}\u00a7f:
listGroupTag={0}\u00a7f:
listHiddenTag = \u00a77[ESCONDIDO]\u00a7f
loadWarpError=Error al cargar el teletransporte {0}
localFormat=Local: <{0}> {1}
@ -218,7 +218,7 @@ moneyTaken={0} han sido sacados de tu cuenta bancaria.
month=mes
months=meses
moreThanZero=Las cantidades han de ser mayores que 0.
moveSpeed=\u00a77Set {0} speed to {1} for {2}.
moveSpeed=\u00a77Has puesto {0} velocidad a {1} por {2}.
msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2}
muteExempt=\u00a7cNo puedes silenciar a ese jugador.
mutedPlayer=Player {0} silenciado.
@ -251,7 +251,7 @@ noPendingRequest=No tienes ninguna peticion pendiente.
noPerm=\u00a7cNo tienes el permiso de \u00a7f{0}\u00a7c.
noPermToSpawnMob=\u00a7cNo tienes permisos para spawnear a este mob.
noPlacePermission=\u00a7cNo tienes permiso para situar ese bloque en ese lugar.
noPowerTools=You have no power tools assigned.
noPowerTools=Usted no tiene ningunas herramientas eléctricas asignadas.
noRules=\u00a7cNo hay reglas especificadas todavia.
noWarpsDefined=No hay teletransportes definidos aun.
none=ninguno
@ -262,7 +262,7 @@ notEnoughMoney=No tienes el dinero suficiente.
notFlying=no volando
notRecommendedBukkit=* ! * La version de bukkit no es la recomendada para esta version de Essentials.
notSupportedYet=No tiene soporte por el momento.
nothingInHand = \u00a7cNo tienes anda en tu mano.
nothingInHand = \u00a7cNo tienes nada en tu mano.
now=ahora
nuke=Que la muerta afecte al que no despierte.
numberRequired=Un numero es necesario, amigo .
@ -304,8 +304,8 @@ powerToolRemove=Comando \u00a7c{0}\u00a7f borrado desde {1}.
powerToolRemoveAll=Todos los comandos borrados desde {0}.
powerToolsDisabled=Todas tus herramientas de poder han sido desactivadas.
powerToolsEnabled=Todas tus herramientas de poder han sido activadas.
protectionOwner=\u00a76[EssentialsProtect] Due&ntilde;o de la proteccion: {0}
questionFormat=\u00a77[Pregunta]\u00a7f {0}
protectionOwner=\u00a76[EssentialsProtect] Dueno de la proteccion: {0}
questionFormat=\u00a7c[Pregunta]\u00a7f {0}
readNextPage=escribe /{0} {1} para leer la prox. pagina.
reloadAllPlugins=\u00a77Todos los plugins recargados.
removed=\u00a77{0} entidades removidas.
@ -330,7 +330,7 @@ serverFull=Servidor lleno.
serverTotal=Server Total: {0}
setSpawner=Cambiado tipo de spawner a {0}
sheepMalformedColor=Color malformado.
shoutFormat=\u00a77[Shout]\u00a7f {0}
shoutFormat=\u00a7a[Mundo]\u00a7f {0}
signFormatFail=\u00a74[{0}]
signFormatSuccess=\u00a71[{0}]
signFormatTemplate=[{0}]
@ -343,7 +343,7 @@ spawned=nacido
sudoExempt=No puedes usar el comando sudo con este user.
sudoRun=Forzando {0} a ejecutar: /{1} {2}
suicideMessage=\u00a77Adios mundo cruel...
suicideSuccess= \u00a77{0} se quito su propia vida.
suicideSuccess= \u00a77{0} se tiro desde un rascacielos.
survival=supervivencia
takenFromAccount=\u00a7c{0} han sido sacados de tu cuenta.
takenFromOthersAccount=\u00a7c{0} han sidos sacados de la cuenta de {1}\u00a7c . Nuevo presupuesto: {2}
@ -423,7 +423,7 @@ weatherStormFor=\u00a77Has establecido el tiempo como tormenta en este {1} duran
weatherSun=\u00a77Has establecido el tiempo como sol en este mundo.
weatherSunFor=\u00a77Has establecido el tiempo como sol en este {1} durante {0} segundos.
whoisAFK=\u00a76 - AFK:\u00a7f {0}
whoisBanned=\u00a76 - Banned:\u00a7f {0}
whoisBanned=\u00a76 - Baneado:\u00a7f {0}
whoisExp=\u00a76 - Exp:\u00a7f {0} (Nivel {1})
whoisFly=\u00a76 - Modo de vuelo:\u00a7f {0} ({1})
whoisGamemode=\u00a76 - Modo de juego:\u00a7f {0}
@ -441,22 +441,22 @@ whoisTop=\u00a76 ====== WhoIs:\u00a7f {0} \u00a76======
worth=\u00a77Pila de {0} con valor de \u00a7c{1}\u00a77 ({2} objeto(s) a {3} cada uno)
worthMeta=\u00a77Pila de {0} con metadata de {1} , con valor de \u00a7c{2}\u00a77 ({3} objeto(s) a {4} cada uno)
worthSet=Establecer el valor de un valor
year=a&ntilde;o
years=a&ntilde;os
year=ano
years=anos
youAreHealed=\u00a77Has sido curado.
youHaveNewMail=\u00a7cTienes {0} mensajes!\u00a7f Pon \u00a77/mail read\u00a7f para ver tus emails no leidos!.
posX=\u00a76X: {0} (+East <-> -West)
posY=\u00a76Y: {0} (+Up <-> -Down)
posZ=\u00a76Z: {0} (+South <-> -North)
posYaw=\u00a76Yaw: {0} (Rotation)
posPitch=\u00a76Pitch: {0} (Head angle)
distance=\u00a76Distance: {0}
giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
posX=\u00a76X: {0} (+Este <-> -Oeste)
posY=\u00a76Y: {0} (+Arriba <-> -abajo)
posZ=\u00a76Z: {0} (+Sur <-> -Norte)
posYaw=\u00a76guiñar: {0} (Rotacion)
posPitch=\u00a76Tono: {0} (Angulo de cabeza)
distance=\u00a76Distancia: {0}
giveSpawn=\u00a76Se a dado\u00a7c {0} \u00a76de\u00a7c {1} a\u00a7c {2}\u00a76.
warpList={0}
uptime=\u00a76Uptime:\u00a7c {0}
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
invalidHomeName=\u00a74Invalid home name
invalidWarpName=\u00a74Invalid warp name
userUnknown=\u00a74Warning: The user '\u00a7c{0}\u00a74' has never joined this server.
antiBuildCraft=\u00a74No se le permite crear\u00a7c {0}\u00a74.
antiBuildDrop=\u00a74No se le permite botar \u00a7c {0}\u00a74.
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entidades
invalidHomeName=\u00a74Nombre de casa invalido
invalidWarpName=\u00a74Nombre de warp invalido
userUnknown=\u00a74Peligro: El jugador '\u00a7c{0}\u00a74' Nunca a ingresado a este servidor.

View file

@ -3,31 +3,31 @@
# Translations start here
# by: L\u00e9a Gris
action=* {0} {1}
addedToAccount=\u00a7a{0} a \u00e9t\u00e9 rajout\u00e9 \u00e0 votre compte.
addedToOthersAccount=\u00a7a{0} added to {1}\u00a7a account. New balance: {2}
addedToAccount=\u00a7a{0} ont \u00e9t\u00e9 ajout\u00e9 \u00e0 votre compte.
addedToOthersAccount=\u00a7a{0} ajout\u00e9s au compte de {1}\u00a7a. Nouveau solde : {2}
adventure = adventure
alertBroke=a cass\u00e9 :
alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} \u00e0:{3}
alertPlaced=a plac\u00e9 :
alertUsed=a utilis\u00e9 :
antiBuildBreak=\u00a74You are not permitted to break {0} blocks here.
antiBuildInteract=\u00a74You are not permitted to interact with {0}.
antiBuildPlace=\u00a74You are not permitted to place {0} here.
antiBuildUse=\u00a74You are not permitted to use {0}.
antiBuildBreak=\u00a74Vous n'\u00eates pas autoris\u00e9s \u00e0 casser des blocs de {0} ici.
antiBuildInteract=\u00a74Vous n'\u00eates pas autoris\u00e9s \u00e0 interagir avec {0}.
antiBuildPlace=\u00a74Vous n'\u00eates pas autoris\u00e9s \u00e0 placer {0} ici.
antiBuildUse=\u00a74Vous n'\u00eates pas autoris\u00e9s \u00e0 utliser {0}.
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.
backupDisabled=An external backup script has not been configured.
backUsageMsg=\u00a77Retour \u00e0 votre emplacement pr\u00e9c\u00e9dent.
backupDisabled=Aucun script de backup externe n'a \u00e9t\u00e9 configur\u00e9.
backupFinished=Sauvegarde termin\u00e9
backupStarted=D\u00e9but de la sauvegarde...
balance=\u00a77Solde : {0}
balanceTop=\u00a77Meilleurs soldes au ({0})
banExempt=\u00a77Vous ne pouvez pas bannir ce joueur.
banFormat=Banned: {0}
banFormat=Banni : {0}
banIpAddress=\u00a77Adresse IP bannie.
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:
blockList=Essentials a relay\u00e9 les commandes suivantes \u00e0 un autre plugin :
broadcast=[\u00a7cMessage\u00a7f]\u00a7a {0}
buildAlert=\u00a7cVous n'avez pas la permission de construire.
bukkitFormatChanged=Le format de la version de Bukkit a \u00e9t\u00e9 chang\u00e9. La version n''a pas \u00e9t\u00e9 v\u00e9rifi\u00e9e.
@ -35,7 +35,7 @@ burnMsg=\u00a77Vous avez enflamm\u00e9 {0} pour {1} seconde(s).
canTalkAgain=\u00a77Vous pouvez de nouveau parler.
cantFindGeoIpDB=N'arrive pas \u00e0 trouver la base de donn\u00e9es GeoIP!
cantReadGeoIpDB=Echec de la lecture de la base de donn\u00e9es GeoIP!
cantSpawnItem=\u00a7cVous n''avez pas le droit de faire appara\u00c3\u00aetre {0}
cantSpawnItem=\u00a7cVous n''avez pas le droit de faire appara\u00eEtre {0}
chatTypeAdmin=[A]
chatTypeLocal=[L]
chatTypeSpy=[Spy]
@ -46,15 +46,15 @@ compassBearing=\u00a77Orientation : {0} ({1} degr\u00e9s).
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 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
creatingConfigFromTemplate=Cr\u00e9ation de la configuration \u00e0 partir du mod\u00c3\u00a8le : {0}
couldNotFindTemplate=Le mod\u00e8le {0} est introuvable
creatingConfigFromTemplate=Cr\u00e9ation de la configuration \u00e0 partir du mod\u00e8le : {0}
creatingEmptyConfig=Cr\u00e9ation d''une configuration vierge : {0}
creative=cr\u00e9atif
currency={0}{1}
currentWorld=Current World: {0}
currentWorld=Monde actuel : {0}
day=jour
days=jours
defaultBanReason=Le marteau du bannissement a frapp\u00e9 !
@ -62,7 +62,7 @@ deleteFileError=Le fichier {0} n''a pas pu \u00eatre supprim\u00e9
deleteHome=\u00a77La r\u00e9sidence {0} a \u00e9t\u00e9 supprim\u00e9e.
deleteJail=\u00a77La prison {0} a \u00e9t\u00e9 supprim\u00e9e.
deleteWarp=\u00a77Warp {0} supprim\u00e9.
deniedAccessCommand=L''acc\u00c3\u00a8s \u00e0 la commande a \u00e9t\u00e9 refus\u00e9 pour {0}.
deniedAccessCommand=L''acc\u00e8s \u00e0 la commande a \u00e9t\u00e9 refus\u00e9 pour {0}.
dependancyDownloaded=[Essentials] Fichier {0} correctement t\u00e9l\u00e9charg\u00e9.
dependancyException=[Essentials] Une erreur est survenue lors de la tentative de t\u00e9l\u00e9chargement.
dependancyNotFound=[Essentials] Une d\u00e9pendance requise n'a pas \u00e9t\u00e9 trouv\u00e9e, t\u00e9l\u00e9chargement en cours.
@ -72,26 +72,26 @@ depthBelowSea=\u00a77Vous \u00eates \u00e0 {0} bloc(s) en-dessous du niveau de l
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.
disabledToSpawnMob=L'invacation de ce monstre a \u00e9t\u00e9 d\u00e9sactiv\u00e9e dans le fichier de configuration.
dontMoveMessage=\u00a77La t\u00e9l\u00e9portation commence dans {0}. Ne bougez pas.
downloadingGeoIp=T\u00e9l\u00e9chargement de la base de donn\u00e9es GeoIP ... Cela peut prendre un moment (Pays : 0.6 Mo, villes : 20Mo)
duplicatedUserdata=Donn\u00e9e utilisateur dupliqu\u00e9e : {0} et {1}
durability=\u00a77This tool has \u00a7c{0}\u00a77 uses left
durability=\u00a77Cet outil a \u00a7c{0}\u00a77 usages restants
enableUnlimited=\u00a77Quantit\u00e9 illimit\u00e9e de {0} \u00e0 {1}.
enabled=activ\u00e9
enchantmentApplied = \u00a77L''enchantement {0} a \u00e9t\u00e9 appliqu\u00e9 \u00e0 l''objet dans votre main.
enchantmentNotFound = \u00a7cEnchantement non-trouv\u00e9
enchantmentNotFound = \u00a7cEnchantement non trouv\u00e9
enchantmentPerm = \u00a7cVous n''avez pas les droits pour {0}.
enchantmentRemoved = \u00a77The enchantment {0} has been removed from your item in hand.
enchantments = \u00a77Enchantments : {0}
enchantmentRemoved = \u00a77L'enchantement {0} de l'item dans votre main a \u00e9t\u00e9 supprim\u00e9.
enchantments = \u00a77Enchantements : {0}
errorCallingCommand=Erreur en appelant la commande /{0}
errorWithMessage=\u00a7cErreur : {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.
exp=\u00a7c{0} \u00a77has\u00a7c {1} \u00a77exp (level\u00a7c {2}\u00a77) and needs\u00a7c {3} \u00a77more exp to level up.
expSet=\u00a7c{0} \u00a77now has\u00a7c {1} \u00a77exp.
extinguish=\u00a77Vous cessez de br\u00fbler.
exp=\u00a7c{0} \u00a77a\u00a7c {1} \u00a77exp (niveau\u00a7c {2}\u00a77) et a besoin de\u00a7c {3} \u00a77pour monter d'un niveau.
expSet=\u00a7c{0} \u00a77a maintenant\u00a7c {1} \u00a77exp.
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}
@ -100,7 +100,7 @@ false=\u00a74false\u00a7f
feed=\u00a77Vous avez \u00e9t\u00e9 rassasi\u00e9.
feedOther=\u00a77 est rassasi\u00e9 {0}.
fileRenameError=Echec du changement de nom de {0}
flyMode=\u00a77Set fly mode {0} for {1}.
flyMode=\u00a77Fly mode {0} pour {1} d\u00e9fini.
flying=flying
foreverAlone=\u00a7cVous n''avez personne \u00e0 qui r\u00e9pondre
freedMemory=A lib\u00e9r\u00e9 {0} Mo.
@ -114,21 +114,21 @@ geoipJoinFormat=Joueur {0} vient de {1}
godDisabledFor=d\u00e9sactiv\u00e9 pour {0}
godEnabledFor=activ\u00e9 pour {0}
godMode=\u00a77Mode Dieu {0}.
hatArmor=\u00a7cError, you cannot use this item as a hat!
hatEmpty=\u00a7cYou are not wearing a hat.
hatFail=\u00a7cYou must have something to wear in your hand.
hatPlaced=\u00a7eEnjoy your new hat!
hatRemoved=\u00a7eYour hat has been removed.
hatArmor=\u00a7cErreur, vous ne pouvez pas utliser cet item comme chapeau !
hatEmpty=\u00a7cVous ne portez pas de chapeau.
hatFail=\u00a7cVous devez avoir quelque chose \u00e0 porter dans votre main.
hatPlaced=\u00a7eProfitez bien de votre nouveau chapeau !
hatRemoved=\u00a7eVotre chapeau a \u00e9t\u00e9 retir\u00e9.
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 ?
helpFrom=\u00a77Commands from {0}:
helpLine=\u00a76/{0}\u00a7f: {1}
helpMatching=\u00a77Commands matching "{0}":
helpMatching=\u00a77Commandes correspondant \u00e0 "{0}" :
helpOp=\u00a7c[Aide Admin]\u00a7f \u00a77{0} : \u00a7f {1}
helpPages=Page \u00a7c{0}\u00a7f sur \u00a7c{1}\u00a7f.
helpPlugin=\u00a74{0}\u00a7f: Plugin Help: /help {1}
helpPlugin=\u00a74{0}\u00a7f: Aide Plugin : /help {1}
holeInFloor=Trou dans le Sol.
homeSet=\u00a77R\u00e9sidence d\u00e9finie.
homeSetToBed=\u00a77Votre r\u00e9sidence est d\u00e9sormais li\u00e9e \u00e0 ce lit.
@ -142,13 +142,13 @@ infoChapterPages=Chapitre {0}, page \u00a7c{1}\u00a7f sur \u00a7c{2}\u00a7f:
infoFileDoesNotExist=Le fichier info.txt n'existe pas. Le fichier est en cours de cr\u00e9ation pour vous.
infoPages=\u00a7e ---- \u00a76{2} \u00a7e--\u00a76 Page \u00a74{0}\u00a76/\u00a74{1} \u00a7e----
infoUnknownChapter=Chapitre inconnu.
invBigger=Les inventaires des autres joueurs sont plus gros que le v\u00f4tre.
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 revenir \u00e0 votre inventaire.
invalidCharge=\u00a7cCharge invalide.
invalidHome=Home {0} doesn't exist
invalidMob=Mauvias type de cr\u00e9ature.
invalidHome=La r\u00e9sidence {0} n'existe pas
invalidMob=Mauvais type de cr\u00e9ature.
invalidServer=Serveur non valide.
invalidSignLine=La ligne {0} du panneau est invalide.
invalidWorld=\u00a7cMonde invalide.
@ -173,11 +173,11 @@ 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.
jailSet=\u00a77La prison {0} a \u00e9t\u00e9 cr\u00e9\u00e9e.
jumpError=\u00c7a aurait pu faire mal au cerveau de votre ordinateur.
kickDefault=\u00c9ject\u00e9 du serveur
kickExempt=\u00a77Vous ne pouvez pas \u00e9jecter ce joueur.
kickedAll=\u00a7cKicked all players from server
kickedAll=\u00a7cTous les joueurs ont \u00e9t\u00e9 \u00e9ject\u00e9s
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.
@ -193,14 +193,14 @@ listAmount = \u00a79Il y a \u00a7c{0}\u00a79 joueurs en ligne sur \u00a7c{1}\u00
listAmountHidden = \u00a79Il y a \u00a7c{0}\u00a77/{1}\u00a79 sur un maximum de \u00a7c{2}\u00a79 joueurs en ligne.
listGroupTag={0}\u00a7f:
listHiddenTag = \u00a77[MASQU\u00c9]\u00a7f
loadWarpError=\u00c9chec du chargement du point de t\u00e9l\u00e9portation {0}.
localFormat=Locale : <{0}> {1}
loadWarpError=\u00c9chec du chargement du warp {0}.
localFormat=Local : <{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 plus AFK.
maxHomes=Vous ne pouvez pas cr\u00e9er plus de {0} r\u00e9sidences.
mayNotJail=\u00a7cVous ne pouvez pas emprisonner cette personne.
me=moi
@ -213,7 +213,7 @@ mobSpawnLimit=Quantit\u00e9 de cr\u00e9atures limit\u00e9 \u00e0 au maximum du s
mobSpawnTarget=Le bloc cible doit \u00eatre un g\u00e9n\u00e9rateur de cr\u00e9atures.
mobsAvailable=\u00a77cr\u00e9atures : {0}
moneyRecievedFrom=\u00a7a{0} a \u00e9t\u00e9 re\u00e7u de {1}
moneySentTo=\u00a7a{0} a \u00e9t\u00e9 envoy\u00e9 \u00e0 {1}
moneySentTo=\u00a7a{0} ont \u00e9t\u00e9 envoy\u00e9s \u00e0 {1}
moneyTaken={0} pr\u00e9lev\u00e9(s) de votre compte.
month=mois
months=mois
@ -233,12 +233,12 @@ nickNamesAlpha=\u00a7cLes surnoms doivent \u00eatre alphanum\u00e9riques.
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\u00e8s \u00e0 cette commande.
noAccessPermission=\u00a7cVous n''avez pas la permissions d''acc\u00e9der \u00e0 cette {0}
noBreakBedrock=You are not allowed to destroy bedrock.
noBreakBedrock=Vous n'\u00eates pas autoris\u00e9s \u00e0 d\u00e9truire la bedrock.
noDestroyPermission=\u00a7cVous n''avez pas la permission de d\u00e9truire ce {0}.
noDurability=\u00a7cThis item does not have a durability.
noGodWorldWarning=\u00a7cWarning! Le mode Dieu est d\u00e9sactiv\u00e9 dans ce monde.
noDurability=\u00a7cCet item n'a pas de durabilit\u00e9.
noGodWorldWarning=\u00a7cAttention ! 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.
@ -250,43 +250,43 @@ 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.
noPlacePermission=\u00a7cVous n'avez pas la permission de placer un bloc pr\u00e8s 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.
noWarpsDefined=Aucun point de t\u00e9l\u00e9portation d\u00e9fini.
noWarpsDefined=Aucun warp d\u00e9fini.
none=aucun
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.
notFlying=not flying
notRecommendedBukkit=* ! * La version de Bukkit n'est pas celle qui est recommand\u00e9 pour cette version de Essentials.
notRecommendedBukkit=* ! * Cette version de Bukkit n'est pas recommand\u00e9 pour cette version de Essentials.
notSupportedYet=Pas encore pris en charge.
nothingInHand = \u00a7cVous n'avez rien en main.
now=maintenant
nuke=Que la mort s'abatte sur eux !
numberRequired=Il faut fournir un nombre ici.
numberRequired=Un nombre est requis ici.
onlyDayNight=/time ne supporte que (jour) day/night (nuit).
onlyPlayers=Seulement les joueurs en jeu peuvent utiliser {0}.
onlyPlayers=Seuls les joueurs en jeu peuvent utiliser {0}.
onlySunStorm=/weather ne supporte que (soleil) sun/storm (temp\u00eate).
orderBalances=Classement des balance de {0} utilisateurs, patientez ...
orderBalances=Classement des soldes des {0} joueurs, patientez ...
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 :
pTimePlayers=Ces joueurs ont leur propre horaire :
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}
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.
permissionsError=Permissions/GroupManager manquant, les pr\u00e9fixes et suffixes ne seront pas affich\u00e9s.
playerBanned=\u00a7cJoueur {0} banni {1} pour {2}
playerInJail=\u00a7cLe joueur est d\u00e9j\u00e0 dans la prison {0}.
playerInJail=\u00a7cLe joueur est d\u00e9j\u00e0 emprisonn\u00e9 dans {0}.
playerJailed=\u00a77Le joueur {0} a \u00e9t\u00e9 emprisonn\u00e9.
playerJailedFor=\u00a77{0} a \u00e9t\u00e9 emprisonn\u00e9 pour {1}.
playerKicked=\u00a7c{0} a \u00e9t\u00e9 \u00e9ject\u00e9 {1} pour {2}.
playerMuted=\u00a77Vous avez \u00e9t\u00e9 r\u00e9duis au silence.
playerMuted=\u00a77Vous avez \u00e9t\u00e9 r\u00e9duit 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.
playerNotFound=\u00a7cLe joueur est introuvable.
@ -296,7 +296,7 @@ possibleWorlds=\u00a77Les mondes possibles sont les nombres de 0 \u00e0 {0}.
powerToolAir=La commande ne peut pas \u00eatre assign\u00e9e \u00e0 l'air.
powerToolAlreadySet=La commande \u00a7c{0}\u00a7f est d\u00e9j\u00e0 assign\u00e9e \u00e0 {1}.
powerToolAttach=Commande \u00a7c{0}\u00a7f assign\u00e9e \u00e0 {1}.
powerToolClearAll=Toutes les commandes assign\u00e9es ont \u00e9et\u00e9e retir\u00e9ees.
powerToolClearAll=Toutes les commandes assign\u00e9es ont \u00e9t\u00e9 retir\u00e9es.
powerToolList={1} assign\u00e9s aux commandes : \u00a7c{0}\u00a7f.
powerToolListEmpty={0} n'a pas de commande assign\u00e9e.
powerToolNoSuchCommandAssigned=La commande \u00a7c{0}\u00a7f n''a pas \u00e9t\u00e9 assign\u00e9e \u00e0 {1}.
@ -313,42 +313,42 @@ repair=Vous avez r\u00e9par\u00e9 votre : \u00a7e{0}.
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.
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://dl.bukkit.org/downloads/craftbukkit/
requestTimedOut=\u00a7cLa demande de t\u00e9l\u00e9portation a expir\u00e9.
requiredBukkit=* ! * Vous avez au moins besoin de la version {0} de CraftBukkit. T\u00e9l\u00e9chargez-la ici http://dl.bukkit.org/downloads/craftbukkit/
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}
serverTotal=Total du serveur : {0}
setSpawner=Type de g\u00e9n\u00e9rateur chang\u00e9 en {0}
sheepMalformedColor=Couleur mal form\u00e9e.
sheepMalformedColor=Couleur incorrecte.
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 point de t\u00e9l\u00e9portation avec un nom similaire existe d\u00e9j\u00e0.
slimeMalformedSize=Taille mal form\u00e9e.
soloMob=Ce cr\u00e9ature aime \u00eatre seul.
similarWarpExist=Un warp avec un nom similaire existe d\u00e9j\u00e0.
slimeMalformedSize=Taille incorrecte.
soloMob=Cette cr\u00e9ature pr\u00e9f\u00e8re \u00eatre seule.
spawnSet=\u00a77Le point de d\u00e9part a \u00e9t\u00e9 d\u00e9fini pour le groupe {0}.
spawned=invoqu\u00e9(s)
sudoExempt=You cannot sudo this user
sudoRun=Forcing {0} to run: /{1} {2}
sudoRun=Le joueur {0} ex\u00e9cute de force : /{1} {2}
suicideMessage=\u00a77Au revoir monde cruel...
suicideSuccess=\u00a77{0} s''est suicid\u00e9.
survival=survie
takenFromAccount=\u00a7c{0} ont \u00e9t\u00e9 retir\u00e9 de votre compte.
takenFromOthersAccount=\u00a7c{0} taken from {1}\u00a7c account. New balance: {2}
takenFromAccount=\u00a7c{0} ont \u00e9t\u00e9 retir\u00e9s de votre compte.
takenFromOthersAccount=\u00a7c{0} retir\u00e9s du compte de {1}\u00a7c. Nouveau solde : {2}
teleportAAll=\u00a77Demande de t\u00e9l\u00e9portation envoy\u00e9e \u00e0 tous les joueurs...
teleportAll=\u00a77T\u00e9l\u00e9poration de tous les joueurs.
teleportAll=\u00a77T\u00e9l\u00e9portation 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.
@ -357,9 +357,9 @@ teleportRequest=\u00a7c{0}\u00a7c vous demande s''il peut se t\u00e9l\u00e9porte
teleportRequestTimeoutInfo=\u00a77Cette demande de t\u00e9l\u00e9portation expirera dans {0} secondes.
teleportTop=\u00a77T\u00e9l\u00e9portation vers le haut.
teleportationCommencing=\u00a77D\u00e9but de la t\u00e9l\u00e9portation...
teleportationDisabled=\u00a77T\u00e9l\u00e9poration d\u00e9sactiv\u00e9.
teleportationDisabled=\u00a77T\u00e9l\u00e9portation d\u00e9sactiv\u00e9.
teleportationEnabled=\u00a77T\u00e9l\u00e9portation activ\u00e9e.
teleporting=\u00a77T\u00e9l\u00e9poration en cours...
teleporting=\u00a77T\u00e9l\u00e9portation en cours...
teleportingPortal=\u00a77T\u00e9l\u00e9portation via portail.
tempBanned=Banni temporairement du serveur pour {0}
tempbanExempt=\u00a77Vous ne pouvez pas bannir temporairement ce joueur.
@ -378,7 +378,7 @@ 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.
treeSpawned=\u00a77Arbre cr\u00e9\u00e9.
treeSpawned=\u00a77Arbre cr\u00e9 \u00e9.
true=\u00a72true\u00a7f
typeTpaccept=\u00a77Pour le t\u00e9l\u00e9porter, utilisez \u00a7c/tpaccept\u00a77.
typeTpdeny=\u00a77Pour d\u00e9cliner cette demande, utilisez \u00a7c/tpdeny\u00a77.
@ -391,55 +391,55 @@ unknownItemId=Num\u00e9ro d''objet inconnu : {0}
unknownItemInList=L''objet {0} est inconnu dans la liste {1}.
unknownItemName=Nom d''objet inconnu : {0}
unlimitedItemPermission=\u00a7cPas de permission pour l''objet illimit\u00e9 {0}.
unlimitedItems=Objets illimit\u00e9s:
unlimitedItems=Objets illimit\u00e9s :
unmutedPlayer=Le joueur {0} n''est plus muet.
unvanished=\u00a7aYou are once again visible.
unvanishedReload=\u00a7cA reload has forced you to become visible.
upgradingFilesError=Erreur durant la mise \u00e0 jour des fichiers.
userDoesNotExist=L''utilisateur {0} n''existe pas.
userIsAway={0} s'est mis en AFK
userIsAway={0} est d\u00e9sormais AFK
userIsNotAway={0} n'est plus AFK
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
usingTempFolderForTesting=Utilise un fichier temporaire pour un test.
vanished=\u00a7aYou have now been vanished.
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.
vanished=\u00a7aVous \u00eates d\u00e9sormais invisible.
versionMismatch=Versions diff\u00e9rentes ! Veuillez mettre {0} \u00e0 la m\u00eame version.
versionMismatchAll=Mauvaise version ! Veuillez mettre des jars Essentials de m\u00eame version.
voiceSilenced=\u00a77Vous avez \u00e9t\u00e9 r\u00e9duit au silence.
walking=walking
warpDeleteError=Probl\u00c3\u00a8me concernant la suppression du fichier warp.
walking=en train de marcher
warpDeleteError=Probl\u00e8me concernant la suppression du fichier warp.
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.
warpOverwrite=\u00a7cYou cannot overwrite that warp.
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.
warpNotExist=Ce warp n'existe pas.
warpOverwrite=\u00a7cVous ne pouvez pas \u00e9craser ce warp.
warpSet=\u00a77Le warp {0} a \u00e9t\u00e9 cr\u00e9 \u00e9.
warpUsePermission=\u00a7cVous n'avez pas la permission d'utiliser ce warp.
warpingTo=\u00a77T\u00e9l\u00e9portation vers {0}.
warps=point de t\u00e9l\u00e9portations : {0}
warpsCount=\u00a77Il y a {0} points de t\u00e9l\u00e9portations. Page {1} sur {2}.
warps=warps : {0}
warpsCount=\u00a77Il y a {0} warps. Page {1} sur {2}.
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.
whoisAFK=\u00a76 - AFK:\u00a7f {0}
whoisBanned=\u00a76 - Banni:\u00a7f {0}
whoisExp=\u00a76 - Exp:\u00a7f {0} (Level {1})
whoisFly=\u00a76 - Fly mode:\u00a7f {0} ({1})
whoisGamemode=\u00a76 - Mode de jeu:\u00a7f {0}
whoisGeoLocation=\u00a76 - Emplacement:\u00a7f {0}
whoisGod=\u00a76 - Mode Dieu:\u00a7f {0}
whoisHealth=\u00a76 - Sant\u00e9:\u00a7f {0} / 20
whoisIPAddress=\u00a76 - Adresse IP:\u00a7f {0}
whoisJail=\u00a76 - Jail:\u00a7f {0}
whoisLocation=\u00a76 - Emplacement:\u00a7f ({0}, {1}, {2}, {3})
whoisMoney=\u00a76 - Argent:\u00a7f {0}
whoisMuted=\u00a76 - Muted:\u00a7f {0}
whoisNick=\u00a76 - Nick:\u00a7f {0}
whoisOp=\u00a76 - OP:\u00a7f {0}
whoisAFK=\u00a76 - AFK :\u00a7f {0}
whoisBanned=\u00a76 - Banni :\u00a7f {0}
whoisExp=\u00a76 - Exp :\u00a7f {0} (Level {1})
whoisFly=\u00a76 - Fly mode :\u00a7f {0} ({1})
whoisGamemode=\u00a76 - Mode de jeu :\u00a7f {0}
whoisGeoLocation=\u00a76 - Emplacement :\u00a7f {0}
whoisGod=\u00a76 - Mode dieu :\u00a7f {0}
whoisHealth=\u00a76 - Sant\u00e9 :\u00a7f {0} / 20
whoisIPAddress=\u00a76 - Adresse IP :\u00a7f {0}
whoisJail=\u00a76 - Jail :\u00a7f {0}
whoisLocation=\u00a76 - Position :\u00a7f ({0}, {1}, {2}, {3})
whoisMoney=\u00a76 - Argent :\u00a7f {0}
whoisMuted=\u00a76 - Muet :\u00a7f {0}
whoisNick=\u00a76 - Surnom :\u00a7f {0}
whoisOp=\u00a76 - OP :\u00a7f {0}
whoisTop=\u00a76 ====== WhoIs:\u00a7f {0} \u00a76======
worth=\u00a77Une pile de {0} vaut \u00a7c{1}\u00a77 ({2} objet(s) \u00e0 {3} chacun)
worthMeta=\u00a77Une pile de {0} avec la m\u00e9tadonn\u00e9e de {1} vaut \u00a7c{2}\u00a77 ({3} objet(s) \u00e0 {4} chacun)
worth=\u00a77Un stack de {0} vaut \u00a7c{1}\u00a77 ({2} objet(s) \u00e0 {3} chacun)
worthMeta=\u00a77Un stack de {0} de type {1} vaut \u00a7c{2}\u00a77 ({3} objet(s) \u00e0 {4} chacun)
worthSet=Valeur cr\u00e9e
year=ann\u00e9e
years=ann\u00e9es
@ -448,15 +448,15 @@ youHaveNewMail=\u00a7cVous avez {0} messages ! \u00a7fEntrez \u00a77/mail read\u
posX=\u00a76X: {0} (+East <-> -West)
posY=\u00a76Y: {0} (+Up <-> -Down)
posZ=\u00a76Z: {0} (+South <-> -North)
posYaw=\u00a76Yaw: {0} (Rotation)
posPitch=\u00a76Pitch: {0} (Head angle)
distance=\u00a76Distance: {0}
posYaw=\u00a76Yaw : {0} (Rotation)
posPitch=\u00a76Pitch : {0} (Head angle)
distance=\u00a76Distance : {0}
giveSpawn=\u00a76Giving\u00a7c {0} \u00a76of\u00a7c {1} to\u00a7c {2}\u00a76.
warpList={0}
uptime=\u00a76Uptime:\u00a7c {0}
antiBuildCraft=\u00a74You are not permitted to create\u00a7c {0}\u00a74.
antiBuildDrop=\u00a74You are not permitted to drop\u00a7c {0}\u00a74.
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 chunks, \u00a7c{3}\u00a76 entities
invalidHomeName=\u00a74Invalid home name
invalidWarpName=\u00a74Invalid warp name
userUnknown=\u00a74Warning: The user '\u00a7c{0}\u00a74' has never joined this server.
uptime=\u00a76Dur\u00e9e de fonctionnent :\u00a7c {0}
antiBuildCraft=\u00a74Vous n'\u00eates pas autoris\u00e9s \u00e0 cr\u00e9er\u00a7c {0}\u00a74.
antiBuildDrop=\u00a74Vous n'\u00eates pas autoris\u00e9s \u00e0 jeter\u00a7c {0}\u00a74.
gcWorld=\u00a76{0} "\u00a7c{1}\u00a76": \u00a7c{2}\u00a76 portions, \u00a7c{3}\u00a76 entit\u00e9s
invalidHomeName=\u00a74Nom de r\u00e9sindence invalide
invalidWarpName=\u00a74Nom de warp invalide
userUnknown=\u00a74Attention : Le joueur '\u00a7c{0}\u00a74' n'est jamais venu sur ce serveur.

View file

@ -109,12 +109,8 @@ commands:
aliases: [efeed,eat,eeat]
fly:
description: Take off, and soar!
usage: /<command> [player] [on|off]
usage: /<command> [player [on|off]]
aliases: [efly]
itemdb:
description: Searches for an item.
usage: /<command> <item>
aliases: [eitemdb,itemno,eitemno,durability,dura,edura,edurability]
fireball:
description: Throw a fireball.
usage: /<command> [small]
@ -123,21 +119,21 @@ commands:
description: Change player gamemode.
usage: /<command> <survival|creative|adventure> [player]
aliases: [gm,creative,creativemode,survival,survivalmode,adventure,adventuremode,gmc,gma,gms,gmt,egamemod,eecreative,ecreativemode,esurvival,esurvivalmode,eadventure,eadventuremode,egmc,egma,egms,egm,egmt]
getpos:
description: Get your current coordinates or those of a player.
usage: /<command> [player]
aliases: [coords,egetpos,position,eposition,whereami,ewhereami]
gc:
description: Reports memory, uptime and tick info.
usage: /<command>
aliases: [elag,lag,mem,memory,egc,emem,ememory,uptime,euptime]
getpos:
description: Get your current coordinates or those of a player.
usage: /<command> [player]
aliases: [coords,egetpos,position,eposition,whereami,ewhereami]
give:
description: Give a player an item.
usage: /<command> <player> <item|numeric> [amount <enchantmentname[:level]> ...]
aliases: [egive]
god:
description: Enables your godly powers.
usage: /<command> [player] [on|off]
usage: /<command> [player [on|off]]
aliases: [tgm,godmode,egod,etgm,egodmode]
hat:
description: Get some cool new headgear
@ -175,6 +171,10 @@ commands:
description: Spawn an item.
usage: /<command> <item|numeric> [amount <enchantmentname[:level]> ...]
aliases: [i,eitem]
itemdb:
description: Searches for an item.
usage: /<command> <item>
aliases: [eitemdb,itemno,eitemno,durability,dura,edura,edurability]
jails:
description: List all jails.
usage: /<command>
@ -191,10 +191,6 @@ commands:
description: Kicks all players off the server except the issuer.
usage: /<command> [reason]
aliases: [ekickall]
kit:
description: Obtains the specified kit or views all available kits.
usage: /<command> [kit] [player]
aliases: [ekit,kits,ekits]
kill:
description: Kills specified player.
usage: /<command> <player>
@ -203,17 +199,21 @@ commands:
description: Kill all mobs in a world.
usage: /<command> [mobType] [radius]
aliases: [ekillall,butcher,ebutcher,mobkill,emobkill]
kit:
description: Obtains the specified kit or views all available kits.
usage: /<command> [kit] [player]
aliases: [ekit,kits,ekits]
kittycannon:
description: Throw an exploding kitten at your opponent
usage: /<command>
list:
description: List all online players.
usage: /<command>
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]
aliases: [strike,smite,thor,shock,elightning,estrike,esmite,ethor,eshock]
list:
description: List all online players.
usage: /<command>
aliases: [playerlist,who,online,plist,eplist,elist,ewho,eplayerlist,eonline]
mail:
description: Manages inter-player, intra-server mail.
usage: /<command> [read|clear|send [to] [message]|sendall [message]]

View file

@ -118,6 +118,12 @@ public class FakeServer implements Server
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public boolean isHardcore()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public Player getPlayer(String string)
{
@ -795,4 +801,10 @@ public class FakeServer implements Server
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public int getAmbientSpawnLimit()
{
throw new UnsupportedOperationException("Not supported yet.");
}
}

View file

@ -51,7 +51,7 @@ public class EssentialsAntiBuildListener implements Listener
return user.isAuthorized(blockPerm);
}
private boolean metaPermCheck(final User user, final String action, final int blockId, final byte data)
private boolean metaPermCheck(final User user, final String action, final int blockId, final short data)
{
final String blockPerm = "essentials.build." + action + "." + blockId;
final String dataPerm = blockPerm + ":" + data;
@ -219,7 +219,7 @@ public class EssentialsAntiBuildListener implements Listener
if (prot.getSettingBool(AntiBuildConfig.disable_use) && !user.canBuild() && !user.isAuthorized("essentials.build"))
{
if (event.hasItem() && !metaPermCheck(user, "interact", item.getTypeId(), item.getData().getData()))
if (event.hasItem() && !metaPermCheck(user, "interact", item.getTypeId(), item.getDurability()))
{
event.setCancelled(true);
if (ess.getSettings().warnOnBuildDisallow())
@ -251,7 +251,7 @@ public class EssentialsAntiBuildListener implements Listener
if (prot.getSettingBool(AntiBuildConfig.disable_use) && !user.canBuild() && !user.isAuthorized("essentials.build"))
{
if (!metaPermCheck(user, "craft", item.getTypeId(), item.getData().getData()))
if (!metaPermCheck(user, "craft", item.getTypeId(), item.getDurability()))
{
event.setCancelled(true);
if (ess.getSettings().warnOnBuildDisallow())
@ -272,7 +272,7 @@ public class EssentialsAntiBuildListener implements Listener
if (prot.getSettingBool(AntiBuildConfig.disable_use) && !user.canBuild() && !user.isAuthorized("essentials.build"))
{
if (!metaPermCheck(user, "pickup", item.getTypeId(), item.getData().getData()))
if (!metaPermCheck(user, "pickup", item.getTypeId(), item.getDurability()))
{
event.setCancelled(true);
event.getItem().setPickupDelay(50);
@ -289,7 +289,7 @@ public class EssentialsAntiBuildListener implements Listener
if (prot.getSettingBool(AntiBuildConfig.disable_use) && !user.canBuild() && !user.isAuthorized("essentials.build"))
{
if (!metaPermCheck(user, "drop", item.getTypeId(), item.getData().getData()))
if (!metaPermCheck(user, "drop", item.getTypeId(), item.getDurability()))
{
event.setCancelled(true);
user.updateInventory();

View file

@ -381,6 +381,11 @@ public class GroupManager extends JavaPlugin {
User senderUser = null;
boolean isOpOverride = config.isOpOverride();
if (sender.getClass().getName().equals("org.bukkit.craftbukkit.command.CraftBlockCommandSender")) {
sender.sendMessage(ChatColor.RED + "GM Commands can not be called from CommandBlocks");
return true;
}
// DETERMINING PLAYER INFORMATION
if (sender instanceof Player) {
senderPlayer = (Player) sender;

View file

@ -10,9 +10,9 @@ import org.bukkit.entity.*;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.*;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.event.entity.EntityTargetEvent.TargetReason;
import org.bukkit.event.entity.*;
public class EssentialsProtectEntityListener implements Listener
@ -38,33 +38,27 @@ public class EssentialsProtectEntityListener implements Listener
}
final User user = ess.getUser(target);
final DamageCause cause = event.getCause();
if (event instanceof EntityDamageByBlockEvent)
{
final DamageCause cause = event.getCause();
if (prot.getSettingBool(ProtectConfig.disable_contactdmg)
&& cause == DamageCause.CONTACT
&& !(target instanceof Player
&& user.isAuthorized("essentials.protect.damage.contact")
&& !user.isAuthorized("essentials.protect.damage.disable")))
&& !(target instanceof Player && shouldBeDamaged(user, "contact")))
{
event.setCancelled(true);
return;
}
if (prot.getSettingBool(ProtectConfig.disable_lavadmg)
&& cause == DamageCause.LAVA
&& !(target instanceof Player
&& user.isAuthorized("essentials.protect.damage.lava")
&& !user.isAuthorized("essentials.protect.damage.disable")))
&& !(target instanceof Player && shouldBeDamaged(user, "lava")))
{
event.setCancelled(true);
return;
}
if (prot.getSettingBool(ProtectConfig.prevent_tnt_explosion)
&& cause == DamageCause.BLOCK_EXPLOSION
&& !(target instanceof Player
&& user.isAuthorized("essentials.protect.damage.tnt")
&& !user.isAuthorized("essentials.protect.damage.disable")))
&& !(target instanceof Player && shouldBeDamaged(user, "tnt")))
{
event.setCancelled(true);
return;
@ -77,6 +71,39 @@ public class EssentialsProtectEntityListener implements Listener
final Entity eAttack = edEvent.getDamager();
final User attacker = ess.getUser(eAttack);
//Creeper explode prevention
if (eAttack instanceof Creeper
&& (prot.getSettingBool(ProtectConfig.prevent_creeper_explosion)
|| prot.getSettingBool(ProtectConfig.prevent_creeper_playerdmg))
&& !(target instanceof Player && shouldBeDamaged(user, "creeper")))
{
event.setCancelled(true);
return;
}
if ((event.getEntity() instanceof Fireball || event.getEntity() instanceof SmallFireball)
&& prot.getSettingBool(ProtectConfig.prevent_fireball_playerdmg)
&& !(target instanceof Player && shouldBeDamaged(user, "fireball")))
{
event.setCancelled(true);
return;
}
if (event.getEntity() instanceof WitherSkull
&& prot.getSettingBool(ProtectConfig.prevent_witherskull_playerdmg)
&& !(target instanceof Player && shouldBeDamaged(user, "witherskull")))
{
event.setCancelled(true);
return;
}
if (eAttack instanceof TNTPrimed && prot.getSettingBool(ProtectConfig.prevent_tnt_playerdmg)
&& !(target instanceof Player && shouldBeDamaged(user, "tnt")))
{
event.setCancelled(true);
return;
}
// PVP Settings
if (target instanceof Player && eAttack instanceof Player
&& prot.getSettingBool(ProtectConfig.disable_pvp)
@ -86,49 +113,9 @@ public class EssentialsProtectEntityListener implements Listener
return;
}
//Creeper explode prevention
if (eAttack instanceof Creeper && prot.getSettingBool(ProtectConfig.prevent_creeper_explosion)
&& !(target instanceof Player
&& user.isAuthorized("essentials.protect.damage.creeper")
&& !user.isAuthorized("essentials.protect.damage.disable")))
{
event.setCancelled(true);
return;
}
if (eAttack instanceof Creeper && prot.getSettingBool(ProtectConfig.prevent_creeper_playerdmg)
&& !(target instanceof Player
&& user.isAuthorized("essentials.protect.damage.creeper")
&& !user.isAuthorized("essentials.protect.damage.disable")))
{
event.setCancelled(true);
return;
}
if ((event.getEntity() instanceof Fireball || event.getEntity() instanceof SmallFireball)
&& prot.getSettingBool(ProtectConfig.prevent_fireball_playerdmg)
&& !(target instanceof Player
&& user.isAuthorized("essentials.protect.damage.fireball")
&& !user.isAuthorized("essentials.protect.damage.disable")))
{
event.setCancelled(true);
return;
}
if (eAttack instanceof TNTPrimed && prot.getSettingBool(ProtectConfig.prevent_tnt_playerdmg)
&& !(target instanceof Player
&& user.isAuthorized("essentials.protect.damage.tnt")
&& !user.isAuthorized("essentials.protect.damage.disable")))
{
event.setCancelled(true);
return;
}
if (edEvent.getDamager() instanceof Projectile
&& target instanceof Player
&& ((prot.getSettingBool(ProtectConfig.disable_projectiles)
&& !(user.isAuthorized("essentials.protect.damage.projectiles")
&& !user.isAuthorized("essentials.protect.damage.disable")))
&& ((prot.getSettingBool(ProtectConfig.disable_projectiles) && !shouldBeDamaged(user, "projectiles"))
|| (((Projectile)edEvent.getDamager()).getShooter() instanceof Player
&& prot.getSettingBool(ProtectConfig.disable_pvp)
&& (!user.isAuthorized("essentials.protect.pvp")
@ -139,13 +126,11 @@ public class EssentialsProtectEntityListener implements Listener
}
}
final DamageCause cause = event.getCause();
if (target instanceof Player)
{
if (cause == DamageCause.FALL
&& prot.getSettingBool(ProtectConfig.disable_fall)
&& !(user.isAuthorized("essentials.protect.damage.fall")
&& !user.isAuthorized("essentials.protect.damage.disable")))
&& !shouldBeDamaged(user, "fall"))
{
event.setCancelled(true);
return;
@ -153,33 +138,35 @@ public class EssentialsProtectEntityListener implements Listener
if (cause == DamageCause.SUFFOCATION
&& prot.getSettingBool(ProtectConfig.disable_suffocate)
&& !(user.isAuthorized("essentials.protect.damage.suffocation")
&& !user.isAuthorized("essentials.protect.damage.disable")))
&& !shouldBeDamaged(user, "suffocation"))
{
event.setCancelled(true);
return;
}
if ((cause == DamageCause.FIRE
|| cause == DamageCause.FIRE_TICK)
if ((cause == DamageCause.FIRE || cause == DamageCause.FIRE_TICK)
&& prot.getSettingBool(ProtectConfig.disable_firedmg)
&& !(user.isAuthorized("essentials.protect.damage.fire")
&& !user.isAuthorized("essentials.protect.damage.disable")))
&& !shouldBeDamaged(user, "fire"))
{
event.setCancelled(true);
return;
}
if (cause == DamageCause.DROWNING
&& prot.getSettingBool(ProtectConfig.disable_drown)
&& !(user.isAuthorized("essentials.protect.damage.drowning")
&& !user.isAuthorized("essentials.protect.damage.disable")))
&& !shouldBeDamaged(user, "drowning"))
{
event.setCancelled(true);
return;
}
if (cause == DamageCause.LIGHTNING
&& prot.getSettingBool(ProtectConfig.disable_lightning)
&& !(user.isAuthorized("essentials.protect.damage.lightning")
&& !user.isAuthorized("essentials.protect.damage.disable")))
&& !shouldBeDamaged(user, "lightning"))
{
event.setCancelled(true);
return;
}
if (cause == DamageCause.WITHER
&& prot.getSettingBool(ProtectConfig.disable_wither)
&& !shouldBeDamaged(user, "wither"))
{
event.setCancelled(true);
return;
@ -187,6 +174,12 @@ public class EssentialsProtectEntityListener implements Listener
}
}
private boolean shouldBeDamaged(final User user, final String type)
{
return (user.isAuthorized("essentials.protect.damage.".concat(type))
&& !user.isAuthorized("essentials.protect.damage.disable"));
}
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onEntityExplode(final EntityExplodeEvent event)
{
@ -206,6 +199,12 @@ public class EssentialsProtectEntityListener implements Listener
}
return;
}
if (event.getEntity() instanceof Wither
&& prot.getSettingBool(ProtectConfig.prevent_wither_spawnexplosion))
{
event.setCancelled(true);
return;
}
else if (event.getEntity() instanceof Creeper
&& (prot.getSettingBool(ProtectConfig.prevent_creeper_explosion)
|| prot.getSettingBool(ProtectConfig.prevent_creeper_blockdmg)
@ -228,6 +227,13 @@ public class EssentialsProtectEntityListener implements Listener
event.setCancelled(true);
return;
}
else if ((event.getEntity() instanceof WitherSkull)
&& prot.getSettingBool(ProtectConfig.prevent_witherskull_explosion))
{
event.setCancelled(true);
return;
}
// This code will prevent explosions near protected rails, signs or protected chests
// TODO: Use protect db instead of this code
@ -294,6 +300,7 @@ public class EssentialsProtectEntityListener implements Listener
|| event.getReason() == TargetReason.TARGET_ATTACKED_ENTITY
|| event.getReason() == TargetReason.PIG_ZOMBIE_TARGET
|| event.getReason() == TargetReason.RANDOM_TARGET
|| event.getReason() == TargetReason.DEFEND_VILLAGE
|| event.getReason() == TargetReason.TARGET_ATTACKED_OWNER
|| event.getReason() == TargetReason.OWNER_ATTACKED_TARGET)
&& prot.getSettingBool(ProtectConfig.prevent_entitytarget)
@ -322,5 +329,10 @@ public class EssentialsProtectEntityListener implements Listener
event.setCancelled(true);
return;
}
if (event.getEntityType() == EntityType.WITHER && prot.getSettingBool(ProtectConfig.prevent_wither_blockreplace))
{
event.setCancelled(true);
return;
}
}
}

View file

@ -17,6 +17,7 @@ public enum ProtectConfig
disable_firedmg("protect.disable.firedmg", false),
disable_lightning("protect.disable.lightning", false),
disable_drown("protect.disable.drown", false),
disable_wither("protect.disable.wither", false),
disable_weather_storm("protect.disable.weather.storm", false),
disable_weather_lightning("protect.disable.weather.lightning", false),
disable_weather_thunder("protect.disable.weather.thunder", false),
@ -34,6 +35,10 @@ public enum ProtectConfig
prevent_fireball_explosion("protect.prevent.fireball-explosion", false),
prevent_fireball_fire("protect.prevent.fireball-fire", false),
prevent_fireball_playerdmg("protect.prevent.fireball-playerdamage", false),
prevent_witherskull_explosion("protect.prevent.witherskull-explosion", false),
prevent_witherskull_playerdmg("protect.prevent.witherskull-playerdamage", false),
prevent_wither_spawnexplosion("protect.prevent.wither-spawnexplosion", false),
prevent_wither_blockreplace("protect.prevent.wither-blockreplace", false),
prevent_creeper_explosion("protect.prevent.creeper-explosion", true),
prevent_creeper_playerdmg("protect.prevent.creeper-playerdamage", false),
prevent_creeper_blockdmg("protect.prevent.creeper-blockdamage", false),

View file

@ -97,6 +97,7 @@ public class EssentialsSpawnPlayerListener implements Listener
ess.scheduleSyncDelayedTask(new NewPlayerTeleport(user), 1L);
}
//This method allows for multiple line player announce messages using multiline yaml syntax #EasterEgg
if (ess.getSettings().getAnnounceNewPlayers())
{
final IText output = new KeywordReplacer(ess.getSettings().getAnnounceNewPlayerFormat(), user, ess);

Binary file not shown.

Binary file not shown.