Commit v0.2.2

Added fixes for knockback items and minor code rework.
This commit is contained in:
CoolJWB 2019-03-06 20:12:26 +01:00
parent 9ab7948625
commit 0ef87510fe
33 changed files with 539 additions and 231 deletions

View file

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

9
.idea/compiler.xml Normal file
View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel>
<module name="me.CoolJWB.VulnerabilityPatcher.VulnerabilityPatcher.main" target="1.8" />
<module name="me.CoolJWB.VulnerabilityPatcher.VulnerabilityPatcher.test" target="1.8" />
</bytecodeTargetLevel>
</component>
</project>

View file

@ -5,7 +5,8 @@
<GradleProjectSettings>
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleHome" value="C:/Gradle/gradle-5.0" />
<option name="gradleHome" value="C:/Gradle/gradle-5.1.1" />
<option name="gradleJvm" value="1.8" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />

View file

@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: com.google.code.gson:gson:2.8.0">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.8.0/c4ba5371a29ac9b2ad6129b1d39ea38750043eff/gson-2.8.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.8.0/baf95d8519fc1a11d388f8543cb40cd2bb9d66dc/gson-2.8.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View file

@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: com.google.guava:guava:21.0">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/21.0/3a3d111be1be1b745edfa7d91678a12d7ed38709/guava-21.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/21.0/b9ed26b8c23fe7cd3e6b463b34e54e5c6d9536d5/guava-21.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View file

@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: com.googlecode.json-simple:json-simple:1.1.1">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.googlecode.json-simple/json-simple/1.1.1/c9ad4a0850ab676c5c64461a05ca524cdfff59f1/json-simple-1.1.1.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.googlecode.json-simple/json-simple/1.1.1/15bba08e3a239d54b68209c001f9c911559d2fed/json-simple-1.1.1-sources.jar!/" />
</SOURCES>
</library>
</component>

View file

@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: commons-lang:commons-lang:2.6">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-lang/commons-lang/2.6/ce1edb914c94ebc388f086c6827e8bdeec71ac2/commons-lang-2.6.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-lang/commons-lang/2.6/67313d715fbf0ea4fd0bdb69217fb77f807a8ce5/commons-lang-2.6-sources.jar!/" />
</SOURCES>
</library>
</component>

View file

@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: junit:junit:4.10">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/junit/junit/4.10/e4f1766ce7404a08f45d859fb9c226fc9e41a861/junit-4.10.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/junit/junit/4.10/6c98d6766e72d5575f96c9479d1c1d3b865c6e25/junit-4.10-sources.jar!/" />
</SOURCES>
</library>
</component>

View file

@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: junit:junit:4.12">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/junit/junit/4.12/2973d150c0dc1fefe998f834810d68f278ea58ec/junit-4.12.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/junit/junit/4.12/a6c32b40bf3d76eca54e3c601e5d1470c86fcdfa/junit-4.12-sources.jar!/" />
</SOURCES>
</library>
</component>

View file

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Gradle: net.md-5:bungeecord-chat:1.13-SNAPSHOT">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.md-5/bungeecord-chat/1.13-SNAPSHOT/70def0d21c8a219a89799b8584e37223c982d566/bungeecord-chat-1.13-SNAPSHOT.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.md-5/bungeecord-chat/1.13-SNAPSHOT/e4d706bb32c24b2ed766f15d2d5b856bcabb4cb9/bungeecord-chat-1.13-SNAPSHOT-sources.jar!/" />
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.md-5/bungeecord-chat/1.13-SNAPSHOT/bd5132bb70ac3befe836d76d1d866a73d623836e/bungeecord-chat-1.13-SNAPSHOT-sources.jar!/" />
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.md-5/bungeecord-chat/1.13-SNAPSHOT/fba98b3c7ec7c1102f9b08437acdc711bfe40747/bungeecord-chat-1.13-SNAPSHOT-sources.jar!/" />
</SOURCES>
</library>
</component>

View file

@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: org.hamcrest:hamcrest-core:1.1">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.1/860340562250678d1a344907ac75754e259cdb14/hamcrest-core-1.1.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.1/2ccf1154d1a8936042a8a742dc3e611d02ac7213/hamcrest-core-1.1-sources.jar!/" />
</SOURCES>
</library>
</component>

View file

@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: org.hamcrest:hamcrest-core:1.3">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/42a25dc3219429f0e5d060061f71acb49bf010a0/hamcrest-core-1.3.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/1dc37250fbc78e23a65a67fbbaf71d2e9cbc3c0b/hamcrest-core-1.3-sources.jar!/" />
</SOURCES>
</library>
</component>

View file

