Merge pull request #103 from Peda1996/dependency

Extreme Sync Worldgen Speedup by disabling chunk preloading
This commit is contained in:
trainerlord 2021-01-01 13:36:31 -05:00 committed by GitHub
commit b9f6e07a25
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 1087 additions and 250 deletions

View File

@ -1,79 +1,661 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<option name="DEFAULT_COMPILER" value="Javac"/>
<resourceExtensions>
<entry name=".+\.(properties|xml|html|dtd|tld)"/>
<entry name=".+\.(gif|png|jpeg|jpg)"/>
<entry name=".+\.(properties|xml|html|dtd|tld)" />
<entry name=".+\.(gif|png|jpeg|jpg)" />
</resourceExtensions>
<wildcardResourcePatterns>
<entry name="!?*.class"/>
<entry name="!?*.scala"/>
<entry name="!?*.groovy"/>
<entry name="!?*.java"/>
<entry name="!?*.class" />
<entry name="!?*.scala" />
<entry name="!?*.groovy" />
<entry name="!?*.java" />
</wildcardResourcePatterns>
<annotationProcessing enabled="false" useClasspath="true"/>
<bytecodeTargetLevel target="1.8"/>
</component>
<component name="CopyrightManager" default="">
<module2copyright/>
<annotationProcessing>
<profile name="Gradle Imported" enabled="true">
<outputRelativeToContentRoot value="true" />
<processorPath useClasspath="false">
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.18.12/48e4e5d60309ebd833bc528dcf77668eab3cd72c/lombok-1.18.12.jar" />
</processorPath>
<module name="World_System.test" />
</profile>
<profile name="Gradle Imported" enabled="true">
<outputRelativeToContentRoot value="true" />
<option name="bungeeAnnotationResultPath" value="D:\Users\Peda1\IdeaProjects\worldsystem\build\spigradle\bungee_main" />
<option name="nukkitAnnotationResultPath" value="D:\Users\Peda1\IdeaProjects\worldsystem\build\spigradle\nukkit_main" />
<option name="pluginAnnotationResultPath" value="D:\Users\Peda1\IdeaProjects\worldsystem\build\spigradle\plugin_main" />
<option name="spigotAnnotationResultPath" value="D:\Users\Peda1\IdeaProjects\worldsystem\build\spigradle\spigot_main" />
<processorPath useClasspath="false">
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/kr.entree/spigradle-annotations/2.1.1/140e14d5fb373843420f0719f6f83cacc07d8cd1/spigradle-annotations-2.1.1.jar" />
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.18.12/48e4e5d60309ebd833bc528dcf77668eab3cd72c/lombok-1.18.12.jar" />
</processorPath>
<module name="World_System.main" />
</profile>
</annotationProcessing>
<bytecodeTargetLevel target="1.8" />
</component>
<component name="CopyrightManager" default="" />
<component name="DependencyValidationManager">
<option name="SKIP_IMPORT_STATEMENTS" value="false"/>
<option name="SKIP_IMPORT_STATEMENTS" value="false" />
</component>
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="FrameworkDetectionExcludesConfiguration">
<file type="web" url="file://$PROJECT_DIR$" />
</component>
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleHome" value="C:/ProgramData/chocolatey/lib/gradle/tools/gradle-5.6.2" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
</set>
</option>
<option name="useQualifiedModuleNames" value="true" />
</GradleProjectSettings>
</option>
</component>
<component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false"/>
<component name="GradleUISettings">
<setting name="root"/>
<setting name="root" />
</component>
<component name="GradleUISettings2">
<setting name="root"/>
<setting name="root" />
</component>
<component name="IdProvider" IDEtalkID="11DA1DB66DD62DDA1ED602B7079FE97C" />
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
</profile>
<version value="1.0" />
</component>
<component name="IdProvider" IDEtalkID="11DA1DB66DD62DDA1ED602B7079FE97C"/>
<component name="JavadocGenerationManager">
<option name="OUTPUT_DIRECTORY"/>
<option name="OPTION_SCOPE" value="protected"/>
<option name="OPTION_HIERARCHY" value="true"/>
<option name="OPTION_NAVIGATOR" value="true"/>
<option name="OPTION_INDEX" value="true"/>
<option name="OPTION_SEPARATE_INDEX" value="true"/>
<option name="OPTION_DOCUMENT_TAG_USE" value="false"/>
<option name="OPTION_DOCUMENT_TAG_AUTHOR" value="false"/>
<option name="OPTION_DOCUMENT_TAG_VERSION" value="false"/>
<option name="OPTION_DOCUMENT_TAG_DEPRECATED" value="true"/>
<option name="OPTION_DEPRECATED_LIST" value="true"/>
<option name="OTHER_OPTIONS" value=""/>
<option name="HEAP_SIZE"/>
<option name="LOCALE"/>
<option name="OPEN_IN_BROWSER" value="true"/>
<option name="OUTPUT_DIRECTORY" />
<option name="OPTION_SCOPE" value="protected" />
<option name="OPTION_HIERARCHY" value="true" />
<option name="OPTION_NAVIGATOR" value="true" />
<option name="OPTION_INDEX" value="true" />
<option name="OPTION_SEPARATE_INDEX" value="true" />
<option name="OPTION_DOCUMENT_TAG_USE" value="false" />
<option name="OPTION_DOCUMENT_TAG_AUTHOR" value="false" />
<option name="OPTION_DOCUMENT_TAG_VERSION" value="false" />
<option name="OPTION_DOCUMENT_TAG_DEPRECATED" value="true" />
<option name="OPTION_DEPRECATED_LIST" value="true" />
<option name="OTHER_OPTIONS" value="" />
<option name="HEAP_SIZE" />
<option name="LOCALE" />
<option name="OPEN_IN_BROWSER" value="true" />
</component>
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/World System.iml" filepath="$PROJECT_DIR$/World System.iml"/>
<module fileurl="file://$PROJECT_DIR$/World System.iml" filepath="$PROJECT_DIR$/World System.iml" />
<module fileurl="file://$PROJECT_DIR$/World_System.iml" filepath="$PROJECT_DIR$/World_System.iml" />
<module fileurl="file://$PROJECT_DIR$/World_System.main.iml" filepath="$PROJECT_DIR$/World_System.main.iml" />
<module fileurl="file://$PROJECT_DIR$/World_System.test.iml" filepath="$PROJECT_DIR$/World_System.test.iml" />
</modules>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" assert-keyword="true" jdk-15="true" project-jdk-type="JavaSDK" assert-jdk-15="true" project-jdk-name="1.8">
<output url="file://$PROJECT_DIR$/out"/>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="maven3" />
<option name="name" value="maven3" />
<option name="url" value="https://hub.spigotmc.org/nexus/content/repositories/snapshots/" />
</remote-repository>
<remote-repository>
<option name="id" value="MavenRepo" />
<option name="name" value="MavenRepo" />
<option name="url" value="https://repo.maven.apache.org/maven2/" />
</remote-repository>
<remote-repository>
<option name="id" value="maven4" />
<option name="name" value="maven4" />
<option name="url" value="https://papermc.io/repo/repository/maven-public/" />
</remote-repository>
<remote-repository>
<option name="id" value="maven7" />
<option name="name" value="maven7" />
<option name="url" value="https://jitpack.io" />
</remote-repository>
<remote-repository>
<option name="id" value="maven10" />
<option name="name" value="maven10" />
<option name="url" value="http://ci.athion.net/job/FastAsyncWorldEdit/ws/mvn/" />
</remote-repository>
<remote-repository>
<option name="id" value="maven13" />
<option name="name" value="maven13" />
<option name="url" value="https://repo1.maven.org/maven2/commons-io/" />
</remote-repository>
<remote-repository>
<option name="id" value="maven12" />
<option name="name" value="maven12" />
<option name="url" value="https://mvn.intellectualsites.com/content/repositories/releases/" />
</remote-repository>
<remote-repository>
<option name="id" value="Gradle Central Plugin Repository" />
<option name="name" value="Gradle Central Plugin Repository" />
<option name="url" value="https://plugins.gradle.org/m2" />
</remote-repository>
<remote-repository>
<option name="id" value="maven" />
<option name="name" value="maven" />
<option name="url" value="https://oss.sonatype.org/content/repositories/snapshots/" />
</remote-repository>
<remote-repository>
<option name="id" value="maven6" />
<option name="name" value="maven6" />
<option name="url" value="https://repo.extendedclip.com/content/repositories/placeholderapi/" />
</remote-repository>
<remote-repository>
<option name="id" value="BintrayJCenter" />
<option name="name" value="BintrayJCenter" />
<option name="url" value="https://jcenter.bintray.com/" />
</remote-repository>
<remote-repository>
<option name="id" value="maven8" />
<option name="name" value="maven8" />
<option name="url" value="https://libraries.minecraft.net" />
</remote-repository>
<remote-repository>
<option name="id" value="maven9" />
<option name="name" value="maven9" />
<option name="url" value="https://repo.onarandombox.com/content/groups/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="maven11" />
<option name="name" value="maven11" />
<option name="url" value="http://maven.sk89q.com/repo/" />
</remote-repository>
<remote-repository>
<option name="id" value="maven14" />
<option name="name" value="maven14" />
<option name="url" value="http://maven.enginehub.org/repo/" />
</remote-repository>
<remote-repository>
<option name="id" value="maven13" />
<option name="name" value="maven13" />
<option name="url" value="https://mvnrepository.com/artifact/commons-io/commons-io" />
</remote-repository>
</component>
<component name="SvnBranchConfigurationManager">
<option name="mySupportsUserInfoFilter" value="true"/>
<option name="mySupportsUserInfoFilter" value="true" />
</component>
<component name="VcsDirectoryMappings">
<mapping directory="" vcs=""/>
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
<component name="libraryTable">
<library name="Gradle: com.github.MilkBowl:VaultAPI:1.7">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.MilkBowl/VaultAPI/1.7/46de1c582c9e974c5b15cdac3f1ad4e03bfc1f31/VaultAPI-1.7.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.MilkBowl/VaultAPI/1.7/b9809d8834b59f4c492207af3520335ec2148fc5/VaultAPI-1.7-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: com.github.seeseemelk:MockBukkit-v1.15:0.3.0-SNAPSHOT">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.seeseemelk/MockBukkit-v1.15/0.3.0-SNAPSHOT/6419cfe614499d375e5b690af35ed490a25754a3/MockBukkit-v1.15-0.3.0-SNAPSHOT.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.seeseemelk/MockBukkit-v1.15/0.3.0-SNAPSHOT/81a526e6d719edbe1eebda93fb1f895b1c418bfd/MockBukkit-v1.15-0.3.0-SNAPSHOT-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: com.google.code.findbugs:jsr305:2.0.1">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/2.0.1/516c03b21d50a644d538de0f0369c620989cd8f0/jsr305-2.0.1.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
<library name="Gradle: com.google.code.gson:gson:2.8.0">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.8.0/c4ba5371a29ac9b2ad6129b1d39ea38750043eff/gson-2.8.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.8.0/baf95d8519fc1a11d388f8543cb40cd2bb9d66dc/gson-2.8.0-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: com.google.guava:guava:21.0">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/21.0/3a3d111be1be1b745edfa7d91678a12d7ed38709/guava-21.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/21.0/b9ed26b8c23fe7cd3e6b463b34e54e5c6d9536d5/guava-21.0-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: com.googlecode.json-simple:json-simple:1.1.1">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.googlecode.json-simple/json-simple/1.1.1/c9ad4a0850ab676c5c64461a05ca524cdfff59f1/json-simple-1.1.1.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.googlecode.json-simple/json-simple/1.1.1/15bba08e3a239d54b68209c001f9c911559d2fed/json-simple-1.1.1-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: com.mojang:authlib:1.5.25">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.mojang/authlib/1.5.25/529f53466ca747e0c373b7a6ef3c2fc5d299cf64/authlib-1.5.25.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
<library name="Gradle: com.sk89q.worldedit.worldedit-libs:bukkit:7.2.0-SNAPSHOT">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.sk89q.worldedit.worldedit-libs/bukkit/7.2.0-SNAPSHOT/d5c1ee5dcaf841a031dce72f7a65ca9b4e53e817/bukkit-7.2.0-SNAPSHOT.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.sk89q.worldedit.worldedit-libs/bukkit/7.2.0-SNAPSHOT/f035bf429189eb36bc617a7f569df9b9395244e3/bukkit-7.2.0-SNAPSHOT-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: com.sk89q.worldedit.worldedit-libs:core:7.2.0-SNAPSHOT">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.sk89q.worldedit.worldedit-libs/core/7.2.0-SNAPSHOT/e6dc4671885f9ca6adb9dd9ab1d707f4a9657a1f/core-7.2.0-SNAPSHOT.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.sk89q.worldedit.worldedit-libs/core/7.2.0-SNAPSHOT/cf3157bc4d5bb9e5897ca9e4c317197e26f9524e/core-7.2.0-SNAPSHOT-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: com.sk89q.worldedit:worldedit-bukkit:7.2.0-SNAPSHOT">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.sk89q.worldedit/worldedit-bukkit/7.2.0-SNAPSHOT/bd41a4f8c3472d492a88d8f88fc1d04e9b56059a/worldedit-bukkit-7.2.0-SNAPSHOT.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.sk89q.worldedit/worldedit-bukkit/7.2.0-SNAPSHOT/c3e5664fe951e94364620ab160667b498f51c739/worldedit-bukkit-7.2.0-SNAPSHOT-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: com.sk89q.worldedit:worldedit-core:7.2.0-SNAPSHOT">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.sk89q.worldedit/worldedit-core/7.2.0-SNAPSHOT/c127c9ef10d0c6a57f3f8a40b2244d7b928c02bb/worldedit-core-7.2.0-SNAPSHOT.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.sk89q.worldedit/worldedit-core/7.2.0-SNAPSHOT/4d2be6ee422de0aaf6d826a1486856a815ab3d5b/worldedit-core-7.2.0-SNAPSHOT-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: commons-codec:commons-codec:1.10">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.10/4b95f4897fa13f2cd904aee711aeafc0c5295cd8/commons-codec-1.10.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.10/11fb3d88ae7e3b757d70237064210ceb954a5a04/commons-codec-1.10-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: commons-io:commons-io:2.7">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/2.7/3f2bd4ba11c4162733c13cc90ca7c7ea09967102/commons-io-2.7.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/2.7/f86b05a416f2f498d6a84d3997e014c0084922f1/commons-io-2.7-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: commons-lang:commons-lang:2.6">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-lang/commons-lang/2.6/ce1edb914c94ebc388f086c6827e8bdeec71ac2/commons-lang-2.6.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-lang/commons-lang/2.6/67313d715fbf0ea4fd0bdb69217fb77f807a8ce5/commons-lang-2.6-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: junit:junit:4.10">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/junit/junit/4.10/e4f1766ce7404a08f45d859fb9c226fc9e41a861/junit-4.10.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/junit/junit/4.10/6c98d6766e72d5575f96c9479d1c1d3b865c6e25/junit-4.10-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: junit:junit:4.12">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/junit/junit/4.12/2973d150c0dc1fefe998f834810d68f278ea58ec/junit-4.12.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/junit/junit/4.12/a6c32b40bf3d76eca54e3c601e5d1470c86fcdfa/junit-4.12-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: kr.entree:spigradle-annotations:2.1.1">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/kr.entree/spigradle-annotations/2.1.1/140e14d5fb373843420f0719f6f83cacc07d8cd1/spigradle-annotations-2.1.1.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/kr.entree/spigradle-annotations/2.1.1/cad3977ceba49ebb86ab6ed6681ff70cfbef9191/spigradle-annotations-2.1.1-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: me.clip:placeholderapi:2.10.9">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/me.clip/placeholderapi/2.10.9/7eb806cf0ac9bca89d6d6fd02b650e5f6f92306d/placeholderapi-2.10.9.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
<library name="Gradle: net.bytebuddy:byte-buddy-agent:1.10.18">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy-agent/1.10.18/1070e69ef571b326d91819b57bd06fd7efc60819/byte-buddy-agent-1.10.18.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy-agent/1.10.18/cf0a98d2728fb19c5737cb2b8e8af0bb1d7e5f91/byte-buddy-agent-1.10.18-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: net.bytebuddy:byte-buddy:1.10.18">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy/1.10.18/20240291b4f14ffe986e45468b1f1a3c15edc37c/byte-buddy-1.10.18.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy/1.10.18/b29479dbda55b1ce407fadf3393786071c672bf1/byte-buddy-1.10.18-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: net.md-5:bungeecord-chat:1.16-R0.3">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.md-5/bungeecord-chat/1.16-R0.3/cf9572b866830d6dfc3ccc6b6e3cde82013cf9e0/bungeecord-chat-1.16-R0.3.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.md-5/bungeecord-chat/1.16-R0.3/e898ffda1f4cf3114a753473fae34f9abdb6687a/bungeecord-chat-1.16-R0.3-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.apache.commons:commons-lang3:3.5">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.5/6c6c702c89bfff3cd9e80b04d668c5e190d588c6/commons-lang3-3.5.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.5/f7d878153e86a1cdddf6b37850e00a9f8bff726f/commons-lang3-3.5-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.apache.logging.log4j:log4j-api:2.8.1">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.8.1/e801d13612e22cad62a3f4f3fe7fdbe6334a8e72/log4j-api-2.8.1.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.8.1/a5edb6b8c77843c8be98e0cb1f875699e76ee122/log4j-api-2.8.1-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.apache.logging.log4j:log4j-core:2.8.1">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-core/2.8.1/4ac28ff2f1ddf05dae3043a190451e8c46b73c31/log4j-core-2.8.1.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-core/2.8.1/a0a7f683da620c345b502fff04d1e46cde2e8d9/log4j-core-2.8.1-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.apiguardian:apiguardian-api:1.1.1">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apiguardian/apiguardian-api/1.1.1/7ea550039f115fcc40990925490b8ebd4b93024a/apiguardian-api-1.1.1.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apiguardian/apiguardian-api/1.1.1/f69264a564e8bf11729b029906d24592be3a3432/apiguardian-api-1.1.1-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.assertj:assertj-core:3.18.1">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.assertj/assertj-core/3.18.1/aaa02680dd92a568a4278bb40aa4a6305f632ec0/assertj-core-3.18.1.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.assertj/assertj-core/3.18.1/e9ae1d122fdce7686454558baaaccc8738db87d0/assertj-core-3.18.1-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.bukkit:bukkit:1.13.1-R0.1-SNAPSHOT">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.bukkit/bukkit/1.13.1-R0.1-SNAPSHOT/4aae819591911e88ffa46e5bee3f2870d28a8db7/bukkit-1.13.1-R0.1-SNAPSHOT.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.bukkit/bukkit/1.13.1-R0.1-SNAPSHOT/d486e4c8d09a8b30acc0397fd15db479cf9f9e06/bukkit-1.13.1-R0.1-SNAPSHOT-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.bukkit:bukkit:1.15.2-R0.1-SNAPSHOT">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.bukkit/bukkit/1.15.2-R0.1-SNAPSHOT/f460954d10b629a0ff8f11b11ba4f91d976ca45/bukkit-1.15.2-R0.1-SNAPSHOT.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.bukkit/bukkit/1.15.2-R0.1-SNAPSHOT/dfaa23d22e700c1967c56e440033c78ac9dc8559/bukkit-1.15.2-R0.1-SNAPSHOT-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.hamcrest:hamcrest-core:1.1">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.1/860340562250678d1a344907ac75754e259cdb14/hamcrest-core-1.1.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.1/2ccf1154d1a8936042a8a742dc3e611d02ac7213/hamcrest-core-1.1-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.hamcrest:hamcrest-core:1.3">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/42a25dc3219429f0e5d060061f71acb49bf010a0/hamcrest-core-1.3.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/1dc37250fbc78e23a65a67fbbaf71d2e9cbc3c0b/hamcrest-core-1.3-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.hamcrest:hamcrest-library:1.3">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-library/1.3/4785a3c21320980282f9f33d0d1264a69040538f/hamcrest-library-1.3.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-library/1.3/47a7ee46628ab7133129cd7cef1e92657bc275e/hamcrest-library-1.3-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:1.4.20" type="kotlin.common">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.4.20/c6761d7805b5312302f2bbd78cda68c976ce0c70/kotlin-stdlib-common-1.4.20.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.4.20/f43399bcb1a17566dd6a89937876b898b89ef4c0/kotlin-stdlib-common-1.4.20-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.20">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.4.20/9de2c79e95d4b4699a455e88ba285a95352e0bea/kotlin-stdlib-jdk7-1.4.20.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.4.20/5b8bd3496f34e36f787d5f7081161560eb710bbd/kotlin-stdlib-jdk7-1.4.20-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.20">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.4.20/756521338269950c2a276f1abe6fef8e1a5e5528/kotlin-stdlib-jdk8-1.4.20.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.4.20/c038f6244e3d0f67c2140f58ba32ce7cfdaf66e7/kotlin-stdlib-jdk8-1.4.20-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.jetbrains.kotlin:kotlin-stdlib:1.4.20">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.4.20/9be77b243a362b745e365f286627b8724337009c/kotlin-stdlib-1.4.20.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.4.20/a990be30014ecfb80eabb1db4bc157bc16f3a25e/kotlin-stdlib-1.4.20-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.jetbrains:annotations:19.0.0">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/19.0.0/efbff6752f67a7c9de3e4251c086a88e23591dfd/annotations-19.0.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/19.0.0/46283be41e938dba9ac928ab98de7be6f7a436f1/annotations-19.0.0-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.junit.jupiter:junit-jupiter-api:5.8.0-SNAPSHOT">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-api/5.8.0-SNAPSHOT/d26ac9cbcec53926246c6f2689ac3d8176047f14/junit-jupiter-api-5.8.0-SNAPSHOT.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-api/5.8.0-SNAPSHOT/f296be2e3ba0fe262ebade179d075649974ac711/junit-jupiter-api-5.8.0-SNAPSHOT-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.junit.jupiter:junit-jupiter-engine:5.8.0-SNAPSHOT">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-engine/5.8.0-SNAPSHOT/ea1e92c4e7770960584afd39b58ba99852598356/junit-jupiter-engine-5.8.0-SNAPSHOT.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-engine/5.8.0-SNAPSHOT/afd238b12e422c5a2bdda147c353057d4279128e/junit-jupiter-engine-5.8.0-SNAPSHOT-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.junit.jupiter:junit-jupiter-params:5.8.0-SNAPSHOT">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-params/5.8.0-SNAPSHOT/bcc73ac4bb116ba48d005d7e7c21b2f802cd829f/junit-jupiter-params-5.8.0-SNAPSHOT.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-params/5.8.0-SNAPSHOT/5814a831d3ad24d2b1c82af874669845ce2ae63d/junit-jupiter-params-5.8.0-SNAPSHOT-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.junit.jupiter:junit-jupiter:5.8.0-SNAPSHOT">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter/5.8.0-SNAPSHOT/bb008d4ee81836b87b97fa22096d506acae8f517/junit-jupiter-5.8.0-SNAPSHOT.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter/5.8.0-SNAPSHOT/7009caa171d1d6af0f6f09dff25f9f574826a490/junit-jupiter-5.8.0-SNAPSHOT-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.junit.platform:junit-platform-commons:1.8.0-SNAPSHOT">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.junit.platform/junit-platform-commons/1.8.0-SNAPSHOT/a85e1b5d4a53aa0a88b077546817b08d0f439ef2/junit-platform-commons-1.8.0-SNAPSHOT.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.junit.platform/junit-platform-commons/1.8.0-SNAPSHOT/af83eeaef443a9ecc769cd9df5cf4edd08b1054e/junit-platform-commons-1.8.0-SNAPSHOT-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.junit.platform:junit-platform-engine:1.8.0-SNAPSHOT">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.junit.platform/junit-platform-engine/1.8.0-SNAPSHOT/3b7daad81d857cd562f0786dfc060fa132668fd9/junit-platform-engine-1.8.0-SNAPSHOT.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.junit.platform/junit-platform-engine/1.8.0-SNAPSHOT/29a30c73e35c68a7ed4ed47085f45f411b84f676/junit-platform-engine-1.8.0-SNAPSHOT-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.mockito:mockito-core:3.6.28">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.mockito/mockito-core/3.6.28/ad16f503916da658bd7b805816ae3b296f3eea4c/mockito-core-3.6.28.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.mockito/mockito-core/3.6.28/296251bf042984db28998e4c1be22c5e265a0cc7/mockito-core-3.6.28-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.objenesis:objenesis:3.1">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.objenesis/objenesis/3.1/48f12deaae83a8dfc3775d830c9fd60ea59bbbca/objenesis-3.1.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.objenesis/objenesis/3.1/36e4b278b98654980a51e36ef60b186a757ed3d7/objenesis-3.1-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.opentest4j:opentest4j:1.2.0">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.opentest4j/opentest4j/1.2.0/28c11eb91f9b6d8e200631d46e20a7f407f2a046/opentest4j-1.2.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.opentest4j/opentest4j/1.2.0/41d55b3c2254de9837b4ec8923cbd371b8a7eab5/opentest4j-1.2.0-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.projectlombok:lombok:1.18.12">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.18.12/48e4e5d60309ebd833bc528dcf77668eab3cd72c/lombok-1.18.12.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.18.12/3110c9b1b80ffe971becf5bd9445f096b6aa8a71/lombok-1.18.12-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.projectlombok:lombok:1.18.14">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.18.14/bdc3e8dee0b300d3fd9414678fb9ddb42d5e20fb/lombok-1.18.14.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.18.14/ba05c9dcde63b92920ea557ea49fd5ec324f8057/lombok-1.18.14-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.spigotmc:spigot-api:1.16.2-R0.1-SNAPSHOT">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.spigotmc/spigot-api/1.16.2-R0.1-SNAPSHOT/f38f4146fcc8009ec6bbc58186183c4ccd4c341a/spigot-api-1.16.2-R0.1-SNAPSHOT.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.spigotmc/spigot-api/1.16.2-R0.1-SNAPSHOT/93521727ac18ef24c97f4bcf358e5a0b4a05af63/spigot-api-1.16.2-R0.1-SNAPSHOT-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.yaml:snakeyaml:1.25">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.yaml/snakeyaml/1.25/8b6e01ef661d8378ae6dd7b511a7f2a33fae1421/snakeyaml-1.25.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.yaml/snakeyaml/1.25/45379604b7a254120101009ba09537737daed6f/snakeyaml-1.25-sources.jar!/" />
</SOURCES>
</library>
<library name="Gradle: org.yaml:snakeyaml:1.26">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.yaml/snakeyaml/1.26/a78a8747147d2c5807683e76ec2b633e95c14fe9/snakeyaml-1.26.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.yaml/snakeyaml/1.26/1f369166f21abc8c07e618c2b9c0897f405d0999/snakeyaml-1.26-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="masterDetails">
<states>
<state key="ArtifactsStructureConfigurable.UI">
<UIState>
<splitter-proportions>
<SplitterProportionsDataImpl/>
<SplitterProportionsDataImpl />
</splitter-proportions>
<settings/>
<settings />
</UIState>
</state>
<state key="Copyright.UI">
<UIState>
<splitter-proportions>
<SplitterProportionsDataImpl/>
<SplitterProportionsDataImpl />
</splitter-proportions>
</UIState>
</state>
@ -83,7 +665,7 @@
<SplitterProportionsDataImpl>
<option name="proportions">
<list>
<option value="0.2"/>
<option value="0.2" />
</list>
</option>
</SplitterProportionsDataImpl>
@ -94,11 +676,11 @@
<state key="ScopeChooserConfigurable.UI">
<UIState>
<splitter-proportions>
<SplitterProportionsDataImpl/>
<SplitterProportionsDataImpl />
</splitter-proportions>
<settings/>
<settings />
</UIState>
</state>
</states>
</component>
</project>
</project>

