diff --git a/build.gradle b/build.gradle new file mode 100644 index 00000000..70d3c8e8 --- /dev/null +++ b/build.gradle @@ -0,0 +1,81 @@ +apply plugin: 'java' + +group = 'net.canarymod' +version = '2.0.0-SNAPSHOT' + +sourceCompatibility = 1.8 +targetCompatibility = 1.8 + +repositories { + mavenLocal() + mavenCentral() + maven { + name 'vi-repo' + url 'http://repo.visualillusionsent.net/repository/internal/' + } + maven { + name 'vi-snapshots' + url 'http://repo.visualillusionsent.net/repository/snapshots/' + } + maven { + name 'mojang' + url 'https://libraries.minecraft.net/' + } + maven { + name 'mcstats' + url 'http://repo.mcstats.org/content/repositories/releases/' + } + maven { + name 'mcstats.snapshots' + url 'http://repo.mcstats.org/content/repositories/snapshots/' + } +} + +dependencies { + // Provided by Minecraft + compile 'com.google.guava:guava:21.0' + compile 'com.google.code.gson:gson:2.8.0' + compile 'com.mojang:authlib:1.5.25' + + // Logging + compile 'org.slf4j:slf4j-api:1.7.25' + + // Other + compile 'net.visualillusionsent:viutils:1.4.2' + compile 'org.jdom:jdom2:2.0.5' + compile 'com.zaxxer:HikariCP:2.7.4' + compile 'com.googlecode.json-simple:json-simple:1.1.1' + compile 'org.mcstats.standalone:metrics:R7' + + // Runtime + compile 'org.xerial:sqlite-jdbc:3.8.7' + compile 'mysql:mysql-connector-java:5.1.34' + + testCompile 'junit:junit:4.12' +} + +// Source compiler configuration +tasks.withType(JavaCompile) { + options.compilerArgs += ['-Xlint:all', '-Xlint:-path', '-parameters'] + options.deprecation = true + options.encoding = 'UTF-8' +} + +javadoc { + options.encoding = 'UTF-8' + options.charSet = 'UTF-8' + options.links( + 'https://google.github.io/guava/releases/21.0/api/docs/', + 'http://www.slf4j.org/apidocs/', + 'http://www.jdom.org/docs/apidocs/', + 'http://www.mchange.com/projects/c3p0/apidocs/', + 'https://docs.oracle.com/javase/8/docs/api/' + ) + + // Disable the crazy super-strict doclint tool in Java 8 + options.addStringOption('Xdoclint:none', '-quiet') +} + +task wrapper(type: Wrapper) { + gradleVersion = '4.1' +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 00000000..ad93ae55 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,3 @@ +name = CanaryLib +url = http://www.canarymod.net +inceptionYear = 2012 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 00000000..6b6ea3ab Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..f16d2666 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-bin.zip diff --git a/gradlew b/gradlew new file mode 100755 index 00000000..cccdd3d5 --- /dev/null +++ b/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 00000000..e95643d6 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/pom.xml b/pom.xml deleted file mode 100644 index b490a227..00000000 --- a/pom.xml +++ /dev/null @@ -1,370 +0,0 @@ - - - 4.0.0 - net.canarymod - CanaryLib - jar - 1.2.1-SNAPSHOT - CanaryLib - http://www.canarymod.net - 2012 - - - CanaryMod Team - http://canarymod.net - - - - UTF-8 - dd MMMM yyyy HH:mm z - - - R7 - 1.4.2 - 2.0.5 - 0.9.5 - 2.0-beta9 - 17.0 - 1.5.21 - 1.1.1 - 3.8.7 - 5.1.34 - 4.12 - - - - - BSD 3-Clause License - http://opensource.org/licenses/BSD-3-Clause - - Copyright (c) 2012 - 2015, CanaryMod Team - Under the management of PlayBlack and Visual Illusions Entertainment - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the CanaryMod Team nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL CANARYMOD TEAM OR ITS CONTRIBUTORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Any source code from the Minecraft Server is not owned by CanaryMod Team, PlayBlack, - Visual Illusions Entertainment, or its contributors and is not covered by above license. - Usage of source code from the Minecraft Server is subject to the Minecraft End User License Agreement - as set forth by Mojang AB. - The Minecraft EULA can be viewed at https://account.mojang.com/documents/minecraft_eula - CanaryMod Team, PlayBlack, Visual Illusions Entertainment, CanaryLib, CanaryMod, - and its contributors are NOT affiliated with, endorsed, or sponsored by Mojang AB, makers of Minecraft. - "Minecraft" is a trademark of Notch Development AB - "CanaryMod" name is used with permission from FallenMoonNetwork. - - - - - - scm:git:git://github.com/CanaryModTeam/CanaryLib.git - https://github.com/CanaryModTeam/CanaryLib - scm:git:git@github.com:CanaryModTeam/CanaryLib.git - - - - https://github.com/CanaryModTeam/CanaryLib/issues - GitHub - - - - Jenkins - http://ci.visualillusionsent.net/job/CanaryLib/ - - - - - vi-repo - Visual Illusions Repository - http://repo.visualillusionsent.net/repository/internal/ - - - vi-repo - Visual Illusions Repository - http://repo.visualillusionsent.net/repository/snapshots/ - - - - - vi-repo - Visual Illusions Repository - http://repo.visualillusionsent.net/repository/internal/ - - - vi-snapshots - Visual Illusions Snapshots Repository - http://repo.visualillusionsent.net/repository/snapshots/ - - - mojang - Minecraft Libraries - https://libraries.minecraft.net - - - mcstats - mcstats.org releases - http://repo.mcstats.org/content/repositories/releases/ - - - mcstats.snapshots - MCStats Repository - http://repo.mcstats.org/content/repositories/snapshots/ - - - - - - - net.visualillusionsent - viutils - ${viutils} - compile - - - org.jdom - jdom2 - ${jdom} - compile - - - com.mchange - c3p0 - ${c3p0} - compile - - - org.apache.logging.log4j - log4j-api - ${log4j} - compile - - - com.google.guava - guava - ${guava} - compile - - - com.mojang - authlib - ${authlib} - compile - - - com.googlecode.json-simple - json-simple - ${jsonSimple} - compile - - - org.mcstats.standalone - metrics - ${metrics} - compile - - - - org.xerial - sqlite-jdbc - ${sqlite} - runtime - - - mysql - mysql-connector-java - ${mysql} - runtime - - - - junit - junit - ${junit} - test - - - - - clean install - - ${project.name}-${project.version}${build.number} - - - - - org.apache.maven.plugins - maven-compiler-plugin - 2.3.2 - - 1.6 - 1.6 - - - - compile - - compile - - - - - - - org.apache.maven.plugins - maven-shade-plugin - 2.0 - - - package - - shade - - - true - shaded - - - - - - - *:* - - META-INF/*.SF - META-INF/*.DSA - META-INF/*.RSA - - - - - - - org.mcstats - net.canarymod.metrics - - - - - - - org.apache.maven.plugins - maven-jar-plugin - 2.3.1 - - - true - - true - true - - - - - - - org.apache.maven.plugins - maven-release-plugin - 2.2.2 - - jar:jar - jar:jar - @{project.version} - - - - - - - - attach-sources-javadoc - - - - - org.apache.maven.plugins - maven-source-plugin - 2.2.1 - - - attach-sources - - jar - - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - 2.7 - - true - ${project.name} ${project.version} -
Generated: ${maven.build.timestamp}
-
- BSD 3-Clause License]]>
- - http://docs.visualillusionsent.net/VIUtils/1.4.0/ - http://www.jdom.org/docs/apidocs/ - - - - - PluginDev - a - PluginDev: - - -
- - - attach-javadocs - - jar - - - -
-
-
-
- - - jenkins - - - BUILD_NUMBER - - - - -${BUILD_NUMBER} - - -
-
diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 00000000..ae239c6c --- /dev/null +++ b/settings.gradle @@ -0,0 +1,2 @@ +rootProject.name = name + diff --git a/src/main/java/net/canarymod/Canary.java b/src/main/java/net/canarymod/Canary.java index 071aa89b..d031d382 100644 --- a/src/main/java/net/canarymod/Canary.java +++ b/src/main/java/net/canarymod/Canary.java @@ -1,6 +1,6 @@ package net.canarymod; -import com.google.common.base.Objects; +import com.google.common.base.MoreObjects; import net.canarymod.api.Server; import net.canarymod.api.entity.living.humanoid.Player; import net.canarymod.api.factory.Factory; @@ -14,7 +14,6 @@ import net.canarymod.help.HelpManager; import net.canarymod.hook.HookExecutor; import net.canarymod.kit.KitProvider; -import net.canarymod.logger.Logman; import net.canarymod.metrics.CanaryMetrics; import net.canarymod.motd.MessageOfTheDay; import net.canarymod.permissionsystem.PermissionManager; @@ -31,6 +30,8 @@ import net.canarymod.util.JsonNBTUtility; import net.canarymod.warp.WarpProvider; import net.visualillusionsent.utils.JarUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.File; import java.io.IOException; @@ -47,7 +48,7 @@ * @author Jason (darkdiplomat) */ public abstract class Canary implements TaskOwner { - public final static Logman log; + public final static Logger log; private static boolean latePluginsLoaded, earlyPluginsLoaded; private static String jarPath; private static CanaryMetrics metrics; @@ -80,7 +81,7 @@ public abstract class Canary implements TaskOwner { static { System.out.println("Please wait while the libraries initialize..."); - log = Logman.getLogman(getImplementationTitle()); + log = LoggerFactory.getLogger(getImplementationTitle()); try { PluginLifecycleFactory.registerLifecycle("java", JavaPluginLifecycle.class); @@ -425,7 +426,7 @@ public void reload() { * @return specification title */ public static String getSpecificationTitle() { - return Objects.firstNonNull(Canary.class.getPackage().getSpecificationTitle(), "CanaryLib"); + return MoreObjects.firstNonNull(Canary.class.getPackage().getSpecificationTitle(), "CanaryLib"); } /** @@ -434,7 +435,7 @@ public static String getSpecificationTitle() { * @return specification version */ public static String getSpecificationVersion() { - return Objects.firstNonNull(Canary.class.getPackage().getSpecificationVersion(), "dev"); + return MoreObjects.firstNonNull(Canary.class.getPackage().getSpecificationVersion(), "dev"); } /** @@ -443,7 +444,7 @@ public static String getSpecificationVersion() { * @return implementation title */ public static String getImplementationTitle() { - return Objects.firstNonNull(Canary.class.getPackage().getImplementationTitle(), "CanaryMod"); + return MoreObjects.firstNonNull(Canary.class.getPackage().getImplementationTitle(), "CanaryMod"); } /** @@ -452,7 +453,7 @@ public static String getImplementationTitle() { * @return implementation version */ public static String getImplementationVersion() { - return Objects.firstNonNull(Canary.class.getPackage().getImplementationVersion(), "dev"); + return MoreObjects.firstNonNull(Canary.class.getPackage().getImplementationVersion(), "dev"); } public static long getBuildNumber() { diff --git a/src/main/java/net/canarymod/api/attributes/GenericAttribute.java b/src/main/java/net/canarymod/api/attributes/GenericAttribute.java index 4cb13794..c2c1e0b0 100644 --- a/src/main/java/net/canarymod/api/attributes/GenericAttribute.java +++ b/src/main/java/net/canarymod/api/attributes/GenericAttribute.java @@ -14,6 +14,9 @@ public enum GenericAttribute { MOVEMENTSPEED("generic.movementSpeed"), ATTACKDAMAGE("generic.attackDamage"), KNOCKBACKRESIST("generic.knockbackResistance"), + ARMOR("generic.armor"), + ATTACKSPEED("generic.attackSpeed"), + LUCK("generic.luck"), ; private final String nmsName; @@ -29,5 +32,4 @@ public Attribute getAttribute() { public String getNativeName() { return this.nmsName; } - } diff --git a/src/main/java/net/canarymod/api/entity/Arrow.java b/src/main/java/net/canarymod/api/entity/Arrow.java index c9589e5b..b8b52a74 100644 --- a/src/main/java/net/canarymod/api/entity/Arrow.java +++ b/src/main/java/net/canarymod/api/entity/Arrow.java @@ -7,6 +7,19 @@ */ public interface Arrow extends Entity, Projectile { + enum ArrowType { + NORMAL, + SPECTRAL, + TIPPED + } + + /** + * Gets the type of this Arrow. Currently either NORMAL, SPECTRAL or TIPPED + * + * @return the type + */ + ArrowType getArrowType(); + /** * Returns true if this Arrow can be retrieved by a Player * diff --git a/src/main/java/net/canarymod/api/entity/EntityType.java b/src/main/java/net/canarymod/api/entity/EntityType.java index a7c9ed93..f1407460 100644 --- a/src/main/java/net/canarymod/api/entity/EntityType.java +++ b/src/main/java/net/canarymod/api/entity/EntityType.java @@ -68,9 +68,11 @@ public enum EntityType { PIG(90, GENERIC_ANIMAL), PIGZOMBIE(57, GENERIC_MOB), PLAYER(48, GENERIC_LIVING), + POLARBEAR(102, GENERIC_ANIMAL), POTION(16, GENERIC_THROWABLE), PRIEST(120, GENERIC_LIVING), SHEEP(91, GENERIC_ANIMAL), + SHULKER(68, GENERIC_MOB), SILVERFISH(60, GENERIC_MOB), SKELETON(51, GENERIC_MOB), SKELETONHORSE(100, GENERIC_ANIMAL), @@ -97,7 +99,7 @@ public enum EntityType { private final short id; private EntityType subtype; - private EntityType(int id, EntityType subtype) { + EntityType(int id, EntityType subtype) { this.id = (short)id; this.subtype = subtype; } diff --git a/src/main/java/net/canarymod/api/entity/TippedArrow.java b/src/main/java/net/canarymod/api/entity/TippedArrow.java new file mode 100644 index 00000000..11d3ce75 --- /dev/null +++ b/src/main/java/net/canarymod/api/entity/TippedArrow.java @@ -0,0 +1,35 @@ +package net.canarymod.api.entity; + +import net.canarymod.api.potion.PotionEffect; +import net.canarymod.api.potion.PotionType; + +import java.util.Set; + +/** + * Tipped Arrow wrapper + * + * @author Jamie Mansfield (jamierocks) + */ +public interface TippedArrow extends Arrow { + + /** + * Gets the type of potion used by this Arrow + * + * @return the potion type + */ + PotionType getPotionType(); + + /** + * Gets the potion effects applied to this Arrow + * + * @return the potion effects + */ + Set getPotionEffects(); + + /** + * Applies the specified potion effects to this Arrow + * + * @param potionEffects the potion effect(s) to apply + */ + void addPotionEffects(PotionEffect... potionEffects); +} diff --git a/src/main/java/net/canarymod/api/entity/living/animal/PolarBear.java b/src/main/java/net/canarymod/api/entity/living/animal/PolarBear.java new file mode 100644 index 00000000..59bb99d9 --- /dev/null +++ b/src/main/java/net/canarymod/api/entity/living/animal/PolarBear.java @@ -0,0 +1,10 @@ +package net.canarymod.api.entity.living.animal; + +/** + * Polar Bear Wrapper + * + * @author Jamie Mansfield (jamierocks) + */ +public interface PolarBear extends EntityAnimal { + +} diff --git a/src/main/java/net/canarymod/api/entity/living/humanoid/npc/NPCBehaviorRegistry.java b/src/main/java/net/canarymod/api/entity/living/humanoid/npc/NPCBehaviorRegistry.java index 59001473..2f724417 100644 --- a/src/main/java/net/canarymod/api/entity/living/humanoid/npc/NPCBehaviorRegistry.java +++ b/src/main/java/net/canarymod/api/entity/living/humanoid/npc/NPCBehaviorRegistry.java @@ -1,5 +1,7 @@ package net.canarymod.api.entity.living.humanoid.npc; +import static net.canarymod.Canary.log; + import com.google.common.collect.ArrayListMultimap; import net.canarymod.ToolBox; import net.canarymod.api.entity.living.humanoid.NonPlayableCharacter; @@ -10,8 +12,6 @@ import java.util.Iterator; import java.util.List; -import static net.canarymod.Canary.log; - /** * @author Jason (darkdiplomat) */ @@ -21,7 +21,7 @@ public final class NPCBehaviorRegistry { /** * Registers a new {@link net.canarymod.api.entity.living.humanoid.npc.NPCBehaviorListener} * - * @param listner + * @param listener * the {@link net.canarymod.api.entity.living.humanoid.npc.NPCBehaviorListener} to be added * @param npc * the {@link net.canarymod.api.entity.living.humanoid.NonPlayableCharacter} associated with the listener @@ -167,7 +167,7 @@ public static void execute(NonPlayableCharacter npc, NPCAI npcai) { listener.execute(npcai); } catch (NPCAIExcutionException npcaieex) { - log.error(npcaieex.getCause()); + log.error("Failed to execute NPC AI", npcaieex); } } } diff --git a/src/main/java/net/canarymod/api/entity/living/monster/Shulker.java b/src/main/java/net/canarymod/api/entity/living/monster/Shulker.java new file mode 100644 index 00000000..3896dd8a --- /dev/null +++ b/src/main/java/net/canarymod/api/entity/living/monster/Shulker.java @@ -0,0 +1,12 @@ +package net.canarymod.api.entity.living.monster; + +import net.canarymod.api.entity.living.Golem; + +/** + * Shulker wrapper + * + * @author Jamie Mansfield (jamierocks) + */ +public interface Shulker extends EntityMob, Golem { + +} diff --git a/src/main/java/net/canarymod/api/inventory/Enchantment.java b/src/main/java/net/canarymod/api/inventory/Enchantment.java index 6de979e7..a49de7e8 100644 --- a/src/main/java/net/canarymod/api/inventory/Enchantment.java +++ b/src/main/java/net/canarymod/api/inventory/Enchantment.java @@ -39,6 +39,8 @@ enum Type { // DepthStrider(8), // + FrostWalker(9), + // Sharpness(16), // Smite(17), @@ -71,6 +73,7 @@ enum Type { // Lure(62), // + Mending(70), ; diff --git a/src/main/java/net/canarymod/api/inventory/PlayerInventory.java b/src/main/java/net/canarymod/api/inventory/PlayerInventory.java index 979223fc..bcffdfa7 100644 --- a/src/main/java/net/canarymod/api/inventory/PlayerInventory.java +++ b/src/main/java/net/canarymod/api/inventory/PlayerInventory.java @@ -81,6 +81,13 @@ public interface PlayerInventory extends Inventory { */ Item getItemInHand(); + /** + * Gets the current {@link Item} in offhand + * + * @return the {@link Item} in offhand + */ + Item getItemInOffhand(); + /** * Gets the current {@link Item} on the cursor * diff --git a/src/main/java/net/canarymod/api/potion/PotionEffectType.java b/src/main/java/net/canarymod/api/potion/PotionEffectType.java index 7f033814..e3eb3e75 100644 --- a/src/main/java/net/canarymod/api/potion/PotionEffectType.java +++ b/src/main/java/net/canarymod/api/potion/PotionEffectType.java @@ -53,6 +53,15 @@ public enum PotionEffectType { // SATURATION(23), // + GLOWING(24), + // + LEVITATION(25), + // + LUCK(26), + // + BADLUCK(27), + // + ; private final int id; diff --git a/src/main/java/net/canarymod/api/scoreboard/CriteriaType.java b/src/main/java/net/canarymod/api/scoreboard/CriteriaType.java index cf0baecf..d7f7601b 100644 --- a/src/main/java/net/canarymod/api/scoreboard/CriteriaType.java +++ b/src/main/java/net/canarymod/api/scoreboard/CriteriaType.java @@ -12,7 +12,13 @@ public enum CriteriaType { DEATH_COUNT("deathCount"), PLAYER_KILL_COUNT("playerKillCount"), TOTAL_KILL_COUNT("totalKillCount"), - HEALTH("health"); + HEALTH("health"), + FOOD("food"), + AIR("air"), + ARMOR("armor"), + XP("xp"), + LEVEL("level"), + ; private String protocol; diff --git a/src/main/java/net/canarymod/api/statistics/Statistics.java b/src/main/java/net/canarymod/api/statistics/Statistics.java index d0309869..a5e387c9 100644 --- a/src/main/java/net/canarymod/api/statistics/Statistics.java +++ b/src/main/java/net/canarymod/api/statistics/Statistics.java @@ -38,12 +38,34 @@ public enum Statistics { JUNKFISHED("junkFished"), TREASUREFISHED("treasureFished"), TALKEDTOVILLAGER("talkedToVillager"), - TRADEDWITHVILLAGER("tradedWithVillager"),; + TRADEDWITHVILLAGER("tradedWithVillager"), + CAKESLICESEATEN("cakeSlicesEaten"), + CAULDRONFILLED("cauldronFilled"), + CAULDRONUSED("cauldronUsed"), + ARMORCLEANED("armorCleaned"), + BANNERCLEANED("bannerCleaned"), + BREWINGSTANDINTERACTION("brewingstandInteraction"), + BEACONINTERACTION("beaconInteraction"), + DROPPERINSPECTED("dropperInspected"), + HOPPERINSPECTED("hopperInspected"), + DISPENSERINSPECTED("dispenserInspected"), + NOTEBLOCKPLAYED("noteblockPlayed"), + NOTEBLOCKTUNED("noteblockTuned"), + FLOWERPOTTED("flowerPotted"), + TRAPPEDCHESTTRIGGERED("trappedChestTriggered"), + ENDERCHESTOPENED("enderchestOpened"), + ITEMENCHANTED("itemEnchanted"), + RECORDPLAYED("recordPlayed"), + FURNACEINTERACTION("furnaceInteraction"), + CRAFTINGTABLEINTERACTION("craftingTableInteraction"), + CHESTOPENED("chestOpened"), + SLEEPINBED("sleepInBed"), + ; private final String nmsName; private final static HashMap statisticsHashMap = Maps.newHashMap(); - private Statistics(String nmsName) { + Statistics(String nmsName) { this.nmsName = "stat.".concat(nmsName); } diff --git a/src/main/java/net/canarymod/api/world/TreeType.java b/src/main/java/net/canarymod/api/world/TreeType.java index dcc04066..3a6c2aab 100644 --- a/src/main/java/net/canarymod/api/world/TreeType.java +++ b/src/main/java/net/canarymod/api/world/TreeType.java @@ -20,6 +20,7 @@ public enum TreeType { JUNGLEBUSH, MEGAJUNGLE, ACACIA, + CHORUSPLANT, /* I know, these technically aren't trees, but the Bukkit API has them and people will complain if these are here... */ REDMUSHROOM, diff --git a/src/main/java/net/canarymod/api/world/blocks/BlockType.java b/src/main/java/net/canarymod/api/world/blocks/BlockType.java index eeac2862..4b9a06bd 100644 --- a/src/main/java/net/canarymod/api/world/blocks/BlockType.java +++ b/src/main/java/net/canarymod/api/world/blocks/BlockType.java @@ -684,6 +684,28 @@ public final class BlockType { public static final BlockType JungleDoor = new BlockType(195, 0, "minecraft:jungle_door"); public static final BlockType AcaciaDoor = new BlockType(196, 0, "minecraft:acacia_door"); public static final BlockType DarkOakDoor = new BlockType(197, 0, "minecraft:dark_oak_door"); + public static final BlockType EndRod = new BlockType(198, 0, "minecraft:end_rod"); + public static final BlockType ChrousPlant = new BlockType(199, 0, "minecraft:chrous_plant"); + public static final BlockType ChorusFlower = new BlockType(200, 0, "minecraft:chorus_flower"); + public static final BlockType PurpurBlock = new BlockType(201, 0, "minecraft:purpur_block"); + public static final BlockType PurpurPillar = new BlockType(202, 0, "minecraft:purpur_pillar"); + public static final BlockType PurpurStairs = new BlockType(203, 0, "minecraft:purpur_stairs"); + public static final BlockType PurpurDoubleSlab = new BlockType(204, 0, "minecraft:purpur_double_slab"); + public static final BlockType PurpurSlab = new BlockType(205, 0, "minecraft:purpur_slab"); + public static final BlockType EndStoneBricks = new BlockType(206, 0, "minecraft:end_bricks"); + public static final BlockType BeetrootSeeds = new BlockType(207, 0, "minecraft:beetroot"); + public static final BlockType GrassPath = new BlockType(208, 0, "minecraft:grass_path"); + public static final BlockType EndGateway = new BlockType(209, 0, "minecraft:end_gateway"); + public static final BlockType RepeatingCommandBlock = new BlockType(210, 0, "minecraft:repeating_command_block"); + public static final BlockType ChainCommandBlock = new BlockType(211, 0, "minecraft:chain_command_block"); + public static final BlockType FrostedIce = new BlockType(212, 0, "minecraft:frosted_ice"); + public static final BlockType Magma = new BlockType(213, 0, "minecraft:magma"); + public static final BlockType NetherWartBlock = new BlockType(214, 0, "minecraft:nether_wart_block"); + public static final BlockType RedNetherBrick = new BlockType(215, 0, "minecraft:red_nether_brick"); + public static final BlockType BoneBlock = new BlockType(216, 0, "minecraft:bone_block"); + public static final BlockType StructureVoid = new BlockType(217, 0, "minecraft:structure_void"); + + public static final BlockType StructureBlock = new BlockType(255, 0, "minecraft:structure_block"); private static HashMap> blockTypes; private static HashMap> blocksByIdAndData; diff --git a/src/main/java/net/canarymod/api/world/effects/Particle.java b/src/main/java/net/canarymod/api/world/effects/Particle.java index 69573f26..8141dc4c 100644 --- a/src/main/java/net/canarymod/api/world/effects/Particle.java +++ b/src/main/java/net/canarymod/api/world/effects/Particle.java @@ -49,7 +49,12 @@ public enum Type { BLOCK_DUST("blockdust_"), WATER_DROP("droplet"), ITEM_TAKE("take"), - MOB_APPEARANCE("mobappearance"),; + MOB_APPEARANCE("mobappearance"), + DRAGON_BREATH("dragonbreath"), + END_ROD("endRod"), + DAMAGE_INDICATOR("damageIndicator"), + SWEEP_ATTACK("sweepAttack"), + ; private String mcName; diff --git a/src/main/java/net/canarymod/api/world/effects/SoundEffect.java b/src/main/java/net/canarymod/api/world/effects/SoundEffect.java index 9b8600f6..70d7b478 100644 --- a/src/main/java/net/canarymod/api/world/effects/SoundEffect.java +++ b/src/main/java/net/canarymod/api/world/effects/SoundEffect.java @@ -13,326 +13,468 @@ public class SoundEffect { * @author Jason (darkdiplomat) */ public enum Type { - AMBIENCE_CAVE("ambient.cave.cave"), - // - AMBIENCE_RAIN("ambient.weather.rain"), - // - AMBIENCE_THUNDER("ambient.weather.thunder"), - // - ANVIL_BREAK("random.anvil_break"), - // - ANVIL_LAND("random.anvil_land"), - // - ANVIL_USE("random.anvil_use"), - // - BOW("random.bow"), - // - BOW_HIT("random.bowhit"), - // - BREATH("random.breath"), - // - BURP("random.burp"), - // - CHEST_CLOSED("random.chestclosed"), - // - CHEST_OPEN("random.chestopen"), - // - CLICK("random.click"), - // - DOOR_CLOSE("random.door_close"), - // - DOOR_OPEN("random.door_open"), - // - DRINK("random.drink"), - // - EAT("random.eat"), - // - EXPLODE("random.explode"), - // - FALL_BIG("damage.fallbig"), - // - FALL_SMALL("damage.fallsmall"), - // - FIRE("fire.fire"), - // - FIRE_IGNITE("fire.ignite"), - // - FIZZ("random.fizz"), - // - FUSE("random.fuse"), - // - GLASS("random.glass"), - // - HURT("random.classic_hurt"), - // - HURT_FLESH("damage.hit"), - // - ITEM_BREAK("random.break"), - // - ITEM_PICKUP("random.pop"), - // - LAVA("liquid.lava"), - // - LAVA_POP("liquid.lavapop"), - // - LEVEL_UP("random.levelup"), - // - LIQUID_SPLASH("liquid.splash"), - // - MINECART_BASE("minecart.base"), - // - MINECART_INSIDE("minecart.inside"), - // - NOTE_BASS("note.bass"), - // - NOTE_PIANO("note.harp"), - // - NOTE_BASS_DRUM("note.bd"), - // - NOTE_HAT("note.hat"), - // - NOTE_BASS_ATTACK("note.bassattack"), - // - NOTE_SNARE("note.snare"), - // - NOTE_PLING("note.pling"), - // - ORB("random.orb"), - // - PISTON_OUT("tile.piston.out"), - // - PISTON_IN("tile.piston.in"), - // - PORTAL("portal.portal"), - // - PORTAL_TRAVEL("portal.travel"), - // - PORTAL_TRIGGER("portal.trigger"), - // - SPLASH("random.splash"), - // - STEP_GRASS("step.grass"), - // - STEP_GRAVEL("step.gravel"), - // - STEP_LADDER("step.ladder"), - // - STEP_SAND("step.sand"), - // - STEP_SNOW("step.snow"), - // - STEP_STONE("step.stone"), - // - STEP_WOOD("step.wood"), - // - STEP_WOOL("step.cloth"), - // - SWIM("liquid.swim"), - // - WATER("liquid.water"), - // - WOOD_CLICK("random.wood click"), - // - // Das Mob sounds - BAT_DEATH("mob.bat.death"), - // - BAT_HURT("mob.bat.hurt"), - // - BAT_IDLE("mob.bat.idle"), - // - BAT_LOOP("mob.bat.loop"), - // - BAT_TAKEOFF("mob.bat.takeoff"), - // - BLAZE_BREATH("mob.blaze.breath"), - // - BLAZE_DEATH("mob.blaze.death"), - // - BLAZE_HIT("mob.blaze.hit"), - // - CAT_HISS("mob.cat.hiss"), - // - CAT_HIT("mob.cat.hitt"), - // - CAT_MEOW("mob.cat.meow"), - // - CAT_PURR("mob.cat.purr"), - // - CAT_PURREOW("mob.cat.purreow"), - // - CHICKEN_HURT("mob.chicken.hurt"), - // - CHICKEN_PLOP("mob.chicken.plop"), - // - CHICKEN_SAY("mob.chicken.say"), - // - CHICKEN_STEP("mob.chicken.step"), - // - COW_SAY("mob.cow.say"), - // - COW_HURT("mob.cow.hurt"), - // - COW_STEP("mob.cow.step"), - // - CREEPER_DEATH("mob.creeper.death"), - // - CREEPER_SAY("mob.creeper.say"), - // - ENDERDRAGON_END("mob.enderdragon.end"), - // - ENDERDRAGON_GROWL("mob.enderdragon.growl"), - // - ENDERDRAGON_HIT("mob.enderdragon.hit"), - // - ENDERDRAGON_WINGS("mob.enderdragon.wings"), - // - ENDERMAN_DEATH("mob.endermen.death"), - // - ENDERMAN_HIT("mob.endermen.hit"), - // - ENDERMAN_IDLE("mob.endermen.idle"), - // - ENDERMAN_PORTAL("mob.endermen.portal"), - // - ENDERMAN_SCREAM("mob.endermen.scream"), - // - ENDERMAN_STARE("mob.endermen.stare"), - // - GHAST_SCREAM("mob.ghast.scream"), - // - GHAST_AFFECTIONATE_SCREAM("mob.ghast.affectionate scream"), - // - GHAST_CHARGE("mob.ghast.charge"), - // - GHAST_DEATH("mob.ghast.death"), - // - GHAST_FIREBALL("mob.ghast.fireball"), - // - GHAST_MOAN("mob.ghast.moan"), - // - IRONGOLEM_DEATH("mob.irongolem.death"), - // - IRONGOLEM_HIT("mob.irongolem.hit"), - // - IRONGOLEM_THROW("mob.irongolem.throw"), - // - IRONGOLEM_WALK("mob.irongolem.walk"), - // - MAGMACUBE_BIG("mob.magmacube.big"), - // - MAGMACUBE_JUMP("mob.magmacube.jump"), - // - MAGMACUBE_SMALL("mob.magmacube.small"), - // - PIG_DEATH("mob.pig.death"), - // - PIG_SAY("mob.pig.say"), - // - PIG_STEP("mob.pig.step"), - // - SHEEP_SAY("mob.sheep.say"), - // - SHEEP_SHEAR("mob.sheep.shear"), - // - SHEEP_STEP("mob.sheep.step"), - // - SILVERFISH_HIT("mob.silverfish.hit"), - // - SILVERFISH_KIL("mob.silverfish.kill"), - // - SILVERFISH_SAY("mob.silverfish.say"), - // - SILVERFISH_STEP("mob.silverfish.step"), - // - SKELETON_DEATH("mob.skeleton.death"), - // - SKELETON_HURT("mob.skeleton.hurt"), - // - SKELETON_SAY("mob.skeleton.say"), - // - SKELETON_STEP("mob.skeleton.step"), - // - SLIME_ATTACK("mob.slime.attack"), - // - SLIME_BIG("mob.slime.big"), - // - SLIME_SMALL("mob.slime.small"), - // - SPIDER_DEATH("mob.spider.death"), - // - SPIDER_SAY("mob.spider.say"), - // - SPIDER_STEP("mob.spider.step"), - // - WITHER_DEATH("mob.wither.death"), - // - WITHER_HURT("mob.wither.hurt"), - // - WITHER_IDLE("mob.wither.idle"), - // - WITHER_SHOOT("mob.wither.shoot"), - // - WITHER_SPAWN("mob.wither.spawn"), - // - WOLF_BARK("mob.wolf.bark"), - // - WOLF_DEATH("mob.wolf.death"), - // - WOLF_GROWL("mob.wolf.growl"), - // - WOLF_HOWL("mob.wolf.howl"), - // - WOLF_HURT("mob.wolf.hurt"), - // - WOLF_PANT("mob.wolf.panting"), - // - WOLF_SHAKE("mob.wolf.shake"), - // - WOLF_STEP("mob.wolf.step"), - // - WOLF_WHINE("mob.wolf.whine"), - // - ZOMBIE_METAL("mob.zombie.metal"), - // - ZOMBIE_WOOD("mob.zombie.wood"), - // - ZOMBIE_WOODBREAK("mob.zombie.woodbreak"), - // - ZOMBIE_SAY("mob.zombie.say"), - // - ZOMBIE_DEATH("mob.zombie.death"), - // - ZOMBIE_HURT("mob.zombie.hurt"), - // - ZOMBIE_INFECT("mob.zombie.infect"), - // - ZOMBIE_UNFECT("mob.zombie.unfect"), - // - ZOMBIE_REMEDY("mob.zombie.remedy"), - // - ZOMBIE_PIG_IDLE("mob.zombiepig.zpig"), - // - ZOMBIE_PIG_ANGRY("mob.zombiepig.zpigangry"), - // - ZOMBIE_PIG_DEATH("mob.zombiepig.zpigdeath"), - // - ZOMBIE_PIG_HURT("mob.zombiepig.zpighurt"), - // - // Digging Sounds - DIG_CLOTH("dig.cloth"), - // - DIG_GRASS("dig.grass"), - // - DIG_GRAVEL("dig.gravel"), - // - DIG_SAND("dig.sand"), - // - DIG_SNOW("dig.snow"), - // - DIG_STONE("dig.stone"), - // - DIG_WOOD("dig.wood"), - // + AMBIENT_CAVE("ambient.cave"), + BLOCK_ANVIL_BREAK("block.anvil.break"), + BLOCK_ANVIL_DESTROY("block.anvil.destroy"), + BLOCK_ANVIL_FALL("block.anvil.fall"), + BLOCK_ANVIL_HIT("block.anvil.hit"), + BLOCK_ANVIL_LAND("block.anvil.land"), + BLOCK_ANVIL_PLACE("block.anvil.place"), + BLOCK_ANVIL_STEP("block.anvil.step"), + BLOCK_ANVIL_USE("block.anvil.use"), + ENTITY_ARMORSTAND_BREAK("entity.armorstand.break"), + ENTITY_ARMORSTAND_FALL("entity.armorstand.fall"), + ENTITY_ARMORSTAND_HIT("entity.armorstand.hit"), + ENTITY_ARMORSTAND_PLACE("entity.armorstand.place"), + ITEM_ARMOR_EQUIP_CHAIN("item.armor.equip_chain"), + ITEM_ARMOR_EQUIP_DIAMOND("item.armor.equip_diamond"), + ITEM_ARMOR_EQUIP_GENERIC("item.armor.equip_generic"), + ITEM_ARMOR_EQUIP_GOLD("item.armor.equip_gold"), + ITEM_ARMOR_EQUIP_IRON("item.armor.equip_iron"), + ITEM_ARMOR_EQUIP_LEATHER("item.armor.equip_leather"), + ENTITY_ARROW_HIT("entity.arrow.hit"), + ENTITY_ARROW_HIT_PLAYER("entity.arrow.hit_player"), + ENTITY_ARROW_SHOOT("entity.arrow.shoot"), + ENTITY_BAT_AMBIENT("entity.bat.ambient"), + ENTITY_BAT_DEATH("entity.bat.death"), + ENTITY_BAT_HURT("entity.bat.hurt"), + ENTITY_BAT_LOOP("entity.bat.loop"), + ENTITY_BAT_TAKEOFF("entity.bat.takeoff"), + ENTITY_BLAZE_AMBIENT("entity.blaze.ambient"), + ENTITY_BLAZE_BURN("entity.blaze.burn"), + ENTITY_BLAZE_DEATH("entity.blaze.death"), + ENTITY_BLAZE_HURT("entity.blaze.hurt"), + ENTITY_BLAZE_SHOOT("entity.blaze.shoot"), + ENTITY_BOBBER_SPLASH("entity.bobber.splash"), + ENTITY_BOBBER_THROW("entity.bobber.throw"), + ITEM_BOTTLE_FILL("item.bottle.fill"), + ITEM_BOTTLE_FILL_DRAGONBREATH("item.bottle.fill_dragonbreath"), + BLOCK_BREWING_STAND_BREW("block.brewing_stand.brew"), + ITEM_BUCKET_EMPTY("item.bucket.empty"), + ITEM_BUCKET_EMPTY_LAVA("item.bucket.empty_lava"), + ITEM_BUCKET_FILL("item.bucket.fill"), + ITEM_BUCKET_FILL_LAVA("item.bucket.fill_lava"), + ENTITY_CAT_AMBIENT("entity.cat.ambient"), + ENTITY_CAT_DEATH("entity.cat.death"), + ENTITY_CAT_HISS("entity.cat.hiss"), + ENTITY_CAT_HURT("entity.cat.hurt"), + ENTITY_CAT_PURR("entity.cat.purr"), + ENTITY_CAT_PURREOW("entity.cat.purreow"), + BLOCK_CHEST_CLOSE("block.chest.close"), + BLOCK_CHEST_LOCKED("block.chest.locked"), + BLOCK_CHEST_OPEN("block.chest.open"), + ENTITY_CHICKEN_AMBIENT("entity.chicken.ambient"), + ENTITY_CHICKEN_DEATH("entity.chicken.death"), + ENTITY_CHICKEN_EGG("entity.chicken.egg"), + ENTITY_CHICKEN_HURT("entity.chicken.hurt"), + ENTITY_CHICKEN_STEP("entity.chicken.step"), + BLOCK_CHORUS_FLOWER_DEATH("block.chorus_flower.death"), + BLOCK_CHORUS_FLOWER_GROW("block.chorus_flower.grow"), + ITEM_CHORUS_FRUIT_TELEPORT("item.chorus_fruit.teleport"), + BLOCK_CLOTH_BREAK("block.cloth.break"), + BLOCK_CLOTH_FALL("block.cloth.fall"), + BLOCK_CLOTH_HIT("block.cloth.hit"), + BLOCK_CLOTH_PLACE("block.cloth.place"), + BLOCK_CLOTH_STEP("block.cloth.step"), + BLOCK_COMPARATOR_CLICK("block.comparator.click"), + ENTITY_COW_AMBIENT("entity.cow.ambient"), + ENTITY_COW_DEATH("entity.cow.death"), + ENTITY_COW_HURT("entity.cow.hurt"), + ENTITY_COW_MILK("entity.cow.milk"), + ENTITY_COW_STEP("entity.cow.step"), + ENTITY_CREEPER_DEATH("entity.creeper.death"), + ENTITY_CREEPER_HURT("entity.creeper.hurt"), + ENTITY_CREEPER_PRIMED("entity.creeper.primed"), + BLOCK_DISPENSER_DISPENSE("block.dispenser.dispense"), + BLOCK_DISPENSER_FAIL("block.dispenser.fail"), + BLOCK_DISPENSER_LAUNCH("block.dispenser.launch"), + BLOCK_ENCHANTMENT_TABLE_USE("block.enchantment_table.use"), + ENTITY_DONKEY_AMBIENT("entity.donkey.ambient"), + ENTITY_DONKEY_ANGRY("entity.donkey.angry"), + ENTITY_DONKEY_CHEST("entity.donkey.chest"), + ENTITY_DONKEY_DEATH("entity.donkey.death"), + ENTITY_DONKEY_HURT("entity.donkey.hurt"), + ENTITY_EGG_THROW("entity.egg.throw"), + ENTITY_ELDER_GUARDIAN_AMBIENT("entity.elder_guardian.ambient"), + ENTITY_ELDERGUARDIAN_AMBIENTLAND("entity.elder_guardian.ambient_land"), + ENTITY_ELDER_GUARDIAN_CURSE("entity.elder_guardian.curse"), + ENTITY_ELDER_GUARDIAN_DEATH("entity.elder_guardian.death"), + ENTITY_ELDER_GUARDIAN_DEATH_LAND("entity.elder_guardian.death_land"), + ENTITY_ELDER_GUARDIAN_HURT("entity.elder_guardian.hurt"), + ENTITY_ELDER_GUARDIAN_HURT_LAND("entity.elder_guardian.hurt_land"), + BLOCK_ENDERCHEST_CLOSE("block.enderchest.close"), + BLOCK_ENDERCHEST_OPEN("block.enderchest.open"), + ENTITY_ENDERDRAGON_AMBIENT("entity.enderdragon.ambient"), + ENTITY_ENDERDRAGON_DEATH("entity.enderdragon.death"), + ENTITY_ENDERDRAGON_FIREBALL_EPLD("entity.enderdragon_fireball.explode"), + ENTITY_ENDERDRAGON_FLAP("entity.enderdragon.flap"), + ENTITY_ENDERDRAGON_GROWL("entity.enderdragon.growl"), + ENTITY_ENDERDRAGON_HURT("entity.enderdragon.hurt"), + ENTITY_ENDERDRAGON_SHOOT("entity.enderdragon.shoot"), + ENTITY_ENDEREYE_LAUNCH("entity.endereye.launch"), + ENTITY_ENDERMEN_AMBIENT("entity.endermen.ambient"), + ENTITY_ENDERMEN_DEATH("entity.endermen.death"), + ENTITY_ENDERMEN_HURT("entity.endermen.hurt"), + ENTITY_ENDERMEN_SCREAM("entity.endermen.scream"), + ENTITY_ENDERMEN_STARE("entity.endermen.stare"), + ENTITY_ENDERMEN_TELEPORT("entity.endermen.teleport"), + ENTITY_ENDERMITE_AMBIENT("entity.endermite.ambient"), + ENTITY_ENDERMITE_DEATH("entity.endermite.death"), + ENTITY_ENDERMITE_HURT("entity.endermite.hurt"), + ENTITY_ENDERMITE_STEP("entity.endermite.step"), + ENTITY_ENDERPEARL_THROW("entity.enderpearl.throw"), + BLOCK_END_GATEWAY_SPAWN("block.end_gateway.spawn"), + ENTITY_EXPERIENCE_BOTTLE_THROW("entity.experience_bottle.throw"), + ENTITY_EXPERIENCE_ORB_PICKUP("entity.experience_orb.pickup"), + ENTITY_EXPERIENCE_ORB_TOUCH("entity.experience_orb.touch"), + BLOCK_FENCE_GATE_CLOSE("block.fence_gate.close"), + BLOCK_FENCE_GATE_OPEN("block.fence_gate.open"), + ITEM_FIRECHARGE_USE("item.firecharge.use"), + ENTITY_FIREWORK_BLAST("entity.firework.blast"), + ENTITY_FIREWORK_BLAST_FAR("entity.firework.blast_far"), + ENTITY_FIREWORK_LARGE_BLAST("entity.firework.large_blast"), + ENTITY_FIREWORK_LARGE_BLAST_FAR("entity.firework.large_blast_far"), + ENTITY_FIREWORK_LAUNCH("entity.firework.launch"), + ENTITY_FIREWORK_SHOOT("entity.firework.shoot"), + ENTITY_FIREWORK_TWINKLE("entity.firework.twinkle"), + ENTITY_FIREWORK_TWINKLE_FAR("entity.firework.twinkle_far"), + BLOCK_FIRE_AMBIENT("block.fire.ambient"), + BLOCK_FIRE_EXTINGUISH("block.fire.extinguish"), + ITEM_FLINTANDSTEEL_USE("item.flintandsteel.use"), + BLOCK_FURNACE_FIRE_CRACKLE("block.furnace.fire_crackle"), + ENTITY_GENERIC_BIG_FALL("entity.generic.big_fall"), + ENTITY_GENERIC_BURN("entity.generic.burn"), + ENTITY_GENERIC_DEATH("entity.generic.death"), + ENTITY_GENERIC_DRINK("entity.generic.drink"), + ENTITY_GENERIC_EAT("entity.generic.eat"), + ENTITY_GENERIC_EXPLODE("entity.generic.explode"), + ENTITY_GENERIC_EXTINGUISH_FIRE("entity.generic.extinguish_fire"), + ENTITY_GENERIC_HURT("entity.generic.hurt"), + ENTITY_GENERIC_SMALL_FALL("entity.generic.small_fall"), + ENTITY_GENERIC_SPLASH("entity.generic.splash"), + ENTITY_GENERIC_SWIM("entity.generic.swim"), + ENTITY_GHAST_AMBIENT("entity.ghast.ambient"), + ENTITY_GHAST_DEATH("entity.ghast.death"), + ENTITY_GHAST_HURT("entity.ghast.hurt"), + ENTITY_GHAST_SCREAM("entity.ghast.scream"), + ENTITY_GHAST_SHOOT("entity.ghast.shoot"), + ENTITY_GHAST_WARN("entity.ghast.warn"), + BLOCK_GLASS_BREAK("block.glass.break"), + BLOCK_GLASS_FALL("block.glass.fall"), + BLOCK_GLASS_HIT("block.glass.hit"), + BLOCK_GLASS_PLACE("block.glass.place"), + BLOCK_GLASS_STEP("block.glass.step"), + BLOCK_GRASS_BREAK("block.grass.break"), + BLOCK_GRASS_FALL("block.grass.fall"), + BLOCK_GRASS_HIT("block.grass.hit"), + BLOCK_GRASS_PLACE("block.grass.place"), + BLOCK_GRASS_STEP("block.grass.step"), + BLOCK_GRAVEL_BREAK("block.gravel.break"), + BLOCK_GRAVEL_FALL("block.gravel.fall"), + BLOCK_GRAVEL_HIT("block.gravel.hit"), + BLOCK_GRAVEL_PLACE("block.gravel.place"), + BLOCK_GRAVEL_STEP("block.gravel.step"), + ENTITY_GUARDIAN_AMBIENT("entity.guardian.ambient"), + ENTITY_GUARDIAN_AMBIENT_LAND("entity.guardian.ambient_land"), + ENTITY_GUARDIAN_ATTACK("entity.guardian.attack"), + ENTITY_GUARDIAN_DEATH("entity.guardian.death"), + ENTITY_GUARDIAN_DEATH_LAND("entity.guardian.death_land"), + ENTITY_GUARDIAN_FLOP("entity.guardian.flop"), + ENTITY_GUARDIAN_HURT("entity.guardian.hurt"), + ENTITY_GUARDIAN_HURT_LAND("entity.guardian.hurt_land"), + ITEM_HOE_TILL("item.hoe.till"), + ENTITY_HORSE_AMBIENT("entity.horse.ambient"), + ENTITY_HORSE_ANGRY("entity.horse.angry"), + ENTITY_HORSE_ARMOR("entity.horse.armor"), + ENTITY_HORSE_BREATHE("entity.horse.breathe"), + ENTITY_HORSE_DEATH("entity.horse.death"), + ENTITY_HORSE_EAT("entity.horse.eat"), + ENTITY_HORSE_GALLOP("entity.horse.gallop"), + ENTITY_HORSE_HURT("entity.horse.hurt"), + ENTITY_HORSE_JUMP("entity.horse.jump"), + ENTITY_HORSE_LAND("entity.horse.land"), + ENTITY_HORSE_SADDLE("entity.horse.saddle"), + ENTITY_HORSE_STEP("entity.horse.step"), + ENTITY_HORSE_STEP_WOOD("entity.horse.step_wood"), + ENTITY_HOSTILE_BIG_FALL("entity.hostile.big_fall"), + ENTITY_HOSTILE_DEATH("entity.hostile.death"), + ENTITY_HOSTILE_HURT("entity.hostile.hurt"), + ENTITY_HOSTILE_SMALL_FALL("entity.hostile.small_fall"), + ENTITY_HOSTILE_SPLASH("entity.hostile.splash"), + ENTITY_HOSTILE_SWIM("entity.hostile.swim"), + ENTITY_HUSK_AMBIENT("entity.husk.ambient"), + ENTITY_HUSK_DEATH("entity.husk.death"), + ENTITY_HUSK_HURT("entity.husk.hurt"), + ENTITY_HUSK_STEP("entity.husk.step"), + ENTITY_IRONGOLEM_ATTACK("entity.irongolem.attack"), + ENTITY_IRONGOLEM_DEATH("entity.irongolem.death"), + ENTITY_IRONGOLEM_HURT("entity.irongolem.hurt"), + ENTITY_IRONGOLEM_STEP("entity.irongolem.step"), + BLOCK_IRON_DOOR_CLOSE("block.iron_door.close"), + BLOCK_IRON_DOOR_OPEN("block.iron_door.open"), + BLOCK_IRON_TRAPDOOR_CLOSE("block.iron_trapdoor.close"), + BLOCK_IRON_TRAPDOOR_OPEN("block.iron_trapdoor.open"), + ENTITY_ITEMFRAME_ADD_ITEM("entity.itemframe.add_item"), + ENTITY_ITEMFRAME_BREAK("entity.itemframe.break"), + ENTITY_ITEMFRAME_PLACE("entity.itemframe.place"), + ENTITY_ITEMFRAME_REMOVE_ITEM("entity.itemframe.remove_item"), + ENTITY_ITEMFRAME_ROTATE_ITEM("entity.itemframe.rotate_item"), + ENTITY_ITEM_BREAK("entity.item.break"), + ENTITY_ITEM_PICKUP("entity.item.pickup"), + BLOCK_LADDER_BREAK("block.ladder.break"), + BLOCK_LADDER_FALL("block.ladder.fall"), + BLOCK_LADDER_HIT("block.ladder.hit"), + BLOCK_LADDER_PLACE("block.ladder.place"), + BLOCK_LADDER_STEP("block.ladder.step"), + BLOCK_LAVA_AMBIENT("block.lava.ambient"), + BLOCK_LAVA_EXTINGUISH("block.lava.extinguish"), + BLOCK_LAVA_POP("block.lava.pop"), + ENTITY_LEASHKNOT_BREAK("entity.leashknot.break"), + ENTITY_LEASHKNOT_PLACE("entity.leashknot.place"), + BLOCK_LEVER_CLICK("block.lever.click"), + ENTITY_LIGHTNING_IMPACT("entity.lightning.impact"), + ENTITY_LIGHTNING_THUNDER("entity.lightning.thunder"), + ENTITY_LINGERINGPOTION_THROW("entity.lingeringpotion.throw"), + ENTITY_MAGMACUBE_DEATH("entity.magmacube.death"), + ENTITY_MAGMACUBE_HURT("entity.magmacube.hurt"), + ENTITY_MAGMACUBE_JUMP("entity.magmacube.jump"), + ENTITY_MAGMACUBE_SQUISH("entity.magmacube.squish"), + BLOCK_METAL_BREAK("block.metal.break"), + BLOCK_METAL_FALL("block.metal.fall"), + BLOCK_METAL_HIT("block.metal.hit"), + BLOCK_METAL_PLACE("block.metal.place"), + BLOCK_METAL_PRESSPLATE_CLICK_OFF("block.metal_pressureplate.click_off"), + BLOCK_METAL_PRESSPLATE_CLICK_ON("block.metal_pressureplate.click_on"), + BLOCK_METAL_STEP("block.metal.step"), + ENTITY_MINECART_INSIDE("entity.minecart.inside"), + ENTITY_MINECART_RIDING("entity.minecart.riding"), + ENTITY_MOOSHROOM_SHEAR("entity.mooshroom.shear"), + ENTITY_MULE_AMBIENT("entity.mule.ambient"), + ENTITY_MULE_DEATH("entity.mule.death"), + ENTITY_MULE_HURT("entity.mule.hurt"), + MUSIC_CREATIVE("music.creative"), + MUSIC_CREDITS("music.credits"), + MUSIC_DRAGON("music.dragon"), + MUSIC_END("music.end"), + MUSIC_GAME("music.game"), + MUSIC_MENU("music.menu"), + MUSIC_NETHER("music.nether"), + BLOCK_NOTE_BASEDRUM("block.note.basedrum"), + BLOCK_NOTE_BASS("block.note.bass"), + BLOCK_NOTE_HARP("block.note.harp"), + BLOCK_NOTE_HAT("block.note.hat"), + BLOCK_NOTE_PLING("block.note.pling"), + BLOCK_NOTE_SNARE("block.note.snare"), + ENTITY_PAINTING_BREAK("entity.painting.break"), + ENTITY_PAINTING_PLACE("entity.painting.place"), + ENTITY_PIG_AMBIENT("entity.pig.ambient"), + ENTITY_PIG_DEATH("entity.pig.death"), + ENTITY_PIG_HURT("entity.pig.hurt"), + ENTITY_PIG_SADDLE("entity.pig.saddle"), + ENTITY_PIG_STEP("entity.pig.step"), + BLOCK_PISTON_CONTRACT("block.piston.contract"), + BLOCK_PISTON_EXTEND("block.piston.extend"), + ENTITY_PLAYER_ATTACK_CRIT("entity.player.attack.crit"), + ENTITY_PLAYER_ATTACK_KNOCKBACK("entity.player.attack.knockback"), + ENTITY_PLAYER_ATTACK_NODAMAGE("entity.player.attack.nodamage"), + ENTITY_PLAYER_ATTACK_STRONG("entity.player.attack.strong"), + ENTITY_PLAYER_ATTACK_SWEEP("entity.player.attack.sweep"), + ENTITY_PLAYER_ATTACK_WEAK("entity.player.attack.weak"), + ENTITY_PLAYER_BIG_FALL("entity.player.big_fall"), + ENTITY_PLAYER_BREATH("entity.player.breath"), + ENTITY_PLAYER_BURP("entity.player.burp"), + ENTITY_PLAYER_DEATH("entity.player.death"), + ENTITY_PLAYER_HURT("entity.player.hurt"), + ENTITY_PLAYER_LEVELUP("entity.player.levelup"), + ENTITY_PLAYER_SMALL_FALL("entity.player.small_fall"), + ENTITY_PLAYER_SPLASH("entity.player.splash"), + ENTITY_PLAYER_SWIM("entity.player.swim"), + ENTITY_POLAR_BEAR_AMBIENT("entity.polar_bear.ambient"), + ENTITY_POLAR_BEAR_BABY_AMBIENT("entity.polar_bear.baby_ambient"), + ENTITY_POLAR_BEAR_DEATH("entity.polar_bear.death"), + ENTITY_POLAR_BEAR_HURT("entity.polar_bear.hurt"), + ENTITY_POLAR_BEAR_STEP("entity.polar_bear.step"), + ENTITY_POLAR_BEAR_WARNING("entity.polar_bear.warning"), + BLOCK_PORTAL_AMBIENT("block.portal.ambient"), + BLOCK_PORTAL_TRAVEL("block.portal.travel"), + BLOCK_PORTAL_TRIGGER("block.portal.trigger"), + ENTITY_RABBIT_AMBIENT("entity.rabbit.ambient"), + ENTITY_RABBIT_ATTACK("entity.rabbit.attack"), + ENTITY_RABBIT_DEATH("entity.rabbit.death"), + ENTITY_RABBIT_HURT("entity.rabbit.hurt"), + ENTITY_RABBIT_JUMP("entity.rabbit.jump"), + RECORD_11("record.11"), + RECORD_13("record.13"), + RECORD_BLOCKS("record.blocks"), + RECORD_CAT("record.cat"), + RECORD_CHIRP("record.chirp"), + RECORD_FAR("record.far"), + RECORD_MALL("record.mall"), + RECORD_MELLOHI("record.mellohi"), + RECORD_STAL("record.stal"), + RECORD_STRAD("record.strad"), + RECORD_WAIT("record.wait"), + RECORD_WARD("record.ward"), + BLOCK_REDSTONE_TORCH_BURNOUT("block.redstone_torch.burnout"), + BLOCK_SAND_BREAK("block.sand.break"), + BLOCK_SAND_FALL("block.sand.fall"), + BLOCK_SAND_HIT("block.sand.hit"), + BLOCK_SAND_PLACE("block.sand.place"), + BLOCK_SAND_STEP("block.sand.step"), + ENTITY_SHEEP_AMBIENT("entity.sheep.ambient"), + ENTITY_SHEEP_DEATH("entity.sheep.death"), + ENTITY_SHEEP_HURT("entity.sheep.hurt"), + ENTITY_SHEEP_SHEAR("entity.sheep.shear"), + ENTITY_SHEEP_STEP("entity.sheep.step"), + ITEM_SHIELD_BLOCK("item.shield.block"), + ITEM_SHIELD_BREAK("item.shield.break"), + ITEM_SHOVEL_FLATTEN("item.shovel.flatten"), + ENTITY_SHULKER_AMBIENT("entity.shulker.ambient"), + ENTITY_SHULKER_BULLET_HIT("entity.shulker_bullet.hit"), + ENTITY_SHULKER_BULLET_HURT("entity.shulker_bullet.hurt"), + ENTITY_SHULKER_CLOSE("entity.shulker.close"), + ENTITY_SHULKER_DEATH("entity.shulker.death"), + ENTITY_SHULKER_HURT("entity.shulker.hurt"), + ENTITY_SHULKER_HURT_CLOSED("entity.shulker.hurt_closed"), + ENTITY_SHULKER_OPEN("entity.shulker.open"), + ENTITY_SHULKER_SHOOT("entity.shulker.shoot"), + ENTITY_SHULKER_TELEPORT("entity.shulker.teleport"), + ENTITY_SILVERFISH_AMBIENT("entity.silverfish.ambient"), + ENTITY_SILVERFISH_DEATH("entity.silverfish.death"), + ENTITY_SILVERFISH_HURT("entity.silverfish.hurt"), + ENTITY_SILVERFISH_STEP("entity.silverfish.step"), + ENTITY_SKELETON_AMBIENT("entity.skeleton.ambient"), + ENTITY_SKELETON_DEATH("entity.skeleton.death"), + ENTITY_SKELETON_HORSE_AMBIENT("entity.skeleton_horse.ambient"), + ENTITY_SKELETON_HORSE_DEATH("entity.skeleton_horse.death"), + ENTITY_SKELETON_HORSE_HURT("entity.skeleton_horse.hurt"), + ENTITY_SKELETON_HURT("entity.skeleton.hurt"), + ENTITY_SKELETON_SHOOT("entity.skeleton.shoot"), + ENTITY_SKELETON_STEP("entity.skeleton.step"), + ENTITY_SLIME_ATTACK("entity.slime.attack"), + BLOCK_SLIME_BREAK("block.slime.break"), + ENTITY_SLIME_DEATH("entity.slime.death"), + BLOCK_SLIME_FALL("block.slime.fall"), + BLOCK_SLIME_HIT("block.slime.hit"), + ENTITY_SLIME_HURT("entity.slime.hurt"), + ENTITY_SLIME_JUMP("entity.slime.jump"), + BLOCK_SLIME_PLACE("block.slime.place"), + ENTITY_SLIME_SQUISH("entity.slime.squish"), + BLOCK_SLIME_STEP("block.slime.step"), + ENTITY_SMALL_MAGMACUBE_DEATH("entity.small_magmacube.death"), + ENTITY_SMALL_MAGMACUBE_HURT("entity.small_magmacube.hurt"), + ENTITY_SMALL_MAGMACUBE_SQUISH("entity.small_magmacube.squish"), + ENTITY_SMALL_SLIME_DEATH("entity.small_slime.death"), + ENTITY_SMALL_SLIME_HURT("entity.small_slime.hurt"), + ENTITY_SMALL_SLIME_JUMP("entity.small_slime.jump"), + ENTITY_SMALL_SLIME_SQUISH("entity.small_slime.squish"), + ENTITY_SNOWBALL_THROW("entity.snowball.throw"), + ENTITY_SNOWMAN_AMBIENT("entity.snowman.ambient"), + ENTITY_SNOWMAN_DEATH("entity.snowman.death"), + ENTITY_SNOWMAN_HURT("entity.snowman.hurt"), + ENTITY_SNOWMAN_SHOOT("entity.snowman.shoot"), + BLOCK_SNOW_BREAK("block.snow.break"), + BLOCK_SNOW_FALL("block.snow.fall"), + BLOCK_SNOW_HIT("block.snow.hit"), + BLOCK_SNOW_PLACE("block.snow.place"), + BLOCK_SNOW_STEP("block.snow.step"), + ENTITY_SPIDER_AMBIENT("entity.spider.ambient"), + ENTITY_SPIDER_DEATH("entity.spider.death"), + ENTITY_SPIDER_HURT("entity.spider.hurt"), + ENTITY_SPIDER_STEP("entity.spider.step"), + ENTITY_SPLASH_POTION_BREAK("entity.splash_potion.break"), + ENTITY_SPLASH_POTION_THROW("entity.splash_potion.throw"), + ENTITY_SQUID_AMBIENT("entity.squid.ambient"), + ENTITY_SQUID_DEATH("entity.squid.death"), + ENTITY_SQUID_HURT("entity.squid.hurt"), + ENTITY_STRAY_AMBIENT("entity.stray.ambient"), + ENTITY_STRAY_DEATH("entity.stray.death"), + ENTITY_STRAY_HURT("entity.stray.hurt"), + ENTITY_STRAY_STEP("entity.stray.step"), + BLOCK_STONE_BREAK("block.stone.break"), + BLOCK_STONE_BUTTON_CLICK_OFF("block.stone_button.click_off"), + BLOCK_STONE_BUTTON_CLICK_ON("block.stone_button.click_on"), + BLOCK_STONE_FALL("block.stone.fall"), + BLOCK_STONE_HIT("block.stone.hit"), + BLOCK_STONE_PLACE("block.stone.place"), + BLOCK_STONE_PRESSPLATE_CLICK_OFF("block.stone_pressureplate.click_off"), + BLOCK_STONE_PRESSPLATE_CLICK_ON("block.stone_pressureplate.click_on"), + BLOCK_STONE_STEP("block.stone.step"), + ENCHANT_THORNS_HIT("enchant.thorns.hit"), + ENTITY_TNT_PRIMED("entity.tnt.primed"), + BLOCK_TRIPWIRE_ATTACH("block.tripwire.attach"), + BLOCK_TRIPWIRE_CLICK_OFF("block.tripwire.click_off"), + BLOCK_TRIPWIRE_CLICK_ON("block.tripwire.click_on"), + BLOCK_TRIPWIRE_DETACH("block.tripwire.detach"), + UI_BUTTON_CLICK("ui.button.click"), + ENTITY_VILLAGER_AMBIENT("entity.villager.ambient"), + ENTITY_VILLAGER_DEATH("entity.villager.death"), + ENTITY_VILLAGER_HURT("entity.villager.hurt"), + ENTITY_VILLAGER_NO("entity.villager.no"), + ENTITY_VILLAGER_TRADING("entity.villager.trading"), + ENTITY_VILLAGER_YES("entity.villager.yes"), + BLOCK_WATERLILY_PLACE("block.waterlily.place"), + BLOCK_WATER_AMBIENT("block.water.ambient"), + WEATHER_RAIN("weather.rain"), + WEATHER_RAIN_ABOVE("weather.rain.above"), + ENTITY_WITCH_AMBIENT("entity.witch.ambient"), + ENTITY_WITCH_DEATH("entity.witch.death"), + ENTITY_WITCH_DRINK("entity.witch.drink"), + ENTITY_WITCH_HURT("entity.witch.hurt"), + ENTITY_WITCH_THROW("entity.witch.throw"), + ENTITY_WITHER_AMBIENT("entity.wither.ambient"), + ENTITY_WITHER_BREAK_BLOCK("entity.wither.break_block"), + ENTITY_WITHER_DEATH("entity.wither.death"), + ENTITY_WITHER_HURT("entity.wither.hurt"), + ENTITY_WITHER_SHOOT("entity.wither.shoot"), + ENTITY_WITHER_SPAWN("entity.wither.spawn"), + ENTITY_WITHER_SKELETON_AMBIENT("entity.wither_skeleton.ambient"), + ENTITY_WITHER_SKELETON_DEATH("entity.wither_skeleton.death"), + ENTITY_WITHER_SKELETON_HURT("entity.wither_skeleton.hurt"), + ENTITY_WITHER_SKELETON_STEP("entity.wither_skeleton.step"), + ENTITY_WOLF_AMBIENT("entity.wolf.ambient"), + ENTITY_WOLF_DEATH("entity.wolf.death"), + ENTITY_WOLF_GROWL("entity.wolf.growl"), + ENTITY_WOLF_HOWL("entity.wolf.howl"), + ENTITY_WOLF_HURT("entity.wolf.hurt"), + ENTITY_WOLF_PANT("entity.wolf.pant"), + ENTITY_WOLF_SHAKE("entity.wolf.shake"), + ENTITY_WOLF_STEP("entity.wolf.step"), + ENTITY_WOLF_WHINE("entity.wolf.whine"), + BLOCK_WOODEN_DOOR_CLOSE("block.wooden_door.close"), + BLOCK_WOODEN_DOOR_OPEN("block.wooden_door.open"), + BLOCK_WOODEN_TRAPDOOR_CLOSE("block.wooden_trapdoor.close"), + BLOCK_WOODEN_TRAPDOOR_OPEN("block.wooden_trapdoor.open"), + BLOCK_WOOD_BREAK("block.wood.break"), + BLOCK_WOOD_BUTTON_CLICK_OFF("block.wood_button.click_off"), + BLOCK_WOOD_BUTTON_CLICK_ON("block.wood_button.click_on"), + BLOCK_WOOD_FALL("block.wood.fall"), + BLOCK_WOOD_HIT("block.wood.hit"), + BLOCK_WOOD_PLACE("block.wood.place"), + BLOCK_WOOD_PRESSPLATE_CLICK_OFF("block.wood_pressureplate.click_off"), + BLOCK_WOOD_PRESSPLATE_CLICK_ON("block.wood_pressureplate.click_on"), + BLOCK_WOOD_STEP("block.wood.step"), + ENTITY_ZOMBIE_AMBIENT("entity.zombie.ambient"), + ENTITY_ZOMBIE_ATTACK_DOOR_WOOD("entity.zombie.attack_door_wood"), + ENTITY_ZOMBIE_ATTACK_IRON_DOOR("entity.zombie.attack_iron_door"), + ENTITY_ZOMBIE_BREAK_DOOR_WOOD("entity.zombie.break_door_wood"), + ENTITY_ZOMBIE_DEATH("entity.zombie.death"), + ENTITY_ZOMBIE_HORSE_AMBIENT("entity.zombie_horse.ambient"), + ENTITY_ZOMBIE_HORSE_DEATH("entity.zombie_horse.death"), + ENTITY_ZOMBIE_HORSE_HURT("entity.zombie_horse.hurt"), + ENTITY_ZOMBIE_HURT("entity.zombie.hurt"), + ENTITY_ZOMBIE_INFECT("entity.zombie.infect"), + ENTITY_ZOMBIE_PIG_AMBIENT("entity.zombie_pig.ambient"), + ENTITY_ZOMBIE_PIG_ANGRY("entity.zombie_pig.angry"), + ENTITY_ZOMBIE_PIG_DEATH("entity.zombie_pig.death"), + ENTITY_ZOMBIE_PIG_HURT("entity.zombie_pig.hurt"), + ENTITY_ZOMBIE_STEP("entity.zombie.step"), + ENTITY_ZOMBIE_VILLAGER_AMBIENT("entity.zombie_villager.ambient"), + ENTITY_ZOMBIE_VILLAGER_CONVERTED("entity.zombie_villager.converted"), + ENTITY_ZOMBIE_VILLAGER_CURE("entity.zombie_villager.cure"), + ENTITY_ZOMBIE_VILLAGER_DEATH("entity.zombie_villager.death"), + ENTITY_ZOMBIE_VILLAGER_HURT("entity.zombie_villager.hurt"), + ENTITY_ZOMBIE_VILLAGER_STEP("entity.zombie_villager.step"), ; private String mcName; diff --git a/src/main/java/net/canarymod/chat/ChatFormat.java b/src/main/java/net/canarymod/chat/ChatFormat.java index 4677cf0c..df4e54bd 100644 --- a/src/main/java/net/canarymod/chat/ChatFormat.java +++ b/src/main/java/net/canarymod/chat/ChatFormat.java @@ -5,7 +5,6 @@ * * @author Jason (darkdiplomat) */ - public enum ChatFormat { /** @@ -218,4 +217,4 @@ public static String formatString(String str, String marker) { public static final String consoleFormat(String text) { return text.replaceAll("\u00A7([A-FK-NRa-fk-nr0-9])", "&$1"); } -} \ No newline at end of file +} diff --git a/src/main/java/net/canarymod/commandsys/commands/system/PluginCommand.java b/src/main/java/net/canarymod/commandsys/commands/system/PluginCommand.java index e9d2eae9..1d37ca44 100644 --- a/src/main/java/net/canarymod/commandsys/commands/system/PluginCommand.java +++ b/src/main/java/net/canarymod/commandsys/commands/system/PluginCommand.java @@ -1,13 +1,12 @@ package net.canarymod.commandsys.commands.system; +import static net.canarymod.Translator.sendTranslatedNotice; + import net.canarymod.Canary; import net.canarymod.chat.MessageReceiver; import net.canarymod.commandsys.NativeCommand; import net.canarymod.exceptions.InvalidPluginException; import net.canarymod.exceptions.PluginLoadFailedException; -import net.canarymod.logger.Logman; - -import static net.canarymod.Translator.sendTranslatedNotice; /** * Command to enable, disable or reload plugins @@ -49,13 +48,9 @@ private void reload(MessageReceiver caller, String plugin) { sendTranslatedNotice(caller, "plugin reloaded fail", plugin); } } - catch (PluginLoadFailedException e) { - sendTranslatedNotice(caller, "plugin enabled fail", plugin); - Logman.getLogman("pluginCommand").error("Failed to load plugin", e); - } - catch (InvalidPluginException e) { + catch (PluginLoadFailedException | InvalidPluginException e) { sendTranslatedNotice(caller, "plugin enabled fail", plugin); - Logman.getLogman("pluginCommand").error("Failed to load plugin", e); + Canary.log.error("Failed to load plugin", e); } } @@ -70,7 +65,7 @@ private void enable(MessageReceiver caller, String plugin) { } catch (PluginLoadFailedException e) { sendTranslatedNotice(caller, "plugin enabled fail", plugin); - Logman.getLogman("pluginCommand").error("Failed to load plugin", e); + Canary.log.error("Failed to load plugin", e); } } diff --git a/src/main/java/net/canarymod/database/JdbcConnectionManager.java b/src/main/java/net/canarymod/database/JdbcConnectionManager.java index 6f779ff4..0ae913a0 100644 --- a/src/main/java/net/canarymod/database/JdbcConnectionManager.java +++ b/src/main/java/net/canarymod/database/JdbcConnectionManager.java @@ -1,17 +1,17 @@ package net.canarymod.database; -import com.mchange.v2.c3p0.ComboPooledDataSource; +import static net.canarymod.Canary.log; + +import com.zaxxer.hikari.HikariConfig; +import com.zaxxer.hikari.HikariDataSource; import net.canarymod.config.Configuration; import net.canarymod.config.DatabaseConfiguration; import net.canarymod.database.exceptions.DatabaseAccessException; -import java.beans.PropertyVetoException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; -import static net.canarymod.Canary.log; - /** * Represents a connection (pool) manager for all sorts of JDBC connections. * In our particular case that is mysql and sqlite. @@ -21,10 +21,11 @@ * * @author Chris Ksoll (damagefilter) * @author Jason Jones (darkdiplomat) + * @author Jamie Mansfield (jamierocks) */ public class JdbcConnectionManager { - private ComboPooledDataSource cpds; // The data source pool ;) + private HikariDataSource dataSource; // The data source pool ;) private Connection nonManaged; // For those that bypass the manager/unable to use the manager private SQLType type; @@ -40,41 +41,43 @@ public class JdbcConnectionManager { */ private JdbcConnectionManager(SQLType type) throws SQLException { DatabaseConfiguration cfg = Configuration.getDbConfig(); - cpds = new ComboPooledDataSource(); this.type = type; if (type.usesJDBCManager()) { - try { - cpds.setDriverClass(type.getClassPath()); - cpds.setJdbcUrl(cfg.getDatabaseUrl(type.getIdentifier())); - cpds.setUser(cfg.getDatabaseUser()); - cpds.setPassword(cfg.getDatabasePassword()); - - // For settings explanations see - // http://javatech.org/2007/11/c3p0-connectionpool-configuration-rules-of-thumb/ - // https://community.jboss.org/wiki/HowToConfigureTheC3P0ConnectionPool?_sscc=t - - //connection pooling - cpds.setAcquireIncrement(cfg.getAcquireIncrement()); - cpds.setMaxIdleTime(cfg.getMaxConnectionIdleTime()); - cpds.setMaxIdleTimeExcessConnections(cfg.getMaxExcessConnectionsIdleTime()); - cpds.setMaxPoolSize(cfg.getMaxPoolSize()); - cpds.setMinPoolSize(cfg.getMinPoolSize()); - cpds.setNumHelperThreads(cfg.getNumHelperThreads()); - cpds.setUnreturnedConnectionTimeout(cfg.getReturnConnectionTimeout()); - cpds.setIdleConnectionTestPeriod(cfg.getConnectionTestFrequency()); - - //Statement pooling - cpds.setMaxStatements(cfg.getMaxCachedStatements()); - cpds.setMaxStatementsPerConnection(cfg.getMaxCachedStatementsPerConnection()); - cpds.setStatementCacheNumDeferredCloseThreads(cfg.getNumStatementCloseThreads()); + final HikariConfig config = new HikariConfig(); + + // Configure HikariConfig + { + config.setDriverClassName(type.getClassPath()); + config.setJdbcUrl(cfg.getDatabaseUrl(type.getIdentifier())); + config.setUsername(cfg.getDatabaseUser()); + config.setPassword(cfg.getDatabasePassword()); + + // getAcquireIncrement + config.setIdleTimeout(cfg.getMaxConnectionIdleTime()); + // getMaxExcessConnectionsIdleTime + config.setMaximumPoolSize(cfg.getMaxPoolSize()); + // getMinPoolSize + // getNumHelperThreads + // getReturnConnectionTimeout + // getConnectionTestFrequency + + // getMaxCachedStatements + // getMaxCachedStatementsPerConnection + // getNumStatementCloseThreads } - catch (PropertyVetoException e) { - log.error("Failed to configure the connection pool!", e); + + // Create the HikariDataSource + this.dataSource = new HikariDataSource(config); + + // Test connection + { + try (final Connection c = this.dataSource.getConnection()) { + // noop + } + catch (final SQLException ex) { + throw new RuntimeException("Failed to test the connection!", ex); + } } - //Test connection... - //If this fails it throws an SQLException so we're notified - Connection c = cpds.getConnection(); - c.close(); } else { nonManaged = DriverManager.getConnection(cfg.getDatabaseUrl(type.getIdentifier()), cfg.getDatabaseUser(), cfg.getDatabasePassword()); @@ -132,13 +135,9 @@ public static Connection getConnection() { cman.nonManaged = DriverManager.getConnection(cfg.getDatabaseUrl(cman.type.getIdentifier()), cfg.getDatabaseUser(), cfg.getDatabasePassword()); return cman.nonManaged; } - return cman.cpds.getConnection(); - } - catch (SQLException e) { - log.error("Couldn't get a Connection from pool!", e); - return null; + return cman.dataSource.getConnection(); } - catch (DatabaseAccessException e) { + catch (SQLException | DatabaseAccessException e) { log.error("Couldn't get a Connection from pool!", e); return null; } @@ -153,7 +152,7 @@ public static void shutdown() { // already shut down or never instantiated (perhaps because we're running on a non-jdbc database) return; } - instance.cpds.close(); + instance.dataSource.close(); if (instance.nonManaged != null) { try { instance.nonManaged.close(); diff --git a/src/main/java/net/canarymod/database/sqlite/SQLiteDatabase.java b/src/main/java/net/canarymod/database/sqlite/SQLiteDatabase.java index e96da30f..f0afbe2f 100644 --- a/src/main/java/net/canarymod/database/sqlite/SQLiteDatabase.java +++ b/src/main/java/net/canarymod/database/sqlite/SQLiteDatabase.java @@ -1,5 +1,7 @@ package net.canarymod.database.sqlite; +import static net.canarymod.Canary.log; + import net.canarymod.Canary; import net.canarymod.database.Column; import net.canarymod.database.Column.DataType; @@ -28,8 +30,6 @@ import java.util.List; import java.util.Map; -import static net.canarymod.Canary.log; - /** * SQLite Database * @@ -90,12 +90,9 @@ public void insert(DataAccess data) throws DatabaseWriteException { throw new DatabaseWriteException("Error inserting SQLite: no rows updated!"); } } - catch (SQLException ex) { + catch (SQLException | DatabaseTableInconsistencyException ex) { log.error(ex.getMessage(), ex); } - catch (DatabaseTableInconsistencyException dtie) { - log.error(dtie.getMessage(), dtie); - } finally { close(null, ps, null); } @@ -468,7 +465,7 @@ public void retainColumns(DataAccess table, List toRetain) throws Databa concatColumns.append(column); } - log.debug(concatColumns); + log.debug(concatColumns.toString()); String tableName = table.getName(); String tempTable = "" + tableName + "_temp"; diff --git a/src/main/java/net/canarymod/database/xml/XmlDatabase.java b/src/main/java/net/canarymod/database/xml/XmlDatabase.java index 443a1dca..3b9ca6f3 100644 --- a/src/main/java/net/canarymod/database/xml/XmlDatabase.java +++ b/src/main/java/net/canarymod/database/xml/XmlDatabase.java @@ -2,7 +2,6 @@ import com.google.common.collect.Maps; import com.google.common.io.Files; -import com.mchange.v1.lang.BooleanUtils; import net.canarymod.Canary; import net.canarymod.database.Column; import net.canarymod.database.Column.DataType; @@ -1025,7 +1024,7 @@ private Comparable typeParse(String value, String field, DataType type, DataAcce return defValTempl.getClass().getField(field).getDouble(defValTempl); } case BOOLEAN: - return BooleanUtils.parseBoolean(value); + return Boolean.parseBoolean(value); case STRING: default: return value; diff --git a/src/main/java/net/canarymod/logger/Logman.java b/src/main/java/net/canarymod/logger/Logman.java deleted file mode 100644 index 8506e4a1..00000000 --- a/src/main/java/net/canarymod/logger/Logman.java +++ /dev/null @@ -1,1063 +0,0 @@ -package net.canarymod.logger; - -import org.apache.logging.log4j.Level; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.Marker; -import org.apache.logging.log4j.MarkerManager; -import org.apache.logging.log4j.message.Message; -import org.apache.logging.log4j.message.MessageFactory; - -import java.util.concurrent.ConcurrentHashMap; - -/** - * CanaryMod Log manager. - *

- * You can get an appropriate logger for your plugin here. - * - * @author Chris (damagefilter) - * @author Jos Kuijpers - * @author Jason (darkdiplomat) - * @author Larry1123 - * Updated to make use of log4j - */ -public class Logman implements Logger { - private final static ConcurrentHashMap loggers = new ConcurrentHashMap(); - private final Logger logger; - - public static final Marker NOTICE = MarkerManager.getMarker("NOTICE"); - public static final Marker MESSAGE = MarkerManager.getMarker("MESSAGE"); - public static final Marker DERP = MarkerManager.getMarker("DERP"); - public static final Marker PLUGINDEBUG = MarkerManager.getMarker("PLUGINDEBUG"); - - protected Logman(String name) { - this.logger = LogManager.getLogger(name); - loggers.putIfAbsent(name, this); - } - - /** - * Get a Logman for the name given - * - * @param name - * the name of the Logger to use - * - * @return the Logman instance - */ - public static Logman getLogman(String name) { - return loggers.containsKey(name) ? loggers.get(name) : new Logman(name); - } - - /** - * Convenience shortcut to System.out.println(). - * Prints to the output stream on a new line - * - * @param message - * the message to be printed to the console - */ - public static void println(String message) { - System.out.println(message); - } - - /** - * Convenience shortcut to System.out.print().
- * Prints to the output stream on the same line - * - * @param message - * the message to be printed to the console - */ - public static void print(String message) { - System.out.print(message); - } - - /** - * {@inheritDoc} - */ - @Override - public void catching(Level level, Throwable t) { - logger.catching(level, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void catching(Throwable t) { - logger.catching(t); - } - - /** - * {@inheritDoc} - */ - @Override - public void debug(Marker marker, Message msg) { - logger.debug(marker, msg); - } - - /** - * {@inheritDoc} - */ - @Override - public void debug(Marker marker, Message msg, Throwable t) { - logger.debug(marker, msg, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void debug(Marker marker, Object message) { - logger.debug(marker, message); - } - - /** - * {@inheritDoc} - */ - @Override - public void debug(Marker marker, Object message, Throwable t) { - logger.debug(marker, message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void debug(Marker marker, String message) { - logger.debug(marker, message); - } - - /** - * {@inheritDoc} - */ - @Override - public void debug(Marker marker, String message, Object... params) { - logger.debug(marker, message, params); - } - - /** - * {@inheritDoc} - */ - @Override - public void debug(Marker marker, String message, Throwable t) { - logger.debug(marker, message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void debug(Message msg) { - logger.debug(msg); - } - - /** - * {@inheritDoc} - */ - @Override - public void debug(Message msg, Throwable t) { - logger.debug(msg, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void debug(Object message) { - logger.debug(message); - } - - /** - * {@inheritDoc} - */ - @Override - public void debug(Object message, Throwable t) { - logger.debug(message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void debug(String message) { - logger.debug(message); - } - - /** - * {@inheritDoc} - */ - @Override - public void debug(String message, Object... params) { - logger.debug(message, params); - } - - /** - * {@inheritDoc} - */ - @Override - public void debug(String message, Throwable t) { - logger.debug(message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void entry() { - logger.entry(); - } - - /** - * {@inheritDoc} - */ - @Override - public void entry(Object... params) { - logger.entry(params); - } - - /** - * {@inheritDoc} - */ - @Override - public void error(Marker marker, Message msg) { - logger.error(marker, msg); - } - - /** - * {@inheritDoc} - */ - @Override - public void error(Marker marker, Message msg, Throwable t) { - logger.error(marker, msg, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void error(Marker marker, Object message) { - logger.error(marker, message); - } - - /** - * {@inheritDoc} - */ - @Override - public void error(Marker marker, Object message, Throwable t) { - logger.error(marker, message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void error(Marker marker, String message) { - logger.error(marker, message); - } - - /** - * {@inheritDoc} - */ - @Override - public void error(Marker marker, String message, Object... params) { - logger.error(marker, message, params); - } - - /** - * {@inheritDoc} - */ - @Override - public void error(Marker marker, String message, Throwable t) { - logger.error(marker, message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void error(Message msg) { - logger.error(msg); - } - - /** - * {@inheritDoc} - */ - @Override - public void error(Message msg, Throwable t) { - logger.error(msg, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void error(Object message) { - logger.error(message); - } - - /** - * {@inheritDoc} - */ - @Override - public void error(Object message, Throwable t) { - logger.error(message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void error(String message) { - logger.error(message); - } - - /** - * {@inheritDoc} - */ - @Override - public void error(String message, Object... params) { - logger.error(message, params); - } - - /** - * {@inheritDoc} - */ - @Override - public void error(String message, Throwable t) { - logger.error(message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void exit() { - logger.exit(); - } - - /** - * {@inheritDoc} - */ - @Override - public R exit(R result) { - return logger.exit(result); - } - - /** - * {@inheritDoc} - */ - @Override - public void fatal(Marker marker, Message msg) { - logger.fatal(marker, msg); - } - - /** - * {@inheritDoc} - */ - @Override - public void fatal(Marker marker, Message msg, Throwable t) { - logger.fatal(marker, msg, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void fatal(Marker marker, Object message) { - logger.fatal(marker, message); - } - - /** - * {@inheritDoc} - */ - @Override - public void fatal(Marker marker, Object message, Throwable t) { - logger.fatal(marker, message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void fatal(Marker marker, String message) { - logger.fatal(marker, message); - } - - /** - * {@inheritDoc} - */ - @Override - public void fatal(Marker marker, String message, Object... params) { - logger.fatal(marker, message, params); - } - - /** - * {@inheritDoc} - */ - @Override - public void fatal(Marker marker, String message, Throwable t) { - logger.fatal(marker, message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void fatal(Message msg) { - logger.fatal(msg); - } - - /** - * {@inheritDoc} - */ - @Override - public void fatal(Message msg, Throwable t) { - logger.fatal(msg, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void fatal(Object message) { - logger.fatal(message); - } - - /** - * {@inheritDoc} - */ - @Override - public void fatal(Object message, Throwable t) { - logger.fatal(message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void fatal(String message) { - logger.fatal(message); - } - - /** - * {@inheritDoc} - */ - @Override - public void fatal(String message, Object... params) { - logger.fatal(message, params); - } - - /** - * {@inheritDoc} - */ - @Override - public void fatal(String message, Throwable t) { - logger.fatal(message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public MessageFactory getMessageFactory() { - return logger.getMessageFactory(); - } - - /** - * {@inheritDoc} - */ - @Override - public String getName() { - return logger.getName(); - } - - /** - * {@inheritDoc} - */ - @Override - public void info(Marker marker, Message msg) { - logger.info(marker, msg); - } - - /** - * {@inheritDoc} - */ - @Override - public void info(Marker marker, Message msg, Throwable t) { - logger.info(marker, msg, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void info(Marker marker, Object message) { - logger.info(marker, message); - } - - /** - * {@inheritDoc} - */ - @Override - public void info(Marker marker, Object message, Throwable t) { - logger.info(marker, message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void info(Marker marker, String message) { - logger.info(marker, message); - } - - /** - * {@inheritDoc} - */ - @Override - public void info(Marker marker, String message, Object... params) { - logger.info(marker, message, params); - } - - /** - * {@inheritDoc} - */ - @Override - public void info(Marker marker, String message, Throwable t) { - logger.info(marker, message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void info(Message msg) { - logger.info(msg); - } - - /** - * {@inheritDoc} - */ - @Override - public void info(Message msg, Throwable t) { - logger.info(msg, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void info(Object message) { - logger.info(message); - } - - /** - * {@inheritDoc} - */ - @Override - public void info(Object message, Throwable t) { - logger.info(message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void info(String message) { - logger.info(message); - } - - /** - * {@inheritDoc} - */ - @Override - public void info(String message, Object... params) { - logger.info(message, params); - } - - /** - * {@inheritDoc} - */ - @Override - public void info(String message, Throwable t) { - logger.info(message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean isDebugEnabled() { - return logger.isDebugEnabled(); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean isDebugEnabled(Marker marker) { - return logger.isDebugEnabled(marker); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean isEnabled(Level level) { - return logger.isEnabled(level); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean isEnabled(Level level, Marker marker) { - return logger.isEnabled(level, marker); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean isErrorEnabled() { - return logger.isErrorEnabled(); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean isErrorEnabled(Marker marker) { - return logger.isErrorEnabled(marker); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean isFatalEnabled() { - return logger.isFatalEnabled(); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean isFatalEnabled(Marker marker) { - return logger.isFatalEnabled(marker); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean isInfoEnabled() { - return logger.isInfoEnabled(); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean isInfoEnabled(Marker marker) { - return logger.isInfoEnabled(marker); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean isTraceEnabled() { - return logger.isTraceEnabled(); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean isTraceEnabled(Marker marker) { - return logger.isTraceEnabled(marker); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean isWarnEnabled() { - return logger.isWarnEnabled(); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean isWarnEnabled(Marker marker) { - return logger.isWarnEnabled(marker); - } - - /** - * {@inheritDoc} - */ - @Override - public void log(Level level, Marker marker, Message msg) { - logger.log(level, marker, msg); - } - - /** - * {@inheritDoc} - */ - @Override - public void log(Level level, Marker marker, Message msg, Throwable t) { - logger.log(level, marker, msg, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void log(Level level, Marker marker, Object message) { - logger.log(level, marker, message); - } - - /** - * {@inheritDoc} - */ - @Override - public void log(Level level, Marker marker, Object message, Throwable t) { - logger.log(level, marker, message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void log(Level level, Marker marker, String message) { - logger.log(level, marker, message); - } - - /** - * {@inheritDoc} - */ - @Override - public void log(Level level, Marker marker, String message, Object... params) { - logger.log(level, marker, message, params); - } - - /** - * {@inheritDoc} - */ - @Override - public void log(Level level, Marker marker, String message, Throwable t) { - logger.log(level, marker, message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void log(Level level, Message msg) { - logger.log(level, msg); - } - - /** - * {@inheritDoc} - */ - @Override - public void log(Level level, Message msg, Throwable t) { - logger.log(level, msg, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void log(Level level, Object message) { - logger.log(level, message); - } - - /** - * {@inheritDoc} - */ - @Override - public void log(Level level, Object message, Throwable t) { - logger.log(level, message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void log(Level level, String message) { - logger.log(level, message); - } - - /** - * {@inheritDoc} - */ - @Override - public void log(Level level, String message, Object... params) { - logger.log(level, message, params); - } - - /** - * {@inheritDoc} - */ - @Override - public void log(Level level, String message, Throwable t) { - logger.log(level, message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void printf(Level level, Marker marker, String format, Object... params) { - logger.printf(level, marker, format, params); - } - - /** - * {@inheritDoc} - */ - @Override - public void printf(Level level, String format, Object... params) { - logger.printf(level, format, params); - } - - /** - * {@inheritDoc} - */ - @Override - public T throwing(Level level, T t) { - return logger.throwing(level, t); - } - - /** - * {@inheritDoc} - */ - @Override - public T throwing(T t) { - return logger.throwing(t); - } - - /** - * {@inheritDoc} - */ - @Override - public void trace(Marker marker, Message msg) { - logger.trace(marker, msg); - } - - /** - * {@inheritDoc} - */ - @Override - public void trace(Marker marker, Message msg, Throwable t) { - logger.trace(marker, msg, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void trace(Marker marker, Object message) { - logger.trace(marker, message); - } - - /** - * {@inheritDoc} - */ - @Override - public void trace(Marker marker, Object message, Throwable t) { - logger.trace(marker, message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void trace(Marker marker, String message) { - logger.trace(marker, message); - } - - /** - * {@inheritDoc} - */ - @Override - public void trace(Marker marker, String message, Object... params) { - logger.trace(marker, message, params); - } - - /** - * {@inheritDoc} - */ - @Override - public void trace(Marker marker, String message, Throwable t) { - logger.trace(marker, message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void trace(Message msg) { - logger.trace(msg); - } - - /** - * {@inheritDoc} - */ - @Override - public void trace(Message msg, Throwable t) { - logger.trace(msg, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void trace(Object message) { - logger.trace(message); - } - - /** - * {@inheritDoc} - */ - @Override - public void trace(Object message, Throwable t) { - logger.trace(message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void trace(String message) { - logger.trace(message); - } - - /** - * {@inheritDoc} - */ - @Override - public void trace(String message, Object... params) { - logger.trace(message, params); - } - - /** - * {@inheritDoc} - */ - @Override - public void trace(String message, Throwable t) { - logger.trace(message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void warn(Marker marker, Message msg) { - logger.warn(marker, msg); - } - - /** - * {@inheritDoc} - */ - @Override - public void warn(Marker marker, Message msg, Throwable t) { - logger.warn(marker, msg, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void warn(Marker marker, Object message) { - logger.warn(marker, message); - } - - /** - * {@inheritDoc} - */ - @Override - public void warn(Marker marker, Object message, Throwable t) { - logger.warn(marker, message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void warn(Marker marker, String message) { - logger.warn(marker, message); - } - - /** - * {@inheritDoc} - */ - @Override - public void warn(Marker marker, String message, Object... params) { - logger.warn(marker, message, params); - } - - /** - * {@inheritDoc} - */ - @Override - public void warn(Marker marker, String message, Throwable t) { - logger.warn(marker, message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void warn(Message msg) { - logger.warn(msg); - } - - /** - * {@inheritDoc} - */ - @Override - public void warn(Message msg, Throwable t) { - logger.warn(msg, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void warn(Object message) { - logger.warn(message); - } - - /** - * {@inheritDoc} - */ - @Override - public void warn(Object message, Throwable t) { - logger.warn(message, t); - } - - /** - * {@inheritDoc} - */ - @Override - public void warn(String message) { - logger.warn(message); - } - - /** - * {@inheritDoc} - */ - @Override - public void warn(String message, Object... params) { - logger.warn(message, params); - } - - /** - * {@inheritDoc} - */ - @Override - public void warn(String message, Throwable t) { - logger.warn(message, t); - } -} diff --git a/src/main/java/net/canarymod/plugin/DefaultPluginManager.java b/src/main/java/net/canarymod/plugin/DefaultPluginManager.java index 6a1511be..bdf60b24 100644 --- a/src/main/java/net/canarymod/plugin/DefaultPluginManager.java +++ b/src/main/java/net/canarymod/plugin/DefaultPluginManager.java @@ -1,5 +1,7 @@ package net.canarymod.plugin; +import static net.canarymod.Canary.log; + import net.canarymod.Canary; import net.canarymod.config.Configuration; import net.canarymod.exceptions.InvalidPluginException; @@ -8,7 +10,7 @@ import net.canarymod.hook.system.PluginEnableHook; import net.canarymod.plugin.dependencies.DependencyGraph; import net.visualillusionsent.utils.PropertiesFile; -import org.apache.logging.log4j.Logger; +import org.slf4j.Logger; import java.io.File; import java.io.FileFilter; @@ -20,8 +22,6 @@ import java.util.Map; import java.util.Set; -import static net.canarymod.Canary.log; - /** * {@inheritDoc} * diff --git a/src/main/java/net/canarymod/plugin/Plugin.java b/src/main/java/net/canarymod/plugin/Plugin.java index a1f4790e..196eea01 100644 --- a/src/main/java/net/canarymod/plugin/Plugin.java +++ b/src/main/java/net/canarymod/plugin/Plugin.java @@ -6,11 +6,12 @@ import net.canarymod.commandsys.CommandListener; import net.canarymod.commandsys.CommandOwner; import net.canarymod.config.Configuration; -import net.canarymod.logger.Logman; import net.canarymod.motd.MOTDOwner; import net.canarymod.tasks.TaskOwner; import net.visualillusionsent.utils.LocaleHelper; import net.visualillusionsent.utils.PropertiesFile; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.File; import java.util.ArrayList; @@ -151,12 +152,12 @@ public String getPath() { } /** - * Gets the {@link Logman} for the Plugin + * Gets the {@link Logger} for the Plugin * - * @return the Plugin's {@link Logman} + * @return the Plugin's {@link Logger} */ - public Logman getLogman() { - return Logman.getLogman(getName()); + public Logger getLogger() { + return LoggerFactory.getLogger(getName()); } /** diff --git a/src/main/java/net/canarymod/plugin/PluginManager.java b/src/main/java/net/canarymod/plugin/PluginManager.java index b56c0466..1f27b830 100644 --- a/src/main/java/net/canarymod/plugin/PluginManager.java +++ b/src/main/java/net/canarymod/plugin/PluginManager.java @@ -2,7 +2,7 @@ import net.canarymod.exceptions.InvalidPluginException; import net.canarymod.exceptions.PluginLoadFailedException; -import org.apache.logging.log4j.Logger; +import org.slf4j.Logger; import java.util.Collection; diff --git a/src/main/java/net/canarymod/util/NullPlayerInventory.java b/src/main/java/net/canarymod/util/NullPlayerInventory.java index e55c78fe..c1657262 100644 --- a/src/main/java/net/canarymod/util/NullPlayerInventory.java +++ b/src/main/java/net/canarymod/util/NullPlayerInventory.java @@ -61,6 +61,11 @@ public Item getItemInHand() { return null; } + @Override + public Item getItemInOffhand() { + return null; + } + @Override public Item getItemOnCursor() { return null;