mirror of
https://github.com/TotalFreedomMC/TFGuilds.git
synced 2024-12-22 16:05:00 +00:00
Merge changes
This commit is contained in:
commit
ac56845aa1
96 changed files with 3629 additions and 3086 deletions
7
.gitignore
vendored
7
.gitignore
vendored
|
@ -1,7 +1,4 @@
|
||||||
/.idea/artifacts
|
/.idea/
|
||||||
/.idea/libraries
|
|
||||||
/.idea/workspace.xml
|
|
||||||
/.idea/modules.xml
|
|
||||||
/.idea/uiDesigner.xml
|
|
||||||
target/
|
target/
|
||||||
out/
|
out/
|
||||||
|
TFGuilds.iml
|
||||||
|
|
|
@ -1,5 +1,19 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
||||||
|
<component name="CheckStyle-IDEA-Module">
|
||||||
|
<option name="configuration">
|
||||||
|
<map />
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="FacetManager">
|
||||||
|
<facet type="minecraft" name="Minecraft">
|
||||||
|
<configuration>
|
||||||
|
<autoDetectTypes>
|
||||||
|
<platformType>SPIGOT</platformType>
|
||||||
|
</autoDetectTypes>
|
||||||
|
</configuration>
|
||||||
|
</facet>
|
||||||
|
</component>
|
||||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
|
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
|
||||||
<output url="file://$MODULE_DIR$/target/classes" />
|
<output url="file://$MODULE_DIR$/target/classes" />
|
||||||
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
||||||
|
@ -16,16 +30,7 @@
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.code.gson:gson:2.8.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: net.md-5:bungeecord-chat:1.16-R0.3" level="project" />
|
<orderEntry type="library" scope="PROVIDED" name="Maven: net.md-5:bungeecord-chat:1.16-R0.3" level="project" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.yaml:snakeyaml:1.26" level="project" />
|
<orderEntry type="library" scope="PROVIDED" name="Maven: org.yaml:snakeyaml:1.26" level="project" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: me.totalfreedom:TotalFreedomMod:2020.11.5" level="project" />
|
<orderEntry type="library" scope="PROVIDED" name="Maven: com.github.AtlasMediaGroup:TotalFreedomMod:development-0be2aa718f-1" level="project" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-io:commons-io:2.8.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.commons:commons-lang3:3.11" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-codec:commons-codec:1.15" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: me.telesphoreo:mojangson:1.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.bstats:bstats-bukkit:1.7" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: io.papermc:paperlib:1.0.5" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: me.rayzr522:jsonmessage:1.0.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.reflections:reflections:0.9.12" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.javassist:javassist:3.27.0-GA" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.plugins:maven-checkstyle-plugin:3.1.1" level="project" />
|
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.plugins:maven-checkstyle-plugin:3.1.1" level="project" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-artifact:3.0" level="project" />
|
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-artifact:3.0" level="project" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-core:3.0" level="project" />
|
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-core:3.0" level="project" />
|
||||||
|
@ -55,6 +60,7 @@
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: xml-apis:xml-apis:1.3.04" level="project" />
|
<orderEntry type="library" scope="PROVIDED" name="Maven: xml-apis:xml-apis:1.3.04" level="project" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.httpcomponents:httpclient:4.0.2" level="project" />
|
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.httpcomponents:httpclient:4.0.2" level="project" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.httpcomponents:httpcore:4.0.1" level="project" />
|
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.httpcomponents:httpcore:4.0.1" level="project" />
|
||||||
|
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-codec:commons-codec:1.3" level="project" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-validator:commons-validator:1.3.1" level="project" />
|
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-validator:commons-validator:1.3.1" level="project" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-digester:commons-digester:1.6" level="project" />
|
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-digester:commons-digester:1.6" level="project" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-logging:commons-logging:1.0.4" level="project" />
|
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-logging:commons-logging:1.0.4" level="project" />
|
||||||
|
@ -74,6 +80,7 @@
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.struts:struts-taglib:1.3.8" level="project" />
|
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.struts:struts-taglib:1.3.8" level="project" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.struts:struts-tiles:1.3.8" level="project" />
|
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.struts:struts-tiles:1.3.8" level="project" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.doxia:doxia-integration-tools:1.6" level="project" />
|
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.doxia:doxia-integration-tools:1.6" level="project" />
|
||||||
|
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-io:commons-io:1.4" level="project" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.codehaus.plexus:plexus-container-default:1.0-alpha-9" level="project" />
|
<orderEntry type="library" scope="PROVIDED" name="Maven: org.codehaus.plexus:plexus-container-default:1.0-alpha-9" level="project" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: junit:junit:3.8.1" level="project" />
|
<orderEntry type="library" scope="PROVIDED" name="Maven: junit:junit:3.8.1" level="project" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: classworlds:classworlds:1.1-alpha-2" level="project" />
|
<orderEntry type="library" scope="PROVIDED" name="Maven: classworlds:classworlds:1.1-alpha-2" level="project" />
|
||||||
|
|
16
.idea/checkstyle-idea.xml
Normal file
16
.idea/checkstyle-idea.xml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="CheckStyle-IDEA">
|
||||||
|
<option name="configuration">
|
||||||
|
<map>
|
||||||
|
<entry key="checkstyle-version" value="8.39" />
|
||||||
|
<entry key="copy-libs" value="true" />
|
||||||
|
<entry key="location-0" value="BUNDLED:(bundled):Sun Checks" />
|
||||||
|
<entry key="location-1" value="BUNDLED:(bundled):Google Checks" />
|
||||||
|
<entry key="scan-before-checkin" value="false" />
|
||||||
|
<entry key="scanscope" value="JavaOnly" />
|
||||||
|
<entry key="suppress-errors" value="false" />
|
||||||
|
</map>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
</project>
|
|
@ -9,24 +9,6 @@
|
||||||
</value>
|
</value>
|
||||||
</option>
|
</option>
|
||||||
</JavaCodeStyleSettings>
|
</JavaCodeStyleSettings>
|
||||||
<JetCodeStyleSettings>
|
|
||||||
<option name="PACKAGES_TO_USE_STAR_IMPORTS">
|
|
||||||
<value>
|
|
||||||
<package name="java.util" alias="false" withSubpackages="false" />
|
|
||||||
<package name="kotlinx.android.synthetic" alias="false" withSubpackages="true" />
|
|
||||||
<package name="io.ktor" alias="false" withSubpackages="true" />
|
|
||||||
</value>
|
|
||||||
</option>
|
|
||||||
<option name="PACKAGES_IMPORT_LAYOUT">
|
|
||||||
<value>
|
|
||||||
<package name="" alias="false" withSubpackages="true" />
|
|
||||||
<package name="java" alias="false" withSubpackages="true" />
|
|
||||||
<package name="javax" alias="false" withSubpackages="true" />
|
|
||||||
<package name="kotlin" alias="false" withSubpackages="true" />
|
|
||||||
<package name="" alias="true" withSubpackages="true" />
|
|
||||||
</value>
|
|
||||||
</option>
|
|
||||||
</JetCodeStyleSettings>
|
|
||||||
<codeStyleSettings language="JAVA">
|
<codeStyleSettings language="JAVA">
|
||||||
<option name="BRACE_STYLE" value="2" />
|
<option name="BRACE_STYLE" value="2" />
|
||||||
<option name="CLASS_BRACE_STYLE" value="2" />
|
<option name="CLASS_BRACE_STYLE" value="2" />
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
</profile>
|
</profile>
|
||||||
</annotationProcessing>
|
</annotationProcessing>
|
||||||
<bytecodeTargetLevel>
|
<bytecodeTargetLevel>
|
||||||
<module name="TFGuilds" target="1.8" />
|
<module name="TFGuilds" target="11" />
|
||||||
</bytecodeTargetLevel>
|
</bytecodeTargetLevel>
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
6
.idea/discord.xml
Normal file
6
.idea/discord.xml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="DiscordProjectSettings">
|
||||||
|
<option name="show" value="PROJECT_FILES" />
|
||||||
|
</component>
|
||||||
|
</project>
|
|
@ -1,5 +1,9 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
|
<component name="ASMPluginConfiguration">
|
||||||
|
<asm skipDebug="false" skipFrames="false" skipCode="false" expandFrames="false" />
|
||||||
|
<groovy codeStyle="LEGACY" />
|
||||||
|
</component>
|
||||||
<component name="EntryPointsManager">
|
<component name="EntryPointsManager">
|
||||||
<list size="1">
|
<list size="1">
|
||||||
<item index="0" class="java.lang.String" itemvalue="org.bukkit.event.EventHandler" />
|
<item index="0" class="java.lang.String" itemvalue="org.bukkit.event.EventHandler" />
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="VcsDirectoryMappings">
|
<component name="VcsDirectoryMappings">
|
||||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
<mapping directory="" vcs="Git" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
|
@ -1 +0,0 @@
|
||||||
language: java
|
|
110
TFGuilds.iml
110
TFGuilds.iml
|
@ -1,110 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
|
||||||
<component name="FacetManager">
|
|
||||||
<facet type="minecraft" name="Minecraft">
|
|
||||||
<configuration>
|
|
||||||
<autoDetectTypes>
|
|
||||||
<platformType>SPIGOT</platformType>
|
|
||||||
</autoDetectTypes>
|
|
||||||
</configuration>
|
|
||||||
</facet>
|
|
||||||
</component>
|
|
||||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
|
|
||||||
<output url="file://$MODULE_DIR$/target/classes" />
|
|
||||||
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
|
||||||
<content url="file://$MODULE_DIR$">
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/target" />
|
|
||||||
</content>
|
|
||||||
<orderEntry type="inheritedJdk" />
|
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.spigotmc:spigot-api:1.16.4-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: net.md-5:bungeecord-chat:1.16-R0.3" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.yaml:snakeyaml:1.26" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: me.totalfreedom:TotalFreedomMod:2020.9" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-io:commons-io:2.7" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.commons:commons-lang3:3.11" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-codec:commons-codec:1.9" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.github.TFPatches:TF-LibsDisguises:0cfa32159a" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.ow2.asm:asm:7.3.1" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.comphenix.protocol:ProtocolLib:4.5.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: cglib:cglib-nodep:3.2.5" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.comphenix.executors:BukkitExecutors:1.1-SNAPSHOT" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.spigotmc:spigot:1.16.1-R0.1-SNAPSHOT" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: me.rayzr522:jsonmessage:1.0.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.reflections:reflections:0.9.11" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.javassist:javassist:3.21.0-GA" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: javassist:javassist:3.12.1.GA" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.plugins:maven-checkstyle-plugin:3.1.1" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-artifact:3.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-core:3.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-settings:3.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-settings-builder:3.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-repository-metadata:3.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-model-builder:3.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-aether-provider:3.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.sonatype.aether:aether-impl:1.7" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.sonatype.aether:aether-spi:1.7" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.sonatype.aether:aether-api:1.7" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.sonatype.aether:aether-util:1.7" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.sonatype.sisu:sisu-inject-plexus:1.4.2" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.sonatype.sisu:sisu-inject-bean:1.4.2" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.sonatype.sisu:sisu-guice:noaop:2.1.7" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.codehaus.plexus:plexus-classworlds:2.2.3" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.sonatype.plexus:plexus-sec-dispatcher:1.3" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.sonatype.plexus:plexus-cipher:1.4" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-model:3.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-plugin-api:3.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.reporting:maven-reporting-api:3.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.reporting:maven-reporting-impl:2.3" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.shared:maven-shared-utils:0.6" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.code.findbugs:jsr305:2.0.1" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.doxia:doxia-core:1.2" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: xerces:xercesImpl:2.9.1" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: xml-apis:xml-apis:1.3.04" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.httpcomponents:httpclient:4.0.2" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.httpcomponents:httpcore:4.0.1" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-validator:commons-validator:1.3.1" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-digester:commons-digester:1.6" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-logging:commons-logging:1.0.4" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.doxia:doxia-sink-api:1.4" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.doxia:doxia-logging-api:1.4" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.doxia:doxia-decoration-model:1.4" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.doxia:doxia-site-renderer:1.4" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.doxia:doxia-module-xhtml:1.4" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.doxia:doxia-module-fml:1.4" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.codehaus.plexus:plexus-i18n:1.0-beta-7" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.velocity:velocity-tools:2.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-chain:commons-chain:1.1" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: dom4j:dom4j:1.1" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: oro:oro:2.0.8" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: sslext:sslext:1.2-0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.struts:struts-core:1.3.8" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.struts:struts-taglib:1.3.8" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.struts:struts-tiles:1.3.8" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.doxia:doxia-integration-tools:1.6" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.codehaus.plexus:plexus-container-default:1.0-alpha-9" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: junit:junit:3.8.1" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: classworlds:classworlds:1.1-alpha-2" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.codehaus.plexus:plexus-component-annotations:2.0.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.codehaus.plexus:plexus-resources:1.1.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.codehaus.plexus:plexus-utils:3.3.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.codehaus.plexus:plexus-interpolation:1.26" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.codehaus.plexus:plexus-velocity:1.2" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.puppycrawl.tools:checkstyle:8.29" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: info.picocli:picocli:4.1.4" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: antlr:antlr:2.7.7" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.antlr:antlr4-runtime:4.8-1" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-beanutils:commons-beanutils:1.9.4" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.sf.saxon:Saxon-HE:9.9.1-6" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.velocity:velocity:1.7" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.projectlombok:lombok:1.18.14" level="project" />
|
|
||||||
</component>
|
|
||||||
</module>
|
|
19
nb-configuration.xml
Normal file
19
nb-configuration.xml
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project-shared-configuration>
|
||||||
|
<!--
|
||||||
|
This file contains additional configuration written by modules in the NetBeans IDE.
|
||||||
|
The configuration is intended to be shared among all the users of project and
|
||||||
|
therefore it is assumed to be part of version control checkout.
|
||||||
|
Without this configuration present, some functionality in the IDE may be limited or fail altogether.
|
||||||
|
-->
|
||||||
|
<properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
|
||||||
|
<!--
|
||||||
|
Properties that influence various parts of the IDE, especially code formatting and the like.
|
||||||
|
You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
|
||||||
|
That way multiple projects can share the same settings (useful for formatting rules for example).
|
||||||
|
Any value defined here will override the pom.xml file value but is only applicable to the current project.
|
||||||
|
-->
|
||||||
|
<netbeans.hint.jdkPlatform>JDK_11</netbeans.hint.jdkPlatform>
|
||||||
|
<org-netbeans-modules-javascript2-requirejs.enabled>true</org-netbeans-modules-javascript2-requirejs.enabled>
|
||||||
|
</properties>
|
||||||
|
</project-shared-configuration>
|
28
pom.xml
28
pom.xml
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
<groupId>me.totalfreedom</groupId>
|
<groupId>me.totalfreedom</groupId>
|
||||||
<artifactId>TFGuilds</artifactId>
|
<artifactId>TFGuilds</artifactId>
|
||||||
<version>0.2.17</version>
|
<version>2021.06-RC3</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>TFGuilds</name>
|
<name>TFGuilds</name>
|
||||||
|
@ -25,8 +25,8 @@
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
<version>3.8.1</version>
|
<version>3.8.1</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<source>1.8</source>
|
<source>11</source>
|
||||||
<target>1.8</target>
|
<target>11</target>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
|
@ -63,33 +63,13 @@
|
||||||
<id>spigotmc-repo</id>
|
<id>spigotmc-repo</id>
|
||||||
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
|
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
|
||||||
</repository>
|
</repository>
|
||||||
<repository>
|
|
||||||
<id>sonatype</id>
|
|
||||||
<url>https://oss.sonatype.org/content/groups/public/</url>
|
|
||||||
</repository>
|
|
||||||
<repository>
|
|
||||||
<id>telesphoreo-repo</id>
|
|
||||||
<url>https://telesphoreo.me/repo/maven</url>
|
|
||||||
</repository>
|
|
||||||
</repositories>
|
</repositories>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.spigotmc</groupId>
|
<groupId>org.spigotmc</groupId>
|
||||||
<artifactId>spigot-api</artifactId>
|
<artifactId>spigot-api</artifactId>
|
||||||
<version>1.16.4-R0.1-SNAPSHOT</version>
|
<version>1.16.5-R0.1-SNAPSHOT</version>
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>me.totalfreedom</groupId>
|
|
||||||
<artifactId>TotalFreedomMod</artifactId>
|
|
||||||
<version>2020.11.5</version>
|
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.projectlombok</groupId>
|
|
||||||
<artifactId>lombok</artifactId>
|
|
||||||
<version>1.18.16</version>
|
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
|
@ -1,36 +1,23 @@
|
||||||
package me.totalfreedom.tfguilds;
|
package me.totalfreedom.tfguilds;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
import me.totalfreedom.tfguilds.config.ConfigEntry;
|
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class Common
|
public class Common
|
||||||
{
|
{
|
||||||
protected static TFGuilds plugin = TFGuilds.getPlugin();
|
|
||||||
|
|
||||||
public static final ChatColor PRIMARY = ConfigEntry.SCHEME_PRIMARY.getChatColor();
|
public static final String PREFIX = ChatColor.AQUA + "TFGuilds " + ChatColor.DARK_GRAY + "\u00BB " + ChatColor.GRAY;
|
||||||
public static final ChatColor SECONDARY = ConfigEntry.SCHEME_SECONDARY.getChatColor();
|
public static final String NOT_IN_GUILD = PREFIX + "You are not in a guild.";
|
||||||
public static final String NO_PERMS = ChatColor.RED + "No permission.";
|
public static final String IN_GUILD = PREFIX + "You are already in a guild.";
|
||||||
public static final String PREFIX = "%s%[%p%TFGuilds%s%] %p%";
|
public static final String PLAYER_NOT_FOUND = PREFIX + "That player is not online.";
|
||||||
public static final String PNF = ChatColor.RED + "Player not found.";
|
public static final String PLAYER_NOT_IN_GUILD = PREFIX + "That player is not in your guild.";
|
||||||
|
public static final String IN_GAME_ONLY = PREFIX + "You must be in-game to interact with guilds";
|
||||||
|
public static final String USAGE = PREFIX + "Correct usage: " + ChatColor.GOLD;
|
||||||
|
|
||||||
public static Map<Player, Guild> INVITES = new HashMap<>();
|
public static final TFMBridge tfmBridge = TFGuilds.getPlugin().getTfmBridge();
|
||||||
public static List<Player> IN_GUILD_CHAT = new ArrayList<>();
|
|
||||||
public static List<Player> CHAT_SPY = new ArrayList<>();
|
|
||||||
|
|
||||||
public static String tl(String in)
|
public static List<Player> GUILD_CHAT = new ArrayList<>();
|
||||||
{
|
public static List<Player> GUILD_CHAT_SPY = new ArrayList<>();
|
||||||
return in.replaceAll("%p%", PRIMARY + "").replaceAll("%s%", SECONDARY + "");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void broadcast(String msg)
|
|
||||||
{
|
|
||||||
Bukkit.broadcastMessage(msg);
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -1,66 +1,125 @@
|
||||||
package me.totalfreedom.tfguilds;
|
package me.totalfreedom.tfguilds;
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.bridge.TFMBridge;
|
import java.sql.SQLException;
|
||||||
import me.totalfreedom.tfguilds.command.GuildChatCommand;
|
import java.util.ArrayList;
|
||||||
import me.totalfreedom.tfguilds.command.GuildChatSpyCommand;
|
import java.util.Collections;
|
||||||
import me.totalfreedom.tfguilds.command.GuildCommand;
|
import java.util.HashMap;
|
||||||
import me.totalfreedom.tfguilds.command.TFGuildsCommand;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import me.totalfreedom.tfguilds.command.*;
|
||||||
import me.totalfreedom.tfguilds.config.Config;
|
import me.totalfreedom.tfguilds.config.Config;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import me.totalfreedom.tfguilds.guild.User;
|
||||||
import me.totalfreedom.tfguilds.listener.ChatListener;
|
import me.totalfreedom.tfguilds.listener.ChatListener;
|
||||||
import me.totalfreedom.tfguilds.listener.JoinListener;
|
import me.totalfreedom.tfguilds.listener.JoinListener;
|
||||||
import me.totalfreedom.tfguilds.util.GLog;
|
import me.totalfreedom.tfguilds.sql.SQLDatabase;
|
||||||
import org.bukkit.plugin.PluginManager;
|
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
public final class TFGuilds extends JavaPlugin
|
public class TFGuilds extends JavaPlugin
|
||||||
{
|
{
|
||||||
|
|
||||||
private static TFGuilds plugin;
|
private static TFGuilds plugin;
|
||||||
|
private Config config;
|
||||||
|
private SQLDatabase sqlDatabase;
|
||||||
|
private TFMBridge tfmBridge;
|
||||||
|
private Map<String, SubCommand> subCommands = new HashMap<>();
|
||||||
|
|
||||||
public static TFGuilds getPlugin()
|
public static TFGuilds getPlugin()
|
||||||
{
|
{
|
||||||
return plugin;
|
return plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Config config;
|
|
||||||
public Config guilds;
|
|
||||||
public Config players;
|
|
||||||
public TFMBridge bridge;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnable()
|
public void onEnable()
|
||||||
{
|
{
|
||||||
plugin = this;
|
this.plugin = this;
|
||||||
config = new Config("config.yml");
|
config = new Config("config.yml");
|
||||||
guilds = new Config("guilds.yml");
|
sqlDatabase = new SQLDatabase(this);
|
||||||
players = new Config("players.yml");
|
User.loadAll();
|
||||||
bridge = new TFMBridge();
|
Guild.loadAll();
|
||||||
loadCommands();
|
tfmBridge = new TFMBridge();
|
||||||
loadListeners();
|
tfmBridge.getTfm();
|
||||||
GLog.info("Enabled " + this.getDescription().getFullName());
|
new JoinListener(this);
|
||||||
|
new ChatListener(this);
|
||||||
|
loadSubCommands();
|
||||||
|
getCommand("tfguilds").setExecutor(new TFGuildsCommand());
|
||||||
|
getCommand("guild").setExecutor(new GuildCommand());
|
||||||
|
getCommand("guildchatspy").setExecutor(new GuildChatSpyCommand());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDisable()
|
public void onDisable()
|
||||||
{
|
{
|
||||||
plugin = null;
|
try
|
||||||
|
{
|
||||||
|
getSQL().getConnection().close();
|
||||||
|
}
|
||||||
|
catch (SQLException throwables)
|
||||||
|
{
|
||||||
|
}
|
||||||
config.save();
|
config.save();
|
||||||
guilds.save();
|
|
||||||
players.save();
|
|
||||||
GLog.info("Disabled " + this.getDescription().getFullName());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadCommands()
|
public Config getConfig()
|
||||||
{
|
{
|
||||||
this.getCommand("guild").setExecutor(new GuildCommand());
|
return config;
|
||||||
this.getCommand("guildchat").setExecutor(new GuildChatCommand());
|
|
||||||
this.getCommand("tfguilds").setExecutor(new TFGuildsCommand());
|
|
||||||
this.getCommand("guildchatspy").setExecutor(new GuildChatSpyCommand());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadListeners()
|
public SQLDatabase getSQL()
|
||||||
{
|
{
|
||||||
PluginManager manager = this.getServer().getPluginManager();
|
return sqlDatabase;
|
||||||
manager.registerEvents(new ChatListener(), this);
|
}
|
||||||
manager.registerEvents(new JoinListener(), this);
|
|
||||||
|
public TFMBridge getTfmBridge()
|
||||||
|
{
|
||||||
|
return tfmBridge;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SubCommand getSubCommand(String name)
|
||||||
|
{
|
||||||
|
return subCommands.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getSubCommands()
|
||||||
|
{
|
||||||
|
List<String> commands = new ArrayList<>(subCommands.keySet());
|
||||||
|
Collections.sort(commands);
|
||||||
|
return commands;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void loadSubCommands()
|
||||||
|
{
|
||||||
|
subCommands.put("create", new CreateSubCommand());
|
||||||
|
subCommands.put("info", new InfoSubCommand());
|
||||||
|
subCommands.put("disband", new DisbandSubCommand());
|
||||||
|
subCommands.put("invite", new InviteSubCommand());
|
||||||
|
subCommands.put("join", new JoinSubCommand());
|
||||||
|
subCommands.put("leave", new LeaveSubCommand());
|
||||||
|
subCommands.put("warps", new WarpsSubCommand());
|
||||||
|
subCommands.put("setwarp", new SetWarpSubCommand());
|
||||||
|
subCommands.put("addmod", new AddModSubCommand());
|
||||||
|
subCommands.put("removemod", new RemoveModSubCommand());
|
||||||
|
subCommands.put("createrank", new CreateRankSubCommand());
|
||||||
|
subCommands.put("deleterank", new DeleteRankSubCommand());
|
||||||
|
subCommands.put("warp", new WarpSubCommand());
|
||||||
|
subCommands.put("setrank", new SetRankSubCommand());
|
||||||
|
subCommands.put("deletewarp", new DeleteWarpSubCommand());
|
||||||
|
subCommands.put("kick", new KickSubCommand());
|
||||||
|
subCommands.put("setowner", new SetOwnerSubCommand());
|
||||||
|
subCommands.put("setstate", new SetStateSubCommand());
|
||||||
|
subCommands.put("setdefaultrank", new SetDefaultRankSubCommand());
|
||||||
|
subCommands.put("home", new HomeSubCommand());
|
||||||
|
subCommands.put("tp", new TpSubCommand());
|
||||||
|
subCommands.put("roster", new RosterSubCommand());
|
||||||
|
subCommands.put("toggletag", new ToggleTagSubCommand());
|
||||||
|
subCommands.put("chat", new ChatSubCommand());
|
||||||
|
subCommands.put("motd", new MotdSubCommand());
|
||||||
|
subCommands.put("toggletags", new ToggleTagsSubCommand());
|
||||||
|
subCommands.put("tag", new TagSubCommand());
|
||||||
|
subCommands.put("list", new ListSubCommand());
|
||||||
|
subCommands.put("help", new HelpSubCommand());
|
||||||
|
subCommands.put("mchat", new ModChatSubCommand());
|
||||||
|
subCommands.put("notag", new NoTagSubCommand());
|
||||||
|
subCommands.put("togglechat", new ToggleChatSubCommand());
|
||||||
}
|
}
|
||||||
}
|
}
|
142
src/main/java/me/totalfreedom/tfguilds/TFMBridge.java
Normal file
142
src/main/java/me/totalfreedom/tfguilds/TFMBridge.java
Normal file
|
@ -0,0 +1,142 @@
|
||||||
|
package me.totalfreedom.tfguilds;
|
||||||
|
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
import me.totalfreedom.tfguilds.util.ReflectionsHelper;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
|
public class TFMBridge
|
||||||
|
{
|
||||||
|
|
||||||
|
private final TFGuilds plugin = TFGuilds.getPlugin();
|
||||||
|
private /*TotalFreedomMod*/ Plugin tfm = null;
|
||||||
|
|
||||||
|
public /*TotalFreedomMod*/ Plugin getTfm()
|
||||||
|
{
|
||||||
|
if (tfm == null)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
final Plugin tfmPlugin = plugin.getServer().getPluginManager().getPlugin("TotalFreedomMod");
|
||||||
|
if (tfmPlugin != null && tfmPlugin.isEnabled())
|
||||||
|
{
|
||||||
|
tfm = /*(TotalFreedomMod)*/tfmPlugin;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return tfm;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isAdmin(Player player)
|
||||||
|
{
|
||||||
|
if (getTfm() == null)
|
||||||
|
{
|
||||||
|
Bukkit.getLogger().warning("TotalFreedomMod not detected, checking operator status instead.");
|
||||||
|
return player.isOp();
|
||||||
|
}
|
||||||
|
Object al = ReflectionsHelper.getField(getTfm(), "al");
|
||||||
|
Method isAdmin = ReflectionsHelper.getMethod(al, "isAdmin", Player.class);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return (boolean)isAdmin.invoke(al, player) /*getTfm().al.isAdmin(player)*/;
|
||||||
|
}
|
||||||
|
catch (IllegalAccessException | InvocationTargetException e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isAdmin(CommandSender sender)
|
||||||
|
{
|
||||||
|
if (getTfm() == null)
|
||||||
|
{
|
||||||
|
Bukkit.getLogger().warning("TotalFreedomMod not detected, checking operator status instead.");
|
||||||
|
return sender.isOp();
|
||||||
|
}
|
||||||
|
Object al = ReflectionsHelper.getField(getTfm(), "al");
|
||||||
|
Method isAdmin = ReflectionsHelper.getMethod(al, "isAdmin", CommandSender.class);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return (boolean)isAdmin.invoke(al, sender) /*getTfm().al.isAdmin(player)*/;
|
||||||
|
}
|
||||||
|
catch (IllegalAccessException | InvocationTargetException e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isVanished(Player player)
|
||||||
|
{
|
||||||
|
if (getTfm() == null)
|
||||||
|
{
|
||||||
|
Bukkit.getLogger().warning("TotalFreedomMod not detected, vanish will return false.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
Object al = ReflectionsHelper.getField(getTfm(), "al");
|
||||||
|
Method isVanished = ReflectionsHelper.getMethod(al, "isVanished", String.class);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return (boolean)isVanished.invoke(al, player.getName()) /*getTfm().al.isVanished(player.getName)*/;
|
||||||
|
}
|
||||||
|
catch (IllegalAccessException | InvocationTargetException e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTag(Player player)
|
||||||
|
{
|
||||||
|
if (getTfm() == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
Object pl = ReflectionsHelper.getField(getTfm(), "pl");
|
||||||
|
Method getPlayer = ReflectionsHelper.getMethod(pl, "getPlayer", Player.class);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Object fPlayer = getPlayer.invoke(pl, player);
|
||||||
|
Method getTag = ReflectionsHelper.getMethod(fPlayer, "getTag");
|
||||||
|
|
||||||
|
return (String)getTag.invoke(fPlayer);
|
||||||
|
}
|
||||||
|
catch (IllegalAccessException | InvocationTargetException e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
return "" /*ChatColor.stripColor(getTfm().pl.getPlayer(player).getTag())*/;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void clearTag(Player player)
|
||||||
|
{
|
||||||
|
if (getTfm() == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// getTfm().pl.getPlayer(player).setTag(null);
|
||||||
|
Object pl = ReflectionsHelper.getField(getTfm(), "pl");
|
||||||
|
Method getPlayer = ReflectionsHelper.getMethod(pl, "getPlayer", Player.class);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Object fPlayer = getPlayer.invoke(pl, player);
|
||||||
|
Method setTag = ReflectionsHelper.getMethod(fPlayer, "setTag", String.class);
|
||||||
|
|
||||||
|
setTag.invoke(fPlayer, (Object)null);
|
||||||
|
}
|
||||||
|
catch (IllegalAccessException | InvocationTargetException e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,67 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.bridge;
|
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.TFGuilds;
|
|
||||||
import me.totalfreedom.tfguilds.util.GLog;
|
|
||||||
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.plugin.Plugin;
|
|
||||||
|
|
||||||
public class TFMBridge
|
|
||||||
{
|
|
||||||
private final TFGuilds plugin;
|
|
||||||
private TotalFreedomMod tfmPlugin;
|
|
||||||
|
|
||||||
public TFMBridge()
|
|
||||||
{
|
|
||||||
this.plugin = TFGuilds.getPlugin();
|
|
||||||
this.tfmPlugin = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public TotalFreedomMod getTFM()
|
|
||||||
{
|
|
||||||
if (tfmPlugin == null)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
final Plugin tfm = plugin.getServer().getPluginManager().getPlugin("TotalFreedomMod");
|
|
||||||
if (tfm != null && tfm instanceof TotalFreedomMod)
|
|
||||||
{
|
|
||||||
tfmPlugin = (TotalFreedomMod)tfm;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return tfmPlugin;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isAdmin(Player player)
|
|
||||||
{
|
|
||||||
if (getTFM() == null)
|
|
||||||
{
|
|
||||||
GLog.warn("TFM not detected on the server. Checking if player is OP...");
|
|
||||||
return player.isOp();
|
|
||||||
}
|
|
||||||
|
|
||||||
return getTFM().al.isAdmin(player);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isAdmin(CommandSender sender)
|
|
||||||
{
|
|
||||||
if (getTFM() == null)
|
|
||||||
{
|
|
||||||
GLog.warn("TFM not detected on the server. Checking if sender is OP...");
|
|
||||||
return sender.isOp();
|
|
||||||
}
|
|
||||||
|
|
||||||
return getTFM().al.isAdmin(sender);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isVanished(Player player)
|
|
||||||
{
|
|
||||||
return getTFM().al.isVanished(player.getName());
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,70 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class AddModSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(IN_GAME_ONLY);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length != 2)
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g addmod <player>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(playerSender);
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player player = Bukkit.getPlayer(args[1]);
|
||||||
|
if (player == null || tfmBridge.isVanished(player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PLAYER_NOT_FOUND);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!guild.getOwner().equals(playerSender.getUniqueId()))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "You must be the guild owner to add moderators!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (playerSender.equals(player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "You are the owner of your guild, you are already a moderator.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!guild.isMember(player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PLAYER_NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (guild.isModerator(player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "That player is already a moderator!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
guild.addModerator(player);
|
||||||
|
sender.sendMessage(PREFIX + "Successfully added " + ChatColor.GOLD + player.getName() + ChatColor.GRAY + " as a moderator.");
|
||||||
|
player.sendMessage(PREFIX + "You are now a guild moderator for your guild!");
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,123 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
|
||||||
import me.totalfreedom.tfguilds.util.GUtil;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
public class AddModSubcommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
if (args.length == 1 || args.length > 3)
|
|
||||||
{
|
|
||||||
sender.sendMessage(tl(PREFIX + "Proper usage: /g addmod <guild <player> | player>"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length == 3)
|
|
||||||
{
|
|
||||||
if (!plugin.bridge.isAdmin(sender))
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Guild guild = Guild.getGuild(args[1]);
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "That guild doesn't exist!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = Bukkit.getPlayer(args[2]);
|
|
||||||
if (player == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(PNF);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!guild.hasMember(player.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "This player is not in the specified guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (guild.getOwner().equals(player.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "No need to make the owner a moderator!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (guild.hasModerator(player.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "This member is already a moderator for this guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
guild.addModerator(player.getName());
|
|
||||||
sender.sendMessage(tl(PREFIX + "Added %s%" + player.getName() + "%p% as a moderator for %s%" + GUtil.colorize(guild.getName()) + "%p%."));
|
|
||||||
guild.broadcast(tl("%s%" + player.getName() + " %p%has been made a moderator of your guild."));
|
|
||||||
guild.save();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sender instanceof ConsoleCommandSender)
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = (Player)sender;
|
|
||||||
Guild guild = Guild.getGuild(player);
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You aren't in a guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!guild.getOwner().equals(player.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You can't change who is a moderator in your guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player n = Bukkit.getPlayer(args[1]);
|
|
||||||
if (n == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(PNF);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (guild.getOwner().equals(n.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "No need to make yourself a moderator!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!guild.hasMember(n.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "This player is not in your guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (guild.hasModerator(n.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "This member is already a moderator for your guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
guild.addModerator(n.getName());
|
|
||||||
sender.sendMessage(tl(PREFIX + "Added %s%" + n.getName() + "%p% as a moderator for your guild."));
|
|
||||||
guild.broadcast(tl("%s%" + n.getName() + " %p%has been made a moderator of your guild."));
|
|
||||||
guild.save();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class ChatSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(IN_GAME_ONLY);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(playerSender);
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length >= 2)
|
||||||
|
{
|
||||||
|
String message = StringUtils.join(args, " ", 1, args.length);
|
||||||
|
guild.chat(playerSender, message, false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUILD_CHAT.contains(playerSender))
|
||||||
|
{
|
||||||
|
GUILD_CHAT.remove(playerSender);
|
||||||
|
sender.sendMessage(PREFIX + "Guild chat " + ChatColor.GOLD + "disabled");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
GUILD_CHAT.add(playerSender);
|
||||||
|
sender.sendMessage(PREFIX + "Guild chat " + ChatColor.GOLD + "enabled");
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,50 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
public class ChatSubcommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
if (sender instanceof ConsoleCommandSender)
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = (Player)sender;
|
|
||||||
Guild guild = Guild.getGuild(player);
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You aren't in a guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length >= 2)
|
|
||||||
{
|
|
||||||
String message = StringUtils.join(args, " ", 1, args.length);
|
|
||||||
guild.chat(player.getName(), message);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (IN_GUILD_CHAT.contains(player))
|
|
||||||
{
|
|
||||||
IN_GUILD_CHAT.remove(player);
|
|
||||||
sender.sendMessage(tl("%p%Guild chat toggled off."));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
IN_GUILD_CHAT.add(player);
|
|
||||||
sender.sendMessage(tl("%p%Guild chat toggled on."));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,70 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import me.totalfreedom.tfguilds.util.GUtil;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class CreateRankSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(IN_GAME_ONLY);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length < 2)
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + " /g createrank <name>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(playerSender);
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!guild.getOwner().equals(playerSender.getUniqueId()))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "Only the guild owner can create ranks for the guild!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String name = StringUtils.join(args, " ", 1, args.length);
|
||||||
|
if (!StringUtils.isAlphanumericSpace(name) || name.isBlank())
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "The rank name must be alphanumeric!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (name.length() > 15)
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "The rank name cannot go over 15 characters limit.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUtil.containsBlacklistedWord(name))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "The guild name contains a blacklisted word.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (guild.hasRank(name))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "That rank already exists!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
guild.createRank(name);
|
||||||
|
sender.sendMessage(PREFIX + "Successfully created a new rank " + ChatColor.GOLD + name);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,87 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
|
||||||
import me.totalfreedom.tfguilds.util.GUtil;
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
public class CreateRankSubcommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
if (sender instanceof ConsoleCommandSender)
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length < 2)
|
|
||||||
{
|
|
||||||
sender.sendMessage(tl(PREFIX + "Proper usage: /g createrank <name>"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = (Player)sender;
|
|
||||||
Guild guild = Guild.getGuild(player);
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You aren't in a guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!guild.getOwner().equals(player.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You can't create ranks for your guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
String rank = StringUtils.join(args, " ", 1, args.length);
|
|
||||||
|
|
||||||
for (String blacklisted : GUtil.BLACKLISTED_NAMES_AND_TAGS)
|
|
||||||
{
|
|
||||||
if (rank.equalsIgnoreCase(blacklisted))
|
|
||||||
{
|
|
||||||
if (!plugin.bridge.isAdmin(player))
|
|
||||||
{
|
|
||||||
player.sendMessage(ChatColor.RED + "You may not use that name.");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Pattern pattern = Pattern.compile("^[A-Za-z0-9? ,_-]+$");
|
|
||||||
Matcher matcher = pattern.matcher(rank);
|
|
||||||
|
|
||||||
if (!matcher.matches())
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "Guild rank names must be alphanumeric.");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (rank.length() > 15)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "Guild rank names may not be over 15 characters.");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (guild.hasRank(rank))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "A rank of that name already exists in the guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
guild.addRank(rank);
|
|
||||||
sender.sendMessage(tl(PREFIX + "Created a new rank named %s%" + rank + "%p% for your guild."));
|
|
||||||
guild.save();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,65 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import me.totalfreedom.tfguilds.util.GUtil;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class CreateSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(IN_GAME_ONLY);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length < 2)
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g create <name>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Guild.isAlreadyMember(playerSender))
|
||||||
|
{
|
||||||
|
sender.sendMessage(IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String name = StringUtils.join(args, " ", 1, args.length);
|
||||||
|
if (!StringUtils.isAlphanumericSpace(name) || name.isBlank())
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "The guild name must be alphanumeric.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (name.length() > 30)
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "The guild name cannot go over 30 characters limit.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Guild.hasGuild(name))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "The guild name is already taken.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUtil.containsBlacklistedWord(name))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "The guild name contains a blacklisted word.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild.create(playerSender, name);
|
||||||
|
sender.sendMessage(PREFIX + "The guild " + ChatColor.GOLD + name + ChatColor.GRAY + " has been created.");
|
||||||
|
Bukkit.broadcastMessage(PREFIX + ChatColor.GOLD + sender.getName() + ChatColor.GRAY + " has created a guild " + ChatColor.GOLD + name);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,84 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
|
||||||
import me.totalfreedom.tfguilds.util.GUtil;
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
public class CreateSubcommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
if (sender instanceof ConsoleCommandSender)
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length < 2)
|
|
||||||
{
|
|
||||||
sender.sendMessage(tl(PREFIX + "Proper usage: /g create <name>"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = (Player)sender;
|
|
||||||
String name = StringUtils.join(args, " ", 1, args.length);
|
|
||||||
String identifier = GUtil.flatten(name);
|
|
||||||
|
|
||||||
if (Guild.isInGuild(player))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You are already in a guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Pattern pattern = Pattern.compile("^[A-Za-z0-9? ,_-]+$");
|
|
||||||
Matcher matcher = pattern.matcher(name);
|
|
||||||
|
|
||||||
if (!matcher.matches())
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "Guild names must be alphanumeric.");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (name.length() > 30)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "Your guild name may not be over 30 characters.");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Guild.guildExists(identifier))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "A guild with a name similar to yours already exists!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (String blacklisted : GUtil.BLACKLISTED_NAMES_AND_TAGS)
|
|
||||||
{
|
|
||||||
if (name.equalsIgnoreCase(blacklisted))
|
|
||||||
{
|
|
||||||
if (!plugin.bridge.isAdmin(player))
|
|
||||||
{
|
|
||||||
player.sendMessage(ChatColor.RED + "You may not use that name.");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Guild.createGuild(identifier, name, player);
|
|
||||||
plugin.players.set(player.getName() + ".tag", true);
|
|
||||||
sender.sendMessage(tl(PREFIX + "Created a guild named \"" + GUtil.colorize(name) + "%p%\"!"));
|
|
||||||
broadcast(GUtil.colorize(tl("%p%" + sender.getName() + " has created guild %p%&l" + name)));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class DeleteRankSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(IN_GAME_ONLY);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length < 2)
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g deleterank <name>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(playerSender);
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "You are not in a guild!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!guild.getOwner().equals(playerSender.getUniqueId()))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "Only the guild owner can delete ranks for the guild!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String name = StringUtils.join(args, " ", 1, args.length);
|
||||||
|
if (!guild.hasRank(name))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "That rank does not exist!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
guild.deleteRank(name);
|
||||||
|
sender.sendMessage(PREFIX + "Successfully deleted a rank " + ChatColor.GOLD + name);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,63 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
public class DeleteRankSubcommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
if (sender instanceof ConsoleCommandSender)
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length < 2)
|
|
||||||
{
|
|
||||||
sender.sendMessage(tl(PREFIX + "Proper usage: /g deleterank <rank>"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = (Player)sender;
|
|
||||||
Guild guild = Guild.getGuild(player);
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You aren't in a guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!guild.getOwner().equals(player.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You can't delete ranks from your guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
String rank = StringUtils.join(args, " ", 1, args.length);
|
|
||||||
if (!guild.hasRank(rank))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "A rank of that name does not exist in the guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
guild.removeRank(rank);
|
|
||||||
|
|
||||||
if (guild.hasDefaultRank() && rank.equals(guild.getDefaultRank()))
|
|
||||||
{
|
|
||||||
guild.setDefaultRank(null);
|
|
||||||
guild.save();
|
|
||||||
}
|
|
||||||
|
|
||||||
sender.sendMessage(tl(PREFIX + "Deleted the rank named %s%" + rank + "%p% in your guild."));
|
|
||||||
guild.save();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class DeleteWarpSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(IN_GAME_ONLY);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length < 2)
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g deletewarp <name>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(playerSender);
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!guild.isModerator(playerSender))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "You must be a guild moderator or owner to create a warp for the guild.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String name = StringUtils.join(args, " ", 1, args.length);
|
||||||
|
if (!guild.hasWarp(name))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "That warp does not exist.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
guild.removeWarp(name);
|
||||||
|
sender.sendMessage(PREFIX + "Successfully removed a warp " + ChatColor.GOLD + name);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,61 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class DisbandSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(IN_GAME_ONLY);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length >= 2)
|
||||||
|
{
|
||||||
|
if (!tfmBridge.isAdmin(sender))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "You do not have permission.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(StringUtils.join(args, " ", 1, args.length));
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "That guild does not exist.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
guild.disband();
|
||||||
|
sender.sendMessage(PREFIX + "The guild " + ChatColor.GOLD + guild.getName() + ChatColor.GRAY + " has been disbanded.");
|
||||||
|
Bukkit.broadcastMessage(PREFIX + ChatColor.GOLD + sender.getName() + ChatColor.GRAY + " has disbanded the guild " + ChatColor.GOLD + guild.getName());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(playerSender);
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!guild.getOwner().equals(playerSender.getUniqueId()))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "You are not the guild owner!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sender.sendMessage(PREFIX + "The guild " + ChatColor.GOLD + guild.getName() + ChatColor.GRAY + " has been disbanded.");
|
||||||
|
Bukkit.broadcastMessage(PREFIX + ChatColor.GOLD + sender.getName() + ChatColor.GRAY + " has disbanded the guild " + ChatColor.GOLD + guild.getName());
|
||||||
|
guild.disband();
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,78 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
|
||||||
import me.totalfreedom.tfguilds.util.GLog;
|
|
||||||
import me.totalfreedom.tfguilds.util.GUtil;
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
public class DisbandSubcommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
if (args.length > 2)
|
|
||||||
{
|
|
||||||
sender.sendMessage(tl(PREFIX + "Proper usage: /g disband [name]"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length == 2)
|
|
||||||
{
|
|
||||||
if (!plugin.bridge.isAdmin(sender))
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Guild guild = Guild.getGuild(GUtil.flatten(StringUtils.join(args, " ", 1, args.length)));
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "That guild doesn't exist!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
String n = guild.getName();
|
|
||||||
GLog.info("Removing guilds.yml data for " + n);
|
|
||||||
guild.disband();
|
|
||||||
GLog.info(sender.getName() + " deleted guild " + guild.getName());
|
|
||||||
sender.sendMessage(tl(PREFIX + "Disbanded \"" + GUtil.colorize(n) + "%p%\"."));
|
|
||||||
broadcast(GUtil.colorize(tl("%p%" + sender.getName() + " has disbanded guild %p%&l" + guild.getName())));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sender instanceof ConsoleCommandSender)
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = (Player)sender;
|
|
||||||
if (!Guild.isInGuild(player))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You aren't in a guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Guild guild = Guild.getGuild(player);
|
|
||||||
if (!guild.getOwner().equals(player.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You are not the owner of this guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
GLog.info("Removing guilds.yml data for " + guild.getName());
|
|
||||||
guild.disband();
|
|
||||||
GLog.info(player.getName() + " deleted guild " + guild.getName());
|
|
||||||
sender.sendMessage(tl(PREFIX + "You have disbanded your guild!"));
|
|
||||||
broadcast(GUtil.colorize(tl("%p%&l" + guild.getName() + "%p% has been disbanded")));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,50 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
public class GuildChatCommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
if (sender instanceof ConsoleCommandSender)
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = (Player)sender;
|
|
||||||
Guild guild = Guild.getGuild(player);
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You aren't in a guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length >= 1)
|
|
||||||
{
|
|
||||||
String message = StringUtils.join(args, " ", 0, args.length);
|
|
||||||
guild.chat(player.getName(), message);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (IN_GUILD_CHAT.contains(player))
|
|
||||||
{
|
|
||||||
IN_GUILD_CHAT.remove(player);
|
|
||||||
sender.sendMessage(tl("%p%Guild chat toggled off."));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
IN_GUILD_CHAT.add(player);
|
|
||||||
sender.sendMessage(tl("%p%Guild chat toggled on."));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,39 +1,40 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class GuildChatSpyCommand extends Common implements CommandExecutor
|
public class GuildChatSpyCommand extends Common implements CommandExecutor
|
||||||
{
|
{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
|
||||||
{
|
{
|
||||||
if (sender instanceof ConsoleCommandSender)
|
if (!(sender instanceof Player))
|
||||||
{
|
{
|
||||||
sender.sendMessage(NO_PERMS);
|
sender.sendMessage(PREFIX + "Console can already view guild chat.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!plugin.bridge.isAdmin(sender))
|
if (!tfmBridge.isAdmin(sender))
|
||||||
{
|
{
|
||||||
sender.sendMessage(NO_PERMS);
|
sender.sendMessage(PREFIX + "You do not have the permission.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player = (Player)sender;
|
Player player = (Player)sender;
|
||||||
if (CHAT_SPY.contains(player))
|
if (GUILD_CHAT_SPY.contains(player))
|
||||||
{
|
{
|
||||||
CHAT_SPY.remove(player);
|
GUILD_CHAT_SPY.remove(player);
|
||||||
sender.sendMessage(tl(PREFIX + "%p%Global guild chat spy disabled."));
|
sender.sendMessage(PREFIX + ChatColor.GOLD + "Disabled " + ChatColor.GRAY + "guild chat spy.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
CHAT_SPY.add(player);
|
GUILD_CHAT_SPY.add(player);
|
||||||
sender.sendMessage(tl(PREFIX + "%p%Global guild chat spy enabled."));
|
sender.sendMessage(PREFIX + ChatColor.GOLD + "Enabled " + ChatColor.GRAY + "guild chat spy.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -4,92 +4,56 @@ import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import me.totalfreedom.tfguilds.Common;
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.TFGuilds;
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
import me.totalfreedom.tfguilds.util.GUtil;
|
import me.totalfreedom.tfguilds.util.GUtil;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.TabCompleter;
|
import org.bukkit.command.TabCompleter;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class GuildCommand extends Common implements CommandExecutor, TabCompleter
|
public class GuildCommand extends Common implements CommandExecutor, TabCompleter
|
||||||
{
|
{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
|
||||||
{
|
{
|
||||||
|
Player playerSender = null;
|
||||||
|
if (sender instanceof Player)
|
||||||
|
{
|
||||||
|
playerSender = (Player)sender;
|
||||||
|
}
|
||||||
|
|
||||||
if (args.length >= 1)
|
if (args.length >= 1)
|
||||||
{
|
{
|
||||||
switch (args[0].toLowerCase())
|
String name = args[0].toLowerCase();
|
||||||
|
SubCommand command = TFGuilds.getPlugin().getSubCommand(name);
|
||||||
|
if (command != null)
|
||||||
{
|
{
|
||||||
case "list":
|
command.execute(sender, playerSender, args);
|
||||||
return new ListSubcommand().onCommand(sender, command, label, args);
|
}
|
||||||
case "help":
|
else
|
||||||
return new HelpSubcommand().onCommand(sender, command, label, args);
|
{
|
||||||
case "create":
|
sender.sendMessage(PREFIX + "Unknown subcommand, do " + ChatColor.GOLD + "/g help" + ChatColor.GRAY + " for help.");
|
||||||
return new CreateSubcommand().onCommand(sender, command, label, args);
|
|
||||||
case "disband":
|
|
||||||
return new DisbandSubcommand().onCommand(sender, command, label, args);
|
|
||||||
case "invite":
|
|
||||||
return new InviteSubcommand().onCommand(sender, command, label, args);
|
|
||||||
case "addmod":
|
|
||||||
return new AddModSubcommand().onCommand(sender, command, label, args);
|
|
||||||
case "removemod":
|
|
||||||
return new RemoveModSubcommand().onCommand(sender, command, label, args);
|
|
||||||
case "setowner":
|
|
||||||
return new SetOwnerSubcommand().onCommand(sender, command, label, args);
|
|
||||||
case "setstate":
|
|
||||||
return new SetStateSubcommand().onCommand(sender, command, label, args);
|
|
||||||
case "kick":
|
|
||||||
return new KickSubcommand().onCommand(sender, command, label, args);
|
|
||||||
case "leave":
|
|
||||||
return new LeaveSubcommand().onCommand(sender, command, label, args);
|
|
||||||
case "tp":
|
|
||||||
return new TPSubcommand().onCommand(sender, command, label, args);
|
|
||||||
case "info":
|
|
||||||
return new InfoSubcommand().onCommand(sender, command, label, args);
|
|
||||||
case "tag":
|
|
||||||
return new TagSubcommand().onCommand(sender, command, label, args);
|
|
||||||
case "chat":
|
|
||||||
return new ChatSubcommand().onCommand(sender, command, label, args);
|
|
||||||
case "join":
|
|
||||||
return new JoinSubcommand().onCommand(sender, command, label, args);
|
|
||||||
case "rename":
|
|
||||||
return new RenameSubcommand().onCommand(sender, command, label, args);
|
|
||||||
case "createrank":
|
|
||||||
return new CreateRankSubcommand().onCommand(sender, command, label, args);
|
|
||||||
case "deleterank":
|
|
||||||
return new DeleteRankSubcommand().onCommand(sender, command, label, args);
|
|
||||||
case "setrank":
|
|
||||||
return new SetRankSubcommand().onCommand(sender, command, label, args);
|
|
||||||
case "motd":
|
|
||||||
return new MOTDSubcommand().onCommand(sender, command, label, args);
|
|
||||||
case "home":
|
|
||||||
return new HomeSubcommand().onCommand(sender, command, label, args);
|
|
||||||
case "roster":
|
|
||||||
return new RosterSubcommand().onCommand(sender, command, label, args);
|
|
||||||
case "setdefaultrank":
|
|
||||||
return new SetDefaultRankSubcommand().onCommand(sender, command, label, args);
|
|
||||||
case "toggletags":
|
|
||||||
return new ToggleTagsSubcommand().onCommand(sender, command, label, args);
|
|
||||||
case "toggletag":
|
|
||||||
return new ToggleTagSubcommand().onCommand(sender, command, label, args);
|
|
||||||
}
|
}
|
||||||
sender.sendMessage(tl(PREFIX + "Unknown command - Run /g help if you need help"));
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return new HelpSubcommand().onCommand(sender, command, label, args);
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args)
|
public List<String> onTabComplete(CommandSender sender, Command cmd, String label, String[] args)
|
||||||
{
|
{
|
||||||
Guild guild = Guild.getGuild(sender);
|
Guild guild = null;
|
||||||
|
if (sender instanceof Player)
|
||||||
|
{
|
||||||
|
guild = Guild.getGuild((Player)sender);
|
||||||
|
}
|
||||||
if (args.length == 1)
|
if (args.length == 1)
|
||||||
{
|
{
|
||||||
return Arrays.asList("addmod", "chat", "createrank", "create",
|
return TFGuilds.getPlugin().getSubCommands();
|
||||||
"deleterank", "disband", "help", "home", "info", "invite",
|
|
||||||
"join", "kick", "leave", "list", "motd", "removemod", "rename",
|
|
||||||
"roster", "setowner", "setrank", "setstate", "tag", "tp", "setdefaultrank",
|
|
||||||
"toggletags", "toggletag");
|
|
||||||
}
|
}
|
||||||
else if (args.length == 2)
|
else if (args.length == 2)
|
||||||
{
|
{
|
||||||
|
@ -97,24 +61,24 @@ public class GuildCommand extends Common implements CommandExecutor, TabComplete
|
||||||
{
|
{
|
||||||
case "home":
|
case "home":
|
||||||
{
|
{
|
||||||
return Arrays.asList("set");
|
return Collections.singletonList("set");
|
||||||
}
|
}
|
||||||
|
|
||||||
case "info":
|
case "info":
|
||||||
case "join":
|
case "join":
|
||||||
case "roster":
|
case "roster":
|
||||||
{
|
{
|
||||||
return Guild.getGuildList();
|
return Guild.getGuildNames();
|
||||||
}
|
}
|
||||||
|
|
||||||
case "toggletag":
|
case "toggletag":
|
||||||
{
|
{
|
||||||
if (!plugin.bridge.isAdmin(sender))
|
if (!tfmBridge.isAdmin(sender))
|
||||||
{
|
{
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
return GUtil.getPlayerList();
|
return GUtil.getPlayerNames();
|
||||||
}
|
}
|
||||||
|
|
||||||
case "motd":
|
case "motd":
|
||||||
|
@ -125,18 +89,18 @@ public class GuildCommand extends Common implements CommandExecutor, TabComplete
|
||||||
|
|
||||||
case "setstate":
|
case "setstate":
|
||||||
{
|
{
|
||||||
return Arrays.asList("OPEN", "INVITE", "CLOSED");
|
return Arrays.asList("OPEN", "CLOSED", "INVITE_ONLY");
|
||||||
}
|
}
|
||||||
|
|
||||||
case "invite":
|
case "invite":
|
||||||
{
|
{
|
||||||
return GUtil.getPlayerList();
|
return GUtil.getPlayerNames();
|
||||||
}
|
}
|
||||||
|
|
||||||
case "deleterank":
|
case "deleterank":
|
||||||
case "setdefaultrank":
|
case "setdefaultrank":
|
||||||
{
|
{
|
||||||
if (guild.getOwner().equals(sender.getName()))
|
if (guild != null && guild.getOwner().equals(((Player)sender).getUniqueId()))
|
||||||
{
|
{
|
||||||
return guild.getRankNames();
|
return guild.getRankNames();
|
||||||
}
|
}
|
||||||
|
@ -144,24 +108,24 @@ public class GuildCommand extends Common implements CommandExecutor, TabComplete
|
||||||
|
|
||||||
case "tp":
|
case "tp":
|
||||||
{
|
{
|
||||||
return guild.getMembers();
|
return guild != null ? guild.getMemberNames() : Collections.emptyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
case "disband":
|
case "disband":
|
||||||
{
|
{
|
||||||
if (!plugin.bridge.isAdmin(sender))
|
if (!tfmBridge.isAdmin(sender))
|
||||||
{
|
{
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
return Guild.getGuildList();
|
return Guild.getGuildNames();
|
||||||
}
|
}
|
||||||
|
|
||||||
case "kick":
|
case "kick":
|
||||||
{
|
{
|
||||||
if (guild.hasModerator(sender.getName()))
|
if (guild != null && guild.isModerator((Player)sender))
|
||||||
{
|
{
|
||||||
return guild.getOnlyMembers();
|
return guild.getMemberOnlyNames();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -169,11 +133,16 @@ public class GuildCommand extends Common implements CommandExecutor, TabComplete
|
||||||
case "addmod":
|
case "addmod":
|
||||||
case "setowner":
|
case "setowner":
|
||||||
{
|
{
|
||||||
if (guild.getOwner().equals(sender.getName()))
|
if (guild != null && guild.getOwner().equals(((Player)sender).getUniqueId()))
|
||||||
{
|
{
|
||||||
return guild.getMembers();
|
return guild.getMemberNames();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.TFGuilds;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class HelpSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "Command List");
|
||||||
|
for (String command : TFGuilds.getPlugin().getSubCommands())
|
||||||
|
{
|
||||||
|
sender.sendMessage(ChatColor.GRAY + " - " + ChatColor.GOLD + command);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,42 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
|
|
||||||
public class HelpSubcommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
sender.sendMessage(tl("%s%[%p%TFGuilds%s%] %p%Command List"));
|
|
||||||
sender.sendMessage(tl("%s% - %p%list"));
|
|
||||||
sender.sendMessage(tl("%s% - %p%help"));
|
|
||||||
sender.sendMessage(tl("%s% - %p%create <name>"));
|
|
||||||
sender.sendMessage(tl("%s% - %p%join <guild>"));
|
|
||||||
sender.sendMessage(tl("%s% - %p%disband [name]"));
|
|
||||||
sender.sendMessage(tl("%s% - %p%invite <player>"));
|
|
||||||
sender.sendMessage(tl("%s% - %p%addmod <guild <player> | player>"));
|
|
||||||
sender.sendMessage(tl("%s% - %p%removemod <guild <name> | name>"));
|
|
||||||
sender.sendMessage(tl("%s% - %p%setowner <guild <player> | player>"));
|
|
||||||
sender.sendMessage(tl("%s% - %p%kick <guild <player> | player>"));
|
|
||||||
sender.sendMessage(tl("%s% - %p%leave"));
|
|
||||||
sender.sendMessage(tl("%s% - %p%tp <player>"));
|
|
||||||
sender.sendMessage(tl("%s% - %p%info [guild | player]"));
|
|
||||||
sender.sendMessage(tl("%s% - %p%tag <set <tag> | clear>"));
|
|
||||||
sender.sendMessage(tl("%s% - %p%rename <name>"));
|
|
||||||
sender.sendMessage(tl("%s% - %p%createrank <name>"));
|
|
||||||
sender.sendMessage(tl("%s% - %p%deleterank <rank>"));
|
|
||||||
sender.sendMessage(tl("%s% - %p%setrank <player> <rank | none>"));
|
|
||||||
sender.sendMessage(tl("%s% - %p%motd <set <motd> | clear>"));
|
|
||||||
sender.sendMessage(tl("%s% - %p%home [set]"));
|
|
||||||
sender.sendMessage(tl("%s% - %p%chat [message]"));
|
|
||||||
sender.sendMessage(tl("%s% - %p%roster [guild | player]"));
|
|
||||||
sender.sendMessage(tl("%s% - %p%setstate <open | invite | closed>"));
|
|
||||||
sender.sendMessage(tl("%s% - %p%setdefaultrank <rank | none>"));
|
|
||||||
sender.sendMessage(tl("%s% - %p%toggletags"));
|
|
||||||
sender.sendMessage(tl("%s% - %p%toggletag [player]"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,56 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class HomeSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(IN_GAME_ONLY);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length > 2)
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g home [set]");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(playerSender);
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length == 2)
|
||||||
|
{
|
||||||
|
if (args[1].equalsIgnoreCase("set"))
|
||||||
|
{
|
||||||
|
if (!guild.isModerator(playerSender))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "Only guild moderators can set guild's home location");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
guild.setHome(playerSender.getLocation());
|
||||||
|
sender.sendMessage(PREFIX + "Successfully set guild's home to your location");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g home [set]");
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
playerSender.teleport(guild.getHome());
|
||||||
|
sender.sendMessage(PREFIX + "Teleported to your guild's home!");
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,65 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
public class HomeSubcommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
if (args.length > 2)
|
|
||||||
{
|
|
||||||
sender.sendMessage(tl(PREFIX + "Proper usage: /g home [set]"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sender instanceof ConsoleCommandSender)
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = (Player)sender;
|
|
||||||
Guild guild = Guild.getGuild(player);
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You aren't in a guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length == 2)
|
|
||||||
{
|
|
||||||
if (args[1].equalsIgnoreCase("set"))
|
|
||||||
{
|
|
||||||
if (!guild.hasModerator(player.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You can't modify your guild's home!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
guild.setHome(player.getLocation());
|
|
||||||
guild.save();
|
|
||||||
sender.sendMessage(tl(PREFIX + "Set your current location as the new home of your guild%p%."));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!guild.hasHome())
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "Your guild doesn't have a home!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
player.teleport(guild.getHome());
|
|
||||||
sender.sendMessage(tl("%p%Teleported you to your guild's home!"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class InfoSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (args.length >= 2)
|
||||||
|
{
|
||||||
|
Player player = Bukkit.getPlayer(args[1]);
|
||||||
|
if (player != null && !tfmBridge.isVanished(player))
|
||||||
|
{
|
||||||
|
Guild guild = Guild.getGuild(player);
|
||||||
|
if (guild != null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(guild.toString());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(StringUtils.join(args, " ", 1, args.length));
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "That guild does not exist.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sender.sendMessage(guild.toString());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g info <name>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(playerSender);
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sender.sendMessage(guild.toString());
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,60 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
|
||||||
import me.totalfreedom.tfguilds.util.GUtil;
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
public class InfoSubcommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
if (args.length >= 2)
|
|
||||||
{
|
|
||||||
Player player = Bukkit.getPlayer(args[1]);
|
|
||||||
if (player != null)
|
|
||||||
{
|
|
||||||
Guild guild = Guild.getGuild(player);
|
|
||||||
if (guild != null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(guild.getInformation());
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Guild guild = Guild.getGuild(GUtil.flatten(StringUtils.join(args, " ", 1, args.length)));
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "That guild doesn't exist!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
sender.sendMessage(guild.getInformation());
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sender instanceof ConsoleCommandSender)
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Guild guild = Guild.getGuild((Player)sender);
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You aren't in a guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
sender.sendMessage(guild.getInformation());
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,100 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.TFGuilds;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
|
public class InviteSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(IN_GAME_ONLY);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length != 2)
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g invite <player>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(playerSender);
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (guild.getState() == Guild.State.CLOSED)
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "The guild is closed.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (guild.getState() == Guild.State.OPEN)
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "The guild is open to public, tell your friends to join by " + ChatColor.GOLD + "/g join " + guild.getName());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player player = Bukkit.getPlayer(args[1]);
|
||||||
|
if (player == null || tfmBridge.isVanished(player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PLAYER_NOT_FOUND);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (player.equals(playerSender))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "You cannot invite yourself.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Guild.getGuild(player) != null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "That player is already in a guild.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (guild.isInvited(player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "That player is already been invited.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
guild.invite(player);
|
||||||
|
player.sendMessage(PREFIX + ChatColor.GOLD + sender.getName() + ChatColor.GRAY + " has sent you an invite to join " + ChatColor.GOLD + guild.getName());
|
||||||
|
player.sendMessage(PREFIX + "Do " + ChatColor.GOLD + "/g join " + guild.getName() + ChatColor.GRAY + " to join!");
|
||||||
|
player.sendMessage(PREFIX + "The invite will expire in 90 seconds.");
|
||||||
|
sender.sendMessage(PREFIX + "The invite has been sent to " + ChatColor.GOLD + player.getName());
|
||||||
|
|
||||||
|
new BukkitRunnable()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
if (!guild.isInvited(player))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
guild.removeInvite(player);
|
||||||
|
|
||||||
|
if (player.isOnline())
|
||||||
|
{
|
||||||
|
player.sendMessage(PREFIX + "The invite to " + ChatColor.GOLD + guild.getName() + ChatColor.GRAY + " has expired!");
|
||||||
|
sender.sendMessage(PREFIX + ChatColor.GOLD + player.getName() + ChatColor.GRAY + " has not accepted your invite.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}.runTaskLater(TFGuilds.getPlugin(), 20 * 90);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,92 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
|
||||||
import me.totalfreedom.tfguilds.guild.GuildState;
|
|
||||||
import me.totalfreedom.tfguilds.util.GUtil;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
|
||||||
|
|
||||||
public class InviteSubcommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
if (sender instanceof ConsoleCommandSender)
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length != 2)
|
|
||||||
{
|
|
||||||
sender.sendMessage(tl(PREFIX + "Proper usage: /g invite <player>"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = (Player)sender;
|
|
||||||
Guild guild = Guild.getGuild(player);
|
|
||||||
Player invitee = Bukkit.getPlayer(args[1]);
|
|
||||||
if (invitee == null || plugin.bridge.isVanished(invitee))
|
|
||||||
{
|
|
||||||
sender.sendMessage(PNF);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Guild.getGuild(invitee) != null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "This player is already in another guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You aren't in a guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (guild.getState() == GuildState.CLOSED)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "The guild is currently closed!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (guild.getState() == GuildState.OPEN)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "The guild is open! Tell your friend to join using \"/g join\"!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (INVITES.containsKey(invitee))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "They have already been invited to your guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
INVITES.put(invitee, guild);
|
|
||||||
invitee.sendMessage(tl("%p%You have been invited to join %s%" + GUtil.colorize(guild.getName()) + "%p% through %s%" + player.getName() + "%p%'s invite!"));
|
|
||||||
invitee.sendMessage(tl("%p%Do %s%/g join " + ChatColor.stripColor(GUtil.colorize(guild.getName())) + "%p% to join!"));
|
|
||||||
invitee.sendMessage(tl("%p%This invite will expire in 90 seconds."));
|
|
||||||
sender.sendMessage(tl("%p%Invite sent!"));
|
|
||||||
new BukkitRunnable()
|
|
||||||
{
|
|
||||||
public void run()
|
|
||||||
{
|
|
||||||
if (!INVITES.containsKey(invitee))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
INVITES.remove(player);
|
|
||||||
invitee.sendMessage(ChatColor.RED + "Invite expired.");
|
|
||||||
sender.sendMessage(ChatColor.RED + "It has been 90 seconds and " + invitee.getName() + " did not accept your invitation.");
|
|
||||||
}
|
|
||||||
}.runTaskLater(plugin, 20 * 90);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,60 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class JoinSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(IN_GAME_ONLY);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length < 2)
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g join <name>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Guild.getGuild(playerSender) != null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(StringUtils.join(args, " ", 1, args.length));
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "That guild does not exist.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (guild.getState() == Guild.State.CLOSED)
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "That guild is currently closed.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (guild.getState() == Guild.State.INVITE_ONLY)
|
||||||
|
{
|
||||||
|
if (!guild.isInvited(playerSender))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "You must be invited to join the guild.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
guild.removeInvite(playerSender);
|
||||||
|
}
|
||||||
|
|
||||||
|
guild.addMember(playerSender);
|
||||||
|
guild.broadcast(PREFIX + ChatColor.GOLD + sender.getName() + ChatColor.GRAY + " has joined the guild.");
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,67 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
|
||||||
import me.totalfreedom.tfguilds.guild.GuildState;
|
|
||||||
import me.totalfreedom.tfguilds.util.GUtil;
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
public class JoinSubcommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
if (sender instanceof ConsoleCommandSender)
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length < 2)
|
|
||||||
{
|
|
||||||
sender.sendMessage(tl(PREFIX + "Proper usage: /g join <guild>"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = (Player)sender;
|
|
||||||
if (Guild.getGuild(player) != null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You are already in a guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Guild guild = Guild.getGuild(GUtil.flatten(StringUtils.join(args, " ", 1, args.length)));
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "That guild doesn't exist!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (guild.getState() == GuildState.CLOSED)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "That guild is currently closed!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (guild.getState() == GuildState.INVITE_ONLY)
|
|
||||||
{
|
|
||||||
if (!INVITES.containsKey(player))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You have not been invited to this guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
INVITES.remove(player);
|
|
||||||
}
|
|
||||||
|
|
||||||
guild.addMember(player.getName());
|
|
||||||
guild.broadcast(tl("%s%" + player.getName() + " %p%has joined the guild."));
|
|
||||||
guild.save();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,70 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class KickSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(IN_GAME_ONLY);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length < 2)
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g kick <player>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(playerSender);
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!guild.isModerator(playerSender))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "Only the guild owner and moderators can kick members.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player player = Bukkit.getPlayer(args[1]);
|
||||||
|
if (player == null || tfmBridge.isVanished(player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PLAYER_NOT_FOUND);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (playerSender.equals(player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "You cannot kick yourself.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (guild.getOwner().equals(player.getUniqueId()) || guild.isModerator(player) && !guild.getOwner().equals(playerSender.getUniqueId()))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "You may not kick the guild owner or moderators from your guild.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!guild.isMember(player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PLAYER_NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
guild.removeMember(player);
|
||||||
|
sender.sendMessage(PREFIX + "Successfully kicked " + ChatColor.GOLD + player.getName() + ChatColor.GRAY + " from your guild.");
|
||||||
|
player.sendMessage(PREFIX + ChatColor.GOLD + sender.getName() + ChatColor.GRAY + " has kicked you from " + ChatColor.GOLD + guild.getName());
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,113 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
|
||||||
import me.totalfreedom.tfguilds.util.GUtil;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
public class KickSubcommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
if (args.length > 3)
|
|
||||||
{
|
|
||||||
sender.sendMessage(tl(PREFIX + "Proper usage: /g kick <guild <player> | player>"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length == 3)
|
|
||||||
{
|
|
||||||
if (!plugin.bridge.isAdmin(sender))
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Guild guild = Guild.getGuild(args[1]);
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "That guild doesn't exist!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = Bukkit.getPlayer(args[2]);
|
|
||||||
if (player == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(PNF);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!guild.hasMember(player.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "This player is not in the specified guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (guild.getOwner().equals(player.getName()) || guild.hasModerator(player.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You cannot kick the owner/moderator(s) of a guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
guild.removeMember(player.getName());
|
|
||||||
sender.sendMessage(tl(PREFIX + "Kicked %s%" + player.getName() + "%p% from %s%" + GUtil.colorize(guild.getName()) + "%p%."));
|
|
||||||
player.sendMessage(tl("%s%You have been kicked from your guild."));
|
|
||||||
guild.broadcast(tl("%s%" + player.getName() + " %p%has been kicked from your guild."));
|
|
||||||
guild.save();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sender instanceof ConsoleCommandSender)
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = (Player)sender;
|
|
||||||
Guild guild = Guild.getGuild(player);
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You aren't in a guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!guild.hasModerator(player.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You can't kick people from your guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player n = Bukkit.getPlayer(args[1]);
|
|
||||||
if (n == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(PNF);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!guild.hasMember(n.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "This player is not in your guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (guild.getOwner().equals(n.getName()) || guild.hasModerator(n.getName()) && !guild.getOwner().equals(player.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You cannot kick the owner/moderator(s) of a guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
guild.removeMember(n.getName());
|
|
||||||
sender.sendMessage(tl(PREFIX + "Kicked %s%" + n.getName() + "%p% from your guild."));
|
|
||||||
n.sendMessage(tl("%s%You have been kicked from your guild."));
|
|
||||||
guild.broadcast(tl("%s%" + n.getName() + " %p%has been kicked from your guild."));
|
|
||||||
guild.save();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class LeaveSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(IN_GAME_ONLY);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(playerSender);
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (guild.getOwner().equals(playerSender.getUniqueId()))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "You may not leave your guild as the owner, please disband the guild instead.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
guild.removeMember(playerSender);
|
||||||
|
guild.broadcast(PREFIX + ChatColor.GOLD + sender.getName() + ChatColor.GRAY + " has left the guild.");
|
||||||
|
sender.sendMessage(PREFIX + "You have left the guild.");
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,50 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
public class LeaveSubcommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
if (args.length > 1)
|
|
||||||
{
|
|
||||||
sender.sendMessage(tl(PREFIX + "Proper usage: /g leave"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sender instanceof ConsoleCommandSender)
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = (Player)sender;
|
|
||||||
Guild guild = Guild.getGuild(player);
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You aren't in a guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (guild.getOwner().equals(player.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You cannot leave as you are the owner!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
guild.removeModerator(player.getName());
|
|
||||||
guild.removeMember(player.getName());
|
|
||||||
guild.save();
|
|
||||||
sender.sendMessage(tl("%p%You left your guild."));
|
|
||||||
guild.broadcast(tl("%s%" + sender.getName() + " %p%left the guild."));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,60 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import me.totalfreedom.tfguilds.util.PaginationList;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class ListSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (args.length > 2)
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g list [page]");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<String> guilds = Guild.getGuildNames();
|
||||||
|
if (guilds.isEmpty())
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "There are no guilds.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
PaginationList<String> pagination = new PaginationList<>(10);
|
||||||
|
pagination.addAll(guilds);
|
||||||
|
int index = 1;
|
||||||
|
|
||||||
|
if (args.length == 2)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
index = Integer.parseInt(args[1]);
|
||||||
|
}
|
||||||
|
catch (NumberFormatException ex)
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + ChatColor.GOLD + args[1] + ChatColor.GRAY + " is not a valid number.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (index < 1 || index > pagination.getPageCount())
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "Please pick a number between 1 and " + pagination.getPageCount());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<String> page = pagination.getPage(index);
|
||||||
|
sender.sendMessage(PREFIX + "Guild list (" + ChatColor.GOLD + index + "/" + pagination.getPageCount() + ChatColor.GRAY + ")");
|
||||||
|
for (String guild : page)
|
||||||
|
{
|
||||||
|
sender.sendMessage(ChatColor.GRAY + " - " + ChatColor.GOLD + guild);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,29 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
|
|
||||||
public class ListSubcommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
List<String> guilds = Guild.getGuildList();
|
|
||||||
|
|
||||||
if (guilds.isEmpty())
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "Nobody has made a guild yet.");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
sender.sendMessage(tl(PREFIX + "%s%Guild List (%p%" + guilds.size() + " total%s%)"));
|
|
||||||
sender.sendMessage(tl("%s%- %p%" + StringUtils.join(guilds, "\n%s%- %p%")));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,68 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
|
||||||
import me.totalfreedom.tfguilds.util.GUtil;
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
public class MOTDSubcommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
if (args.length == 1)
|
|
||||||
{
|
|
||||||
sender.sendMessage(tl(PREFIX + "Proper usage: /g motd <set <motd> | clear>"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sender instanceof ConsoleCommandSender)
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = (Player)sender;
|
|
||||||
Guild guild = Guild.getGuild(player);
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You aren't in a guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!guild.hasModerator(player.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You can't modify your guild's MOTD!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length >= 3)
|
|
||||||
{
|
|
||||||
if (args[1].equalsIgnoreCase("set"))
|
|
||||||
{
|
|
||||||
String motd = StringUtils.join(args, " ", 2, args.length);
|
|
||||||
guild.setMotd(motd);
|
|
||||||
guild.save();
|
|
||||||
sender.sendMessage(tl(PREFIX + "Set %s%" + GUtil.colorize(motd) + "%p% as the new MOTD of your guild%p%."));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!args[1].equalsIgnoreCase("clear"))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
guild.setMotd(null);
|
|
||||||
guild.save();
|
|
||||||
sender.sendMessage(tl(PREFIX + "Cleared your guild's MOTD."));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class ModChatSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(IN_GAME_ONLY);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(playerSender);
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!guild.isModerator(playerSender))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "You must be a guild moderator to set player's rank for your guild.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length == 1)
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g mchat <message>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String message = StringUtils.join(args, " ", 1, args.length);
|
||||||
|
guild.chat(playerSender, message, true);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,66 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import me.totalfreedom.tfguilds.util.GUtil;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class MotdSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(IN_GAME_ONLY);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length == 1)
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g motd <set <message> | clear>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(playerSender);
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!guild.isModerator(playerSender))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "Only guild moderators can modify the guild's MOTD");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length >= 3)
|
||||||
|
{
|
||||||
|
if (args[1].equalsIgnoreCase("set"))
|
||||||
|
{
|
||||||
|
String message = StringUtils.join(args, " ", 2, args.length);
|
||||||
|
guild.setMotd(message);
|
||||||
|
sender.sendMessage(PREFIX + "Set the guild's MOTD to " + ChatColor.GOLD + GUtil.colorize(message));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g motd <set <message> | clear>");
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!args[1].equalsIgnoreCase("clear"))
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g motd <set <message> | clear>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
guild.setMotd(null);
|
||||||
|
sender.sendMessage(PREFIX + "Successfully cleared the guild's MOTD");
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,49 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class NoTagSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!tfmBridge.isAdmin(sender))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "You do not have the permission.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length == 1)
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g edittag <guild>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(StringUtils.join(args, " ", 1, args.length));
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "That guild does not exist.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean enabled = guild.canUseTag();
|
||||||
|
if (enabled)
|
||||||
|
{
|
||||||
|
guild.setUseTag(false);
|
||||||
|
sender.sendMessage(PREFIX + ChatColor.GOLD + "Disabled " + ChatColor.GRAY + "guild tags for " + ChatColor.GOLD + guild.getName());
|
||||||
|
guild.broadcast(PREFIX + ChatColor.GOLD + sender.getName() + ChatColor.GRAY + " has disabled guild tags for your guild.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
guild.setUseTag(true);
|
||||||
|
sender.sendMessage(PREFIX + ChatColor.GOLD + "Enabled " + ChatColor.GRAY + "guild tags for " + ChatColor.GOLD + guild.getName());
|
||||||
|
guild.broadcast(PREFIX + ChatColor.GOLD + sender.getName() + ChatColor.GRAY + " has enabled guild tags for your guild.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,70 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class RemoveModSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(IN_GAME_ONLY);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length != 2)
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g removemod <player>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(playerSender);
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player player = Bukkit.getPlayer(args[1]);
|
||||||
|
if (player == null || tfmBridge.isVanished(player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PLAYER_NOT_FOUND);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!guild.getOwner().equals(playerSender.getUniqueId()))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "You must be the guild owner to remove moderators.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (guild.getOwner().equals(player.getUniqueId()))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "You are the owner of your guild, you cannot remove yourself.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!guild.isMember(player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!guild.isModerator(player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "That player is not a moderator.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
guild.removeModerator(player);
|
||||||
|
sender.sendMessage(PREFIX + "Successfully removed " + ChatColor.GOLD + player.getName() + ChatColor.GRAY + " as a moderator.");
|
||||||
|
player.sendMessage(PREFIX + "You are no longer a guild moderator for your guild.");
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,123 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
|
||||||
import me.totalfreedom.tfguilds.util.GUtil;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
public class RemoveModSubcommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
if (args.length == 1 || args.length > 3)
|
|
||||||
{
|
|
||||||
sender.sendMessage(tl(PREFIX + "Proper usage: /g removemod <guild <name> | name>>"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length == 3)
|
|
||||||
{
|
|
||||||
if (!plugin.bridge.isAdmin(sender))
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Guild guild = Guild.getGuild(args[1]);
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "That guild doesn't exist!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = Bukkit.getPlayer(args[2]);
|
|
||||||
if (player == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(PNF);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (guild.getModerators().contains(sender.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You may not demote yourself.");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!guild.hasMember(player.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "This player is not in the specified guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!guild.hasModerator(player.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "This member is not a moderator for this guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
guild.removeModerator(player.getName());
|
|
||||||
sender.sendMessage(tl(PREFIX + "Removed %s%" + player.getName() + "%p% as a moderator for %s%" + GUtil.colorize(guild.getName()) + "%p%."));
|
|
||||||
guild.broadcast(tl("%s%" + player.getName() + " %p%has been made a member of your guild."));
|
|
||||||
guild.save();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sender instanceof ConsoleCommandSender)
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = (Player)sender;
|
|
||||||
Guild guild = Guild.getGuild(player);
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You aren't in a guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!guild.getOwner().equals(player.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You can't change who is a moderator in your guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player n = Bukkit.getPlayer(args[1]);
|
|
||||||
if (n == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(PNF);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (n == player)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You may not demote yourself.");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!guild.hasMember(n.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "This player is not in your guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!guild.hasModerator(n.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "This member is not a moderator for your guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
guild.removeModerator(n.getName());
|
|
||||||
sender.sendMessage(tl(PREFIX + "Removed %s%" + n.getName() + "%p% as a moderator for your guild."));
|
|
||||||
guild.broadcast(tl("%s%" + n.getName() + " %p%has been made a member of your guild."));
|
|
||||||
guild.save();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,93 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
|
||||||
import me.totalfreedom.tfguilds.util.GUtil;
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
public class RenameSubcommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
if (args.length < 2)
|
|
||||||
{
|
|
||||||
sender.sendMessage(tl(PREFIX + "Proper usage: /g rename <name>"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sender instanceof ConsoleCommandSender)
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = (Player)sender;
|
|
||||||
Guild guild = Guild.getGuild(player);
|
|
||||||
String newName = StringUtils.join(args, " ", 1, args.length);
|
|
||||||
String identifier = GUtil.flatten(newName);
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You aren't in a guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!guild.getOwner().equals(player.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You can't change the name of your guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Pattern pattern = Pattern.compile("^[A-Za-z0-9? ,_-]+$");
|
|
||||||
Matcher matcher = pattern.matcher(newName);
|
|
||||||
|
|
||||||
if (!matcher.matches())
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "Guild names must be alphanumeric.");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (identifier.length() > 30)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "Your new guild name may not be over 30 characters.");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Guild.guildExists(identifier))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "A guild with a name similar to yours already exists!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (String blacklisted : GUtil.BLACKLISTED_NAMES_AND_TAGS)
|
|
||||||
{
|
|
||||||
if (args[0].equalsIgnoreCase(blacklisted))
|
|
||||||
{
|
|
||||||
if (!plugin.bridge.isAdmin(player))
|
|
||||||
{
|
|
||||||
player.sendMessage(ChatColor.RED + "You may not use that name.");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
guild.disband();
|
|
||||||
guild.setIdentifier(GUtil.flatten(newName));
|
|
||||||
guild.setName(newName);
|
|
||||||
guild.updateRankIdentifiers();
|
|
||||||
guild.setTag(GUtil.colorize("&8[&7" + newName + "&8]"));
|
|
||||||
sender.sendMessage(tl(PREFIX + "Set %s%" + GUtil.colorize(newName) + "%p% as the new name of your guild%p%."));
|
|
||||||
guild.broadcast(tl("%p%Your guild has been renamed to " + GUtil.colorize(newName) + "%p%."));
|
|
||||||
guild.save();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class RosterSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
Guild guild;
|
||||||
|
if (args.length >= 2)
|
||||||
|
{
|
||||||
|
Player player = Bukkit.getPlayer(args[1]);
|
||||||
|
if (player != null && !tfmBridge.isVanished(player))
|
||||||
|
{
|
||||||
|
guild = Guild.getGuild(player);
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(PLAYER_NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sender.sendMessage(guild.getRoster());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
guild = Guild.getGuild(StringUtils.join(args, " ", 1, args.length));
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "That guild does not exist.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sender.sendMessage(guild.getRoster());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g roster <name>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
guild = Guild.getGuild(playerSender);
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sender.sendMessage(guild.getRoster());
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,60 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
|
||||||
import me.totalfreedom.tfguilds.util.GUtil;
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
public class RosterSubcommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
if (args.length >= 2)
|
|
||||||
{
|
|
||||||
Player player = Bukkit.getPlayer(args[1]);
|
|
||||||
if (player != null)
|
|
||||||
{
|
|
||||||
Guild guild = Guild.getGuild(player);
|
|
||||||
if (guild != null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(guild.getRoster());
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Guild guild = Guild.getGuild(GUtil.flatten(StringUtils.join(args, " ", 1, args.length)));
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "That guild doesn't exist!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
sender.sendMessage(guild.getRoster());
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sender instanceof ConsoleCommandSender)
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Guild guild = Guild.getGuild((Player)sender);
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You aren't in a guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
sender.sendMessage(guild.getRoster());
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,71 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import me.totalfreedom.tfguilds.util.GUtil;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class SetDefaultRankSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(IN_GAME_ONLY);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length < 2)
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g setdefaultrank <name>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(playerSender);
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!guild.getOwner().equals(playerSender.getUniqueId()))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "Only the guild owner can set default rank.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String name = StringUtils.join(args, " ", 1, args.length);
|
||||||
|
if (name.equalsIgnoreCase("none"))
|
||||||
|
{
|
||||||
|
guild.setDefaultRank(null);
|
||||||
|
sender.sendMessage(PREFIX + "Removed default rank.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!StringUtils.isAlphanumericSpace(name) || name.isBlank())
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "The name must be alphanumeric.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (name.length() > 15)
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "The rank name cannot go over 15 characters limit.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUtil.containsBlacklistedWord(name))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "The guild name contains a blacklisted word.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
guild.setDefaultRank(name);
|
||||||
|
sender.sendMessage(PREFIX + "Successfully set " + ChatColor.GOLD + name + ChatColor.GRAY + " as the default rank of your guild.");
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,64 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
public class SetDefaultRankSubcommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
if (sender instanceof ConsoleCommandSender)
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length == 0)
|
|
||||||
{
|
|
||||||
sender.sendMessage(tl(PREFIX + "Proper usage: /g setdefaultrank <rank | none>"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = (Player)sender;
|
|
||||||
Guild guild = Guild.getGuild(player);
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You aren't in a guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!guild.getOwner().equals(player.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You do not have permissions to manage ranks in your guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
String rank = StringUtils.join(args, " ", 1, args.length);
|
|
||||||
if (rank.equalsIgnoreCase("none"))
|
|
||||||
{
|
|
||||||
guild.setDefaultRank(null);
|
|
||||||
guild.save();
|
|
||||||
sender.sendMessage(tl(PREFIX + "Removed the default guild rank."));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!guild.hasRank(rank))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "A rank of that name does not exist in the guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
guild.setDefaultRank(rank);
|
|
||||||
guild.save();
|
|
||||||
sender.sendMessage(tl(PREFIX + "Set %s%\"" + rank + "\"%p% as the default rank for your guild."));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,65 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class SetOwnerSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(IN_GAME_ONLY);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length < 2)
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g setowner <player>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(playerSender);
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!guild.getOwner().equals(playerSender.getUniqueId()))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "Only the guild owner can set the owner of the guild.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player player = Bukkit.getPlayer(args[1]);
|
||||||
|
if (player == null || tfmBridge.isVanished(player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PLAYER_NOT_FOUND);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (playerSender.equals(player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "You are already the owner of the guild.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!guild.isMember(player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "That player is not in your guild.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
guild.setOwner(player);
|
||||||
|
sender.sendMessage(PREFIX + "Successfully set " + ChatColor.GOLD + player.getName() + ChatColor.GRAY + " as the new owner of the guild.");
|
||||||
|
guild.broadcast(PREFIX + ChatColor.GOLD + sender.getName() + ChatColor.GRAY + " has set " + ChatColor.GOLD + player.getName() + ChatColor.GRAY + " as the new owner of the guild.");
|
||||||
|
player.sendMessage(PREFIX + ChatColor.GOLD + sender.getName() + ChatColor.GRAY + " has set you as the owner of " + ChatColor.GOLD + guild.getName());
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,113 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
|
||||||
import me.totalfreedom.tfguilds.util.GUtil;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
public class SetOwnerSubcommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
if (args.length == 1 || args.length > 3)
|
|
||||||
{
|
|
||||||
sender.sendMessage(tl(PREFIX + "Proper usage: /g setowner <guild <player> | player>"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length == 3)
|
|
||||||
{
|
|
||||||
if (!plugin.bridge.isAdmin(sender))
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Guild guild = Guild.getGuild(args[1]);
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "That guild doesn't exist!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = Bukkit.getPlayer(args[2]);
|
|
||||||
if (player == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(PNF);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (guild.getOwner().contains(player.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "This player is already the owner of that guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!guild.hasMember(player.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "This player is not in the specified guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
guild.removeModerator(player.getName());
|
|
||||||
guild.setOwner(player.getName());
|
|
||||||
sender.sendMessage(tl(PREFIX + "Ownership has been transferred to %s%" + player.getName() + "%p% in %s%" + GUtil.colorize(guild.getName()) + "%p%."));
|
|
||||||
guild.broadcast(tl("%s%" + player.getName() + " %p%has been made the owner of your guild."));
|
|
||||||
guild.save();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sender instanceof ConsoleCommandSender)
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = (Player)sender;
|
|
||||||
Guild guild = Guild.getGuild(player);
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You aren't in a guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!guild.getOwner().equals(player.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You can't change who is the owner of your guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player n = Bukkit.getPlayer(args[1]);
|
|
||||||
if (n == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(PNF);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (n == player)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You are already the owner of your guild.");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!guild.hasMember(n.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "This player is not in your guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
guild.removeModerator(n.getName());
|
|
||||||
guild.setOwner(n.getName());
|
|
||||||
sender.sendMessage(tl(PREFIX + "Ownership has been transferred to %s%" + n.getName() + "%p% in your guild."));
|
|
||||||
guild.broadcast(tl("%s%" + n.getName() + " %p%has been made the owner of your guild."));
|
|
||||||
guild.save();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,66 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class SetRankSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(IN_GAME_ONLY);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length < 3)
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g setrank <player> <name>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(playerSender);
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!guild.isModerator(playerSender))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "You must be a guild moderator to set player's rank for your guild.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player player = Bukkit.getPlayer(args[1]);
|
||||||
|
if (player == null || tfmBridge.isVanished(player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PLAYER_NOT_FOUND);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!guild.isMember(player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PLAYER_NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String name = StringUtils.join(args, " ", 2, args.length);
|
||||||
|
if (!guild.hasRank(name))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "That rank does not exist.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
guild.setPlayerRank(player, name);
|
||||||
|
sender.sendMessage(PREFIX + "Successfully set " + ChatColor.GOLD + player.getName() + ChatColor.GRAY + "'s guild rank to " + ChatColor.GOLD + name);
|
||||||
|
player.sendMessage(PREFIX + ChatColor.GOLD + sender.getName() + ChatColor.GRAY + " has set your guild rank to " + ChatColor.GOLD + name);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,91 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
|
||||||
import me.totalfreedom.tfguilds.guild.GuildRank;
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
public class SetRankSubcommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
if (args.length == 1)
|
|
||||||
{
|
|
||||||
sender.sendMessage(tl(PREFIX + "Proper usage: /g setrank <player> <rank | none>"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sender instanceof ConsoleCommandSender)
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = (Player)sender;
|
|
||||||
Guild guild = Guild.getGuild(player);
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You aren't in a guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!guild.hasModerator(player.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You can't change the ranks of your guild members!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player r = Bukkit.getPlayer(args[1]);
|
|
||||||
if (r == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(PNF);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!guild.hasMember(r.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "This player is not in your guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
String name = StringUtils.join(args, " ", 2, args.length);
|
|
||||||
if (name.toLowerCase().equals("none"))
|
|
||||||
{
|
|
||||||
for (GuildRank gr : guild.getRanks())
|
|
||||||
{
|
|
||||||
gr.getMembers().remove(r.getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
sender.sendMessage(tl(PREFIX + "Removed the rank of %s%" + r.getName() + "%p% in your guild."));
|
|
||||||
r.sendMessage(tl("%p%Your rank in your guild has been removed."));
|
|
||||||
guild.save();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
GuildRank rank = guild.getRank(name);
|
|
||||||
if (rank == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "A rank of that name does not exist in the guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (GuildRank gr : guild.getRanks())
|
|
||||||
{
|
|
||||||
gr.getMembers().remove(r.getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
rank.getMembers().add(r.getName());
|
|
||||||
sender.sendMessage(tl(PREFIX + "Set the rank of %s%" + r.getName() + "%p% in your guild to %s%" + rank.getName() + "%p%."));
|
|
||||||
r.sendMessage(tl("%p%Your rank in your guild has been set to %s%" + rank.getName() + "%p%."));
|
|
||||||
guild.save();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class SetStateSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(IN_GAME_ONLY);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length != 2)
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g setstate <state>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(playerSender);
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!guild.isModerator(playerSender))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "Only guild moderators can change the state.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild.State state = Guild.State.fromString(args[1]);
|
||||||
|
if (state == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + ChatColor.GOLD + args[1] + ChatColor.GRAY + " is not a valid state. Available options: "
|
||||||
|
+ ChatColor.GOLD + StringUtils.join(Guild.State.values(), ", "));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
guild.setState(state);
|
||||||
|
sender.sendMessage(PREFIX + "Successfully set the guild state to " + ChatColor.GOLD + state.name());
|
||||||
|
guild.broadcast(PREFIX + ChatColor.GOLD + sender.getName() + ChatColor.GRAY + " has set the guild state to " + ChatColor.GOLD + state.name());
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,87 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
|
||||||
import me.totalfreedom.tfguilds.guild.GuildState;
|
|
||||||
import me.totalfreedom.tfguilds.util.GUtil;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
public class SetStateSubcommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
if (args.length == 1)
|
|
||||||
{
|
|
||||||
sender.sendMessage(tl(PREFIX + "Proper usage: /g setstate <open | invite | closed>"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length == 3)
|
|
||||||
{
|
|
||||||
if (!plugin.bridge.isAdmin(sender))
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Guild guild = Guild.getGuild(args[1]);
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "That guild doesn't exist!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
GuildState state = GuildState.findState(args[2]);
|
|
||||||
if (state == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "That is not a valid state!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
guild.setState(state);
|
|
||||||
sender.sendMessage(tl(PREFIX + "Set the guild state to %s%" + state.getDisplay().toLowerCase() + "%p% in %s%" + GUtil.colorize(guild.getName()) + "%p%."));
|
|
||||||
guild.broadcast(tl("%p%The guild is now %s%" + state.getDisplay().toLowerCase() + "%p%."));
|
|
||||||
guild.save();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sender instanceof ConsoleCommandSender)
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = (Player)sender;
|
|
||||||
Guild guild = Guild.getGuild(player);
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You aren't in a guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!guild.hasModerator(player.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You can't change the state of the guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
GuildState state = GuildState.findState(args[1]);
|
|
||||||
if (state == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "That is not a valid state!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
guild.setState(state);
|
|
||||||
sender.sendMessage(tl(PREFIX + "Set the guild state to %s%" + state.getDisplay().toLowerCase() + "%p% in your guild."));
|
|
||||||
guild.broadcast(tl("%p%The guild is now %s%" + state.getDisplay().toLowerCase() + "%p%."));
|
|
||||||
guild.save();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class SetWarpSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(IN_GAME_ONLY);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length < 2)
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g setwarp <name>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(playerSender);
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!guild.isModerator(playerSender))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "You must be a guild moderator or owner to create a warp for the guild.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String name = StringUtils.join(args, " ", 1, args.length);
|
||||||
|
if (!StringUtils.isAlphanumericSpace(name))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "The name must be alphanumeric.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (guild.hasWarp(name))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "A warp with that name already exist.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
guild.addWarp(name, playerSender.getLocation());
|
||||||
|
sender.sendMessage(PREFIX + "A warp with the name " + ChatColor.GOLD + name + ChatColor.GRAY + " has been successfully created.");
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public interface SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
void execute(CommandSender sender, Player playerSender, String[] args);
|
||||||
|
}
|
|
@ -1,41 +1,36 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
import me.totalfreedom.tfguilds.Common;
|
||||||
import me.totalfreedom.tfguilds.util.GLog;
|
import me.totalfreedom.tfguilds.TFGuilds;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.OfflinePlayer;
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
public class TFGuildsCommand extends Common implements CommandExecutor
|
public class TFGuildsCommand extends Common implements CommandExecutor
|
||||||
{
|
{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
|
||||||
{
|
{
|
||||||
if (args.length > 1)
|
if (args.length > 1)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args.length == 1)
|
if (args.length == 1 && args[0].equalsIgnoreCase("reload"))
|
||||||
{
|
{
|
||||||
if (args[0].toLowerCase().equals("reload"))
|
if (!tfmBridge.isAdmin(sender))
|
||||||
{
|
{
|
||||||
if (!plugin.bridge.isAdmin(sender))
|
sender.sendMessage(PREFIX + "You do not have the permission.");
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
plugin.config.load();
|
TFGuilds.getPlugin().getConfig().load();
|
||||||
plugin.guilds.load();
|
TFGuilds.getPlugin().getLogger().info("Successfully reload the configuration file.");
|
||||||
plugin.players.load();
|
sender.sendMessage(PREFIX + "The configuration file have been reloaded successfully.");
|
||||||
GLog.info("All configs reloaded successfully");
|
|
||||||
sender.sendMessage(tl(PREFIX + "All configuration files have been reloaded successfully."));
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -44,14 +39,12 @@ public class TFGuildsCommand extends Common implements CommandExecutor
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
sender.sendMessage(tl("%p%TFGuilds %s%is a plugin which allows for players to make their own guilds, providing guild chat, guild teleportation, and more."));
|
sender.sendMessage(ChatColor.AQUA + "TFGuilds " + ChatColor.GRAY + "is a plugin which allows players to create their own guilds, provide guild chat, guild teleportation and many more.");
|
||||||
sender.sendMessage(tl("%s%Version %p%v" + plugin.getDescription().getVersion()));
|
sender.sendMessage(ChatColor.GRAY + "Version " + ChatColor.GOLD + TFGuilds.getPlugin().getDescription().getVersion());
|
||||||
OfflinePlayer sp = Bukkit.getOfflinePlayer(UUID.fromString("d018f2b8-ce60-4672-a45f-e580e0331299"));
|
sender.sendMessage(ChatColor.GRAY + "Originally created by " + ChatColor.GOLD + "speednt " + ChatColor.GRAY + "and " + ChatColor.GOLD + "supernt");
|
||||||
OfflinePlayer su = Bukkit.getOfflinePlayer(UUID.fromString("53b1512e-3481-4702-9f4f-63cb9c8be6a1"));
|
sender.sendMessage(ChatColor.GRAY + "Developed by " + ChatColor.GOLD + "NotInSync");
|
||||||
sender.sendMessage(tl("%s%Developed by %p%" + sp.getName() + " & " + su.getName()));
|
sender.sendMessage(ChatColor.GRAY + "Source code " + ChatColor.GOLD + "https://github.com/AtlasMediaGroup/TFGuilds");
|
||||||
sender.sendMessage(tl("%s%https://github.com/TFPatches/TFGuilds"));
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,56 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
public class TPSubcommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
if (sender instanceof ConsoleCommandSender)
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length != 2)
|
|
||||||
{
|
|
||||||
sender.sendMessage(tl(PREFIX + "Proper usage: /g tp <player>"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = (Player)sender;
|
|
||||||
Guild guild = Guild.getGuild(player);
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You aren't in a guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player to = Bukkit.getPlayer(args[1]);
|
|
||||||
if (to == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(PNF);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!guild.getMembers().contains(to.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "That player is not in your guild.");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
player.teleport(to.getLocation());
|
|
||||||
sender.sendMessage(tl("%p%Teleported to %s%" + to.getName() + "%p%."));
|
|
||||||
to.sendMessage(tl("%s%" + sender.getName() + " %p%has teleported to you."));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,107 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.config.ConfigEntry;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import me.totalfreedom.tfguilds.util.GUtil;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class TagSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(IN_GAME_ONLY);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length < 2)
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g tag <set <tag> | clear [guild]>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(playerSender);
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!guild.getOwner().equals(playerSender.getUniqueId()))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "Only the guild owner can edit the guild's tag.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!guild.canUseTag())
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "You may not edit or clear your guild tag, please contact an admin if this is an error.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length >= 3)
|
||||||
|
{
|
||||||
|
if (args[1].equalsIgnoreCase("set"))
|
||||||
|
{
|
||||||
|
int length = ConfigEntry.GUILD_TAG_MAX_LENGTH.getInteger();
|
||||||
|
String tag = StringUtils.join(args, " ", 2, args.length);
|
||||||
|
tag = tag.replace("%tag%", guild.getName());
|
||||||
|
if (GUtil.removeColorCodes(tag).length() > length && length > 0)
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "The guild tag cannot go over " + length + " characters limit.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GUtil.containsBlacklistedWord(tag) && tfmBridge.isAdmin(sender))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "The guild tag contains forbidden word(s).");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
guild.setTag(tag);
|
||||||
|
sender.sendMessage(PREFIX + "The guild tag has been changed to " + ChatColor.GOLD + GUtil.colorize(tag).replace("%rank%", "Guild Owner"));
|
||||||
|
}
|
||||||
|
else if (args[1].equalsIgnoreCase("clear"))
|
||||||
|
{
|
||||||
|
if (!tfmBridge.isAdmin(sender))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "You do not have the permission to use this command.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
guild = Guild.getGuild(StringUtils.join(args, " ", 2, args.length));
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "That guild does not exist.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
guild.setTag(null);
|
||||||
|
sender.sendMessage(PREFIX + "Successfully cleared the guild tag for " + ChatColor.GOLD + guild.getName());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g tag <set <tag> | clear [guild]>");
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args[1].equalsIgnoreCase("clear"))
|
||||||
|
{
|
||||||
|
guild.setTag(null);
|
||||||
|
sender.sendMessage(PREFIX + "Successfully cleared the guild tag.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g tag <set <tag> | clear [guild]>");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,107 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
|
||||||
import me.totalfreedom.tfguilds.util.GUtil;
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
public class TagSubcommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
if (sender instanceof ConsoleCommandSender)
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length < 2)
|
|
||||||
{
|
|
||||||
sender.sendMessage(tl(PREFIX + "Proper usage: /g tag <set <tag> | clear [guild]>>"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = (Player)sender;
|
|
||||||
Guild guild = Guild.getGuild(player);
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You aren't in a guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!guild.getOwner().equals(player.getName()))
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You can't modify your guild's tag!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length >= 3)
|
|
||||||
{
|
|
||||||
if (args[1].equalsIgnoreCase("set"))
|
|
||||||
{
|
|
||||||
String tag = StringUtils.join(args, " ", 2, args.length);
|
|
||||||
|
|
||||||
tag = tag.replace("%tag%", guild.getName());
|
|
||||||
|
|
||||||
if (tag.length() > 30)
|
|
||||||
{
|
|
||||||
player.sendMessage(ChatColor.RED + "Your guild tag must not be over 30 characters.");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (String blacklisted : GUtil.BLACKLISTED_NAMES_AND_TAGS)
|
|
||||||
{
|
|
||||||
if (tag.equalsIgnoreCase(blacklisted))
|
|
||||||
{
|
|
||||||
if (!plugin.bridge.isAdmin(player))
|
|
||||||
{
|
|
||||||
player.sendMessage(ChatColor.RED + "You may not use that name.");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
guild.setTag(tag);
|
|
||||||
guild.save();
|
|
||||||
sender.sendMessage(tl("%p%Your guild tag has been changed to be \"" + GUtil.colorize(tag).replace("%rank%", "Guild Owner") + "%p%\"."));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args[1].equalsIgnoreCase("clear"))
|
|
||||||
{
|
|
||||||
if (args.length >= 3)
|
|
||||||
{
|
|
||||||
if (!plugin.bridge.isAdmin(sender))
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Guild g = Guild.getGuild(GUtil.flatten(StringUtils.join(args, " ", 2, args.length)));
|
|
||||||
if (g == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "That guild doesn't exist!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
g.setTag(null);
|
|
||||||
g.save();
|
|
||||||
sender.sendMessage(tl("%p%Cleared guild tag for " + g.getName() + "."));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
guild.setTag(null);
|
|
||||||
guild.save();
|
|
||||||
sender.sendMessage(tl("%p%Your guild tag has been cleared."));
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.User;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class ToggleChatSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length > 1)
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g togglechat");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
User user = User.getUserFromPlayer(playerSender);
|
||||||
|
if (user == null)
|
||||||
|
{
|
||||||
|
user = User.create(playerSender);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Must use this otherwise the subcommand will not work properly, unlike ToggleTagSubCommand.java
|
||||||
|
boolean enabled = user.displayChat();
|
||||||
|
if (enabled)
|
||||||
|
{
|
||||||
|
user.setDisplayChat(false);
|
||||||
|
sender.sendMessage(PREFIX + ChatColor.GOLD + "Disabled" + ChatColor.GRAY + " personal guild chat.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
user.setDisplayChat(true);
|
||||||
|
sender.sendMessage(PREFIX + ChatColor.GOLD + "Enabled" + ChatColor.GRAY + " personal guild chat.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.User;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class ToggleTagSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length > 1)
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g toggletag");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
User user = User.getUserFromPlayer(playerSender);
|
||||||
|
if (user == null)
|
||||||
|
{
|
||||||
|
user = User.create(playerSender);
|
||||||
|
}
|
||||||
|
|
||||||
|
user.setDisplayTag(!user.displayTag());
|
||||||
|
sender.sendMessage(PREFIX + ChatColor.GOLD + (user.displayTag() ? "Enabled" : "Disabled") + ChatColor.GRAY + " personal guild tag.");
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,83 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
|
||||||
import me.totalfreedom.tfguilds.util.GUtil;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
public class ToggleTagSubcommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
if (args.length > 2)
|
|
||||||
{
|
|
||||||
sender.sendMessage(tl(PREFIX + "Proper usage: /g toggletag [player]"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (args.length == 2)
|
|
||||||
{
|
|
||||||
if (!plugin.bridge.isAdmin(sender))
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = Bukkit.getPlayer(args[1]);
|
|
||||||
if (player == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(PNF);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean enabled = plugin.players.getBoolean(player.getName() + ".tag");
|
|
||||||
if (!plugin.players.contains(player.getName()) || enabled)
|
|
||||||
{
|
|
||||||
plugin.players.set(player.getName() + ".tag", false);
|
|
||||||
plugin.players.save();
|
|
||||||
sender.sendMessage(tl(PREFIX + "Disabled personal guild tag for " + player.getName() + "."));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
plugin.players.set(player.getName() + ".tag", true);
|
|
||||||
plugin.players.save();
|
|
||||||
sender.sendMessage(tl(PREFIX + "Enabled personal guild tag for " + player.getName() + "."));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sender instanceof ConsoleCommandSender)
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Player player = (Player)sender;
|
|
||||||
Guild guild = Guild.getGuild(player);
|
|
||||||
if (guild == null)
|
|
||||||
{
|
|
||||||
sender.sendMessage(ChatColor.RED + "You aren't in a guild!");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean enabled = plugin.players.getBoolean(player.getName() + ".tag");
|
|
||||||
if (!plugin.players.contains(player.getName()) || enabled)
|
|
||||||
{
|
|
||||||
plugin.players.set(player.getName() + ".tag", false);
|
|
||||||
plugin.players.save();
|
|
||||||
sender.sendMessage(tl(PREFIX + "Disabled personal guild tag."));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
plugin.players.set(player.getName() + ".tag", true);
|
|
||||||
plugin.players.save();
|
|
||||||
sender.sendMessage(tl(PREFIX + "Enabled personal guild tag."));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.config.ConfigEntry;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class ToggleTagsSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!tfmBridge.isAdmin(sender))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "You do not have the permission.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean enabled = ConfigEntry.GUILD_TAGS.getBoolean();
|
||||||
|
if (enabled)
|
||||||
|
{
|
||||||
|
ConfigEntry.GUILD_TAGS.setBoolean(false);
|
||||||
|
sender.sendMessage(PREFIX + ChatColor.GOLD + "Disabled " + ChatColor.GRAY + "global guild tags.");
|
||||||
|
Bukkit.broadcastMessage(PREFIX + ChatColor.GOLD + sender.getName() + ChatColor.GRAY + " has globally disabled guild tags.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ConfigEntry.GUILD_TAGS.setBoolean(true);
|
||||||
|
sender.sendMessage(PREFIX + ChatColor.GOLD + "Enabled " + ChatColor.GRAY + " global guild tags.");
|
||||||
|
Bukkit.broadcastMessage(PREFIX + ChatColor.GOLD + sender.getName() + ChatColor.GRAY + " has globally enabled guild tags.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,36 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.command;
|
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.Common;
|
|
||||||
import me.totalfreedom.tfguilds.config.ConfigEntry;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandExecutor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
|
|
||||||
public class ToggleTagsSubcommand extends Common implements CommandExecutor
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
||||||
{
|
|
||||||
if (!plugin.bridge.isAdmin(sender))
|
|
||||||
{
|
|
||||||
sender.sendMessage(NO_PERMS);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean enabled = ConfigEntry.GUILD_TAGS_ENABLED.getBoolean();
|
|
||||||
if (enabled)
|
|
||||||
{
|
|
||||||
ConfigEntry.GUILD_TAGS_ENABLED.setBoolean(false);
|
|
||||||
sender.sendMessage(tl(PREFIX + "Globally disabled guild tags."));
|
|
||||||
broadcast(ChatColor.RED + sender.getName() + " - Globally disabling guild tags");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ConfigEntry.GUILD_TAGS_ENABLED.setBoolean(true);
|
|
||||||
sender.sendMessage(tl(PREFIX + "Globally enabled guild tags."));
|
|
||||||
broadcast(ChatColor.RED + sender.getName() + " - Globally enabling guild tags");
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class TpSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(IN_GAME_ONLY);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length != 2)
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g tp <player>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(playerSender);
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player player = Bukkit.getPlayer(args[1]);
|
||||||
|
if (player == null || tfmBridge.isVanished(player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PLAYER_NOT_FOUND);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!guild.isMember(player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PLAYER_NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
playerSender.teleport(player);
|
||||||
|
sender.sendMessage(PREFIX + "Successfully teleported to " + ChatColor.GOLD + player.getName());
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,47 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class WarpSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(IN_GAME_ONLY);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length < 2)
|
||||||
|
{
|
||||||
|
sender.sendMessage(USAGE + "/g warp <name>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(playerSender);
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String name = StringUtils.join(args, " ", 1, args.length);
|
||||||
|
if (!guild.hasWarp(name))
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "The guild does not have the warp named " + ChatColor.GOLD + name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Location location = guild.getWarp(name);
|
||||||
|
playerSender.teleport(location);
|
||||||
|
sender.sendMessage(PREFIX + "Successfully warped to " + ChatColor.GOLD + name);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
package me.totalfreedom.tfguilds.command;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.Common;
|
||||||
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class WarpsSubCommand extends Common implements SubCommand
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
||||||
|
{
|
||||||
|
if (!(sender instanceof Player))
|
||||||
|
{
|
||||||
|
sender.sendMessage(IN_GAME_ONLY);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Guild guild = Guild.getGuild(playerSender);
|
||||||
|
if (guild == null)
|
||||||
|
{
|
||||||
|
sender.sendMessage(NOT_IN_GUILD);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (guild.getWarps().isEmpty())
|
||||||
|
{
|
||||||
|
sender.sendMessage(PREFIX + "There are no warps.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sender.sendMessage(PREFIX + "Warps (" + guild.getWarps().size() + "): " + ChatColor.GOLD + StringUtils.join(guild.getWarpNames(), ", "));
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,38 +1,28 @@
|
||||||
package me.totalfreedom.tfguilds.config;
|
package me.totalfreedom.tfguilds.config;
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.TFGuilds;
|
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import me.totalfreedom.tfguilds.TFGuilds;
|
||||||
|
import org.bukkit.configuration.InvalidConfigurationException;
|
||||||
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
|
|
||||||
public class Config extends YamlConfiguration
|
public class Config extends YamlConfiguration
|
||||||
{
|
{
|
||||||
|
|
||||||
private final TFGuilds plugin;
|
private final TFGuilds plugin;
|
||||||
private final File file;
|
private final File file;
|
||||||
|
|
||||||
public Config(String name)
|
public Config(String fileName)
|
||||||
{
|
{
|
||||||
this.plugin = TFGuilds.getPlugin();
|
this.plugin = TFGuilds.getPlugin();
|
||||||
this.file = new File(plugin.getDataFolder(), name);
|
this.file = new File(plugin.getDataFolder(), fileName);
|
||||||
|
|
||||||
if (!file.exists())
|
if (!file.exists())
|
||||||
{
|
{
|
||||||
options().copyDefaults(true);
|
plugin.saveResource(fileName, false);
|
||||||
plugin.saveResource(name, false);
|
|
||||||
}
|
|
||||||
load();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void load()
|
load();
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
super.load(file);
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void save()
|
public void save()
|
||||||
|
@ -41,9 +31,21 @@ public class Config extends YamlConfiguration
|
||||||
{
|
{
|
||||||
super.save(file);
|
super.save(file);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (IOException ex)
|
||||||
{
|
{
|
||||||
e.printStackTrace();
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void load()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
super.load(file);
|
||||||
|
}
|
||||||
|
catch (IOException | InvalidConfigurationException ex)
|
||||||
|
{
|
||||||
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,25 +1,30 @@
|
||||||
package me.totalfreedom.tfguilds.config;
|
package me.totalfreedom.tfguilds.config;
|
||||||
|
|
||||||
import me.totalfreedom.tfguilds.TFGuilds;
|
import me.totalfreedom.tfguilds.TFGuilds;
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
|
|
||||||
public enum ConfigEntry
|
public enum ConfigEntry
|
||||||
{
|
{
|
||||||
SCHEME_PRIMARY("scheme.primary"),
|
|
||||||
SCHEME_SECONDARY("scheme.secondary"),
|
GUILD_CHAT_LOGGING("server.guild_chat_logging"),
|
||||||
// Server
|
GUILD_TAGS("server.guild_tags"),
|
||||||
GUILD_CHAT_LOGGING_ENABLED("server.guild_chat_logging.enabled"),
|
GUILD_TAG_MAX_LENGTH("server.guild_tag_max_length"),
|
||||||
GUILD_TAGS_ENABLED("server.guild_tags.enabled");
|
GLOBAL_TAG_MAX_LENGTH("server.global_tag_max_length"),
|
||||||
|
CONNECTION_TYPE("settings.connection"),
|
||||||
|
MYSQL_HOST("mysql.host"),
|
||||||
|
MYSQL_PORT("mysql.port"),
|
||||||
|
MYSQL_USERNAME("mysql.username"),
|
||||||
|
MYSQL_PASSWORD("mysql.password"),
|
||||||
|
MYSQL_DATABASE("mysql.database");
|
||||||
|
|
||||||
private final String path;
|
private final String path;
|
||||||
|
private final Config config;
|
||||||
|
|
||||||
ConfigEntry(String path)
|
ConfigEntry(String path)
|
||||||
{
|
{
|
||||||
this.path = path;
|
this.path = path;
|
||||||
|
this.config = TFGuilds.getPlugin().getConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final Config config = TFGuilds.getPlugin().config;
|
|
||||||
|
|
||||||
public boolean getBoolean()
|
public boolean getBoolean()
|
||||||
{
|
{
|
||||||
return config.getBoolean(path);
|
return config.getBoolean(path);
|
||||||
|
@ -31,8 +36,13 @@ public enum ConfigEntry
|
||||||
config.save();
|
config.save();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ChatColor getChatColor()
|
public int getInteger()
|
||||||
{
|
{
|
||||||
return ChatColor.valueOf(config.getString(path).toUpperCase());
|
return config.getInt(path);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getString()
|
||||||
|
{
|
||||||
|
return config.getString(path);
|
||||||
}
|
}
|
||||||
}
|
}
|
File diff suppressed because it is too large
Load diff
|
@ -1,46 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.guild;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import lombok.Getter;
|
|
||||||
import lombok.Setter;
|
|
||||||
import me.totalfreedom.tfguilds.TFGuilds;
|
|
||||||
|
|
||||||
public class GuildRank
|
|
||||||
{
|
|
||||||
private static TFGuilds plugin = TFGuilds.getPlugin();
|
|
||||||
|
|
||||||
// owning guild's identifier
|
|
||||||
@Setter
|
|
||||||
private String iguild;
|
|
||||||
|
|
||||||
// identifier
|
|
||||||
@Getter
|
|
||||||
private String identifier;
|
|
||||||
|
|
||||||
// name
|
|
||||||
@Getter
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
// members of this rank
|
|
||||||
@Getter
|
|
||||||
private List<String> members;
|
|
||||||
|
|
||||||
public GuildRank(String iguild, String identifier, String name, List<String> members)
|
|
||||||
{
|
|
||||||
this.identifier = identifier;
|
|
||||||
this.iguild = iguild;
|
|
||||||
this.name = name;
|
|
||||||
this.members = members;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void set()
|
|
||||||
{
|
|
||||||
plugin.guilds.set(iguild + ".ranks." + identifier + ".name", name);
|
|
||||||
plugin.guilds.set(iguild + ".ranks." + identifier + ".members", members);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void delete()
|
|
||||||
{
|
|
||||||
plugin.guilds.set(iguild + ".ranks." + identifier, null);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,41 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.guild;
|
|
||||||
|
|
||||||
import lombok.Getter;
|
|
||||||
|
|
||||||
public enum GuildState
|
|
||||||
{
|
|
||||||
OPEN("Open"),
|
|
||||||
INVITE_ONLY("Invite-only"),
|
|
||||||
CLOSED("Closed");
|
|
||||||
|
|
||||||
@Getter
|
|
||||||
private final String display;
|
|
||||||
|
|
||||||
GuildState(String display)
|
|
||||||
{
|
|
||||||
this.display = display;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static GuildState findState(String string)
|
|
||||||
{
|
|
||||||
if (string == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (string.toLowerCase())
|
|
||||||
{
|
|
||||||
case "open":
|
|
||||||
case "opened":
|
|
||||||
return OPEN;
|
|
||||||
case "invite":
|
|
||||||
case "inviteonly":
|
|
||||||
case "invite_only":
|
|
||||||
return INVITE_ONLY;
|
|
||||||
case "closed":
|
|
||||||
case "close":
|
|
||||||
return CLOSED;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
156
src/main/java/me/totalfreedom/tfguilds/guild/User.java
Normal file
156
src/main/java/me/totalfreedom/tfguilds/guild/User.java
Normal file
|
@ -0,0 +1,156 @@
|
||||||
|
package me.totalfreedom.tfguilds.guild;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.UUID;
|
||||||
|
import me.totalfreedom.tfguilds.TFGuilds;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public class User
|
||||||
|
{
|
||||||
|
|
||||||
|
private static Map<Integer, User> users = new HashMap<>();
|
||||||
|
//
|
||||||
|
private final int id;
|
||||||
|
private final UUID uuid;
|
||||||
|
private boolean tag;
|
||||||
|
private boolean chat;
|
||||||
|
|
||||||
|
public User(int id, UUID uuid, boolean tag, boolean chat)
|
||||||
|
{
|
||||||
|
this.id = id;
|
||||||
|
this.uuid = uuid;
|
||||||
|
this.tag = tag;
|
||||||
|
this.chat = chat;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static User create(Player player)
|
||||||
|
{
|
||||||
|
int id = users.size() + 1;
|
||||||
|
User user = new User(id, player.getUniqueId(), true, true);
|
||||||
|
users.put(id, user);
|
||||||
|
user.save(true);
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void loadAll()
|
||||||
|
{
|
||||||
|
Connection connection = TFGuilds.getPlugin().getSQL().getConnection();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ResultSet set = connection.prepareStatement("SELECT * FROM users").executeQuery();
|
||||||
|
while (set.next())
|
||||||
|
{
|
||||||
|
int id = set.getInt("rowid");
|
||||||
|
UUID uuid = UUID.fromString(set.getString("uuid"));
|
||||||
|
boolean tag = set.getBoolean("tag");
|
||||||
|
boolean chat = set.getBoolean("chat");
|
||||||
|
users.put(id, new User(id, uuid, tag, chat));
|
||||||
|
}
|
||||||
|
TFGuilds.getPlugin().getLogger().info(users.size() + " users loaded!");
|
||||||
|
}
|
||||||
|
catch (SQLException ex)
|
||||||
|
{
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean hasUser(int id)
|
||||||
|
{
|
||||||
|
return users.get(id) != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static User getUserFromId(int id)
|
||||||
|
{
|
||||||
|
if (hasUser(id))
|
||||||
|
{
|
||||||
|
return users.get(id);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static User getUserFromUuid(UUID uuid)
|
||||||
|
{
|
||||||
|
for (User user : users.values())
|
||||||
|
{
|
||||||
|
if (user.getUuid().equals(uuid))
|
||||||
|
{
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static User getUserFromPlayer(Player player)
|
||||||
|
{
|
||||||
|
return getUserFromUuid(player.getUniqueId());
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId()
|
||||||
|
{
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UUID getUuid()
|
||||||
|
{
|
||||||
|
return uuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean displayTag()
|
||||||
|
{
|
||||||
|
return tag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDisplayTag(boolean tag)
|
||||||
|
{
|
||||||
|
this.tag = tag;
|
||||||
|
save();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean displayChat()
|
||||||
|
{
|
||||||
|
return chat;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDisplayChat(boolean chat)
|
||||||
|
{
|
||||||
|
this.chat = chat;
|
||||||
|
save();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void save(boolean newSave)
|
||||||
|
{
|
||||||
|
Connection connection = TFGuilds.getPlugin().getSQL().getConnection();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
PreparedStatement statement = newSave ? connection.prepareStatement("INSERT INTO users (`uuid`, `tag`, `chat`) VALUES (?, ?, ?)")
|
||||||
|
: connection.prepareStatement("UPDATE users SET tag=?, chat=? WHERE rowid=?");
|
||||||
|
if (newSave)
|
||||||
|
{
|
||||||
|
statement.setString(1, uuid.toString());
|
||||||
|
statement.setBoolean(2, tag);
|
||||||
|
statement.setBoolean(3, chat);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
statement.setBoolean(1, tag);
|
||||||
|
statement.setBoolean(2, chat);
|
||||||
|
statement.setInt(3, id);
|
||||||
|
}
|
||||||
|
statement.execute();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void save()
|
||||||
|
{
|
||||||
|
save(false);
|
||||||
|
}
|
||||||
|
}
|
|
@ -4,7 +4,7 @@ import me.totalfreedom.tfguilds.Common;
|
||||||
import me.totalfreedom.tfguilds.TFGuilds;
|
import me.totalfreedom.tfguilds.TFGuilds;
|
||||||
import me.totalfreedom.tfguilds.config.ConfigEntry;
|
import me.totalfreedom.tfguilds.config.ConfigEntry;
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
import me.totalfreedom.tfguilds.guild.GuildRank;
|
import me.totalfreedom.tfguilds.guild.User;
|
||||||
import me.totalfreedom.tfguilds.util.GUtil;
|
import me.totalfreedom.tfguilds.util.GUtil;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -15,71 +15,48 @@ import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||||
|
|
||||||
public class ChatListener implements Listener
|
public class ChatListener implements Listener
|
||||||
{
|
{
|
||||||
private static final TFGuilds plugin = TFGuilds.getPlugin();
|
|
||||||
|
public ChatListener(TFGuilds plugin)
|
||||||
|
{
|
||||||
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST)
|
@EventHandler(priority = EventPriority.HIGHEST)
|
||||||
public void onPlayerChat(AsyncPlayerChatEvent e)
|
public void onPlayerChat(AsyncPlayerChatEvent event)
|
||||||
{
|
{
|
||||||
Player player = e.getPlayer();
|
Player player = event.getPlayer();
|
||||||
Guild guild = Guild.getGuild(player);
|
Guild guild = Guild.getGuild(player);
|
||||||
if (guild == null)
|
if (guild == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Common.IN_GUILD_CHAT.contains(player))
|
if (Common.GUILD_CHAT.contains(player))
|
||||||
{
|
{
|
||||||
guild.chat(player.getName(), e.getMessage());
|
event.setCancelled(true);
|
||||||
e.setCancelled(true);
|
guild.chat(player, event.getMessage(), false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
GuildRank rank = null;
|
if (!ConfigEntry.GUILD_TAGS.getBoolean())
|
||||||
for (GuildRank r : guild.getRanks())
|
|
||||||
{
|
|
||||||
if (r.getMembers().contains(player.getName()))
|
|
||||||
{
|
|
||||||
rank = r;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
String display;
|
|
||||||
if (rank == null)
|
|
||||||
{
|
|
||||||
if (guild.getOwner().equals(player.getName()))
|
|
||||||
{
|
|
||||||
display = "Guild Owner";
|
|
||||||
}
|
|
||||||
else if (guild.hasModerator(player.getName()))
|
|
||||||
{
|
|
||||||
display = "Guild Moderator";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
display = "Guild Member";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
display = rank.getName();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!ConfigEntry.GUILD_TAGS_ENABLED.getBoolean())
|
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (plugin.players.contains(player.getName()))
|
User user = User.getUserFromPlayer(player);
|
||||||
|
if (guild.getTag() != null && user.displayTag())
|
||||||
{
|
{
|
||||||
if (!plugin.players.getBoolean(player.getName() + ".tag"))
|
int maxLength = ConfigEntry.GLOBAL_TAG_MAX_LENGTH.getInteger();
|
||||||
|
String tfmTag = TFGuilds.getPlugin().getTfmBridge().getTag(player);
|
||||||
|
if (tfmTag != null && maxLength > 0)
|
||||||
{
|
{
|
||||||
return;
|
int length = GUtil.removeColorCodes(tfmTag).length() + GUtil.removeColorCodes(guild.getTag()).length();
|
||||||
}
|
if (length > maxLength)
|
||||||
}
|
|
||||||
|
|
||||||
if (guild.hasTag())
|
|
||||||
{
|
{
|
||||||
e.setFormat(GUtil.colorize(guild.getTag().replace("%rank%", display)) + ChatColor.RESET + " " + e.getFormat());
|
TFGuilds.getPlugin().getTfmBridge().clearTag(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
event.setFormat(GUtil.colorize(guild.getTag().replace("%rank%", guild.getPlayerRank(player))) + ChatColor.RESET + " " + event.getFormat());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,27 +1,55 @@
|
||||||
package me.totalfreedom.tfguilds.listener;
|
package me.totalfreedom.tfguilds.listener;
|
||||||
|
|
||||||
|
import me.totalfreedom.tfguilds.TFGuilds;
|
||||||
|
import me.totalfreedom.tfguilds.config.ConfigEntry;
|
||||||
import me.totalfreedom.tfguilds.guild.Guild;
|
import me.totalfreedom.tfguilds.guild.Guild;
|
||||||
|
import me.totalfreedom.tfguilds.guild.User;
|
||||||
import me.totalfreedom.tfguilds.util.GUtil;
|
import me.totalfreedom.tfguilds.util.GUtil;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.PlayerJoinEvent;
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
|
|
||||||
public class JoinListener implements Listener
|
public class JoinListener implements Listener
|
||||||
{
|
{
|
||||||
@EventHandler
|
|
||||||
public void onPlayerJoin(PlayerJoinEvent e)
|
public JoinListener(TFGuilds plugin)
|
||||||
{
|
{
|
||||||
Player player = e.getPlayer();
|
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler(priority = EventPriority.MONITOR)
|
||||||
|
public void onPlayerJoin(PlayerJoinEvent event)
|
||||||
|
{
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
|
||||||
|
User user = User.getUserFromPlayer(player);
|
||||||
|
if (user == null)
|
||||||
|
{
|
||||||
|
User.create(player);
|
||||||
|
}
|
||||||
|
|
||||||
Guild guild = Guild.getGuild(player);
|
Guild guild = Guild.getGuild(player);
|
||||||
if (guild == null)
|
if (guild == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (guild.hasMOTD())
|
if (guild.getMotd() != null && !guild.getMotd().isEmpty())
|
||||||
{
|
{
|
||||||
player.sendMessage(GUtil.colorize(guild.getMotd()));
|
player.sendMessage(guild.getMotd());
|
||||||
|
}
|
||||||
|
|
||||||
|
int maxLength = ConfigEntry.GLOBAL_TAG_MAX_LENGTH.getInteger();
|
||||||
|
String tfmTag = TFGuilds.getPlugin().getTfmBridge().getTag(player);
|
||||||
|
if (user.displayTag() && tfmTag != null && guild.getTag() != null && maxLength > 0)
|
||||||
|
{
|
||||||
|
int length = GUtil.removeColorCodes(tfmTag).length() + GUtil.removeColorCodes(guild.getTag()).length();
|
||||||
|
if (length > maxLength)
|
||||||
|
{
|
||||||
|
TFGuilds.getPlugin().getTfmBridge().clearTag(player);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
116
src/main/java/me/totalfreedom/tfguilds/sql/SQLDatabase.java
Normal file
116
src/main/java/me/totalfreedom/tfguilds/sql/SQLDatabase.java
Normal file
|
@ -0,0 +1,116 @@
|
||||||
|
package me.totalfreedom.tfguilds.sql;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.DriverManager;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import me.totalfreedom.tfguilds.TFGuilds;
|
||||||
|
import me.totalfreedom.tfguilds.config.ConfigEntry;
|
||||||
|
|
||||||
|
public class SQLDatabase
|
||||||
|
{
|
||||||
|
|
||||||
|
private Connection connection;
|
||||||
|
|
||||||
|
public SQLDatabase(TFGuilds plugin)
|
||||||
|
{
|
||||||
|
String password = ConfigEntry.MYSQL_PASSWORD.getString();
|
||||||
|
if (password == null)
|
||||||
|
{
|
||||||
|
password = "";
|
||||||
|
}
|
||||||
|
try
|
||||||
|
{
|
||||||
|
switch (ConfigEntry.CONNECTION_TYPE.getString().toLowerCase())
|
||||||
|
{
|
||||||
|
case "sqlite":
|
||||||
|
connection = DriverManager.getConnection("jdbc:sqlite:" + createDBFile(plugin).getAbsolutePath().replace("%20", " "));
|
||||||
|
break;
|
||||||
|
case "mysql":
|
||||||
|
connection = DriverManager.getConnection(String.format("jdbc:mysql://%s:%d/%s",
|
||||||
|
ConfigEntry.MYSQL_HOST.getString(),
|
||||||
|
ConfigEntry.MYSQL_PORT.getInteger(),
|
||||||
|
ConfigEntry.MYSQL_DATABASE.getString()),
|
||||||
|
ConfigEntry.MYSQL_USERNAME.getString(),
|
||||||
|
password);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
connection = DriverManager.getConnection("jdbc:sqlite:" + createDBFile(plugin).getAbsolutePath().replace("%20", " "));
|
||||||
|
}
|
||||||
|
|
||||||
|
createTables();
|
||||||
|
plugin.getLogger().info("Connection to the MySQL server established!");
|
||||||
|
}
|
||||||
|
catch (SQLException ex)
|
||||||
|
{
|
||||||
|
plugin.getLogger().severe("Could not connect to MySQL server!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Connection getConnection()
|
||||||
|
{
|
||||||
|
return connection;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createTables() throws SQLException
|
||||||
|
{
|
||||||
|
connection.prepareStatement("CREATE TABLE IF NOT EXISTS `users` (" +
|
||||||
|
"`uuid` TEXT," +
|
||||||
|
"`tag` BOOLEAN," +
|
||||||
|
"`chat` BOOLEAN," +
|
||||||
|
"`rowid` INTEGER AUTO_INCREMENT PRIMARY KEY)")
|
||||||
|
.execute();
|
||||||
|
connection.prepareStatement("CREATE TABLE IF NOT EXISTS `warps` (" +
|
||||||
|
"`guild_id` TEXT," +
|
||||||
|
"`name` TEXT," +
|
||||||
|
"`x` DOUBLE," +
|
||||||
|
"`y` DOUBLE," +
|
||||||
|
"`z` DOUBLE," +
|
||||||
|
"`world` TEXT," +
|
||||||
|
"`rowid` INTEGER AUTO_INCREMENT PRIMARY KEY)")
|
||||||
|
.execute();
|
||||||
|
connection.prepareStatement("CREATE TABLE IF NOT EXISTS `guilds` (" +
|
||||||
|
"`id` TEXT," +
|
||||||
|
"`name` TEXT," +
|
||||||
|
"`owner` TEXT," +
|
||||||
|
"`moderators` TEXT," +
|
||||||
|
"`members` TEXT," +
|
||||||
|
"`tag` TEXT," +
|
||||||
|
"`default_rank` TEXT," +
|
||||||
|
"`state` INT," +
|
||||||
|
"`motd` TEXT," +
|
||||||
|
"`x` DOUBLE," +
|
||||||
|
"`y` DOUBLE," +
|
||||||
|
"`z` DOUBLE," +
|
||||||
|
"`world` TEXT," +
|
||||||
|
"`creation` LONG," +
|
||||||
|
"`usetag` BOOLEAN," +
|
||||||
|
"`rowid` INTEGER AUTO_INCREMENT PRIMARY KEY)")
|
||||||
|
.execute();
|
||||||
|
connection.prepareStatement("CREATE TABLE IF NOT EXISTS `ranks` (" +
|
||||||
|
"`guild_id` TEXT," +
|
||||||
|
"`name` TEXT," +
|
||||||
|
"`members` TEXT," +
|
||||||
|
"`rowid` INTEGER AUTO_INCREMENT PRIMARY KEY)")
|
||||||
|
.execute();
|
||||||
|
}
|
||||||
|
|
||||||
|
private File createDBFile(TFGuilds plugin)
|
||||||
|
{
|
||||||
|
File file = new File(plugin.getDataFolder(), "database.db");
|
||||||
|
if (!file.exists())
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
file.createNewFile();
|
||||||
|
plugin.getLogger().info("Creating database.db file");
|
||||||
|
}
|
||||||
|
catch (IOException e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return file;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,30 +0,0 @@
|
||||||
package me.totalfreedom.tfguilds.util;
|
|
||||||
|
|
||||||
import java.util.logging.Level;
|
|
||||||
import java.util.logging.Logger;
|
|
||||||
|
|
||||||
public class GLog
|
|
||||||
{
|
|
||||||
private static final Logger LOGGER = Logger.getLogger("Minecraft");
|
|
||||||
private static final String PREFIX = "[TFGuilds]";
|
|
||||||
|
|
||||||
private static void log(Object o, Level l)
|
|
||||||
{
|
|
||||||
LOGGER.log(l, PREFIX + " " + o);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void info(Object o)
|
|
||||||
{
|
|
||||||
log(o, Level.INFO);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void warn(Object o)
|
|
||||||
{
|
|
||||||
log(o, Level.WARNING);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void severe(Object o)
|
|
||||||
{
|
|
||||||
log(o, Level.SEVERE);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -8,60 +8,78 @@ import java.util.List;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import me.totalfreedom.tfguilds.TFGuilds;
|
import me.totalfreedom.tfguilds.TFGuilds;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class GUtil
|
public class GUtil
|
||||||
{
|
{
|
||||||
private static final SimpleDateFormat STANDARD = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss");
|
|
||||||
private static final TFGuilds plugin = TFGuilds.getPlugin();
|
|
||||||
|
|
||||||
public static String flatten(String s)
|
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("EEE d MMM yyyy HH:mm:ss");
|
||||||
{
|
private static final List<String> BLACKLISTED_NAMES_AND_TAGS = Arrays.asList(
|
||||||
String[] split = s.split(" ");
|
"admin", "owner", "moderator", "developer", "console", "dev", "staff",
|
||||||
for (int i = 0; i < split.length; i++)
|
"mod", "sra", "sta", "sa", "super admin", "telnet admin", "senior admin",
|
||||||
{
|
"trial mod", "trial moderator", "trialmod", "trialmoderator");
|
||||||
split[i] = ChatColor.stripColor(colorize(split[i].toLowerCase()));
|
private static final Pattern CHAT_COLOR_FORMAT = Pattern.compile("&([a-fk-or0-9]|#[a-f0-9]{6})", Pattern.CASE_INSENSITIVE);
|
||||||
}
|
|
||||||
return StringUtils.join(split, "_");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String colorize(String string)
|
public static String colorize(String string)
|
||||||
|
{
|
||||||
|
if (string != null)
|
||||||
{
|
{
|
||||||
Matcher matcher = Pattern.compile("&#[a-f0-9A-F]{6}").matcher(string);
|
Matcher matcher = Pattern.compile("&#[a-f0-9A-F]{6}").matcher(string);
|
||||||
while (matcher.find())
|
while (matcher.find())
|
||||||
{
|
{
|
||||||
String code = matcher.group().replace("&", "");
|
String code = matcher.group().replace("&", "");
|
||||||
string = string.replace("&" + code, net.md_5.bungee.api.ChatColor.of(code) + "");
|
string = string.replace("&" + code, ChatColor.of(code) + "");
|
||||||
}
|
}
|
||||||
|
|
||||||
string = ChatColor.translateAlternateColorCodes('&', string);
|
string = ChatColor.translateAlternateColorCodes('&', string);
|
||||||
|
}
|
||||||
return string;
|
return string;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String format(long time)
|
public static String removeColorCodes(String string)
|
||||||
{
|
{
|
||||||
Date date = new Date(time);
|
/*String s = null;
|
||||||
return STANDARD.format(date);
|
if (string != null)
|
||||||
|
{
|
||||||
|
Matcher matcher = CHAT_COLOR_FORMAT.matcher(string);
|
||||||
|
while (matcher.find())
|
||||||
|
{
|
||||||
|
s = string.replaceAll(matcher.group(), "");
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
return ChatColor.stripColor(string);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<String> BLACKLISTED_NAMES_AND_TAGS = Arrays.asList(
|
public static boolean containsBlacklistedWord(String string)
|
||||||
"admin", "owner", "moderator", "developer", "console", "dev", "staff",
|
|
||||||
"mod", "sra", "sta", "sa", "super admin", "telnet admin", "senior admin",
|
|
||||||
"trial mod", "trial moderator", "trialmod", "trialmoderator");
|
|
||||||
|
|
||||||
public static List<String> getPlayerList()
|
|
||||||
{
|
{
|
||||||
List<String> players = new ArrayList<>();
|
for (String blacklist : BLACKLISTED_NAMES_AND_TAGS)
|
||||||
|
{
|
||||||
|
if (string.contains(blacklist))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<String> getPlayerNames()
|
||||||
|
{
|
||||||
|
List<String> names = new ArrayList<>();
|
||||||
for (Player player : Bukkit.getOnlinePlayers())
|
for (Player player : Bukkit.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
if (!plugin.bridge.isVanished(player))
|
if (!TFGuilds.getPlugin().getTfmBridge().isVanished(player))
|
||||||
{
|
{
|
||||||
players.add(player.getName());
|
names.add(player.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return players;
|
return names;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String formatTime(long time)
|
||||||
|
{
|
||||||
|
Date date = new Date(time);
|
||||||
|
return DATE_FORMAT.format(date);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,73 @@
|
||||||
|
package me.totalfreedom.tfguilds.util;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class PaginationList<T> extends ArrayList<T>
|
||||||
|
{
|
||||||
|
|
||||||
|
private final int epp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines a new Pagination List.
|
||||||
|
*
|
||||||
|
* @param epp Elements per page - how many elements will be included on a page of the list.
|
||||||
|
*/
|
||||||
|
public PaginationList(int epp)
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
this.epp = epp;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines a new Pagination List.
|
||||||
|
*
|
||||||
|
* @param epp Elements per page - how many elements will be included on a page of the list.
|
||||||
|
* @param elements Elements to add to the list immediately.
|
||||||
|
*/
|
||||||
|
@SafeVarargs
|
||||||
|
public PaginationList(int epp, T... elements)
|
||||||
|
{
|
||||||
|
super(Arrays.asList(elements));
|
||||||
|
this.epp = epp;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return The number of pages this list holds.
|
||||||
|
*/
|
||||||
|
public int getPageCount()
|
||||||
|
{
|
||||||
|
return (int)Math.ceil((double)size() / (double)epp);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a page from the list.
|
||||||
|
*
|
||||||
|
* @param page Page you want to access.
|
||||||
|
* @return A sublist of only the elements from that page.
|
||||||
|
*/
|
||||||
|
public List<T> getPage(int page)
|
||||||
|
{
|
||||||
|
if (page < 1 || page > getPageCount())
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
int startIndex = (page - 1) * epp;
|
||||||
|
int endIndex = Math.min(startIndex + (epp - 1), this.size() - 1);
|
||||||
|
return subList(startIndex, endIndex + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*@Override
|
||||||
|
public String toString()
|
||||||
|
{
|
||||||
|
StringBuilder res = new StringBuilder();
|
||||||
|
for (int i = 1; i <= getPageCount(); i++)
|
||||||
|
{
|
||||||
|
res.append("Page ").append(i).append(": ").append("\n");
|
||||||
|
for (T element : getPage(i))
|
||||||
|
res.append(" - ").append(element).append("\n");
|
||||||
|
}
|
||||||
|
return res.toString();
|
||||||
|
}*/
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
package me.totalfreedom.tfguilds.util;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
|
||||||
|
public class ReflectionsHelper
|
||||||
|
{
|
||||||
|
|
||||||
|
public static <T> Object getField(T instance, String name) {
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Field f = instance.getClass().getDeclaredField(name);
|
||||||
|
f.setAccessible(true);
|
||||||
|
return f.get(instance);
|
||||||
|
}
|
||||||
|
catch (NoSuchFieldException | IllegalAccessException e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> Method getMethod(T instance, String name, Class<?>... parameterTypes) {
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Method f = instance.getClass().getDeclaredMethod(name, parameterTypes);
|
||||||
|
f.setAccessible(true);
|
||||||
|
return f;
|
||||||
|
}
|
||||||
|
catch (NoSuchMethodException e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -2,21 +2,30 @@
|
||||||
# TFGuilds - Configuration
|
# TFGuilds - Configuration
|
||||||
#
|
#
|
||||||
|
|
||||||
server:
|
settings:
|
||||||
|
# Types: mysql, sqlite
|
||||||
|
connection: sqlite
|
||||||
|
|
||||||
|
server:
|
||||||
# Log guild chat to console?
|
# Log guild chat to console?
|
||||||
guild_chat_logging:
|
guild_chat_logging: true
|
||||||
enabled: true
|
|
||||||
|
|
||||||
# Enable guild tags globally?
|
# Enable guild tags globally?
|
||||||
guild_tags_enabled:
|
guild_tags_enabled: true
|
||||||
enabled: true
|
|
||||||
|
|
||||||
# Color scheme used for TFGuilds
|
# Maximum guild tag length - 0 for unlimited.
|
||||||
scheme:
|
# Note: chat colors are ignored
|
||||||
|
guild_tag_max_length: 20
|
||||||
|
|
||||||
# Primary color
|
# Maximum overall tag length - requires TotalFreedomMod.
|
||||||
primary: GREEN
|
# If the player's tag and guild tag combined exceeds the maximum overall length, guild tag will take priority. 0 for unlimited.
|
||||||
|
# Note: chat colors are ignored
|
||||||
|
global_tag_max_length: 30
|
||||||
|
|
||||||
# Secondary color
|
# MySQL configuration
|
||||||
secondary: DARK_GREEN
|
mysql:
|
||||||
|
host: localhost
|
||||||
|
port: 3306
|
||||||
|
username: root
|
||||||
|
password: password
|
||||||
|
database: TFGuilds
|
|
@ -1,3 +0,0 @@
|
||||||
#
|
|
||||||
# Guild data for TFGuilds
|
|
||||||
#
|
|
|
@ -1,3 +0,0 @@
|
||||||
#
|
|
||||||
# Player data for TFGuilds
|
|
||||||
#
|
|
|
@ -2,22 +2,20 @@ name: TFGuilds
|
||||||
version: ${project.version}
|
version: ${project.version}
|
||||||
main: me.totalfreedom.tfguilds.TFGuilds
|
main: me.totalfreedom.tfguilds.TFGuilds
|
||||||
api-version: 1.16
|
api-version: 1.16
|
||||||
authors: [speed, super]
|
authors: [ Fleek, super, speed ]
|
||||||
description: A guilds plugin for the TotalFreedom server.
|
description: A guilds plugin for the TotalFreedom server.
|
||||||
|
softdepend:
|
||||||
|
- TotalFreedomMod
|
||||||
commands:
|
commands:
|
||||||
guild:
|
guild:
|
||||||
description: The main command of TFGuilds.
|
description: A command to manage guilds
|
||||||
usage: /<command> <help>
|
usage: /<command> help
|
||||||
aliases: [ g ]
|
aliases: [ g ]
|
||||||
guildchat:
|
|
||||||
description: Talk in chat with your guild.
|
|
||||||
usage: /<command> [message]
|
|
||||||
aliases: [gchat]
|
|
||||||
tfguilds:
|
tfguilds:
|
||||||
description: Information about the plugin.
|
description: An information of TFGuilds plugin
|
||||||
usage: /<command>
|
usage: /<command> [reload]
|
||||||
aliases: [ tfg ]
|
aliases: [ tfg ]
|
||||||
guildchatspy:
|
guildchatspy:
|
||||||
description: An admin only command which allows for spying on guild chat.
|
description: Spy on guild chat
|
||||||
usage: /<command>
|
usage: /<command>
|
||||||
aliases: [ gchatspy, gcs ]
|
aliases: [ gchatspy, gcs ]
|
Loading…
Reference in a new issue