@ -0,0 +1,22 @@
<component name="libraryTable">
<library name="Gradle: org.spigotmc:spigot-api:1.13.2-R0.1-SNAPSHOT">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.spigotmc/spigot-api/1.13.2-R0.1-SNAPSHOT/5aa6fdaf13d323320ab60d26fb2871bc86cd9929/spigot-api-1.13.2-R0.1-SNAPSHOT.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.spigotmc/spigot-api/1.13.2-R0.1-SNAPSHOT/6a39d7f825cc1657cf1c4a0e6fec164609a54f1f/spigot-api-1.13.2-R0.1-SNAPSHOT-sources.jar!/" />
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.spigotmc/spigot-api/1.13.2-R0.1-SNAPSHOT/16a9ae3e89d93bdf8f9b3433180ddd4b56051bd0/spigot-api-1.13.2-R0.1-SNAPSHOT-sources.jar!/" />
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.spigotmc/spigot-api/1.13.2-R0.1-SNAPSHOT/2c55fe4c5a41602bf1afe27997a887b0e38af96e/spigot-api-1.13.2-R0.1-SNAPSHOT-sources.jar!/" />
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.spigotmc/spigot-api/1.13.2-R0.1-SNAPSHOT/2e9518073fac737e0b021abbaa3414c2a27efcba/spigot-api-1.13.2-R0.1-SNAPSHOT-sources.jar!/" />
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.spigotmc/spigot-api/1.13.2-R0.1-SNAPSHOT/3a8348ede121a161471e5ed086b99f6eaaef78d2/spigot-api-1.13.2-R0.1-SNAPSHOT-sources.jar!/" />
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.spigotmc/spigot-api/1.13.2-R0.1-SNAPSHOT/73a25ca6d8eb35dc9d0c2b98bb02b23b24ad4fbf/spigot-api-1.13.2-R0.1-SNAPSHOT-sources.jar!/" />
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.spigotmc/spigot-api/1.13.2-R0.1-SNAPSHOT/7ad5824a9351b7ae1570369129fd531c7a950a49/spigot-api-1.13.2-R0.1-SNAPSHOT-sources.jar!/" />
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.spigotmc/spigot-api/1.13.2-R0.1-SNAPSHOT/8ccf2ec737db7889dcb5dd1e98fa442abbd2afc9/spigot-api-1.13.2-R0.1-SNAPSHOT-sources.jar!/" />
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.spigotmc/spigot-api/1.13.2-R0.1-SNAPSHOT/a2b50ddcee76d5371f9ff6705177d8f461acb5ef/spigot-api-1.13.2-R0.1-SNAPSHOT-sources.jar!/" />
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.spigotmc/spigot-api/1.13.2-R0.1-SNAPSHOT/bbe6165a090f1fc7342f81d3a2dc289ab6510274/spigot-api-1.13.2-R0.1-SNAPSHOT-sources.jar!/" />
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.spigotmc/spigot-api/1.13.2-R0.1-SNAPSHOT/d1dbe2e4ca9652add9429cc015dbee3f97778e22/spigot-api-1.13.2-R0.1-SNAPSHOT-sources.jar!/" />
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.spigotmc/spigot-api/1.13.2-R0.1-SNAPSHOT/d38bc0f641d129fd53ca311da16b6740c4a96315/spigot-api-1.13.2-R0.1-SNAPSHOT-sources.jar!/" />
</SOURCES>
</library>
</component>

View file

@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: org.yaml:snakeyaml:1.23">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.yaml/snakeyaml/1.23/ec62d74fe50689c28c0ff5b35d3aebcaa8b5be68/snakeyaml-1.23.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.yaml/snakeyaml/1.23/1186bcf89d33080275bab74a0b0f495af5c812ef/snakeyaml-1.23-sources.jar!/" />
</SOURCES>
</library>
</component>

View file

@ -5,8 +5,5 @@
<item index="0" class="java.lang.String" itemvalue="org.bukkit.event.EventHandler" />
</list>
</component>
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
</project>

View file

@ -2,7 +2,9 @@
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/VulnerabilityPatcher.iml" filepath="$PROJECT_DIR$/.idea/VulnerabilityPatcher.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/me.CoolJWB.VulnerabilityPatcher.VulnerabilityPatcher.iml" filepath="$PROJECT_DIR$/.idea/modules/me.CoolJWB.VulnerabilityPatcher.VulnerabilityPatcher.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/me.CoolJWB.VulnerabilityPatcher.VulnerabilityPatcher.main.iml" filepath="$PROJECT_DIR$/.idea/modules/me.CoolJWB.VulnerabilityPatcher.VulnerabilityPatcher.main.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/me.CoolJWB.VulnerabilityPatcher.VulnerabilityPatcher.test.iml" filepath="$PROJECT_DIR$/.idea/modules/me.CoolJWB.VulnerabilityPatcher.VulnerabilityPatcher.test.iml" />
</modules>
</component>
</project>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.id="VulnerabilityPatcher" external.linked.project.path="$MODULE_DIR$/../.." external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="me.CoolJWB.VulnerabilityPatcher" external.system.module.version="v0.2.2" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$/../..">
<excludeFolder url="file://$MODULE_DIR$/../../.gradle" />
<excludeFolder url="file://$MODULE_DIR$/../../build" />
<excludeFolder url="file://$MODULE_DIR$/../../out" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<module external.linked.project.id="VulnerabilityPatcher:main" external.linked.project.path="$MODULE_DIR$/../.." external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="me.CoolJWB.VulnerabilityPatcher" external.system.module.type="sourceSet" external.system.module.version="v0.2.2" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="minecraft" name="Minecraft">
<configuration>
@ -9,4 +9,32 @@
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/../../out/production/classes" />
<exclude-output />
<content url="file://$MODULE_DIR$/../../src/main">
<sourceFolder url="file://$MODULE_DIR$/../../src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/../../src/main/resources" type="java-resource" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/../../libs/spigot-1.13.2.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="library" name="Gradle: org.spigotmc:spigot-api:1.13.2-R0.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Gradle: commons-lang:commons-lang:2.6" level="project" />
<orderEntry type="library" name="Gradle: com.googlecode.json-simple:json-simple:1.1.1" level="project" />
<orderEntry type="library" name="Gradle: net.md-5:bungeecord-chat:1.13-SNAPSHOT" level="project" />
<orderEntry type="library" name="Gradle: com.google.guava:guava:21.0" level="project" />
<orderEntry type="library" name="Gradle: com.google.code.gson:gson:2.8.0" level="project" />
<orderEntry type="library" name="Gradle: org.yaml:snakeyaml:1.23" level="project" />
<orderEntry type="library" name="Gradle: junit:junit:4.10" level="project" />
<orderEntry type="library" name="Gradle: org.hamcrest:hamcrest-core:1.1" level="project" />
</component>
</module>

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<module external.linked.project.id="VulnerabilityPatcher:test" external.linked.project.path="$MODULE_DIR$/../.." external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="me.CoolJWB.VulnerabilityPatcher" external.system.module.type="sourceSet" external.system.module.version="v0.2.2" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="minecraft" name="Minecraft">
<configuration>
@ -9,4 +9,34 @@
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output-test url="file://$MODULE_DIR$/../../out/test/classes" />
<exclude-output />
<content url="file://$MODULE_DIR$/../../src/test">
<sourceFolder url="file://$MODULE_DIR$/../../src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/../../src/test/resources" type="java-test-resource" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="me.CoolJWB.VulnerabilityPatcher.VulnerabilityPatcher.main" />
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/../../libs/spigot-1.13.2.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="library" name="Gradle: org.spigotmc:spigot-api:1.13.2-R0.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Gradle: com.googlecode.json-simple:json-simple:1.1.1" level="project" />
<orderEntry type="library" name="Gradle: junit:junit:4.12" level="project" />
<orderEntry type="library" name="Gradle: commons-lang:commons-lang:2.6" level="project" />
<orderEntry type="library" name="Gradle: net.md-5:bungeecord-chat:1.13-SNAPSHOT" level="project" />
<orderEntry type="library" name="Gradle: com.google.guava:guava:21.0" level="project" />
<orderEntry type="library" name="Gradle: com.google.code.gson:gson:2.8.0" level="project" />
<orderEntry type="library" name="Gradle: org.yaml:snakeyaml:1.23" level="project" />
<orderEntry type="library" name="Gradle: org.hamcrest:hamcrest-core:1.3" level="project" />
</component>
<component name="TestModuleProperties" production-module="me.CoolJWB.VulnerabilityPatcher.VulnerabilityPatcher.main" />
</module>

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View file

@ -1,26 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="3d5d2873-4535-445c-81cf-26429875d278" name="Default Changelist" comment="">
<list default="true" id="1834e4ca-cad0-4e3b-b89d-78acad5c3578" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/.idea/compiler.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_code_gson_gson_2_8_0.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_google_guava_guava_21_0.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_googlecode_json_simple_json_simple_1_1_1.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__commons_lang_commons_lang_2_6.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__junit_junit_4_10.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__junit_junit_4_12.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__net_md_5_bungeecord_chat_1_13_SNAPSHOT.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_1.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_spigotmc_spigot_api_1_13_2_R0_1_SNAPSHOT.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_yaml_snakeyaml_1_23.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/modules/me.CoolJWB.VulnerabilityPatcher.VulnerabilityPatcher.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/VulnerabilityPatcher.iml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/gradle.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/gradle.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/modules.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/modules/me.CoolJWB.VulnerabilityPatcher.VulnerabilityPatcher.main.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules/me.CoolJWB.VulnerabilityPatcher.VulnerabilityPatcher.main.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/modules/me.CoolJWB.VulnerabilityPatcher.VulnerabilityPatcher.test.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules/me.CoolJWB.VulnerabilityPatcher.VulnerabilityPatcher.test.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/vcs.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bin/main/config.yml" beforeDir="false" afterPath="$PROJECT_DIR$/bin/main/config.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bin/main/plugin.yml" beforeDir="false" afterPath="$PROJECT_DIR$/bin/main/plugin.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gradle.properties" beforeDir="false" afterPath="$PROJECT_DIR$/gradle.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/SMG.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/SMG.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/VulnerabilityPatcher.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/VulnerabilityPatcher.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Arrows.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Arrows.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Books.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Books.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Crash_Items.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Crash_Items.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Death_Items.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Death_Items.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Death_Potions.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Death_Potions.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Disconnect_Items.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Disconnect_Items.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Entity_Tag.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Entity_Tag.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Follow_Range.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Follow_Range.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Patches.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Patches.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Rouge_Entity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Rouge_Entity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Trident_Riptide.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Trident_Riptide.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/config.yml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/config.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/plugin.yml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/plugin.yml" afterDir="false" />
</list>
<ignored path="$PROJECT_DIR$/.gradle/" />
<ignored path="$PROJECT_DIR$/build/" />
<ignored path="$PROJECT_DIR$/out/" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -32,8 +50,43 @@
<ProjectState />
</projectState>
</component>
<component name="ExternalProjectsManager">
<system id="GRADLE">
<state>
<projects_view />
</state>
</system>
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300" />
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/VulnerabilityPatcher.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-281">
<caret line="45" column="18" selection-start-line="45" selection-start-column="18" selection-end-line="45" selection-end-column="18" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Disconnect_Items.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="657">
<caret line="232" column="5" selection-start-line="232" selection-start-column="5" selection-end-line="232" selection-end-column="5" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/resources/config.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="578">
<caret line="34" column="14" selection-start-line="34" selection-start-column="14" selection-end-line="34" selection-end-column="14" />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
@ -41,34 +94,29 @@
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Entity_Tag.java" />
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Death_Potions.java" />
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Arrows.java" />
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Books.java" />
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Crash_Items.java" />
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Death_Potions.java" />
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Death_Items.java" />
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Follow_Range.java" />
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Trident_Riptide.java" />
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Patches.java" />
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Disconnect_Items.java" />
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/VulnerabilityPatcher.java" />
<option value="$PROJECT_DIR$/gradle.properties" />
<option value="$PROJECT_DIR$/src/main/resources/plugin.yml" />
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Patches.java" />
<option value="$PROJECT_DIR$/src/main/resources/config.yml" />
</list>
</option>
</component>
<component name="ProjectFrameBounds" extendedState="6">
<option name="x" value="62" />
<option name="y" value="46" />
<option name="x" value="-10" />
<option name="y" value="-10" />
<option name="width" value="1750" />
<option name="height" value="980" />
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectView">
<navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="PackagesPane" />
<pane id="ProjectPane">
<subPane>
<expand>
@ -76,13 +124,59 @@
<item name="VulnerabilityPatcher" type="b2602c69:ProjectViewProjectNode" />
<item name="VulnerabilityPatcher" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
</path>
<path>
<item name="VulnerabilityPatcher" type="b2602c69:ProjectViewProjectNode" />
<item name="VulnerabilityPatcher" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="VulnerabilityPatcher" type="b2602c69:ProjectViewProjectNode" />
<item name="VulnerabilityPatcher" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
</path>
<path>
<item name="VulnerabilityPatcher" type="b2602c69:ProjectViewProjectNode" />
<item name="VulnerabilityPatcher" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="VulnerabilityPatcher" type="b2602c69:ProjectViewProjectNode" />
<item name="VulnerabilityPatcher" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="vulnerabilitypatcher" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="VulnerabilityPatcher" type="b2602c69:ProjectViewProjectNode" />
<item name="VulnerabilityPatcher" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="vulnerabilitypatcher" type="462c0819:PsiDirectoryNode" />
<item name="patches" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="VulnerabilityPatcher" type="b2602c69:ProjectViewProjectNode" />
<item name="VulnerabilityPatcher" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="PackagesPane" />
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
@ -100,56 +194,61 @@
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="3d5d2873-4535-445c-81cf-26429875d278" name="Default Changelist" comment="" />
<created>1549009858370</created>
<changelist id="1834e4ca-cad0-4e3b-b89d-78acad5c3578" name="Default Changelist" comment="" />
<created>1551339361425</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1549009858370</updated>
<updated>1551339361425</updated>
</task>
<servers />
</component>
<component name="TodoView">
<todo-panel id="selected-file">
<is-autoscroll-to-source value="true" />
</todo-panel>
<todo-panel id="all">
<are-packages-shown value="true" />
<is-autoscroll-to-source value="true" />
</todo-panel>
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
<layout>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.25746268" />
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.26279318" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Designer" order="2" />
<window_info id="UI Designer" order="3" />
<window_info id="Favorites" order="4" side_tool="true" />
<window_info id="Image Layers" order="5" />
<window_info id="Capture Tool" order="6" />
<window_info anchor="bottom" id="Build" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" />
<window_info anchor="bottom" id="Run" order="2" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" weight="0.32936078" />
<window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="bottom" id="Version Control" order="7" />
<window_info anchor="bottom" id="Terminal" order="8" />
<window_info anchor="bottom" id="Event Log" order="9" side_tool="true" />
<window_info anchor="bottom" id="Build" order="10" visible="true" weight="0.3286119" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="right" id="Palette" order="3" />
<window_info anchor="right" id="Maven" order="4" />
<window_info anchor="right" id="Palette&#9;" order="5" />
<window_info anchor="right" id="Capture Analysis" order="6" />
<window_info anchor="right" id="Gradle" order="7" />
<window_info anchor="right" id="Gradle" order="5" />
<window_info anchor="right" id="Palette&#9;" order="6" />
<window_info anchor="right" id="Capture Analysis" order="7" />
<window_info anchor="right" id="Theme Preview" order="8" />
</layout>
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/commands/CommandGetNBT.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="119">
<caret line="19" column="38" selection-start-line="19" selection-start-column="38" selection-end-line="19" selection-end-column="38" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/Variables.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="68">
<caret line="5" column="12" selection-start-line="5" selection-start-column="12" selection-end-line="5" selection-end-column="12" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/SMG.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="408">
@ -157,115 +256,66 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Arrows.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="722">
<caret line="73" column="21" selection-start-line="73" selection-start-column="21" selection-end-line="73" selection-end-column="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Books.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-43">
<caret line="62" column="21" selection-start-line="62" selection-start-column="21" selection-end-line="62" selection-end-column="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Crash_Items.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="147">
<caret line="159" column="21" selection-start-line="159" selection-start-column="21" selection-end-line="159" selection-end-column="21" />
<state relative-caret-position="486">
<caret line="66" column="44" selection-start-line="66" selection-start-column="44" selection-end-line="66" selection-end-column="44" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Death_Potions.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="537">
<caret line="93" column="21" selection-start-line="93" selection-start-column="21" selection-end-line="93" selection-end-column="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Follow_Range.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="680">
<caret line="48" column="21" selection-start-line="48" selection-start-column="8" selection-end-line="48" selection-end-column="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Rouge_Entity.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="283">
<caret line="35" column="13" selection-start-line="35" selection-start-column="13" selection-end-line="35" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Trident_Riptide.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="722">
<caret line="72" column="21" selection-start-line="72" selection-start-column="21" selection-end-line="72" selection-end-column="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Entity_Tag.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="640">
<caret line="51" column="21" selection-start-line="51" selection-start-column="21" selection-end-line="51" selection-end-column="21" />
<state relative-caret-position="453">
<caret line="96" column="10" selection-start-line="96" selection-start-column="10" selection-end-line="96" selection-end-column="10" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Death_Items.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1357">
<caret line="126" column="21" selection-start-line="126" selection-start-column="21" selection-end-line="126" selection-end-column="21" />
<state relative-caret-position="79">
<caret line="137" column="10" selection-start-line="137" selection-start-column="10" selection-end-line="137" selection-end-column="10" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Crash_Items.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="416">
<caret line="178" column="10" selection-start-line="178" selection-start-column="10" selection-end-line="178" selection-end-column="10" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Arrows.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="673">
<caret line="79" column="74" selection-start-line="79" selection-start-column="74" selection-end-line="79" selection-end-column="74" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Patches.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="782">
<caret line="110" column="64" selection-start-line="110" selection-start-column="64" selection-end-line="110" selection-end-column="64" />
<folding>
<element signature="e#6590#6591#0" expanded="true" />
<element signature="e#6686#6687#0" expanded="true" />
<element signature="e#9970#9971#0" expanded="true" />
</folding>
<state relative-caret-position="639">
<caret line="219" column="50" selection-start-line="219" selection-start-column="50" selection-end-line="219" selection-end-column="50" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/VulnerabilityPatcher.java">
<entry file="file://$PROJECT_DIR$/src/main/resources/config.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="78">
<caret line="24" column="45" lean-forward="true" selection-start-line="24" selection-start-column="45" selection-end-line="24" selection-end-column="45" />
<state relative-caret-position="578">
<caret line="34" column="14" selection-start-line="34" selection-start-column="14" selection-end-line="34" selection-end-column="14" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Disconnect_Items.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1502">
<caret line="73" column="13" lean-forward="true" selection-start-line="73" selection-start-column="13" selection-end-line="73" selection-end-column="13" />
<state relative-caret-position="657">
<caret line="232" column="5" selection-start-line="232" selection-start-column="5" selection-end-line="232" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/build.gradle">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/gradlew">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/gradle.properties">
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/VulnerabilityPatcher.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="17">
<caret line="1" column="20" selection-start-line="1" selection-start-column="20" selection-end-line="1" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/README.md">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/plugin.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="17">
<caret line="1" column="14" selection-start-line="1" selection-start-column="14" selection-end-line="1" selection-end-column="14" />
<state relative-caret-position="-281">
<caret line="45" column="18" selection-start-line="45" selection-start-column="18" selection-end-line="45" selection-end-column="18" />
</state>
</provider>
</entry>

View file

@ -1,2 +1,2 @@
pluginGroup=me.CoolJWB.VulnerabilityPatcher
pluginVersion=v0.2.1
pluginVersion=v0.2.2

View file

@ -37,15 +37,6 @@ import java.util.logging.Logger;
public final class VulnerabilityPatcher extends JavaPlugin {
/*
* TODO: Fix that disconnect item shulkers return null in dispensers.
* TODO: Issues with potions?
* TODO: Fix command signs.
* TODO: Fix ReflectionToStringBuilder parse error in shulker.
* Patches: Books with commands, Invalid translations (crashes both client and server), Death Items, Death Potions, Rouge Entities, Arrow knockback, Trident speed,
* Large follow range, Disconnect Items, Crash Eggs, Knowledge Books, Negative Damage Arrows, much more.
*/
public static VulnerabilityPatcher main;
private Logger log = Logger.getLogger("Minecraft");
@ -64,12 +55,6 @@ public final class VulnerabilityPatcher extends JavaPlugin {
@Override
public void onEnable() {
try {
updateConfig();
} catch(IOException e) {
log.log(Level.WARNING, String.format("[%s] Could not update the config: " + e.getLocalizedMessage(), pluginName));
}
initialize();
patches.initialize();
@ -119,45 +104,4 @@ public final class VulnerabilityPatcher extends JavaPlugin {
}
listeners.forEach(listener -> Bukkit.getPluginManager().registerEvents(listener, this));
}
public void updateConfig() throws IOException {
File conf = new File("plugins/VulnerabilityPatcher/config.yml");
String confstr = FileUtils.readFileToString(conf);
if(confstr.contains("ConfVersion")) {
// Check if this prints the real config version.
//switch(main.getConfig().getInt("ConfVersion")) { // Switch the versions, and try to update all versions forward.
// This won't be needed yet, since all versions before this will trigger the config.yml reset.
// This is now generating ConfVersion 0. Next version will need to update from ConfVersion 0 to 1.
/*
case 0:
if(confstr.contains("CrashSigns"))
confstr = confstr.replaceAll("CrashSigns", "CrashItems");
if(!confstr.contains("EntityTag"))
// Does this really work if you have changed the config.yml so it has no spacing/new lines or?
if(!confstr.contains("BlockedEntityTags")) {
confstr = new StringBuilder(confstr).insert((confstr.indexOf("Commands") - 2), "\n# All entity tags that are added here are blocked to use in a monster spawn egg.\n" +
"BlockedEntityTags:\n" +
" - lightning_bolt\n" +
" - falling_block\n").toString();
}
*/
//}
//FileUtils.write(conf, confstr);
}
else {
log.log(Level.WARNING, String.format("[%s] Did not find the ConfVersion in config.yml, reverting to ConfVersion 0 (if you have recently updated from version 0.1.1 then this is normal).", pluginName));
File confbackup = new File("plugins/VulnerabilityPatcher/config-backup.yml");
FileUtils.copyFile(conf, confbackup);
log.log(Level.INFO, String.format("[%s] Made backup of config.yml at plugins/VulnerabilityPatcher/config-backup.yml", pluginName));
FileUtils.forceDelete(conf);
}
}
}

View file

@ -38,22 +38,29 @@ public class Arrows extends Patches implements Listener {
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerVelocityEvent(PlayerVelocityEvent event) {
if(event.getVelocity().getX() > 10 || event.getVelocity().getY() > 10 || event.getVelocity().getZ() > 10)
if(event.getVelocity().getX() > 10 || event.getVelocity().getY() > 10 || event.getVelocity().getZ() > 10) {
event.setCancelled(true);
fired_countermeasure("");
}
debug(event);
}
@EventHandler
@EventHandler(priority = EventPriority.HIGHEST)
public void onEntitySpawnEvent(EntitySpawnEvent event) {
if(event.getEntity().getType() == EntityType.ARROW) {
Arrow arrow = (Arrow) event.getEntity();
if (arrow.getKnockbackStrength() > 10)
if (arrow.getKnockbackStrength() > 10) {
fired_countermeasure("ArrowKnockbackStrenght: " + arrow.getKnockbackStrength());
arrow.setKnockbackStrength(10);
}
if(arrow.getDamage() < 0 || arrow.getDamage() > 214748364)
if(arrow.getDamage() < 0 || arrow.getDamage() > 214748364) {
fired_countermeasure("ArrowDamage: " + arrow.getDamage());
arrow.setDamage(0);
}
}
debug(event);
@ -64,11 +71,15 @@ public class Arrows extends Patches implements Listener {
if(event.getEntity().getType() == EntityType.ARROW) {
Arrow arrow = (Arrow) event.getEntity();
if (arrow.getKnockbackStrength() > 10)
if (arrow.getKnockbackStrength() > 10) {
fired_countermeasure("ArrowKnockbackStrenght: " + arrow.getKnockbackStrength());
arrow.setKnockbackStrength(10);
}
if(arrow.getDamage() < 0)
if(arrow.getDamage() < 0 || arrow.getDamage() > 214748364) {
fired_countermeasure("ArrowDamage: " + arrow.getDamage());
arrow.setDamage(0);
}
}
debug(event);

View file

@ -160,21 +160,23 @@ public class Crash_Items extends Patches implements Listener {
debug(event);
}
public static boolean isCrashItem(ItemStack item) {
public boolean isCrashItem(ItemStack item) {
if(item != null) {
net.minecraft.server.v1_13_R2.ItemStack nmsItemStack = CraftItemStack.asNMSCopy(item);
if(nmsItemStack.getTag() != null) {
NBTTagCompound itemtag = nmsItemStack.getTag();
if(itemtag.toString().contains("translation.test.invalid"))
if(itemtag.toString().contains("translation.test.invalid")) {
fired_countermeasure("isCrashItem");
return true;
}
}
}
return false;
}
public static boolean containsCrashItem(ItemStack item) {
public boolean containsCrashItem(ItemStack item) {
if(item != null) {
net.minecraft.server.v1_13_R2.ItemStack nmsItemStack = CraftItemStack.asNMSCopy(item);
@ -185,8 +187,10 @@ public class Crash_Items extends Patches implements Listener {
for(int a = 0; a <= itemlist.size(); a++) {
NBTTagCompound itemtag = itemlist.getCompound(a).getCompound("tag");
if(itemtag.toString().contains("translation.test.invalid"))
if(itemtag.toString().contains("translation.test.invalid")) {
fired_countermeasure("containsCrashItem");
return true;
}
}
}
}

View file

@ -127,7 +127,7 @@ public class Death_Items extends Patches implements Listener {
debug(event);
}
public static boolean isDeathItem(ItemStack item) {
public boolean isDeathItem(ItemStack item) {
net.minecraft.server.v1_13_R2.ItemStack nmsItemStack = CraftItemStack.asNMSCopy(item);
if(nmsItemStack != null && nmsItemStack.hasTag())
@ -135,22 +135,24 @@ public class Death_Items extends Patches implements Listener {
return false;
}
public static boolean isDeathItem(NBTTagCompound item) {
public boolean isDeathItem(NBTTagCompound item) {
if(item != null) {
NBTTagList attrlist = item.getList("AttributeModifiers", 10);
if(attrlist != null) {
for(int i = 0; i < attrlist.size(); i++) {
NBTTagCompound compound = (NBTTagCompound)attrlist.get(i);
if((compound.getString("Name").equalsIgnoreCase("MAX_HEALTH") || compound.getString("AttributeName").equalsIgnoreCase("generic.maxHealth")) && compound.getDouble("Amount") <= 0)
if((compound.getString("Name").equalsIgnoreCase("MAX_HEALTH") || compound.getString("AttributeName").equalsIgnoreCase("generic.maxHealth")) && compound.getDouble("Amount") <= 0) {
fired_countermeasure("isDeathItem");
return true;
}
}
}
}
return false;
}
public static boolean containsDeathItem(ItemStack item) {
public boolean containsDeathItem(ItemStack item) {
if(item != null) {
net.minecraft.server.v1_13_R2.ItemStack nmsItemStack = CraftItemStack.asNMSCopy(item);
@ -166,8 +168,10 @@ public class Death_Items extends Patches implements Listener {
String name = attrlist.getCompound(b).getString("Name");
Double amount = attrlist.getCompound(b).getDouble("Amount");
if((name.equalsIgnoreCase("MAX_HEALTH") || attribute_name.equalsIgnoreCase("generic.maxHealth")) && amount <= 0)
if((name.equalsIgnoreCase("MAX_HEALTH") || attribute_name.equalsIgnoreCase("generic.maxHealth")) && amount <= 0) {
fired_countermeasure("containsDeathItem");
return true;
}
}
}
}

View file

@ -94,18 +94,22 @@ public class Death_Potions extends Patches implements Listener {
debug(event);
}
public static boolean isDeathPotion(List<PotionEffect> effects) {
public boolean isDeathPotion(List<PotionEffect> effects) {
for(PotionEffect effect : effects) {
if(effect.getType().getName().equalsIgnoreCase("HEAL") && (effect.getAmplifier() == 125 || effect.getAmplifier() == 93 || effect.getAmplifier() == 61 || effect.getAmplifier() == 29))
if(effect.getType().getName().equalsIgnoreCase("HEAL") && (effect.getAmplifier() == 125 || effect.getAmplifier() == 93 || effect.getAmplifier() == 61 || effect.getAmplifier() == 29)) {
fired_countermeasure("isDeathPotion");
return true;
}
}
return false;
}
public static boolean isDeathPotion(Collection<PotionEffect> effects) {
public boolean isDeathPotion(Collection<PotionEffect> effects) {
for(PotionEffect effect : effects) {
if(effect.getType().getName().equalsIgnoreCase("HEAL") && (effect.getAmplifier() == 125 || effect.getAmplifier() == 93 || effect.getAmplifier() == 61 || effect.getAmplifier() == 29))
if (effect.getType().getName().equalsIgnoreCase("HEAL") && (effect.getAmplifier() == 125 || effect.getAmplifier() == 93 || effect.getAmplifier() == 61 || effect.getAmplifier() == 29)) {
fired_countermeasure("isDeathPotion");
return true;
}
}
return false;
}

View file

@ -175,12 +175,20 @@ public class Disconnect_Items extends Patches implements Listener {
public boolean isDisconnectItem(NBTTagCompound item) {
if(item != null) {
if(item.hasKey("CustomPotionColor") && item.getInt("CustomPotionColor") <= 0)
if(item.hasKey("CustomPotionColor") && item.getInt("CustomPotionColor") < 0) {
fired_countermeasure("isCustomPotionColorDisconnectItem");
return true;
else if(item.getCompound("display").hasKey("color") && item.getCompound("display").getInt("color") <= 0)
}
else if(item.getCompound("display").hasKey("color") && item.getCompound("display").getInt("color") < 0) {
fired_countermeasure("isDisplayColorDisconnectItem");
return true;
else if(item.toString().length() > 50000 || isMovementDisconnectItem(item) || isInvalidAttributeName(item))
}
else if(item.toString().length() > 50000 || isMovementDisconnectItem(item) || isInvalidAttributeName(item)) {
fired_countermeasure("isLargeNBTDisconnectItem");
return true;
}
}
return false;
}
@ -212,9 +220,11 @@ public class Disconnect_Items extends Patches implements Listener {
for(int a = 0; a <= attrlist.size(); a++) {
NBTTagCompound attribute = attrlist.getCompound(a);
if(attribute.getString("AttributeName").equalsIgnoreCase("generic.movementspeed") && attributes.containsKey(attribute.getString("AttributeName").toLowerCase()) && !Float.isFinite(attribute.getFloat("Amount")))
return true;
if(attribute.getString("AttributeName").equalsIgnoreCase("generic.movementspeed") && attributes.containsKey(attribute.getString("AttributeName").toLowerCase()) && !Float.isFinite(attribute.getFloat("Amount"))) {
fired_countermeasure("isMovementDisconnectItem");
return true;
}
attributes.put(attribute.getString("AttributeName").toLowerCase(), attribute.getFloat("Amount"));
}
}
@ -231,8 +241,10 @@ public class Disconnect_Items extends Patches implements Listener {
NBTTagCompound attribute = attrlist.getCompound(a);
if(attribute != null && attribute.getString("AttributeName").toLowerCase() != "") {
if(!Variables.Attributes.liststr.contains(attribute.getString("AttributeName").toLowerCase()))
return true;
if(!Variables.Attributes.liststr.contains(attribute.getString("AttributeName").toLowerCase())) {
fired_countermeasure("isInvalidAttributeNameDisconnectItem");
return true;
}
}
}
}

View file

@ -24,6 +24,7 @@ import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
import org.bukkit.scheduler.BukkitScheduler;
import org.fusesource.jansi.Ansi;
import java.util.ArrayList;
import java.util.HashMap;
@ -213,6 +214,15 @@ public class Patches implements Listener {
}
}
public void fired_countermeasure(String reason) {
try {
if (devmode)
log.log(Level.INFO, String.format("[%s] Fired countermeasure in %s reason: %s", pluginName, getClass().getName(), reason));
} catch(ChatMessageException e) {
log.log(Level.INFO, String.format("[%s] Could not debug event in %s.", pluginName, getClass().getName()));
}
}
public void clearItemMeta(ItemStack item) {
item.setItemMeta(null);
}

View file

@ -1,14 +1,19 @@
package me.cooljwb.vulnerabilitypatcher.patches;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.*;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityInteractEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.scheduler.BukkitScheduler;
import org.bukkit.util.Vector;
import java.util.Random;
import java.util.logging.Level;
import java.util.logging.Logger;
@ -50,9 +55,6 @@ public class Rouge_Entity extends Patches implements Listener {
if(entity != null && (entity.getVelocity().getX() > 10.0D || entity.getVelocity().getY() > 10.0D || entity.getVelocity().getZ() > 10.0D || entity.getVelocity().getX() < -6.0D || entity.getVelocity().getY() < -6.0D || entity.getVelocity().getZ() < -6.0D)) {
if(entity.getName().equals("Firework Rocket"))
entity.remove();
else
entity.setVelocity(new Vector(0,0,0));
}
}
}
@ -60,4 +62,68 @@ public class Rouge_Entity extends Patches implements Listener {
}
}, 0L, 0);
}
long timediff = 0;
@EventHandler(priority = EventPriority.HIGHEST)
public void onEntityDamage(EntityDamageByEntityEvent event) {
if(!event.getDamager().getName().equalsIgnoreCase("Arrow")) {
LivingEntity entity = (LivingEntity) event.getEntity();
LivingEntity damager = (LivingEntity) event.getDamager();
Location damager_location = event.getDamager().getLocation();
Location entity_location = event.getEntity().getLocation();
Vector vector = damager_location.toVector().subtract(entity_location.toVector()).normalize();
ItemStack item = damager.getEquipment().getItemInMainHand();
if(item.getEnchantments().containsKey(Enchantment.KNOCKBACK) && item.getEnchantmentLevel(Enchantment.KNOCKBACK) >= 10) {
event.setCancelled(true);
vector.setY(0);
vector.multiply(-0.5);
if (entity.getFallDistance() > 0) {
vector.setY(-0.5);
}
else {
if((System.currentTimeMillis() - timediff) > 1000) {
vector.setY(0.4);
timediff = System.currentTimeMillis();
}
else
vector.setY(0);
}
event.getEntity().setVelocity(vector);
entity.damage(event.getDamage());
}
/*
if(item.getEnchantments().containsKey(Enchantment.KNOCKBACK) && item.getEnchantmentLevel(Enchantment.KNOCKBACK) <= 10) {
int knockback = item.getEnchantmentLevel(Enchantment.KNOCKBACK);
vector.multiply(knockback * -0.5);
}
else {
vector.multiply(-0.5);
}
if (entity.getFallDistance() > 0)
vector.setY(0);
else
vector.setY(0.3);
entity.damage(event.getDamage());
event.getEntity().setVelocity(vector);
entity.getWorld().spawnParticle(Particle.DAMAGE_INDICATOR, entity_location.getBlockX(), entity_location.getBlockY() + 1, entity_location.getBlockZ(), 2);
damager.getWorld().spawnParticle(Particle.SWEEP_ATTACK, damager_location.getBlockX(), damager_location.getBlockY() + 1, damager_location.getBlockZ(), 1);
*/
}
debug(event);
}
}

View file

@ -8,6 +8,7 @@ import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerMoveEvent;
@ -41,7 +42,7 @@ public class Trident_Riptide extends Patches implements Listener {
private HashMap<Player, Integer> enchantlevel = new HashMap<>();
@EventHandler
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerInteractEvent(PlayerInteractEvent event) {
Player player = event.getPlayer();
ItemStack item = event.getItem();
@ -60,7 +61,7 @@ public class Trident_Riptide extends Patches implements Listener {
debug(event);
}
@EventHandler
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerRiptideEvent(PlayerRiptideEvent event) {
Player player = event.getPlayer();
ItemStack item = event.getItem();

View file

@ -32,7 +32,4 @@ Notify:
Permission: vulnerability.notify
# DevMode should be set to false, unless you're a developer of this plugin.
DevMode: false
# This should not be changed unless you know what you're doing.
ConfVersion: 0
DevMode: false

View file

@ -1,5 +1,5 @@
name: VulnerabilityPatcher
version: 0.2.1
version: 0.2.2
main: me.cooljwb.vulnerabilitypatcher.VulnerabilityPatcher
api-version: 1.13
authors: [CoolJWB]