Commit v0.4

Added more 1.13 patches, made some small improvements, error fixes and added a command to delete player data.
This commit is contained in:
CoolJWB 2019-07-03 00:43:07 +02:00
parent 84910598f2
commit 97c57cd9e1
20 changed files with 432 additions and 233 deletions

View file

@ -1,7 +1,7 @@
<component name="libraryTable">
<library name="Gradle: com.destroystokyo.paper:paper-api:1.13.2-R0.1-SNAPSHOT">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.destroystokyo.paper/paper-api/1.13.2-R0.1-SNAPSHOT/c59a5eecaa5170937a7044fefd475b1373bb255/paper-api-1.13.2-R0.1-SNAPSHOT.jar!/" />
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.destroystokyo.paper/paper-api/1.13.2-R0.1-SNAPSHOT/acb4e5ffd25814ef0a53acedec9a94d79dd3f7a1/paper-api-1.13.2-R0.1-SNAPSHOT.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
@ -9,6 +9,7 @@
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.destroystokyo.paper/paper-api/1.13.2-R0.1-SNAPSHOT/2daddae5bcc8c14d08b014a7e2366a82497f4fd5/paper-api-1.13.2-R0.1-SNAPSHOT-sources.jar!/" />
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.destroystokyo.paper/paper-api/1.13.2-R0.1-SNAPSHOT/e27f6d6e0d9ff5618be8298262586fe4c59f54cd/paper-api-1.13.2-R0.1-SNAPSHOT-sources.jar!/" />
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.destroystokyo.paper/paper-api/1.13.2-R0.1-SNAPSHOT/29425a28f9797b501425b65a6e85382085c6885d/paper-api-1.13.2-R0.1-SNAPSHOT-sources.jar!/" />
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.destroystokyo.paper/paper-api/1.13.2-R0.1-SNAPSHOT/e4e756ec274f5d9e66e849b971df02e23cbb22d6/paper-api-1.13.2-R0.1-SNAPSHOT-sources.jar!/" />
</SOURCES>
</library>
</component>

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.id="VulnerabilityPatcher-Paper" 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.3.1" type="JAVA_MODULE" version="4">
<module external.linked.project.id="VulnerabilityPatcher-Paper" 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.4" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$/../..">

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.id="VulnerabilityPatcher-Paper: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.3.1" type="JAVA_MODULE" version="4">
<module external.linked.project.id="VulnerabilityPatcher-Paper: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.4" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="minecraft" name="Minecraft">
<configuration>

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.id="VulnerabilityPatcher-Paper: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.3.1" type="JAVA_MODULE" version="4">
<module external.linked.project.id="VulnerabilityPatcher-Paper: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.4" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="minecraft" name="Minecraft">
<configuration>

444
.idea/workspace.xml generated
View file

@ -2,58 +2,24 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="4038a6e9-7d52-4dd0-91ef-d9a12aa1c1b2" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.classpath" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/VulnerabilityPatcher.iml" beforeDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Chunks.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Item_Frames.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_destroystokyo_paper_paper_api_1_13_2_R0_1_SNAPSHOT.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_destroystokyo_paper_paper_api_1_13_2_R0_1_SNAPSHOT.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__org_spigotmc_spigot_api_1_13_2_R0_1_SNAPSHOT.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/modules/me.CoolJWB.VulnerabilityPatcher.VulnerabilityPatcher.iml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/modules/me.CoolJWB.VulnerabilityPatcher.VulnerabilityPatcher.main.iml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/modules/me.CoolJWB.VulnerabilityPatcher.VulnerabilityPatcher.test.iml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/modules/me.cooljwb.vulnerabilitypatcher.VulnerabilityPatcher-Paper.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules/me.cooljwb.vulnerabilitypatcher.VulnerabilityPatcher-Paper.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/modules/me.cooljwb.vulnerabilitypatcher.VulnerabilityPatcher-Paper.main.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules/me.cooljwb.vulnerabilitypatcher.VulnerabilityPatcher-Paper.main.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/modules/me.cooljwb.vulnerabilitypatcher.VulnerabilityPatcher-Paper.test.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules/me.cooljwb.vulnerabilitypatcher.VulnerabilityPatcher-Paper.test.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/uiDesigner.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/vcs.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace-SK54BF641F610A.xml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.project" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.settings/org.eclipse.buildship.core.prefs" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bin/main/.gitignore" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/bin/main/config.yml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/bin/main/plugin.yml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/gradle.properties" beforeDir="false" afterPath="$PROJECT_DIR$/gradle.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/me/cooljwb/vulnerabilitypatcher/SMG.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/me/cooljwb/vulnerabilitypatcher/VulnerabilityPatcher.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/me/cooljwb/vulnerabilitypatcher/commands/CommandVulnerabilityPatcher.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/me/cooljwb/vulnerabilitypatcher/patches/Books.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/me/cooljwb/vulnerabilitypatcher/patches/Crash_Egg.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/me/cooljwb/vulnerabilitypatcher/patches/Crash_Items$1.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/me/cooljwb/vulnerabilitypatcher/patches/Crash_Items$2.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/me/cooljwb/vulnerabilitypatcher/patches/Crash_Items.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/me/cooljwb/vulnerabilitypatcher/patches/Death_Items$1.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/me/cooljwb/vulnerabilitypatcher/patches/Death_Items$2.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/me/cooljwb/vulnerabilitypatcher/patches/Death_Items.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/me/cooljwb/vulnerabilitypatcher/patches/Death_Potions.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/me/cooljwb/vulnerabilitypatcher/patches/Disconnect_Items$1.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/me/cooljwb/vulnerabilitypatcher/patches/Disconnect_Items$2.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/me/cooljwb/vulnerabilitypatcher/patches/Disconnect_Items.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/me/cooljwb/vulnerabilitypatcher/patches/Follow_Range.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/me/cooljwb/vulnerabilitypatcher/patches/Patches.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/me/cooljwb/vulnerabilitypatcher/patches/Player_Knockback.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/me/cooljwb/vulnerabilitypatcher/patches/Rouge_Entity$1.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/me/cooljwb/vulnerabilitypatcher/patches/Rouge_Entity.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/me/cooljwb/vulnerabilitypatcher/patches/Trident_Riptide$1.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/classes/me/cooljwb/vulnerabilitypatcher/patches/Trident_Riptide.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/resources/config.yml" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/resources/config.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/out/production/resources/plugin.yml" beforeDir="false" afterPath="$PROJECT_DIR$/out/production/resources/plugin.yml" 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/Variables.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/Variables.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/commands/CommandVulnerabilityPatcher.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/commands/CommandVulnerabilityPatcher.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/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/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/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/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/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>
@ -79,7 +45,26 @@
</system>
</component>
<component name="FileEditorManager">
<leaf />
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false">
<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="408">
<caret line="39" column="39" lean-forward="true" selection-start-line="39" selection-start-column="39" selection-end-line="39" selection-end-column="39" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/resources/config.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="603">
<caret line="43" column="43" lean-forward="true" selection-start-line="43" selection-start-column="43" selection-end-line="43" selection-end-column="43" />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
@ -88,6 +73,20 @@
</list>
</option>
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>getHandle()</find>
<find>c(</find>
<find>getHandler</find>
<find>getCustom</find>
<find>getHandle().</find>
<find>c(NBT</find>
<find>containsDeathItem</find>
</findStrings>
<dirStrings>
<dir>C:\Users\William\.gradle\caches\modules-2\files-2.1\com.destroystokyo.paper\paper-api\1.13.2-R0.1-SNAPSHOT\c59a5eecaa5170937a7044fefd475b1373bb255\paper-api-1.13.2-R0.1-SNAPSHOT.jar!\org</dir>
</dirStrings>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
@ -97,22 +96,28 @@
<option value="$PROJECT_DIR$/build.gradle" />
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/commands/CommandGetNBT.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/Death_Items.java" />
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Patches.java" />
<option value="$PROJECT_DIR$/src/main/resources/config.yml" />
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Structure_Blocks.java" />
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Rouge_Entity.java" />
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/Variables.java" />
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/SMG.java" />
<option value="$PROJECT_DIR$/src/main/resources/plugin.yml" />
<option value="$PROJECT_DIR$/gradle.properties" />
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/VulnerabilityPatcher.java" />
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Chunks.java" />
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Item_Frames.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/Follow_Range.java" />
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/commands/CommandVulnerabilityPatcher.java" />
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Structure_Blocks.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/Patches.java" />
<option value="$PROJECT_DIR$/src/main/resources/config.yml" />
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Disconnect_Items.java" />
</list>
</option>
</component>
<component name="ProjectFrameBounds" extendedState="6">
<option name="x" value="1912" />
<option name="y" value="-15" />
<option name="x" value="124" />
<option name="y" value="37" />
<option name="width" value="1936" />
<option name="height" value="1056" />
</component>
@ -123,7 +128,6 @@
</navigator>
<panes>
<pane id="Scope" />
<pane id="PackagesPane" />
<pane id="ProjectPane">
<subPane>
<expand>
@ -157,6 +161,15 @@
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="vulnerabilitypatcher" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="VulnerabilityPatcher-Paper" type="b2602c69:ProjectViewProjectNode" />
<item name="VulnerabilityPatcher-Paper" 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="commands" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="VulnerabilityPatcher-Paper" type="b2602c69:ProjectViewProjectNode" />
<item name="VulnerabilityPatcher-Paper" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
@ -166,14 +179,31 @@
<item name="vulnerabilitypatcher" type="462c0819:PsiDirectoryNode" />
<item name="patches" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="VulnerabilityPatcher-Paper" type="b2602c69:ProjectViewProjectNode" />
<item name="VulnerabilityPatcher-Paper" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="VulnerabilityPatcher-Paper" type="b2602c69:ProjectViewProjectNode" />
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
</path>
<path>
<item name="VulnerabilityPatcher-Paper" type="b2602c69:ProjectViewProjectNode" />
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
<item name="Gradle: com.destroystokyo.paper:paper-api:1.13.2-R0.1-SNAPSHOT" type="70bed36:NamedLibraryElementNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="PackagesPane" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1561510173801" />
<property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1562107277651" />
<property name="project.structure.last.edited" value="Modules" />
<property name="project.structure.proportion" value="0.0" />
<property name="project.structure.side.proportion" value="0.0" />
@ -225,9 +255,10 @@
<servers />
</component>
<component name="ToolWindowManager">
<frame x="1912" y="-15" width="1936" height="1056" extended-state="6" />
<frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
<editor active="true" />
<layout>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.2803838" />
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.20788912" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Image Layers" order="2" />
<window_info id="Designer" order="3" />
@ -246,7 +277,7 @@
<window_info anchor="bottom" id="Version Control" order="9" />
<window_info anchor="bottom" id="Build" order="10" weight="0.32936078" />
<window_info anchor="bottom" id="Floobits" order="11" />
<window_info anchor="bottom" id="Messages" order="12" weight="0.32936078" />
<window_info active="true" anchor="bottom" id="Messages" order="12" visible="true" weight="0.32936078" />
<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" />
@ -259,30 +290,6 @@
</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="272">
<caret line="16" column="13" selection-start-line="16" selection-start-column="13" selection-end-line="16" selection-end-column="13" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</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="299">
<caret line="34" column="13" selection-start-line="34" selection-start-column="13" selection-end-line="34" selection-end-column="13" />
</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="299">
<caret line="46" column="13" selection-start-line="46" selection-start-column="13" selection-end-line="46" selection-end-column="13" />
</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="299">
@ -290,20 +297,6 @@
</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="408">
<caret line="32" column="13" selection-start-line="32" selection-start-column="13" selection-end-line="32" selection-end-column="13" />
</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/patches/Trident_Riptide.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="161">
@ -311,13 +304,6 @@
</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="-34">
<caret line="17" column="13" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Blocks.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="68">
@ -325,86 +311,10 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Books.java">
<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="433">
<caret line="81" column="44" lean-forward="true" selection-start-line="81" selection-start-column="44" selection-end-line="81" selection-end-column="44" />
</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="-2253">
<caret line="51" column="13" selection-start-line="51" selection-start-column="13" selection-end-line="51" selection-end-column="13" />
</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="-210">
<caret line="8" lean-forward="true" selection-start-line="8" selection-end-line="8" />
</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="214">
<caret line="49" column="17" selection-start-line="49" selection-start-column="17" selection-end-line="49" selection-end-column="51" />
<folding>
<element signature="method#onBlockDispenseEvent#0;class#Death_Items#0" />
<element signature="method#onPlayerDropEvent#0;class#Death_Items#0" />
<element signature="method#isDeathItem#0;class#Death_Items#0" />
<element signature="method#isDeathItem#1;class#Death_Items#0" />
</folding>
</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="212">
<caret line="25" lean-forward="true" selection-start-line="25" selection-end-line="25" />
</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="1708">
<caret line="155" column="79" selection-start-line="155" selection-start-column="79" selection-end-line="155" selection-end-column="79" />
</state>
</provider>
</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>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gradle.properties">
<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$/build.gradle">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="391">
<caret line="23" column="37" selection-start-line="23" selection-start-column="37" selection-end-line="23" selection-end-column="37" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/config.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187">
<caret line="11" column="11" selection-start-line="11" selection-start-column="11" selection-end-line="11" selection-end-column="11" />
</state>
</provider>
</entry>
<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="450">
<caret line="86" column="66" selection-start-line="86" selection-start-column="66" selection-end-line="86" selection-end-column="66" />
<state relative-caret-position="272">
<caret line="16" column="13" selection-start-line="16" selection-start-column="13" selection-end-line="16" selection-end-column="13" />
<folding>
<element signature="imports" expanded="true" />
</folding>
@ -421,10 +331,188 @@
</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="399">
<caret line="43" column="55" lean-forward="true" selection-start-line="43" selection-start-column="55" selection-end-line="43" selection-end-column="55" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</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="136">
<caret line="9" column="35" lean-forward="true" selection-start-line="9" selection-start-column="35" selection-end-line="9" selection-end-column="35" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.destroystokyo.paper/paper-api/1.13.2-R0.1-SNAPSHOT/29425a28f9797b501425b65a6e85382085c6885d/paper-api-1.13.2-R0.1-SNAPSHOT-sources.jar!/org/bukkit/entity/Entity.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2465">
<caret line="167" column="81" selection-start-line="167" selection-start-column="79" selection-end-line="167" selection-end-column="81" />
</state>
</provider>
</entry>
<entry file="jar://$PROJECT_DIR$/libs/spigot-1.13.2.jar!/org/bukkit/craftbukkit/v1_13_R2/entity/CraftEntity.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="13277">
<caret line="957" column="51" selection-start-line="957" selection-start-column="39" selection-end-line="957" selection-end-column="51" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://$PROJECT_DIR$/libs/spigot-1.13.2.jar!/net/minecraft/server/v1_13_R2/Entity.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1564">
<caret line="1425" column="24" selection-start-line="1425" selection-start-column="19" selection-end-line="1425" selection-end-column="24" />
</state>
</provider>
</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="12" lean-forward="true" selection-start-line="1" selection-start-column="12" selection-end-line="1" selection-end-column="12" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gradle.properties">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="17">
<caret line="1" column="18" selection-start-line="1" selection-start-column="18" selection-end-line="1" selection-end-column="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/build.gradle">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="391">
<caret line="23" column="37" selection-start-line="23" selection-start-column="37" selection-end-line="23" selection-end-column="37" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Chunks.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="374">
<caret line="22" column="53" lean-forward="true" selection-start-line="22" selection-start-column="53" selection-end-line="22" selection-end-column="53" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#868#869#0" expanded="true" />
</folding>
</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="790">
<caret line="81" column="44" lean-forward="true" selection-start-line="81" selection-start-column="44" selection-end-line="81" selection-end-column="44" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Item_Frames.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="68">
<caret line="10" column="13" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" />
</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="33">
<caret line="2" selection-start-line="2" selection-end-line="2" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/commands/CommandVulnerabilityPatcher.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="382">
<caret line="105" column="79" lean-forward="true" selection-start-line="105" selection-start-column="79" selection-end-line="105" selection-end-column="79" />
<state relative-caret-position="365">
<caret line="80" column="71" selection-start-line="80" selection-start-column="71" selection-end-line="80" selection-end-column="71" />
</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="637">
<caret line="50" column="86" lean-forward="true" selection-start-line="50" selection-start-column="86" selection-end-line="50" selection-end-column="86" />
</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="17">
<caret line="1" lean-forward="true" selection-start-line="1" selection-end-line="1" />
</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="660">
<caret line="162" lean-forward="true" selection-start-line="162" selection-end-line="162" />
<folding>
<element signature="method#onBlockDispenseEvent#0;class#Death_Items#0" />
<element signature="method#onPlayerDropEvent#0;class#Death_Items#0" />
<element signature="method#containsDeathItem#0;class#Death_Items#0" />
</folding>
</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="-34">
<caret line="17" column="13" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" />
</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="-1420">
<caret line="46" column="13" selection-start-line="46" selection-start-column="13" selection-end-line="46" selection-end-column="13" />
</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="385">
<caret line="102" column="21" lean-forward="true" selection-start-line="102" selection-start-column="21" selection-end-line="102" selection-end-column="21" />
</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="102">
<caret line="57" column="129" lean-forward="true" selection-start-line="57" selection-start-column="129" selection-end-line="57" selection-end-column="129" />
<folding>
<element signature="method#notify#0;class#Patches#0" />
<element signature="method#notify#1;class#Patches#0" />
<element signature="method#notifyViolation#0;class#Patches#0" />
<element signature="method#notifyViolation#1;class#Patches#0" />
<element signature="method#debug#0;class#Patches#0" />
<element signature="method#fired_countermeasure#0;class#Patches#0" />
<element signature="method#mode#0;class#Patches#0" />
<element signature="e#11198#11234#0" />
<element signature="e#11663#11664#0" expanded="true" />
<element signature="method#clearItemMeta#1;class#Patches#0" />
<element signature="method#getNBTItemTag#0;class#Patches#0" />
<element signature="method#getNBTAttributeList#0;class#Patches#0" />
<element signature="method#itemToString#0;class#Patches#0" />
<element signature="method#itemInVisibleSlot#0;class#Patches#0" />
</folding>
</state>
</provider>
</entry>
<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="408">
<caret line="39" column="39" lean-forward="true" selection-start-line="39" selection-start-column="39" selection-end-line="39" selection-end-column="39" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/config.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="603">
<caret line="43" column="43" lean-forward="true" selection-start-line="43" selection-start-column="43" selection-end-line="43" selection-end-column="43" />
</state>
</provider>
</entry>

View file

@ -1,2 +1,2 @@
pluginGroup=me.cooljwb.vulnerabilitypatcher
pluginVersion=v0.3.1
pluginVersion=v0.4

View file

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

View file

@ -26,16 +26,17 @@ public enum SMG {
VULNERABILITYPATCHER("&8[&3V&bP&8] "),
VULNERABILITYPATCHER_HELP("&8&l&m-------------&r &8[&3V&bP&8] &8&l&m-------------&r\n" +
"&8 - &7/vp help &aShow the plugin commands.\n" +
"&8 - &7/vp version &aGet the plugin version.\n" +
"&8 - &7/vp help &aShow the plugin commands.\n" +
"&8 - &7/vp version &aGet the plugin version.\n" +
"&8 - &7/vp reload &aReload the plugin.\n" +
"&8 - &7/getnbt &aPrint the item in hands NBT.\n" +
"&8 - &7/vp delete <player> &aDeletes a players data fully.\n" +
"&8 - &7/getnbt &aPrint the item in hands NBT.\n" +
"\n" +
"&8&l&m------------&r &8[&cCONF&8] &8&l&m------------&r\n" +
"&8 - &7/vp blocktag <entity> &aBlocks an entity in custom mob eggs.\n" +
"&8 - &7/vp unblocktag <entity> &aUnblocks an entity in custom mob eggs.\n" +
"&8 - &7/vp enablepatch <patch> &aEnables an exploit patch.\n" +
"&8 - &7/vp disablepatch <patch> &aDisables an exploit patch."),
"&8 - &7/vp blocktag <entity> &aBlocks an entity in custom mob eggs.\n" +
"&8 - &7/vp unblocktag <entity> &aUnblocks an entity in custom mob eggs.\n" +
"&8 - &7/vp enablepatch <patch> &aEnables an exploit patch.\n" +
"&8 - &7/vp disablepatch <patch> &aDisables an exploit patch."),
ITEM(SMG.VULNERABILITYPATCHER.msg + "&cThis item is not allowed."),
ITEMS(SMG.VULNERABILITYPATCHER.msg + "&cAn item in your inventory has been cleared for being potentially dangerous."),
@ -47,6 +48,7 @@ public enum SMG {
NO_PERMISSION(SMG.VULNERABILITYPATCHER.msg + "&cYou do not have permission to do this."),
NOT_PLAYER(SMG.VULNERABILITYPATCHER.msg + "&cThis command can only be done in game."),
UNKNOWN_ARGUMENT(SMG.VULNERABILITYPATCHER.msg + "&cUnknown argument."),
PLAYER_NOT_FOUND(SMG.VULNERABILITYPATCHER.msg + "&cPlayer %s could not be found."),
BLOCKED_TAGS(SMG.VULNERABILITYPATCHER.msg + "&aBlocked tag %s in all monster eggs."),
UNBLOCKED_TAGS(SMG.VULNERABILITYPATCHER.msg + "&cUnblocked tag %s in all monster eggs."),

View file

@ -6,7 +6,7 @@ import java.util.List;
public enum Variables {
Attributes(Arrays.asList("generic.maxhealth", "generic.followrange", "generic.knockbackresistance",
"generic.movementspeed", "generic.attackdamage", "generic.armor", "generic.armortoughness",
"generic.attackspeed", "generic.luck", "horse.jumpstrenght", "generic.attackknockback", "generic.flyingspeed",
"generic.attackspeed", "generic.luck", "horse.jumpstrength", "generic.attackknockback", "generic.flyingspeed",
"zombie.spawnreinforcements"));
public List<String> liststr;

View file

@ -85,6 +85,8 @@ public final class VulnerabilityPatcher extends JavaPlugin {
public void registerEvents() {
for(String patch : getConfig().getStringList("Patches")) {
if(Patches.devmode)
log.log(Level.INFO, patch);
switch(patch) {
case "DeathPotions": listeners.add(new Death_Potions()); break;
case "DeathItems": listeners.add(new Death_Items()); break;
@ -98,6 +100,8 @@ public final class VulnerabilityPatcher extends JavaPlugin {
case "EntityTag": listeners.add(new Entity_Tag()); break;
case "Blocks": listeners.add(new Blocks()); break;
case "StructureBlocks": listeners.add(new Structure_Blocks()); break;
case "Chunks": listeners.add(new Chunks()); break;
case "ItemFrames": listeners.add(new Item_Frames()); break;
}
}
listeners.forEach(listener -> Bukkit.getPluginManager().registerEvents(listener, this));

View file

@ -4,12 +4,18 @@ import me.cooljwb.vulnerabilitypatcher.SMG;
import me.cooljwb.vulnerabilitypatcher.VulnerabilityPatcher;
import me.cooljwb.vulnerabilitypatcher.patches.Patches;
import java.io.File;
import java.util.List;
import java.util.logging.Logger;
import net.minecraft.server.v1_13_R2.EntityPlayer;
import net.minecraft.server.v1_13_R2.NBTTagCompound;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity;
/*
* Copyright 2019 CoolJWB
@ -44,7 +50,7 @@ public class CommandVulnerabilityPatcher extends Patches implements CommandExecu
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if(cmd.getName().equalsIgnoreCase(vulnerabilitypatcher)) {
if(args.length == 0 || args[0].equalsIgnoreCase("help")) {
if(args.length <= 0 || args[0].equalsIgnoreCase("help")) {
if(sender.hasPermission(main.getConfig().getString("Commands.Help.Permission")))
msg(sender, SMG.VULNERABILITYPATCHER_HELP.msg);
else
@ -68,7 +74,20 @@ public class CommandVulnerabilityPatcher extends Patches implements CommandExecu
msg(sender, SMG.NO_PERMISSION.msg);
}
else if(args.length == 2 && args[0].equalsIgnoreCase("blocktag")) {
else if(args[0].equalsIgnoreCase("delete") && args.length == 2) {
if(sender.hasPermission(main.getConfig().getString("Commands.Delete.Permission"))) {
if(Bukkit.getPlayer(args[1]) != null)
((CraftEntity)Bukkit.getPlayer(args[1])).getHandle().f(new NBTTagCompound());
else if(Bukkit.getOfflinePlayer(args[1]) != null) {
File file = new File(Bukkit.getServer().getWorldContainer() + "/world/playerdata/" + Bukkit.getOfflinePlayer(args[1]).getUniqueId().toString() + ".dat");
file.delete();
}
else
msg(sender, String.format(SMG.PLAYER_NOT_FOUND.msg, args[1]));
}
}
else if(args[0].equalsIgnoreCase("blocktag") && args.length == 2) {
if(sender.hasPermission(main.getConfig().getString("Commands.BlockTags.Permission"))) {
List<String> stringList = main.getConfig().getStringList("BlockedEntityTags");
stringList.add(args[1]);
@ -82,7 +101,7 @@ public class CommandVulnerabilityPatcher extends Patches implements CommandExecu
msg(sender, SMG.NO_PERMISSION.msg);
}
else if(args.length == 2 && args[0].equalsIgnoreCase("unblocktag")) {
else if(args[0].equalsIgnoreCase("unblocktag") && args.length == 2) {
if(sender.hasPermission(main.getConfig().getString("Commands.UnblockTags.Permission"))) {
List<String> stringList = main.getConfig().getStringList("BlockedEntityTags");
stringList.remove(args[1]);
@ -96,7 +115,7 @@ public class CommandVulnerabilityPatcher extends Patches implements CommandExecu
msg(sender, SMG.NO_PERMISSION.msg);
}
else if(args.length == 2 && args[0].equalsIgnoreCase("enablepatch")) {
else if(args[0].equalsIgnoreCase("enablepatch") && args.length == 2) {
if(sender.hasPermission(main.getConfig().getString("Commands.EnablePatch.Permission"))) {
List<String> stringList = main.getConfig().getStringList("Patches");
stringList.add(args[1]);
@ -110,7 +129,7 @@ public class CommandVulnerabilityPatcher extends Patches implements CommandExecu
msg(sender, SMG.NO_PERMISSION.msg);
}
else if(args.length == 2 && args[0].equalsIgnoreCase("disablepatch")) {
else if(args[0].equalsIgnoreCase("disablepatch") && args.length == 2) {
if(sender.hasPermission(main.getConfig().getString("Commands.DisablePatch.Permission"))) {
List<String> stringList = main.getConfig().getStringList("Patches");
stringList.remove(args[1]);

View file

@ -1,6 +1,5 @@
package me.cooljwb.vulnerabilitypatcher.patches;
import org.apache.commons.lang.builder.ReflectionToStringBuilder;
import org.bukkit.entity.*;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
@ -9,7 +8,8 @@ import org.bukkit.event.entity.EntitySpawnEvent;
import org.bukkit.event.entity.ProjectileLaunchEvent;
import org.bukkit.event.player.PlayerVelocityEvent;
import java.util.logging.Level;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.logging.Logger;
/*
@ -35,13 +35,13 @@ import java.util.logging.Logger;
public class Arrows extends Patches implements Listener {
private Logger log = Logger.getLogger("Minecraft");
private ArrayList<EntityType> blockedEntityTypes = new ArrayList<>(Arrays.asList(EntityType.ARROW, EntityType.SPECTRAL_ARROW, EntityType.TIPPED_ARROW));
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerVelocityEvent(PlayerVelocityEvent event) {
if(event.getVelocity().getX() > 10 || event.getVelocity().getY() > 10 || event.getVelocity().getZ() > 10) {
fired_countermeasure("PlayerVelocity: " + event.getVelocity().getX() + " " + event.getVelocity().getY() + " " + event.getVelocity().getZ());
event.setCancelled(true);
fired_countermeasure("");
}
debug(event);
@ -68,7 +68,7 @@ public class Arrows extends Patches implements Listener {
@EventHandler(priority = EventPriority.HIGHEST)
public void onProjectileLaunchEvent(ProjectileLaunchEvent event) {
if(event.getEntity().getType() == EntityType.ARROW) {
if(blockedEntityTypes.contains(event.getEntity().getType())) {
Arrow arrow = (Arrow) event.getEntity();
if (arrow.getKnockbackStrength() > 10) {

View file

@ -0,0 +1,25 @@
package me.cooljwb.vulnerabilitypatcher.patches;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntitySpawnEvent;
import org.bukkit.event.weather.LightningStrikeEvent;
public class Chunks extends Patches implements Listener {
@EventHandler
public void onEntitySpawn(EntitySpawnEvent event) {
if(outOfRange(event.getLocation().getBlockX()) || outOfRange(event.getLocation().getBlockZ()))
event.setCancelled(true);
}
@EventHandler
public void onLightningStrike(LightningStrikeEvent event) {
if(outOfRange(event.getLightning().getLocation().getBlockX()) || outOfRange(event.getLightning().getLocation().getBlockZ()))
event.setCancelled(true);
}
public boolean outOfRange(int value) {
return value > 29999999 || value < -29999999;
}
}

View file

@ -49,7 +49,7 @@ public class Death_Items extends Patches implements Listener {
/* When a dispenser dispenses a death item cancel the event and null the item. */
@EventHandler(priority = EventPriority.HIGHEST)
public void onBlockDispenseEvent(BlockDispenseEvent event) {
if(containsDeathItem(event.getItem())) {
if((containsDeathItem(event.getItem()) && mode >= 1)) {
event.setCancelled(true);
Container container = (Container) event.getBlock().getState();
@ -72,15 +72,19 @@ public class Death_Items extends Patches implements Listener {
if(event.getBlockPlaced().getState() instanceof Container) {
Container container = (Container) event.getBlockPlaced().getState();
boolean violation = false;
for(ItemStack item : container.getInventory()) {
if(isDeathItem(item) || containsDeathItem(item)) {
if(isDeathItem(item) || (containsDeathItem(item) && mode >= 1)) {
container.getInventory().remove(item);
Player player = event.getPlayer();
msg(player, SMG.ITEM_IN_CONTAINER.msg);
notifyViolation(player, "place", event.getBlock().getType() + " with death item in it", event.getPlayer().getLocation());
violation = true;
}
}
if(violation) {
Player player = event.getPlayer();
msg(player, SMG.ITEM_IN_CONTAINER.msg);
notifyViolation(player, "place", event.getBlock().getType() + " with death item in it", event.getPlayer().getLocation());
}
}
debug(event);
@ -89,7 +93,7 @@ public class Death_Items extends Patches implements Listener {
/* When an item is clicked on check if it's a death item and if so null it. */
@EventHandler(priority = EventPriority.HIGHEST)
public void onInventoryClickEvent(InventoryClickEvent event) {
if(isDeathItem(event.getCursor()) || containsDeathItem(event.getCursor())) {
if(isDeathItem(event.getCursor()) || (containsDeathItem(event.getCursor()) && mode >= 1)) {
Player player = null;
if(event.getWhoClicked() instanceof Player) {
player = Bukkit.getPlayer(event.getWhoClicked().getUniqueId());
@ -118,7 +122,7 @@ public class Death_Items extends Patches implements Listener {
public void onPlayerDropEvent(PlayerDropItemEvent event) {
ItemStack item = event.getItemDrop().getItemStack();
if(isDeathItem(item) || containsDeathItem(item)) {
if(isDeathItem(item) || (containsDeathItem(item) && mode >= 1)) {
event.setCancelled(true);
clearItemMeta(event.getItemDrop().getItemStack());

View file

@ -108,16 +108,21 @@ public class Disconnect_Items extends Patches implements Listener {
if(event.getBlockPlaced().getState() instanceof Container) {
Container container = (Container) event.getBlockPlaced().getState();
boolean violation = false;
for(ItemStack item : container.getInventory()) {
if(isDisconnectItem(item) || containsDisconnectItem(item)) {
if(isDisconnectItem(item) || (containsDisconnectItem(item) && mode >= 1)) {
container.getInventory().remove(item);
event.setCancelled(true);
Player player = event.getPlayer();
msg(player, SMG.ITEM_IN_CONTAINER.msg);
notifyViolation(player, "place", event.getBlock().getType() + " with disconnect item in it", event.getPlayer().getLocation());
if(mode >= 1)
event.setCancelled(true);
violation = true;
}
}
if(violation) {
Player player = event.getPlayer();
msg(player, SMG.ITEM_IN_CONTAINER.msg);
notifyViolation(player, "place", event.getBlock().getType() + " with disconnect item in it", event.getPlayer().getLocation());
}
}
debug(event);
@ -185,7 +190,7 @@ public class Disconnect_Items extends Patches implements Listener {
return true;
}
else if(item.toString().length() > 50000 || isMovementDisconnectItem(item) || isInvalidAttributeName(item)) {
else if(item.toString().length() > 60000 || isMovementDisconnectItem(item) || isInvalidAttributeName(item)) {
fired_countermeasure("isLargeNBTDisconnectItem");
return true;
}

View file

@ -1,6 +1,5 @@
package me.cooljwb.vulnerabilitypatcher.patches;
import org.apache.commons.lang.builder.ReflectionToStringBuilder;
import org.bukkit.attribute.Attribute;
import org.bukkit.entity.LivingEntity;
import org.bukkit.event.EventHandler;

View file

@ -0,0 +1,31 @@
package me.cooljwb.vulnerabilitypatcher.patches;
import org.bukkit.entity.Entity;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntitySpawnEvent;
import org.bukkit.event.hanging.HangingPlaceEvent;
import java.util.ArrayList;
public class Item_Frames extends Patches implements Listener {
private ArrayList<Entity> entities = new ArrayList<>();
@EventHandler
public void onHangingPlace(HangingPlaceEvent event) {
if(event.getEntity().getType().name().equalsIgnoreCase("ITEM_FRAME")) {
entities.add(event.getEntity());
for(Entity entity : entities) {
if(entity.isDead())
entities.remove(entity);
} // Clears dead item frames.
}
}
@EventHandler
public void onEntitySpawn(EntitySpawnEvent event) {
if(!entities.contains(event.getEntity()))
event.setCancelled(true); // Cancels any item frame that hasn't been placed.
}
}

View file

@ -55,6 +55,8 @@ import java.util.logging.Logger;
public class Patches implements Listener {
// TODO: Add violation runnable that checks if it should send a violation each second for players that tries to use exploits.
public static VulnerabilityPatcher main;
public static String pluginName, pluginVersion;
public static boolean notify, devmode;
@ -66,7 +68,9 @@ public class Patches implements Listener {
private Rouge_Entity rouge_entity;
private Logger log = Logger.getLogger("Minecraft");
private HashMap<String, Float> active_attributes = new HashMap<>();
private HashMap<String, Float> active_attributes = new HashMap<>();
protected byte mode = 0;
public Patches() {}
public Patches(VulnerabilityPatcher main) {
@ -80,6 +84,7 @@ public class Patches implements Listener {
this.pluginVersion = main.getDescription().getVersion();
this.notify = main.getConfig().getBoolean("Notify.Enabled");
this.devmode = main.getConfig().getBoolean("DevMode");
this.mode = mode(main.getConfig().getString("SecurityMode"));
this.death_items = main.death_items;
this.disconnect_items = main.disconnect_items;
@ -92,6 +97,11 @@ public class Patches implements Listener {
@Override
public void run() {
for(Player player : Bukkit.getOnlinePlayers()) {
if(player.getLocation().getY() <= -29999999)
player.getLocation().setY(-29999999);
else if(player.getLocation().getY() >= 29999999)
player.getLocation().setY(29999999);
for(ItemStack item : player.getInventory()) {
if(listeners.contains("DisconnectItems") && itemInVisibleSlot(player.getInventory(), item)) {
@ -159,7 +169,6 @@ public class Patches implements Listener {
public void msg(Player player, String msg) {
player.sendMessage(msg);
}
public void msg(CommandSender sender, String msg) {
sender.sendMessage(msg);
}
@ -172,7 +181,6 @@ public class Patches implements Listener {
}
}
}
public void notify(BaseComponent msg) {
if(notify) {
for (Player player : Bukkit.getOnlinePlayers()) {
@ -181,7 +189,6 @@ public class Patches implements Listener {
}
}
}
public void notifyViolation(Player player, String violation_form, String violation_name, Location loc) {
if(player != null) {
TextComponent notification = new TextComponent(String.format(SMG.ITEM_NOTIFY.msg, player.getName(), violation_form, violation_name, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()));
@ -203,8 +210,6 @@ public class Patches implements Listener {
notify(notification);
}
}
public void notifyViolation(String violator, String violation_form, String violation_name, Location loc) {
TextComponent notification = new TextComponent(String.format(SMG.ITEM_NOTIFY.msg, violator, violation_form, violation_name, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()));
@ -223,7 +228,6 @@ public class Patches implements Listener {
log.log(Level.INFO, String.format("[%s] Could not debug event in %s.", pluginName, getClass().getName()));
}
}
public void fired_countermeasure(String reason) {
try {
if (devmode)
@ -232,11 +236,22 @@ public class Patches implements Listener {
log.log(Level.INFO, String.format("[%s] Could not debug event in %s.", pluginName, getClass().getName()));
}
}
private byte mode(String mode) {
switch(mode) {
case "EASY":
return 0;
case "MEDIUM":
return 1;
case "STRICT":
return 2;
default:
return 0;
}
}
public void clearItemMeta(ItemStack item) {
item.setItemMeta(null);
}
public void clearItemMeta(ItemStack[] items) {
for(ItemStack item : items) {
if(item != null)
@ -252,14 +267,12 @@ public class Patches implements Listener {
}
return null;
}
public NBTTagCompound getEntityNMS(Entity entity) {
net.minecraft.server.v1_13_R2.Entity nmsEntity = ((CraftEntity)entity).getHandle();
NBTTagCompound tag = new NBTTagCompound();
nmsEntity.save(tag);
return tag;
}
public NBTTagList getNBTAttributeList(ItemStack item) {
NBTTagCompound itemtag = getNBTItemTag(item);
@ -267,7 +280,7 @@ public class Patches implements Listener {
return getNBTItemTag(item).getList("AttributeModifiers", 10);
return null;
}
public String itemToString(ItemStack item) {
if(item != null) {
net.minecraft.server.v1_13_R2.ItemStack nmsItemStack = CraftItemStack.asNMSCopy(item);
@ -277,7 +290,7 @@ public class Patches implements Listener {
}
return "";
}
public boolean itemInVisibleSlot(PlayerInventory inv, ItemStack item) {
ItemStack mainhand = inv.getItemInMainHand();
ItemStack offhand = inv.getItemInOffHand();

View file

@ -1,6 +1,6 @@
# VulnerabilityPatcher by CoolJWB.
# Patches: DeathPotions, DeathItems, CrashItems, Books, RougeEntity, Arrows, Riptide, FollowRange, DisconnectItems, EntityTag.
# Patches: DeathPotions, DeathItems, CrashItems, Books, RougeEntity, Arrows, Riptide, FollowRange, DisconnectItems, EntityTag, Blocks, StructureBlocks, Chunks, ItemFrames.
# All patches added in the list below will be activated on server startup.
Patches:
- DeathPotions
@ -15,10 +15,13 @@ Patches:
- EntityTag
- Blocks
- StructureBlocks
- Chunks
- ItemFrames
# All entities added below will be blocked to use in a spawn egg.
BlockedEntityTags:
- lightning_bolt
- item_frame
- falling_block
- area_effect_cloud
@ -29,6 +32,8 @@ Commands:
Permission: vulnerability.version
Reload:
Permission: vulnerability.reload
Delete:
Permission: vulnerability.delete
BlockTags:
Permission: vulnerability.tags.block
UnblockTags:
@ -42,5 +47,8 @@ Notify:
Enabled: false
Permission: vulnerability.notify
# Security Mode (EASY : MEDIUM : STRICT)
SecurityMode: "EASY"
# DevMode should be set to false, unless you're a developer of this plugin.
DevMode: false

View file

@ -1,9 +1,9 @@
name: VulnerabilityPatcher
version: 0.3.1
version: 0.4
main: me.cooljwb.vulnerabilitypatcher.VulnerabilityPatcher
api-version: 1.13
authors: [CoolJWB]
description: The brand new v0.3 VulnerabilityPatcher for Paper 1.13.2 servers.
description: The brand new v0.4 VulnerabilityPatcher for Paper 1.13.2 servers.
commands:
vulnerabilitypatcher:
aliases: [vp]