View File

@ -28,6 +28,9 @@ spigot {
name = project.property("pluginName")
authors = [project.property("author")]
apiVersion = project.property("apiVersion")
depends = [project.property("Vault")]
//Comands
commands {
@ -152,6 +155,13 @@ repositories {
url = 'http://maven.sk89q.com/repo/'
}
maven { url = "https://mvn.intellectualsites.com/content/repositories/releases/" }
// Commons - IO
maven { url = "https://mvnrepository.com/artifact/commons-io/commons-io" }
// WorldEdit
maven { url = "http://maven.enginehub.org/repo/" }
mavenCentral()
}
@ -174,10 +184,10 @@ dependencies {
compileOnly 'com.github.MilkBowl:VaultAPI:1.7'
compileOnly 'com.mojang:authlib:1.5.25'
compileOnly 'org.projectlombok:lombok:1.18.14'
compileOnly 'com.sk89q.worldedit:worldedit-bukkit:7.0.0-SNAPSHOT'
compileOnly 'com.sk89q.worldedit:worldedit-core:7.0.0-SNAPSHOT'
compile files('C:/Users/train/Desktop/Programing/Git/worldsystem/lib/commons-io-2.7.jar')
compile files('C:/Users/train/Desktop/Programing/Git/worldsystem/lib/FastAsyncWorldEdit.jar')
compileOnly 'com.sk89q.worldedit:worldedit-bukkit:7.2.0-SNAPSHOT'
compileOnly 'com.sk89q.worldedit:worldedit-core:7.2.0-SNAPSHOT'
compile group: 'commons-io', name: 'commons-io', version: '2.7'
compileOnly files('dependency/FastAsyncWorldEdit.jar')
}
shadowJar {

View File

@ -4,4 +4,8 @@ author = Trainerlord & Butzlabben
mcVersion = 1.16.2
apiVersion = 1.15
version = 2.4.11
Vault = Vault
WorldEdit = WorldEdit
FAWE = FAWE

View File

@ -2,15 +2,8 @@ package de.butzlabben.world;
import de.butzlabben.world.autoupdater.AutoUpdater;
import de.butzlabben.world.command.CommandRegistry;
import de.butzlabben.world.config.DependenceConfig;
import de.butzlabben.world.config.GuiConfig;
import de.butzlabben.world.config.MessageConfig;
import de.butzlabben.world.config.PluginConfig;
import de.butzlabben.world.config.SettingsConfig;
import de.butzlabben.world.listener.BlockListener;
import de.butzlabben.world.listener.CommandListener;
import de.butzlabben.world.listener.PlayerListener;
import de.butzlabben.world.listener.WorldEditListener;
import de.butzlabben.world.config.*;
import de.butzlabben.world.listener.*;
import de.butzlabben.world.util.PapiExtension;
import de.butzlabben.world.util.PlayerPositions;
import de.butzlabben.world.util.VersionUtil;
@ -18,16 +11,16 @@ import de.butzlabben.world.util.database.DatabaseProvider;
import de.butzlabben.world.wrapper.AsyncCreatorAdapter;
import de.butzlabben.world.wrapper.CreatorAdapter;
import de.butzlabben.world.wrapper.SystemWorld;
import java.io.File;
import java.io.IOException;
import org.bstats.bukkit.Metrics;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import java.io.File;
import java.io.IOException;
/**
* @author Butzlabben
* @author Jubeki
@ -38,6 +31,7 @@ public class WorldSystem extends JavaPlugin {
private static boolean is1_13Plus = false;
final private String version = this.getDescription().getVersion();
private CreatorAdapter creator;
public static void createConfigs() {
File folder = getInstance().getDataFolder();
File dir = new File(folder + "/worldsources");
@ -120,6 +114,7 @@ public class WorldSystem extends JavaPlugin {
pm.registerEvents(new PlayerListener(), this);
pm.registerEvents(new BlockListener(), this);
pm.registerEvents(new CommandListener(), this);
pm.registerEvents(new WorldInitSkipSpawn(), this);
if (pm.getPlugin("WorldEdit") != null)
pm.registerEvents(new WorldEditListener(), this);
@ -132,6 +127,8 @@ public class WorldSystem extends JavaPlugin {
20 * PluginConfig.getGCPeriod());
}
/* TODO better check this only on worldInitEvent
Bukkit.getScheduler().scheduleSyncRepeatingTask(this, () -> {
for (World w : Bukkit.getWorlds()) {
SystemWorld sw = SystemWorld.getSystemWorld(w.getName());
@ -139,7 +136,7 @@ public class WorldSystem extends JavaPlugin {
SettingsConfig.editWorld(w);
}
}, 20, 20 * 10);
}, 20, 20 * 10);*/
Bukkit.getScheduler().scheduleSyncRepeatingTask(this, () -> {
for (World w : Bukkit.getWorlds()) {
@ -159,11 +156,6 @@ public class WorldSystem extends JavaPlugin {
//this.getCommand("ws fire").setExecutor(new WorldFire());
System.setProperty("bstats.relocatecheck", "false");
Metrics m = new Metrics(this);
m.addCustomChart(new Metrics.SingleLineChart("worlds", DependenceConfig::getHighestID));
@ -175,6 +167,7 @@ public class WorldSystem extends JavaPlugin {
&& Bukkit.getPluginManager().getPlugin("WorldEdit") != null
&& PluginConfig.loadWorldsASync()
&& !is1_13Plus) {
creator = new AsyncCreatorAdapter();
Bukkit.getConsoleSender()
.sendMessage(PluginConfig.getPrefix() + "Found FAWE! Worlds now will be created asynchronously");

View File

@ -1,86 +1,104 @@
package de.butzlabben.world.command;
import de.butzlabben.world.command.commands.WSCommands;
import de.butzlabben.world.command.commands.WorldAdministrateCommand;
import de.butzlabben.world.command.commands.WorldSettingsCommands;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import static de.butzlabben.world.command.commands.WSCommands.*;
import static de.butzlabben.world.command.commands.WorldAdministrateCommand.*;
import java.util.List;
public class CommandRegistry implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (args.length == 0) {
WSCommands ws = new WSCommands();
return ws.mainCommand(sender, command, label, args);
} else {
WSCommands ws = new WSCommands();
WorldAdministrateCommand admin = new WorldAdministrateCommand();
WorldSettingsCommands settings = new WorldSettingsCommands();
switch (args[0]) {
//WSCommands
case "get":
return ws.getCommand(sender, command, label, args);
case "gui":
return ws.guiCommand(sender, command, label, args);
case "confirm":
if (sender.hasPermission("ws.confirm")) {
return ws.confirmCommand(sender, command, label, args);
} else {
return false;
}
case "home":
return ws.homeCommand(sender, command, label, args);
case "info":
return ws.infoComannd(sender, command, label, args);
case "leave":
return ws.leaveCommand(sender, command, label, args);
case "tp":
return ws.tpCommand(sender, command, label, args);
//Admin Command
case "delmember":
return admin.delMemberCommand(sender, command, label, args);
case "delete":
if (sender.hasPermission("ws.delete")) {
return admin.deleteCommand(sender, command, label, args);
} else {
return false;
}
case "addmember":
return admin.addMemberCommand(sender, command, label, args);
case "toggletp":
return admin.toggleTeleportCommand(sender, command, label, args);
case "togglegm":
return admin.toggleGamemodeCommand(sender, command, label, args);
case "togglewe":
return admin.toggleWorldeditCommand(sender, command, label, args);
case "togglebuild":
return admin.toggleBuildCommand(sender, command, label, args);
//World Settings Command
case "reset":
return settings.resetCommand(sender, command, label, args);
case "sethome":
sender.sendMessage("Disabled For Major Error and Rework");
/*
if (sender.hasPermission("ws.sethome")) {
return settings.setHomeCommand(sender, command, label, args);
} else {
return false;
}*/
case "tnt":
return settings.tntCommand(sender, command, label, args);
case "fire":
return settings.fireCommand(sender, command, label, args);
default:
return false;
}
}
}
}
package de.butzlabben.world.command;
import de.butzlabben.world.command.commands.WSCommands;
import de.butzlabben.world.command.commands.WorldAdministrateCommand;
import de.butzlabben.world.command.commands.WorldSettingsCommands;
import de.butzlabben.world.util.Worldutils;
import de.butzlabben.world.wrapper.WorldTemplateProvider;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
public class CommandRegistry implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (args.length == 0) {
WSCommands ws = new WSCommands();
return ws.mainCommand(sender, command, label, args);
} else {
WSCommands ws = new WSCommands();
WorldAdministrateCommand admin = new WorldAdministrateCommand();
WorldSettingsCommands settings = new WorldSettingsCommands();
switch (args[0]) {
//WSCommands
case "get":
return ws.getCommand(sender, command, label, args);
case "gui":
return ws.guiCommand(sender, command, label, args);
case "confirm":
if (sender.hasPermission("ws.confirm")) {
return ws.confirmCommand(sender, command, label, args);
} else {
return false;
}
case "home":
return ws.homeCommand(sender, command, label, args);
case "info":
return ws.infoComannd(sender, command, label, args);
case "leave":
return ws.leaveCommand(sender, command, label, args);
case "tp":
return ws.tpCommand(sender, command, label, args);
//Admin Command
case "day":
return admin.setTime(sender,0);
case "night":
return admin.setTime(sender,14000);
case "time":
return admin.setTime(sender, args[1]);
case "rain":
case "storm":
return admin.setStorm(sender,true);
case "sun":
return admin.setStorm(sender, false);
case "delmember":
return admin.delMemberCommand(sender, command, label, args);
case "delete":
if (sender.hasPermission("ws.delete")) {
return admin.deleteCommand(sender, command, label, args);
} else {
return false;
}
case "addmember":
return admin.addMemberCommand(sender, command, label, args);
case "toggletp":
return admin.toggleTeleportCommand(sender, command, label, args);
case "togglegm":
return admin.toggleGamemodeCommand(sender, command, label, args);
case "togglewe":
return admin.toggleWorldeditCommand(sender, command, label, args);
case "togglebuild":
return admin.toggleBuildCommand(sender, command, label, args);
//World Settings Command
case "reset":
return settings.resetCommand(sender, command, label, args);
case "sethome":
sender.sendMessage("Disabled For Major Error and Rework");
return false;
/*
if (sender.hasPermission("ws.sethome")) {
return settings.setHomeCommand(sender, command, label, args);
} else {
return false;
}*/
case "tnt":
return settings.tntCommand(sender, command, label, args);
case "fire":
return settings.fireCommand(sender, command, label, args);
case "reload":
if(!sender.isOp()){
sender.sendMessage("Reloading Settings!");
WorldTemplateProvider.getInstance().reload();
Worldutils.reloadWorldSettings();
return true;
}
default:
//default command is better than the other one
return ws.mainCommand(sender, command, label, args);
}
}
}
}

View File

@ -9,6 +9,7 @@ import de.butzlabben.world.event.WorldAddmemberEvent;
import de.butzlabben.world.event.WorldDeleteEvent;
import de.butzlabben.world.event.WorldRemovememberEvent;
import de.butzlabben.world.util.PlayerPositions;
import de.butzlabben.world.util.PlayerWrapper;
import de.butzlabben.world.wrapper.SystemWorld;
import de.butzlabben.world.wrapper.WorldPlayer;
import org.apache.commons.io.FileUtils;
@ -24,51 +25,116 @@ import java.io.IOException;
public class WorldAdministrateCommand {
public boolean setTime(CommandSender sender, String ticks) {
switch (ticks) {
case "day":
return setTime(sender, 0);
case "night":
return setTime(sender, 14000);
case "dawn":
return setTime(sender, 23000);
default:
try {
return setTime(sender, Long.parseLong(ticks));
} catch (NumberFormatException e) {
sender.sendMessage(MessageConfig.getWrongUsage().replaceAll("%usage", "/ws time [day/night/dawn/0-24000]"));
return false;
}
}
}
public boolean setStorm(CommandSender sender, boolean storm) {
if (!(sender instanceof Player)) {
sender.sendMessage("Command has to be executed as a player!");
return false;
}
Player p = (Player) sender;
DependenceConfig dc = new DependenceConfig(p);
if (!dc.hasWorld()) {
p.sendMessage(MessageConfig.getNotOnWorld());
return false;
}
if (dc.getWorldname().equals(p.getWorld().getName())) {
p.getWorld().setStorm(storm);
return true;
}
p.sendMessage(MessageConfig.getNotOnWorld());
return false;
}
public boolean setTime(CommandSender sender, long ticks) {
if (!(sender instanceof Player)) {
sender.sendMessage("Command has to be executed as a player!");
return false;
}
Player p = (Player) sender;
DependenceConfig dc = new DependenceConfig(p);
if (!dc.hasWorld()) {
p.sendMessage(MessageConfig.getNotOnWorld());
return false;
}
if (dc.getWorldname().equals(p.getWorld().getName())) {
p.getWorld().setTime(ticks);
return true;
}
p.sendMessage(MessageConfig.getNotOnWorld());
return false;
}
public boolean delMemberCommand(CommandSender sender, Command command, String label, String[] args) {
if (sender instanceof Player) {
Player p = (Player) sender;
if (args.length < 2) {
p.sendMessage(MessageConfig.getWrongUsage().replaceAll("%usage", "/ws delmember <Player>"));
return false;
}
DependenceConfig dc = new DependenceConfig(p);
if (!dc.hasWorld()) {
p.sendMessage(MessageConfig.getNoWorldOwn());
return false;
}
@SuppressWarnings("deprecation")
OfflinePlayer a = Bukkit.getOfflinePlayer(args[1]);
WorldConfig wc = WorldConfig.getWorldConfig(dc.getWorldname());
if (a == null) {
p.sendMessage(MessageConfig.getNotRegistered().replaceAll("%player", args[1]));
return false;
} else if (!wc.isMember(a.getUniqueId())) {
p.sendMessage(MessageConfig.getNoMemberOwn());
return false;
}
WorldRemovememberEvent event = new WorldRemovememberEvent(a.getUniqueId(), dc.getWorldname(), p);
Bukkit.getPluginManager().callEvent(event);
if (event.isCancelled())
return false;
if (a.isOnline()) {
Player t = (Player) a;
if (t.getWorld().getName().equals(new DependenceConfig(p).getWorldname())) {
t.teleport(PluginConfig.getSpawn(t));
t.setGameMode(PluginConfig.getSpawnGamemode());
if (args.length < 2) {
p.sendMessage(MessageConfig.getWrongUsage().replaceAll("%usage", "/ws delmember <Player>"));
return false;
}
}
wc.removeMember(a.getUniqueId());
try {
wc.save();
} catch (IOException e) {
p.sendMessage(MessageConfig.getUnknownError());
e.printStackTrace();
}
p.sendMessage(MessageConfig.getMemberRemoved().replaceAll("%player", a.getName()));
DependenceConfig dc = new DependenceConfig(p);
if (!dc.hasWorld()) {
p.sendMessage(MessageConfig.getNoWorldOwn());
return false;
}
@SuppressWarnings("deprecation")
OfflinePlayer a = PlayerWrapper.getOfflinePlayer(args[1]);
WorldConfig wc = WorldConfig.getWorldConfig(dc.getWorldname());
if (a == null) {
p.sendMessage(MessageConfig.getNotRegistered().replaceAll("%player", args[1]));
return false;
} else if (!wc.isMember(a.getUniqueId())) {
p.sendMessage(MessageConfig.getNoMemberOwn());
return false;
}
WorldRemovememberEvent event = new WorldRemovememberEvent(a.getUniqueId(), dc.getWorldname(), p);
Bukkit.getPluginManager().callEvent(event);
if (event.isCancelled())
return false;
if (a.isOnline()) {
Player t = (Player) a;
if (t.getWorld().getName().equals(new DependenceConfig(p).getWorldname())) {
t.teleport(PluginConfig.getSpawn(t));
t.setGameMode(PluginConfig.getSpawnGamemode());
}
}
wc.removeMember(a.getUniqueId());
try {
wc.save();
} catch (IOException e) {
p.sendMessage(MessageConfig.getUnknownError());
e.printStackTrace();
}
p.sendMessage(MessageConfig.getMemberRemoved().replaceAll("%player", a.getName()));
return true;
} else {
sender.sendMessage("No Console"); //TODO Get Config
@ -139,8 +205,11 @@ public class WorldAdministrateCommand {
}
public boolean addMemberCommand(CommandSender sender, Command command, String label, String[] args) {
if (sender instanceof Player) {
Player p = (Player) sender;
if (!(sender instanceof Player)) {
sender.sendMessage("No Console"); //TODO Get Config
return false;
}
Player p = (Player) sender;
if (args.length < 2) {
p.sendMessage(MessageConfig.getWrongUsage().replaceAll("%usage", "/ws addmember <Player>"));
return false;
@ -152,7 +221,7 @@ public class WorldAdministrateCommand {
return false;
}
@SuppressWarnings("deprecation")
OfflinePlayer a = Bukkit.getOfflinePlayer(args[1]);
OfflinePlayer a = PlayerWrapper.getOfflinePlayer(args[1]);
WorldConfig wc = WorldConfig.getWorldConfig(dc.getWorldname());
if (a == null) {
p.sendMessage(MessageConfig.getNotRegistered().replaceAll("%player", args[1]));
@ -175,11 +244,8 @@ public class WorldAdministrateCommand {
e.printStackTrace();
}
p.sendMessage(MessageConfig.getMemberAdded().replaceAll("%player", a.getName()));
return true;
} else {
sender.sendMessage("No Console"); //TODO Get Config
return false;
}
return true;
}
public boolean toggleTeleportCommand(CommandSender sender, Command command, String label, String[] args) {
@ -195,8 +261,7 @@ public class WorldAdministrateCommand {
p.sendMessage(MessageConfig.getNoWorldOwn());
return false;
}
@SuppressWarnings("deprecation")
OfflinePlayer a = Bukkit.getOfflinePlayer(args[1]);
OfflinePlayer a = PlayerWrapper.getOfflinePlayer(args[1]);
WorldConfig wc = WorldConfig.getWorldConfig(dc.getWorldname());
if (!wc.isMember(a.getUniqueId())) {
p.sendMessage(MessageConfig.getNoMemberOwn());
@ -222,33 +287,33 @@ public class WorldAdministrateCommand {
public boolean toggleGamemodeCommand(CommandSender sender, Command command, String label, String[] args) {
if (sender instanceof Player) {
Player p = (Player) sender;
if (args.length < 2) {
p.sendMessage(MessageConfig.getWrongUsage().replaceAll("%usage", "/ws togglegm <Player>"));
return false;
}
if (args.length < 2) {
p.sendMessage(MessageConfig.getWrongUsage().replaceAll("%usage", "/ws togglegm <Player>"));
return false;
}
DependenceConfig dc = new DependenceConfig(p);
if (!dc.hasWorld()) {
p.sendMessage(MessageConfig.getNoWorldOwn());
return false;
}
@SuppressWarnings("deprecation")
OfflinePlayer a = Bukkit.getOfflinePlayer(args[1]);
WorldConfig wc = WorldConfig.getWorldConfig(dc.getWorldname());
if (!wc.isMember(a.getUniqueId())) {
p.sendMessage(MessageConfig.getNoMemberOwn());
return false;
}
WorldPlayer wp = new WorldPlayer(a, dc.getWorldname());
if (wp.isOwnerofWorld()) {
p.sendMessage(PluginConfig.getPrefix() + "§cYou are the owner");
return false;
}
if (wp.toggleGamemode()) {
p.sendMessage(MessageConfig.getToggleGameModeEnabled().replaceAll("%player", a.getName()));
} else {
p.sendMessage(MessageConfig.getToggleGameModeDisabled().replaceAll("%player", a.getName()));
}
DependenceConfig dc = new DependenceConfig(p);
if (!dc.hasWorld()) {
p.sendMessage(MessageConfig.getNoWorldOwn());
return false;
}
@SuppressWarnings("deprecation")
OfflinePlayer a = PlayerWrapper.getOfflinePlayer(args[1]);
WorldConfig wc = WorldConfig.getWorldConfig(dc.getWorldname());
if (!wc.isMember(a.getUniqueId())) {
p.sendMessage(MessageConfig.getNoMemberOwn());
return false;
}
WorldPlayer wp = new WorldPlayer(a, dc.getWorldname());
if (wp.isOwnerofWorld()) {
p.sendMessage(PluginConfig.getPrefix() + "§cYou are the owner");
return false;
}
if (wp.toggleGamemode()) {
p.sendMessage(MessageConfig.getToggleGameModeEnabled().replaceAll("%player", a.getName()));
} else {
p.sendMessage(MessageConfig.getToggleGameModeDisabled().replaceAll("%player", a.getName()));
}
return true;
} else {
sender.sendMessage("No Console"); //TODO Get Config
@ -270,7 +335,7 @@ public class WorldAdministrateCommand {
return false;
}
@SuppressWarnings("deprecation")
OfflinePlayer a = Bukkit.getOfflinePlayer(args[1]);
OfflinePlayer a = PlayerWrapper.getOfflinePlayer(args[1]);
WorldConfig wc = WorldConfig.getWorldConfig(dc.getWorldname());
if (!wc.isMember(a.getUniqueId())) {
p.sendMessage(MessageConfig.getNoMemberOwn());
@ -294,8 +359,8 @@ public class WorldAdministrateCommand {
}
public boolean toggleBuildCommand(CommandSender sender, Command command, String label, String[] args) {
if (sender instanceof Player) {
Player p = (Player) sender;
if (sender instanceof Player) {
Player p = (Player) sender;
if (args.length < 2) {
p.sendMessage(MessageConfig.getWrongUsage().replaceAll("%usage", "/ws togglebuild <Player>"));
return false;
@ -307,7 +372,7 @@ public class WorldAdministrateCommand {
return false;
}
@SuppressWarnings("deprecation")
OfflinePlayer a = Bukkit.getOfflinePlayer(args[1]);
OfflinePlayer a = PlayerWrapper.getOfflinePlayer(args[1]);
WorldConfig wc = WorldConfig.getWorldConfig(dc.getWorldname());
if (!wc.isMember(a.getUniqueId())) {
p.sendMessage(MessageConfig.getNoMemberOwn());
@ -323,10 +388,10 @@ public class WorldAdministrateCommand {
} else {
p.sendMessage(MessageConfig.getToggleBuildDisabled().replaceAll("%player", a.getName()));
}
return true;
} else {
sender.sendMessage("No Console"); //TODO Get Config
return false;
}
return true;
} else {
sender.sendMessage("No Console"); //TODO Get Config
return false;
}
}
}

View File

@ -1,5 +1,6 @@
package de.butzlabben.world.config;
import de.butzlabben.world.util.PlayerWrapper;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.configuration.file.YamlConfiguration;
@ -17,15 +18,14 @@ public class DependenceConfig {
setConfig();
}
@SuppressWarnings("deprecation")
public DependenceConfig(String s) {
OfflinePlayer op = null;
try {
op = Bukkit.getOfflinePlayer(UUID.fromString(s));
op = PlayerWrapper.getOfflinePlayer(UUID.fromString(s));
} catch (Exception ignored) {
}
if (op == null) {
op = Bukkit.getOfflinePlayer(s);
op = PlayerWrapper.getOfflinePlayer(s);
}
uuid = op.getUniqueId();
}
@ -85,7 +85,7 @@ public class DependenceConfig {
File dconfig = new File("plugins//WorldSystem//dependence.yml");
YamlConfiguration cfg = YamlConfiguration.loadConfiguration(dconfig);
String uuid = this.uuid.toString();
cfg.set("Dependences." + uuid + ".ActualName", Bukkit.getOfflinePlayer(this.uuid).getName());
cfg.set("Dependences." + uuid + ".ActualName", PlayerWrapper.getOfflinePlayer(this.uuid).getName());
try {
cfg.save(dconfig);
} catch (IOException e) {
@ -102,7 +102,7 @@ public class DependenceConfig {
id++;
cfg.set("HighestID", id);
cfg.set("Dependences." + uuid + ".ID", id);
cfg.set("Dependences." + uuid + ".ActualName", Bukkit.getOfflinePlayer(this.uuid).getName());
cfg.set("Dependences." + uuid + ".ActualName", PlayerWrapper.getOfflinePlayer(this.uuid).getName());
try {
cfg.save(dconfig);
} catch (IOException e) {
@ -158,6 +158,6 @@ public class DependenceConfig {
}
public OfflinePlayer getOwner() {
return Bukkit.getOfflinePlayer(uuid);
return PlayerWrapper.getOfflinePlayer(uuid);
}
}

View File

@ -208,6 +208,12 @@ public class PluginConfig {
return getConfig().getString("database.players_table_name");
}
public static String getUUIDTableName() {
return getConfig().getString("database.players_uuids");
}
public static String getDatabaseType() {
return getConfig().getString("database.type");
}

View File

@ -17,6 +17,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.UUID;
//maybe just merge this config with the WorldConfig
public class SettingsConfig {
private static final HashMap<String, Long> borderSizes = new HashMap<>();
@ -27,6 +28,8 @@ public class SettingsConfig {
}
@SuppressWarnings("deprecation")
// TODO rebuild this, as it's inperformant and not very beautiful code..
// only load once, and then reload the things from the disk on command
public static void editWorld(World w) {
YamlConfiguration cfg = getConfig();

View File

@ -3,6 +3,7 @@ package de.butzlabben.world.config;
import com.google.common.collect.Sets;
import com.mojang.authlib.GameProfile;
import de.butzlabben.world.GameProfileBuilder;
import de.butzlabben.world.util.PlayerWrapper;
import de.butzlabben.world.wrapper.WorldTemplate;
import java.io.File;
import java.io.IOException;
@ -94,7 +95,7 @@ public class WorldConfig {
YamlConfiguration cfg = YamlConfiguration.loadConfiguration(file);
cfg.set("Informations.ID", dc.getID());
cfg.set("Informations.Owner.PlayerUUID", uuid.toString());
cfg.set("Informations.Owner.Actualname", Objects.requireNonNull(Bukkit.getOfflinePlayer(uuid)).getName());
cfg.set("Informations.Owner.Actualname", Objects.requireNonNull(PlayerWrapper.getOfflinePlayer(uuid)).getName());
cfg.set("Informations.template_key", template.getName());
cfg.set("Settings.TNTDamage", false);
cfg.set("Settings.Fire", false);
@ -370,7 +371,7 @@ public class WorldConfig {
public HashMap<UUID, String> getMembersWithNames() {
HashMap<UUID, String> map = new HashMap<>();
for (UUID uuid : permissions.keySet()) {
OfflinePlayer op = Bukkit.getOfflinePlayer(uuid);
OfflinePlayer op = PlayerWrapper.getOfflinePlayer(uuid);
if (op == null || op.getName() == null) {
if (PluginConfig.contactAuth()) {
try {

View File

@ -10,6 +10,7 @@ import de.butzlabben.world.gui.playeroption.BuildStatus;
import de.butzlabben.world.gui.playeroption.GamemodeStatus;
import de.butzlabben.world.gui.playeroption.TeleportStatus;
import de.butzlabben.world.gui.playeroption.WorldEditStatus;
import de.butzlabben.world.util.PlayerWrapper;
import de.butzlabben.world.wrapper.WorldPlayer;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
@ -22,7 +23,7 @@ public class PlayerOptionsGUI extends OrcInventory {
public PlayerOptionsGUI(Player loader, String otherPlayer, UUID other) {
super(GuiConfig.getTitle(GuiConfig.getConfig(), "options.player").replace("%player", otherPlayer), GuiConfig.getRows("options.player"), GuiConfig.isFill("options.player"));
WorldPlayer wp = new WorldPlayer(Bukkit.getOfflinePlayer(other), loader.getWorld().getName());
WorldPlayer wp = new WorldPlayer(PlayerWrapper.getOfflinePlayer(other), loader.getWorld().getName());
loadItem("build", "/ws togglebuild " + otherPlayer, new BuildStatus(wp));
loadItem("gamemode", "/ws togglegm " + otherPlayer, new GamemodeStatus(wp));
loadItem("teleport", "/ws toggletp " + otherPlayer, new TeleportStatus(wp));

View File

@ -4,6 +4,7 @@ import de.butzlabben.world.config.DependenceConfig;
import de.butzlabben.world.config.PluginConfig;
import de.butzlabben.world.config.WorldConfig;
import de.butzlabben.world.util.PlayerPositions;
import de.butzlabben.world.util.PlayerWrapper;
import de.butzlabben.world.wrapper.SystemWorld;
import de.butzlabben.world.wrapper.WorldPlayer;
import java.util.HashMap;
@ -25,6 +26,7 @@ public class PlayerListener implements Listener {
//#17
@EventHandler(priority = EventPriority.HIGHEST)
public void onJoin(PlayerJoinEvent e) {
PlayerWrapper.updateDatabase(e.getPlayer());
if (PluginConfig.spawnTeleportation()) {
Player p = e.getPlayer();
DependenceConfig dc = new DependenceConfig(p);

View File

@ -0,0 +1,23 @@
package de.butzlabben.world.listener;
import de.butzlabben.world.config.SettingsConfig;
import de.butzlabben.world.wrapper.SystemWorld;
import org.bukkit.World;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.world.WorldInitEvent;
public class WorldInitSkipSpawn implements Listener {
@EventHandler
public void worldInit(WorldInitEvent e) {
World world = e.getWorld();
SystemWorld sw = SystemWorld.getSystemWorld(world.getName());
if(sw == null)
return;
SettingsConfig.editWorld(world);
e.getWorld().setKeepSpawnInMemory(false);
}
}

View File

@ -39,7 +39,7 @@ public class MoneyUtil {
Preconditions.checkNotNull(uuid);
Preconditions.checkNotNull(economy);
Preconditions.checkArgument(money > 0, "Money must not be negative");
OfflinePlayer op = Bukkit.getOfflinePlayer(uuid);
OfflinePlayer op = PlayerWrapper.getOfflinePlayer(uuid);
Economy economy = (Economy) MoneyUtil.economy;
EconomyResponse response = economy.withdrawPlayer(op, money);
if (!response.transactionSuccess()) {
@ -52,7 +52,7 @@ public class MoneyUtil {
Preconditions.checkNotNull(uuid);
Preconditions.checkNotNull(economy);
Preconditions.checkArgument(money > 0, "Money must not be negative");
OfflinePlayer op = Bukkit.getOfflinePlayer(uuid);
OfflinePlayer op = PlayerWrapper.getOfflinePlayer(uuid);
Economy economy = (Economy) MoneyUtil.economy;
return economy.getBalance(op) >= money;
}

View File

@ -0,0 +1,98 @@
package de.butzlabben.world.util;
import com.google.common.base.Preconditions;
import com.sk89q.worldedit.bukkit.BukkitPlayer;
import de.butzlabben.world.config.PluginConfig;
import de.butzlabben.world.util.database.DatabaseProvider;
import de.butzlabben.world.util.database.DatabaseUtil;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.UUID;
public class PlayerWrapper {
private static final DatabaseUtil util = DatabaseProvider.instance.util;
static {
checkTables();
}
public static void checkTables() {
if (!util.isConnectionAvailable())
return;
String uuidTableName = PluginConfig.getUUIDTableName();
try {
PreparedStatement ps = util.prepareStatement("CREATE TABLE IF NOT EXISTS " + uuidTableName +
" ( `uuid` VARCHAR(36) NOT NULL , `name` VARCHAR(36) NOT NULL , " +
" PRIMARY KEY (`name`))");
util.executeUpdate(ps);
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void updateDatabase(Player player) {
if (!util.isConnectionAvailable())
return;
Preconditions.checkNotNull(player);
String uuidTableName = PluginConfig.getUUIDTableName();
try {
PreparedStatement ps = util.prepareStatement("REPLACE INTO " + uuidTableName +
" (uuid, name) VALUES (?, ?)");
ps.setString(1, player.getUniqueId().toString());
ps.setString(2, player.getName());
util.executeUpdate(ps);
} catch (SQLException e) {
e.printStackTrace();
}
}
private static UUID getUUID(String name) {
String uuidTableName = PluginConfig.getUUIDTableName();
try {
PreparedStatement ps = util.prepareStatement("SELECT * FROM " + uuidTableName + " WHERE name=?");
ps.setString(1, name);
ResultSet rs = util.executeQuery(ps);
if (!rs.next())
return null;
return UUID.fromString(rs.getString("uuid"));
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public static OfflinePlayer getOfflinePlayer(String name) {
Player player = Bukkit.getPlayer(name);
if(player != null)
return Bukkit.getOfflinePlayer(player.getUniqueId());
UUID uuid = PlayerWrapper.getUUID(name);
if(uuid != null)
return Bukkit.getOfflinePlayer(uuid);
return Bukkit.getOfflinePlayer(name);
}
public static OfflinePlayer getOfflinePlayer(UUID uuid) {
return Bukkit.getOfflinePlayer(uuid);
}
}

View File

@ -0,0 +1,18 @@
package de.butzlabben.world.util;
import de.butzlabben.world.config.SettingsConfig;
import de.butzlabben.world.wrapper.SystemWorld;
import org.bukkit.Bukkit;
import org.bukkit.World;
public class Worldutils {
public static void reloadWorldSettings(){
for (World w : Bukkit.getWorlds()) {
SystemWorld sw = SystemWorld.getSystemWorld(w.getName());
if (sw != null && sw.isLoaded())
SettingsConfig.editWorld(w);
}
}
}

View File

@ -18,6 +18,8 @@ public class AsyncCreatorAdapter implements CreatorAdapter {
// Create worlds async to close #16
@Override
public void create(WorldCreator creator, SystemWorld sw, Runnable r) {
TaskManager.IMP.async(() -> {
AsyncWorld world;
if (Bukkit.getWorld(creator.name()) == null)

View File

@ -8,6 +8,7 @@
import de.butzlabben.world.event.WorldLoadEvent;
import de.butzlabben.world.event.WorldUnloadEvent;
import de.butzlabben.world.util.PlayerPositions;
import de.butzlabben.world.util.PlayerWrapper;
import de.butzlabben.world.util.VersionUtil;
import org.apache.commons.io.FileUtils;
import org.bukkit.*;
@ -361,7 +362,7 @@ public class SystemWorld {
}
}, 10L);
OfflinePlayer owner = Bukkit.getOfflinePlayer(WorldConfig.getWorldConfig(worldname).getOwner());
OfflinePlayer owner = PlayerWrapper.getOfflinePlayer(WorldConfig.getWorldConfig(worldname).getOwner());
DependenceConfig dc = new DependenceConfig(owner);
dc.setLastLoaded();
}
@ -422,7 +423,7 @@ public class SystemWorld {
p.setGameMode(GameMode.CREATIVE);
}
OfflinePlayer owner = Bukkit.getOfflinePlayer(WorldConfig.getWorldConfig(worldname).getOwner());
OfflinePlayer owner = PlayerWrapper.getOfflinePlayer(WorldConfig.getWorldConfig(worldname).getOwner());
DependenceConfig dc = new DependenceConfig(owner);
dc.setLastLoaded();
}

View File

@ -17,7 +17,14 @@ public class WorldTemplateProvider {
private static final WorldTemplateProvider instance = new WorldTemplateProvider();
private final HashMap<String, WorldTemplate> templates = new HashMap<>();
private WorldTemplateProvider() {
reload();
}
public void reload(){
templates.clear();
ConfigurationSection section = PluginConfig.getConfig().getConfigurationSection("worldtemplates.templates");
for (String key : section.getKeys(false)) {
String name = section.getString(key + ".name");

View File

@ -63,6 +63,9 @@ database:
worlds_table_name: worlds_positions
# How the table with the saved player positions on the normal worlds should be named
players_table_name: player_positions
# how should the uuid cache be stored
players_uuids: players_uuids
# Configure here your mysql connection
mysql_settings:
host: 127.0.0.1