This commit is contained in:
Kiran Hart 2020-01-26 15:27:29 -05:00
parent b520b2a025
commit f5e3bf6bb7
32 changed files with 1914 additions and 2209 deletions

6
.gitignore vendored
View File

@ -1 +1,5 @@
target/
target/
.idea/
Auction House - Multiversion.iml
AuctionHouse.iml
dependency-reduced-pom.xml

View File

@ -2,5 +2,7 @@
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
</component>
</project>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: com.google.code.gson:gson:2.8.6">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/google/code/gson/gson/2.8.6/gson-2.8.6.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/google/code/gson/gson/2.8.6/gson-2.8.6-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/google/code/gson/gson/2.8.6/gson-2.8.6-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -1,13 +1,13 @@
<component name="libraryTable">
<library name="Maven: com.zaxxer:HikariCP:3.4.1">
<library name="Maven: com.zaxxer:HikariCP:3.4.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/zaxxer/HikariCP/3.4.1/HikariCP-3.4.1.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/zaxxer/HikariCP/3.4.2/HikariCP-3.4.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/zaxxer/HikariCP/3.4.1/HikariCP-3.4.1-javadoc.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/zaxxer/HikariCP/3.4.2/HikariCP-3.4.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/zaxxer/HikariCP/3.4.1/HikariCP-3.4.1-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/zaxxer/HikariCP/3.4.2/HikariCP-3.4.2-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: commons-codec:commons-codec:1.13">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.13/commons-codec-1.13.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.13/commons-codec-1.13-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.13/commons-codec-1.13-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -1,13 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.bukkit:bukkit:1.14.4-R0.1-SNAPSHOT">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/bukkit/bukkit/1.14.4-R0.1-SNAPSHOT/bukkit-1.14.4-R0.1-20190919.071713-67.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/bukkit/bukkit/1.14.4-R0.1-SNAPSHOT/bukkit-1.14.4-R0.1-SNAPSHOT.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/bukkit/bukkit/1.14.4-R0.1-SNAPSHOT/bukkit-1.14.4-R0.1-20190919.071713-67-javadoc.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/bukkit/bukkit/1.14.4-R0.1-SNAPSHOT/bukkit-1.14.4-R0.1-SNAPSHOT-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/bukkit/bukkit/1.14.4-R0.1-SNAPSHOT/bukkit-1.14.4-R0.1-20190919.071713-67-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/bukkit/bukkit/1.14.4-R0.1-SNAPSHOT/bukkit-1.14.4-R0.1-SNAPSHOT-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.bukkit:bukkit:1.15.1-R0.1-SNAPSHOT">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/bukkit/bukkit/1.15.1-R0.1-SNAPSHOT/bukkit-1.15.1-R0.1-20200115.105315-44.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/bukkit/bukkit/1.15.1-R0.1-SNAPSHOT/bukkit-1.15.1-R0.1-20200115.105315-44-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/bukkit/bukkit/1.15.1-R0.1-SNAPSHOT/bukkit-1.15.1-R0.1-20200115.105315-44-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.json:json:20190722">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/json/json/20190722/json-20190722.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/json/json/20190722/json-20190722-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/json/json/20190722/json-20190722-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.spigotmc:spigot:1.15.1-R0.1-SNAPSHOT">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/spigotmc/spigot/1.15.1-R0.1-SNAPSHOT/spigot-1.15.1-R0.1-SNAPSHOT.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/spigotmc/spigot/1.15.1-R0.1-SNAPSHOT/spigot-1.15.1-R0.1-SNAPSHOT-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/spigotmc/spigot/1.15.1-R0.1-SNAPSHOT/spigot-1.15.1-R0.1-SNAPSHOT-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.yaml:snakeyaml:1.25">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/yaml/snakeyaml/1.25/snakeyaml-1.25.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/yaml/snakeyaml/1.25/snakeyaml-1.25-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/yaml/snakeyaml/1.25/snakeyaml-1.25-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -13,7 +13,7 @@
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8.0_181" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8.0_221" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

View File

