mirror of
https://github.com/TotalFreedomMC/VulnerabilityPatcher.git
synced 2025-02-05 06:12:46 +00:00
Commit v1.2
Added foundation for an automatic updating config. Also added more patches and fixed small issues with death potions.
This commit is contained in:
parent
a5a62e424d
commit
755c1b8240
22 changed files with 459 additions and 291 deletions
|
@ -3,14 +3,24 @@
|
|||
<component name="ChangeListManager">
|
||||
<list default="true" id="1f395f0b-1a62-4de7-8311-18be358f8f46" name="Default Changelist" comment="">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" 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/commands/CommandGetNBT.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/commands/CommandGetNBT.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/Crash_Egg.java" beforeDir="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/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/Player_Knockback.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/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$/out/" />
|
||||
|
@ -28,29 +38,14 @@
|
|||
</projectState>
|
||||
</component>
|
||||
<component name="FileEditorManager">
|
||||
<leaf>
|
||||
<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="-153">
|
||||
<caret line="54" column="77" lean-forward="true" selection-start-line="54" selection-start-column="77" selection-end-line="54" selection-end-column="77" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="true">
|
||||
<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="705">
|
||||
<caret line="106" column="65" lean-forward="true" selection-start-line="106" selection-start-column="65" selection-end-line="106" selection-end-column="65" />
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
</leaf>
|
||||
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300" />
|
||||
</component>
|
||||
<component name="FileTemplateManagerImpl">
|
||||
<option name="RECENT_TEMPLATES">
|
||||
<list>
|
||||
<option value="Enum" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||
|
@ -58,29 +53,37 @@
|
|||
<component name="IdeDocumentHistory">
|
||||
<option name="CHANGED_PATHS">
|
||||
<list>
|
||||
<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/Follow_Range.java" />
|
||||
<option value="$PROJECT_DIR$/README.md" />
|
||||
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/SMG.java" />
|
||||
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Entity_IDs.java" />
|
||||
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Crash_Egg.java" />
|
||||
<option value="$PROJECT_DIR$/src/main/resources/config.yml" />
|
||||
<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/java/me/cooljwb/vulnerabilitypatcher/patches/Crash_Items.java" />
|
||||
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/commands/CommandGetNBT.java" />
|
||||
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Rouge_Entity.java" />
|
||||
<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/ConfigManager.java" />
|
||||
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/Items.java" />
|
||||
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Crash_Egg.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/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_Items.java" />
|
||||
<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/Player_Knockback.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/patches/Follow_Range.java" />
|
||||
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Arrows.java" />
|
||||
<option value="$PROJECT_DIR$/src/main/resources/config.yml" />
|
||||
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Rouge_Entity.java" />
|
||||
<option value="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/VulnerabilityPatcher.java" />
|
||||
<option value="$PROJECT_DIR$/src/main/resources/plugin.yml" />
|
||||
<option value="$PROJECT_DIR$/gradle.properties" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectFrameBounds" extendedState="6">
|
||||
<option name="x" value="235" />
|
||||
<option name="y" value="75" />
|
||||
<option name="width" value="1400" />
|
||||
<option name="height" value="1000" />
|
||||
<option name="x" value="324" />
|
||||
<option name="y" value="100" />
|
||||
<option name="width" value="1440" />
|
||||
<option name="height" value="780" />
|
||||
</component>
|
||||
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
|
||||
<component name="ProjectView">
|
||||
|
@ -88,7 +91,6 @@
|
|||
<foldersAlwaysOnTop value="true" />
|
||||
</navigator>
|
||||
<panes>
|
||||
<pane id="Scope" />
|
||||
<pane id="PackagesPane" />
|
||||
<pane id="ProjectPane">
|
||||
<subPane>
|
||||
|
@ -123,15 +125,6 @@
|
|||
<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="commands" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="VulnerabilityPatcher" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="VulnerabilityPatcher" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
|
||||
|
@ -152,10 +145,11 @@
|
|||
<select />
|
||||
</subPane>
|
||||
</pane>
|
||||
<pane id="Scope" />
|
||||
</panes>
|
||||
</component>
|
||||
<component name="PropertiesComponent">
|
||||
<property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1547941302342" />
|
||||
<property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1548451724817" />
|
||||
</component>
|
||||
<component name="RunDashboard">
|
||||
<option name="ruleStates">
|
||||
|
@ -184,9 +178,8 @@
|
|||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<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.2771855" />
|
||||
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.15724947" />
|
||||
<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" />
|
||||
|
@ -194,7 +187,7 @@
|
|||
<window_info id="UI Designer" order="5" />
|
||||
<window_info id="Favorites" order="6" side_tool="true" />
|
||||
<window_info anchor="bottom" id="Message" order="0" />
|
||||
<window_info anchor="bottom" id="Find" order="1" />
|
||||
<window_info anchor="bottom" id="Find" order="1" weight="0.32936078" />
|
||||
<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" />
|
||||
|
@ -226,30 +219,6 @@
|
|||
<state relative-caret-position="-2397" />
|
||||
</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="-720">
|
||||
<caret line="40" column="13" selection-start-line="40" selection-start-column="13" selection-end-line="40" 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="-1179">
|
||||
<caret line="43" column="13" selection-start-line="43" selection-start-column="13" selection-end-line="43" 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="435">
|
||||
<caret line="66" column="85" selection-start-line="66" selection-start-column="85" selection-end-line="66" selection-end-column="85" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/build.gradle">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/README.md">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="187">
|
||||
|
@ -257,51 +226,6 @@
|
|||
</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="130">
|
||||
<caret line="30" column="13" selection-start-line="30" selection-start-column="13" selection-end-line="30" selection-end-column="13" />
|
||||
</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="493">
|
||||
<caret line="29" column="14" selection-start-line="29" selection-start-column="14" selection-end-line="29" selection-end-column="14" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Crash_Egg.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="252">
|
||||
<caret line="42" column="26" lean-forward="true" selection-start-line="42" selection-start-column="26" selection-end-line="42" selection-end-column="26" />
|
||||
</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="-94">
|
||||
<caret line="2" column="7" selection-start-line="2" selection-start-column="7" selection-end-line="2" selection-end-column="7" />
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</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="-544">
|
||||
<caret line="44" column="13" selection-start-line="44" selection-start-column="13" selection-end-line="44" 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="1071">
|
||||
<caret line="96" column="50" selection-start-line="96" selection-start-column="50" selection-end-line="96" selection-end-column="50" />
|
||||
</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="561">
|
||||
|
@ -309,13 +233,6 @@
|
|||
</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="765">
|
||||
<caret line="63" column="5" selection-start-line="63" selection-start-column="5" selection-end-line="63" selection-end-column="5" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<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="493">
|
||||
|
@ -323,48 +240,151 @@
|
|||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Player_Knockback.java">
|
||||
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/ConfigManager.java" />
|
||||
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/Items.java" />
|
||||
<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="354">
|
||||
<caret line="33" column="67" lean-forward="true" selection-start-line="33" selection-start-column="67" selection-end-line="33" selection-end-column="67" />
|
||||
<state relative-caret-position="130">
|
||||
<caret line="30" column="13" selection-start-line="30" selection-start-column="13" selection-end-line="30" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="jar://$PROJECT_DIR$/libs/spigot-1.13.2.jar!/net/minecraft/server/v1_13_R2/EntityArrow.class">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="306">
|
||||
<caret line="307" column="10" lean-forward="true" selection-start-line="307" selection-start-column="10" selection-end-line="307" selection-end-column="10" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="jar://$PROJECT_DIR$/libs/spigot-1.13.2.jar!/net/minecraft/server/v1_13_R2/GeneratorAccess.class">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="102">
|
||||
<caret line="10" column="17" selection-start-line="10" selection-start-column="17" selection-end-line="10" selection-end-column="17" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="jar://$PROJECT_DIR$/libs/spigot-1.13.2.jar!/net/minecraft/server/v1_13_R2/Block.class">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-187">
|
||||
<caret line="25" column="13" selection-start-line="25" selection-start-column="13" selection-end-line="25" selection-end-column="13" />
|
||||
</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="476">
|
||||
<caret line="62" column="57" selection-start-line="62" selection-start-column="57" selection-end-line="62" selection-end-column="57" />
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Crash_Egg.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="286">
|
||||
<caret line="47" column="41" lean-forward="true" selection-start-line="47" selection-start-column="41" selection-end-line="47" selection-end-column="41" />
|
||||
</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="2329">
|
||||
<caret line="159" column="57" selection-start-line="159" selection-start-column="57" selection-end-line="159" selection-end-column="57" />
|
||||
</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="-357">
|
||||
<caret line="107" column="19" lean-forward="true" selection-start-line="107" selection-start-column="19" selection-end-line="107" selection-end-column="19" />
|
||||
</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="17">
|
||||
<caret line="59" column="57" selection-start-line="59" selection-start-column="57" selection-end-line="59" selection-end-column="57" />
|
||||
</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="34">
|
||||
<caret line="2" column="7" selection-start-line="2" selection-start-column="7" selection-end-line="2" selection-end-column="7" />
|
||||
</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="116">
|
||||
<caret line="35" selection-start-line="35" selection-end-line="35" />
|
||||
</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="170">
|
||||
<caret line="10" column="10" selection-start-line="10" selection-start-column="10" selection-end-line="10" selection-end-column="10" />
|
||||
</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="810">
|
||||
<caret line="103" column="11" lean-forward="true" selection-start-line="103" selection-start-column="11" selection-end-line="103" selection-end-column="11" />
|
||||
<state relative-caret-position="680">
|
||||
<caret line="104" column="44" selection-start-line="104" selection-start-column="44" selection-end-line="104" selection-end-column="44" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/VulnerabilityPatcher.java">
|
||||
<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="-153">
|
||||
<caret line="54" column="77" lean-forward="true" selection-start-line="54" selection-start-column="77" selection-end-line="54" selection-end-column="77" />
|
||||
<state relative-caret-position="368">
|
||||
<caret line="40" lean-forward="true" selection-start-line="40" selection-end-line="40" />
|
||||
</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="195">
|
||||
<caret line="39" column="66" selection-start-line="39" selection-start-column="66" selection-end-line="39" selection-end-column="66" />
|
||||
</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="2170">
|
||||
<caret line="164" column="32" selection-start-line="164" selection-start-column="32" selection-end-line="164" selection-end-column="32" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/build.gradle">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</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="15" selection-start-line="1" selection-start-column="15" selection-end-line="1" selection-end-column="15" />
|
||||
<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$/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" />
|
||||
<caret line="1" column="12" selection-start-line="1" selection-start-column="12" selection-end-line="1" selection-end-column="12" />
|
||||
</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/patches/Entity_Tag.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="705">
|
||||
<caret line="106" column="65" lean-forward="true" selection-start-line="106" selection-start-column="65" selection-end-line="106" selection-end-column="65" />
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
<state relative-caret-position="272">
|
||||
<caret line="29" column="5" lean-forward="true" selection-start-line="29" selection-start-column="5" selection-end-line="29" selection-end-column="5" />
|
||||
</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="586">
|
||||
<caret line="125" selection-start-line="125" selection-end-line="125" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
# VulnerabilityPatcher by CoolJWB
|
||||
# Patches:
|
||||
# DeathPotions, DeathItems, CrashSigns, Books, RougeEntity, Knockback, Riptide, FollowRange, DisconnectItems, CrashEgg.
|
||||
# VulnerabilityPatcher by CoolJWB.
|
||||
|
||||
# Patches: DeathPotions, DeathItems, CrashItems, Books, RougeEntity, Knockback, Riptide, FollowRange, DisconnectItems, CrashEgg, EntityTag.
|
||||
# All patches added in the list below will be activated on server startup.
|
||||
Patches:
|
||||
- DeathPotions
|
||||
- DeathItems
|
||||
- CrashSigns
|
||||
- CrashItems
|
||||
- Books
|
||||
- RougeEntity
|
||||
- Knockback
|
||||
|
@ -13,6 +13,12 @@ Patches:
|
|||
- FollowRange
|
||||
- DisconnectItems
|
||||
- CrashEgg
|
||||
- EntityTag
|
||||
|
||||
# All entities added below will be blocked to use in a spawn egg.
|
||||
BlockedEntityTags:
|
||||
- lightning_bolt
|
||||
- falling_block
|
||||
|
||||
Commands:
|
||||
Help:
|
||||
|
@ -27,4 +33,7 @@ Notify:
|
|||
Permission: vulnerability.notify
|
||||
|
||||
# DevMode should be set to false, unless you're a developer of this plugin.
|
||||
DevMode: false
|
||||
DevMode: false
|
||||
|
||||
# This should not be changed unless you know what you're doing.
|
||||
ConfVersion: 0
|
|
@ -1,5 +1,5 @@
|
|||
name: VulnerabilityPatcher
|
||||
version: BETA
|
||||
version: 0.1.2
|
||||
main: me.cooljwb.vulnerabilitypatcher.VulnerabilityPatcher
|
||||
api-version: 1.13
|
||||
authors: [CoolJWB]
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
pluginGroup=me.CoolJWB.VulnerabilityPatcher
|
||||
pluginVersion=v0.1.1
|
||||
pluginVersion=v0.2
|
||||
|
|
16
src/main/java/me/cooljwb/vulnerabilitypatcher/Variables.java
Normal file
16
src/main/java/me/cooljwb/vulnerabilitypatcher/Variables.java
Normal file
|
@ -0,0 +1,16 @@
|
|||
package me.cooljwb.vulnerabilitypatcher;
|
||||
|
||||
import java.util.Arrays;
|
||||
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",
|
||||
"zombie.spawnreinforcements"));
|
||||
|
||||
public List<String> liststr;
|
||||
Variables(List<String> strings) {
|
||||
liststr = strings;
|
||||
}
|
||||
}
|
|
@ -3,10 +3,13 @@ package me.cooljwb.vulnerabilitypatcher;
|
|||
import me.cooljwb.vulnerabilitypatcher.commands.CommandGetNBT;
|
||||
import me.cooljwb.vulnerabilitypatcher.commands.CommandVulnerabilityPatcher;
|
||||
import me.cooljwb.vulnerabilitypatcher.patches.*;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
|
@ -36,7 +39,7 @@ public final class VulnerabilityPatcher extends JavaPlugin {
|
|||
|
||||
/*
|
||||
* 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.
|
||||
* Large follow range, Disconnect Items, Crash Eggs, Knowledge Books, Negative Damage Arrows, much more.
|
||||
*/
|
||||
|
||||
public static VulnerabilityPatcher main;
|
||||
|
@ -57,6 +60,12 @@ 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();
|
||||
|
||||
|
@ -97,13 +106,33 @@ public final class VulnerabilityPatcher extends JavaPlugin {
|
|||
case "CrashItems": listeners.add(new Crash_Items()); break;
|
||||
case "Books": listeners.add(new Books()); break;
|
||||
case "RougeEntity": listeners.add(new Rouge_Entity()); break;
|
||||
case "Knockback": listeners.add(new Player_Knockback()); break;
|
||||
case "Arrows": listeners.add(new Arrows()); break;
|
||||
case "Riptide": listeners.add(new Trident_Riptide()); break;
|
||||
case "FollowRange": listeners.add(new Follow_Range()); break;
|
||||
case "DisconnectItems": listeners.add(new Disconnect_Items()); break;
|
||||
case "CrashEgg": listeners.add(new Crash_Egg()); break;
|
||||
case "EntityTag": listeners.add(new Entity_Tag()); break;
|
||||
}
|
||||
}
|
||||
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")) {
|
||||
// Foundation of automatic update system.
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,9 +36,9 @@ public class CommandGetNBT extends Patches implements CommandExecutor {
|
|||
net.minecraft.server.v1_13_R2.ItemStack nmsItemStack = CraftItemStack.asNMSCopy(item);
|
||||
NBTTagCompound tag = nmsItemStack.getTag();
|
||||
|
||||
if(item != null && tag != null)
|
||||
if(item != null && item.getType() != Material.AIR && tag != null)
|
||||
msg(sender, SMG.VULNERABILITYPATCHER.msg + ChatColor.GRAY + "Item data of item: " + ChatColor.GREEN + ChatColor.stripColor(tag.toString()));
|
||||
else if(item.getType() == Material.AIR)
|
||||
else if(item == null || item.getType() == Material.AIR)
|
||||
msg(sender, SMG.VULNERABILITYPATCHER.msg + ChatColor.RED + "Get an item in your main hand!");
|
||||
else if(tag == null)
|
||||
msg(sender, SMG.VULNERABILITYPATCHER.msg + ChatColor.RED + "This item has no item tag.");
|
||||
|
|
|
@ -3,6 +3,13 @@ package me.cooljwb.vulnerabilitypatcher.commands;
|
|||
import me.cooljwb.vulnerabilitypatcher.SMG;
|
||||
import me.cooljwb.vulnerabilitypatcher.VulnerabilityPatcher;
|
||||
import me.cooljwb.vulnerabilitypatcher.patches.Patches;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
|
@ -32,6 +39,7 @@ public class CommandVulnerabilityPatcher extends Patches implements CommandExecu
|
|||
|
||||
public static String vulnerabilitypatcher = "vulnerabilitypatcher";
|
||||
private VulnerabilityPatcher main;
|
||||
private Logger log = Logger.getLogger("Minecraft");
|
||||
|
||||
public CommandVulnerabilityPatcher(VulnerabilityPatcher main) {
|
||||
this.main = main;
|
||||
|
|
|
@ -5,6 +5,7 @@ import org.bukkit.entity.*;
|
|||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntitySpawnEvent;
|
||||
import org.bukkit.event.entity.ProjectileLaunchEvent;
|
||||
import org.bukkit.event.player.PlayerVelocityEvent;
|
||||
|
||||
|
@ -31,7 +32,7 @@ import java.util.logging.Logger;
|
|||
* @author CoolJWB
|
||||
*/
|
||||
|
||||
public class Player_Knockback extends Patches implements Listener {
|
||||
public class Arrows extends Patches implements Listener {
|
||||
|
||||
private Logger log = Logger.getLogger("Minecraft");
|
||||
|
||||
|
@ -40,8 +41,22 @@ public class Player_Knockback extends Patches implements Listener {
|
|||
if(event.getVelocity().getX() > 10 || event.getVelocity().getY() > 10 || event.getVelocity().getZ() > 10)
|
||||
event.setCancelled(true);
|
||||
|
||||
if(devmode)
|
||||
log.log(Level.INFO, String.format("[%s] Event: %s", pluginName, ReflectionToStringBuilder.toString(event)));
|
||||
debug(ReflectionToStringBuilder.toString(event));
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onEntitySpawnEvent(EntitySpawnEvent event) {
|
||||
if(event.getEntity().getType() == EntityType.ARROW) {
|
||||
Arrow arrow = (Arrow) event.getEntity();
|
||||
|
||||
if (arrow.getKnockbackStrength() > 10)
|
||||
arrow.setKnockbackStrength(10);
|
||||
|
||||
if(arrow.getDamage() < 0 || arrow.getDamage() > 214748364)
|
||||
arrow.setDamage(0);
|
||||
}
|
||||
|
||||
debug(ReflectionToStringBuilder.toString(event));
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
|
@ -51,9 +66,11 @@ public class Player_Knockback extends Patches implements Listener {
|
|||
|
||||
if (arrow.getKnockbackStrength() > 10)
|
||||
arrow.setKnockbackStrength(10);
|
||||
|
||||
if(arrow.getDamage() < 0)
|
||||
arrow.setDamage(0);
|
||||
}
|
||||
|
||||
if(devmode)
|
||||
log.log(Level.INFO, String.format("[%s] Event: %s", pluginName, ReflectionToStringBuilder.toString(event)));
|
||||
debug(ReflectionToStringBuilder.toString(event));
|
||||
}
|
||||
}
|
|
@ -60,8 +60,7 @@ public class Books extends Patches implements Listener {
|
|||
}
|
||||
}
|
||||
|
||||
if(devmode)
|
||||
log.log(Level.INFO, String.format("[%s] Event: %s", pluginName, ReflectionToStringBuilder.toString(event)));
|
||||
debug(ReflectionToStringBuilder.toString(event));
|
||||
}
|
||||
|
||||
public void writtenBook(Player player, EquipmentSlot hand) {
|
||||
|
|
|
@ -1,74 +0,0 @@
|
|||
package me.cooljwb.vulnerabilitypatcher.patches;
|
||||
|
||||
import org.apache.commons.lang.builder.ReflectionToStringBuilder;
|
||||
import org.bukkit.block.Container;
|
||||
import org.bukkit.craftbukkit.v1_13_R2.inventory.CraftItemStack;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.BlockDispenseEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
/*
|
||||
* Copyright 2019 CoolJWB
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @author CoolJWB
|
||||
*/
|
||||
|
||||
public class Crash_Egg extends Patches implements Listener {
|
||||
|
||||
private Logger log = Logger.getLogger("Minecraft");
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onBlockDispenseEvent(BlockDispenseEvent event) {
|
||||
ItemStack item = event.getItem();
|
||||
|
||||
if(item != null) {
|
||||
if (isCrashEgg(item)) {
|
||||
event.setCancelled(true);
|
||||
Container container = (Container) event.getBlock().getState();
|
||||
|
||||
for(int c = 0; c < container.getInventory().getSize(); c++) {
|
||||
if(container.getInventory().getItem(c) != null) {
|
||||
if (container.getInventory().getItem(c).isSimilar(event.getItem()))
|
||||
container.getInventory().getItem(c).setItemMeta(null);
|
||||
}
|
||||
}
|
||||
|
||||
notifyViolation(event.getBlock().getType().name(), "drop", "crash egg", event.getBlock().getLocation());
|
||||
}
|
||||
}
|
||||
|
||||
if(devmode)
|
||||
log.log(Level.INFO, String.format("[%s] Event: %s", pluginName, ReflectionToStringBuilder.toString(event)));
|
||||
}
|
||||
|
||||
public boolean isCrashEgg(ItemStack item) {
|
||||
if(item != null) {
|
||||
net.minecraft.server.v1_13_R2.ItemStack nmsItemStack = CraftItemStack.asNMSCopy(item);
|
||||
|
||||
if(nmsItemStack != null && nmsItemStack.getTag() != null) {
|
||||
if(nmsItemStack.getTag().getCompound("EntityTag").getString("id").equalsIgnoreCase("minecraft:lightning_bolt"))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -80,8 +80,7 @@ public class Crash_Items extends Patches implements Listener {
|
|||
notifyViolation(event.getBlock().getType().toString(), "drop", event.getItem().getType() + " with crash item in it", event.getBlock().getLocation());
|
||||
}
|
||||
|
||||
if(devmode)
|
||||
log.log(Level.INFO, String.format("[%s] Event: %s", pluginName, ReflectionToStringBuilder.toString(event)));
|
||||
debug(ReflectionToStringBuilder.toString(event));
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
|
@ -97,8 +96,7 @@ public class Crash_Items extends Patches implements Listener {
|
|||
notifyViolation(player, "interact with", "crash item", player.getLocation());
|
||||
}
|
||||
|
||||
if(devmode)
|
||||
log.log(Level.INFO, String.format("[%s] Event: %s", pluginName, ReflectionToStringBuilder.toString(event)));
|
||||
debug(ReflectionToStringBuilder.toString(event));
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
|
@ -117,8 +115,7 @@ public class Crash_Items extends Patches implements Listener {
|
|||
}
|
||||
}
|
||||
|
||||
if(devmode)
|
||||
log.log(Level.INFO, String.format("[%s] Event: %s", pluginName, ReflectionToStringBuilder.toString(event)));
|
||||
debug(ReflectionToStringBuilder.toString(event));
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
|
@ -144,8 +141,7 @@ public class Crash_Items extends Patches implements Listener {
|
|||
}, 0L);
|
||||
}
|
||||
|
||||
if(devmode)
|
||||
log.log(Level.INFO, String.format("[%s] Event: %s", pluginName, ReflectionToStringBuilder.toString(event)));
|
||||
debug(ReflectionToStringBuilder.toString(event));
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
|
@ -161,8 +157,7 @@ public class Crash_Items extends Patches implements Listener {
|
|||
notifyViolation(player, "drop", "crash item", player.getLocation());
|
||||
}
|
||||
|
||||
if(devmode)
|
||||
log.log(Level.INFO, String.format("[%s] Event: %s", pluginName, ReflectionToStringBuilder.toString(event)));
|
||||
debug(ReflectionToStringBuilder.toString(event));
|
||||
}
|
||||
|
||||
public static boolean isCrashItem(ItemStack item) {
|
||||
|
|
|
@ -62,8 +62,7 @@ public class Death_Items extends Patches implements Listener {
|
|||
notifyViolation("Dispenser", "place", event.getItem().getType() + " with death item in it", event.getBlock().getLocation());
|
||||
}
|
||||
|
||||
if(devmode)
|
||||
log.log(Level.INFO, String.format("[%s] Event: %s", pluginName, ReflectionToStringBuilder.toString(event)));
|
||||
debug(ReflectionToStringBuilder.toString(event));
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
|
@ -83,8 +82,7 @@ public class Death_Items extends Patches implements Listener {
|
|||
}
|
||||
}
|
||||
|
||||
if(devmode)
|
||||
log.log(Level.INFO, String.format("[%s] Event: %s", pluginName, ReflectionToStringBuilder.toString(event)));
|
||||
debug(ReflectionToStringBuilder.toString(event));
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
|
@ -110,8 +108,7 @@ public class Death_Items extends Patches implements Listener {
|
|||
}, 0L);
|
||||
}
|
||||
|
||||
if(devmode)
|
||||
log.log(Level.INFO, String.format("[%s] Event: %s", pluginName, ReflectionToStringBuilder.toString(event)));
|
||||
debug(ReflectionToStringBuilder.toString(event));
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
|
@ -127,8 +124,7 @@ public class Death_Items extends Patches implements Listener {
|
|||
notifyViolation(player, "drop", "death item", player.getLocation());
|
||||
}
|
||||
|
||||
if(devmode)
|
||||
log.log(Level.INFO, String.format("[%s] Event: %s", pluginName, ReflectionToStringBuilder.toString(event)));
|
||||
debug(ReflectionToStringBuilder.toString(event));
|
||||
}
|
||||
|
||||
public static boolean isDeathItem(ItemStack item) {
|
||||
|
|
|
@ -57,8 +57,7 @@ public class Death_Potions extends Patches implements Listener {
|
|||
}
|
||||
}
|
||||
|
||||
if(devmode)
|
||||
log.log(Level.INFO, String.format("[%s] Event: %s", pluginName, ReflectionToStringBuilder.toString(event)));
|
||||
debug(ReflectionToStringBuilder.toString(event));
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
|
@ -75,8 +74,7 @@ public class Death_Potions extends Patches implements Listener {
|
|||
notifyViolation(player, "splash", "death potion", player.getLocation());
|
||||
}
|
||||
|
||||
if(devmode)
|
||||
log.log(Level.INFO, String.format("[%s] Event: %s", pluginName, ReflectionToStringBuilder.toString(event)));
|
||||
debug(ReflectionToStringBuilder.toString(event));
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
|
@ -93,8 +91,7 @@ public class Death_Potions extends Patches implements Listener {
|
|||
notifyViolation(player, "splash", "death potion", player.getLocation());
|
||||
}
|
||||
|
||||
if(devmode)
|
||||
log.log(Level.INFO, String.format("[%s] Event: %s", pluginName, ReflectionToStringBuilder.toString(event)));
|
||||
debug(ReflectionToStringBuilder.toString(event));
|
||||
}
|
||||
|
||||
public static boolean isDeathPotion(List<PotionEffect> effects) {
|
||||
|
@ -107,7 +104,7 @@ public class Death_Potions extends Patches implements Listener {
|
|||
|
||||
public static 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))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -1,23 +1,31 @@
|
|||
package me.cooljwb.vulnerabilitypatcher.patches;
|
||||
|
||||
import me.cooljwb.vulnerabilitypatcher.SMG;
|
||||
import net.minecraft.server.v1_13_R2.NBTTagList;
|
||||
import me.cooljwb.vulnerabilitypatcher.Variables;
|
||||
import net.minecraft.server.v1_13_R2.*;
|
||||
import org.apache.commons.lang.builder.ReflectionToStringBuilder;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.Container;
|
||||
import org.bukkit.craftbukkit.v1_13_R2.CraftWorld;
|
||||
import org.bukkit.craftbukkit.v1_13_R2.block.CraftBlock;
|
||||
import org.bukkit.craftbukkit.v1_13_R2.entity.CraftPlayer;
|
||||
import org.bukkit.craftbukkit.v1_13_R2.inventory.CraftItemStack;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.Action;
|
||||
import org.bukkit.event.block.BlockDispenseEvent;
|
||||
import org.bukkit.event.block.BlockPlaceEvent;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.event.inventory.InventoryType;
|
||||
import org.bukkit.event.player.PlayerDropItemEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.scheduler.BukkitScheduler;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
|
@ -45,6 +53,28 @@ public class Disconnect_Items extends Patches implements Listener {
|
|||
|
||||
private Logger log = Logger.getLogger("Minecraft");
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onPlayerInteractEvent(PlayerInteractEvent event) {
|
||||
if(event.getClickedBlock() != null) {
|
||||
if (event.getClickedBlock().getState() instanceof Container) {
|
||||
Block block = event.getClickedBlock();
|
||||
Container container = (Container) block.getState();
|
||||
|
||||
String invstr = "";
|
||||
for (ItemStack item : container.getInventory().getContents()) {
|
||||
invstr = invstr + itemToString(item);
|
||||
}
|
||||
|
||||
if(invstr.length() > 50000) {
|
||||
event.setCancelled(true);
|
||||
clearItemMeta(container.getInventory().getContents());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
debug(ReflectionToStringBuilder.toString(event));
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onBlockDispenseEvent(BlockDispenseEvent event) {
|
||||
if(containsDisconnectItem(event.getItem())) {
|
||||
|
@ -61,8 +91,7 @@ public class Disconnect_Items extends Patches implements Listener {
|
|||
notifyViolation("Dispenser", "place", event.getItem().getType() + " with disconnect item in it", event.getBlock().getLocation());
|
||||
}
|
||||
|
||||
if(devmode)
|
||||
log.log(Level.INFO, String.format("[%s] Event: %s", pluginName, ReflectionToStringBuilder.toString(event)));
|
||||
debug(ReflectionToStringBuilder.toString(event));
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
|
@ -82,8 +111,7 @@ public class Disconnect_Items extends Patches implements Listener {
|
|||
}
|
||||
}
|
||||
|
||||
if(devmode)
|
||||
log.log(Level.INFO, String.format("[%s] Event: %s", pluginName, ReflectionToStringBuilder.toString(event)));
|
||||
debug(ReflectionToStringBuilder.toString(event));
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
|
@ -109,8 +137,7 @@ public class Disconnect_Items extends Patches implements Listener {
|
|||
}, 0L);
|
||||
}
|
||||
|
||||
if(devmode)
|
||||
log.log(Level.INFO, String.format("[%s] Event: %s", pluginName, ReflectionToStringBuilder.toString(event)));
|
||||
debug(ReflectionToStringBuilder.toString(event));
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
|
@ -126,8 +153,7 @@ public class Disconnect_Items extends Patches implements Listener {
|
|||
notifyViolation(player, "drop", "disconnect item", player.getLocation());
|
||||
}
|
||||
|
||||
if(devmode)
|
||||
log.log(Level.INFO, String.format("[%s] Event: %s", pluginName, ReflectionToStringBuilder.toString(event)));
|
||||
debug(ReflectionToStringBuilder.toString(event));
|
||||
}
|
||||
|
||||
public boolean isDisconnectItem(ItemStack item) {
|
||||
|
@ -135,7 +161,7 @@ public class Disconnect_Items extends Patches implements Listener {
|
|||
net.minecraft.server.v1_13_R2.ItemStack nmsItemStack = CraftItemStack.asNMSCopy(item);
|
||||
|
||||
if(nmsItemStack != null && nmsItemStack.getTag() != null) {
|
||||
if((nmsItemStack.getTag().getInt("CustomPotionColor") < 0) || (nmsItemStack.getTag().getCompound("display").getInt("color") < 0) || (nmsItemStack.getTag().toString().length() > 50000))
|
||||
if((nmsItemStack.getTag().getInt("CustomPotionColor") < 0) || (nmsItemStack.getTag().getCompound("display").getInt("color") < 0) || (nmsItemStack.getTag().toString().length() > 50000) || isMovementDisconnectItem(nmsItemStack) || isInvalidAttributeName(nmsItemStack))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -151,7 +177,7 @@ public class Disconnect_Items extends Patches implements Listener {
|
|||
|
||||
if(items != null) {
|
||||
for (int a = 0; a <= items.size(); a++) {
|
||||
if((nmsItemStack.getTag().getInt("CustomPotionColor") < 0) || (nmsItemStack.getTag().getCompound("display").getInt("color") < 0) || (nmsItemStack.getTag().toString().length() > 50000))
|
||||
if((nmsItemStack.getTag().getInt("CustomPotionColor") < 0) || (nmsItemStack.getTag().getCompound("display").getInt("color") < 0) || (nmsItemStack.getTag().toString().length() > 50000) || isMovementDisconnectItem(nmsItemStack) || isInvalidAttributeName(nmsItemStack))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -159,4 +185,39 @@ public class Disconnect_Items extends Patches implements Listener {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isMovementDisconnectItem(net.minecraft.server.v1_13_R2.ItemStack nmsItemStack) {
|
||||
if(nmsItemStack != null) {
|
||||
NBTTagList attrlist = nmsItemStack.getTag().getList("AttributeModifiers", 10);
|
||||
if(attrlist != null) {
|
||||
HashMap<String, Float> attributes = new HashMap<>();
|
||||
|
||||
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;
|
||||
|
||||
attributes.put(attribute.getString("AttributeName").toLowerCase(), attribute.getFloat("Amount"));
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isInvalidAttributeName(net.minecraft.server.v1_13_R2.ItemStack nmsItemStack) {
|
||||
if(nmsItemStack != null) {
|
||||
NBTTagList attrlist = nmsItemStack.getTag().getList("AttributeModifiers", 10);
|
||||
if(attrlist != null) {
|
||||
for(int a = 0; a <= attrlist.size(); a++) {
|
||||
NBTTagCompound attribute = attrlist.getCompound(a);
|
||||
if(attribute != null && attribute.getString("AttributeName").toLowerCase() != "") {
|
||||
if(!Variables.Attributes.liststr.contains(attribute.getString("AttributeName").toLowerCase()))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,64 @@
|
|||
package me.cooljwb.vulnerabilitypatcher.patches;
|
||||
|
||||
import org.apache.commons.lang.builder.ReflectionToStringBuilder;
|
||||
import org.bukkit.block.Container;
|
||||
import org.bukkit.craftbukkit.v1_13_R2.inventory.CraftItemStack;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.BlockDispenseEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import static org.apache.commons.lang3.StringUtils.containsIgnoreCase;
|
||||
|
||||
public class Entity_Tag extends Patches implements Listener {
|
||||
|
||||
private Logger log = Logger.getLogger("Minecraft");
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onPlayerInteractEvent(PlayerInteractEvent event) {
|
||||
ItemStack item = event.getItem();
|
||||
|
||||
if(isDangerousEgg(item))
|
||||
clearItemMeta(event.getItem());
|
||||
|
||||
debug(ReflectionToStringBuilder.toString(event));
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onBlockDispenseEvent(BlockDispenseEvent event) {
|
||||
ItemStack item = event.getItem();
|
||||
|
||||
if(item != null) {
|
||||
if (isDangerousEgg(item)) {
|
||||
event.setCancelled(true);
|
||||
Container container = (Container) event.getBlock().getState();
|
||||
|
||||
for(int c = 0; c < container.getInventory().getSize(); c++) {
|
||||
if(container.getInventory().getItem(c) != null) {
|
||||
if (container.getInventory().getItem(c).isSimilar(event.getItem()))
|
||||
container.getInventory().getItem(c).setItemMeta(null);
|
||||
}
|
||||
}
|
||||
|
||||
notifyViolation(event.getBlock().getType().name(), "use", "dangerous mob egg", event.getBlock().getLocation());
|
||||
}
|
||||
}
|
||||
|
||||
debug(ReflectionToStringBuilder.toString(event));
|
||||
}
|
||||
|
||||
public boolean isDangerousEgg(ItemStack item) {
|
||||
if (item != null && containsIgnoreCase(item.getType().name(), "spawn_egg")) {
|
||||
net.minecraft.server.v1_13_R2.ItemStack nmsItemStack = CraftItemStack.asNMSCopy(item);
|
||||
|
||||
if (nmsItemStack.hasTag() && main.getConfig().getStringList("BlockedEntityTags").contains(nmsItemStack.getTag().getCompound("EntityTag").getString("id").replaceAll("minecraft:", "")))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -8,7 +8,6 @@ import org.bukkit.event.EventPriority;
|
|||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntitySpawnEvent;
|
||||
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
/*
|
||||
|
@ -47,7 +46,6 @@ public class Follow_Range extends Patches implements Listener {
|
|||
}
|
||||
}
|
||||
|
||||
if(devmode)
|
||||
log.log(Level.INFO, String.format("[%s] Event: %s", pluginName, ReflectionToStringBuilder.toString(event)));
|
||||
debug(ReflectionToStringBuilder.toString(event));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,10 +5,12 @@ import me.cooljwb.vulnerabilitypatcher.SMG;
|
|||
import net.md_5.bungee.api.ChatColor;
|
||||
import net.md_5.bungee.api.chat.*;
|
||||
import net.minecraft.server.v1_13_R2.NBTTagCompound;
|
||||
import org.apache.commons.lang.builder.ReflectionToStringBuilder;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity;
|
||||
import org.bukkit.craftbukkit.v1_13_R2.inventory.CraftItemStack;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Listener;
|
||||
|
@ -17,6 +19,8 @@ import org.bukkit.scheduler.BukkitScheduler;
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
/*
|
||||
* Copyright 2019 CoolJWB
|
||||
|
@ -48,6 +52,9 @@ public class Patches implements Listener {
|
|||
private Death_Items death_items;
|
||||
private Disconnect_Items disconnect_items;
|
||||
private Crash_Items crash_items;
|
||||
private Rouge_Entity rouge_entity;
|
||||
|
||||
private Logger log = Logger.getLogger("Minecraft");
|
||||
|
||||
public Patches() {}
|
||||
public Patches(VulnerabilityPatcher main) {
|
||||
|
@ -81,7 +88,7 @@ public class Patches implements Listener {
|
|||
clearItemMeta(item);
|
||||
notifyViolation(player, "acquire", "death item", player.getLocation());
|
||||
msg(player, SMG.ITEM.msg);
|
||||
} break;
|
||||
}
|
||||
|
||||
case "DisconnectItems":
|
||||
if(disconnect_items.isDisconnectItem(item) || disconnect_items.containsDisconnectItem(item)) {
|
||||
|
@ -163,6 +170,11 @@ public class Patches implements Listener {
|
|||
notify(notification);
|
||||
}
|
||||
|
||||
public void debug(String event) {
|
||||
if(devmode)
|
||||
log.log(Level.INFO, String.format("[%s] Event in %s: %s", pluginName, getClass().getName(), event));
|
||||
}
|
||||
|
||||
public void clearItemMeta(ItemStack item) {
|
||||
item.setItemMeta(null);
|
||||
}
|
||||
|
@ -174,6 +186,16 @@ public class Patches implements Listener {
|
|||
}
|
||||
}
|
||||
|
||||
public String itemToString(ItemStack item) {
|
||||
if(item != null) {
|
||||
net.minecraft.server.v1_13_R2.ItemStack nmsItemStack = CraftItemStack.asNMSCopy(item);
|
||||
|
||||
if(nmsItemStack.hasTag())
|
||||
return nmsItemStack.getTag().toString();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public NBTTagCompound getEntityNMS(Entity entity) {
|
||||
net.minecraft.server.v1_13_R2.Entity nmsEntity = ((CraftEntity)entity).getHandle();
|
||||
NBTTagCompound tag = new NBTTagCompound();
|
||||
|
|
|
@ -37,12 +37,10 @@ public class Rouge_Entity extends Patches implements Listener {
|
|||
|
||||
private Logger log = Logger.getLogger("Minecraft");
|
||||
|
||||
public Rouge_Entity() {
|
||||
runnable();
|
||||
}
|
||||
public Rouge_Entity() { checkRougeEntities(); }
|
||||
|
||||
public void runnable() {
|
||||
BukkitScheduler scheduler = Bukkit.getServer().getScheduler();
|
||||
public void checkRougeEntities() {
|
||||
BukkitScheduler scheduler = Bukkit.getScheduler();
|
||||
scheduler.scheduleSyncRepeatingTask(main, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package me.cooljwb.vulnerabilitypatcher.patches;
|
||||
|
||||
import me.cooljwb.vulnerabilitypatcher.SMG;
|
||||
import org.apache.commons.lang.builder.ReflectionToStringBuilder;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
|
@ -55,6 +56,8 @@ public class Trident_Riptide extends Patches implements Listener {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
debug(ReflectionToStringBuilder.toString(event));
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
@ -66,5 +69,7 @@ public class Trident_Riptide extends Patches implements Listener {
|
|||
item.removeEnchantment(Enchantment.RIPTIDE);
|
||||
item.addUnsafeEnchantment(Enchantment.RIPTIDE, enchantlevel.get(player));
|
||||
}
|
||||
|
||||
debug(ReflectionToStringBuilder.toString(event));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,18 +1,23 @@
|
|||
# VulnerabilityPatcher by CoolJWB
|
||||
# Patches:
|
||||
# DeathPotions, DeathItems, CrashSigns, Books, RougeEntity, Knockback, Riptide, FollowRange, DisconnectItems, CrashEgg.
|
||||
# VulnerabilityPatcher by CoolJWB.
|
||||
|
||||
# Patches: DeathPotions, DeathItems, CrashItems, Books, RougeEntity, Arrows, Riptide, FollowRange, DisconnectItems, EntityTag.
|
||||
# All patches added in the list below will be activated on server startup.
|
||||
Patches:
|
||||
- DeathPotions
|
||||
- DeathItems
|
||||
- CrashSigns
|
||||
- CrashItems
|
||||
- Books
|
||||
- RougeEntity
|
||||
- Knockback
|
||||
- Arrows
|
||||
- Riptide
|
||||
- FollowRange
|
||||
- DisconnectItems
|
||||
- CrashEgg
|
||||
- EntityTag
|
||||
|
||||
# All entities added below will be blocked to use in a spawn egg.
|
||||
BlockedEntityTags:
|
||||
- lightning_bolt
|
||||
- falling_block
|
||||
|
||||
Commands:
|
||||
Help:
|
||||
|
@ -27,4 +32,7 @@ Notify:
|
|||
Permission: vulnerability.notify
|
||||
|
||||
# DevMode should be set to false, unless you're a developer of this plugin.
|
||||
DevMode: false
|
||||
DevMode: false
|
||||
|
||||
# This should not be changed unless you know what you're doing.
|
||||
ConfVersion: 0
|
|
@ -1,5 +1,5 @@
|
|||
name: VulnerabilityPatcher
|
||||
version: 0.1.1
|
||||
version: 0.2
|
||||
main: me.cooljwb.vulnerabilitypatcher.VulnerabilityPatcher
|
||||
api-version: 1.13
|
||||
authors: [CoolJWB]
|
||||
|
|
Loading…
Reference in a new issue