@ -2,29 +2,38 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="0969fd6c-557b-481f-aa73-48fb4fa145ea" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/.idea/Auction House - Multiversion.iml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_github_MilkBowl_VaultAPI_1_7.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_zaxxer_HikariCP_3_3_1.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_zaxxer_HikariCP_3_4_1.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_25.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/AuctionHouse.iml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/auction/AuctionSortMethod.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/compiler.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/compiler.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_google_code_gson_gson_2_8_6.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__commons_codec_commons_codec_1_13.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_bukkit_bukkit_1_15_1_R0_1_SNAPSHOT.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_json_json_20190722.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_spigotmc_spigot_1_15_1_R0_1_SNAPSHOT.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_yaml_snakeyaml_1_25.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/api/version/HartUpdater.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/encodings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/encodings.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_zaxxer_HikariCP_3_4_1.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_zaxxer_HikariCP_3_4_2.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_bukkit_bukkit_1_14_4_R0_1_SNAPSHOT.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_bukkit_bukkit_1_14_4_R0_1_SNAPSHOT.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/modules.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Auction House - Multiversion.iml" beforeDir="false" afterPath="$PROJECT_DIR$/Auction House - Multiversion.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/AuctionHouse.iml" beforeDir="false" afterPath="$PROJECT_DIR$/AuctionHouse.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/dependency-reduced-pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/dependency-reduced-pom.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/pom.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/Core.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/Core.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/api/AuctionAPI.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/api/AuctionAPI.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/api/version/NBTEditor.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/api/version/NBTEditor.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/api/version/ServerVersion.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/api/version/ServerVersion.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/api/version/XMaterial.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/api/version/XMaterial.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/api/version/XSound.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/auction/AuctionSortMethod.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/auction/Receipt.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/auction/Receipt.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/auction/Transaction.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/auction/Transaction.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/cmds/subcommands/SellCommand.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/cmds/subcommands/SellCommand.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/inventory/inventories/AuctionGUI.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/inventory/inventories/AuctionGUI.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/util/storage/Database.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/util/storage/Database.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/util/tasks/SaveTransactionTask.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/util/tasks/SaveTransactionTask.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/util/tasks/TickAuctionsTask.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/kiranhart/auctionhouse/util/tasks/TickAuctionsTask.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/config.yml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/config.yml" afterDir="false" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
@ -34,34 +43,11 @@
<option name="RECENT_TEMPLATES">
<list>
<option value="Interface" />
<option value="Class" />
<option value="Enum" />
<option value="Class" />
</list>
</option>
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>head</find>
<find>craft</find>
<find>getInt(</find>
<find>private</find>
<find>loaded locale</find>
<find>prefix</find>
<find>blockeditem</find>
<find>auctionItem</find>
<find>AuctionItem</find>
<find>seller</find>
<find>auction_id</find>
<find>enchanted</find>
<find>.dep</find>
<find>boots</find>
</findStrings>
<replaceStrings>
<replace>getLong(</replace>
<replace>public</replace>
<replace>.withdrawBalance</replace>
</replaceStrings>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
@ -78,11 +64,22 @@
<component name="ProjectLevelVcsManager" settingsEditedManually="true">
<ConfirmationsSetting value="2" id="Add" />
</component>
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showExcludedFiles" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="node.js.detected.package.eslint" value="true" />
<property name="node.js.detected.package.tslint" value="true" />
<property name="node.js.path.for.package.eslint" value="project" />
<property name="node.js.path.for.package.tslint" value="project" />
<property name="node.js.selected.package.eslint" value="(autodetect)" />
<property name="node.js.selected.package.tslint" value="(autodetect)" />
<property name="project.structure.last.edited" value="Project" />
<property name="project.structure.proportion" value="0.0" />
<property name="project.structure.side.proportion" value="0.2" />
@ -99,18 +96,6 @@
<recent name="C:\Users\Kiran Hart\Documents\Development\Projects\Minecraft Plugins\Auction House - Multiversion\src\main\java\com\kiranhart\auctionhouse\cmds" />
</key>
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager" selected="Maven.Auction House - Multiversion build">
<configuration name="Db" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="Db" />
@ -119,6 +104,13 @@
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="Test" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="Test" />
<module name="Auction House - Multiversion" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="Auction House - Multiversion build" type="MavenRunConfiguration" factoryName="Maven">
<MavenSettings>
<option name="myGeneralSettings" />
@ -147,14 +139,28 @@
</configuration>
<list>
<item itemvalue="Application.Db" />
<item itemvalue="Application.Test" />
<item itemvalue="Maven.Auction House - Multiversion build" />
</list>
<recent_temporary>
<list>
<item itemvalue="Application.Test" />
<item itemvalue="Application.Db" />
</list>
</recent_temporary>
</component>
<component name="ServiceViewManager">
<option name="viewStates">
<list>
<serviceView>
<treeState>
<expand />
<select />
</treeState>
</serviceView>
</list>
</option>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
@ -168,7 +174,14 @@
<workItem from="1568937489790" duration="319000" />
<workItem from="1569081767168" duration="486000" />
<workItem from="1569106535698" duration="348000" />
<workItem from="1569107965924" duration="752000" />
<workItem from="1569107965924" duration="1128000" />
<workItem from="1579288090187" duration="3892000" />
<workItem from="1579454214897" duration="1445000" />
<workItem from="1579460232033" duration="1359000" />
<workItem from="1579461879936" duration="818000" />
<workItem from="1579561325965" duration="1008000" />
<workItem from="1579564495543" duration="91000" />
<workItem from="1579564969544" duration="43000" />
</task>
<task id="LOCAL-00001" summary="refresh">
<created>1565054245917</created>
@ -240,7 +253,14 @@
<option name="project" value="LOCAL" />
<updated>1568038174035</updated>
</task>
<option name="localTasksCounter" value="11" />
<task id="LOCAL-00011" summary="github sync">
<created>1569108826106</created>
<option name="number" value="00011" />
<option name="presentableId" value="LOCAL-00011" />
<option name="project" value="LOCAL" />
<updated>1569108826106</updated>
</task>
<option name="localTasksCounter" value="12" />
<servers />
</component>
<component name="TodoView">
@ -284,4 +304,38 @@
<option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="true" />
<option name="REFORMAT_BEFORE_PROJECT_COMMIT" value="true" />
</component>
<component name="WindowStateProjectService">
<state x="416" y="182" key="#com.intellij.execution.impl.EditConfigurationsDialog" timestamp="1579561359045">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="416" y="182" key="#com.intellij.execution.impl.EditConfigurationsDialog/0.0.1920.1040/1920.0.1920.1040@0.0.1920.1040" timestamp="1579561359045" />
<state x="808" y="410" key="#com.intellij.ide.util.projectWizard.JdkChooserPanel.MyDialog" timestamp="1579288175523">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="808" y="410" key="#com.intellij.ide.util.projectWizard.JdkChooserPanel.MyDialog/0.0.1920.1040/1920.0.1920.1040@0.0.1920.1040" timestamp="1579288175523" />
<state x="690" y="268" key="#com.intellij.refactoring.safeDelete.UnsafeUsagesDialog" timestamp="1579288162839">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="690" y="268" key="#com.intellij.refactoring.safeDelete.UnsafeUsagesDialog/0.0.1920.1040/1920.0.1920.1040@0.0.1920.1040" timestamp="1579288162839" />
<state width="1877" height="185" key="GridCell.Tab.0.bottom" timestamp="1579461606282">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1877" height="185" key="GridCell.Tab.0.bottom/0.0.1920.1040/1920.0.1920.1040@0.0.1920.1040" timestamp="1579461606282" />
<state width="1877" height="185" key="GridCell.Tab.0.center" timestamp="1579461606282">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1877" height="185" key="GridCell.Tab.0.center/0.0.1920.1040/1920.0.1920.1040@0.0.1920.1040" timestamp="1579461606282" />
<state width="1877" height="185" key="GridCell.Tab.0.left" timestamp="1579461606282">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1877" height="185" key="GridCell.Tab.0.left/0.0.1920.1040/1920.0.1920.1040@0.0.1920.1040" timestamp="1579461606282" />
<state width="1877" height="185" key="GridCell.Tab.0.right" timestamp="1579461606282">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1877" height="185" key="GridCell.Tab.0.right/0.0.1920.1040/1920.0.1920.1040@0.0.1920.1040" timestamp="1579461606282" />
<state x="655" y="345" key="com.intellij.ide.util.TipDialog" timestamp="1579461879291">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="655" y="345" key="com.intellij.ide.util.TipDialog/0.0.1920.1040/1920.0.1920.1040@0.0.1920.1040" timestamp="1579461879291" />
</component>
</project>

View File

@ -30,5 +30,6 @@
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
<orderEntry type="library" name="Maven: com.github.MilkBowl:VaultAPI:1.7" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.3.1" level="project" />
<orderEntry type="library" name="Maven: org.json:json:20190722" level="project" />
</component>
</module>

View File

@ -4,7 +4,7 @@
<facet type="minecraft" name="Minecraft">
<configuration>
<autoDetectTypes>
<platformType>BUKKIT</platformType>
<platformType>SPIGOT</platformType>
</autoDetectTypes>
</configuration>
</facet>
@ -21,15 +21,15 @@
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.bukkit:bukkit:1.14.4-R0.1-SNAPSHOT" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.spigotmc:spigot:1.15.1-R0.1-SNAPSHOT" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.bukkit:bukkit:1.15.1-R0.1-SNAPSHOT" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-lang:commons-lang:2.6" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.guava:guava:21.0" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.code.gson:gson:2.8.0" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.yaml:snakeyaml:1.23" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.bukkit:craftbukkit:1.14.3-R0.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.yaml:snakeyaml:1.25" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.13" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.github.MilkBowl:VaultAPI:1.7" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.1" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.2" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.25" level="project" />
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.6" level="project" />
</component>
</module>

View File

@ -4,11 +4,11 @@
<groupId>com.kiranhart</groupId>
<artifactId>AuctionHouse</artifactId>
<name>AuctionHouse</name>
<version>1.10.2</version>
<version>1.11</version>
<description>The ultimate auction house plugin</description>
<url>https://www.kiranhart.com</url>
<build>
<defaultGoal>clean package</defaultGoal>
<defaultGoal>mvn clean install</defaultGoal>
<resources>
<resource>
<filtering>true</filtering>
@ -44,7 +44,7 @@
<repositories>
<repository>
<id>spigotmc-repo</id>
<url>https://hub.spigotmc.org/nexus/content/groups/public/</url>
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
</repository>
<repository>
<id>jitpack.io</id>
@ -52,10 +52,16 @@
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot</artifactId>
<version>1.15.1-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.bukkit</groupId>
<artifactId>bukkit</artifactId>
<version>1.14.4-R0.1-SNAPSHOT</version>
<version>1.15.1-R0.1-SNAPSHOT</version>
<scope>provided</scope>
<exclusions>
<exclusion>
@ -66,22 +72,12 @@
<artifactId>guava</artifactId>
<groupId>com.google.guava</groupId>
</exclusion>
<exclusion>
<artifactId>gson</artifactId>
<groupId>com.google.code.gson</groupId>
</exclusion>
<exclusion>
<artifactId>snakeyaml</artifactId>
<groupId>org.yaml</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.bukkit</groupId>
<artifactId>craftbukkit</artifactId>
<version>1.14.3-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.github.MilkBowl</groupId>
<artifactId>VaultAPI</artifactId>

24
pom.xml
View File

@ -6,7 +6,7 @@
<groupId>com.kiranhart</groupId>
<artifactId>AuctionHouse</artifactId>
<version>1.10.3</version>
<version>1.11</version>
<packaging>jar</packaging>
<name>AuctionHouse</name>
@ -18,7 +18,7 @@
<url>https://www.kiranhart.com</url>
<build>
<defaultGoal>clean package</defaultGoal>
<defaultGoal>mvn clean install</defaultGoal>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@ -57,7 +57,7 @@
<repositories>
<repository>
<id>spigotmc-repo</id>
<url>https://hub.spigotmc.org/nexus/content/groups/public/</url>
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
</repository>
<repository>
<id>jitpack.io</id>
@ -67,21 +67,21 @@
<dependencies>
<dependency>
<groupId>org.bukkit</groupId>
<artifactId>bukkit</artifactId>
<version>1.14.4-R0.1-SNAPSHOT</version>
<groupId>org.spigotmc</groupId>
<artifactId>spigot</artifactId>
<version>1.15.1-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.bukkit</groupId>
<artifactId>craftbukkit</artifactId>
<version>1.14.3-R0.1-SNAPSHOT</version>
<artifactId>bukkit</artifactId>
<version>1.15.1-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.10</version>
<version>1.13</version>
</dependency>
<dependency>
<groupId>com.github.MilkBowl</groupId>
@ -95,5 +95,11 @@
<version>LATEST</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@ -1,9 +1,9 @@
package com.kiranhart.auctionhouse;
import com.kiranhart.auctionhouse.api.statics.AuctionSettings;
import com.kiranhart.auctionhouse.api.version.HartUpdater;
import com.kiranhart.auctionhouse.api.version.ServerVersion;
import com.kiranhart.auctionhouse.auction.AuctionItem;
import com.kiranhart.auctionhouse.auction.AuctionSortMethod;
import com.kiranhart.auctionhouse.cmds.CommandManager;
import com.kiranhart.auctionhouse.inventory.AGUI;
import com.kiranhart.auctionhouse.listeners.AGUIListener;
@ -44,7 +44,6 @@ public final class Core extends JavaPlugin {
private ArrayList<AuctionItem> auctionItems;
private Map<Player, Integer> currentAuctionPage;
private Map<Player, AuctionSortMethod> sortMethod;
private ConfigWrapper transactions;
private ConfigWrapper data;
@ -53,6 +52,7 @@ public final class Core extends JavaPlugin {
private boolean dbConnected;
private boolean locked = false;
private HartUpdater updater;
@Override
public void onEnable() {
@ -61,7 +61,7 @@ public final class Core extends JavaPlugin {
pm = Bukkit.getPluginManager();
console.sendMessage(ChatColor.translateAlternateColorCodes('&', "&6========================================="));
console.sendMessage(ChatColor.translateAlternateColorCodes('&', "&bLoading Auction House 1.10 - Multiversion"));
console.sendMessage(ChatColor.translateAlternateColorCodes('&', "&bLoading Auction House 1.11 - Multiversion"));
console.sendMessage(ChatColor.translateAlternateColorCodes('&', " "));
console.sendMessage(ChatColor.translateAlternateColorCodes('&', "&fThis plugin was designed by Kiran Hart any"));
console.sendMessage(ChatColor.translateAlternateColorCodes('&', "&fproblems should be reported directly to him."));
@ -75,7 +75,7 @@ public final class Core extends JavaPlugin {
if (isServerVersion(ServerVersion.NOT_SUPPORTED, ServerVersion.V1_7)) {
console.sendMessage(ChatColor.translateAlternateColorCodes('&', "&6==========================================="));
console.sendMessage(ChatColor.translateAlternateColorCodes('&', "&bDisabling Auction House 1.10 - Multiversion"));
console.sendMessage(ChatColor.translateAlternateColorCodes('&', "&bDisabling Auction House 1.11 - Multiversion"));
console.sendMessage(ChatColor.translateAlternateColorCodes('&', " "));
console.sendMessage(ChatColor.translateAlternateColorCodes('&', "&fServer Version is not supported!"));
console.sendMessage(ChatColor.translateAlternateColorCodes('&', "&6========================================="));
@ -90,6 +90,9 @@ public final class Core extends JavaPlugin {
//Economy
if (getServer().getPluginManager().getPlugin("Vault") != null) {
economy = new VaultEconomy();
} else {
console.sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&6AuctionHouse&8]&c COULD NOT FIND VAULT, DISABLING PLUGIN"));
getServer().getPluginManager().disablePlugin(this);
}
console.sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&6AuctionHouse&8]&a Loading data files"));
@ -127,7 +130,6 @@ public final class Core extends JavaPlugin {
//Load the auctions
LoadAuctionsTask.startTask(this);
currentAuctionPage = new HashMap<>();
sortMethod = new HashMap<>();
console.sendMessage(ChatColor.translateAlternateColorCodes('&', "&6========================================="));
console.sendMessage(ChatColor.translateAlternateColorCodes('&', "&bLoaded Auction House " + getDescription().getVersion() + " - Multiversion"));
@ -140,6 +142,13 @@ public final class Core extends JavaPlugin {
//Begin Auction Auto Save
AutoSaveTask.startTask(this);
//Begin the update checker
if (getConfig().getBoolean("update-checker")) {
getServer().getScheduler().runTaskTimerAsynchronously(this, () -> {
updater = new HartUpdater();
}, 0, 20 * getConfig().getInt("update-delay"));
}
}
@Override
@ -255,9 +264,5 @@ public final class Core extends JavaPlugin {
public Map<Player, Integer> getCurrentAuctionPage() {
return currentAuctionPage;
}
public Map<Player, AuctionSortMethod> getSortMethod() {
return sortMethod;
}
}

View File

@ -13,7 +13,6 @@ import com.kiranhart.auctionhouse.api.version.NBTEditor;
import com.kiranhart.auctionhouse.api.version.ServerVersion;
import com.kiranhart.auctionhouse.api.version.XMaterial;
import com.kiranhart.auctionhouse.auction.AuctionItem;
import com.kiranhart.auctionhouse.auction.AuctionSortMethod;
import com.kiranhart.auctionhouse.auction.Transaction;
import com.kiranhart.auctionhouse.util.Debugger;
import org.apache.commons.lang.StringUtils;
@ -162,7 +161,7 @@ public class AuctionAPI {
*/
public ItemStack createNotEnoughMoneyIcon() {
String[] item = Core.getInstance().getConfig().getString("guis.auctionhouse.items.not-enough-money.item").split(":");
ItemStack stack = XMaterial.matchXMaterial(item[0].toUpperCase(), Byte.parseByte(item[1])).parseItem();
ItemStack stack = XMaterial.matchXMaterial(item[0].toUpperCase(), Byte.parseByte(item[1])).get().parseItem();
ItemMeta meta = stack.getItemMeta();
meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', Core.getInstance().getConfig().getString("guis.auctionhouse.items.not-enough-money.name")));
List<String> lore = new ArrayList<>();
@ -180,7 +179,7 @@ public class AuctionAPI {
*/
public ItemStack createConfigurationItem(String node, int activeAuctions, int expiredAuctions) {
String[] item = Core.getInstance().getConfig().getString(node + ".item").split(":");
ItemStack stack = XMaterial.matchXMaterial(item[0].toUpperCase(), Byte.parseByte(item[1])).parseItem();
ItemStack stack = XMaterial.matchXMaterial(item[0].toUpperCase(), Byte.parseByte(item[1])).get().parseItem();
ItemMeta meta = stack.getItemMeta();
meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', Core.getInstance().getConfig().getString(node + ".name")));
List<String> lore = new ArrayList<>();
@ -201,7 +200,7 @@ public class AuctionAPI {
*/
public ItemStack createTransactionConfigItem(String node, String buyer, String seller, int startPrice, int bidincrement, int buynowprice) {
String[] rawItem = Core.getInstance().getConfig().getString(node + ".item").split(":");
ItemStack stack = XMaterial.matchXMaterial(rawItem[0].toUpperCase(), Byte.parseByte(rawItem[1])).parseItem();
ItemStack stack = XMaterial.matchXMaterial(rawItem[0].toUpperCase(), Byte.parseByte(rawItem[1])).get().parseItem();
ItemMeta meta = stack.getItemMeta();
meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', Core.getInstance().getConfig().getString(node + ".name")));
List<String> lore = new ArrayList<>();
@ -331,50 +330,4 @@ public class AuctionAPI {
});
return collection;
}
public List<AuctionItem> sortBasedOnPlayer(List<AuctionItem> list, Player p) {
List<AuctionItem> sorted = list;
if (!Core.getInstance().getSortMethod().containsKey(p)) {
Core.getInstance().getSortMethod().put(p, AuctionSortMethod.DEFAULT);
return sorted;
}
//Armor
if (Core.getInstance().getSortMethod().get(p) == AuctionSortMethod.ARMOR) {
sorted.forEach(item -> {
if (!item.getItem().getType().name().endsWith("_HELMET") || !item.getItem().getType().name().endsWith("_CHESTPLATE") || !item.getItem().getType().name().endsWith("_LEGGINGS") || !item.getItem().getType().name().endsWith("_BOOTS")) {
sorted.remove(item);
}
});
}
//Blocks
if (Core.getInstance().getSortMethod().get(p) == AuctionSortMethod.BLOCKS) {
sorted.forEach(item -> {
if (!item.getItem().getType().isBlock()) {
sorted.remove(item);
}
});
}
//Tools
if (Core.getInstance().getSortMethod().get(p) == AuctionSortMethod.TOOLS) {
sorted.forEach(item -> {
if (!item.getItem().getType().name().endsWith("_SWORD") || !item.getItem().getType().name().endsWith("_AXE") || !item.getItem().getType().name().endsWith("_HOE") || !item.getItem().getType().name().endsWith("_SHOVEL") || item.getItem().getType() != XMaterial.BOW.parseMaterial()) {
sorted.remove(item);
}
});
}
//Food
if (Core.getInstance().getSortMethod().get(p) == AuctionSortMethod.FOOD) {
sorted.forEach(item -> {
if (!item.getItem().getType().isEdible()) {
sorted.remove(item);
}
});
}
return sorted;
}
}

View File

@ -0,0 +1,68 @@
package com.kiranhart.auctionhouse.api.version;
import com.google.gson.Gson;
import com.kiranhart.auctionhouse.api.statics.AuctionPermissions;
import com.kiranhart.auctionhouse.util.Debugger;
import org.bukkit.Bukkit;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import static org.bukkit.ChatColor.translateAlternateColorCodes;
/**
* The current file has been created by Kiran Hart
* Date Created: 1/17/2020
* Time Created: 2:31 PM
* Usage of any code found within this class is prohibited unless given explicit permission otherwise.
*/
public class HartUpdater {
private String VERSION = "1.11";
public HartUpdater() {
try {
URL url = new URL("http://www.kiranhart.com/api/plugins/1");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.connect();
BufferedReader json = new BufferedReader(new InputStreamReader(connection.getInputStream()));
Plugin plugin = new Gson().fromJson(json, Plugin.class);
if (!VERSION.equalsIgnoreCase(plugin.version)) {
Bukkit.getConsoleSender().sendMessage(translateAlternateColorCodes('&', "&b======================="));
Bukkit.getConsoleSender().sendMessage(translateAlternateColorCodes('&', "&eAuction House Updater"));
Bukkit.getConsoleSender().sendMessage(translateAlternateColorCodes('&', "&b-----------------------"));
Bukkit.getConsoleSender().sendMessage(translateAlternateColorCodes('&', "&fLatest Version: &6" + plugin.version));
Bukkit.getConsoleSender().sendMessage(translateAlternateColorCodes('&', "&fCurrent Version: &6" + this.VERSION));
Bukkit.getConsoleSender().sendMessage(translateAlternateColorCodes('&', "&cPlease update the plugin."));
Bukkit.getConsoleSender().sendMessage(translateAlternateColorCodes('&', "&b-----------------------"));
Bukkit.getOnlinePlayers().forEach(p -> {
if (p.isOp() || p.hasPermission(AuctionPermissions.ADMIN)) {
p.sendMessage(translateAlternateColorCodes('&', "&b======================="));
p.sendMessage(translateAlternateColorCodes('&', "&eAuction House Updater"));
p.sendMessage(translateAlternateColorCodes('&', "&b-----------------------"));
p.sendMessage(translateAlternateColorCodes('&', "&fLatest Version: &6" + plugin.version));
p.sendMessage(translateAlternateColorCodes('&', "&fCurrent Version: &6" + this.VERSION));
p.sendMessage(translateAlternateColorCodes('&', "&cPlease update the plugin."));
p.sendMessage(translateAlternateColorCodes('&', "&b-----------------------"));
}
});
}
connection.disconnect();
} catch (IOException e) {
Debugger.report(e, false);
}
}
}
class Plugin {
String version;
}

View File

@ -3,6 +3,7 @@ package com.kiranhart.auctionhouse.api.version;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Base64;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -12,7 +13,6 @@ import java.util.regex.Pattern;
import javax.annotation.Nonnull;
import org.apache.commons.codec.binary.Base64;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
@ -25,13 +25,13 @@ import com.mojang.authlib.GameProfile;
import com.mojang.authlib.properties.Property;
/**
* Sets/Gets NBT tags from ItemStacks
* Supports 1.8-1.14
*
* Sets/Gets NBT tags from ItemStacks
* Supports 1.8-1.15
*
* Github: https://github.com/BananaPuncher714/NBTEditor
* Spigot: https://www.spigotmc.org/threads/single-class-nbt-editor-for-items-skulls-mobs-and-tile-entities-1-8-1-13.269621/
*
* @version 7.6
* Spigot: https://www.spigotmc.org/threads/269621/
*
* @version 7.8
* @author BananaPuncher714
*/
public final class NBTEditor {
@ -66,7 +66,7 @@ public final class NBTEditor {
classCache.put( "BlockPosition", Class.forName( "net.minecraft.server." + VERSION + "." + "BlockPosition" ) );
classCache.put( "TileEntity", Class.forName( "net.minecraft.server." + VERSION + "." + "TileEntity" ) );
classCache.put( "World", Class.forName( "net.minecraft.server." + VERSION + "." + "World" ) );
classCache.put( "TileEntitySkull", Class.forName( "net.minecraft.server." + VERSION + "." + "TileEntitySkull" ) );
} catch (ClassNotFoundException e) {
e.printStackTrace();
@ -93,20 +93,20 @@ public final class NBTEditor {
methodCache.put( "set", getNMSClass( "NBTTagCompound" ).getMethod( "set", String.class, getNMSClass( "NBTBase" ) ) );
methodCache.put( "hasKey", getNMSClass( "NBTTagCompound" ).getMethod( "hasKey", String.class ) );
methodCache.put( "setIndex", getNMSClass( "NBTTagList" ).getMethod( "a", int.class, getNMSClass( "NBTBase" ) ) );
if ( VERSION.contains( "1_14" ) ) {
if ( VERSION.contains( "1_14" ) || VERSION.contains( "1_15" ) ) {
methodCache.put( "getTypeId", getNMSClass( "NBTBase" ).getMethod( "getTypeId" ) );
methodCache.put( "add", getNMSClass( "NBTTagList" ).getMethod( "add", int.class, getNMSClass( "NBTBase" ) ) );
} else {
methodCache.put( "add", getNMSClass( "NBTTagList" ).getMethod( "add", getNMSClass( "NBTBase" ) ) );
}
if ( VERSION.contains( "1_8" ) ) {
methodCache.put( "listRemove", getNMSClass( "NBTTagList" ).getMethod( "a", int.class ) );
} else {
methodCache.put( "listRemove", getNMSClass( "NBTTagList" ).getMethod( "remove", int.class ) );
}
methodCache.put( "remove", getNMSClass( "NBTTagCompound" ).getMethod( "remove", String.class ) );
methodCache.put( "hasTag", getNMSClass( "ItemStack" ).getMethod( "hasTag" ) );
methodCache.put( "getTag", getNMSClass( "ItemStack" ).getMethod( "getTag" ) );
methodCache.put( "setTag", getNMSClass( "ItemStack" ).getMethod( "setTag", getNMSClass( "NBTTagCompound" ) ) );
@ -117,14 +117,14 @@ public final class NBTEditor {
methodCache.put( "getEntityTag", getNMSClass( "Entity" ).getMethod( "c", getNMSClass( "NBTTagCompound" ) ) );
methodCache.put( "setEntityTag", getNMSClass( "Entity" ).getMethod( "f", getNMSClass( "NBTTagCompound" ) ) );
if ( VERSION.contains( "1_12" ) || VERSION.contains( "1_13" ) || VERSION.contains( "1_14" ) ) {
if ( VERSION.contains( "1_12" ) || VERSION.contains( "1_13" ) || VERSION.contains( "1_14" ) || VERSION.contains( "1_15" ) ) {
methodCache.put( "setTileTag", getNMSClass( "TileEntity" ).getMethod( "load", getNMSClass( "NBTTagCompound" ) ) );
} else {
methodCache.put( "setTileTag", getNMSClass( "TileEntity" ).getMethod( "a", getNMSClass( "NBTTagCompound" ) ) );
}
methodCache.put( "getTileEntity", getNMSClass( "World" ).getMethod( "getTileEntity", getNMSClass( "BlockPosition" ) ) );
methodCache.put( "getWorldHandle", getNMSClass( "CraftWorld" ).getMethod( "getHandle" ) );
methodCache.put( "setGameProfile", getNMSClass( "TileEntitySkull" ).getMethod( "setGameProfile", GameProfile.class ) );
} catch( Exception e ) {
e.printStackTrace();
@ -144,16 +144,21 @@ public final class NBTEditor {
constructorCache = new HashMap< Class< ? >, Constructor< ? > >();
try {
constructorCache.put( getNBTTag( Byte.class ), getNBTTag( Byte.class ).getConstructor( byte.class ) );
constructorCache.put( getNBTTag( String.class ), getNBTTag( String.class ).getConstructor( String.class ) );
constructorCache.put( getNBTTag( Double.class ), getNBTTag( Double.class ).getConstructor( double.class ) );
constructorCache.put( getNBTTag( Integer.class ), getNBTTag( Integer.class ).getConstructor( int.class ) );
constructorCache.put( getNBTTag( Long.class ), getNBTTag( Long.class ).getConstructor( long.class ) );
constructorCache.put( getNBTTag( Float.class ), getNBTTag( Float.class ).getConstructor( float.class ) );
constructorCache.put( getNBTTag( Short.class ), getNBTTag( Short.class ).getConstructor( short.class ) );
constructorCache.put( getNBTTag( Class.forName( "[B" ) ), getNBTTag( Class.forName( "[B" ) ).getConstructor( Class.forName( "[B" ) ) );
constructorCache.put( getNBTTag( Class.forName( "[I" ) ), getNBTTag( Class.forName( "[I" ) ).getConstructor( Class.forName( "[I" ) ) );
constructorCache.put( getNBTTag( Byte.class ), getNBTTag( Byte.class ).getDeclaredConstructor( byte.class ) );
constructorCache.put( getNBTTag( String.class ), getNBTTag( String.class ).getDeclaredConstructor( String.class ) );
constructorCache.put( getNBTTag( Double.class ), getNBTTag( Double.class ).getDeclaredConstructor( double.class ) );
constructorCache.put( getNBTTag( Integer.class ), getNBTTag( Integer.class ).getDeclaredConstructor( int.class ) );
constructorCache.put( getNBTTag( Long.class ), getNBTTag( Long.class ).getDeclaredConstructor( long.class ) );
constructorCache.put( getNBTTag( Float.class ), getNBTTag( Float.class ).getDeclaredConstructor( float.class ) );
constructorCache.put( getNBTTag( Short.class ), getNBTTag( Short.class ).getDeclaredConstructor( short.class ) );
constructorCache.put( getNBTTag( Class.forName( "[B" ) ), getNBTTag( Class.forName( "[B" ) ).getDeclaredConstructor( Class.forName( "[B" ) ) );
constructorCache.put( getNBTTag( Class.forName( "[I" ) ), getNBTTag( Class.forName( "[I" ) ).getDeclaredConstructor( Class.forName( "[I" ) ) );
// This is for 1.15 since Mojang decided to make the constructors private
for ( Constructor< ? > cons : constructorCache.values() ) {
cons.setAccessible( true );
}
constructorCache.put( getNMSClass( "BlockPosition" ), getNMSClass( "BlockPosition" ).getConstructor( int.class, int.class, int.class ) );
} catch( Exception e ) {
e.printStackTrace();
@ -221,7 +226,7 @@ public final class NBTEditor {
return null;
}
}
private static String getMatch( String string, String regex ) {
Pattern pattern = Pattern.compile( regex );
Matcher matcher = pattern.matcher( string );
@ -231,10 +236,10 @@ public final class NBTEditor {
return null;
}
}
/**
* Gets the Bukkit version
*
*
* @return
* The Bukkit version in standard package format
*/
@ -244,7 +249,7 @@ public final class NBTEditor {
/**
* Creates a skull with the given url as the skin
*
*
* @param skinURL
* The URL of the skin, must be from mojang
* @return
@ -262,7 +267,7 @@ public final class NBTEditor {
}
ItemMeta headMeta = head.getItemMeta();
GameProfile profile = new GameProfile( UUID.randomUUID(), null);
byte[] encodedData = Base64.encodeBase64( String.format( "{textures:{SKIN:{\"url\":\"%s\"}}}", skinURL ).getBytes() );
byte[] encodedData = Base64.getEncoder().encode( String.format( "{textures:{SKIN:{\"url\":\"%s\"}}}", skinURL ).getBytes() );
profile.getProperties().put("textures", new Property("textures", new String(encodedData)));
Field profileField = null;
try {
@ -279,10 +284,10 @@ public final class NBTEditor {
head.setItemMeta(headMeta);
return head;
}
/**
* Fetches the texture of a skull
*
*
* @param head
* The item stack itself
* @return
@ -306,7 +311,7 @@ public final class NBTEditor {
for ( Property prop : profile.getProperties().values() ) {
if ( prop.getName().equals( "textures" ) ) {
String texture = new String( Base64.decodeBase64( prop.getValue() ) );
String texture = new String( Base64.getDecoder().decode( prop.getValue() ) );
return getMatch( texture, "\\{\"url\":\"(.*?)\"\\}" );
}
}
@ -319,9 +324,9 @@ public final class NBTEditor {
/**
* @deprecated
*
*
* Gets an NBT tag in a given item with the specified keys
*
*
* @param item
* The itemstack to get the keys from
* @param key
@ -355,7 +360,7 @@ public final class NBTEditor {
/**
* Gets an NBTCompound from the item provided
*
*
* @param item
* Itemstack
* @param keys
@ -389,12 +394,13 @@ public final class NBTEditor {
return null;
}
}
/**
* @deprecated
*
*
* Sets an NBT tag in an item with the provided keys and value
*
* Should use the {@link set(Object, Object, Object...)} method instead
*
* @param item
* The itemstack to set
* @param key
@ -427,10 +433,10 @@ public final class NBTEditor {
return null;
}
}
/**
* Constructs an ItemStack from a given NBTCompound
*
*
* @param compound
* An NBTCompound following an ItemStack structure
* @return
@ -462,9 +468,9 @@ public final class NBTEditor {
/**
* @deprecated
*
*
* Gets an NBT tag in a given entity with the specified keys
*
*
* @param block
* The entity to get the keys from
* @param key
@ -490,10 +496,10 @@ public final class NBTEditor {
return null;
}
}
/**
* Gets an NBTCompound from the entity provided
*
*
* @param entity
* The Bukkit entity provided
* @param keys
@ -521,9 +527,10 @@ public final class NBTEditor {
/**
* @deprecated
*
*
* Sets an NBT tag in an entity with the provided keys and value
*
* Should use the {@link set(Object, Object, Object...)} method instead
*
* @param item
* The entity to set
* @param key
@ -555,9 +562,9 @@ public final class NBTEditor {
/**
* @deprecated
*
*
* Gets an NBT tag in a given block with the specified keys
*
*
* @param block
* The block to get the keys from
* @param key
@ -572,15 +579,15 @@ public final class NBTEditor {
return null;
}
Location location = block.getLocation();
Object blockPosition = getConstructor( getNMSClass( "BlockPosition" ) ).newInstance( location.getBlockX(), location.getBlockY(), location.getBlockZ() );
Object nmsWorld = getMethod( "getWorldHandle" ).invoke( location.getWorld() );
Object tileEntity = getMethod( "getTileEntity" ).invoke( nmsWorld, blockPosition );
Object tag = getNMSClass( "NBTTagCompound" ).newInstance();
getMethod( "getTileTag" ).invoke( tileEntity, tag );
return getTag( tag, keys );
@ -589,10 +596,10 @@ public final class NBTEditor {
return null;
}
}
/**
* Gets an NBTCompound from the block provided
*
*
* @param block
* The block provided
* @param keys
@ -606,15 +613,15 @@ public final class NBTEditor {
return null;
}
Location location = block.getLocation();
Object blockPosition = getConstructor( getNMSClass( "BlockPosition" ) ).newInstance( location.getBlockX(), location.getBlockY(), location.getBlockZ() );
Object nmsWorld = getMethod( "getWorldHandle" ).invoke( location.getWorld() );
Object tileEntity = getMethod( "getTileEntity" ).invoke( nmsWorld, blockPosition );
Object tag = getNMSClass( "NBTTagCompound" ).newInstance();
getMethod( "getTileTag" ).invoke( tileEntity, tag );
return getNBTTag( tag, keys );
@ -626,9 +633,10 @@ public final class NBTEditor {
/**
* @deprecated
*
*
* Sets an NBT tag in an block with the provided keys and value
*
* Should use the {@link set(Object, Object, Object...)} method instead
*
* @param item
* The block to set
* @param key
@ -652,7 +660,7 @@ public final class NBTEditor {
Object tileEntity = getMethod( "getTileEntity" ).invoke( nmsWorld, blockPosition );
Object tag = getNMSClass( "NBTTagCompound" ).newInstance();
getMethod( "getTileTag" ).invoke( tileEntity, tag );
setTag( tag, value, keys );
@ -663,10 +671,10 @@ public final class NBTEditor {
return;
}
}
/**
* Sets the texture of a skull block
*
*
* @param block
* The block, must be a skull
* @param texture
@ -674,11 +682,11 @@ public final class NBTEditor {
*/
public final static void setSkullTexture( Block block, String texture ) {
GameProfile profile = new GameProfile( UUID.randomUUID(), null );
profile.getProperties().put( "textures", new com.mojang.authlib.properties.Property( "textures", new String( Base64.encodeBase64( String.format( "{textures:{SKIN:{\"url\":\"%s\"}}}", texture ).getBytes() ) ) ) );
profile.getProperties().put( "textures", new com.mojang.authlib.properties.Property( "textures", new String( Base64.getEncoder().encode( String.format( "{textures:{SKIN:{\"url\":\"%s\"}}}", texture ).getBytes() ) ) ) );
try {
Location location = block.getLocation();
Object blockPosition = getConstructor( getNMSClass( "BlockPosition" ) ).newInstance( location.getBlockX(), location.getBlockY(), location.getBlockZ() );
Object nmsWorld = getMethod( "getWorldHandle" ).invoke( location.getWorld() );
@ -690,10 +698,10 @@ public final class NBTEditor {
exception.printStackTrace();
}
}
/**
* Gets a string from an object
*
*
* @param object
* Must be an ItemStack, Entity, or Block
* @param keys
@ -714,10 +722,10 @@ public final class NBTEditor {
}
return result instanceof String ? ( String ) result : null;
}
/**
* Gets an int from an object
*
*
* @param object
* Must be an ItemStack, Entity, or Block
* @param keys
@ -738,10 +746,34 @@ public final class NBTEditor {
}
return result instanceof Integer ? ( int ) result : 0;
}
/**
* Gets a double from an object
*
* @param object
* Must be an ItemStack, Entity, or Block
* @param keys
* Keys in descending order
* @return
* A double, or 0 if none is stored at the provided location
*/
public final static double getDouble( Object object, Object... keys ) {
Object result;
if ( object instanceof ItemStack ) {
result = getItemTag( ( ItemStack ) object, keys );
} else if ( object instanceof Entity ) {
result = getEntityTag( ( Entity ) object, keys );
} else if ( object instanceof Block ) {
result = getBlockTag( ( Block ) object, keys );
} else {
throw new IllegalArgumentException( "Object provided must be of type ItemStack, Entity, or Block!" );
}
return result instanceof Double ? ( double ) result : 0;
}
/**
* Gets a long from an object
*
*
* @param object
* Must be an ItemStack, Entity, or Block
* @param keys
@ -762,10 +794,10 @@ public final class NBTEditor {
}
return result instanceof Long ? ( long ) result : 0;
}
/**
* Gets a float from an object
*
*
* @param object
* Must be an ItemStack, Entity, or Block
* @param keys
@ -786,10 +818,10 @@ public final class NBTEditor {
}
return result instanceof Float ? ( float ) result : 0;
}
/**
* Gets a short from an object
*
*
* @param object
* Must be an ItemStack, Entity, or Block
* @param keys
@ -810,10 +842,10 @@ public final class NBTEditor {
}
return result instanceof Short ? ( short ) result : 0;
}
/**
* Gets a byte from an object
*
*
* @param object
* Must be an ItemStack, Entity, or Block
* @param keys
@ -834,10 +866,10 @@ public final class NBTEditor {
}
return result instanceof Byte ? ( byte ) result : 0;
}
/**
* Gets a byte array from an object
*
*
* @param object
* Must be an ItemStack, Entity, or Block
* @param keys
@ -858,10 +890,10 @@ public final class NBTEditor {
}
return result instanceof byte[] ? ( byte[] ) result : null;
}
/**
* Gets an int array from an object
*
*
* @param object
* Must be an ItemStack, Entity, or Block
* @param keys
@ -882,10 +914,10 @@ public final class NBTEditor {
}
return result instanceof int[] ? ( int[] ) result : null;
}
/**
* Checks if the object contains the given key
*
*
* @param object
* Must be an ItemStack, Entity, or Block
* @param keys
@ -906,10 +938,10 @@ public final class NBTEditor {
}
return result != null;
}
/**
* Sets the value in the object with the given keys
*
*
* @param object
* Must be an ItemStack, Entity, or Block
* @param value
@ -983,7 +1015,12 @@ public final class NBTEditor {
compound = getNMSClass( "NBTTagCompound" ).newInstance();
}
if ( oldCompound.getClass().getSimpleName().equals( "NBTTagList" ) ) {
getMethod( "add" ).invoke( oldCompound, compound );
if ( VERSION.contains( "1_14" ) ) {
int type = ( int ) getMethod( "getTypeId" ).invoke( notCompound );
getMethod( "add" ).invoke( compound, type, notCompound );
} else {
getMethod( "add" ).invoke( compound, notCompound );
}
} else {
if ( notCompound == null ) {
getMethod( "remove" ).invoke( oldCompound, ( String ) key );
@ -997,7 +1034,7 @@ public final class NBTEditor {
private static NBTCompound getNBTTag( Object tag, Object...keys ) throws Exception {
Object compound = tag;
for ( Object key : keys ) {
if ( compound == null ) {
return null;
@ -1009,7 +1046,7 @@ public final class NBTEditor {
}
return new NBTCompound( compound );
}
private static Object getTag( Object tag, Object... keys ) throws Exception {
if ( keys.length == 0 ) {
return getTags( tag );
@ -1070,13 +1107,13 @@ public final class NBTEditor {
return tags;
}
}
/**
* A class for holding NBTTagCompounds
*/
public static final class NBTCompound {
protected final Object tag;
protected NBTCompound( @Nonnull Object tag ) {
this.tag = tag;
}

View File

@ -17,7 +17,8 @@ public enum ServerVersion {
V1_11("org.bukkit.craftbukkit.v1_11"),
V1_12("org.bukkit.craftbukkit.v1_12"),
V1_13("org.bukkit.craftbukkit.v1_13"),
V1_14("org.bukkit.craftbukkit.v1_14");
V1_14("org.bukkit.craftbukkit.v1_14"),
V1_15("org.bukkit.craftbukkit.v1_15");
private String versionName;

View File

@ -1,872 +0,0 @@
/*
* The MIT License (MIT)
*
* Copyright (c) 2019 Crypto Morin
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
package com.kiranhart.auctionhouse.api.version;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.Validate;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Objects;
/*
* References
*
* * * GitHub: https://github.com/CryptoMorin/XMaterial/blob/master/XMaterial.java
* * Thread: https://www.spigotmc.org/threads/378136/
* 1.8: http://docs.codelanx.com/Bukkit/1.8/org/bukkit/Sound.html
* Latest: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Sound.html
* Basics: https://bukkit.org/threads/151517/
*/
/**
* <b>XSound v1.0</b> - Universal Sound Support for Renames<br>
* Supports 1.8-1.14<br>
* 1.13 and above as priority.<br><br>
*
* <b>Volume:</b> 0.0-1.0 - 1.0f (normal) - Using higher values increase the distance from which the sound can be heard.<br>
* <b>Pitch:</b> 0.5-2.0 - 1.0f (normal) - How fast the sound is play.
*/
public enum XSound {
AMBIENT_CAVE("AMBIENCE_CAVE"),
AMBIENT_UNDERWATER_ENTER(),
AMBIENT_UNDERWATER_EXIT(),
AMBIENT_UNDERWATER_LOOP("AMBIENT_UNDERWATER_EXIT"),
AMBIENT_UNDERWATER_LOOP_ADDITIONS("AMBIENT_UNDERWATER_EXIT"),
AMBIENT_UNDERWATER_LOOP_ADDITIONS_RARE("AMBIENT_UNDERWATER_EXIT"),
AMBIENT_UNDERWATER_LOOP_ADDITIONS_ULTRA_RARE("AMBIENT_UNDERWATER_EXIT"),
BLOCK_ANVIL_BREAK("ANVIL_BREAK"),
BLOCK_ANVIL_DESTROY(),
BLOCK_ANVIL_FALL(),
BLOCK_ANVIL_HIT("BLOCK_ANVIL_FALL"),
BLOCK_ANVIL_LAND("ANVIL_LAND"),
BLOCK_ANVIL_PLACE("BLOCK_ANVIL_FALL"),
BLOCK_ANVIL_STEP("BLOCK_ANVIL_FALL"),
BLOCK_ANVIL_USE("ANVIL_USE"),
BLOCK_BEACON_ACTIVATE(),
BLOCK_BEACON_AMBIENT(),
BLOCK_BEACON_DEACTIVATE("BLOCK_BEACON_AMBIENT"),
BLOCK_BEACON_POWER_SELECT("BLOCK_BEACON_AMBIENT"),
BLOCK_BREWING_STAND_BREW(),
BLOCK_BUBBLE_COLUMN_BUBBLE_POP(),
BLOCK_BUBBLE_COLUMN_UPWARDS_AMBIENT(),
BLOCK_BUBBLE_COLUMN_UPWARDS_INSIDE(),
BLOCK_BUBBLE_COLUMN_WHIRLPOOL_AMBIENT(),
BLOCK_BUBBLE_COLUMN_WHIRLPOOL_INSIDE(),
BLOCK_CHEST_CLOSE("CHEST_CLOSE", "ENTITY_CHEST_CLOSE"),
BLOCK_CHEST_LOCKED(),
BLOCK_CHEST_OPEN("CHEST_OPEN", "ENTITY_CHEST_OPEN"),
BLOCK_CHORUS_FLOWER_DEATH(),
BLOCK_CHORUS_FLOWER_GROW(),
BLOCK_COMPARATOR_CLICK(),
BLOCK_CONDUIT_ACTIVATE(),
BLOCK_CONDUIT_AMBIENT(),
BLOCK_CONDUIT_AMBIENT_SHORT(),
BLOCK_CONDUIT_ATTACK_TARGET(),
BLOCK_CONDUIT_DEACTIVATE(),
BLOCK_CORAL_BLOCK_BREAK(),
BLOCK_CORAL_BLOCK_FALL(),
BLOCK_CORAL_BLOCK_HIT(),
BLOCK_CORAL_BLOCK_PLACE(),
BLOCK_CORAL_BLOCK_STEP(),
BLOCK_DISPENSER_DISPENSE(),
BLOCK_DISPENSER_FAIL(),
BLOCK_DISPENSER_LAUNCH(),
BLOCK_ENCHANTMENT_TABLE_USE(),
BLOCK_ENDER_CHEST_CLOSE(),
BLOCK_ENDER_CHEST_OPEN(),
BLOCK_END_GATEWAY_SPAWN(),
BLOCK_END_PORTAL_FRAME_FILL(),
BLOCK_END_PORTAL_SPAWN(),
BLOCK_FENCE_GATE_CLOSE(),
BLOCK_FENCE_GATE_OPEN(),
BLOCK_FIRE_AMBIENT("FIRE"),
BLOCK_FIRE_EXTINGUISH("FIZZ"),
BLOCK_FURNACE_FIRE_CRACKLE(),
BLOCK_GLASS_BREAK("GLASS"),
BLOCK_GLASS_FALL(),
BLOCK_GLASS_HIT(),
BLOCK_GLASS_PLACE(),
BLOCK_GLASS_STEP(),
BLOCK_GRASS_BREAK("DIG_GRASS"),
BLOCK_GRASS_FALL(),
BLOCK_GRASS_HIT(),
BLOCK_GRASS_PLACE(),
BLOCK_GRASS_STEP("STEP_GRASS"),
BLOCK_GRAVEL_BREAK("DIG_GRAVEL"),
BLOCK_GRAVEL_FALL(),
BLOCK_GRAVEL_HIT(),
BLOCK_GRAVEL_PLACE(),
BLOCK_GRAVEL_STEP("STEP_GRAVEL"),
BLOCK_IRON_DOOR_CLOSE(),
BLOCK_IRON_DOOR_OPEN(),
BLOCK_IRON_TRAPDOOR_CLOSE(),
BLOCK_IRON_TRAPDOOR_OPEN(),
BLOCK_LADDER_BREAK(),
BLOCK_LADDER_FALL(),
BLOCK_LADDER_HIT(),
BLOCK_LADDER_PLACE(),
BLOCK_LADDER_STEP("STEP_LADDER"),
BLOCK_LAVA_AMBIENT("LAVA"),
BLOCK_LAVA_EXTINGUISH(),
BLOCK_LAVA_POP("LAVA_POP"),
BLOCK_LEVER_CLICK(),
BLOCK_LILY_PAD_PLACE("BLOCK_WATERLILY_PLACE"),
BLOCK_METAL_BREAK(),
BLOCK_METAL_FALL(),
BLOCK_METAL_HIT(),
BLOCK_METAL_PLACE(),
BLOCK_METAL_PRESSURE_PLATE_CLICK_OFF("BLOCK_METAL_PRESSUREPLATE_CLICK_OFF"),
BLOCK_METAL_PRESSURE_PLATE_CLICK_ON("BLOCK_METAL_PRESSUREPLATE_CLICK_ON"),
BLOCK_METAL_STEP(),
BLOCK_NOTE_BLOCK_BASEDRUM("NOTE_BASS_DRUM", "BLOCK_NOTE_BASEDRUM"),
BLOCK_NOTE_BLOCK_BASS("NOTE_BASS", "BLOCK_NOTE_BASS"),
BLOCK_NOTE_BLOCK_BELL(),
BLOCK_NOTE_BLOCK_CHIME(),
BLOCK_NOTE_BLOCK_FLUTE(),
BLOCK_NOTE_BLOCK_GUITAR("NOTE_BASS_GUITAR", "BLOCK_NOTE_GUITAR", "BLOCK_NOTE_BASS"),
BLOCK_NOTE_BLOCK_HARP("NOTE_PIANO", "BLOCK_NOTE_HARP"),
BLOCK_NOTE_BLOCK_HAT("NOTE_STICKS", "BLOCK_NOTE_HAT"),
BLOCK_NOTE_BLOCK_PLING("NOTE_PLING", "BLOCK_NOTE_PLING"),
BLOCK_NOTE_BLOCK_SNARE("NOTE_SNARE_DRUM", "BLOCK_NOTE_SNARE"),
BLOCK_NOTE_BLOCK_XYLOPHONE("BLOCK_NOTE_XYLOPHONE"),
BLOCK_PISTON_CONTRACT("PISTON_RETRACT"),
BLOCK_PISTON_EXTEND("PISTON_EXTEND"),
BLOCK_PORTAL_AMBIENT("PORTAL"),
BLOCK_PORTAL_TRAVEL("PORTAL_TRAVEL"),
BLOCK_PORTAL_TRIGGER("PORTAL_TRIGGER"),
BLOCK_PUMPKIN_CARVE(),
BLOCK_REDSTONE_TORCH_BURNOUT(),
BLOCK_SAND_BREAK("DIG_SAND"),
BLOCK_SAND_FALL(),
BLOCK_SAND_HIT(),
BLOCK_SAND_PLACE(),
BLOCK_SAND_STEP("STEP_SAND"),
BLOCK_SHULKER_BOX_CLOSE(),
BLOCK_SHULKER_BOX_OPEN(),
BLOCK_SLIME_BLOCK_BREAK("BLOCK_SLIME_BREAK"),
BLOCK_SLIME_BLOCK_FALL("BLOCK_SLIME_FALL"),
BLOCK_SLIME_BLOCK_HIT("BLOCK_SLIME_HIT"),
BLOCK_SLIME_BLOCK_PLACE("BLOCK_SLIME_PLACE"),
BLOCK_SLIME_BLOCK_STEP("BLOCK_SLIME_STEP"),
BLOCK_SNOW_BREAK("DIG_SNOW"),
BLOCK_SNOW_FALL(),
BLOCK_SNOW_HIT(),
BLOCK_SNOW_PLACE(),
BLOCK_SNOW_STEP("STEP_SNOW"),
BLOCK_STONE_BREAK("DIG_STONE"),
BLOCK_STONE_BUTTON_CLICK_OFF(),
BLOCK_STONE_BUTTON_CLICK_ON(),
BLOCK_STONE_FALL(),
BLOCK_STONE_HIT(),
BLOCK_STONE_PLACE(),
BLOCK_STONE_PRESSURE_PLATE_CLICK_OFF("BLOCK_STONE_PRESSUREPLATE_CLICK_OFF"),
BLOCK_STONE_PRESSURE_PLATE_CLICK_ON("BLOCK_STONE_PRESSUREPLATE_CLICK_ON"),
BLOCK_STONE_STEP("STEP_STONE"),
BLOCK_TRIPWIRE_ATTACH(),
BLOCK_TRIPWIRE_CLICK_OFF(),
BLOCK_TRIPWIRE_CLICK_ON(),
BLOCK_TRIPWIRE_DETACH(),
BLOCK_WATER_AMBIENT("WATER"),
BLOCK_WET_GRASS_BREAK(),
BLOCK_WET_GRASS_FALL(),
BLOCK_WET_GRASS_HIT(),
BLOCK_WET_GRASS_PLACE("BLOCK_WET_GRASS_HIT"),
BLOCK_WET_GRASS_STEP("BLOCK_WET_GRASS_HIT"),
BLOCK_WOODEN_BUTTON_CLICK_OFF("WOOD_CLICK", "BLOCK_WOOD_BUTTON_CLICK_OFF"),
BLOCK_WOODEN_BUTTON_CLICK_ON("WOOD_CLICK", "BLOCK_WOOD_BUTTON_CLICK_ON"),
BLOCK_WOODEN_DOOR_CLOSE("DOOR_CLOSE"),
BLOCK_WOODEN_DOOR_OPEN("DOOR_OPEN"),
BLOCK_WOODEN_PRESSURE_PLATE_CLICK_OFF("BLOCK_WOOD_PRESSUREPLATE_CLICK_OFF"),
BLOCK_WOODEN_PRESSURE_PLATE_CLICK_ON("BLOCK_WOOD_PRESSUREPLATE_CLICK_ON"),
BLOCK_WOODEN_TRAPDOOR_CLOSE(),
BLOCK_WOODEN_TRAPDOOR_OPEN(),
BLOCK_WOOD_BREAK("DIG_WOOD"),
BLOCK_WOOD_FALL(),
BLOCK_WOOD_HIT(),
BLOCK_WOOD_PLACE(),
BLOCK_WOOD_STEP("STEP_WOOD"),
BLOCK_WOOL_BREAK("DIG_WOOL", "BLOCK_CLOTH_BREAK"),
BLOCK_WOOL_FALL(),
BLOCK_WOOL_HIT("BLOCK_WOOL_FALL"),
BLOCK_WOOL_PLACE("BLOCK_WOOL_FALL"),
BLOCK_WOOL_STEP("STEP_WOOL", "BLOCK_CLOTH_STEP"),
ENCHANT_THORNS_HIT(),
ENTITY_ARMOR_STAND_BREAK("ENTITY_ARMORSTAND_BREAK"),
ENTITY_ARMOR_STAND_FALL("ENTITY_ARMORSTAND_FALL"),
ENTITY_ARMOR_STAND_HIT("ENTITY_ARMORSTAND_HIT"),
ENTITY_ARMOR_STAND_PLACE("ENTITY_ARMORSTAND_PLACE"),
ENTITY_ARROW_HIT("ARROW_HIT"),
ENTITY_ARROW_HIT_PLAYER(),
ENTITY_ARROW_SHOOT("SHOOT_ARROW"),
ENTITY_BAT_AMBIENT("BAT_IDLE"),
ENTITY_BAT_DEATH("BAT_DEATH"),
ENTITY_BAT_HURT("BAT_HURT"),
ENTITY_BAT_LOOP("BAT_LOOP"),
ENTITY_BAT_TAKEOFF("BAT_TAKEOFF"),
ENTITY_BLAZE_AMBIENT("BLAZE_BREATH"),
ENTITY_BLAZE_BURN(),
ENTITY_BLAZE_DEATH("BLAZE_DEATH"),
ENTITY_BLAZE_HURT("BLAZE_HIT"),
ENTITY_BLAZE_SHOOT(),
ENTITY_BOAT_PADDLE_LAND(),
ENTITY_BOAT_PADDLE_WATER(),
ENTITY_CAT_AMBIENT("CAT_MEOW"),
ENTITY_CAT_DEATH(),
ENTITY_CAT_HISS("CAT_HISS"),
ENTITY_CAT_HURT("CAT_HIT"),
ENTITY_CAT_PURR("CAT_PURR"),
ENTITY_CAT_PURREOW("CAT_PURREOW"),
ENTITY_CHICKEN_AMBIENT("CHICKEN_IDLE"),
ENTITY_CHICKEN_DEATH(),
ENTITY_CHICKEN_EGG("CHICKEN_EGG_POP"),
ENTITY_CHICKEN_HURT("CHICKEN_HURT"),
ENTITY_CHICKEN_STEP("CHICKEN_WALK"),
ENTITY_COD_AMBIENT(),
ENTITY_COD_DEATH(),
ENTITY_COD_FLOP(),
ENTITY_COD_HURT(),
ENTITY_COW_AMBIENT("COW_IDLE"),
ENTITY_COW_DEATH(),
ENTITY_COW_HURT("COW_HURT"),
ENTITY_COW_MILK(),
ENTITY_COW_STEP("COW_WALK"),
ENTITY_CREEPER_DEATH("CREEPER_DEATH"),
ENTITY_CREEPER_HURT(),
ENTITY_CREEPER_PRIMED("CREEPER_HISS"),
ENTITY_DOLPHIN_AMBIENT(),
ENTITY_DOLPHIN_AMBIENT_WATER(),
ENTITY_DOLPHIN_ATTACK(),
ENTITY_DOLPHIN_DEATH(),
ENTITY_DOLPHIN_EAT(),
ENTITY_DOLPHIN_HURT(),
ENTITY_DOLPHIN_JUMP(),
ENTITY_DOLPHIN_PLAY(),
ENTITY_DOLPHIN_SPLASH(),
ENTITY_DOLPHIN_SWIM(),
ENTITY_DONKEY_AMBIENT("DONKEY_IDLE"),
ENTITY_DONKEY_ANGRY("DONKEY_ANGRY"),
ENTITY_DONKEY_CHEST(),
ENTITY_DONKEY_DEATH("DONKEY_DEATH"),
ENTITY_DONKEY_HURT("DONKEY_HIT"),
ENTITY_DRAGON_FIREBALL_EXPLODE("ENTITY_ENDERDRAGON_FIREBALL_EXPLODE"),
ENTITY_DROWNED_AMBIENT(),
ENTITY_DROWNED_AMBIENT_WATER(),
ENTITY_DROWNED_DEATH(),
ENTITY_DROWNED_DEATH_WATER(),
ENTITY_DROWNED_HURT(),
ENTITY_DROWNED_HURT_WATER(),
ENTITY_DROWNED_SHOOT(),
ENTITY_DROWNED_STEP(),
ENTITY_DROWNED_SWIM(),
ENTITY_EGG_THROW(),
ENTITY_ELDER_GUARDIAN_AMBIENT(),
ENTITY_ELDER_GUARDIAN_AMBIENT_LAND(),
ENTITY_ELDER_GUARDIAN_CURSE(),
ENTITY_ELDER_GUARDIAN_DEATH(),
ENTITY_ELDER_GUARDIAN_DEATH_LAND(),
ENTITY_ELDER_GUARDIAN_FLOP(),
ENTITY_ELDER_GUARDIAN_HURT(),
ENTITY_ELDER_GUARDIAN_HURT_LAND(),
ENTITY_ENDERMAN_AMBIENT("ENDERMAN_IDLE", "ENTITY_ENDERMEN_AMBIENT"),
ENTITY_ENDERMAN_DEATH("ENDERMAN_DEATH", "ENTITY_ENDERMEN_DEATH"),
ENTITY_ENDERMAN_HURT("ENDERMAN_HIT", "ENTITY_ENDERMEN_HURT"),
ENTITY_ENDERMAN_SCREAM("ENDERMAN_SCREAM", "ENTITY_ENDERMEN_SCREAM"),
ENTITY_ENDERMAN_STARE("ENDERMAN_STARE", "ENTITY_ENDERMEN_STARE"),
ENTITY_ENDERMAN_TELEPORT("ENDERMAN_TELEPORT", "ENTITY_ENDERMEN_TELEPORT"),
ENTITY_ENDERMITE_AMBIENT(),
ENTITY_ENDERMITE_DEATH(),
ENTITY_ENDERMITE_HURT(),
ENTITY_ENDERMITE_STEP(),
ENTITY_ENDER_DRAGON_AMBIENT("ENDERDRAGON_WINGS", "ENTITY_ENDERDRAGON_AMBIENT"),
ENTITY_ENDER_DRAGON_DEATH("ENDERDRAGON_DEATH", "ENTITY_ENDERDRAGON_DEATH"),
ENTITY_ENDER_DRAGON_FLAP("ENDERDRAGON_WINGS", "ENTITY_ENDERDRAGON_FLAP"),
ENTITY_ENDER_DRAGON_GROWL("ENDERDRAGON_GROWL", "ENTITY_ENDERDRAGON_GROWL"),
ENTITY_ENDER_DRAGON_HURT("ENDERDRAGON_HIT", "ENTITY_ENDERDRAGON_HURT"),
ENTITY_ENDER_DRAGON_SHOOT("ENTITY_ENDERDRAGON_SHOOT"),
ENTITY_ENDER_EYE_DEATH(),
ENTITY_ENDER_EYE_LAUNCH("ENTITY_ENDER_EYE_DEATH", "ENTITY_ENDEREYE_DEATH"),
ENTITY_ENDER_PEARL_THROW("ENTITY_ENDERPEARL_THROW"),
ENTITY_EVOKER_AMBIENT("ENTITY_EVOCATION_ILLAGER_AMBIENT"),
ENTITY_EVOKER_CAST_SPELL("ENTITY_EVOCATION_ILLAGER_CAST_SPELL"),
ENTITY_EVOKER_DEATH("ENTITY_EVOCATION_ILLAGER_DEATH"),
ENTITY_EVOKER_FANGS_ATTACK("ENTITY_EVOCATION_FANGS_ATTACK"),
ENTITY_EVOKER_HURT("ENTITY_EVOCATION_ILLAGER_HURT"),
ENTITY_EVOKER_PREPARE_ATTACK("ENTITY_EVOCATION_ILLAGER_PREPARE_ATTACK"),
ENTITY_EVOKER_PREPARE_SUMMON("ENTITY_EVOCATION_ILLAGER_PREPARE_SUMMON"),
ENTITY_EVOKER_PREPARE_WOLOLO("ENTITY_EVOCATION_ILLAGER_PREPARE_WOLOLO"),
ENTITY_EXPERIENCE_BOTTLE_THROW(),
ENTITY_EXPERIENCE_ORB_PICKUP("ORB_PICKUP"),
ENTITY_FIREWORK_ROCKET_BLAST("FIREWORK_BLAST", "ENTITY_FIREWORK_BLAST"),
ENTITY_FIREWORK_ROCKET_BLAST_FAR("FIREWORK_BLAST2", "ENTITY_FIREWORK_BLAST_FAR"),
ENTITY_FIREWORK_ROCKET_LARGE_BLAST("FIREWORK_LARGE_BLAST", "ENTITY_FIREWORK_LARGE_BLAST"),
ENTITY_FIREWORK_ROCKET_LARGE_BLAST_FAR("FIREWORK_LARGE_BLAST2", "ENTITY_FIREWORK_LARGE_BLAST_FAR"),
ENTITY_FIREWORK_ROCKET_LAUNCH("FIREWORK_LAUNCH", "ENTITY_FIREWORK_LAUNCH"),
ENTITY_FIREWORK_ROCKET_SHOOT(),
ENTITY_FIREWORK_ROCKET_TWINKLE("FIREWORK_TWINKLE", "ENTITY_FIREWORK_TWINKLE"),
ENTITY_FIREWORK_ROCKET_TWINKLE_FAR("FIREWORK_TWINKLE2", "ENTITY_FIREWORK_TWINKLE_FAR"),
ENTITY_FISHING_BOBBER_RETRIEVE(),
ENTITY_FISHING_BOBBER_SPLASH("SPLASH2", "ENTITY_BOBBER_SPLASH"),
ENTITY_FISHING_BOBBER_THROW("ENTITY_BOBBER_THROW"),
ENTITY_FISH_SWIM(),
ENTITY_GENERIC_BIG_FALL("FALL_BIG"),
ENTITY_GENERIC_BURN(),
ENTITY_GENERIC_DEATH(),
ENTITY_GENERIC_DRINK("DRINK"),
ENTITY_GENERIC_EAT("EAT"),
ENTITY_GENERIC_EXPLODE("EXPLODE"),
ENTITY_GENERIC_EXTINGUISH_FIRE(),
ENTITY_GENERIC_HURT(),
ENTITY_GENERIC_SMALL_FALL("FALL_SMALL"),
ENTITY_GENERIC_SPLASH("SPLASH"),
ENTITY_GENERIC_SWIM("SWIM"),
ENTITY_GHAST_AMBIENT("GHAST_MOAN"),
ENTITY_GHAST_DEATH("GHAST_DEATH"),
ENTITY_GHAST_HURT("GHAST_SCREAM2"),
ENTITY_GHAST_SCREAM("GHAST_SCREAM"),
ENTITY_GHAST_SHOOT("GHAST_FIREBALL"),
ENTITY_GHAST_WARN("GHAST_CHARGE"),
ENTITY_GUARDIAN_AMBIENT(),
ENTITY_GUARDIAN_AMBIENT_LAND(),
ENTITY_GUARDIAN_ATTACK(),
ENTITY_GUARDIAN_DEATH(),
ENTITY_GUARDIAN_DEATH_LAND(),
ENTITY_GUARDIAN_FLOP(),
ENTITY_GUARDIAN_HURT(),
ENTITY_GUARDIAN_HURT_LAND(),
ENTITY_HORSE_AMBIENT("HORSE_IDLE"),
ENTITY_HORSE_ANGRY("HORSE_ANGRY"),
ENTITY_HORSE_ARMOR("HORSE_ARMOR"),
ENTITY_HORSE_BREATHE("HORSE_BREATHE"),
ENTITY_HORSE_DEATH("HORSE_DEATH"),
ENTITY_HORSE_EAT(),
ENTITY_HORSE_GALLOP("HORSE_GALLOP"),
ENTITY_HORSE_HURT("HORSE_HIT"),
ENTITY_HORSE_JUMP("HORSE_JUMP"),
ENTITY_HORSE_LAND("HORSE_LAND"),
ENTITY_HORSE_SADDLE("HORSE_SADDLE"),
ENTITY_HORSE_STEP("HORSE_SOFT"),
ENTITY_HORSE_STEP_WOOD("HORSE_WOOD"),
ENTITY_HOSTILE_BIG_FALL("FALL_BIG"),
ENTITY_HOSTILE_DEATH(),
ENTITY_HOSTILE_HURT(),
ENTITY_HOSTILE_SMALL_FALL("FALL_SMALL"),
ENTITY_HOSTILE_SPLASH("SPLASH"),
ENTITY_HOSTILE_SWIM("SWIM"),
ENTITY_HUSK_AMBIENT(),
ENTITY_HUSK_CONVERTED_TO_ZOMBIE(),
ENTITY_HUSK_DEATH(),
ENTITY_HUSK_HURT(),
ENTITY_HUSK_STEP(),
ENTITY_ILLUSIONER_AMBIENT("ENTITY_ILLUSION_ILLAGER_AMBIENT"),
ENTITY_ILLUSIONER_CAST_SPELL("ENTITY_ILLUSION_ILLAGER_CAST_SPELL"),
ENTITY_ILLUSIONER_DEATH("ENTITY_ILLUSIONER_CAST_DEATH", "ENTITY_ILLUSION_ILLAGER_DEATH"),
ENTITY_ILLUSIONER_HURT("ENTITY_ILLUSION_ILLAGER_HURT"),
ENTITY_ILLUSIONER_MIRROR_MOVE("ENTITY_ILLUSION_ILLAGER_MIRROR_MOVE"),
ENTITY_ILLUSIONER_PREPARE_BLINDNESS("ENTITY_ILLUSION_ILLAGER_PREPARE_BLINDNESS"),
ENTITY_ILLUSIONER_PREPARE_MIRROR("ENTITY_ILLUSION_ILLAGER_PREPARE_MIRROR"),
ENTITY_IRON_GOLEM_ATTACK("IRONGOLEM_THROW", "ENTITY_IRONGOLEM_ATTACK"),
ENTITY_IRON_GOLEM_DEATH("IRONGOLEM_DEATH", "ENTITY_IRONGOLEM_DEATH"),
ENTITY_IRON_GOLEM_HURT("IRONGOLEM_HIT", "ENTITY_IRONGOLEM_HURT"),
ENTITY_IRON_GOLEM_STEP("IRONGOLEM_WALK", "ENTITY_IRONGOLEM_STEP"),
ENTITY_ITEM_BREAK("ITEM_BREAK"),
ENTITY_ITEM_FRAME_ADD_ITEM("ENTITY_ITEMFRAME_ADD_ITEM"),
ENTITY_ITEM_FRAME_BREAK("ENTITY_ITEMFRAME_BREAK"),
ENTITY_ITEM_FRAME_PLACE("ENTITY_ITEMFRAME_PLACE"),
ENTITY_ITEM_FRAME_REMOVE_ITEM("ENTITY_ITEMFRAME_REMOVE_ITEM"),
ENTITY_ITEM_FRAME_ROTATE_ITEM("ENTITY_ITEMFRAME_ROTATE_ITEM"),
ENTITY_ITEM_PICKUP("ITEM_PICKUP"),
ENTITY_LEASH_KNOT_BREAK("ENTITY_LEASHKNOT_BREAK"),
ENTITY_LEASH_KNOT_PLACE("ENTITY_LEASHKNOT_PLACE"),
ENTITY_LIGHTNING_BOLT_IMPACT("AMBIENCE_THUNDER", "ENTITY_LIGHTNING_IMPACT"),
ENTITY_LIGHTNING_BOLT_THUNDER("AMBIENCE_THUNDER", "ENTITY_LIGHTNING_THUNDER"),
ENTITY_LINGERING_POTION_THROW(),
ENTITY_LLAMA_AMBIENT(),
ENTITY_LLAMA_ANGRY(),
ENTITY_LLAMA_CHEST(),
ENTITY_LLAMA_DEATH(),
ENTITY_LLAMA_EAT(),
ENTITY_LLAMA_HURT(),
ENTITY_LLAMA_SPIT(),
ENTITY_LLAMA_STEP(),
ENTITY_LLAMA_SWAG(),
ENTITY_MAGMA_CUBE_DEATH("ENTITY_MAGMACUBE_DEATH"),
ENTITY_MAGMA_CUBE_DEATH_SMALL("ENTITY_SMALL_MAGMACUBE_DEATH"),
ENTITY_MAGMA_CUBE_HURT("ENTITY_MAGMACUBE_HURT"),
ENTITY_MAGMA_CUBE_HURT_SMALL("ENTITY_SMALL_MAGMACUBE_HURT"),
ENTITY_MAGMA_CUBE_JUMP("MAGMACUBE_JUMP", "ENTITY_MAGMACUBE_JUMP"),
ENTITY_MAGMA_CUBE_SQUISH("MAGMACUBE_WALK", "ENTITY_MAGMACUBE_SQUISH"),
ENTITY_MAGMA_CUBE_SQUISH_SMALL("MAGMACUBE_WALK2", "ENTITY_SMALL_MAGMACUBE_SQUISH"),
ENTITY_MINECART_INSIDE("MINECART_INSIDE"),
ENTITY_MINECART_RIDING("MINECART_BASE"),
ENTITY_MOOSHROOM_SHEAR(),
ENTITY_MULE_AMBIENT(),
ENTITY_MULE_CHEST("ENTITY_MULE_AMBIENT"),
ENTITY_MULE_DEATH("ENTITY_MULE_AMBIENT"),
ENTITY_MULE_HURT("ENTITY_MULE_AMBIENT"),
ENTITY_PAINTING_BREAK(),
ENTITY_PAINTING_PLACE(),
ENTITY_PARROT_AMBIENT(),
ENTITY_PARROT_DEATH(),
ENTITY_PARROT_EAT(),
ENTITY_PARROT_FLY(),
ENTITY_PARROT_HURT(),
ENTITY_PARROT_IMITATE_BLAZE(),
ENTITY_PARROT_IMITATE_CREEPER(),
ENTITY_PARROT_IMITATE_DROWNED(),
ENTITY_PARROT_IMITATE_ELDER_GUARDIAN(),
ENTITY_PARROT_IMITATE_ENDERMAN(),
ENTITY_PARROT_IMITATE_ENDERMITE(),
ENTITY_PARROT_IMITATE_ENDER_DRAGON(),
ENTITY_PARROT_IMITATE_EVOKER(),
ENTITY_PARROT_IMITATE_GHAST(),
ENTITY_PARROT_IMITATE_HUSK(),
ENTITY_PARROT_IMITATE_ILLUSIONER(),
ENTITY_PARROT_IMITATE_MAGMA_CUBE(),
ENTITY_PARROT_IMITATE_PHANTOM(),
ENTITY_PARROT_IMITATE_POLAR_BEAR(),
ENTITY_PARROT_IMITATE_SHULKER(),
ENTITY_PARROT_IMITATE_SILVERFISH(),
ENTITY_PARROT_IMITATE_SKELETON(),
ENTITY_PARROT_IMITATE_SLIME(),
ENTITY_PARROT_IMITATE_SPIDER(),
ENTITY_PARROT_IMITATE_STRAY(),
ENTITY_PARROT_IMITATE_VEX(),
ENTITY_PARROT_IMITATE_VINDICATOR(),
ENTITY_PARROT_IMITATE_WITCH(),
ENTITY_PARROT_IMITATE_WITHER(),
ENTITY_PARROT_IMITATE_WITHER_SKELETON(),
ENTITY_PARROT_IMITATE_WOLF(),
ENTITY_PARROT_IMITATE_ZOMBIE(),
ENTITY_PARROT_IMITATE_ZOMBIE_PIGMAN(),
ENTITY_PARROT_IMITATE_ZOMBIE_VILLAGER(),
ENTITY_PARROT_STEP(),
ENTITY_PHANTOM_AMBIENT(),
ENTITY_PHANTOM_BITE(),
ENTITY_PHANTOM_DEATH(),
ENTITY_PHANTOM_FLAP(),
ENTITY_PHANTOM_HURT(),
ENTITY_PHANTOM_SWOOP(),
ENTITY_PIG_AMBIENT("PIG_IDLE"),
ENTITY_PIG_DEATH("PIG_DEATH"),
ENTITY_PIG_HURT(),
ENTITY_PIG_SADDLE("ENTITY_PIG_HURT"),
ENTITY_PIG_STEP("PIG_WALK"),
ENTITY_PLAYER_ATTACK_CRIT(),
ENTITY_PLAYER_ATTACK_KNOCKBACK(),
ENTITY_PLAYER_ATTACK_NODAMAGE(),
ENTITY_PLAYER_ATTACK_STRONG("SUCCESSFUL_HIT"),
ENTITY_PLAYER_ATTACK_SWEEP(),
ENTITY_PLAYER_ATTACK_WEAK(),
ENTITY_PLAYER_BIG_FALL("FALL_BIG"),
ENTITY_PLAYER_BREATH(),
ENTITY_PLAYER_BURP("BURP"),
ENTITY_PLAYER_DEATH(),
ENTITY_PLAYER_HURT("HURT_FLESH"),
ENTITY_PLAYER_HURT_DROWN(),
ENTITY_PLAYER_HURT_ON_FIRE(),
ENTITY_PLAYER_LEVELUP("LEVEL_UP"),
ENTITY_PLAYER_SMALL_FALL("FALL_SMALL"),
ENTITY_PLAYER_SPLASH("SLASH"),
ENTITY_PLAYER_SPLASH_HIGH_SPEED("SPLASH"),
ENTITY_PLAYER_SWIM("SWIM"),
ENTITY_POLAR_BEAR_AMBIENT(),
ENTITY_POLAR_BEAR_AMBIENT_BABY("ENTITY_POLAR_BEAR_BABY_AMBIENT"),
ENTITY_POLAR_BEAR_DEATH(),
ENTITY_POLAR_BEAR_HURT(),
ENTITY_POLAR_BEAR_STEP(),
ENTITY_POLAR_BEAR_WARNING(),
ENTITY_PUFFER_FISH_AMBIENT(),
ENTITY_PUFFER_FISH_BLOW_OUT(),
ENTITY_PUFFER_FISH_BLOW_UP(),
ENTITY_PUFFER_FISH_DEATH(),
ENTITY_PUFFER_FISH_FLOP(),
ENTITY_PUFFER_FISH_HURT(),
ENTITY_PUFFER_FISH_STING(),
ENTITY_RABBIT_AMBIENT(),
ENTITY_RABBIT_ATTACK(),
ENTITY_RABBIT_DEATH(),
ENTITY_RABBIT_HURT(),
ENTITY_RABBIT_JUMP(),
ENTITY_SALMON_AMBIENT(),
ENTITY_SALMON_DEATH(),
ENTITY_SALMON_FLOP(),
ENTITY_SALMON_HURT("ENTITY_SALMON_FLOP"),
ENTITY_SHEEP_AMBIENT("SHEEP_IDLE"),
ENTITY_SHEEP_DEATH(),
ENTITY_SHEEP_HURT(),
ENTITY_SHEEP_SHEAR("SHEEP_SHEAR"),
ENTITY_SHEEP_STEP("SHEEP_WALK"),
ENTITY_SHULKER_AMBIENT(),
ENTITY_SHULKER_BULLET_HIT(),
ENTITY_SHULKER_BULLET_HURT(),
ENTITY_SHULKER_CLOSE(),
ENTITY_SHULKER_DEATH(),
ENTITY_SHULKER_HURT(),
ENTITY_SHULKER_HURT_CLOSED(),
ENTITY_SHULKER_OPEN(),
ENTITY_SHULKER_SHOOT(),
ENTITY_SHULKER_TELEPORT(),
ENTITY_SILVERFISH_AMBIENT("SILVERFISH_IDLE"),
ENTITY_SILVERFISH_DEATH("SILVERFISH_KILL"),
ENTITY_SILVERFISH_HURT("SILVERFISH_HIT"),
ENTITY_SILVERFISH_STEP("SILVERFISH_WALK"),
ENTITY_SKELETON_AMBIENT("SKELETON_IDLE"),
ENTITY_SKELETON_DEATH("SKELETON_DEATH"),
ENTITY_SKELETON_HORSE_AMBIENT("HORSE_SKELETON_IDLE"),
ENTITY_SKELETON_HORSE_AMBIENT_WATER(),
ENTITY_SKELETON_HORSE_DEATH("HORSE_SKELETON_DEATH"),
ENTITY_SKELETON_HORSE_GALLOP_WATER(),
ENTITY_SKELETON_HORSE_HURT("HORSE_SKELETON_HIT"),
ENTITY_SKELETON_HORSE_JUMP_WATER(),
ENTITY_SKELETON_HORSE_STEP_WATER(),
ENTITY_SKELETON_HORSE_SWIM(),
ENTITY_SKELETON_HURT("SKELETON_HURT"),
ENTITY_SKELETON_SHOOT(),
ENTITY_SKELETON_STEP("SKELETON_WALK"),
ENTITY_SLIME_ATTACK("SLIME_ATTACK"),
ENTITY_SLIME_DEATH(),
ENTITY_SLIME_DEATH_SMALL(),
ENTITY_SLIME_HURT(),
ENTITY_SLIME_HURT_SMALL("ENTITY_SMALL_SLIME_HURT"),
ENTITY_SLIME_JUMP("SLIME_WALK"),
ENTITY_SLIME_JUMP_SMALL("SLIME_WALK2", "ENTITY_SMALL_SLIME_SQUISH"),
ENTITY_SLIME_SQUISH("SLIME_WALK2"),
ENTITY_SLIME_SQUISH_SMALL("ENTITY_SMALL_SLIME_SQUISH"),
ENTITY_SNOWBALL_THROW(),
ENTITY_SNOW_GOLEM_AMBIENT("ENTITY_SNOWMAN_AMBIENT"),
ENTITY_SNOW_GOLEM_DEATH("ENTITY_SNOWMAN_DEATH"),
ENTITY_SNOW_GOLEM_HURT("ENTITY_SNOWMAN_HURT"),
ENTITY_SNOW_GOLEM_SHOOT("ENTITY_SNOWMAN_SHOOT"),
ENTITY_SPIDER_AMBIENT("SPIDER_IDLE"),
ENTITY_SPIDER_DEATH("SPIDER_DEATH"),
ENTITY_SPIDER_HURT(),
ENTITY_SPIDER_STEP("SPIDER_WALK"),
ENTITY_SPLASH_POTION_BREAK(),
ENTITY_SPLASH_POTION_THROW(),
ENTITY_SQUID_AMBIENT(),
ENTITY_SQUID_DEATH(),
ENTITY_SQUID_HURT(),
ENTITY_SQUID_SQUIRT(),
ENTITY_STRAY_AMBIENT(),
ENTITY_STRAY_DEATH(),
ENTITY_STRAY_HURT(),
ENTITY_STRAY_STEP(),
ENTITY_TNT_PRIMED("FUSE"),
ENTITY_TROPICAL_FISH_AMBIENT(),
ENTITY_TROPICAL_FISH_DEATH(),
ENTITY_TROPICAL_FISH_FLOP("ENTITY_TROPICAL_FISH_DEATH"),
ENTITY_TROPICAL_FISH_HURT(),
ENTITY_TURTLE_AMBIENT_LAND(),
ENTITY_TURTLE_DEATH(),
ENTITY_TURTLE_DEATH_BABY(),
ENTITY_TURTLE_EGG_BREAK(),
ENTITY_TURTLE_EGG_CRACK(),
ENTITY_TURTLE_EGG_HATCH(),
ENTITY_TURTLE_HURT(),
ENTITY_TURTLE_HURT_BABY(),
ENTITY_TURTLE_LAY_EGG(),
ENTITY_TURTLE_SHAMBLE(),
ENTITY_TURTLE_SHAMBLE_BABY(),
ENTITY_TURTLE_SWIM(),
ENTITY_VEX_AMBIENT(),
ENTITY_VEX_CHARGE(),
ENTITY_VEX_DEATH(),
ENTITY_VEX_HURT(),
ENTITY_VILLAGER_AMBIENT("VILLAGER_IDLE"),
ENTITY_VILLAGER_DEATH("VILLAGER_DEATH"),
ENTITY_VILLAGER_HURT("VILLAGER_HIT"),
ENTITY_VILLAGER_NO("VILLAGER_NO"),
ENTITY_VILLAGER_TRADE("VILLAGER_HAGGLE", "ENTITY_VILLAGER_TRADING"),
ENTITY_VILLAGER_YES("VILLAGER_YES"),
ENTITY_VINDICATOR_AMBIENT("ENTITY_VINDICATION_ILLAGER_AMBIENT"),
ENTITY_VINDICATOR_DEATH("ENTITY_VINDICATION_ILLAGER_DEATH"),
ENTITY_VINDICATOR_HURT("ENTITY_VINDICATION_ILLAGER_HURT"),
ENTITY_WITCH_AMBIENT(),
ENTITY_WITCH_DEATH(),
ENTITY_WITCH_DRINK(),
ENTITY_WITCH_HURT(),
ENTITY_WITCH_THROW(),
ENTITY_WITHER_AMBIENT("WITHER_IDLE"),
ENTITY_WITHER_BREAK_BLOCK(),
ENTITY_WITHER_DEATH("WITHER_DEATH"),
ENTITY_WITHER_HURT("WITHER_HURT"),
ENTITY_WITHER_SHOOT("WITHER_SHOOT"),
ENTITY_WITHER_SKELETON_AMBIENT(),
ENTITY_WITHER_SKELETON_DEATH(),
ENTITY_WITHER_SKELETON_HURT(),
ENTITY_WITHER_SKELETON_STEP(),
ENTITY_WITHER_SPAWN("WITHER_SPAWN"),
ENTITY_WOLF_AMBIENT("WOLF_BARK"),
ENTITY_WOLF_DEATH("WOLF_DEATH"),
ENTITY_WOLF_GROWL("WOLF_GROWL"),
ENTITY_WOLF_HOWL("WOLF_HOWL"),
ENTITY_WOLF_HURT("WOLF_HURT"),
ENTITY_WOLF_PANT("WOLF_PANT"),
ENTITY_WOLF_SHAKE("WOLF_SHAKE"),
ENTITY_WOLF_STEP("WOLF_WALK"),
ENTITY_WOLF_WHINE("WOLF_WHINE"),
ENTITY_ZOMBIE_AMBIENT("ZOMBIE_IDLE"),
ENTITY_ZOMBIE_ATTACK_IRON_DOOR("ZOMBIE_METAL"),
ENTITY_ZOMBIE_ATTACK_WOODEN_DOOR("ZOMBIE_WOOD", "ENTITY_ZOMBIE_ATTACK_DOOR_WOOD"),
ENTITY_ZOMBIE_BREAK_WOODEN_DOOR("ZOMBIE_WOODBREAK", "ENTITY_ZOMBIE_BREAK_DOOR_WOOD"),
ENTITY_ZOMBIE_CONVERTED_TO_DROWNED(),
ENTITY_ZOMBIE_DEATH("ZOMBIE_DEATH"),
ENTITY_ZOMBIE_DESTROY_EGG(),
ENTITY_ZOMBIE_HORSE_AMBIENT("HORSE_ZOMBIE_IDLE"),
ENTITY_ZOMBIE_HORSE_DEATH("HORSE_ZOMBIE_DEATH"),
ENTITY_ZOMBIE_HORSE_HURT("HORSE_ZOMBIE_HIT"),
ENTITY_ZOMBIE_HURT("ZOMBIE_HURT"),
ENTITY_ZOMBIE_INFECT("ZOMBIE_INFECT"),
ENTITY_ZOMBIE_PIGMAN_AMBIENT("ZOMBIE_PIG_IDLE", "ENTITY_ZOMBIE_PIG_AMBIENT"),
ENTITY_ZOMBIE_PIGMAN_ANGRY("ZOMBIE_PIG_ANGRY", "ENTITY_ZOMBIE_PIG_ANGRY"),
ENTITY_ZOMBIE_PIGMAN_DEATH("ZOMBIE_PIG_DEATH", "ENTITY_ZOMBIE_PIG_DEATH"),
ENTITY_ZOMBIE_PIGMAN_HURT("ZOMBIE_PIG_HURT", "ENTITY_ZOMBIE_PIG_HURT"),
ENTITY_ZOMBIE_STEP("ZOMBIE_WALK"),
ENTITY_ZOMBIE_VILLAGER_AMBIENT(),
ENTITY_ZOMBIE_VILLAGER_CONVERTED("ZOMBIE_UNFECT"),
ENTITY_ZOMBIE_VILLAGER_CURE("ZOMBIE_REMEDY"),
ENTITY_ZOMBIE_VILLAGER_DEATH(),
ENTITY_ZOMBIE_VILLAGER_HURT(),
ENTITY_ZOMBIE_VILLAGER_STEP(),
ITEM_ARMOR_EQUIP_CHAIN(),
ITEM_ARMOR_EQUIP_DIAMOND(),
ITEM_ARMOR_EQUIP_ELYTRA(),
ITEM_ARMOR_EQUIP_GENERIC(),
ITEM_ARMOR_EQUIP_GOLD(),
ITEM_ARMOR_EQUIP_IRON(),
ITEM_ARMOR_EQUIP_LEATHER(),
ITEM_ARMOR_EQUIP_TURTLE(),
ITEM_AXE_STRIP(),
ITEM_BOTTLE_EMPTY(),
ITEM_BOTTLE_FILL(),
ITEM_BOTTLE_FILL_DRAGONBREATH(),
ITEM_BUCKET_EMPTY(),
ITEM_BUCKET_EMPTY_FISH(),
ITEM_BUCKET_EMPTY_LAVA(),
ITEM_BUCKET_FILL(),
ITEM_BUCKET_FILL_FISH(),
ITEM_BUCKET_FILL_LAVA(),
ITEM_CHORUS_FRUIT_TELEPORT(),
ITEM_ELYTRA_FLYING(),
ITEM_FIRECHARGE_USE(),
ITEM_FLINTANDSTEEL_USE("FIRE_IGNITE"),
ITEM_HOE_TILL(),
ITEM_SHIELD_BLOCK(),
ITEM_SHIELD_BREAK(),
ITEM_SHOVEL_FLATTEN(),
ITEM_TOTEM_USE(),
ITEM_TRIDENT_HIT(),
ITEM_TRIDENT_HIT_GROUND(),
ITEM_TRIDENT_RETURN(),
ITEM_TRIDENT_RIPTIDE_1(),
ITEM_TRIDENT_RIPTIDE_2("ITEM_TRIDENT_RIPTIDE_1"),
ITEM_TRIDENT_RIPTIDE_3("ITEM_TRIDENT_RIPTIDE_1"),
ITEM_TRIDENT_THROW(),
ITEM_TRIDENT_THUNDER(),
MUSIC_CREATIVE(),
MUSIC_CREDITS(),
MUSIC_DISC_11("RECORD_11"),
MUSIC_DISC_13("RECORD_13"),
MUSIC_DISC_BLOCKS("RECORD_BLOCKS"),
MUSIC_DISC_CAT("RECORD_CAT"),
MUSIC_DISC_CHIRP("RECORD_CHIRP"),
MUSIC_DISC_FAR("RECORD_FAR"),
MUSIC_DISC_MALL("RECORD_MALL"),
MUSIC_DISC_MELLOHI("RECORD_MELLOHI"),
MUSIC_DISC_STAL("RECORD_STAL"),
MUSIC_DISC_STRAD("RECORD_STRAD"),
MUSIC_DISC_WAIT("RECORD_WAIT"),
MUSIC_DISC_WARD("RECORD_WARD"),
MUSIC_DRAGON(),
MUSIC_END(),
MUSIC_GAME(),
MUSIC_MENU(),
MUSIC_NETHER(),
MUSIC_UNDER_WATER(),
UI_BUTTON_CLICK("CLICK"),
UI_TOAST_CHALLENGE_COMPLETE(),
UI_TOAST_IN(),
UI_TOAST_OUT(),
WEATHER_RAIN("AMBIENCE_RAIN"),
WEATHER_RAIN_ABOVE();
public static final XSound[] VALUES = XSound.values();
private static final HashMap<XSound, Sound> CACHED_SEARCH = new HashMap<>();
private final String[] legacy;
XSound(String... legacy) {
this.legacy = legacy;
}
/**
* Attempts to build the string like an enum name.
*
* @param name the sound name to modify.
* @return a Sound enum name.
*/
@Nonnull
private static String format(@Nonnull String name) {
return StringUtils.replace(StringUtils.replace(name.toUpperCase(), "MINECRAFT:", ""), "-", "_").trim()
.replaceAll("\\s+", "_").replaceAll("\\d+", "").replaceAll("\\W+", "");
}
/**
* Checks if XSound enum contains a sound with this name.
*
* @param name name of the sound
* @return true if XSound enum has this sound.
*/
public static boolean contains(String name) {
Validate.notEmpty(name, "Sound name cannot be null or empty");
String formatted = format(name);
return Arrays.stream(VALUES).anyMatch(s -> s.name().equals(formatted));
}
/**
* Parses an {@link XSound} with the given argument.
*
* @param name the name of the sound.
* @return a {@link XSound} object.
*/
@Nullable
public static XSound matchXSound(@Nonnull String name) {
return Arrays.stream(VALUES).filter(s -> s.name().equals(format(name)) || s.matchAnyLegacy(name)).findFirst().orElse(null);
}
/**
* Just an extra feature that loads sounds from strings.<br>
* Useful for getting sounds from config files.<br>
* <b>Format:</b> Sound, Volume, Pitch<br><br>
*
* <b>Usage Example:</b> ENTITY_PLAYER_BURP, 0.5, 1
*
* @param player the player to play the sound to.
* @param sound the string of the sound with volume and pitch (if needed).
*/
public static void playSoundFromString(@Nonnull Player player, @Nonnull String sound) {
Validate.notNull(player, "Player cannot be null");
Validate.notEmpty(sound, "Sound string cannot be null or empty");
String[] split = StringUtils.replace(sound, " ", "").split(",");
if (split.length == 0)
throw new IllegalArgumentException("Sound string must at least have a sound name and must be separated with comma: " + sound);
try {
String name = split[0];
XSound xType = matchXSound(name);
if (xType == null)
throw new IllegalArgumentException("Invalid sound name: " + name);
Sound type = xType.parseSound();
float volume;
if (split.length == 2) {
volume = Float.parseFloat(split[1]);
} else volume = 1f;
float pitch;
if (split.length == 3) {
pitch = Float.parseFloat(split[2]);
} else pitch = 0f;
player.playSound(player.getLocation(), type, volume, pitch);
} catch (NumberFormatException ex) {
throw new NumberFormatException("There was a problem while getting a number for one of the sounds in config: " + ex.getMessage());
} catch (IllegalArgumentException ex) {
throw new IllegalArgumentException("There was a problem while getting a sound type in config: " + ex.getMessage());
}
}
/**
* Gets all the previous sound names used for this sound.
*
* @return a list of sound names.
*/
@Nonnull
public String[] getLegacy() {
return legacy;
}
/**
* Parses the XSound as a {@link Sound} based on the server version.
*
* @return a {@link Sound} object.
*/
@Nullable
public Sound parseSound() {
Sound sound = CACHED_SEARCH.get(this);
if (sound != null) return sound;
try {
sound = Sound.valueOf(this.name());
} catch (IllegalArgumentException ignored) {
for (String legacy : legacy) {
try {
sound = Sound.valueOf(legacy);
} catch (IllegalArgumentException ignore) {
}
}
}
// Put nulls too, because there's no point of parsing them again if it's going to give null.
CACHED_SEARCH.put(this, sound);
return sound;
}
/**
* Checks if the given string matches any of this sound's legacy sound names.
*
* @param name the sound name to check
* @return true if it's one of the legacy names.
*/
public boolean matchAnyLegacy(@Nonnull String name) {
name = format(name);
return Arrays.asList(legacy).contains(name);
}
/**
* @see #playSound(Player, float, float)
*/
public void playSound(@Nonnull Player player) {
playSound(player, 1f, 1f);
}
/**
* Plays a sound to the player with the given volume and pitch.
*
* @param player the player to play the sound to
* @param volume the volume of the sound, 1 is normal
* @param pitch the pitch of the sound, 0 is normal
*/
public void playSound(@Nonnull Player player, float volume, float pitch) {
Objects.requireNonNull(player, "Player cannot be null");
if (player.isOnline())
player.playSound(player.getLocation(), this.parseSound(), volume, pitch);
}
}

View File

@ -1,27 +0,0 @@
package com.kiranhart.auctionhouse.auction;
/*
The current file was created by Kiran Hart
Date: September 14 2019
Time: 3:35 PM
Code within this class is not to be redistributed without proper permission.
*/
public enum AuctionSortMethod {
ARMOR("Armor"),
TOOLS("Tools"),
BLOCKS("Blocks"),
FOOD("Food"),
DEFAULT("Default");
private String method;
AuctionSortMethod(String method) {
this.method = method;
}
public String getMethod() {
return method;
}
}

View File

@ -44,7 +44,7 @@ public class Receipt {
public ItemStack getReceipt() {
String[] item = Core.getInstance().getConfig().getString("receipt.item").split(":");
ItemStack stack = XMaterial.matchXMaterial(item[0].toUpperCase(), Byte.parseByte(item[1])).parseItem();
ItemStack stack = XMaterial.matchXMaterial(item[0].toUpperCase(), Byte.parseByte(item[1])).get().parseItem();
ItemMeta meta = stack.getItemMeta();
meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', Core.getInstance().getConfig().getString("receipt.name")));
List<String> lore = Core.getInstance().getConfig().getStringList("receipt.lore").stream().map(node -> ChatColor.translateAlternateColorCodes('&', node.replace("{time}", time).replace("{date}", date).replace("{price}", NumberFormat.getInstance().format(total)).replace("{seller}", Bukkit.getOfflinePlayer(seller).getName()))).collect(Collectors.toList());

View File

@ -96,7 +96,7 @@ public class Transaction {
private static ItemStack getTransactionItem(String node) {
String[] stack = Core.getInstance().getConfig().getString("transaction.item").split(":");
ItemStack item = XMaterial.matchXMaterial(stack[0].toUpperCase(), Byte.parseByte(stack[1])).parseItem();
ItemStack item = XMaterial.matchXMaterial(stack[0].toUpperCase(), Byte.parseByte(stack[1])).get().parseItem();
ItemMeta meta = item.getItemMeta();
meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', Core.getInstance().getConfig().getString("transaction.name").replace("{transaction_id}", Core.getInstance().getTransactions().getConfig().getString("transactions." + node + ".auction-id"))));
List<String> lore = new ArrayList<>();

View File

@ -50,7 +50,7 @@ public class SellCommand extends SubCommand {
Core.getInstance().getConfig().getStringList("blocked-items").forEach(blockedItem -> {
String[] item = blockedItem.split(":");
if (AuctionAPI.getInstance().getItemInHand(p) != null || AuctionAPI.getInstance().getItemInHand(p).getType() != XMaterial.AIR.parseMaterial()) {
if (AuctionAPI.getInstance().getItemInHand(p).getType() == XMaterial.parseMaterial(item[0].toUpperCase(), Byte.parseByte(item[1]))) {
if (AuctionAPI.getInstance().getItemInHand(p).getType() == XMaterial.matchXMaterial(item[0].toUpperCase(), Byte.parseByte(item[1])).get().parseMaterial()) {
Core.getInstance().getLocale().getMessage(AuctionLang.BLOCKED_ITEM).processPlaceholder("item", AuctionAPI.getInstance().getItemInHand(p).getType().name()).sendPrefixedMessage(p);
return;
}

View File

@ -17,7 +17,6 @@ import com.kiranhart.auctionhouse.api.version.NBTEditor;
import com.kiranhart.auctionhouse.api.version.XMaterial;
import com.kiranhart.auctionhouse.auction.AuctionItem;
import com.kiranhart.auctionhouse.auction.AuctionPlayer;
import com.kiranhart.auctionhouse.auction.AuctionSortMethod;
import com.kiranhart.auctionhouse.inventory.AGUI;
import com.kiranhart.auctionhouse.util.Debugger;
import org.bukkit.Bukkit;
@ -91,44 +90,6 @@ public class AuctionGUI implements AGUI {
return;
}
//Filter
if (slot == 47) {
if (Core.getInstance().getSortMethod().containsKey(p)) {
switch (Core.getInstance().getSortMethod().get(p)) {
case ARMOR:
Core.getInstance().getSortMethod().put(p, AuctionSortMethod.TOOLS);
updatePage();
p.openInventory(new AuctionGUI(p).getInventory());
break;
case TOOLS:
Core.getInstance().getSortMethod().put(p, AuctionSortMethod.BLOCKS);
updatePage();
p.openInventory(new AuctionGUI(p).getInventory());
break;
case BLOCKS:
Core.getInstance().getSortMethod().put(p, AuctionSortMethod.FOOD);
updatePage();
p.openInventory(new AuctionGUI(p).getInventory());
break;
case FOOD:
Core.getInstance().getSortMethod().put(p, AuctionSortMethod.DEFAULT);
updatePage();
p.openInventory(new AuctionGUI(p).getInventory());
break;
case DEFAULT:
Core.getInstance().getSortMethod().put(p, AuctionSortMethod.ARMOR);
updatePage();
p.openInventory(new AuctionGUI(p).getInventory());
break;
}
} else {
Core.getInstance().getSortMethod().put(p, AuctionSortMethod.ARMOR);
updatePage();
p.openInventory(new AuctionGUI(p).getInventory());
}
return;
}
//Open Transaction Selection GUI
if (slot == 51) {
p.openInventory(new TransactionSelectGUI().getInventory());
@ -292,7 +253,6 @@ public class AuctionGUI implements AGUI {
inventory.setItem(45, AuctionAPI.getInstance().createConfigurationItem("guis.auctionhouse.items.yourauctions", new AuctionPlayer(p).getTotalActiveAuctions(), 0));
inventory.setItem(46, AuctionAPI.getInstance().createConfigurationItem("guis.auctionhouse.items.collectionbin", 0, new AuctionPlayer(p).getTotalExpiredAuctions()));
inventory.setItem(47, AuctionAPI.getInstance().createConfigurationItem("guis.auctionhouse.items.filter", 0, 0));
inventory.setItem(48, AuctionAPI.getInstance().createConfigurationItem("guis.auctionhouse.items.previouspage", 0, 0));
inventory.setItem(49, AuctionAPI.getInstance().createConfigurationItem("guis.auctionhouse.items.refresh", 0, 0));
inventory.setItem(50, AuctionAPI.getInstance().createConfigurationItem("guis.auctionhouse.items.nextpage", 0, 0));
@ -302,11 +262,8 @@ public class AuctionGUI implements AGUI {
//Pagination
if (chunks.size() != 0) {
List<AuctionItem> sorted = chunks.get(getPage() - 1);
//chunks.get(getPage() - 1).forEach(item -> inventory.setItem(inventory.firstEmpty(), item.getAuctionStack(AuctionItem.AuctionItemType.MAIN)));
AuctionAPI.getInstance().sortBasedOnPlayer(chunks.get(Core.getInstance().getCurrentAuctionPage().get(p) - 1), p).forEach(item -> p.getOpenInventory().getTopInventory().setItem(p.getOpenInventory().getTopInventory().firstEmpty(), item.getAuctionStack(AuctionItem.AuctionItemType.MAIN)));
chunks.get(getPage() - 1).forEach(item -> inventory.setItem(inventory.firstEmpty(), item.getAuctionStack(AuctionItem.AuctionItemType.MAIN)));
}
return inventory;
}

View File

@ -90,7 +90,7 @@ public class Database {
insert.setInt(8, transaction.getAuctionItem().getTime());
insert.setString(9, String.valueOf(transaction.getAuctionItem().getKey()));
insert.setString(10, String.valueOf(transaction.getTimeCompleted()));
insert.setString(11, (XMaterial.matchXMaterial(transaction.getAuctionItem().getItem()) == null) ? transaction.getAuctionItem().getDisplayName() : XMaterial.matchXMaterial(transaction.getAuctionItem().getItem()).toWord() + "===" + transaction.getAuctionItem().getItem().getType().name() + ":" + transaction.getAuctionItem().getItem().getDurability());
insert.setString(11, (XMaterial.matchXMaterial(transaction.getAuctionItem().getItem()) == null) ? transaction.getAuctionItem().getDisplayName() : XMaterial.matchXMaterial(transaction.getAuctionItem().getItem()).toString() + "===" + transaction.getAuctionItem().getItem().getType().name() + ":" + transaction.getAuctionItem().getItem().getDurability());
insert.setString(12, ChatColor.stripColor(transaction.getAuctionItem().getDisplayName()));
insert.setString(13, AuctionAPI.getInstance().getMySQLLore(transaction.getAuctionItem().getItem()));
insert.setString(14, AuctionAPI.getInstance().getMySQLEnchantments(transaction.getAuctionItem().getItem()));

View File

@ -8,7 +8,9 @@ package com.kiranhart.auctionhouse.util.tasks;
*/
import com.kiranhart.auctionhouse.Core;
import com.kiranhart.auctionhouse.api.statics.AuctionSettings;
import com.kiranhart.auctionhouse.auction.Transaction;
import com.kiranhart.auctionhouse.util.Debugger;
import com.kiranhart.auctionhouse.util.storage.Database;
import org.bukkit.scheduler.BukkitRunnable;
@ -33,22 +35,27 @@ public class SaveTransactionTask extends BukkitRunnable {
@Override
public void run() {
Core.getInstance().getTransactions().getConfig().set("transactions." + transaction.getTimeCompleted() + transaction.getAuctionItem().getKey() + ".transaction-type", transaction.getTransactionType().getTransactionType());
Core.getInstance().getTransactions().getConfig().set("transactions." + transaction.getTimeCompleted() + transaction.getAuctionItem().getKey() + ".seller", transaction.getAuctionItem().getOwner().toString());
Core.getInstance().getTransactions().getConfig().set("transactions." + transaction.getTimeCompleted() + transaction.getAuctionItem().getKey() + ".buyer", transaction.getBuyer().toString());
Core.getInstance().getTransactions().getConfig().set("transactions." + transaction.getTimeCompleted() + transaction.getAuctionItem().getKey() + ".start-price", transaction.getAuctionItem().getStartPrice());
Core.getInstance().getTransactions().getConfig().set("transactions." + transaction.getTimeCompleted() + transaction.getAuctionItem().getKey() + ".bid-increment", transaction.getAuctionItem().getBidIncrement());
Core.getInstance().getTransactions().getConfig().set("transactions." + transaction.getTimeCompleted() + transaction.getAuctionItem().getKey() + ".current-price", transaction.getAuctionItem().getCurrentPrice());
Core.getInstance().getTransactions().getConfig().set("transactions." + transaction.getTimeCompleted() + transaction.getAuctionItem().getKey() + ".buy-now-price", transaction.getAuctionItem().getBuyNowPrice());
Core.getInstance().getTransactions().getConfig().set("transactions." + transaction.getTimeCompleted() + transaction.getAuctionItem().getKey() + ".time-left", transaction.getAuctionItem().getTime());
Core.getInstance().getTransactions().getConfig().set("transactions." + transaction.getTimeCompleted() + transaction.getAuctionItem().getKey() + ".auction-id", transaction.getAuctionItem().getKey());
Core.getInstance().getTransactions().getConfig().set("transactions." + transaction.getTimeCompleted() + transaction.getAuctionItem().getKey() + ".time-completed", transaction.getTimeCompleted());
Core.getInstance().getTransactions().getConfig().set("transactions." + transaction.getTimeCompleted() + transaction.getAuctionItem().getKey() + ".item", transaction.getAuctionItem().getItem());
Core.getInstance().getTransactions().getConfig().set("transactions." + transaction.getTimeCompleted() + transaction.getAuctionItem().getKey() + ".receipt", transaction.getReceipt());
Core.getInstance().getTransactions().saveConfig();
try {
Core.getInstance().getTransactions().getConfig().set("transactions." + transaction.getTimeCompleted() + transaction.getAuctionItem().getKey() + ".transaction-type", transaction.getTransactionType().getTransactionType());
Core.getInstance().getTransactions().getConfig().set("transactions." + transaction.getTimeCompleted() + transaction.getAuctionItem().getKey() + ".seller", transaction.getAuctionItem().getOwner().toString());
Core.getInstance().getTransactions().getConfig().set("transactions." + transaction.getTimeCompleted() + transaction.getAuctionItem().getKey() + ".buyer", transaction.getBuyer().toString());
Core.getInstance().getTransactions().getConfig().set("transactions." + transaction.getTimeCompleted() + transaction.getAuctionItem().getKey() + ".start-price", transaction.getAuctionItem().getStartPrice());
Core.getInstance().getTransactions().getConfig().set("transactions." + transaction.getTimeCompleted() + transaction.getAuctionItem().getKey() + ".bid-increment", transaction.getAuctionItem().getBidIncrement());
Core.getInstance().getTransactions().getConfig().set("transactions." + transaction.getTimeCompleted() + transaction.getAuctionItem().getKey() + ".current-price", transaction.getAuctionItem().getCurrentPrice());
Core.getInstance().getTransactions().getConfig().set("transactions." + transaction.getTimeCompleted() + transaction.getAuctionItem().getKey() + ".buy-now-price", transaction.getAuctionItem().getBuyNowPrice());
Core.getInstance().getTransactions().getConfig().set("transactions." + transaction.getTimeCompleted() + transaction.getAuctionItem().getKey() + ".time-left", transaction.getAuctionItem().getTime());
Core.getInstance().getTransactions().getConfig().set("transactions." + transaction.getTimeCompleted() + transaction.getAuctionItem().getKey() + ".auction-id", transaction.getAuctionItem().getKey());
Core.getInstance().getTransactions().getConfig().set("transactions." + transaction.getTimeCompleted() + transaction.getAuctionItem().getKey() + ".time-completed", transaction.getTimeCompleted());
Core.getInstance().getTransactions().getConfig().set("transactions." + transaction.getTimeCompleted() + transaction.getAuctionItem().getKey() + ".item", transaction.getAuctionItem().getItem());
Core.getInstance().getTransactions().getConfig().set("transactions." + transaction.getTimeCompleted() + transaction.getAuctionItem().getKey() + ".receipt", transaction.getReceipt());
Core.getInstance().getTransactions().saveConfig();
if (!Core.getInstance().getHikari().isClosed() && Core.getInstance().getHikari().isRunning()) {
Database.getInstance().performTransactionUpload(transaction);
if (AuctionSettings.DB_ENABLED) {
if(!Core.getInstance().getHikari().isClosed() && Core.getInstance().getHikari().isRunning())
Database.getInstance().performTransactionUpload(transaction);
}
} catch (Exception e) {
Debugger.report(e, false);
}
}
}

View File

@ -21,6 +21,7 @@ import com.kiranhart.auctionhouse.util.Debugger;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import java.util.List;
@ -135,7 +136,7 @@ public class TickAuctionsTask extends BukkitRunnable {
//Refresh auction page is enabled
if (AuctionSettings.AUTO_REFRESH_AUCTION_PAGES) {
Bukkit.getOnlinePlayers().forEach(p -> {
for (Player p : Bukkit.getOnlinePlayers()) {
if (p.getOpenInventory().getTitle().equalsIgnoreCase(ChatColor.translateAlternateColorCodes('&', Core.getInstance().getConfig().getString("guis.auctionhouse.title")))) {
p.getOpenInventory().getTopInventory().clear();
p.getOpenInventory().getTopInventory().setItem(45, AuctionAPI.getInstance().createConfigurationItem("guis.auctionhouse.items.yourauctions", new AuctionPlayer(p).getTotalActiveAuctions(), 0));
@ -152,16 +153,15 @@ public class TickAuctionsTask extends BukkitRunnable {
//Pagination
if (chunks.size() != 0) {
//chunks.get(Core.getInstance().getCurrentAuctionPage().get(p) - 1).forEach(item -> p.getOpenInventory().getTopInventory().setItem(p.getOpenInventory().getTopInventory().firstEmpty(), item.getAuctionStack(AuctionItem.AuctionItemType.MAIN)));
AuctionAPI.getInstance().sortBasedOnPlayer(chunks.get(Core.getInstance().getCurrentAuctionPage().get(p) - 1), p).forEach(item -> p.getOpenInventory().getTopInventory().setItem(p.getOpenInventory().getTopInventory().firstEmpty(), item.getAuctionStack(AuctionItem.AuctionItemType.MAIN)));
chunks.get(Core.getInstance().getCurrentAuctionPage().get(p) - 1).forEach(item -> p.getOpenInventory().getTopInventory().setItem(p.getOpenInventory().getTopInventory().firstEmpty(), item.getAuctionStack(AuctionItem.AuctionItemType.MAIN)));
}
}
});
}
}
}
} catch (Exception e) {
Debugger.report(e);
Debugger.report(e, false);
}
// Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', "&8[&6AuctionHouse&8]&a Ran Auction Tick at rate of " + AuctionSettings.UPDATE_EVERY_TICK + "s"));

View File

@ -1,5 +1,7 @@
lang: "en_US"
debugger: true
update-checker: false #this is a new feature, disable if it causes issues
update-delay: 60 #in seconds
settings:
default-auction-time: 900
@ -112,12 +114,6 @@ guis:
lore:
- "&7Click to refresh the currently"
- "&7available auction listings."
filter:
item: "SNOW_BALL:0"
name: "&e&lFilter Items"
lore:
- "&7Click to filter items by category"
- "&eDefault, Armor, Tools, Blocks, Food"
confirm:
title: "&e&lConfirm Purchase"
items: