This commit is contained in:
parent
b842704ad9
commit
b2662c4847
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5">
|
||||
<output url="file://$MODULE_DIR$/target/classes" />
|
||||
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<excludeFolder url="file://$MODULE_DIR$/target" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CompilerConfiguration">
|
||||
<annotationProcessing>
|
||||
<profile name="Maven default annotation processors profile" enabled="true">
|
||||
<sourceOutputDir name="target/generated-sources/annotations" />
|
||||
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
|
||||
<outputRelativeToContentRoot value="true" />
|
||||
<module name="Base" />
|
||||
<module name="HCF" />
|
||||
</profile>
|
||||
</annotationProcessing>
|
||||
<bytecodeTargetLevel>
|
||||
<module name="Base" target="1.8" />
|
||||
<module name="HCF" target="1.8" />
|
||||
<module name="RhinoBase" target="1.8" />
|
||||
<module name="RhinoHCF" target="1.8" />
|
||||
<module name="RhinoSourceMEMES" target="1.5" />
|
||||
</bytecodeTargetLevel>
|
||||
</component>
|
||||
</project>
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding" addBOMForNewFiles="with NO BOM" />
|
||||
</project>
|
|
@ -0,0 +1,13 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Maven: cglib:cglib-nodep:2.2.2">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/cglib/cglib-nodep/2.2.2/cglib-nodep-2.2.2.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/cglib/cglib-nodep/2.2.2/cglib-nodep-2.2.2-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/cglib/cglib-nodep/2.2.2/cglib-nodep-2.2.2-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
|
@ -0,0 +1,13 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Maven: com.google.code.gson:gson:2.8.2">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/google/code/gson/gson/2.8.2/gson-2.8.2.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/google/code/gson/gson/2.8.2/gson-2.8.2-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/google/code/gson/gson/2.8.2/gson-2.8.2-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
|
@ -0,0 +1,13 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Maven: com.thoughtworks.proxytoys:proxytoys:1.0">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/thoughtworks/proxytoys/proxytoys/1.0/proxytoys-1.0.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/thoughtworks/proxytoys/proxytoys/1.0/proxytoys-1.0-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/com/thoughtworks/proxytoys/proxytoys/1.0/proxytoys-1.0-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
|
@ -0,0 +1,13 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Maven: org.apache.commons:commons-collections4:4.0">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-collections4/4.0/commons-collections4-4.0.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-collections4/4.0/commons-collections4-4.0-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-collections4/4.0/commons-collections4-4.0-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
|
@ -0,0 +1,13 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Maven: org.apache.commons:commons-lang3:3.8.1">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-lang3/3.8.1/commons-lang3-3.8.1.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-lang3/3.8.1/commons-lang3-3.8.1-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-lang3/3.8.1/commons-lang3-3.8.1-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
|
@ -0,0 +1,13 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Maven: org.apache.commons:commons-pool2:2.4.2">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-pool2/2.4.2/commons-pool2-2.4.2.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-pool2/2.4.2/commons-pool2-2.4.2-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-pool2/2.4.2/commons-pool2-2.4.2-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
|
@ -0,0 +1,13 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Maven: org.mongodb:mongo-java-driver:3.4.0">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/mongodb/mongo-java-driver/3.4.0/mongo-java-driver-3.4.0.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/mongodb/mongo-java-driver/3.4.0/mongo-java-driver-3.4.0-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/mongodb/mongo-java-driver/3.4.0/mongo-java-driver-3.4.0-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
|
@ -0,0 +1,13 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Maven: org.mongodb.morphia:morphia:1.3.2">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/mongodb/morphia/morphia/1.3.2/morphia-1.3.2.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/mongodb/morphia/morphia/1.3.2/morphia-1.3.2-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/mongodb/morphia/morphia/1.3.2/morphia-1.3.2-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
|
@ -0,0 +1,13 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Maven: org.projectlombok:lombok:1.16.18">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/projectlombok/lombok/1.16.18/lombok-1.16.18.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/projectlombok/lombok/1.16.18/lombok-1.16.18-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/org/projectlombok/lombok/1.16.18/lombok-1.16.18-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
|
@ -0,0 +1,13 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Maven: redis.clients:jedis:2.9.0">
|
||||
<CLASSES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/redis/clients/jedis/2.9.0/jedis-2.9.0.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/redis/clients/jedis/2.9.0/jedis-2.9.0-javadoc.jar!/" />
|
||||
</JAVADOC>
|
||||
<SOURCES>
|
||||
<root url="jar://$MAVEN_REPOSITORY$/redis/clients/jedis/2.9.0/jedis-2.9.0-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="MavenProjectsManager">
|
||||
<option name="originalFiles">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/pom.xml" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="false" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
|
||||
</project>
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/Base/Base.iml" filepath="$PROJECT_DIR$/Base/Base.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/HCF/HCF.iml" filepath="$PROJECT_DIR$/HCF/HCF.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/RhinoSourceMEMES.iml" filepath="$PROJECT_DIR$/.idea/RhinoSourceMEMES.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
|
@ -0,0 +1,761 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="b4300698-2d7f-4a60-926e-49dbfdc70dec" name="Default Changelist" comment="" />
|
||||
<ignored path="$PROJECT_DIR$/out/" />
|
||||
<ignored path="$PROJECT_DIR$/target/" />
|
||||
<ignored path="$PROJECT_DIR$/rhinohcf/target/" />
|
||||
<ignored path="$PROJECT_DIR$/rhinobase/target/" />
|
||||
<ignored path="$PROJECT_DIR$/Base/target/" />
|
||||
<ignored path="$PROJECT_DIR$/HCF/target/" />
|
||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="FileEditorManager">
|
||||
<leaf>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/listeners/BorderListener.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="68">
|
||||
<caret line="18" column="13" selection-start-line="18" selection-start-column="13" selection-end-line="18" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/listeners/BookDeenchantListener.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="68">
|
||||
<caret line="29" column="13" selection-start-line="29" selection-start-column="13" selection-end-line="29" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/listeners/AutoSmeltOreListener.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="68">
|
||||
<caret line="13" column="13" selection-start-line="13" selection-start-column="13" selection-end-line="13" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/listeners/fixes/PexCrashFix.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="578">
|
||||
<caret line="42" column="31" selection-start-line="42" selection-start-column="31" selection-end-line="42" selection-end-column="31" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/listeners/PayloadsListener.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="708">
|
||||
<caret line="83" column="5" selection-start-line="83" selection-start-column="5" selection-end-line="83" selection-end-column="5" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/listeners/FactionsCoreListener.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-4624">
|
||||
<caret line="35" column="13" selection-start-line="35" selection-start-column="13" selection-end-line="35" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/tab/PlayerTab.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="357">
|
||||
<caret line="21" selection-start-line="21" selection-end-line="21" />
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/tab/com/bizarrealex/azazel/AzazelTask.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="68">
|
||||
<caret line="17" column="13" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/tab/com/bizarrealex/azazel/Azazel.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="773">
|
||||
<caret line="93" selection-start-line="93" selection-end-line="93" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/tab/com/bizarrealex/azazel/tab/Tab.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-1207">
|
||||
<caret line="20" column="13" selection-start-line="20" selection-start-column="13" selection-end-line="20" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
</leaf>
|
||||
</component>
|
||||
<component name="FindInProjectRecents">
|
||||
<findStrings>
|
||||
<find>Checker</find>
|
||||
<find>LicenseChecker</find>
|
||||
<find>StaffTab</find>
|
||||
</findStrings>
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||
</component>
|
||||
<component name="IdeDocumentHistory">
|
||||
<option name="CHANGED_PATHS">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/rhinohcf/src/main/resources/plugin.yml" />
|
||||
<option value="$PROJECT_DIR$/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/HCF/pom.xml" />
|
||||
<option value="$PROJECT_DIR$/Base/src/main/java/com/sergivb01/base/BasePlugin.java" />
|
||||
<option value="$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/utils/LicenseChecker.java" />
|
||||
<option value="$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/utils/LicenseChecker.kt" />
|
||||
<option value="$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/HCF.java" />
|
||||
<option value="$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/timer/type/PvpClassWarmupTimer.java" />
|
||||
<option value="$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/listeners/PayloadsListener.java" />
|
||||
<option value="$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/tab/com/bizarrealex/azazel/Azazel.java" />
|
||||
<option value="$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/tab/PlayerTab.java" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="MavenImportPreferences">
|
||||
<option name="importingSettings">
|
||||
<MavenImportingSettings>
|
||||
<option name="importAutomatically" value="true" />
|
||||
</MavenImportingSettings>
|
||||
</option>
|
||||
</component>
|
||||
<component name="MavenProjectNavigator">
|
||||
<treeState>
|
||||
<expand>
|
||||
<path>
|
||||
<item name="" type="16c1761:MavenProjectsStructure$RootNode" />
|
||||
<item name="RhinoHCF" type="9519ce18:MavenProjectsStructure$ProjectNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="" type="16c1761:MavenProjectsStructure$RootNode" />
|
||||
<item name="RhinoHCF" type="9519ce18:MavenProjectsStructure$ProjectNode" />
|
||||
<item name="Lifecycle" type="58874e2:MavenProjectsStructure$LifecycleNode" />
|
||||
</path>
|
||||
</expand>
|
||||
<select />
|
||||
</treeState>
|
||||
</component>
|
||||
<component name="ProjectFrameBounds" extendedState="6">
|
||||
<option name="x" value="1912" />
|
||||
<option name="y" value="-8" />
|
||||
<option name="width" value="1936" />
|
||||
<option name="height" value="1056" />
|
||||
</component>
|
||||
<component name="ProjectView">
|
||||
<navigator proportions="" version="1">
|
||||
<foldersAlwaysOnTop value="true" />
|
||||
</navigator>
|
||||
<panes>
|
||||
<pane id="PackagesPane" />
|
||||
<pane id="Scope" />
|
||||
<pane id="ProjectPane">
|
||||
<subPane>
|
||||
<expand>
|
||||
<path>
|
||||
<item name="RhinoSourceMEMES" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="RhinoSourceMEMES" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="RhinoSourceMEMES" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="RhinoSourceMEMES" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="Base" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="RhinoSourceMEMES" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="RhinoSourceMEMES" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="Base" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="src" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="RhinoSourceMEMES" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="RhinoSourceMEMES" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="Base" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="src" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="main" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="RhinoSourceMEMES" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="RhinoSourceMEMES" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="Base" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="src" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="main" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="java" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="RhinoSourceMEMES" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="RhinoSourceMEMES" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="Base" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="src" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="main" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="java" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="sergivb01" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="RhinoSourceMEMES" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="RhinoSourceMEMES" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="Base" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="src" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="main" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="java" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="sergivb01" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="util" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="RhinoSourceMEMES" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="RhinoSourceMEMES" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="HCF" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="RhinoSourceMEMES" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="RhinoSourceMEMES" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="HCF" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="src" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="RhinoSourceMEMES" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="RhinoSourceMEMES" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="HCF" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="src" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="main" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="RhinoSourceMEMES" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="RhinoSourceMEMES" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="HCF" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="src" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="main" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="java" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="RhinoSourceMEMES" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="RhinoSourceMEMES" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="HCF" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="src" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="main" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="java" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="hcf" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
</expand>
|
||||
<select />
|
||||
</subPane>
|
||||
</pane>
|
||||
</panes>
|
||||
</component>
|
||||
<component name="PropertiesComponent">
|
||||
<property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1546974587939" />
|
||||
<property name="project.structure.last.edited" value="Modules" />
|
||||
<property name="project.structure.proportion" value="0.15" />
|
||||
<property name="project.structure.side.proportion" value="0.2" />
|
||||
<property name="settings.editor.selected.configurable" value="preferences.lookFeel" />
|
||||
</component>
|
||||
<component name="RunDashboard">
|
||||
<option name="ruleStates">
|
||||
<list>
|
||||
<RuleState>
|
||||
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
|
||||
</RuleState>
|
||||
<RuleState>
|
||||
<option name="name" value="StatusDashboardGroupingRule" />
|
||||
</RuleState>
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="SvnConfiguration">
|
||||
<configuration />
|
||||
</component>
|
||||
<component name="TaskManager">
|
||||
<task active="true" id="Default" summary="Default task">
|
||||
<changelist id="b4300698-2d7f-4a60-926e-49dbfdc70dec" name="Default Changelist" comment="" />
|
||||
<created>1546277398574</created>
|
||||
<option name="number" value="Default" />
|
||||
<option name="presentableId" value="Default" />
|
||||
<updated>1546277398574</updated>
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TodoView">
|
||||
<todo-panel id="selected-file">
|
||||
<is-autoscroll-to-source value="true" />
|
||||
</todo-panel>
|
||||
<todo-panel id="all">
|
||||
<are-packages-shown value="true" />
|
||||
<is-autoscroll-to-source value="true" />
|
||||
</todo-panel>
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="1912" y="-8" width="1936" height="1056" extended-state="6" />
|
||||
<layout>
|
||||
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.2457356" />
|
||||
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
|
||||
<window_info id="Image Layers" order="2" />
|
||||
<window_info id="Designer" order="3" />
|
||||
<window_info id="UI Designer" order="4" />
|
||||
<window_info id="Capture Tool" order="5" />
|
||||
<window_info id="Favorites" order="6" side_tool="true" />
|
||||
<window_info anchor="bottom" id="Message" order="0" />
|
||||
<window_info anchor="bottom" id="Find" order="1" weight="0.32936078" />
|
||||
<window_info anchor="bottom" id="Run" order="2" weight="0.32936078" />
|
||||
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
|
||||
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
|
||||
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
|
||||
<window_info anchor="bottom" id="TODO" order="6" weight="0.32936078" />
|
||||
<window_info anchor="bottom" id="Event Log" order="7" side_tool="true" weight="0.32936078" />
|
||||
<window_info anchor="bottom" id="Terminal" order="8" weight="0.32936078" />
|
||||
<window_info anchor="bottom" id="Version Control" order="9" weight="0.32936078" />
|
||||
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
|
||||
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
|
||||
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
|
||||
<window_info anchor="right" id="Palette" order="3" />
|
||||
<window_info anchor="right" id="Maven" order="4" visible="true" weight="0.12739871" />
|
||||
<window_info anchor="right" id="Theme Preview" order="5" />
|
||||
<window_info anchor="right" id="Capture Analysis" order="6" />
|
||||
<window_info anchor="right" id="Palette	" order="7" />
|
||||
</layout>
|
||||
</component>
|
||||
<component name="editorHistoryManager">
|
||||
<entry file="file://$PROJECT_DIR$/Base/src/main/java/com/sergivb01/base/LicenseChecker.java" />
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/utils/LicenseChecker.kt" />
|
||||
<entry file="file://$PROJECT_DIR$/Base/src/main/resources/plugin.yml">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state>
|
||||
<caret column="10" lean-forward="true" selection-start-column="10" selection-end-column="10" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/Base/src/main/resources/config.yml">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/Base/src/main/java/com/sergivb01/base/BasePlugin.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-678">
|
||||
<caret line="76" column="32" lean-forward="true" selection-start-line="76" selection-start-column="32" selection-end-line="76" selection-end-column="32" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/resources/world-config.yml">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/resources/plugin.yml">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/resources/player-data.yml">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/resources/config.yml">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-4293" />
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/tab/com/bizarrealex/azazel/tab/TabAdapter.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="68">
|
||||
<caret line="4" column="17" selection-start-line="4" selection-start-column="17" selection-end-line="4" selection-end-column="17" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/tab/com/bizarrealex/azazel/tab/TabTemplate.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="68">
|
||||
<caret line="7" column="13" selection-start-line="7" selection-start-column="13" selection-end-line="7" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/visualise/ProtocolLibHook.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="68">
|
||||
<caret line="22" column="13" selection-start-line="22" selection-start-column="13" selection-end-line="22" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/tab/TUtils.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="357">
|
||||
<caret line="36" column="9" selection-start-line="36" selection-start-column="9" selection-end-line="36" selection-end-column="9" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/timer/KEYALLTimer.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="68">
|
||||
<caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/timer/KEYSALETimer.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="68">
|
||||
<caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/timer/SOTWTimer.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="68">
|
||||
<caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/timer/SALETimer.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="68">
|
||||
<caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/timer/PlayerTimer.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="17">
|
||||
<caret line="1" selection-start-line="1" selection-end-line="1" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/utils/ClientAPI.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="170">
|
||||
<caret line="14" column="5" selection-start-line="14" selection-start-column="5" selection-end-line="14" selection-end-column="5" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/utils/Cooldowns.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="68">
|
||||
<caret line="7" column="13" selection-start-line="7" selection-start-column="13" selection-end-line="7" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/utils/Crowbar.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="68">
|
||||
<caret line="13" column="13" selection-start-line="13" selection-start-column="13" selection-end-line="13" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/utils/UUIDFetcher.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="1377">
|
||||
<caret line="94" column="5" selection-start-line="94" selection-start-column="5" selection-end-line="94" selection-end-column="5" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/classes/PvpClassManager.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="68">
|
||||
<caret line="20" column="13" selection-start-line="20" selection-start-column="13" selection-end-line="20" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/classes/PvpClass.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="68">
|
||||
<caret line="11" column="22" selection-start-line="11" selection-start-column="22" selection-end-line="11" selection-end-column="22" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/utils/DateTimeFormats.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="68">
|
||||
<caret line="9" column="19" selection-start-line="9" selection-start-column="19" selection-end-line="9" selection-end-column="19" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pom.xml">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="255">
|
||||
<caret line="15" column="10" selection-start-line="15" selection-start-column="10" selection-end-line="15" selection-end-column="10" />
|
||||
</state>
|
||||
</provider>
|
||||
<provider editor-type-id="MavenHelperPluginDependencyAnalyzer" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/timer/type/PvpProtectionTimer.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="17">
|
||||
<caret line="49" column="13" selection-start-line="49" selection-start-column="13" selection-end-line="49" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/timer/type/PvpClassWarmupTimer.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="402">
|
||||
<caret line="116" column="32" selection-start-line="116" selection-start-column="32" selection-end-line="116" selection-end-column="32" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/commands/crate/type/KothKey.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="136">
|
||||
<caret line="15" column="89" selection-start-line="15" selection-start-column="89" selection-end-line="15" selection-end-column="89" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/HCF.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="85">
|
||||
<caret line="86" column="23" selection-start-line="86" selection-start-column="23" selection-end-line="86" selection-end-column="23" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/scoreboard/provider/TimerSidebarProvider.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="402">
|
||||
<caret line="250" lean-forward="true" selection-start-line="250" selection-end-line="250" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/scoreboard/BufferedObjective.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="68">
|
||||
<caret line="15" column="13" selection-start-line="15" selection-start-column="13" selection-end-line="15" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/scoreboard/PlayerBoard.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="68">
|
||||
<caret line="20" column="13" selection-start-line="20" selection-start-column="13" selection-end-line="20" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/payloads/types/StatusPayload.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="85">
|
||||
<caret line="10" column="13" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/payloads/types/ServerSwitchPayload.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="85">
|
||||
<caret line="10" column="13" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/payloads/types/RequestPayload.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="85">
|
||||
<caret line="10" column="13" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/payloads/types/ReportPayload.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="85">
|
||||
<caret line="10" column="13" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/payloads/types/Payload.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="68">
|
||||
<caret line="12" column="22" selection-start-line="12" selection-start-column="22" selection-end-line="12" selection-end-column="22" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/listeners/CoreListener.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="25">
|
||||
<caret line="29" column="87" lean-forward="true" selection-start-line="29" selection-start-column="87" selection-end-line="29" selection-end-column="87" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/listeners/BottledExpListener.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="68">
|
||||
<caret line="28" column="13" selection-start-line="28" selection-start-column="13" selection-end-line="28" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/listeners/BorderListener.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="68">
|
||||
<caret line="18" column="13" selection-start-line="18" selection-start-column="13" selection-end-line="18" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/listeners/BookDeenchantListener.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="68">
|
||||
<caret line="29" column="13" selection-start-line="29" selection-start-column="13" selection-end-line="29" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/listeners/AutoSmeltOreListener.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="68">
|
||||
<caret line="13" column="13" selection-start-line="13" selection-start-column="13" selection-end-line="13" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/listeners/fixes/PexCrashFix.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="578">
|
||||
<caret line="42" column="31" selection-start-line="42" selection-start-column="31" selection-end-line="42" selection-end-column="31" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/listeners/PayloadsListener.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="708">
|
||||
<caret line="83" column="5" selection-start-line="83" selection-start-column="5" selection-end-line="83" selection-end-column="5" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/listeners/FactionsCoreListener.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-4624">
|
||||
<caret line="35" column="13" selection-start-line="35" selection-start-column="13" selection-end-line="35" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/tab/com/bizarrealex/azazel/AzazelTask.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="68">
|
||||
<caret line="17" column="13" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/tab/tabs/StaffTab.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="425">
|
||||
<caret line="27" selection-start-line="27" selection-end-line="38" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/tab/com/bizarrealex/azazel/Azazel.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="773">
|
||||
<caret line="93" selection-start-line="93" selection-end-line="93" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/tab/com/bizarrealex/azazel/tab/Tab.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-1207">
|
||||
<caret line="20" column="13" selection-start-line="20" selection-start-column="13" selection-end-line="20" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/HCF/src/main/java/com/sergivb01/hcf/tab/PlayerTab.java">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="357">
|
||||
<caret line="21" selection-start-line="21" selection-end-line="21" />
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</component>
|
||||
<component name="masterDetails">
|
||||
<states>
|
||||
<state key="ArtifactsStructureConfigurable.UI">
|
||||
<settings>
|
||||
<artifact-editor />
|
||||
<splitter-proportions>
|
||||
<option name="proportions">
|
||||
<list>
|
||||
<option value="0.2" />
|
||||
</list>
|
||||
</option>
|
||||
</splitter-proportions>
|
||||
</settings>
|
||||
</state>
|
||||
<state key="FacetStructureConfigurable.UI">
|
||||
<settings>
|
||||
<last-edited>No facets are configured</last-edited>
|
||||
<splitter-proportions>
|
||||
<option name="proportions">
|
||||
<list>
|
||||
<option value="0.2" />
|
||||
</list>
|
||||
</option>
|
||||
</splitter-proportions>
|
||||
</settings>
|
||||
</state>
|
||||
<state key="GlobalLibrariesConfigurable.UI">
|
||||
<settings>
|
||||
<splitter-proportions>
|
||||
<option name="proportions">
|
||||
<list>
|
||||
<option value="0.2" />
|
||||
</list>
|
||||
</option>
|
||||
</splitter-proportions>
|
||||
</settings>
|
||||
</state>
|
||||
<state key="JdkListConfigurable.UI">
|
||||
<settings>
|
||||
<last-edited>1.8</last-edited>
|
||||
<splitter-proportions>
|
||||
<option name="proportions">
|
||||
<list>
|
||||
<option value="0.2" />
|
||||
</list>
|
||||
</option>
|
||||
</splitter-proportions>
|
||||
</settings>
|
||||
</state>
|
||||
<state key="ModuleStructureConfigurable.UI">
|
||||
<settings>
|
||||
<last-edited>HCF</last-edited>
|
||||
<splitter-proportions>
|
||||
<option name="proportions">
|
||||
<list>
|
||||
<option value="0.2" />
|
||||
</list>
|
||||
</option>
|
||||
</splitter-proportions>
|
||||
</settings>
|
||||
</state>
|
||||
<state key="ProjectJDKs.UI">
|
||||
<settings>
|
||||
<last-edited>1.8</last-edited>
|
||||
<splitter-proportions>
|
||||
<option name="proportions">
|
||||
<list>
|
||||
<option value="0.2" />
|
||||
</list>
|
||||
</option>
|
||||
</splitter-proportions>
|
||||
</settings>
|
||||
</state>
|
||||
<state key="ProjectLibrariesConfigurable.UI">
|
||||
<settings>
|
||||
<last-edited>Maven: cglib:cglib-nodep:2.2.2</last-edited>
|
||||
<splitter-proportions>
|
||||
<option name="proportions">
|
||||
<list>
|
||||
<option value="0.2" />
|
||||
</list>
|
||||
</option>
|
||||
</splitter-proportions>
|
||||
</settings>
|
||||
</state>
|
||||
</states>
|
||||
</component>
|
||||
</project>
|
|
@ -0,0 +1,86 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
||||
<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="module-library">
|
||||
<library name="Maven: org.paperspigot:API:1.7.10-R0.1-SNAPSHOT">
|
||||
<CLASSES>
|
||||
<root url="jar://$MODULE_DIR$/lib/SAPI.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</orderEntry>
|
||||
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.16.18" level="project" />
|
||||
<orderEntry type="library" name="Maven: redis.clients:jedis:2.9.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.4.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.mongodb.morphia:morphia:1.3.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.mongodb:mongo-java-driver:3.4.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: cglib:cglib-nodep:2.2.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.thoughtworks.proxytoys:proxytoys:1.0" level="project" />
|
||||
<orderEntry type="module-library">
|
||||
<library name="Maven: com.sevenxsix:PL:1.7.10-R0.1-SNAPSHOT">
|
||||
<CLASSES>
|
||||
<root url="jar://$MODULE_DIR$/lib/ProtocolLib.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</orderEntry>
|
||||
<orderEntry type="module-library">
|
||||
<library name="Maven: com.sevenxsix:LB:1.7.10-R0.1-SNAPSHOT">
|
||||
<CLASSES>
|
||||
<root url="jar://$MODULE_DIR$/lib/LiteBans.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</orderEntry>
|
||||
<orderEntry type="module-library">
|
||||
<library name="Maven: com.sevenxsix:Worldedit:1.7.10-R0.1-SNAPSHOT">
|
||||
<CLASSES>
|
||||
<root url="jar://$MODULE_DIR$/lib/WorldEdit-6.2.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</orderEntry>
|
||||
<orderEntry type="module-library">
|
||||
<library name="Maven: com.sevenxsix:Vault:1.7.10-R0.1-SNAPSHOT">
|
||||
<CLASSES>
|
||||
<root url="jar://$MODULE_DIR$/lib/Vault.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</orderEntry>
|
||||
<orderEntry type="module-library">
|
||||
<library name="Maven: me.joeleoli.nucleus:Nucleus:1.0-SNAPSHOT">
|
||||
<CLASSES>
|
||||
<root url="jar://$MODULE_DIR$/lib/nucleusapi.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</orderEntry>
|
||||
<orderEntry type="module-library">
|
||||
<library name="Maven: org.paperspigot:Spigot:1.7.10-R0.1-SNAPSHOT">
|
||||
<CLASSES>
|
||||
<root url="jar://$MODULE_DIR$/lib/Spigot.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</orderEntry>
|
||||
</component>
|
||||
</module>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,131 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>RhinoHCF</artifactId>
|
||||
<groupId>com.sergivb01.rhinohcf</groupId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>Base</artifactId>
|
||||
<build>
|
||||
<defaultGoal>clean install</defaultGoal>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<version>3.6.1</version>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<configuration>
|
||||
<source>1.8</source>
|
||||
<target>1.8</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-shade-plugin</artifactId>
|
||||
<version>3.0.0</version>
|
||||
|
||||
<configuration>
|
||||
<createDependencyReducedPom>false</createDependencyReducedPom>
|
||||
<shadedArtifactAttached>false</shadedArtifactAttached>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>shade</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.paperspigot</groupId>
|
||||
<artifactId>API</artifactId>
|
||||
<version>1.7.10-R0.1-SNAPSHOT</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${project.basedir}/lib/SAPI.jar</systemPath>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>1.16.18</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>redis.clients</groupId>
|
||||
<artifactId>jedis</artifactId>
|
||||
<version>2.9.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.code.gson</groupId>
|
||||
<artifactId>gson</artifactId>
|
||||
<version>2.8.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-collections4</artifactId>
|
||||
<version>4.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mongodb.morphia</groupId>
|
||||
<artifactId>morphia</artifactId>
|
||||
<version>1.3.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.sevenxsix</groupId>
|
||||
<artifactId>PL</artifactId>
|
||||
<version>1.7.10-R0.1-SNAPSHOT</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${project.basedir}/lib/ProtocolLib.jar</systemPath>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.sevenxsix</groupId>
|
||||
<artifactId>LB</artifactId>
|
||||
<version>1.7.10-R0.1-SNAPSHOT</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${project.basedir}/lib/LiteBans.jar</systemPath>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.sevenxsix</groupId>
|
||||
<artifactId>Worldedit</artifactId>
|
||||
<version>1.7.10-R0.1-SNAPSHOT</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${project.basedir}/lib/WorldEdit-6.2.jar</systemPath>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.sevenxsix</groupId>
|
||||
<artifactId>Vault</artifactId>
|
||||
<version>1.7.10-R0.1-SNAPSHOT</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${project.basedir}/lib/Vault.jar</systemPath>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>me.joeleoli.nucleus</groupId>
|
||||
<artifactId>Nucleus</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${project.basedir}/lib/nucleusapi.jar</systemPath>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.paperspigot</groupId>
|
||||
<artifactId>Spigot</artifactId>
|
||||
<version>1.7.10-R0.1-SNAPSHOT</version>
|
||||
<scope>system</scope>
|
||||
<systemPath>${project.basedir}/lib/Spigot.jar</systemPath>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
|
@ -0,0 +1,8 @@
|
|||
package com.sergivb01.base;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
|
||||
public final class BaseConstants{
|
||||
public static final String PLAYER_WITH_NAME_OR_UUID_NOT_FOUND = ChatColor.RED + "Player '" + ChatColor.WHITE + "%1$s" + ChatColor.RED + "' not found.";
|
||||
}
|
||||
|
|
@ -0,0 +1,227 @@
|
|||
package com.sergivb01.base;
|
||||
|
||||
import com.sergivb01.base.command.CommandManager;
|
||||
import com.sergivb01.base.command.SimpleCommandManager;
|
||||
import com.sergivb01.base.command.module.ChatModule;
|
||||
import com.sergivb01.base.command.module.EssentialModule;
|
||||
import com.sergivb01.base.command.module.InventoryModule;
|
||||
import com.sergivb01.base.command.module.TeleportModule;
|
||||
import com.sergivb01.base.command.module.essential.PunishCommand;
|
||||
import com.sergivb01.base.command.module.essential.ReportCommand;
|
||||
import com.sergivb01.base.command.module.teleport.WorldCommand;
|
||||
import com.sergivb01.base.kit.*;
|
||||
import com.sergivb01.base.listener.*;
|
||||
import com.sergivb01.base.task.AnnouncementHandler;
|
||||
import com.sergivb01.base.task.AutoRestartHandler;
|
||||
import com.sergivb01.base.task.ClearEntityHandler;
|
||||
import com.sergivb01.base.user.*;
|
||||
import com.sergivb01.base.warp.FlatFileWarpManager;
|
||||
import com.sergivb01.base.warp.Warp;
|
||||
import com.sergivb01.base.warp.WarpManager;
|
||||
import com.sergivb01.util.PersistableLocation;
|
||||
import com.sergivb01.util.RandomUtils;
|
||||
import com.sergivb01.util.SignHandler;
|
||||
import com.sergivb01.util.bossbar.BossBarManager;
|
||||
import com.sergivb01.util.chat.Lang;
|
||||
import com.sergivb01.util.cuboid.Cuboid;
|
||||
import com.sergivb01.util.cuboid.NamedCuboid;
|
||||
import com.sergivb01.util.itemdb.ItemDb;
|
||||
import com.sergivb01.util.itemdb.SimpleItemDb;
|
||||
import lombok.Getter;
|
||||
import net.milkbowl.vault.chat.Chat;
|
||||
import net.milkbowl.vault.economy.Economy;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.configuration.serialization.ConfigurationSerialization;
|
||||
import org.bukkit.permissions.Permission;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import org.bukkit.plugin.RegisteredServiceProvider;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Random;
|
||||
|
||||
@Getter
|
||||
public class BasePlugin extends JavaPlugin{
|
||||
private static BasePlugin plugin;
|
||||
private static Permission perms = null;
|
||||
private static Chat chat = null;
|
||||
private static Economy economy = null;
|
||||
public BukkitRunnable announcementTask;
|
||||
private ItemDb itemDb;
|
||||
private Random random = new Random();
|
||||
private WarpManager warpManager;
|
||||
private RandomUtils randomUtils;
|
||||
private AutoRestartHandler autoRestartHandler;
|
||||
private BukkitRunnable clearEntityHandler;
|
||||
private CommandManager commandManager;
|
||||
private KitManager kitManager;
|
||||
private PlayTimeManager playTimeManager;
|
||||
private ServerHandler serverHandler;
|
||||
// private ConfigFile langFile;
|
||||
private SignHandler signHandler;
|
||||
private UserManager userManager;
|
||||
private KitExecutor kitExecutor;
|
||||
|
||||
public static Chat getChat(){
|
||||
return chat;
|
||||
}
|
||||
|
||||
public static BasePlugin getPlugin(){
|
||||
return plugin;
|
||||
}
|
||||
|
||||
public void onEnable(){
|
||||
if(getConfig().getBoolean("nucleus")) {
|
||||
getLogger().severe("Using nucleus as dependency");
|
||||
} else {
|
||||
if(!setupChat()){
|
||||
getLogger().severe("Could not find Vault dependency!");
|
||||
getServer().getPluginManager().disablePlugin(this);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
plugin = this;
|
||||
|
||||
Bukkit.getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
|
||||
|
||||
ConfigurationSerialization.registerClass(Warp.class);
|
||||
ConfigurationSerialization.registerClass(ServerParticipator.class);
|
||||
ConfigurationSerialization.registerClass(BaseUser.class);
|
||||
ConfigurationSerialization.registerClass(ConsoleUser.class);
|
||||
ConfigurationSerialization.registerClass(NameHistory.class);
|
||||
ConfigurationSerialization.registerClass(PersistableLocation.class);
|
||||
ConfigurationSerialization.registerClass(Cuboid.class);
|
||||
ConfigurationSerialization.registerClass(NamedCuboid.class);
|
||||
ConfigurationSerialization.registerClass(Kit.class);
|
||||
|
||||
registerManagers();
|
||||
registerCommands();
|
||||
registerListeners();
|
||||
reloadSchedulers();
|
||||
|
||||
Bukkit.getConsoleSender().sendMessage("");
|
||||
Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', "&e[" + getDescription().getName() + "] Plugin loaded!"));
|
||||
Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', "&e[" + getDescription().getName() + "] &eVersion: " + getDescription().getVersion()));
|
||||
Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', "&e[" + getDescription().getName() + "] &eVault: &aHOOKED"));
|
||||
Bukkit.getConsoleSender().sendMessage("");
|
||||
|
||||
Bukkit.dispatchCommand(Bukkit.getServer().getConsoleSender(), "clearlag 100000");
|
||||
|
||||
}
|
||||
|
||||
private boolean setupChat(){
|
||||
if(getServer().getPluginManager().getPlugin("Vault") == null){
|
||||
getLogger().severe("DB: Vault plugin = null");
|
||||
return false;
|
||||
}
|
||||
RegisteredServiceProvider<Chat> rsp = getServer().getServicesManager().getRegistration(Chat.class);
|
||||
if(rsp == null){
|
||||
getLogger().severe("rsp = null");
|
||||
return false;
|
||||
}
|
||||
chat = rsp.getProvider();
|
||||
return chat != null;
|
||||
}
|
||||
|
||||
private boolean setupPermissions(){
|
||||
if(this.getConfig().getBoolean("nucleus")) {
|
||||
return true;
|
||||
}
|
||||
RegisteredServiceProvider<Permission> rsp = getServer().getServicesManager().getRegistration(Permission.class);
|
||||
perms = rsp.getProvider();
|
||||
return perms != null;
|
||||
}
|
||||
|
||||
public void onDisable(){
|
||||
super.onDisable();
|
||||
|
||||
getLogger().info(String.format("[%s] Disabled Version %s", getDescription().getName(), getDescription().getVersion()));
|
||||
|
||||
|
||||
kitManager.saveKitData();
|
||||
playTimeManager.savePlaytimeData();
|
||||
serverHandler.saveServerData();
|
||||
signHandler.cancelTasks(null);
|
||||
userManager.saveParticipatorData();
|
||||
warpManager.saveWarpData();
|
||||
|
||||
plugin = null;
|
||||
}
|
||||
|
||||
private void registerManagers(){
|
||||
BossBarManager.hook();
|
||||
|
||||
randomUtils = new RandomUtils();
|
||||
autoRestartHandler = new AutoRestartHandler(this);
|
||||
kitManager = new FlatFileKitManager(this);
|
||||
serverHandler = new ServerHandler(this);
|
||||
signHandler = new SignHandler(this);
|
||||
userManager = new UserManager(this);
|
||||
itemDb = new SimpleItemDb(this);
|
||||
warpManager = new FlatFileWarpManager(this);
|
||||
|
||||
try{
|
||||
Lang.initialize("en_US");
|
||||
}catch(IOException ex){
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void registerCommands(){
|
||||
commandManager = new SimpleCommandManager(this);
|
||||
commandManager.registerAll(new ChatModule(this));
|
||||
commandManager.registerAll(new EssentialModule(this));
|
||||
commandManager.registerAll(new InventoryModule(this));
|
||||
commandManager.registerAll(new TeleportModule(this));
|
||||
kitExecutor = new KitExecutor(this);
|
||||
getCommand("kit").setExecutor(kitExecutor);
|
||||
}
|
||||
|
||||
private void registerListeners(){
|
||||
PluginManager manager = getServer().getPluginManager();
|
||||
manager.registerEvents(new WorldCommand(), this);
|
||||
manager.registerEvents(new ChatListener(this), this);
|
||||
manager.registerEvents(new PunishCommand(), this);
|
||||
manager.registerEvents(new ColouredSignListener(), this);
|
||||
manager.registerEvents(new DecreasedLagListener(this), this);
|
||||
manager.registerEvents(new JoinListener(this), this);
|
||||
manager.registerEvents(new ReportCommand(), this);
|
||||
manager.registerEvents(new KitListener(this), this);
|
||||
manager.registerEvents(new MoveByBlockEvent(), this);
|
||||
manager.registerEvents(new MobstackListener(), this);
|
||||
manager.registerEvents(new StaffListener(), this);
|
||||
manager.registerEvents(new NameVerifyListener(this), this);
|
||||
playTimeManager = new PlayTimeManager(this);
|
||||
manager.registerEvents(playTimeManager, this);
|
||||
manager.registerEvents(new PlayerLimitListener(), this);
|
||||
manager.registerEvents(new VanishListener(this), this);
|
||||
//manager.registerEvents(new ChatCommands(), this);
|
||||
//manager.registerEvents(new AutoMuteListener(this), this);
|
||||
manager.registerEvents(new StaffUtilsRemoveListener(), this);
|
||||
}
|
||||
|
||||
private void reloadSchedulers(){
|
||||
ClearEntityHandler clearEntityHandler;
|
||||
AnnouncementHandler announcementTask;
|
||||
|
||||
if(this.clearEntityHandler != null) this.clearEntityHandler.cancel();
|
||||
if(this.announcementTask != null) this.announcementTask.cancel();
|
||||
|
||||
long announcementDelay = (long) this.serverHandler.getAnnouncementDelay() * 20;
|
||||
long claggdelay = (long) this.serverHandler.getClearlagdelay() * 20;
|
||||
|
||||
this.announcementTask = announcementTask = new AnnouncementHandler(this);
|
||||
MobstackListener mobstackListener = new MobstackListener();
|
||||
this.clearEntityHandler = clearEntityHandler = new ClearEntityHandler();
|
||||
|
||||
mobstackListener.runTaskTimerAsynchronously(this, 20, 20);
|
||||
clearEntityHandler.runTaskTimer(this, claggdelay, claggdelay);
|
||||
announcementTask.runTaskTimer(this, announcementDelay, announcementDelay);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,80 @@
|
|||
package com.sergivb01.base;
|
||||
|
||||
import com.sergivb01.util.Config;
|
||||
import net.minecraft.util.gnu.trove.map.hash.TObjectLongHashMap;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.configuration.MemorySection;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class PlayTimeManager
|
||||
implements Listener{
|
||||
private final TObjectLongHashMap totalPlaytimeMap = new TObjectLongHashMap();
|
||||
private final TObjectLongHashMap sessionTimestamps = new TObjectLongHashMap();
|
||||
private final Config config;
|
||||
|
||||
public PlayTimeManager(JavaPlugin plugin){
|
||||
this.config = new Config(plugin, "play-times");
|
||||
this.reloadPlaytimeData();
|
||||
}
|
||||
|
||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
|
||||
public void onPlayerJoin(PlayerJoinEvent event){
|
||||
this.sessionTimestamps.put(event.getPlayer().getUniqueId(), System.currentTimeMillis());
|
||||
}
|
||||
|
||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
|
||||
public void onPlayerQuit(PlayerQuitEvent event){
|
||||
UUID uuid = event.getPlayer().getUniqueId();
|
||||
this.totalPlaytimeMap.put(uuid, this.getTotalPlayTime(uuid));
|
||||
this.sessionTimestamps.remove(uuid);
|
||||
}
|
||||
|
||||
private void reloadPlaytimeData(){
|
||||
Object object = this.config.get("playing-times");
|
||||
if(object instanceof MemorySection){
|
||||
MemorySection section = (MemorySection) object;
|
||||
for(Object id : section.getKeys(false)){
|
||||
this.totalPlaytimeMap.put(UUID.fromString((String) id), this.config.getLong("playing-times." + id, 0));
|
||||
}
|
||||
}
|
||||
long millis = System.currentTimeMillis();
|
||||
for(Player target : Bukkit.getServer().getOnlinePlayers()){
|
||||
this.sessionTimestamps.put(target.getUniqueId(), millis);
|
||||
}
|
||||
}
|
||||
|
||||
public void savePlaytimeData(){
|
||||
for(Player player : Bukkit.getServer().getOnlinePlayers()){
|
||||
this.totalPlaytimeMap.put(player.getUniqueId(), this.getTotalPlayTime(player.getUniqueId()));
|
||||
}
|
||||
this.totalPlaytimeMap.forEachEntry((uuid, l) -> {
|
||||
this.config.set("playing-times." + uuid.toString(), l);
|
||||
return true;
|
||||
}
|
||||
);
|
||||
this.config.save();
|
||||
}
|
||||
|
||||
private long getSessionPlayTime(UUID uuid){
|
||||
long session = this.sessionTimestamps.get(uuid);
|
||||
return session != this.sessionTimestamps.getNoEntryValue() ? System.currentTimeMillis() - session : 0;
|
||||
}
|
||||
|
||||
private long getPreviousPlayTime(UUID uuid){
|
||||
long stamp = this.totalPlaytimeMap.get(uuid);
|
||||
return stamp == this.totalPlaytimeMap.getNoEntryValue() ? 0 : stamp;
|
||||
}
|
||||
|
||||
public long getTotalPlayTime(UUID uuid){
|
||||
return this.getSessionPlayTime(uuid) + this.getPreviousPlayTime(uuid);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
package com.sergivb01.base;
|
||||
|
||||
import com.comphenix.protocol.PacketType;
|
||||
import com.comphenix.protocol.ProtocolLibrary;
|
||||
import com.comphenix.protocol.ProtocolManager;
|
||||
import com.comphenix.protocol.events.PacketAdapter;
|
||||
import com.comphenix.protocol.events.PacketContainer;
|
||||
import com.comphenix.protocol.events.PacketEvent;
|
||||
import com.comphenix.protocol.reflect.StructureModifier;
|
||||
import com.comphenix.protocol.wrappers.WrappedDataWatcher;
|
||||
import com.sergivb01.base.user.BaseUser;
|
||||
import com.sergivb01.base.user.UserManager;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Item;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class ProtocolHook{
|
||||
|
||||
public static void hook(final BasePlugin basePlugin){
|
||||
final ProtocolManager protocolManager = ProtocolLibrary.getProtocolManager();
|
||||
final UserManager userManager = basePlugin.getUserManager();
|
||||
protocolManager.addPacketListener(new PacketAdapter(basePlugin, PacketType.Play.Server.ENTITY_EQUIPMENT){
|
||||
public void onPacketSending(final PacketEvent event){
|
||||
if(!basePlugin.getServerHandler().useProtocolLib){
|
||||
return;
|
||||
}
|
||||
final Player player = event.getPlayer();
|
||||
final BaseUser baseUser = userManager.getUser(player.getUniqueId());
|
||||
if(!baseUser.isGlintEnabled()){
|
||||
final PacketContainer packet = event.getPacket();
|
||||
final StructureModifier<ItemStack> modifier = packet.getItemModifier();
|
||||
if(modifier.size() > 0){
|
||||
final ItemStack stack = modifier.read(0);
|
||||
if(stack != null && stack.getType() != Material.AIR){
|
||||
convert(stack);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
protocolManager.addPacketListener(new PacketAdapter(basePlugin, PacketType.Play.Server.ENTITY_METADATA){
|
||||
public void onPacketSending(final PacketEvent event){
|
||||
if(!basePlugin.getServerHandler().useProtocolLib){
|
||||
return;
|
||||
}
|
||||
final Player player = event.getPlayer();
|
||||
final BaseUser baseUser = userManager.getUser(player.getUniqueId());
|
||||
if(!baseUser.isGlintEnabled()){
|
||||
final PacketContainer packet = event.getPacket();
|
||||
final StructureModifier<Entity> modifier = packet.getEntityModifier(event);
|
||||
if(modifier.size() > 0 && modifier.read(0) instanceof Item){
|
||||
final WrappedDataWatcher watcher = new WrappedDataWatcher(packet.getWatchableCollectionModifier().read(0));
|
||||
if(watcher.size() >= 10){
|
||||
final ItemStack stack = watcher.getItemStack(10).clone();
|
||||
if(stack != null && stack.getType() != Material.AIR){
|
||||
convert(stack);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private static void convert(final ItemStack origin){
|
||||
if(origin == null || origin.getType() == Material.AIR){
|
||||
return;
|
||||
}
|
||||
switch(origin.getType()){
|
||||
case POTION:
|
||||
case GOLDEN_APPLE:{
|
||||
if(origin.getDurability() > 0){
|
||||
origin.setDurability((short) 0);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ENCHANTED_BOOK:{
|
||||
origin.setType(Material.BOOK);
|
||||
break;
|
||||
}
|
||||
default:{
|
||||
origin.getEnchantments().keySet().forEach(origin::removeEnchantment);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,166 @@
|
|||
package com.sergivb01.base;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ServerHandler{
|
||||
@Getter
|
||||
private final List<String> announcements = new ArrayList<String>();
|
||||
private final List<String> serverRules = new ArrayList<String>();
|
||||
private final BasePlugin plugin;
|
||||
@Getter
|
||||
@Setter
|
||||
public boolean useProtocolLib;
|
||||
@Getter
|
||||
@Setter
|
||||
private boolean kitmap;
|
||||
@Getter
|
||||
@Setter
|
||||
private int clearlagdelay;
|
||||
@Getter
|
||||
@Setter
|
||||
private int announcementDelay;
|
||||
@Getter
|
||||
@Setter
|
||||
private long chatSlowedMillis;
|
||||
@Setter
|
||||
private long chatDisabledMillis;
|
||||
@Setter
|
||||
private int chatSlowedDelay;
|
||||
@Getter
|
||||
private String broadcastFormat;
|
||||
@Getter
|
||||
private FileConfiguration config;
|
||||
@Getter
|
||||
@Setter
|
||||
private boolean decreasedLagMode;
|
||||
@Getter
|
||||
@Setter
|
||||
private boolean end;
|
||||
@Getter
|
||||
private Location endExit;
|
||||
@Getter
|
||||
@Setter
|
||||
private boolean donorOnly;
|
||||
@Getter
|
||||
private int worldBorder;
|
||||
@Getter
|
||||
private int netherBorder;
|
||||
@Getter
|
||||
private int endBorder;
|
||||
@Getter
|
||||
private boolean Lockdown;
|
||||
@Getter
|
||||
public String teamspeak;
|
||||
|
||||
public ServerHandler(BasePlugin plugin){
|
||||
this.plugin = plugin;
|
||||
this.config = plugin.getConfig();
|
||||
this.reloadServerData();
|
||||
}
|
||||
|
||||
public void setServerBorder(World.Environment environment, Integer integer){
|
||||
if(environment.equals(World.Environment.NORMAL)){
|
||||
this.worldBorder = integer;
|
||||
}else if(environment.equals(World.Environment.NETHER)){
|
||||
this.netherBorder = integer;
|
||||
}else if(environment.equals(World.Environment.THE_END)){
|
||||
this.endBorder = integer;
|
||||
}
|
||||
}
|
||||
|
||||
private void reloadServerData(){
|
||||
this.plugin.reloadConfig();
|
||||
this.config = this.plugin.getConfig();
|
||||
String exitWorld = this.config.getString("end.exitLocation.world", "world");
|
||||
double x = this.config.getDouble("end.exitLocation.x", 0.0);
|
||||
double y = this.config.getDouble("end.exitLocation.y", 66.0);
|
||||
double z = this.config.getDouble("end.exitLocation.z", -200.0);
|
||||
this.endExit = new Location(Bukkit.getWorld(exitWorld), x, y, z);
|
||||
this.donorOnly = this.config.getBoolean("donor-only-enter");
|
||||
this.Lockdown = this.config.getBoolean("lockdown-enabled", false);
|
||||
this.end = this.config.getBoolean("end-open");
|
||||
this.worldBorder = this.config.getInt("border.worldBorder", 3000);
|
||||
this.netherBorder = this.config.getInt("border.netherBorder", 1000);
|
||||
this.endBorder = this.config.getInt("border.endBorder", 1500);
|
||||
this.serverRules.clear();
|
||||
this.clearlagdelay = this.config.getInt("clearlag.delay", 100000);
|
||||
this.announcementDelay = this.config.getInt("announcements.delay", 15);
|
||||
this.announcements.clear();
|
||||
for(String each : this.config.getStringList("announcements.list")){
|
||||
this.announcements.add(ChatColor.translateAlternateColorCodes('&', each));
|
||||
}
|
||||
this.chatDisabledMillis = this.config.getLong("chat.disabled.millis", 0);
|
||||
this.chatSlowedMillis = this.config.getLong("chat.slowed.millis", 0);
|
||||
this.chatSlowedDelay = this.config.getInt("chat.slowed.delay", 15);
|
||||
this.useProtocolLib = this.config.getBoolean("use-protocol-lib", true);
|
||||
this.decreasedLagMode = this.config.getBoolean("decreased-lag-mode");
|
||||
this.broadcastFormat = ChatColor.translateAlternateColorCodes('&', this.config.getString("broadcast.format", ChatColor.AQUA + " &7%1$s"));
|
||||
this.teamspeak = config.getString("teamspeak");
|
||||
this.kitmap = this.config.getBoolean("kit-map");
|
||||
}
|
||||
|
||||
public void saveServerData(){
|
||||
this.config.set("clearlag.delay", this.clearlagdelay);
|
||||
this.config.set("server-rules", this.serverRules);
|
||||
this.config.set("use-protocol-lib", this.useProtocolLib);
|
||||
this.config.set("chat.disabled.millis", this.chatDisabledMillis);
|
||||
this.config.set("chat.slowed.millis", this.chatSlowedMillis);
|
||||
this.config.set("chat.slowed-delay", this.chatSlowedDelay);
|
||||
this.config.set("announcements.delay", this.announcementDelay);
|
||||
this.config.set("announcements.list", this.announcements);
|
||||
this.config.set("kit-map", this.kitmap);
|
||||
this.config.set("decreased-lag-mode", this.decreasedLagMode);
|
||||
this.config.set("end.exitLocation.world", this.endExit.getWorld().getName());
|
||||
this.config.set("end.exitLocation.x", this.endExit.getX());
|
||||
this.config.set("end.exitLocation.y", this.endExit.getY());
|
||||
this.config.set("end.exitLocation.z", this.endExit.getX());
|
||||
this.config.set("donor-only-enter", this.donorOnly);
|
||||
this.config.set("lockdown-enabled", this.Lockdown);
|
||||
this.config.set("end-open", this.end);
|
||||
this.config.set("border.worldBorder", this.worldBorder);
|
||||
this.config.set("border.netherBorder", this.netherBorder);
|
||||
this.config.set("border.endBorder", this.endBorder);
|
||||
this.plugin.saveConfig();
|
||||
}
|
||||
|
||||
|
||||
public void setChatSlowedMillis(long ticks){
|
||||
this.chatSlowedMillis = System.currentTimeMillis() + ticks;
|
||||
}
|
||||
|
||||
public long getRemainingChatSlowedMillis(){
|
||||
return this.chatSlowedMillis - System.currentTimeMillis();
|
||||
}
|
||||
|
||||
public boolean isChatDisabled(){
|
||||
return this.getRemainingChatDisabledMillis() > 0;
|
||||
}
|
||||
|
||||
public long getChatDisabledMillis(){
|
||||
return this.chatDisabledMillis;
|
||||
}
|
||||
|
||||
public void setChatDisabledMillis(long ticks){
|
||||
long millis = System.currentTimeMillis();
|
||||
this.chatDisabledMillis = millis + ticks;
|
||||
}
|
||||
|
||||
public long getRemainingChatDisabledMillis(){
|
||||
return this.chatDisabledMillis - System.currentTimeMillis();
|
||||
}
|
||||
|
||||
public int getChatSlowedDelay(){
|
||||
return this.chatSlowedDelay;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
package com.sergivb01.base;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public enum StaffPriority{
|
||||
OWNER(6),
|
||||
HEADADMIN(5),
|
||||
STAFFMANAGER(4),
|
||||
ADMIN(3),
|
||||
MODERATOR(2),
|
||||
TRIAL(1),
|
||||
NONE(0);
|
||||
|
||||
private static final ImmutableMap<Integer, StaffPriority> BY_ID;
|
||||
|
||||
static{
|
||||
ImmutableMap.Builder builder = new ImmutableMap.Builder();
|
||||
for(StaffPriority staffPriority : StaffPriority.values()){
|
||||
builder.put(staffPriority.priorityLevel, staffPriority);
|
||||
}
|
||||
BY_ID = builder.build();
|
||||
}
|
||||
|
||||
private final int priorityLevel;
|
||||
|
||||
StaffPriority(int priorityLevel){
|
||||
this.priorityLevel = priorityLevel;
|
||||
}
|
||||
|
||||
public static StaffPriority of(int level){
|
||||
return BY_ID.get(level);
|
||||
}
|
||||
|
||||
public static StaffPriority of(Player player){
|
||||
for(StaffPriority staffPriority : StaffPriority.values()){
|
||||
if(!player.hasPermission("staffpriority." + staffPriority.priorityLevel)) continue;
|
||||
return staffPriority;
|
||||
}
|
||||
return NONE;
|
||||
}
|
||||
|
||||
public int getPriorityLevel(){
|
||||
return this.priorityLevel;
|
||||
}
|
||||
|
||||
public boolean isMoreThan(StaffPriority other){
|
||||
return this.priorityLevel > other.priorityLevel;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,83 @@
|
|||
package com.sergivb01.base.command;
|
||||
|
||||
import com.sergivb01.base.BaseConstants;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import com.sergivb01.util.command.ArgumentExecutor;
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public abstract class BaseCommand
|
||||
extends ArgumentExecutor{
|
||||
private static final Pattern USAGE_REPLACER_PATTERN = Pattern.compile("(command)", 16);
|
||||
private final String name;
|
||||
private final String description;
|
||||
private String[] aliases;
|
||||
private String usage;
|
||||
|
||||
public BaseCommand(String name, String description){
|
||||
super(name);
|
||||
this.name = name;
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public static boolean checkNull(CommandSender sender, String player){
|
||||
Player target = BukkitUtils.playerWithNameOrUUID(player);
|
||||
if(target == null || !BaseCommand.canSee(sender, target)){
|
||||
sender.sendMessage(String.format(BaseConstants.PLAYER_WITH_NAME_OR_UUID_NOT_FOUND, player));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean canSee(CommandSender sender, Player target){
|
||||
return target != null && (!(sender instanceof Player) || ((Player) sender).canSee(target));
|
||||
}
|
||||
|
||||
public final String getPermission(){
|
||||
return "base.command." + this.name;
|
||||
}
|
||||
|
||||
public boolean isPlayerOnlyCommand(){
|
||||
return false;
|
||||
}
|
||||
|
||||
public String getName(){
|
||||
return this.name;
|
||||
}
|
||||
|
||||
public String getDescription(){
|
||||
return this.description;
|
||||
}
|
||||
|
||||
public String getUsage(){
|
||||
if(this.usage == null){
|
||||
this.usage = "";
|
||||
}
|
||||
return ChatColor.RED + "Usage: " + USAGE_REPLACER_PATTERN.matcher(this.usage).replaceAll(this.name);
|
||||
}
|
||||
|
||||
public void setUsage(String usage){
|
||||
this.usage = usage;
|
||||
}
|
||||
|
||||
public String getUsage(String label){
|
||||
return ChatColor.RED + "" + USAGE_REPLACER_PATTERN.matcher(this.usage).replaceAll(label);
|
||||
}
|
||||
|
||||
public String[] getAliases(){
|
||||
if(this.aliases == null){
|
||||
this.aliases = ArrayUtils.EMPTY_STRING_ARRAY;
|
||||
}
|
||||
return Arrays.copyOf(this.aliases, this.aliases.length);
|
||||
}
|
||||
|
||||
protected void setAliases(String[] aliases){
|
||||
this.aliases = aliases;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package com.sergivb01.base.command;
|
||||
|
||||
import com.google.common.collect.Sets;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
public abstract class BaseCommandModule{
|
||||
protected final Set<BaseCommand> commands = Sets.newHashSet();
|
||||
protected boolean enabled = true;
|
||||
|
||||
Set<BaseCommand> getCommands(){
|
||||
return this.commands;
|
||||
}
|
||||
|
||||
void unregisterCommand(BaseCommand command){
|
||||
this.commands.remove(command);
|
||||
}
|
||||
|
||||
void unregisterCommands(){
|
||||
this.commands.clear();
|
||||
}
|
||||
|
||||
boolean isEnabled(){
|
||||
return this.enabled;
|
||||
}
|
||||
|
||||
void setEnabled(boolean enabled){
|
||||
this.enabled = enabled;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
package com.sergivb01.base.command;
|
||||
|
||||
public interface CommandManager{
|
||||
boolean containsCommand(BaseCommand var1);
|
||||
|
||||
void registerAll(BaseCommandModule var1);
|
||||
|
||||
void registerCommand(BaseCommand var1);
|
||||
|
||||
void registerCommands(BaseCommand[] var1);
|
||||
|
||||
void unregisterCommand(BaseCommand var1);
|
||||
|
||||
BaseCommand getCommand(String var1);
|
||||
}
|
||||
|
|
@ -0,0 +1,125 @@
|
|||
package com.sergivb01.base.command;
|
||||
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.command.CommandMap;
|
||||
import org.bukkit.command.ConsoleCommandSender;
|
||||
import org.bukkit.command.PluginCommand;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import org.bukkit.plugin.SimplePluginManager;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.*;
|
||||
|
||||
public class ReflectionCommandManager
|
||||
implements CommandManager{
|
||||
private static final String PERMISSION_MESSAGE = ChatColor.RED + "You do not have permission for this command.";
|
||||
private final Map<String, BaseCommand> commandMap = new HashMap<String, BaseCommand>();
|
||||
|
||||
public ReflectionCommandManager(final BasePlugin plugin){
|
||||
final ConsoleCommandSender console = Bukkit.getConsoleSender();
|
||||
final Server server = Bukkit.getServer();
|
||||
server.getScheduler().runTaskLater(plugin, new Runnable(){
|
||||
|
||||
@Override
|
||||
public void run(){
|
||||
Optional optionalCommandMap = ReflectionCommandManager.this.getCommandMap(server);
|
||||
if(!optionalCommandMap.isPresent()){
|
||||
Bukkit.broadcastMessage("" + '[' + plugin.getDescription().getFullName() + "] Command map not found");
|
||||
console.sendMessage("" + '[' + plugin.getDescription().getFullName() + "] Command map not found");
|
||||
return;
|
||||
}
|
||||
CommandMap bukkitCommandMap = (CommandMap) optionalCommandMap.get();
|
||||
for(BaseCommand command : ReflectionCommandManager.this.commandMap.values()){
|
||||
String commandName = command.getName();
|
||||
Optional optional = ReflectionCommandManager.this.getPluginCommand(commandName, plugin);
|
||||
if(optional.isPresent()){
|
||||
PluginCommand pluginCommand = (PluginCommand) optional.get();
|
||||
pluginCommand.setAliases(Arrays.asList(command.getAliases()));
|
||||
pluginCommand.setDescription(command.getDescription());
|
||||
pluginCommand.setExecutor(command);
|
||||
pluginCommand.setTabCompleter(command);
|
||||
pluginCommand.setUsage(command.getUsage());
|
||||
pluginCommand.setPermission(command.getPermission());
|
||||
pluginCommand.setPermissionMessage(PERMISSION_MESSAGE);
|
||||
bukkitCommandMap.register(plugin.getDescription().getName(), pluginCommand);
|
||||
continue;
|
||||
}
|
||||
Bukkit.broadcastMessage("" + '[' + plugin.getName() + "] " + ChatColor.YELLOW + "Failed to register command '" + commandName + "'.");
|
||||
console.sendMessage("" + '[' + plugin.getName() + "] " + ChatColor.YELLOW + "Failed to register command '" + commandName + "'.");
|
||||
}
|
||||
}
|
||||
}, 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean containsCommand(BaseCommand command){
|
||||
return this.commandMap.containsValue(command);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerAll(BaseCommandModule module){
|
||||
if(module.isEnabled()){
|
||||
Set<BaseCommand> commands = module.getCommands();
|
||||
for(BaseCommand command : commands){
|
||||
this.commandMap.put(command.getName(), command);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerCommand(BaseCommand command){
|
||||
this.commandMap.put(command.getName(), command);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerCommands(BaseCommand[] commands){
|
||||
for(BaseCommand command : commands){
|
||||
this.commandMap.put(command.getName(), command);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregisterCommand(BaseCommand command){
|
||||
this.commandMap.values().remove(command);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseCommand getCommand(final String id){
|
||||
return this.commandMap.get(id);
|
||||
}
|
||||
|
||||
private Optional<PluginCommand> getPluginCommand(final String name, final Plugin plugin){
|
||||
try{
|
||||
final Constructor<PluginCommand> constructor = PluginCommand.class.getDeclaredConstructor(String.class, Plugin.class);
|
||||
constructor.setAccessible(true);
|
||||
return Optional.of(constructor.newInstance(name, plugin));
|
||||
}catch(IllegalArgumentException | IllegalAccessException | InstantiationException | InvocationTargetException | NoSuchMethodException | SecurityException ex){
|
||||
ex.printStackTrace();
|
||||
return Optional.empty();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private Optional<CommandMap> getCommandMap(Server server){
|
||||
PluginManager pluginManager = server.getPluginManager();
|
||||
if(pluginManager instanceof SimplePluginManager){
|
||||
try{
|
||||
Field field = SimplePluginManager.class.getDeclaredField("commandMap");
|
||||
field.setAccessible(true);
|
||||
return Optional.of((CommandMap) field.get(pluginManager));
|
||||
}catch(IllegalAccessException | IllegalArgumentException | NoSuchFieldException | SecurityException ex){
|
||||
ex.printStackTrace();
|
||||
return Optional.empty();
|
||||
}
|
||||
}
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,84 @@
|
|||
package com.sergivb01.base.command;
|
||||
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.ConsoleCommandSender;
|
||||
import org.bukkit.command.PluginCommand;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class SimpleCommandManager implements CommandManager{
|
||||
private static final String PERMISSION_MESSAGE;
|
||||
|
||||
static{
|
||||
PERMISSION_MESSAGE = ChatColor.RED + "You do not have permission to execute this command.";
|
||||
}
|
||||
|
||||
private final Map<String, BaseCommand> commandMap;
|
||||
|
||||
public SimpleCommandManager(final BasePlugin plugin){
|
||||
this.commandMap = new HashMap<String, BaseCommand>();
|
||||
final ConsoleCommandSender console = plugin.getServer().getConsoleSender();
|
||||
new BukkitRunnable(){
|
||||
public void run(){
|
||||
final Collection<BaseCommand> commands = SimpleCommandManager.this.commandMap.values();
|
||||
for(final BaseCommand command : commands){
|
||||
final String commandName = command.getName();
|
||||
final PluginCommand pluginCommand = plugin.getCommand(commandName);
|
||||
if(pluginCommand == null){
|
||||
Bukkit.broadcastMessage(commandName);
|
||||
console.sendMessage('[' + plugin.getName() + "] " + ChatColor.YELLOW + "Failed to register command '" + commandName + "'.");
|
||||
console.sendMessage('[' + plugin.getName() + "] " + ChatColor.YELLOW + "Reason: Undefined in plugin.yml.");
|
||||
}else{
|
||||
pluginCommand.setAliases(Arrays.asList(command.getAliases()));
|
||||
pluginCommand.setDescription(command.getDescription());
|
||||
pluginCommand.setExecutor(command);
|
||||
pluginCommand.setTabCompleter(command);
|
||||
pluginCommand.setUsage(command.getUsage());
|
||||
pluginCommand.setPermission("base.command." + command.getName());
|
||||
pluginCommand.setPermissionMessage(SimpleCommandManager.PERMISSION_MESSAGE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}.runTask(plugin);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean containsCommand(final BaseCommand command){
|
||||
return this.commandMap.containsValue(command);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerAll(final BaseCommandModule module){
|
||||
if(module.isEnabled()){
|
||||
final Set<BaseCommand> commands = module.getCommands();
|
||||
for(final BaseCommand command : commands){
|
||||
this.commandMap.put(command.getName(), command);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerCommand(final BaseCommand command){
|
||||
this.commandMap.put(command.getName(), command);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerCommands(final BaseCommand[] commands){
|
||||
for(final BaseCommand command : commands){
|
||||
this.commandMap.put(command.getName(), command);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregisterCommand(final BaseCommand command){
|
||||
this.commandMap.values().remove(command);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseCommand getCommand(final String id){
|
||||
return this.commandMap.get(id);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
package com.sergivb01.base.command.module;
|
||||
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommandModule;
|
||||
import com.sergivb01.base.command.module.chat.*;
|
||||
|
||||
public class ChatModule
|
||||
extends BaseCommandModule{
|
||||
public ChatModule(BasePlugin plugin){
|
||||
this.commands.add(new ToggleSoundsCommand(plugin));
|
||||
this.commands.add(new ToggleStaffChatCommand(plugin));
|
||||
this.commands.add(new AnnouncementCommand(plugin));
|
||||
this.commands.add(new BroadcastCommand(plugin));
|
||||
this.commands.add(new ClearChatCommand());
|
||||
this.commands.add(new DisableChatCommand(plugin));
|
||||
this.commands.add(new SlowChatCommand(plugin));
|
||||
//this.commands.add(new StaffChatCommand(plugin));
|
||||
this.commands.add(new FamousCommand(plugin));
|
||||
this.commands.add(new YoutubeCommand(plugin));
|
||||
this.commands.add(new IgnoreCommand(plugin));
|
||||
this.commands.add(new MessageCommand(plugin));
|
||||
this.commands.add(new MessageSpyCommand(plugin));
|
||||
this.commands.add(new ReplyCommand(plugin));
|
||||
this.commands.add(new ToggleMessagesCommand(plugin));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
package com.sergivb01.base.command.module;
|
||||
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommandModule;
|
||||
import com.sergivb01.base.command.module.essential.*;
|
||||
|
||||
public class EssentialModule
|
||||
extends BaseCommandModule{
|
||||
public EssentialModule(BasePlugin plugin){
|
||||
this.commands.add(new SettingsCommand(plugin));
|
||||
this.commands.add(new SetViewDistanceCommand());
|
||||
this.commands.add(new LolCommand(plugin));
|
||||
this.commands.add(new ToggleDonorOnly(plugin));
|
||||
this.commands.add(new ClearLagg());
|
||||
this.commands.add(new SNoteCommand());
|
||||
this.commands.add(new StaffServerCommand());
|
||||
this.commands.add(new AmivisCommand(plugin));
|
||||
this.commands.add(new DonateCommand());
|
||||
this.commands.add(new AutoRestartCommand(plugin));
|
||||
this.commands.add(new ListCommand());
|
||||
this.commands.add(new EnchantCommand());
|
||||
this.commands.add(new NoteCommand());
|
||||
this.commands.add(new PunishCommand());
|
||||
this.commands.add(new FeedCommand());
|
||||
this.commands.add(new FlyCommand());
|
||||
this.commands.add(new KillMobsCommand(plugin));
|
||||
this.commands.add(new NearCommand());
|
||||
this.commands.add(new FreezeCommand(plugin));
|
||||
this.commands.add(new GamemodeCommand());
|
||||
this.commands.add(new HatCommand());
|
||||
this.commands.add(new StaffUtilitiesCommand(plugin));
|
||||
this.commands.add(new HealCommand());
|
||||
this.commands.add(new KillCommand());
|
||||
this.commands.add(new PingCommand());
|
||||
this.commands.add(new PlayTimeCommand(plugin));
|
||||
this.commands.add(new RemoveEntityCommand());
|
||||
this.commands.add(new RenameCommand());
|
||||
this.commands.add(new RepairCommand());
|
||||
this.commands.add(new LagCommand());
|
||||
this.commands.add(new RulesCommand(plugin));
|
||||
this.commands.add(new SetMotdCommand(plugin));
|
||||
this.commands.add(new InsiderCommand(plugin));
|
||||
this.commands.add(new SpeedCommand());
|
||||
this.commands.add(new StopLagCommand(plugin));
|
||||
this.commands.add(new SudoCommand());
|
||||
this.commands.add(new VanishCommand(plugin));
|
||||
this.commands.add(new WhoisCommand(plugin));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package com.sergivb01.base.command.module;
|
||||
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommandModule;
|
||||
import com.sergivb01.base.command.module.inventory.*;
|
||||
|
||||
public class InventoryModule
|
||||
extends BaseCommandModule{
|
||||
public InventoryModule(BasePlugin plugin){
|
||||
this.commands.add(new ClearInvCommand());
|
||||
this.commands.add(new GiveCommand());
|
||||
this.commands.add(new IdCommand());
|
||||
this.commands.add(new InvSeeCommand(plugin));
|
||||
this.commands.add(new ItemCommand());
|
||||
this.commands.add(new KitsCommand());
|
||||
this.commands.add(new MoreCommand());
|
||||
this.commands.add(new SkullCommand());
|
||||
this.commands.add(new CopyInvCommand());
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package com.sergivb01.base.command.module;
|
||||
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommandModule;
|
||||
import com.sergivb01.base.command.module.teleport.*;
|
||||
import com.sergivb01.base.command.module.warp.WarpExecutor;
|
||||
|
||||
public class TeleportModule
|
||||
extends BaseCommandModule{
|
||||
public TeleportModule(BasePlugin plugin){
|
||||
this.commands.add(new LobbyCommand(plugin));
|
||||
this.commands.add(new BackCommand(plugin));
|
||||
this.commands.add(new TeleportCommand());
|
||||
this.commands.add(new TeleportAllCommand());
|
||||
this.commands.add(new TeleportHereCommand());
|
||||
this.commands.add(new TopCommand());
|
||||
this.commands.add(new WorldCommand());
|
||||
this.commands.add(new WarpExecutor(plugin));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,100 @@
|
|||
package com.sergivb01.base.command.module.chat;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.base.task.AnnouncementHandler;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class AnnouncementCommand
|
||||
extends BaseCommand{
|
||||
private final BasePlugin plugin;
|
||||
private List<String> COMPLETIONS;
|
||||
private int MAX_ANNOUNCEMENT_PER_PAGE = 10;
|
||||
|
||||
public AnnouncementCommand(BasePlugin plugin){
|
||||
super("announcement", "Broadcasts a message to the server.");
|
||||
this.setAliases(new String[]{"announce", "ann"});
|
||||
this.COMPLETIONS = ImmutableList.of("add", "remove", "list", "delay");
|
||||
this.setUsage("/(command) <add|remove|list|delay> <text..|delay in s>");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
if(args.length == 0){
|
||||
sender.sendMessage(this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
if(args.length >= 1){
|
||||
if(args[0].equalsIgnoreCase("list")){
|
||||
Integer number = 0;
|
||||
sender.sendMessage(ChatColor.AQUA + "Announcement Lists: ");
|
||||
if(number <= this.MAX_ANNOUNCEMENT_PER_PAGE){
|
||||
for(String announce : this.plugin.getServerHandler().getAnnouncements()){
|
||||
sender.sendMessage(ChatColor.GRAY.toString() + " [" + ChatColor.YELLOW + number + ChatColor.GRAY + ']' + ChatColor.YELLOW + announce);
|
||||
Integer n = number;
|
||||
Integer n2 = number = Integer.valueOf(number + 1);
|
||||
}
|
||||
}else{
|
||||
sender.sendMessage(ChatColor.YELLOW + "Too many to display!");
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if(args[0].equalsIgnoreCase("add")){
|
||||
String messagge = StringUtils.join(args, ' ', 1, args.length);
|
||||
this.plugin.getServerHandler().getAnnouncements().add(ChatColor.translateAlternateColorCodes('&', messagge));
|
||||
Command.broadcastCommandMessage(sender, ChatColor.YELLOW + "Added " + messagge + " to the announcements.", true);
|
||||
return true;
|
||||
}
|
||||
if(args[0].equalsIgnoreCase("remove")){
|
||||
int integer;
|
||||
try{
|
||||
integer = Integer.parseInt(args[1]);
|
||||
}catch(NumberFormatException ex){
|
||||
sender.sendMessage(ChatColor.RED + "Use /" + label + " list to get the number.");
|
||||
return true;
|
||||
}
|
||||
Command.broadcastCommandMessage(sender, ChatColor.YELLOW + "Announcement number " + integer + " has been removed." + '\n' + ChatColor.GRAY + "(" + this.plugin.getServerHandler().getAnnouncements().get(integer) + ")");
|
||||
this.plugin.getServerHandler().getAnnouncements().remove(integer);
|
||||
return true;
|
||||
}
|
||||
if(args[0].equalsIgnoreCase("delay")){
|
||||
int integer;
|
||||
try{
|
||||
integer = Integer.parseInt(args[1]);
|
||||
}catch(NumberFormatException ex){
|
||||
sender.sendMessage(ChatColor.RED + "Must be a number to set the delay.");
|
||||
return true;
|
||||
}
|
||||
if(this.plugin.getServerHandler().getAnnouncementDelay() == integer){
|
||||
return true;
|
||||
}
|
||||
|
||||
this.plugin.getServerHandler().setAnnouncementDelay(integer * 20);
|
||||
BasePlugin.getPlugin().announcementTask.cancel();
|
||||
final AnnouncementHandler announcementTask = new AnnouncementHandler(this.plugin);
|
||||
(BasePlugin.getPlugin().announcementTask = announcementTask).runTaskTimerAsynchronously(BasePlugin.getPlugin(), (long) this.plugin.getServerHandler().getAnnouncementDelay(), (long) this.plugin.getServerHandler().getAnnouncementDelay());
|
||||
Command.broadcastCommandMessage(sender, ChatColor.YELLOW + "Announcement Delay has been modified to " + integer);
|
||||
sender.sendMessage(args[0]);
|
||||
sender.sendMessage(args[1]);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return args.length == 1 ? BukkitUtils.getCompletions(args, this.COMPLETIONS) : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
package com.sergivb01.base.command.module.chat;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
public class BroadcastCommand
|
||||
extends BaseCommand{
|
||||
private final BasePlugin plugin;
|
||||
private final List<String> COMPLETIONS_FIRST = ImmutableList.of("-raw");
|
||||
|
||||
public BroadcastCommand(BasePlugin plugin){
|
||||
super("broadcast", "Broadcasts a message to the server.");
|
||||
this.setAliases(new String[]{"bc"});
|
||||
this.setUsage("/(command) [-raw *sendRaw*] <text..>");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
int position;
|
||||
boolean raw;
|
||||
if(args.length < 1){
|
||||
sender.sendMessage(this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
if(args.length > 1 && args[0].startsWith("-raw")){
|
||||
position = 1;
|
||||
raw = true;
|
||||
}else{
|
||||
position = 0;
|
||||
raw = false;
|
||||
}
|
||||
String message = StringUtils.join(args, ' ', position, args.length);
|
||||
if(raw){
|
||||
if(message.length() < 3){
|
||||
sender.sendMessage(ChatColor.RED + "Character limit not met, must have atleast 3 characters.");
|
||||
return true;
|
||||
}
|
||||
}else if(message.length() < 4){
|
||||
sender.sendMessage(ChatColor.RED + "Character limit not met, must have atleast 4 characters.");
|
||||
return true;
|
||||
}
|
||||
message = !raw ? ChatColor.translateAlternateColorCodes('&', String.format(Locale.ENGLISH, this.plugin.getServerHandler().getBroadcastFormat(), message)) : ChatColor.translateAlternateColorCodes('&', message);
|
||||
Bukkit.broadcastMessage(message);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return args.length == 1 ? BukkitUtils.getCompletions(args, this.COMPLETIONS_FIRST) : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,143 @@
|
|||
package com.sergivb01.base.command.module.chat;
|
||||
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import com.sergivb01.util.chat.ClickAction;
|
||||
import com.sergivb01.util.chat.Text;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||
|
||||
public class ChatCommands implements Listener{
|
||||
|
||||
@EventHandler (priority = EventPriority.HIGHEST)
|
||||
public void onChat(AsyncPlayerChatEvent event){
|
||||
String command = event.getMessage();
|
||||
Player player = event.getPlayer();
|
||||
String spacebar = ChatColor.GRAY + BukkitUtils.STRAIGHT_LINE_DEFAULT;
|
||||
switch(command){
|
||||
case "?help":
|
||||
event.setCancelled(true);
|
||||
player.sendMessage(spacebar);
|
||||
player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9&lChatCommands list &7(Click)"));
|
||||
new Text(ChatColor.translateAlternateColorCodes('&', " &7* &b?claim")).setHoverText(ChatColor.BLUE + "Click to ?claim").setClick(ClickAction.RUN_COMMAND, "?claim").send(player);
|
||||
new Text(ChatColor.translateAlternateColorCodes('&', " &7* &b?elevator")).setHoverText(ChatColor.BLUE + "Click to ?elevator").setClick(ClickAction.RUN_COMMAND, "?elevator").send(player);
|
||||
new Text(ChatColor.translateAlternateColorCodes('&', " &7* &b?potions")).setHoverText(ChatColor.BLUE + "Click to ?potions").setClick(ClickAction.RUN_COMMAND, "?potions").send(player);
|
||||
new Text(ChatColor.translateAlternateColorCodes('&', " &7* &b?links")).setHoverText(ChatColor.BLUE + "Click to ?links").setClick(ClickAction.RUN_COMMAND, "?links").send(player);
|
||||
new Text(ChatColor.translateAlternateColorCodes('&', " &7* &b?teamspeak")).setHoverText(ChatColor.BLUE + "Click to ?teamspeak").setClick(ClickAction.RUN_COMMAND, "?teamspeak").send(player);
|
||||
player.sendMessage(spacebar);
|
||||
break;
|
||||
case "?claim":
|
||||
event.setCancelled(true);
|
||||
player.sendMessage(ChatColor.translateAlternateColorCodes('&',
|
||||
spacebar +
|
||||
"&9&lClaiming tutorial\n" +
|
||||
"&rTo start claiming you must type &b/f claim &rand you will get a claiming wand. &7&o(Hover over the item for more information)&r.\n" +
|
||||
" \n" +
|
||||
" &7* &3&lUsing the wand:\n" +
|
||||
" &r&lLeft &rclick on the first corner of the land you want to claim.\n" +
|
||||
" &r&lRight &rclick on the second corner of the land you want to claim.\n" +
|
||||
" &r&lRight &rclick &r&lair &rto &ccancel &ryour current claim selection.\n" +
|
||||
" &r&lShift &r+ &r&lLeft &rclick to &apurchase &ryour current claim selection.\n" +
|
||||
" \n" +
|
||||
" &7* &3&lUnclaiming land:\n" +
|
||||
" &rYou must type &b/f unclaim &rand you will have to confirm it by adding &a&lyes &ror &c&lno &rto the command.\n" +
|
||||
spacebar
|
||||
));
|
||||
break;
|
||||
case "?elevator":
|
||||
case "?elevators":
|
||||
event.setCancelled(true);
|
||||
player.sendMessage(ChatColor.translateAlternateColorCodes('&',
|
||||
spacebar +
|
||||
"&9&lElevators tutorial (2 Signs)\n" +
|
||||
" \n" +
|
||||
" &7* &rPlace the first sign on a block and type &3&l[Elevator] &7&o(First line) &rand &bDown &7&o(Second line)&r.\n" +
|
||||
" \n" +
|
||||
" &7* &rThen &cin the same pillar of blocks&r, go down as many blocks as you want, place the second sign and type &3&l[Elevator] &7&o(First line) &rand &bUp &7&o(Second line)&r.\n" +
|
||||
spacebar
|
||||
));
|
||||
break;
|
||||
case "?potions":
|
||||
case "?brewing":
|
||||
String square = "\u2588";
|
||||
String circle = "\u2B24";
|
||||
String triangle = "&l\u29CA";
|
||||
String arrow = " &r\u279D ";
|
||||
event.setCancelled(true);
|
||||
player.sendMessage(ChatColor.translateAlternateColorCodes('&',
|
||||
spacebar +
|
||||
"&9&lBrewing tutorial\n" +
|
||||
spacebar +
|
||||
"&3&lIcons:\n" +
|
||||
" &7* &rGlowstone &e" + triangle + " &7(Increases Potency)\n" +
|
||||
" &7* &rRedstone &4" + triangle + " &7(Increases Duration)\n" +
|
||||
" &7* &rGunpowder &8" + triangle + " &7(Make potions splashable)\n" +
|
||||
" &7* &rSugar &r" + triangle + "\n" +
|
||||
" &7* &rNether Wart &c" + square + "\n" +
|
||||
" &7* &rGlistering Melon &6" + square + "\n" +
|
||||
" &7* &rGolden Carrot &e" + square + "\n" +
|
||||
" &7* &rMagma Cream &a" + circle + "\n" +
|
||||
" &7* &rSpider Eye &c" + circle + "\n" +
|
||||
" &7* &rFermented Spider Eye &4" + circle + "\n" +
|
||||
spacebar +
|
||||
"&3&lCraftings:\n" +
|
||||
" &7- &a" + circle + " &r= Slimeball + Blaze Powder\n" +
|
||||
" &7- &6" + square + " &r= Melon + 8xGold Nuggets\n" +
|
||||
" &7- &e" + square + " &r= Carrot + 8xGold Nuggets\n" +
|
||||
" &7- &4" + circle + " &r= " + "&c" + circle + " &r+ " + triangle + " &r+ Brown Mushroom\n" +
|
||||
spacebar +
|
||||
"&3&lPotions:\n" +
|
||||
" &7» &c&ki&rHealing II Splash&c&ki&r: &c" + square + arrow + "&6" + square + arrow + "&e" + triangle + arrow + "&8" + triangle + "\n" +
|
||||
" &7» &b&ki&rSpeed II&b&ki&r: &c" + square + arrow + "&r" + triangle + arrow + "&e" + triangle + "\n" +
|
||||
" &7» &6&ki&rFire Resistance +&6&ki&r: &c" + square + arrow + "&a" + circle + arrow + "&4" + triangle + "\n" +
|
||||
" &7» &7&ki&rInvisibility +&7&ki&r: &c" + square + arrow + "&a" + circle + arrow + "&4" + circle + arrow + "&4" + triangle + "\n" +
|
||||
" &7» &2&ki&rPoison II Splash&2&ki&r: &c" + square + arrow + "&c" + circle + arrow + "&e" + triangle + arrow + "&8" + triangle + "\n" +
|
||||
" &7» &5&ki&rSlowness II Splash&5&ki&r: &c" + square + arrow + "&r" + triangle + arrow + "&4" + circle + arrow + "&4" + triangle + arrow + "&8" + triangle + "\n" +
|
||||
spacebar
|
||||
));
|
||||
break;
|
||||
case "?links":
|
||||
case "?forums":
|
||||
case "?forum":
|
||||
case "?discord":
|
||||
case "?website":
|
||||
case "?store":
|
||||
case "?twitter":
|
||||
case "?staff":
|
||||
case "?mods":
|
||||
case "?rules":
|
||||
case "?clients":
|
||||
event.setCancelled(true);
|
||||
player.sendMessage(ChatColor.translateAlternateColorCodes('&',
|
||||
spacebar +
|
||||
"&9&lServer links\n" +
|
||||
" &7* &3Website: &rveilhcf.us\n" +
|
||||
" &7* &3Forums: &rveilhcf.us/community\n" +
|
||||
" &7* &3Store: &rstore.veilhcf.us\n" +
|
||||
" &7* &3Twitter: &rtwitter.com/veilhcf\n" +
|
||||
" &7* &3Discord: &rdiscord.gg/RdbbBx7\n" +
|
||||
" &7* &3Allowed Mods: &rhttps://veilhcf.us/community/d/12-allowed-modifications\n" +
|
||||
" &7* &3Server Rules: &rhttps://veilhcf.us/community/d/118-our-rules\n" +
|
||||
spacebar
|
||||
));
|
||||
break;
|
||||
case "?teamspeak":
|
||||
case "?ts":
|
||||
case "?ts3":
|
||||
event.setCancelled(true);
|
||||
player.sendMessage(ChatColor.translateAlternateColorCodes('&',
|
||||
spacebar +
|
||||
"&9&lTeamSpeak: &7ts.veilhcf.us\n" +
|
||||
spacebar
|
||||
));
|
||||
break;
|
||||
}
|
||||
if(command.startsWith("?") && command.trim().split(" ").length == 1 && !event.isCancelled() && command.toCharArray().length > 1){
|
||||
event.setCancelled(true);
|
||||
player.chat("?help");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
package com.sergivb01.base.command.module.chat;
|
||||
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class ClearChatCommand
|
||||
extends BaseCommand{
|
||||
private static final String BYPASS_PERMISSION = "command.clearchat.bypass";
|
||||
private static final String[] CLEAR_MESSAGE = new String[101];
|
||||
|
||||
public ClearChatCommand(){
|
||||
super("clearchat", "Clears the server chat for players.");
|
||||
this.setAliases(new String[]{"cc"});
|
||||
this.setUsage("/(command) <reason>");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
if(args.length == 0){
|
||||
sender.sendMessage(this.getUsage());
|
||||
return true;
|
||||
}
|
||||
String reason = StringUtils.join(args, ' ');
|
||||
for(Player player : Bukkit.getOnlinePlayers()){
|
||||
if(player.hasPermission(BYPASS_PERMISSION)) continue;
|
||||
player.sendMessage(CLEAR_MESSAGE);
|
||||
}
|
||||
Command.broadcastCommandMessage(sender, ChatColor.YELLOW + "You have cleared chat for: " + reason, true);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
package com.sergivb01.base.command.module.chat;
|
||||
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.util.JavaUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.lang.time.DurationFormatUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class DisableChatCommand
|
||||
extends BaseCommand{
|
||||
private static final long DEFAULT_DELAY;
|
||||
|
||||
static{
|
||||
DEFAULT_DELAY = TimeUnit.MINUTES.toMillis(3L);
|
||||
}
|
||||
|
||||
private final BasePlugin plugin;
|
||||
|
||||
public DisableChatCommand(BasePlugin plugin){
|
||||
super("disablechat", "Disables the chat for non-staff.");
|
||||
this.setAliases(new String[]{"mutechat", "restrictchat", "mc", "rc"});
|
||||
this.setUsage("/(command)");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
long oldTicks = this.plugin.getServerHandler().getRemainingChatDisabledMillis();
|
||||
long newTicks;
|
||||
if(oldTicks > 0L){
|
||||
newTicks = 0L;
|
||||
}else if(args.length < 1){
|
||||
newTicks = DisableChatCommand.DEFAULT_DELAY;
|
||||
}else{
|
||||
newTicks = JavaUtils.parse(StringUtils.join(args, ' ', 0, args.length));
|
||||
if(newTicks == -1L){
|
||||
sender.sendMessage(ChatColor.RED + "Invalid duration, use the correct format: 10m1s");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
this.plugin.getServerHandler().setChatDisabledMillis(newTicks);
|
||||
Command.broadcastCommandMessage(sender, ChatColor.translateAlternateColorCodes('&', "&eYou have " + ((newTicks > 0L) ? ("disabled") : ("enabled")) + " chat."));
|
||||
Bukkit.broadcastMessage(ChatColor.YELLOW + "Global chat is now " + ((newTicks > 0L) ? (ChatColor.RED + "disabled" + ChatColor.YELLOW + " for " + ChatColor.GOLD + DurationFormatUtils.formatDurationWords(newTicks, true, true)) : (ChatColor.GREEN + "enabled")));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package com.sergivb01.base.command.module.chat;
|
||||
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class FamousCommand
|
||||
extends BaseCommand{
|
||||
|
||||
public FamousCommand(BasePlugin plugin){
|
||||
super("famous", "Check requirements");
|
||||
this.setUsage("/(command)");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
sender.sendMessage(ChatColor.GRAY + BukkitUtils.STRAIGHT_LINE_DEFAULT);
|
||||
sender.sendMessage(ChatColor.GOLD.toString() + ChatColor.BOLD + "Famous Requirments");
|
||||
sender.sendMessage(ChatColor.DARK_GRAY + " * " + ChatColor.WHITE + "3,000 Subscribers");
|
||||
sender.sendMessage(ChatColor.DARK_GRAY + " * " + ChatColor.WHITE + "1 Video");
|
||||
sender.sendMessage(ChatColor.GRAY + BukkitUtils.STRAIGHT_LINE_DEFAULT);
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,213 @@
|
|||
package com.sergivb01.base.command.module.chat;
|
||||
|
||||
import com.sergivb01.base.BaseConstants;
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.StaffPriority;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.base.user.BaseUser;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import com.sergivb01.util.command.CommandArgument;
|
||||
import com.sergivb01.util.command.CommandWrapper;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class IgnoreCommand
|
||||
extends BaseCommand{
|
||||
private final CommandWrapper handler;
|
||||
|
||||
public IgnoreCommand(BasePlugin plugin){
|
||||
super("ignore", "Ignores a player from messages.");
|
||||
this.setUsage("/(command) <list|add|del|clear> [playerName]");
|
||||
ArrayList<CommandArgument> arguments = new ArrayList<CommandArgument>(4);
|
||||
arguments.add(new IgnoreClearArgument(plugin));
|
||||
arguments.add(new IgnoreListArgument(plugin));
|
||||
arguments.add(new IgnoreAddArgument(plugin));
|
||||
arguments.add(new IgnoreDeleteArgument(plugin));
|
||||
Collections.sort(arguments, new CommandWrapper.ArgumentComparator());
|
||||
this.handler = new CommandWrapper(arguments);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
return this.handler.onCommand(sender, command, label, args);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return this.handler.onTabComplete(sender, command, label, args);
|
||||
}
|
||||
|
||||
private static class IgnoreDeleteArgument
|
||||
extends CommandArgument{
|
||||
private final BasePlugin plugin;
|
||||
|
||||
public IgnoreDeleteArgument(BasePlugin plugin){
|
||||
super("delete", "Un-ignores a player.");
|
||||
this.plugin = plugin;
|
||||
this.aliases = new String[]{"del", "remove", "unset"};
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsage(String label){
|
||||
return "" + '/' + label + ' ' + this.getName() + " <playerName>";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(ChatColor.RED + "This command is only executable by players.");
|
||||
return true;
|
||||
}
|
||||
if(args.length < 2){
|
||||
sender.sendMessage(ChatColor.RED + "Usage: " + this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage(ChatColor.YELLOW + "You are " + (this.plugin.getUserManager().getUser(((Player) sender).getUniqueId()).getIgnoring().remove(args[1]) ? new StringBuilder().append(ChatColor.RED).append("not").toString() : new StringBuilder().append(ChatColor.GREEN).append("no longer").toString()) + ChatColor.YELLOW + " ignoring " + args[1] + '.');
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private static class IgnoreListArgument
|
||||
extends CommandArgument{
|
||||
private final BasePlugin plugin;
|
||||
|
||||
public IgnoreListArgument(BasePlugin plugin){
|
||||
super("list", "Lists all ignored players.");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsage(String label){
|
||||
return "" + '/' + label + ' ' + this.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(ChatColor.RED + "This command is only executable by players.");
|
||||
return true;
|
||||
}
|
||||
Set<String> ignoring = this.plugin.getUserManager().getUser(((Player) sender).getUniqueId()).getIgnoring();
|
||||
if(ignoring.isEmpty()){
|
||||
sender.sendMessage(ChatColor.YELLOW + "You are not ignoring anyone.");
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage(ChatColor.YELLOW + "You are ignoring (" + ignoring.size() + ") members: " + '[' + ChatColor.WHITE + StringUtils.join(ignoring, ", ") + ChatColor.YELLOW + ']');
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
||||
private static class IgnoreClearArgument
|
||||
extends CommandArgument{
|
||||
private final BasePlugin plugin;
|
||||
|
||||
public IgnoreClearArgument(BasePlugin plugin){
|
||||
super("clear", "Clears all ignored players.");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsage(String label){
|
||||
return "" + '/' + label + ' ' + this.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(ChatColor.RED + "This command is only executable by players.");
|
||||
return true;
|
||||
}
|
||||
Set<String> ignoring = this.plugin.getUserManager().getUser(((Player) sender).getUniqueId()).getIgnoring();
|
||||
if(ignoring.isEmpty()){
|
||||
sender.sendMessage(ChatColor.RED + "Your ignore list is already empty.");
|
||||
return true;
|
||||
}
|
||||
ignoring.clear();
|
||||
sender.sendMessage(ChatColor.YELLOW + "Your ignore list has been cleared.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
||||
private static class IgnoreAddArgument
|
||||
extends CommandArgument{
|
||||
private final BasePlugin plugin;
|
||||
|
||||
public IgnoreAddArgument(BasePlugin plugin){
|
||||
super("add", "Starts ignoring a player.");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsage(String label){
|
||||
return "" + '/' + label + ' ' + this.getName() + " <playerName>";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(ChatColor.RED + "This command is only executable by players.");
|
||||
return true;
|
||||
}
|
||||
if(args.length < 2){
|
||||
sender.sendMessage(this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
Player player = (Player) sender;
|
||||
UUID uuid = player.getUniqueId();
|
||||
BaseUser baseUser = this.plugin.getUserManager().getUser(uuid);
|
||||
Set<String> ignoring = baseUser.getIgnoring();
|
||||
Player target = BukkitUtils.playerWithNameOrUUID(args[1]);
|
||||
if(target == null || !BaseCommand.canSee(sender, target)){
|
||||
sender.sendMessage(String.format(BaseConstants.PLAYER_WITH_NAME_OR_UUID_NOT_FOUND, args[1]));
|
||||
return true;
|
||||
}
|
||||
if(sender.equals(target)){
|
||||
sender.sendMessage(ChatColor.RED + "You may not ignore yourself.");
|
||||
return true;
|
||||
}
|
||||
StaffPriority selfPriority = StaffPriority.of(player);
|
||||
if(StaffPriority.of(target).isMoreThan(selfPriority)){
|
||||
sender.sendMessage(ChatColor.RED + "You cannot ignore this player.");
|
||||
return true;
|
||||
}
|
||||
if(target.hasPermission("command.ignore.exempt")){
|
||||
sender.sendMessage(ChatColor.RED + "You do not have permission to ignore this player.");
|
||||
return true;
|
||||
}
|
||||
String targetName = target.getName();
|
||||
if(ignoring.add(target.getName())){
|
||||
sender.sendMessage(ChatColor.GOLD + "You are now ignoring " + targetName + '.');
|
||||
}else{
|
||||
sender.sendMessage(ChatColor.RED + "You are already ignoring someone named " + targetName + '.');
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return args.length == 2 ? null : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
package com.sergivb01.base.command.module.chat;
|
||||
|
||||
import com.sergivb01.base.BaseConstants;
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.base.event.PlayerMessageEvent;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public class MessageCommand
|
||||
extends BaseCommand{
|
||||
public MessageCommand(BasePlugin plugin){
|
||||
super("message", "Sends a message to a recipient(s).");
|
||||
this.setAliases(new String[]{"msg", "m", "whisper", "w", "tell"});
|
||||
this.setUsage("/(command) <playerName> <message>");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(ChatColor.RED + "This command is only executable for players.");
|
||||
return true;
|
||||
}
|
||||
if(args.length < 2){
|
||||
sender.sendMessage(ChatColor.RED + "Usage: " + this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
Player player = (Player) sender;
|
||||
Player target = BukkitUtils.playerWithNameOrUUID(args[0]);
|
||||
if(target == null || !BaseCommand.canSee(sender, target)){
|
||||
sender.sendMessage(String.format(BaseConstants.PLAYER_WITH_NAME_OR_UUID_NOT_FOUND, args[0]));
|
||||
return true;
|
||||
}
|
||||
String message = StringUtils.join(args, ' ', 1, args.length);
|
||||
Set<Player> recipients = Collections.singleton(target);
|
||||
PlayerMessageEvent playerMessageEvent = new PlayerMessageEvent(player, recipients, message, false);
|
||||
Bukkit.getPluginManager().callEvent(playerMessageEvent);
|
||||
if(!playerMessageEvent.isCancelled()){
|
||||
playerMessageEvent.send();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,218 @@
|
|||
package com.sergivb01.base.command.module.chat;
|
||||
|
||||
import com.google.common.collect.Iterables;
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.base.user.ServerParticipator;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import com.sergivb01.util.JavaUtils;
|
||||
import com.sergivb01.util.command.CommandArgument;
|
||||
import com.sergivb01.util.command.CommandWrapper;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class MessageSpyCommand
|
||||
extends BaseCommand{
|
||||
private final CommandWrapper handler;
|
||||
|
||||
public MessageSpyCommand(BasePlugin plugin){
|
||||
super("socialspy", "Spies on the PM's of a player.");
|
||||
this.setUsage("/(command) <list|add|del|clear> [playerName]");
|
||||
ArrayList<CommandArgument> arguments = new ArrayList<CommandArgument>(4);
|
||||
arguments.add(new MessageSpyListArgument(plugin));
|
||||
arguments.add(new IgnoreClearArgument(plugin));
|
||||
arguments.add(new MessageSpyAddArgument(plugin));
|
||||
arguments.add(new MessageSpyDeleteArgument(plugin));
|
||||
Collections.sort(arguments, new CommandWrapper.ArgumentComparator());
|
||||
this.handler = new CommandWrapper(arguments);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
return this.handler.onCommand(sender, command, label, args);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return this.handler.onTabComplete(sender, command, label, args);
|
||||
}
|
||||
|
||||
private static class MessageSpyListArgument
|
||||
extends CommandArgument{
|
||||
private final BasePlugin plugin;
|
||||
|
||||
public MessageSpyListArgument(BasePlugin plugin){
|
||||
super("list", "Lists all players you're spying on.");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsage(String label){
|
||||
return "" + '/' + label + ' ' + this.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
ServerParticipator participator = this.plugin.getUserManager().getParticipator(sender);
|
||||
if(participator == null){
|
||||
sender.sendMessage(ChatColor.RED + "You are not able to message spy.");
|
||||
return true;
|
||||
}
|
||||
LinkedHashSet<String> spyingNames = new LinkedHashSet<String>();
|
||||
Set<String> messageSpying = participator.getMessageSpying();
|
||||
if(messageSpying.size() == 1 && Iterables.getOnlyElement(messageSpying).equals("all")){
|
||||
sender.sendMessage(ChatColor.GRAY + "You are currently spying on the messages of all players.");
|
||||
return true;
|
||||
}
|
||||
for(String spyingId : messageSpying){
|
||||
String name = Bukkit.getOfflinePlayer(UUID.fromString(spyingId)).getName();
|
||||
if(name == null) continue;
|
||||
spyingNames.add(name);
|
||||
}
|
||||
if(spyingNames.isEmpty()){
|
||||
sender.sendMessage(ChatColor.RED + "You are not spying on the messages of any players.");
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage(ChatColor.GRAY + "You are currently spying on the messages of (" + spyingNames.size() + " players): " + ChatColor.RED + StringUtils.join(spyingNames, new StringBuilder().append(ChatColor.GRAY.toString()).append(", ").append(ChatColor.RED).toString()) + ChatColor.GRAY + '.');
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
private static class IgnoreClearArgument
|
||||
extends CommandArgument{
|
||||
private final BasePlugin plugin;
|
||||
|
||||
public IgnoreClearArgument(BasePlugin plugin){
|
||||
super("clear", "Clears your current spy list.");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsage(String label){
|
||||
return "" + '/' + label + ' ' + this.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
ServerParticipator participator = this.plugin.getUserManager().getParticipator(sender);
|
||||
if(participator == null){
|
||||
sender.sendMessage(ChatColor.RED + "You are not able to message spy.");
|
||||
return true;
|
||||
}
|
||||
participator.getMessageSpying().clear();
|
||||
sender.sendMessage(ChatColor.YELLOW + "You are no longer spying the messages of anyone.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
private static class MessageSpyAddArgument
|
||||
extends CommandArgument{
|
||||
private final BasePlugin plugin;
|
||||
|
||||
public MessageSpyAddArgument(BasePlugin plugin){
|
||||
super("add", "Adds a player to your message spy list.");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsage(String label){
|
||||
return "" + '/' + label + ' ' + this.getName() + " <all|playerName>";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
ServerParticipator participator = this.plugin.getUserManager().getParticipator(sender);
|
||||
if(participator == null){
|
||||
sender.sendMessage(ChatColor.RED + "You are not able to message spy.");
|
||||
return true;
|
||||
}
|
||||
if(args.length < 2){
|
||||
sender.sendMessage(ChatColor.RED + "Usage: " + this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
Set<String> messageSpying = participator.getMessageSpying();
|
||||
boolean all = messageSpying.contains("all");
|
||||
if(all || JavaUtils.containsIgnoreCase(messageSpying, args[1])){
|
||||
sender.sendMessage(ChatColor.RED + "You are already spying on the messages of " + (all ? "all players" : args[1]) + '.');
|
||||
return true;
|
||||
}
|
||||
if(args[1].equalsIgnoreCase("all")){
|
||||
messageSpying.clear();
|
||||
messageSpying.add("all");
|
||||
sender.sendMessage(ChatColor.GREEN + "You are now spying on the messages of all players.");
|
||||
return true;
|
||||
}
|
||||
OfflinePlayer offlineTarget = Bukkit.getOfflinePlayer(args[1]);
|
||||
if(!offlineTarget.hasPlayedBefore() && offlineTarget.getPlayer() == null){
|
||||
sender.sendMessage(ChatColor.GOLD + "Player '" + ChatColor.WHITE + args[1] + ChatColor.GOLD + "' not found.");
|
||||
return true;
|
||||
}
|
||||
if(offlineTarget.equals(sender)){
|
||||
sender.sendMessage(ChatColor.RED + "You cannot spy on the messages of yourself.");
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage(ChatColor.YELLOW + "You are " + (messageSpying.add(offlineTarget.getUniqueId().toString()) ? new StringBuilder().append(ChatColor.GREEN).append("now").toString() : new StringBuilder().append(ChatColor.RED).append("already").toString()) + ChatColor.YELLOW + " spying on the messages of " + offlineTarget.getName() + '.');
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return args.length == 2 ? null : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
||||
private static class MessageSpyDeleteArgument
|
||||
extends CommandArgument{
|
||||
private final BasePlugin plugin;
|
||||
|
||||
public MessageSpyDeleteArgument(BasePlugin plugin){
|
||||
super("delete", "Deletes a player from your message spy list.");
|
||||
this.plugin = plugin;
|
||||
this.aliases = new String[]{"del", "remove"};
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsage(String label){
|
||||
return "" + '/' + label + ' ' + this.getName() + " <playerName>";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
ServerParticipator participator = this.plugin.getUserManager().getParticipator(sender);
|
||||
if(participator == null){
|
||||
sender.sendMessage(ChatColor.RED + "You are not able to message spy.");
|
||||
return true;
|
||||
}
|
||||
if(args.length < 2){
|
||||
sender.sendMessage(ChatColor.RED + "Usage: " + this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
Set<String> messageSpying = participator.getMessageSpying();
|
||||
if(args[1].equalsIgnoreCase("all")){
|
||||
messageSpying.remove("all");
|
||||
sender.sendMessage(ChatColor.RED + "You are no longer spying on the messages of all players.");
|
||||
return true;
|
||||
}
|
||||
OfflinePlayer offlineTarget = BukkitUtils.offlinePlayerWithNameOrUUID(args[1]);
|
||||
if(!offlineTarget.hasPlayedBefore() && !offlineTarget.isOnline()){
|
||||
sender.sendMessage(ChatColor.GOLD + "Player named or with UUID '" + ChatColor.WHITE + args[1] + ChatColor.GOLD + "' not found.");
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage("You are " + (messageSpying.remove(offlineTarget.getUniqueId().toString()) ? new StringBuilder().append(ChatColor.GREEN).append("no longer").toString() : new StringBuilder().append(ChatColor.RED).append("still not").toString()) + ChatColor.YELLOW + " spying on the messages of " + offlineTarget.getName() + '.');
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return args.length == 2 ? null : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
package com.sergivb01.base.command.module.chat;
|
||||
|
||||
import com.google.common.collect.Sets;
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.base.event.PlayerMessageEvent;
|
||||
import com.sergivb01.base.user.BaseUser;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class ReplyCommand
|
||||
extends BaseCommand{
|
||||
private static final long VANISH_REPLY_TIMEOUT = TimeUnit.SECONDS.toMillis(45);
|
||||
private final BasePlugin plugin;
|
||||
|
||||
public ReplyCommand(BasePlugin plugin){
|
||||
super("reply", "Replies to the last conversing player.");
|
||||
this.setAliases(new String[]{"r"});
|
||||
this.setUsage("/(command) <message>");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
Player target;
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(ChatColor.RED + "This command is only executable for players.");
|
||||
return true;
|
||||
}
|
||||
Player player = (Player) sender;
|
||||
UUID uuid = player.getUniqueId();
|
||||
BaseUser baseUser = this.plugin.getUserManager().getUser(uuid);
|
||||
UUID lastReplied = baseUser.getLastRepliedTo();
|
||||
Player player2 = target = lastReplied == null ? null : Bukkit.getPlayer(lastReplied);
|
||||
if(args.length < 1){
|
||||
sender.sendMessage(ChatColor.RED + "Usage: " + this.getUsage(label));
|
||||
if(lastReplied != null && BaseCommand.canSee(sender, target)){
|
||||
sender.sendMessage(ChatColor.RED + "You are in a conversation with " + target.getName() + '.');
|
||||
}
|
||||
return true;
|
||||
}
|
||||
long millis = System.currentTimeMillis();
|
||||
if(target == null || !BaseCommand.canSee(sender, target) && millis - baseUser.getLastReceivedMessageMillis() > VANISH_REPLY_TIMEOUT){
|
||||
sender.sendMessage(ChatColor.RED + "There is no player to reply to.");
|
||||
return true;
|
||||
}
|
||||
String message = StringUtils.join(args, ' ');
|
||||
HashSet recipients = Sets.newHashSet((Object[]) new Player[]{target});
|
||||
PlayerMessageEvent playerMessageEvent = new PlayerMessageEvent(player, recipients, message, false);
|
||||
Bukkit.getPluginManager().callEvent(playerMessageEvent);
|
||||
if(!playerMessageEvent.isCancelled()){
|
||||
playerMessageEvent.send();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
package com.sergivb01.base.command.module.chat;
|
||||
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.util.JavaUtils;
|
||||
import org.apache.commons.lang.time.DurationFormatUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class SlowChatCommand
|
||||
extends BaseCommand{
|
||||
private static final long DEFAULT_DELAY = TimeUnit.MINUTES.toMillis(5);
|
||||
private final BasePlugin plugin;
|
||||
|
||||
public SlowChatCommand(BasePlugin plugin){
|
||||
super("slowchat", "Slows the chat down for non-staff.");
|
||||
this.setAliases(new String[]{"slow"});
|
||||
this.setUsage("/(command)");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
Long newTicks;
|
||||
long oldTicks = this.plugin.getServerHandler().getRemainingChatSlowedMillis();
|
||||
if(oldTicks > 0){
|
||||
newTicks = (long) 0;
|
||||
}else if(args.length < 1){
|
||||
newTicks = DEFAULT_DELAY;
|
||||
}else{
|
||||
newTicks = JavaUtils.parse(args[0]);
|
||||
if(newTicks == -1){
|
||||
sender.sendMessage(ChatColor.RED + "Invalid duration, use the correct format: 10m1s");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
this.plugin.getServerHandler().setChatSlowedMillis(newTicks);
|
||||
Command.broadcastCommandMessage(sender, ChatColor.translateAlternateColorCodes('&', "&eYou have " + (newTicks > 0 ? " slowed down chat." : String.valueOf(ChatColor.YELLOW) + " de-restricted chat.")));
|
||||
Bukkit.broadcastMessage(ChatColor.YELLOW + "Global chat is" + (newTicks > 0 ? " now slowed down for " + DurationFormatUtils.formatDurationWords(newTicks, true, true) : String.valueOf(ChatColor.YELLOW) + " no longer slowed") + ChatColor.YELLOW + '.');
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
package com.sergivb01.base.command.module.chat;
|
||||
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.base.user.BaseUser;
|
||||
import com.sergivb01.base.user.ServerParticipator;
|
||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
public class StaffChatCommand {
|
||||
|
||||
// extends BaseCommand{
|
||||
/*
|
||||
private final BasePlugin plugin;
|
||||
|
||||
public StaffChatCommand(BasePlugin plugin){
|
||||
super("staffchat", "Enters staff chat mode.");
|
||||
this.setAliases(new String[]{"sc", "ac"});
|
||||
this.setUsage("/(command) [playerName]");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
ServerParticipator target;
|
||||
ServerParticipator participator = this.plugin.getUserManager().getParticipator(sender);
|
||||
if(participator == null){
|
||||
sender.sendMessage(ChatColor.RED + "You are not allowed to do this.");
|
||||
return true;
|
||||
}
|
||||
if(args.length <= 0){
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(ChatColor.RED + "Usage: /" + label + " <message|playerName>");
|
||||
return true;
|
||||
}
|
||||
target = participator;
|
||||
}else{
|
||||
Player targetPlayer = Bukkit.getPlayerExact(args[0]);
|
||||
if(targetPlayer == null || !BaseCommand.canSee(sender, targetPlayer) || !sender.hasPermission(command.getPermission() + ".others")){
|
||||
String message = StringUtils.join(args, ' ');
|
||||
String format = ChatColor.AQUA + String.format(Locale.ENGLISH, new StringBuilder().append(ChatColor.BLUE).append("(Staff) ").append(ChatColor.AQUA).append("%1$s").append(ChatColor.GRAY).append(": ").append(ChatColor.AQUA).append("%2$s").toString(), sender.getName(), message);
|
||||
Bukkit.getConsoleSender().sendMessage(format);
|
||||
for(Player other : Bukkit.getServer().getOnlinePlayers()){
|
||||
BaseUser otherUser = this.plugin.getUserManager().getUser(other.getUniqueId());
|
||||
if(!otherUser.isStaffChatVisible() || !other.hasPermission("base.command.staffchat")) continue;
|
||||
other.sendMessage(format);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
target = this.plugin.getUserManager().getUser(targetPlayer.getUniqueId());
|
||||
}
|
||||
boolean newStaffChat = !target.isInStaffChat() || args.length >= 2 && Boolean.parseBoolean(args[1]);
|
||||
target.setInStaffChat(newStaffChat);
|
||||
sender.sendMessage(ChatColor.YELLOW + "Staff chat mode of " + target.getName() + " set to " + newStaffChat + '.');
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return null;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
package com.sergivb01.base.command.module.chat;
|
||||
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.base.user.BaseUser;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class ToggleMessagesCommand
|
||||
extends BaseCommand{
|
||||
private final BasePlugin plugin;
|
||||
|
||||
public ToggleMessagesCommand(BasePlugin plugin){
|
||||
super("togglemessages", "Toggles private messages.");
|
||||
this.setAliases(new String[]{"togglepm", "toggleprivatemessages"});
|
||||
this.setUsage("/(command)");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(ChatColor.RED + "This command is only executable for players.");
|
||||
return true;
|
||||
}
|
||||
Player player = (Player) sender;
|
||||
BaseUser baseUser = this.plugin.getUserManager().getUser(player.getUniqueId());
|
||||
boolean newToggled = !baseUser.isMessagesVisible();
|
||||
baseUser.setMessagesVisible(newToggled);
|
||||
if(newToggled){
|
||||
sender.sendMessage(ChatColor.GREEN + "You have enabled private messages.");
|
||||
return true;
|
||||
}else{
|
||||
sender.sendMessage(ChatColor.RED + "You have disabled private messages.");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
package com.sergivb01.base.command.module.chat;
|
||||
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.base.user.BaseUser;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class ToggleSoundsCommand extends BaseCommand{
|
||||
private final BasePlugin plugin;
|
||||
|
||||
public ToggleSoundsCommand(BasePlugin plugin){
|
||||
super("togglesounds", "Toggles sounds.");
|
||||
this.setAliases(new String[]{"sounds"});
|
||||
this.setUsage("/(command)");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(ChatColor.RED + "This command is only executable for players.");
|
||||
return true;
|
||||
}
|
||||
Player player = (Player) sender;
|
||||
BaseUser baseUser = this.plugin.getUserManager().getUser(player.getUniqueId());
|
||||
boolean newToggled = !baseUser.isMessagingSounds();
|
||||
baseUser.setMessagingSounds(newToggled);
|
||||
sender.sendMessage(ChatColor.YELLOW + "You have " + (newToggled ? "enabled" : "disabled") + ChatColor.YELLOW + " sounds.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
package com.sergivb01.base.command.module.chat;
|
||||
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.base.user.BaseUser;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class ToggleStaffChatCommand
|
||||
extends BaseCommand{
|
||||
private final BasePlugin plugin;
|
||||
|
||||
public ToggleStaffChatCommand(BasePlugin plugin){
|
||||
super("togglesc", "Toggles private messages.");
|
||||
this.setAliases(new String[]{"toggleac", "togglestaffchat"});
|
||||
this.setUsage("/(command)");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(ChatColor.RED + "This command is only executable for players.");
|
||||
return true;
|
||||
}
|
||||
Player player = (Player) sender;
|
||||
BaseUser baseUser = this.plugin.getUserManager().getUser(player.getUniqueId());
|
||||
boolean newToggled = !baseUser.isStaffChatVisible();
|
||||
baseUser.setStaffChatVisible(newToggled);
|
||||
sender.sendMessage(ChatColor.YELLOW + "You have turned staffchat visibility " + (newToggled ? String.valueOf(ChatColor.GREEN) + "on" : String.valueOf(ChatColor.RED) + "off") + ChatColor.YELLOW + '.');
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package com.sergivb01.base.command.module.chat;
|
||||
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class YoutubeCommand
|
||||
extends BaseCommand{
|
||||
|
||||
public YoutubeCommand(BasePlugin plugin){
|
||||
super("youtube", "Check requirements");
|
||||
this.setUsage("/(command)");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
sender.sendMessage(ChatColor.GRAY + BukkitUtils.STRAIGHT_LINE_DEFAULT);
|
||||
sender.sendMessage(ChatColor.GOLD.toString() + ChatColor.BOLD + "YouTuber Requirments");
|
||||
sender.sendMessage(ChatColor.DARK_GRAY + " * " + ChatColor.WHITE + "1000 Subscribers");
|
||||
sender.sendMessage(ChatColor.DARK_GRAY + " * " + ChatColor.WHITE + "1 Video");
|
||||
sender.sendMessage(ChatColor.GRAY + BukkitUtils.STRAIGHT_LINE_DEFAULT);
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.BaseConstants;
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class AmivisCommand
|
||||
extends BaseCommand{
|
||||
private final BasePlugin plugin;
|
||||
|
||||
public AmivisCommand(BasePlugin plugin){
|
||||
super("amivis", "Check if a player is visible.");
|
||||
this.setUsage("/(command) <playerName> [targetName]");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
boolean vanished;
|
||||
Player target;
|
||||
if(args.length > 0){
|
||||
target = BukkitUtils.playerWithNameOrUUID(args[0]);
|
||||
}else{
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
target = (Player) sender;
|
||||
}
|
||||
if(target == null || !BaseCommand.canSee(sender, target)){
|
||||
sender.sendMessage(String.format(BaseConstants.PLAYER_WITH_NAME_OR_UUID_NOT_FOUND, args[0]));
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage(ChatColor.YELLOW + target.getName() + " is " + (this.plugin.getUserManager().getUser(target.getUniqueId()).isVanished() ? "in vanish" : "not in vanish") + '.');
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return args.length == 1 ? null : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,130 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.google.common.base.Strings;
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.util.JavaUtils;
|
||||
import com.sergivb01.util.command.CommandArgument;
|
||||
import com.sergivb01.util.command.CommandWrapper;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.lang.time.DurationFormatUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class AutoRestartCommand
|
||||
extends BaseCommand{
|
||||
private final CommandWrapper handler;
|
||||
|
||||
public AutoRestartCommand(BasePlugin plugin){
|
||||
super("autorestart", "Allows management of server restarts.");
|
||||
this.setUsage("/(command) <cancel|time|schedule>");
|
||||
ArrayList<CommandArgument> arguments = new ArrayList<CommandArgument>(3);
|
||||
arguments.add(new AutoRestartCancelArgument(plugin));
|
||||
arguments.add(new AutoRestartScheduleArgument(plugin));
|
||||
arguments.add(new AutoRestartTimeArgument(plugin));
|
||||
arguments.sort(new CommandWrapper.ArgumentComparator());
|
||||
this.handler = new CommandWrapper(arguments);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
return this.handler.onCommand(sender, command, label, args);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return this.handler.onTabComplete(sender, command, label, args);
|
||||
}
|
||||
|
||||
private static class AutoRestartTimeArgument
|
||||
extends CommandArgument{
|
||||
private final BasePlugin plugin;
|
||||
|
||||
public AutoRestartTimeArgument(BasePlugin plugin){
|
||||
super("time", "Gets the remaining time until next restart.");
|
||||
this.plugin = plugin;
|
||||
this.aliases = new String[]{"remaining", "time"};
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsage(String label){
|
||||
return "" + '/' + label + ' ' + this.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
String reason;
|
||||
if(!this.plugin.getAutoRestartHandler().isPendingRestart()){
|
||||
sender.sendMessage(ChatColor.RED + "There is not a restart task pending.");
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage(ChatColor.AQUA + "Automatic restart task occurring in " + DurationFormatUtils.formatDurationWords(this.plugin.getAutoRestartHandler().getRemainingMilliseconds(), true, true) + (Strings.nullToEmpty(reason = this.plugin.getAutoRestartHandler().getReason()).isEmpty() ? "" : new StringBuilder().append(" for ").append(reason).toString()) + '.');
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
private static class AutoRestartScheduleArgument
|
||||
extends CommandArgument{
|
||||
private final BasePlugin plugin;
|
||||
|
||||
public AutoRestartScheduleArgument(BasePlugin plugin){
|
||||
super("schedule", "Schedule an automatic restart.");
|
||||
this.plugin = plugin;
|
||||
this.aliases = new String[]{"reschedule"};
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsage(String label){
|
||||
return "" + '/' + label + ' ' + this.getName() + " <time> [reason]";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
if(args.length < 2){
|
||||
sender.sendMessage(ChatColor.RED + "Usage: /" + label + ' ' + args[0].toLowerCase() + " <time> [reason]");
|
||||
return true;
|
||||
}
|
||||
long millis = JavaUtils.parse(args[1]);
|
||||
if(millis == -1){
|
||||
sender.sendMessage(ChatColor.RED + "Invalid duration, use the correct format: 10m1s");
|
||||
return true;
|
||||
}
|
||||
String reason = StringUtils.join(args, ' ', 2, args.length);
|
||||
this.plugin.getAutoRestartHandler().scheduleRestart(millis, reason);
|
||||
Command.broadcastCommandMessage(sender, ChatColor.YELLOW + "Scheduled a restart to occur in " + DurationFormatUtils.formatDurationWords(millis, true, true) + (reason.isEmpty() ? "" : new StringBuilder().append(" for ").append(reason).toString()) + '.');
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
private static class AutoRestartCancelArgument
|
||||
extends CommandArgument{
|
||||
private final BasePlugin plugin;
|
||||
|
||||
public AutoRestartCancelArgument(BasePlugin plugin){
|
||||
super("cancel", "Cancels the current automatic restart.");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsage(String label){
|
||||
return "" + '/' + label + ' ' + this.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
if(!this.plugin.getAutoRestartHandler().isPendingRestart()){
|
||||
sender.sendMessage(ChatColor.RED + "There is not a restart task pending.");
|
||||
return true;
|
||||
}
|
||||
this.plugin.getAutoRestartHandler().cancelRestart();
|
||||
sender.sendMessage(ChatColor.YELLOW + "Automatic restart task cancelled.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.google.common.primitives.Ints;
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class ClearLagg
|
||||
extends BaseCommand{
|
||||
public ClearLagg(){
|
||||
super("clearlagg", "Clears the lag on the server");
|
||||
this.setAliases(new String[]{"cl", "laggclear", "clearlag", "clag"});
|
||||
this.setUsage("/(command) [Delay]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
if(args.length == 0){
|
||||
sender.sendMessage(this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
if(args.length == 1){
|
||||
if(Ints.tryParse(args[0]) == null){
|
||||
sender.sendMessage(ChatColor.RED + "Must be a number");
|
||||
return true;
|
||||
}
|
||||
long duration = Integer.parseInt(args[0]);
|
||||
Command.broadcastCommandMessage(sender, ChatColor.YELLOW + "Changed the Clear Lag From " + BasePlugin.getPlugin().getServerHandler().getClearlagdelay() + " To " + Ints.tryParse(args[0]), true);
|
||||
//BasePlugin.getPlugin().getServerHandler().setClearlagdelay((int)duration);
|
||||
|
||||
BasePlugin.getPlugin().getClearEntityHandler().cancel();
|
||||
BasePlugin.getPlugin().getClearEntityHandler().runTaskTimer(BasePlugin.getPlugin(), 20L, duration);
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class DonateCommand
|
||||
extends BaseCommand{
|
||||
public DonateCommand(){
|
||||
super("donate", "Donates");
|
||||
this.setAliases(new String[]{"buy"});
|
||||
this.setUsage("/(command)]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
sender.sendMessage(ChatColor.YELLOW + "You can purchase ranks at " + ChatColor.GREEN + "store.veilhcf.us");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,100 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.google.common.primitives.Ints;
|
||||
import com.sergivb01.base.BaseConstants;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.craftbukkit.v1_7_R4.inventory.CraftItemStack;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class EnchantCommand
|
||||
extends BaseCommand{
|
||||
public EnchantCommand(){
|
||||
super("enchant", "Adds enchantment to items.");
|
||||
this.setUsage("/(command) <enchantment> <level> [playerName]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
String itemName;
|
||||
Player target;
|
||||
if(args.length < 2){
|
||||
sender.sendMessage(this.getUsage());
|
||||
return true;
|
||||
}
|
||||
if(args.length > 2 && sender.hasPermission(command.getPermission() + ".others")){
|
||||
target = BukkitUtils.playerWithNameOrUUID(args[2]);
|
||||
}else{
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
target = (Player) sender;
|
||||
}
|
||||
if(target == null || !BaseCommand.canSee(sender, target)){
|
||||
sender.sendMessage(String.format(BaseConstants.PLAYER_WITH_NAME_OR_UUID_NOT_FOUND, args[0]));
|
||||
return true;
|
||||
}
|
||||
Enchantment enchantment = Enchantment.getByName(args[0]);
|
||||
if(enchantment == null){
|
||||
sender.sendMessage(ChatColor.RED + "No enchantment named '" + args[0] + "' found.");
|
||||
return true;
|
||||
}
|
||||
ItemStack stack = target.getItemInHand();
|
||||
if(stack == null || stack.getType() == Material.AIR){
|
||||
sender.sendMessage(ChatColor.RED + target.getName() + " is not holding an item.");
|
||||
return true;
|
||||
}
|
||||
Integer level = Ints.tryParse(args[1]);
|
||||
if(level == null){
|
||||
sender.sendMessage(ChatColor.RED + "'" + args[1] + "' is not a number.");
|
||||
return true;
|
||||
}
|
||||
int maxLevel = enchantment.getMaxLevel();
|
||||
if(level > maxLevel && !sender.hasPermission(command.getPermission() + ".abovemaxlevel")){
|
||||
sender.sendMessage(ChatColor.RED + "The maximum enchantment level for " + enchantment.getName() + " is " + maxLevel + '.');
|
||||
return true;
|
||||
}
|
||||
if(!enchantment.canEnchantItem(stack) && !sender.hasPermission(command.getPermission() + ".anyitem")){
|
||||
sender.sendMessage(ChatColor.RED + "Enchantment " + enchantment.getName() + " cannot be applied to that item.");
|
||||
return true;
|
||||
}
|
||||
stack.addUnsafeEnchantment(enchantment, level.intValue());
|
||||
try{
|
||||
itemName = CraftItemStack.asNMSCopy(stack).getName();
|
||||
}catch(Error ex){
|
||||
itemName = stack.getType().name();
|
||||
}
|
||||
Command.broadcastCommandMessage(sender, ChatColor.YELLOW + "Enchanted " + enchantment.getName() + " at level " + level + " onto " + itemName + " of " + target.getName() + '.');
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
switch(args.length){
|
||||
case 1:{
|
||||
Enchantment[] enchantments = Enchantment.values();
|
||||
ArrayList<String> results = new ArrayList<String>(enchantments.length);
|
||||
for(Enchantment enchantment : enchantments){
|
||||
results.add(enchantment.getName());
|
||||
}
|
||||
return BukkitUtils.getCompletions(args, results);
|
||||
}
|
||||
case 3:{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.sergivb01.base.BaseConstants;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class FeedCommand
|
||||
extends BaseCommand{
|
||||
private static final int MAX_HUNGER = 20;
|
||||
|
||||
public FeedCommand(){
|
||||
super("feed", "Feeds a player.");
|
||||
this.setUsage("/(command) <playerName>");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args){
|
||||
Player onlyTarget = null;
|
||||
Collection<Player> targets;
|
||||
if(args.length > 0 && sender.hasPermission(command.getPermission() + ".others")){
|
||||
if(args[0].equalsIgnoreCase("all") && sender.hasPermission(command.getPermission() + ".all")){
|
||||
targets = ImmutableSet.copyOf(Bukkit.getOnlinePlayers());
|
||||
}else{
|
||||
if((onlyTarget = BukkitUtils.playerWithNameOrUUID(args[0])) == null || !BaseCommand.canSee(sender, onlyTarget)){
|
||||
sender.sendMessage(String.format(BaseConstants.PLAYER_WITH_NAME_OR_UUID_NOT_FOUND, args[0]));
|
||||
return true;
|
||||
}
|
||||
targets = ImmutableSet.of(onlyTarget);
|
||||
}
|
||||
}else{
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
targets = ImmutableSet.of((onlyTarget = (Player) sender));
|
||||
}
|
||||
if(onlyTarget != null && onlyTarget.getFoodLevel() == 20){
|
||||
sender.sendMessage(ChatColor.RED + onlyTarget.getName() + " already has full hunger.");
|
||||
return true;
|
||||
}
|
||||
for(final Player target : targets){
|
||||
target.removePotionEffect(PotionEffectType.HUNGER);
|
||||
target.setFoodLevel(20);
|
||||
}
|
||||
sender.sendMessage(ChatColor.YELLOW + "Fed " + (onlyTarget == null ? "all online players" : onlyTarget.getName()) + '.');
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return args.length == 1 ? null : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.BaseConstants;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class FlyCommand
|
||||
extends BaseCommand{
|
||||
public FlyCommand(){
|
||||
super("fly", "Toggles flight mode for a player.");
|
||||
this.setUsage("/(command) <playerName>");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
Player target;
|
||||
if(args.length > 0 && sender.hasPermission(command.getPermission() + ".others")){
|
||||
target = BukkitUtils.playerWithNameOrUUID(args[0]);
|
||||
}else{
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
target = (Player) sender;
|
||||
}
|
||||
if(target == null || !BaseCommand.canSee(sender, target)){
|
||||
sender.sendMessage(String.format(BaseConstants.PLAYER_WITH_NAME_OR_UUID_NOT_FOUND, args[0]));
|
||||
return true;
|
||||
}
|
||||
boolean newFlight = !target.getAllowFlight();
|
||||
target.setAllowFlight(newFlight);
|
||||
if(newFlight){
|
||||
target.setFlying(true);
|
||||
}
|
||||
Command.broadcastCommandMessage(sender, ChatColor.YELLOW + "Flight mode of " + target.getName() + " set to " + newFlight + '.');
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return args.length == 1 ? null : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,313 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.BaseConstants;
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.base.event.PlayerFreezeEvent;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import com.sergivb01.util.ParticleEffect;
|
||||
import com.sergivb01.util.chat.ClickAction;
|
||||
import com.sergivb01.util.chat.Text;
|
||||
import net.minecraft.util.gnu.trove.map.TObjectLongMap;
|
||||
import net.minecraft.util.gnu.trove.map.hash.TObjectLongHashMap;
|
||||
import org.apache.commons.lang.time.DurationFormatUtils;
|
||||
import org.bukkit.*;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.Action;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.event.inventory.InventoryCloseEvent;
|
||||
import org.bukkit.event.player.*;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
import org.bukkit.scheduler.BukkitTask;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class FreezeCommand extends BaseCommand implements Listener{
|
||||
private static final String FREEZE_BYPASS = "base.freeze.bypass";
|
||||
public static boolean freezeALL;
|
||||
private final TObjectLongMap<UUID> frozenPlayers;
|
||||
public Inventory inv;
|
||||
private long defaultFreezeDuration;
|
||||
private long serverFrozenMillis;
|
||||
private HashSet<String> frozen;
|
||||
|
||||
public FreezeCommand(final BasePlugin plugin){
|
||||
super("freeze", "Freezes a player from moving");
|
||||
this.frozen = new HashSet<String>();
|
||||
this.frozenPlayers = (TObjectLongMap<UUID>) new TObjectLongHashMap();
|
||||
this.setUsage("/(command) <all|player>");
|
||||
this.setAliases(new String[]{"ss"});
|
||||
this.defaultFreezeDuration = TimeUnit.MINUTES.toMillis(60L);
|
||||
Bukkit.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
public boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args){
|
||||
if(args.length < 1){
|
||||
sender.sendMessage(this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
final String reason = null;
|
||||
Long freezeTicks = this.defaultFreezeDuration;
|
||||
final long millis = System.currentTimeMillis();
|
||||
if(args[0].equalsIgnoreCase("all") && sender.hasPermission(command.getPermission() + ".all")){
|
||||
if(this.serverFrozenMillis == -1){
|
||||
this.serverFrozenMillis = millis + freezeTicks;
|
||||
}else{
|
||||
this.serverFrozenMillis = -1;
|
||||
}
|
||||
for(final Player on : Bukkit.getOnlinePlayers()){
|
||||
if(this.serverFrozenMillis == -1){
|
||||
this.frozenPlayers.remove(on.getUniqueId());
|
||||
}else{
|
||||
this.frozenPlayers.put(on.getUniqueId(), this.serverFrozenMillis);
|
||||
}
|
||||
}
|
||||
Command.broadcastCommandMessage(sender, ChatColor.translateAlternateColorCodes('&', "&eYou have frozen the server."));
|
||||
Bukkit.getServer().broadcastMessage(ChatColor.YELLOW + "The server is " + ((serverFrozenMillis != -1) ? ("now frozen for " + DurationFormatUtils.formatDurationWords(freezeTicks, true, true)) : "no longer frozen") + ((reason == null) ? "" : (" with reason " + reason)) + '.');
|
||||
return true;
|
||||
}
|
||||
final Player target = Bukkit.getServer().getPlayer(args[0]);
|
||||
if(target == null || !BaseCommand.canSee(sender, target)){
|
||||
sender.sendMessage(String.format(BaseConstants.PLAYER_WITH_NAME_OR_UUID_NOT_FOUND, args[0]));
|
||||
return true;
|
||||
}
|
||||
if(target.equals(sender) && target.hasPermission("base.freeze.bypass")){
|
||||
sender.sendMessage(ChatColor.RED + "You cannot freeze yourself.");
|
||||
return true;
|
||||
}
|
||||
final UUID targetUUID = target.getUniqueId();
|
||||
final boolean shouldFreeze = this.getRemainingPlayerFrozenMillis(targetUUID) > 0L;
|
||||
final PlayerFreezeEvent playerFreezeEvent = new PlayerFreezeEvent(target, shouldFreeze);
|
||||
Bukkit.getServer().getPluginManager().callEvent(playerFreezeEvent);
|
||||
if(playerFreezeEvent.isCancelled()){
|
||||
sender.sendMessage(ChatColor.RED + "Unable to freeze " + target.getName() + '.');
|
||||
return false;
|
||||
}
|
||||
if(shouldFreeze){
|
||||
this.frozen.remove(target.getName());
|
||||
this.frozenPlayers.remove(targetUUID);
|
||||
target.closeInventory();
|
||||
target.sendMessage(ChatColor.GREEN + "You have been unfrozen.");
|
||||
Command.broadcastCommandMessage(sender, ChatColor.YELLOW + target.getName() + " is no longer frozen");
|
||||
}else{
|
||||
ParticleEffect.LAVA_SPARK.sphere(target.getPlayer(), target.getLocation(), 4.0f);
|
||||
this.frozen.add(target.getName());
|
||||
this.frozenPlayers.put(targetUUID, millis + freezeTicks);
|
||||
final String timeString = DurationFormatUtils.formatDurationWords(freezeTicks, true, true);
|
||||
this.Message(target.getName());
|
||||
|
||||
|
||||
this.inv = Bukkit.createInventory(null, 9, "Frozen");
|
||||
ItemStack freezeEng = new ItemStack(Material.PAPER, 1, (short) 3);
|
||||
ItemMeta freezeEngmeta = freezeEng.getItemMeta();
|
||||
freezeEngmeta.setLore((Arrays.asList((ChatColor.GRAY + " "), (ChatColor.RED + "You are now frozen"), (ChatColor.YELLOW + "You have 5 minutes"), (ChatColor.YELLOW + "to join Teamspeak: "), BasePlugin.getPlugin().getServerHandler().teamspeak)));
|
||||
freezeEngmeta.setDisplayName(ChatColor.GOLD + "" + ChatColor.BOLD + "FROZEN");
|
||||
freezeEng.setItemMeta(freezeEngmeta);
|
||||
inv.setItem(4, freezeEng);
|
||||
|
||||
|
||||
ItemStack admit = new ItemStack(Material.BOOK, 1, (short) 3);
|
||||
ItemMeta admitmeta = freezeEng.getItemMeta();
|
||||
admitmeta.setLore((Arrays.asList((ChatColor.GRAY + " "), (ChatColor.RED + "Click to admit"))));
|
||||
admitmeta.setDisplayName(ChatColor.DARK_RED + "" + ChatColor.BOLD + "Admit?");
|
||||
admit.setItemMeta(admitmeta);
|
||||
inv.setItem(0, admit);
|
||||
target.openInventory(inv);
|
||||
|
||||
ItemStack ts = new ItemStack(Material.WOOL, 1, (short) 5);
|
||||
ItemMeta tsMeta = ts.getItemMeta();
|
||||
tsMeta.setLore((Arrays.asList((ChatColor.GRAY + " "), (ChatColor.GREEN + "Inform staff that you are joining teamspeak"), (ChatColor.YELLOW + BasePlugin.getPlugin().getServerHandler().teamspeak))));
|
||||
tsMeta.setDisplayName(ChatColor.DARK_GREEN.toString() + ChatColor.BOLD + "Teamspeak");
|
||||
ts.setItemMeta(tsMeta);
|
||||
inv.setItem(8, ts);
|
||||
|
||||
Command.broadcastCommandMessage(sender, ChatColor.YELLOW + target.getName() + " is now frozen");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void Message(final String name){
|
||||
final HashMap<String, Long> timer = new HashMap<String, Long>();
|
||||
final Player p = Bukkit.getPlayer(name);
|
||||
final BukkitTask task = new BukkitRunnable(){
|
||||
public void run(){
|
||||
if(FreezeCommand.this.frozen.contains(name)){
|
||||
p.sendMessage(ChatColor.WHITE + "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588");
|
||||
p.sendMessage(ChatColor.WHITE + "\u2588\u2588\u2588\u2588" + ChatColor.RED + "\u2588" + ChatColor.WHITE + "\u2588\u2588\u2588\u2588");
|
||||
p.sendMessage(ChatColor.WHITE + "\u2588\u2588\u2588" + ChatColor.RED + "\u2588" + ChatColor.GOLD + ChatColor.DARK_RED + "\u2588" + ChatColor.GOLD + ChatColor.RED + "\u2588" + ChatColor.WHITE + "\u2588\u2588\u2588");
|
||||
p.sendMessage(ChatColor.WHITE + "\u2588\u2588" + ChatColor.RED + "\u2588" + ChatColor.GOLD + "\u2588" + ChatColor.DARK_RED + "\u2588" + ChatColor.GOLD + "\u2588" + ChatColor.RED + "\u2588" + ChatColor.WHITE + "\u2588\u2588");
|
||||
p.sendMessage(ChatColor.WHITE + "\u2588\u2588" + ChatColor.RED + "\u2588" + ChatColor.GOLD + "\u2588" + ChatColor.DARK_RED + "\u2588" + ChatColor.GOLD + "\u2588" + ChatColor.RED + "\u2588" + ChatColor.WHITE + "\u2588\u2588 " + ChatColor.YELLOW + "You have been frozen by a staff member.");
|
||||
p.sendMessage(ChatColor.WHITE + "\u2588\u2588" + ChatColor.RED + "\u2588" + ChatColor.GOLD + "\u2588" + ChatColor.DARK_RED + "\u2588" + ChatColor.GOLD + "\u2588" + ChatColor.RED + "\u2588" + ChatColor.WHITE + "\u2588\u2588 " + ChatColor.YELLOW + "If you logout you will be " + ChatColor.DARK_RED + ChatColor.BOLD + "BANNED" + ChatColor.YELLOW + '.');
|
||||
p.sendMessage(ChatColor.WHITE + "\u2588" + ChatColor.RED + "\u2588" + ChatColor.GOLD + "\u2588\u2588\u2588" + ChatColor.DARK_RED + ChatColor.GOLD + "\u2588\u2588" + ChatColor.RED + "\u2588" + ChatColor.WHITE + "\u2588 " + ChatColor.YELLOW + "Please connect to our Teamspeak" + ChatColor.YELLOW + '.');
|
||||
new Text(ChatColor.RED + "\u2588" + ChatColor.GOLD + "\u2588\u2588\u2588" + ChatColor.DARK_RED + "\u2588" + ChatColor.GOLD + "\u2588\u2588\u2588" + ChatColor.RED + "\u2588" + ChatColor.WHITE + ChatColor.GRAY + BasePlugin.getPlugin().getServerHandler().teamspeak + ChatColor.ITALIC + "Click me to connect" + ChatColor.GRAY + '.').setClick(ClickAction.OPEN_URL, "https://teamspeak.com").send(p);
|
||||
p.sendMessage(ChatColor.RED + "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588");
|
||||
p.sendMessage(ChatColor.WHITE + "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588");
|
||||
}else{
|
||||
this.cancel();
|
||||
}
|
||||
}
|
||||
}.runTaskTimerAsynchronously(BasePlugin.getPlugin(), 0L, 200L);
|
||||
}
|
||||
|
||||
public List<String> onTabComplete(final CommandSender sender, final Command command, final String label, final String[] args){
|
||||
return (args.length == 1) ? null : Collections.emptyList();
|
||||
}
|
||||
|
||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
|
||||
public void onEntityDamageByEntity(final EntityDamageByEntityEvent event){
|
||||
final Entity entity = event.getEntity();
|
||||
if(entity instanceof Player){
|
||||
final Player attacker = BukkitUtils.getFinalAttacker(event, false);
|
||||
if(attacker == null){
|
||||
return;
|
||||
}
|
||||
final Player player = (Player) entity;
|
||||
if((this.getRemainingServerFrozenMillis() > 0L || this.getRemainingPlayerFrozenMillis(player.getUniqueId()) > 0L) && !player.hasPermission("base.freeze.bypass")){
|
||||
attacker.sendMessage(ChatColor.RED + player.getName() + " is currently frozen, you can not attack them.");
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
if((this.getRemainingServerFrozenMillis() > 0L || this.getRemainingPlayerFrozenMillis(attacker.getUniqueId()) > 0L) && !attacker.hasPermission("base.freeze.bypass")){
|
||||
event.setCancelled(true);
|
||||
attacker.sendMessage(ChatColor.RED + "You may not attack players whilst frozen.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
|
||||
public void onPreCommandProcess(final PlayerCommandPreprocessEvent event){
|
||||
final Player player = event.getPlayer();
|
||||
if((this.getRemainingServerFrozenMillis() > 0L || this.getRemainingPlayerFrozenMillis(player.getUniqueId()) > 0L) && !player.hasPermission("base.freeze.bypass")){
|
||||
event.setCancelled(true);
|
||||
player.sendMessage(ChatColor.RED + "You may not use commands whilst frozen.");
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
|
||||
public void onDrop(final PlayerDropItemEvent e){
|
||||
final Player player = e.getPlayer();
|
||||
if((this.getRemainingServerFrozenMillis() > 0L || this.getRemainingPlayerFrozenMillis(player.getUniqueId()) > 0L) && !player.hasPermission("base.freeze.bypass")){
|
||||
e.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
|
||||
public void onChestOpen(PlayerInteractEvent event){
|
||||
if((this.getRemainingServerFrozenMillis() > 0L || this.getRemainingPlayerFrozenMillis(event.getPlayer().getUniqueId()) > 0L) && !event.getPlayer().hasPermission("base.freeze.bypass")){
|
||||
if(event.getAction() == Action.RIGHT_CLICK_BLOCK && event.getClickedBlock().getType() == Material.CHEST || event.getAction() == Action.RIGHT_CLICK_BLOCK && event.getClickedBlock().getType() == Material.CHEST){
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
|
||||
public void onPlayerMove(final PlayerMoveEvent event){
|
||||
final Location from = event.getFrom();
|
||||
final Location to = event.getTo();
|
||||
if(from.getBlockX() == to.getBlockX() && from.getBlockZ() == to.getBlockZ()){
|
||||
return;
|
||||
}
|
||||
final Player player = event.getPlayer();
|
||||
if((this.getRemainingServerFrozenMillis() > 0L || this.getRemainingPlayerFrozenMillis(player.getUniqueId()) > 0L) && !player.hasPermission("base.freeze.bypass")){
|
||||
event.setTo(event.getFrom());
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerQuit(final PlayerQuitEvent e){
|
||||
if(this.frozen.contains(e.getPlayer().getName())){
|
||||
for(final Player online : Bukkit.getOnlinePlayers()){
|
||||
if(online.hasPermission("base.command.freeze")){
|
||||
Player p = e.getPlayer();
|
||||
this.frozen.remove(p.getName());
|
||||
this.frozenPlayers.remove(p.getUniqueId());
|
||||
online.sendMessage(" ");
|
||||
online.sendMessage(ChatColor.translateAlternateColorCodes('&', "&c&l" + p.getName() + " has logged out while frozen."));
|
||||
// new Text(ChatColor.YELLOW + p.getName() + ChatColor.RED + " has logged out while frozen. " + ChatColor.GRAY + "(Click to ban)").setHoverText(ChatColor.YELLOW + "Click to ban " + p.getName()).setClick(ClickAction.RUN_COMMAND, "/ban " + p.getName() + " Disconnected while frozen").send(online);
|
||||
online.sendMessage(" ");
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public long getRemainingServerFrozenMillis(){
|
||||
return this.serverFrozenMillis - System.currentTimeMillis();
|
||||
}
|
||||
|
||||
public long getRemainingPlayerFrozenMillis(final UUID uuid){
|
||||
final long remaining = this.frozenPlayers.get(uuid);
|
||||
if(remaining == this.frozenPlayers.getNoEntryValue()){
|
||||
return 0L;
|
||||
}
|
||||
return remaining - System.currentTimeMillis();
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onInvClose(InventoryCloseEvent e){
|
||||
|
||||
Player player = (Player) e.getPlayer();
|
||||
|
||||
if((this.getRemainingServerFrozenMillis() > 0L || this.getRemainingPlayerFrozenMillis(player.getUniqueId()) > 0L) && !player.hasPermission("base.freeze.bypass")){
|
||||
|
||||
//Cant reopen an inventory in the same tick as the InventoryCloseEvent so we wait 1 tick to open it.
|
||||
new BukkitRunnable(){
|
||||
@Override
|
||||
public void run(){
|
||||
player.openInventory(inv);
|
||||
}
|
||||
}.runTaskLater(BasePlugin.getPlugin(), 1);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onInventoryClick(InventoryClickEvent event){
|
||||
Player player = (Player) event.getWhoClicked();
|
||||
ItemStack clicked = event.getCurrentItem();
|
||||
Inventory inventory = event.getInventory();
|
||||
if(inventory.getName().equals("Frozen")){
|
||||
if(clicked.getType() == Material.BOOK){
|
||||
for(final Player online : Bukkit.getOnlinePlayers()){
|
||||
if(online.hasPermission("base.command.freeze")){
|
||||
online.sendMessage(" ");
|
||||
online.sendMessage(ChatColor.translateAlternateColorCodes('&', "&c&l" + player.getName() + " has clicked to admit."));
|
||||
// new Text(ChatColor.RED + player.getName() + " has clicked to admit").send(online);
|
||||
online.sendMessage(" ");
|
||||
online.playSound(player.getLocation(), Sound.ANVIL_BREAK, 1.25F, 1.25F);
|
||||
inv.setItem(0, new ItemStack(Material.AIR));
|
||||
}
|
||||
}
|
||||
}
|
||||
if(clicked.getType() == Material.WOOL){
|
||||
for(final Player online : Bukkit.getOnlinePlayers()){
|
||||
if(online.hasPermission("base.command.freeze")){
|
||||
online.sendMessage(" ");
|
||||
online.sendMessage(ChatColor.translateAlternateColorCodes('&', "&a&l" + player.getName() + " has said he/she is joining teamspeak."));
|
||||
online.sendMessage(" ");
|
||||
online.playSound(player.getLocation(), Sound.LEVEL_UP, 1.25F, 1.25F);
|
||||
inv.setItem(8, new ItemStack(Material.AIR));
|
||||
}
|
||||
}
|
||||
}
|
||||
event.setCancelled(true);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,88 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.BaseConstants;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
public class GamemodeCommand
|
||||
extends BaseCommand{
|
||||
public GamemodeCommand(){
|
||||
super("gamemode", "Sets a gamemode for a player.");
|
||||
this.setAliases(new String[]{"gm"});
|
||||
this.setUsage("/(command) <modeName> [playerName]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
Player target;
|
||||
if(args.length < 1){
|
||||
sender.sendMessage(this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
GameMode mode = this.getGameModeByName(args[0]);
|
||||
if(mode == null){
|
||||
sender.sendMessage(ChatColor.RED + "Gamemode '" + args[0] + "' not found.");
|
||||
return true;
|
||||
}
|
||||
if(args.length > 1){
|
||||
target = sender.hasPermission(command.getPermission() + ".others") ? BukkitUtils.playerWithNameOrUUID(args[1]) : null;
|
||||
}else{
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
target = (Player) sender;
|
||||
}
|
||||
if(target == null || !BaseCommand.canSee(sender, target)){
|
||||
sender.sendMessage(String.format(BaseConstants.PLAYER_WITH_NAME_OR_UUID_NOT_FOUND, args[1]));
|
||||
return true;
|
||||
}
|
||||
if(target.getGameMode() == mode){
|
||||
sender.sendMessage(ChatColor.RED + "Gamemode of " + target.getName() + " is already " + mode.name() + '.');
|
||||
return true;
|
||||
}
|
||||
target.setGameMode(mode);
|
||||
Command.broadcastCommandMessage(sender, ChatColor.YELLOW + "Set gamemode of " + target.getName() + " to " + ChatColor.YELLOW + mode.name().toLowerCase() + ChatColor.YELLOW + '.');
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
if(args.length != 1){
|
||||
return Collections.emptyList();
|
||||
}
|
||||
GameMode[] gameModes = GameMode.values();
|
||||
ArrayList<String> results = new ArrayList<String>(gameModes.length);
|
||||
for(GameMode mode : gameModes){
|
||||
results.add(mode.name());
|
||||
}
|
||||
return BukkitUtils.getCompletions(args, results);
|
||||
}
|
||||
|
||||
private GameMode getGameModeByName(String id){
|
||||
if((id = id.toLowerCase(Locale.ENGLISH)).equalsIgnoreCase("gmc") || id.contains("creat") || id.equalsIgnoreCase("1") || id.equalsIgnoreCase("c")){
|
||||
return GameMode.CREATIVE;
|
||||
}
|
||||
if(id.equalsIgnoreCase("gms") || id.contains("survi") || id.equalsIgnoreCase("0") || id.equalsIgnoreCase("s")){
|
||||
return GameMode.SURVIVAL;
|
||||
}
|
||||
if(id.equalsIgnoreCase("gma") || id.contains("advent") || id.equalsIgnoreCase("2") || id.equalsIgnoreCase("a")){
|
||||
return GameMode.ADVENTURE;
|
||||
}
|
||||
if(id.equalsIgnoreCase("gmt") || id.contains("toggle") || id.contains("cycle") || id.equalsIgnoreCase("t")){
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.PlayerInventory;
|
||||
|
||||
public class HatCommand
|
||||
extends BaseCommand{
|
||||
public HatCommand(){
|
||||
super("hat", "Wear something on your head.");
|
||||
this.setUsage("/(command)");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(ChatColor.RED + "This command is only executable by players.");
|
||||
return true;
|
||||
}
|
||||
Player player = (Player) sender;
|
||||
ItemStack stack = player.getItemInHand();
|
||||
if(stack == null || stack.getType() == Material.AIR){
|
||||
sender.sendMessage(ChatColor.RED + "You are not holding anything.");
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
if(stack.getType().getMaxDurability() != 0){
|
||||
sender.sendMessage(ChatColor.RED + "The item you are holding is not suitable to wear for a hat.");
|
||||
return true;
|
||||
}
|
||||
PlayerInventory inventory = player.getInventory();
|
||||
ItemStack helmet = inventory.getHelmet();
|
||||
if(helmet != null && helmet.getType() != Material.AIR){
|
||||
sender.sendMessage(ChatColor.RED + "You are already wearing something as your hat.");
|
||||
return true;
|
||||
}
|
||||
int amount = stack.getAmount();
|
||||
if(amount > 1){
|
||||
stack.setAmount(--amount);
|
||||
}else{
|
||||
player.setItemInHand(new ItemStack(Material.AIR, 1));
|
||||
}
|
||||
helmet = stack.clone();
|
||||
helmet.setAmount(1);
|
||||
inventory.setHelmet(helmet);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,76 @@
|
|||
//
|
||||
|
||||
//
|
||||
|
||||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.sergivb01.base.BaseConstants;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public class HealCommand extends BaseCommand{
|
||||
private static final Set<PotionEffectType> HEALING_REMOVEABLE_POTION_EFFECTS;
|
||||
|
||||
static{
|
||||
HEALING_REMOVEABLE_POTION_EFFECTS = ImmutableSet.of(PotionEffectType.SLOW, PotionEffectType.SLOW_DIGGING, PotionEffectType.POISON, PotionEffectType.WEAKNESS);
|
||||
}
|
||||
|
||||
public HealCommand(){
|
||||
super("heal", "Heals a player.");
|
||||
this.setUsage("/(command) <playerName>");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args){
|
||||
Player onlyTarget = null;
|
||||
Collection<Player> targets;
|
||||
if(args.length > 0 && sender.hasPermission(command.getPermission() + ".others")){
|
||||
if(args[0].equalsIgnoreCase("all") && sender.hasPermission(command.getPermission() + ".all")){
|
||||
targets = ImmutableSet.copyOf(Bukkit.getOnlinePlayers());
|
||||
}else{
|
||||
if((onlyTarget = BukkitUtils.playerWithNameOrUUID(args[0])) == null || !BaseCommand.canSee(sender, onlyTarget)){
|
||||
sender.sendMessage(String.format(BaseConstants.PLAYER_WITH_NAME_OR_UUID_NOT_FOUND, args[0]));
|
||||
return true;
|
||||
}
|
||||
targets = ImmutableSet.of(onlyTarget);
|
||||
}
|
||||
}else{
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
targets = ImmutableSet.of((onlyTarget = (Player) sender));
|
||||
}
|
||||
final double maxHealth;
|
||||
if(onlyTarget != null && (maxHealth = onlyTarget.getHealth()) == onlyTarget.getMaxHealth()){
|
||||
sender.sendMessage(ChatColor.RED + onlyTarget.getName() + " already has full health (" + maxHealth + ").");
|
||||
return true;
|
||||
}
|
||||
for(final Player target : targets){
|
||||
target.setHealth(target.getMaxHealth());
|
||||
for(final PotionEffectType type : HealCommand.HEALING_REMOVEABLE_POTION_EFFECTS){
|
||||
target.removePotionEffect(type);
|
||||
}
|
||||
target.setFireTicks(0);
|
||||
}
|
||||
Command.broadcastCommandMessage(sender, ChatColor.YELLOW + "Healed " + ((onlyTarget == null) ? "all online players" : onlyTarget.getName()) + '.');
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(final CommandSender sender, final Command command, final String label, final String[] args){
|
||||
return (args.length == 1) ? null : Collections.emptyList();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,71 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.BaseConstants;
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.base.user.BaseUser;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import org.apache.commons.lang.time.DateFormatUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class InsiderCommand extends BaseCommand{
|
||||
private BasePlugin plugin;
|
||||
|
||||
public InsiderCommand(BasePlugin plugin){
|
||||
super("insider", "Set insider rank of a player");
|
||||
this.setUsage("/(command) <add/remove> <playerName>");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
if(!(args.length == 2)){
|
||||
sender.sendMessage(this.getUsage());
|
||||
return true;
|
||||
}
|
||||
|
||||
/* THIS THING CALL 2 METHODS. IF IT IS ADD IT WONT BE REMOVE, SAME IF IT IS REMOVE IT WONT BE ADD
|
||||
if (!args[0].equalsIgnoreCase("add") || !args[0].equalsIgnoreCase("remove")) {
|
||||
sender.sendMessage("ARGS0: " + args[0]);
|
||||
sender.sendMessage("ARGS1: " + args[1]);
|
||||
sender.sendMessage(ChatColor.RED + "Usage: /insider " + ChatColor.AQUA + "<add/remove> " + ChatColor.RED + "<playerName>");
|
||||
return true;
|
||||
}*/
|
||||
|
||||
Player target = BukkitUtils.playerWithNameOrUUID(args[1]);
|
||||
if(((args[0].equalsIgnoreCase("add") || args[0].equalsIgnoreCase("remove")) && target == null) || target == null){
|
||||
sender.sendMessage(String.format(BaseConstants.PLAYER_WITH_NAME_OR_UUID_NOT_FOUND, args[1]));
|
||||
return true;
|
||||
}
|
||||
|
||||
BaseUser baseUser = this.plugin.getUserManager().getUser(target.getUniqueId());
|
||||
String upTime = DateFormatUtils.format(System.currentTimeMillis(), "dd/MM");
|
||||
String time = DateFormatUtils.format(System.currentTimeMillis(), "hh:mm");
|
||||
if(args[0].equalsIgnoreCase("add")){
|
||||
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "pex user " + target.getName() + " group add Insider");
|
||||
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&eYou have added &a" + target.getName() + " &eas Insider."));
|
||||
baseUser.setNote(ChatColor.YELLOW + "Staff: " + ChatColor.GREEN + sender.getName() + ChatColor.GRAY + " [" + upTime + "-" + time + "]" + " - " + ChatColor.YELLOW + "Set player as insider.");
|
||||
return true;
|
||||
}else if(args[0].equalsIgnoreCase("remove")){
|
||||
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "pex user " + target.getName() + " group remove Insider");
|
||||
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&eYou have been removed &a" + target.getName() + "&e's Insider Rank."));
|
||||
baseUser.setNote(ChatColor.YELLOW + "Staff: " + ChatColor.GREEN + sender.getName() + ChatColor.GRAY + " [" + upTime + "-" + time + "]" + " - " + ChatColor.YELLOW + "Set player as " + ChatColor.RED + "" + ChatColor.BOLD + "NOT" + ChatColor.YELLOW + " insider.");
|
||||
return true;
|
||||
}else{
|
||||
sender.sendMessage(this.getUsage());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return args.length == 2 ? null : Collections.emptyList();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class KillCommand
|
||||
extends BaseCommand{
|
||||
public KillCommand(){
|
||||
super("kill", "Kills a player.");
|
||||
this.setAliases(new String[]{"slay"});
|
||||
this.setUsage("/(command) <playerName>");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
Player target;
|
||||
if(args.length > 0 && sender.hasPermission(command.getPermission() + ".others")){
|
||||
target = BukkitUtils.playerWithNameOrUUID(args[0]);
|
||||
}else{
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
target = (Player) sender;
|
||||
}
|
||||
if(target.isDead()){
|
||||
sender.sendMessage(ChatColor.RED + target.getName() + " is already dead.");
|
||||
return true;
|
||||
}
|
||||
EntityDamageEvent event = new EntityDamageEvent(target, EntityDamageEvent.DamageCause.SUICIDE, 10000);
|
||||
Bukkit.getPluginManager().callEvent(event);
|
||||
if(event.isCancelled()){
|
||||
sender.sendMessage(ChatColor.RED + "You cannot kill " + target.getName() + '.');
|
||||
return true;
|
||||
}
|
||||
target.setLastDamageCause(event);
|
||||
target.setHealth(0.0);
|
||||
if(sender.equals(target)){
|
||||
sender.sendMessage(ChatColor.GOLD + "You have been killed.");
|
||||
return true;
|
||||
}
|
||||
Command.broadcastCommandMessage(sender, ChatColor.YELLOW + "Slain player " + target.getName() + '.');
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return args.length == 1 && sender.hasPermission(command.getPermission() + ".others") ? null : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.EntityType;
|
||||
|
||||
public class KillMobsCommand extends BaseCommand{
|
||||
private BasePlugin plugin;
|
||||
|
||||
public KillMobsCommand(BasePlugin plugin){
|
||||
super("killmobs", "Kills mobs in all worlds.");
|
||||
this.plugin = plugin;
|
||||
this.setUsage("/(command)");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args){
|
||||
new Thread(() -> {
|
||||
Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> {
|
||||
int removed = 0;
|
||||
for(World w : Bukkit.getServer().getWorlds()){
|
||||
for(Entity e : w.getEntities()){
|
||||
EntityType entityType = e.getType();
|
||||
if(entityType.equals(EntityType.DROPPED_ITEM) || entityType.equals(EntityType.PRIMED_TNT) || entityType.equals(EntityType.SKELETON) || entityType.equals(EntityType.ZOMBIE) || entityType.equals(EntityType.COW) || entityType.equals(EntityType.SHEEP) || entityType.equals(EntityType.ENDERMAN) || entityType.equals(EntityType.PIG_ZOMBIE) || entityType.equals(EntityType.PIG) || entityType.equals(EntityType.SKELETON) || entityType.equals(EntityType.CREEPER) || entityType.equals(EntityType.BAT) || entityType.equals(EntityType.CHICKEN) || entityType.equals(EntityType.ENDER_DRAGON)){
|
||||
e.remove();
|
||||
removed++;
|
||||
}
|
||||
}
|
||||
}
|
||||
sender.sendMessage(ChatColor.YELLOW + "You have removed a total of " + ChatColor.GOLD + removed + ChatColor.YELLOW + " entities");
|
||||
});
|
||||
}).start();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import org.apache.commons.lang.time.DurationFormatUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.lang.management.ManagementFactory;
|
||||
import java.lang.management.RuntimeMXBean;
|
||||
import java.text.DecimalFormat;
|
||||
|
||||
public class LagCommand
|
||||
extends BaseCommand{
|
||||
|
||||
public LagCommand(){
|
||||
super("lag", "View total server lag.");
|
||||
this.setUsage("/(command)");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
double tps = Bukkit.spigot().getTPS()[0];
|
||||
double lag = Math.round((1.0 - tps / 20.0) * 100.0);
|
||||
RuntimeMXBean serverStart = ManagementFactory.getRuntimeMXBean();
|
||||
String serverUptime = DurationFormatUtils.formatDurationWords(serverStart.getUptime(), true, true);
|
||||
DecimalFormat df = new DecimalFormat("#.#");
|
||||
ChatColor colour = tps >= 18.0 ? ChatColor.GREEN : (tps >= 15.0 ? ChatColor.YELLOW : ChatColor.RED);
|
||||
Double tpsF = Math.round(tps * 10000.0) / 10000.0;
|
||||
sender.sendMessage(ChatColor.GOLD.toString() + ChatColor.BOLD + "Server TPS: ");
|
||||
sender.sendMessage(ChatColor.YELLOW + " " + colour + df.format(tpsF));
|
||||
sender.sendMessage(ChatColor.GOLD.toString() + ChatColor.BOLD + "Server Lag: ");
|
||||
sender.sendMessage(ChatColor.YELLOW + " " + colour + (double) Math.round(lag * 10000.0) / 10000.0 + '%');
|
||||
sender.sendMessage(ChatColor.GOLD.toString() + ChatColor.BOLD + "Players: ");
|
||||
sender.sendMessage(ChatColor.YELLOW + " " + Bukkit.getOnlinePlayers().size() + "/" + Bukkit.getMaxPlayers());
|
||||
sender.sendMessage(ChatColor.GOLD.toString() + ChatColor.BOLD + "Uptime: ");
|
||||
sender.sendMessage(ChatColor.YELLOW + " " + serverUptime);
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,75 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import me.joeleoli.nucleus.player.NucleusPlayer;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class ListCommand
|
||||
extends BaseCommand{
|
||||
private final String TO_BE_ON_LIST_PERMISSION;
|
||||
|
||||
public ListCommand(){
|
||||
super("list", "Lists players online");
|
||||
this.setAliases(new String[]{"who"});
|
||||
this.setUsage("/(command)");
|
||||
this.TO_BE_ON_LIST_PERMISSION = "command.list.own";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
ArrayList<String> list = new ArrayList<String>();
|
||||
// for(Player player : Bukkit.getServer().getOnlinePlayers()){
|
||||
// if(ListCommand.canSee(sender, player)){
|
||||
// if(BasePlugin.getPlugin().getUserManager().getUser(player.getUniqueId()).isVanished()){
|
||||
// list.add(ChatColor.GRAY + player.getName());
|
||||
// }else if(player.hasPermission("command.list.own")){
|
||||
// list.add(ChatColor.BLUE + player.getName());
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// sender.sendMessage(ChatColor.GRAY + BukkitUtils.STRAIGHT_LINE_DEFAULT);
|
||||
// sender.sendMessage(ChatColor.AQUA + "There are currently " + ChatColor.BLUE.toString() + ChatColor.BOLD + Bukkit.getOnlinePlayers().size() + "/" + Bukkit.getMaxPlayers() + ChatColor.AQUA + " players online.");
|
||||
// sender.sendMessage(" ");
|
||||
// if(list.isEmpty()){
|
||||
// sender.sendMessage(ChatColor.translateAlternateColorCodes('&', " &f&l* &bStaff:" + " " + ChatColor.RED + "Not avaliable"));
|
||||
// }else{
|
||||
// sender.sendMessage(ChatColor.translateAlternateColorCodes('&', " &f&l* &bStaff: &7(" + list.size() + ")" + " " + list.toString().replace("[", "").replace("]", "").replace(",", ChatColor.GRAY + ",")));
|
||||
// }
|
||||
// sender.sendMessage(" ");
|
||||
// sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&f&l * &bSupport: &fts.veilhcf.us"));
|
||||
// sender.sendMessage(ChatColor.GRAY + BukkitUtils.STRAIGHT_LINE_DEFAULT);
|
||||
for(Player p : Bukkit.getOnlinePlayers()){
|
||||
if(ListCommand.canSee(sender, p)){
|
||||
if(BasePlugin.getPlugin().getUserManager().getUser(p.getUniqueId()).isVanished()){
|
||||
if(BasePlugin.getPlugin().getConfig().getBoolean("nucleus")) {
|
||||
list.add(ChatColor.translateAlternateColorCodes('&', "&7&o(Hidden)&r" + NucleusPlayer.getByUuid(p.getUniqueId()).getActiveRank().getPrefix() + p.getName()));
|
||||
} else {
|
||||
list.add(ChatColor.translateAlternateColorCodes('&', "&7&o(Hidden)&r" + BasePlugin.getChat().getPlayerPrefix(p) + p.getName()));
|
||||
}
|
||||
continue;
|
||||
}else{
|
||||
if(BasePlugin.getPlugin().getConfig().getBoolean("nucleus")) {
|
||||
list.add(ChatColor.translateAlternateColorCodes('&', NucleusPlayer.getByUuid(p.getUniqueId()).getActiveRank().getPrefix() + p.getName()));
|
||||
} else {
|
||||
list.add(ChatColor.translateAlternateColorCodes('&', BasePlugin.getChat().getPlayerPrefix(p) + p.getName()));
|
||||
}
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sender.sendMessage(list.toString()
|
||||
.replace(",", ChatColor.WHITE + ",")
|
||||
.replace("[", ChatColor.WHITE + "[")
|
||||
.replace("]", ChatColor.WHITE + "]"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class LockdownCommand extends BaseCommand{
|
||||
private final String TO_BE_ON_LIST_PERMISSION;
|
||||
|
||||
public LockdownCommand(){
|
||||
super("lockdown", "Puts the server on high alert");
|
||||
this.setUsage("/(command)");
|
||||
this.TO_BE_ON_LIST_PERMISSION = "command.lockdown";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,149 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import net.minecraft.server.v1_7_R4.*;
|
||||
import net.minecraft.util.com.mojang.authlib.GameProfile;
|
||||
import org.bukkit.*;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.craftbukkit.v1_7_R4.CraftServer;
|
||||
import org.bukkit.craftbukkit.v1_7_R4.CraftWorld;
|
||||
import org.bukkit.craftbukkit.v1_7_R4.entity.CraftPlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
import org.bukkit.util.BlockIterator;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class LolCommand extends BaseCommand{
|
||||
private BasePlugin plugin;
|
||||
private Map<UUID, Integer> tasks = new HashMap<>();
|
||||
private Map<UUID, List<EntityPlayer>> sets = new HashMap<>();
|
||||
|
||||
public LolCommand(BasePlugin plugin){
|
||||
super("lol", "Take this shit lololo");
|
||||
this.plugin = plugin;
|
||||
this.setUsage("/(command) <player> <player>");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(ChatColor.RED + "a");
|
||||
return false;
|
||||
}
|
||||
|
||||
Player p = (Player) sender;
|
||||
if(args.length == 0){
|
||||
spawnEntities(p, "vMario", "imask3r");
|
||||
}else if(args.length == 2){
|
||||
spawnEntities(p, args[0], args[1]);
|
||||
}else if(args.length == 1){
|
||||
spawnEntities(p, "imask3r", args[1]);
|
||||
}else{
|
||||
spawnEntities(p, "Move2Linux", "imask3r");
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private void spawnEntities(final Player player, String name, String otherName){
|
||||
if(tasks.containsKey(player.getUniqueId())){
|
||||
Bukkit.getScheduler().cancelTask(this.tasks.get(player.getUniqueId()));
|
||||
for(EntityPlayer e : this.sets.get(player.getUniqueId())){
|
||||
e.setInvisible(true);
|
||||
e.setLocation(0, -100, 0, 0, 0);
|
||||
((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutNamedEntitySpawn(e));
|
||||
}
|
||||
this.sets.remove(player.getUniqueId());
|
||||
this.tasks.remove(player.getUniqueId());
|
||||
}
|
||||
OfflinePlayer nameId = Bukkit.getOfflinePlayer(name);
|
||||
OfflinePlayer otherNameId = Bukkit.getOfflinePlayer(otherName);
|
||||
name = nameId.getName();
|
||||
otherName = otherNameId.getName();
|
||||
|
||||
Location l = player.getLocation();
|
||||
MinecraftServer nmsServer = ((CraftServer) Bukkit.getServer()).getServer();
|
||||
WorldServer nmsWorld = ((CraftWorld) player.getWorld()).getHandle();
|
||||
EntityPlayer npc = new EntityPlayer(nmsServer, nmsWorld, new GameProfile(UUID.fromString(nameId.getUniqueId().toString()), name), new PlayerInteractManager(nmsWorld));
|
||||
EntityPlayer npc2 = new EntityPlayer(nmsServer, nmsWorld, new GameProfile(UUID.fromString(otherNameId.getUniqueId().toString()), otherName), new PlayerInteractManager(nmsWorld));
|
||||
l.setPitch(0f);
|
||||
BlockIterator i = new BlockIterator(l);
|
||||
int distance = 0;
|
||||
Location loc = null;
|
||||
while(i.hasNext()){
|
||||
loc = i.next().getLocation();
|
||||
if(distance == 3){
|
||||
npc.setLocation(loc.getX(), loc.getY(), loc.getZ(), loc.getYaw(), 0f);
|
||||
npc2.setLocation(loc.getX(), loc.getY(), loc.getZ() + 0.5, loc.getYaw(), 0f);
|
||||
break;
|
||||
}
|
||||
distance++;
|
||||
}
|
||||
npc2.setSneaking(true);
|
||||
final PlayerConnection connection = ((CraftPlayer) player).getHandle().playerConnection;
|
||||
connection.sendPacket(new PacketPlayOutNamedEntitySpawn(npc));
|
||||
connection.sendPacket(new PacketPlayOutNamedEntitySpawn(npc2));
|
||||
List<EntityPlayer> entities = new ArrayList<>();
|
||||
entities.add(npc);
|
||||
entities.add(npc2);
|
||||
this.sets.put(player.getUniqueId(), entities);
|
||||
Integer task = Bukkit.getScheduler().scheduleAsyncRepeatingTask(plugin, new Runnable(){
|
||||
int i = 20;
|
||||
|
||||
@Override
|
||||
public void run(){
|
||||
if(i <= 0){
|
||||
for(EntityPlayer e : sets.get(player.getUniqueId())){
|
||||
e.setInvisible(true);
|
||||
e.setLocation(0, -10, 0, 0, 0);
|
||||
((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutNamedEntitySpawn(e));
|
||||
}
|
||||
Bukkit.getScheduler().cancelTask(tasks.get(player.getUniqueId()));
|
||||
sets.remove(player.getUniqueId());
|
||||
tasks.remove(player.getUniqueId());
|
||||
}else{
|
||||
EntityPlayer e = sets.get(player.getUniqueId()).get(0);
|
||||
if(e.isSneaking()){
|
||||
e.setSneaking(false);
|
||||
player.playSound(player.getLocation(), Sound.FALL_BIG, 1000.0F, 1000.0F);
|
||||
((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutNamedEntitySpawn(e));
|
||||
}else{
|
||||
e.setSneaking(true);
|
||||
((CraftPlayer) player).getHandle().playerConnection.sendPacket(new PacketPlayOutNamedEntitySpawn(e));
|
||||
}
|
||||
i--;
|
||||
}
|
||||
|
||||
}
|
||||
}, 5L, 5L);
|
||||
this.tasks.put(player.getUniqueId(), task);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onQuit(PlayerQuitEvent event){
|
||||
Player player = event.getPlayer();
|
||||
if(this.tasks.containsKey(player.getUniqueId())){
|
||||
try{
|
||||
Bukkit.getScheduler().cancelTask(this.tasks.get(player.getUniqueId()));
|
||||
}catch(Exception ignored){
|
||||
//Do nothing
|
||||
}finally{
|
||||
this.tasks.remove(player.getUniqueId());
|
||||
}
|
||||
}
|
||||
if(this.sets.containsKey(player.getUniqueId())){
|
||||
this.sets.remove(player.getUniqueId());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return args.length == 1 ? null : Collections.emptyList();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class NearCommand extends BaseCommand{
|
||||
|
||||
public NearCommand(){
|
||||
super("near", "Count entities near a player.");
|
||||
this.setUsage("/(command) <playerName>");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(ChatColor.RED + "No.");
|
||||
return false;
|
||||
}
|
||||
Player p = (Player) sender;
|
||||
List<String> nearby = getNearbyEnemies(p);
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', " &eNearby players: &a(" + nearby.size() + ")"));
|
||||
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7&l * &7" + (nearby.isEmpty() ? "None" : nearby.toString().replace("[", "").replace("]", ""))));
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return args.length == 1 ? null : Collections.emptyList();
|
||||
}
|
||||
|
||||
private List<String> getNearbyEnemies(final Player player){
|
||||
final List<String> players = new ArrayList<>();
|
||||
final Collection<Entity> nearby = player.getNearbyEntities(50.0, 50.0, 50.0);
|
||||
for(final Entity entity : nearby){
|
||||
if(entity instanceof Player){
|
||||
final Player target = (Player) entity;
|
||||
if(!target.canSee(player)){
|
||||
continue;
|
||||
}
|
||||
if(!player.canSee(target)){
|
||||
continue;
|
||||
}
|
||||
if(target.hasPotionEffect(PotionEffectType.INVISIBILITY)){
|
||||
continue;
|
||||
}
|
||||
players.add(target.getName());
|
||||
}
|
||||
}
|
||||
return players;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.BaseConstants;
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.base.user.BaseUser;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.lang.time.DateFormatUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class NoteCommand
|
||||
extends BaseCommand{
|
||||
public NoteCommand(){
|
||||
super("note", "add, removes, and checks notes for a user");
|
||||
this.setUsage("/(command) <add|remove|check> <playerName> [note]");
|
||||
this.setAliases(new String[]{"addnote, notes, checknote, removenote"});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender cs, Command cmd, String s, String[] args){
|
||||
if(!(cs instanceof Player)){
|
||||
cs.sendMessage(ChatColor.RED + "Please use the server to execute this command.");
|
||||
return true;
|
||||
}
|
||||
Player player = (Player) cs;
|
||||
if(args.length >= 2){
|
||||
if(Bukkit.getPlayer(args[1]) == null && Bukkit.getOfflinePlayer(args[1]) == null){
|
||||
cs.sendMessage(String.format(BaseConstants.PLAYER_WITH_NAME_OR_UUID_NOT_FOUND, args[0]));
|
||||
return true;
|
||||
}
|
||||
OfflinePlayer target = Bukkit.getOfflinePlayer(args[1]);
|
||||
BaseUser targetUser = BasePlugin.getPlugin().getUserManager().getUser(target.getUniqueId());
|
||||
String note = StringUtils.join(args, ' ', 2, args.length);
|
||||
if(args[0].equalsIgnoreCase("add")){
|
||||
String upTime = DateFormatUtils.format(System.currentTimeMillis(), "dd/MM");
|
||||
String time = DateFormatUtils.format(System.currentTimeMillis(), "hh:mm");
|
||||
targetUser.setNote(ChatColor.YELLOW + "Staff: " + ChatColor.GREEN + cs.getName() + ChatColor.GRAY + " [" + upTime + "-" + time + "]" + " - " + ChatColor.YELLOW + note);
|
||||
player.sendMessage(ChatColor.GREEN + "You added a note to " + targetUser.getName());
|
||||
return true;
|
||||
}
|
||||
if(args[0].equalsIgnoreCase("remove")){
|
||||
if(player.hasPermission(this.getPermission() + ".remove")){
|
||||
if(targetUser.tryRemoveNote()){
|
||||
Command.broadcastCommandMessage(cs, ChatColor.GREEN + "Removed note of " + target.getName() + ChatColor.YELLOW + '.');
|
||||
return true;
|
||||
}
|
||||
player.sendMessage(ChatColor.RED + "Note not found.");
|
||||
return true;
|
||||
}
|
||||
player.sendMessage(ChatColor.RED + "No permission.");
|
||||
return true;
|
||||
}
|
||||
if(args[0].equalsIgnoreCase("check")){
|
||||
for(String notes : targetUser.getNotes()){
|
||||
player.sendMessage(notes);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
player.sendMessage(this.getUsage(s));
|
||||
return true;
|
||||
}
|
||||
player.sendMessage(this.getUsage(s));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.BaseConstants;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import net.minecraft.server.v1_7_R4.EntityPlayer;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.craftbukkit.v1_7_R4.entity.CraftPlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class PingCommand
|
||||
extends BaseCommand{
|
||||
public PingCommand(){
|
||||
super("ping", "Checks the ping of a player.");
|
||||
this.setUsage("/(command) <playerName>");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
Player target;
|
||||
if(args.length > 0 && sender.hasPermission(command.getPermission() + ".others")){
|
||||
target = BukkitUtils.playerWithNameOrUUID(args[0]);
|
||||
}else{
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
target = (Player) sender;
|
||||
}
|
||||
if(target == null || !BaseCommand.canSee(sender, target)){
|
||||
sender.sendMessage(String.format(BaseConstants.PLAYER_WITH_NAME_OR_UUID_NOT_FOUND, args[0]));
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage((target.equals(sender) ? new StringBuilder().append(ChatColor.YELLOW).append("Your ping is").toString() : new StringBuilder().append(ChatColor.YELLOW).append("Ping of ").append(target.getName()).toString()) + ChatColor.GRAY + ": " + ChatColor.WHITE + getPing(target));
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return args.length == 1 && sender.hasPermission(command.getPermission() + ".others") ? null : Collections.emptyList();
|
||||
}
|
||||
|
||||
private int getPing(Player p){
|
||||
CraftPlayer cp = (CraftPlayer) p;
|
||||
EntityPlayer ep = cp.getHandle();
|
||||
return ep.ping;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.BaseConstants;
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import org.apache.commons.lang.time.DurationFormatUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class PlayTimeCommand
|
||||
extends BaseCommand{
|
||||
private final BasePlugin plugin;
|
||||
|
||||
public PlayTimeCommand(BasePlugin plugin){
|
||||
super("playtime", "Check the playtime of another player.");
|
||||
this.setAliases(new String[]{"pt"});
|
||||
this.setUsage("/(command) [playerName]");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
OfflinePlayer target;
|
||||
if(args.length >= 1){
|
||||
target = BukkitUtils.offlinePlayerWithNameOrUUID(args[0]);
|
||||
}else{
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
target = (OfflinePlayer) sender;
|
||||
}
|
||||
if(!target.hasPlayedBefore() && !target.isOnline()){
|
||||
sender.sendMessage(String.format(BaseConstants.PLAYER_WITH_NAME_OR_UUID_NOT_FOUND, args[0]));
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage(ChatColor.YELLOW + target.getName() + " has been playing for " + ChatColor.LIGHT_PURPLE + DurationFormatUtils.formatDurationWords(this.plugin.getPlayTimeManager().getTotalPlayTime(target.getUniqueId()), true, true) + ChatColor.YELLOW + " this map.");
|
||||
if(sender.hasPermission("hcf.utils.staff") && target.isOnline()){
|
||||
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&cAFK Timer: &e" + DurationFormatUtils.formatDurationWords(BukkitUtils.getIdleTime(target.getPlayer()), true, true)));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return args.length == 1 ? null : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,574 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
// Created by iDaniel84
|
||||
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.SkullType;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.inventory.meta.SkullMeta;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class PunishCommand extends BaseCommand implements Listener{
|
||||
|
||||
private static String target;
|
||||
private static String silent;
|
||||
private Inventory inv;
|
||||
|
||||
public PunishCommand(){
|
||||
super("punish", "Punish a player.");
|
||||
this.setAliases(new String[]{"who"});
|
||||
this.setUsage("/(command) <player> [-s]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
|
||||
if(args.length == 0 || args.length > 2 || (args.length == 2 && !args[1].equalsIgnoreCase("-s"))){
|
||||
sender.sendMessage(this.getUsage());
|
||||
return true;
|
||||
}
|
||||
Player player = (Player) sender;
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage("Only players can use this command.");
|
||||
return true;
|
||||
}else{
|
||||
target = args[0];
|
||||
if(args.length == 1){
|
||||
if(silent == null) silent = "";
|
||||
else silent = "";
|
||||
inv = Bukkit.createInventory(player, 54, "Punish Manager");
|
||||
}else if(args.length == 2 && args[1].equalsIgnoreCase("-s")){
|
||||
silent = " -s";
|
||||
inv = Bukkit.createInventory(player, 54, "Punish Manager" + ChatColor.ITALIC + " (Silent)");
|
||||
}
|
||||
PunishmentGUI(player);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void PunishmentGUI(Player player){
|
||||
inv.clear();
|
||||
|
||||
// ####################################################################################################################################################################### //
|
||||
|
||||
ItemStack title_GlobalRules = new ItemStack(Material.INK_SACK, 1, (short) 1);
|
||||
ItemStack title_ChatRules = new ItemStack(Material.INK_SACK, 1, (short) 11);
|
||||
ItemStack title_HCFRules = new ItemStack(Material.INK_SACK, 1, (short) 14);
|
||||
|
||||
ItemStack global_HackedClient = new ItemStack(Material.WOOL, 1, (short) 14);
|
||||
ItemStack global_HackedClientAdmit = new ItemStack(Material.CARPET, 1, (short) 14);
|
||||
ItemStack global_Xray = new ItemStack(Material.WOOL, 1, (short) 14);
|
||||
ItemStack global_XrayAdmit = new ItemStack(Material.CARPET, 1, (short) 14);
|
||||
ItemStack global_Autoclick = new ItemStack(Material.WOOL, 1, (short) 14);
|
||||
ItemStack global_AutoclickAdmit = new ItemStack(Material.CARPET, 1, (short) 14);
|
||||
ItemStack global_AbusingGlitchs = new ItemStack(Material.WOOL, 1, (short) 14);
|
||||
ItemStack global_UnallowedMods = new ItemStack(Material.WOOL, 1, (short) 14);
|
||||
ItemStack global_Advertising = new ItemStack(Material.WOOL, 1, (short) 14);
|
||||
ItemStack global_Ddos = new ItemStack(Material.WOOL, 1, (short) 14);
|
||||
|
||||
|
||||
ItemStack hcf_AnvilSpam = new ItemStack(Material.WOOL, 1, (short) 1);
|
||||
ItemStack hcf_Betray = new ItemStack(Material.WOOL, 1, (short) 1);
|
||||
ItemStack hcf_LeaveAndKill = new ItemStack(Material.WOOL, 1, (short) 1);
|
||||
ItemStack hcf_SuffocationTraps = new ItemStack(Material.WOOL, 1, (short) 1);
|
||||
ItemStack hcf_PvpProtAbuse = new ItemStack(Material.WOOL, 1, (short) 1);
|
||||
ItemStack hcf_KickAndKill = new ItemStack(Material.WOOL, 1, (short) 1);
|
||||
ItemStack hcf_DtrEvading = new ItemStack(Material.WOOL, 1, (short) 1);
|
||||
ItemStack hcf_Alting = new ItemStack(Material.WOOL, 1, (short) 1);
|
||||
ItemStack hcf_GriefingOutsideClaims = new ItemStack(Material.WOOL, 1, (short) 1);
|
||||
ItemStack hcf_Inside = new ItemStack(Material.WOOL, 1, (short) 1);
|
||||
ItemStack hcf_Blockglitch = new ItemStack(Material.WOOL, 1, (short) 1);
|
||||
ItemStack hcf_Allying = new ItemStack(Material.WOOL, 1, (short) 1);
|
||||
|
||||
ItemStack chat_Toxicity = new ItemStack(Material.WOOL, 1, (short) 4);
|
||||
ItemStack chat_UsersDisrIndirectly = new ItemStack(Material.WOOL, 1, (short) 4);
|
||||
ItemStack chat_UsersDisrDirectly = new ItemStack(Material.WOOL, 1, (short) 4);
|
||||
ItemStack chat_StaffDisr = new ItemStack(Material.WOOL, 1, (short) 4);
|
||||
ItemStack chat_ChatSpam = new ItemStack(Material.WOOL, 1, (short) 4);
|
||||
ItemStack chat_ChatFlood = new ItemStack(Material.WOOL, 1, (short) 4);
|
||||
ItemStack chat_ExternalLinks = new ItemStack(Material.WOOL, 1, (short) 4);
|
||||
ItemStack chat_FactionMesaggesSpam = new ItemStack(Material.WOOL, 1, (short) 4);
|
||||
ItemStack chat_HelpopMissue = new ItemStack(Material.WOOL, 1, (short) 4);
|
||||
ItemStack chat_LieToStaff = new ItemStack(Material.WOOL, 1, (short) 4);
|
||||
|
||||
ItemStack misc_InsiderRank = new ItemStack(Material.WOOL, 1, (short) 3);
|
||||
ItemStack misc_Unban = new ItemStack(Material.WOOL, 1, (short) 5);
|
||||
ItemStack misc_RulesDoc = new ItemStack(Material.INK_SACK, 1, (short) 10);
|
||||
ItemStack misc_LinksDoc = new ItemStack(Material.INK_SACK, 1, (short) 12);
|
||||
ItemStack misc_Skull = new ItemStack(Material.SKULL_ITEM, 1, (short) SkullType.PLAYER.ordinal());
|
||||
|
||||
// ####################################################################################################################################################################### //
|
||||
|
||||
ItemMeta meta_title_GlobalRules = title_GlobalRules.getItemMeta();
|
||||
ItemMeta meta_title_ChatRules = title_ChatRules.getItemMeta();
|
||||
ItemMeta meta_title_HCFRules = title_HCFRules.getItemMeta();
|
||||
ItemMeta meta_global_HackedClient = global_HackedClient.getItemMeta();
|
||||
ItemMeta meta_global_HackedClientAdmit = global_HackedClientAdmit.getItemMeta();
|
||||
ItemMeta meta_global_Xray = global_Xray.getItemMeta();
|
||||
ItemMeta meta_global_XrayAdmit = global_XrayAdmit.getItemMeta();
|
||||
ItemMeta meta_global_Autoclick = global_Autoclick.getItemMeta();
|
||||
ItemMeta meta_global_AutoclickAdmit = global_AutoclickAdmit.getItemMeta();
|
||||
ItemMeta meta_global_AbusingGlitchs = global_AbusingGlitchs.getItemMeta();
|
||||
ItemMeta meta_global_UnallowedMods = global_UnallowedMods.getItemMeta();
|
||||
ItemMeta meta_global_Advertising = global_Advertising.getItemMeta();
|
||||
ItemMeta meta_global_Ddos = global_Ddos.getItemMeta();
|
||||
ItemMeta meta_hcf_SuffocationTraps = hcf_SuffocationTraps.getItemMeta();
|
||||
ItemMeta meta_hcf_PvpProtAbuse = hcf_PvpProtAbuse.getItemMeta();
|
||||
ItemMeta meta_hcf_KickAndKill = hcf_KickAndKill.getItemMeta();
|
||||
ItemMeta meta_hcf_LeaveAndKill = hcf_LeaveAndKill.getItemMeta();
|
||||
ItemMeta meta_hcf_DtrEvading = hcf_DtrEvading.getItemMeta();
|
||||
ItemMeta meta_hcf_Alting = hcf_Alting.getItemMeta();
|
||||
ItemMeta meta_hcf_GriefingOutsideClaims = hcf_GriefingOutsideClaims.getItemMeta();
|
||||
ItemMeta meta_hcf_Inside = hcf_Inside.getItemMeta();
|
||||
ItemMeta meta_hcf_Betray = hcf_Betray.getItemMeta();
|
||||
ItemMeta meta_hcf_Blockglitch = hcf_Blockglitch.getItemMeta();
|
||||
ItemMeta meta_hcf_Allying = hcf_Allying.getItemMeta();
|
||||
ItemMeta meta_hcf_AnvilSpam = hcf_AnvilSpam.getItemMeta();
|
||||
ItemMeta meta_chat_LieToStaff = chat_LieToStaff.getItemMeta();
|
||||
ItemMeta meta_chat_Toxicity = chat_Toxicity.getItemMeta();
|
||||
ItemMeta meta_chat_UsersDisrIndirectly = chat_UsersDisrIndirectly.getItemMeta();
|
||||
ItemMeta meta_chat_UsersDisrDirectly = chat_UsersDisrDirectly.getItemMeta();
|
||||
ItemMeta meta_chat_StaffDisr = chat_StaffDisr.getItemMeta();
|
||||
ItemMeta meta_chat_ChatSpam = chat_ChatSpam.getItemMeta();
|
||||
ItemMeta meta_chat_ChatFlood = chat_ChatFlood.getItemMeta();
|
||||
ItemMeta meta_chat_ExternalLinks = chat_ExternalLinks.getItemMeta();
|
||||
ItemMeta meta_chat_FactionMesaggesSpam = chat_FactionMesaggesSpam.getItemMeta();
|
||||
ItemMeta meta_chat_HelpopMissue = chat_HelpopMissue.getItemMeta();
|
||||
ItemMeta meta_misc_InsiderRank = misc_InsiderRank.getItemMeta();
|
||||
ItemMeta meta_misc_Unban = misc_Unban.getItemMeta();
|
||||
ItemMeta meta_misc_RulesDoc = misc_RulesDoc.getItemMeta();
|
||||
ItemMeta meta_misc_LinksDoc = misc_LinksDoc.getItemMeta();
|
||||
SkullMeta skullmeta_misc_Skull = (SkullMeta) misc_Skull.getItemMeta();
|
||||
|
||||
// ####################################################################################################################################################################### //
|
||||
|
||||
meta_title_GlobalRules.setDisplayName(ChatColor.RED.toString() + ChatColor.BOLD + ChatColor.UNDERLINE + "Global Rules");
|
||||
meta_title_ChatRules.setDisplayName(ChatColor.YELLOW.toString() + ChatColor.BOLD + ChatColor.UNDERLINE + "Chat Rules");
|
||||
meta_title_HCFRules.setDisplayName(ChatColor.GOLD.toString() + ChatColor.BOLD + ChatColor.UNDERLINE + "HCF Rules");
|
||||
|
||||
meta_global_HackedClient.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Hacked client");
|
||||
meta_global_HackedClientAdmit.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Hacked client Admit");
|
||||
meta_global_Xray.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Xray");
|
||||
meta_global_XrayAdmit.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Xray Admit");
|
||||
meta_global_Autoclick.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Autoclick");
|
||||
meta_global_AutoclickAdmit.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Autoclick Admit");
|
||||
meta_global_AbusingGlitchs.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Abusing Glitches");
|
||||
meta_global_UnallowedMods.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Unapproved Mods");
|
||||
meta_global_Advertising.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Advertising");
|
||||
meta_global_Ddos.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Ddos");
|
||||
|
||||
meta_hcf_SuffocationTraps.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Suffocation Traps");
|
||||
meta_hcf_PvpProtAbuse.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "PvP Protection Abuse");
|
||||
meta_hcf_KickAndKill.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Kick & Kill");
|
||||
meta_hcf_LeaveAndKill.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Leave & Kill");
|
||||
meta_hcf_DtrEvading.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "DTR Evading");
|
||||
meta_hcf_Alting.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Alting");
|
||||
meta_hcf_GriefingOutsideClaims.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Griefing outside faction claims");
|
||||
meta_hcf_Inside.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Inside");
|
||||
meta_hcf_Betray.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Betray");
|
||||
meta_hcf_Blockglitch.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "BlockGlitch");
|
||||
meta_hcf_Allying.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Allying");
|
||||
meta_hcf_AnvilSpam.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Anvil Spam");
|
||||
meta_chat_LieToStaff.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Liying to Staff");
|
||||
|
||||
meta_chat_Toxicity.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Toxicity");
|
||||
meta_chat_UsersDisrIndirectly.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Users disrespect indirectly");
|
||||
meta_chat_UsersDisrDirectly.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Users disrespect directly");
|
||||
meta_chat_StaffDisr.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Staff disrespect");
|
||||
meta_chat_ChatSpam.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Chat spam");
|
||||
meta_chat_ChatFlood.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Chat flood");
|
||||
meta_chat_ExternalLinks.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "External links");
|
||||
meta_chat_FactionMesaggesSpam.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Spamming faction commands");
|
||||
meta_chat_HelpopMissue.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Missue of Helpop");
|
||||
|
||||
meta_misc_InsiderRank.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Insider rank");
|
||||
meta_misc_Unban.setDisplayName(ChatColor.WHITE.toString() + ChatColor.BOLD + "Unban");
|
||||
meta_misc_RulesDoc.setDisplayName(ChatColor.GREEN.toString() + ChatColor.BOLD + "Rules document");
|
||||
meta_misc_LinksDoc.setDisplayName(ChatColor.BLUE.toString() + ChatColor.BOLD + "Links document");
|
||||
skullmeta_misc_Skull.setOwner(target);
|
||||
skullmeta_misc_Skull.setDisplayName(ChatColor.GRAY.toString() + ChatColor.BOLD + target);
|
||||
|
||||
// ####################################################################################################################################################################### //
|
||||
|
||||
meta_global_HackedClient.setLore(Arrays.asList(ChatColor.GOLD + "Permanent BAN", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "Killaura, bhop, phase, etc."));
|
||||
meta_global_HackedClientAdmit.setLore(Arrays.asList(ChatColor.GOLD + "30 days BAN"));
|
||||
meta_global_Xray.setLore(Arrays.asList(ChatColor.GOLD + "15 days BAN", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "Includes X-Ray resourcepacks."));
|
||||
meta_global_XrayAdmit.setLore(Arrays.asList(ChatColor.GOLD + "7 days BAN", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "Includes X-Ray resourcepacks."));
|
||||
meta_global_Autoclick.setLore(Arrays.asList(ChatColor.GOLD + "30 days BAN", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "More than 21cps constantly."));
|
||||
meta_global_AutoclickAdmit.setLore(Arrays.asList(ChatColor.GOLD + "15 days BAN", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "More than 21cps constantly."));
|
||||
meta_global_AbusingGlitchs.setLore(Arrays.asList(ChatColor.GOLD + "3 days BAN"));
|
||||
meta_global_UnallowedMods.setLore(Arrays.asList(ChatColor.GOLD + "15 days BAN", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "Click links to see the", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "allowed mods list."));
|
||||
meta_global_Advertising.setLore(Arrays.asList(ChatColor.GOLD + "Permanent BAN", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "Sending ips of other", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "servers (Not ts3 ips)."));
|
||||
meta_global_Ddos.setLore(Arrays.asList(ChatColor.GOLD + "Blacklist", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "Ddosing // Doxing other users."));
|
||||
|
||||
meta_hcf_SuffocationTraps.setLore(Arrays.asList(ChatColor.GOLD + "WARN", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "Allowed on KITMAP."));
|
||||
meta_hcf_PvpProtAbuse.setLore(Arrays.asList(ChatColor.GOLD + "1 day BAN", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "Abusing of pvp timer."));
|
||||
meta_hcf_KickAndKill.setLore(Arrays.asList(ChatColor.GOLD + "WARN", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "Allowed on KITMAP."));
|
||||
meta_hcf_LeaveAndKill.setLore(Arrays.asList(ChatColor.GOLD + "WARN", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "Allowed on KITMAP."));
|
||||
meta_hcf_DtrEvading.setLore(Arrays.asList(ChatColor.GOLD + "WARN", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "Remember to reduce DTR of the faction."));
|
||||
meta_hcf_Alting.setLore(Arrays.asList(ChatColor.GOLD + "1 day BAN", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "Alting for DTR or", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "while deathbanned."));
|
||||
meta_hcf_GriefingOutsideClaims.setLore(Arrays.asList(ChatColor.GOLD + "WARN"));
|
||||
meta_hcf_Inside.setLore(Arrays.asList(ChatColor.GOLD + "WARN", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "Ask a manager for Insider rank."));
|
||||
meta_hcf_Betray.setLore(Arrays.asList(ChatColor.GOLD + "3 days BAN"));
|
||||
meta_hcf_Blockglitch.setLore(Arrays.asList(ChatColor.GOLD + "WARN", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "Includes pearl blockglitch."));
|
||||
meta_hcf_Allying.setLore(Arrays.asList(ChatColor.GOLD + "WARN", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "Teaming with non allies."));
|
||||
meta_hcf_AnvilSpam.setLore(Arrays.asList(ChatColor.GOLD + "WARN", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "Excessive anvil spam."));
|
||||
meta_chat_LieToStaff.setLore(Arrays.asList(ChatColor.GOLD + "1 day BAN"));
|
||||
|
||||
meta_chat_Toxicity.setLore(Arrays.asList(ChatColor.GOLD + "1 hour MUTE", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "Racism, suicidal encouragement", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "or excessive toxicity."));
|
||||
meta_chat_UsersDisrIndirectly.setLore(Arrays.asList(ChatColor.GOLD + "15 min MUTE", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "~You are a ***~"));
|
||||
meta_chat_UsersDisrDirectly.setLore(Arrays.asList(ChatColor.GOLD + "30 min MUTE", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "~Pepito you are a ***~"));
|
||||
meta_chat_StaffDisr.setLore(Arrays.asList(ChatColor.GOLD + "1 hour MUTE", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "~Sh** staff~"));
|
||||
meta_chat_ChatSpam.setLore(Arrays.asList(ChatColor.GOLD + "5 min MUTE", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "Sending same message", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "a lot of times."));
|
||||
meta_chat_ChatFlood.setLore(Arrays.asList(ChatColor.GOLD + "WARN", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "Sending 1 word per line."));
|
||||
meta_chat_ExternalLinks.setLore(Arrays.asList(ChatColor.GOLD + "30 min MUTE", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "Any link non-related"));
|
||||
meta_chat_FactionMesaggesSpam.setLore(Arrays.asList(ChatColor.GOLD + "KICK", ChatColor.YELLOW.toString() + ChatColor.ITALIC + "Spamming /f create, disband, etc."));
|
||||
meta_chat_HelpopMissue.setLore(Arrays.asList(ChatColor.GOLD + "WARN"));
|
||||
|
||||
meta_misc_InsiderRank.setLore(Arrays.asList(ChatColor.GOLD + "Click to set Insider rank", ChatColor.GOLD + "to " + ChatColor.YELLOW.toString() + ChatColor.ITALIC + target));
|
||||
meta_misc_Unban.setLore(Arrays.asList(ChatColor.GOLD + "Click to unban " + ChatColor.YELLOW.toString() + ChatColor.ITALIC + target));
|
||||
meta_misc_RulesDoc.setLore(Arrays.asList(ChatColor.GOLD + "Click to get the rules", ChatColor.GOLD + "document in a chat message."));
|
||||
meta_misc_LinksDoc.setLore(Arrays.asList(ChatColor.GOLD + "Click to get the links", ChatColor.GOLD + "document in a chat message."));
|
||||
skullmeta_misc_Skull.setLore(Arrays.asList(ChatColor.GOLD + "Left click to see " + ChatColor.YELLOW.toString() + ChatColor.ITALIC + target + ChatColor.GOLD + " alts.", ChatColor.GOLD + "Right click to see " + ChatColor.YELLOW.toString() + ChatColor.ITALIC + target + ChatColor.GOLD + " history."));
|
||||
|
||||
// ####################################################################################################################################################################### //
|
||||
|
||||
title_GlobalRules.setItemMeta(meta_title_GlobalRules);
|
||||
title_ChatRules.setItemMeta(meta_title_ChatRules);
|
||||
title_HCFRules.setItemMeta(meta_title_HCFRules);
|
||||
global_HackedClient.setItemMeta(meta_global_HackedClient);
|
||||
global_HackedClientAdmit.setItemMeta(meta_global_HackedClientAdmit);
|
||||
global_Xray.setItemMeta(meta_global_Xray);
|
||||
global_XrayAdmit.setItemMeta(meta_global_XrayAdmit);
|
||||
global_Autoclick.setItemMeta(meta_global_Autoclick);
|
||||
global_AutoclickAdmit.setItemMeta(meta_global_AutoclickAdmit);
|
||||
global_AbusingGlitchs.setItemMeta(meta_global_AbusingGlitchs);
|
||||
global_UnallowedMods.setItemMeta(meta_global_UnallowedMods);
|
||||
global_Advertising.setItemMeta(meta_global_Advertising);
|
||||
global_Ddos.setItemMeta(meta_global_Ddos);
|
||||
hcf_SuffocationTraps.setItemMeta(meta_hcf_SuffocationTraps);
|
||||
hcf_PvpProtAbuse.setItemMeta(meta_hcf_PvpProtAbuse);
|
||||
hcf_KickAndKill.setItemMeta(meta_hcf_KickAndKill);
|
||||
hcf_LeaveAndKill.setItemMeta(meta_hcf_LeaveAndKill);
|
||||
hcf_DtrEvading.setItemMeta(meta_hcf_DtrEvading);
|
||||
hcf_Alting.setItemMeta(meta_hcf_Alting);
|
||||
hcf_GriefingOutsideClaims.setItemMeta(meta_hcf_GriefingOutsideClaims);
|
||||
hcf_Inside.setItemMeta(meta_hcf_Inside);
|
||||
hcf_Betray.setItemMeta(meta_hcf_Betray);
|
||||
hcf_Blockglitch.setItemMeta(meta_hcf_Blockglitch);
|
||||
hcf_Allying.setItemMeta(meta_hcf_Allying);
|
||||
hcf_AnvilSpam.setItemMeta(meta_hcf_AnvilSpam);
|
||||
chat_LieToStaff.setItemMeta(meta_chat_LieToStaff);
|
||||
chat_Toxicity.setItemMeta(meta_chat_Toxicity);
|
||||
chat_UsersDisrIndirectly.setItemMeta(meta_chat_UsersDisrIndirectly);
|
||||
chat_UsersDisrDirectly.setItemMeta(meta_chat_UsersDisrDirectly);
|
||||
chat_StaffDisr.setItemMeta(meta_chat_StaffDisr);
|
||||
chat_ChatSpam.setItemMeta(meta_chat_ChatSpam);
|
||||
chat_ChatFlood.setItemMeta(meta_chat_ChatFlood);
|
||||
chat_ExternalLinks.setItemMeta(meta_chat_ExternalLinks);
|
||||
chat_FactionMesaggesSpam.setItemMeta(meta_chat_FactionMesaggesSpam);
|
||||
chat_HelpopMissue.setItemMeta(meta_chat_HelpopMissue);
|
||||
misc_InsiderRank.setItemMeta(meta_misc_InsiderRank);
|
||||
misc_Unban.setItemMeta(meta_misc_Unban);
|
||||
misc_Skull.setItemMeta(skullmeta_misc_Skull);
|
||||
misc_RulesDoc.setItemMeta(meta_misc_RulesDoc);
|
||||
misc_LinksDoc.setItemMeta(meta_misc_LinksDoc);
|
||||
|
||||
// ####################################################################################################################################################################### //
|
||||
|
||||
inv.setItem(0, title_GlobalRules);
|
||||
inv.setItem(8, title_ChatRules);
|
||||
inv.setItem(13, title_HCFRules);
|
||||
inv.setItem(9, global_HackedClient);
|
||||
inv.setItem(10, global_HackedClientAdmit);
|
||||
inv.setItem(18, global_Xray);
|
||||
inv.setItem(19, global_XrayAdmit);
|
||||
inv.setItem(27, global_Autoclick);
|
||||
inv.setItem(28, global_AutoclickAdmit);
|
||||
inv.setItem(36, global_AbusingGlitchs);
|
||||
inv.setItem(37, global_UnallowedMods);
|
||||
inv.setItem(45, global_Advertising);
|
||||
inv.setItem(46, global_Ddos);
|
||||
inv.setItem(30, hcf_SuffocationTraps);
|
||||
inv.setItem(31, hcf_PvpProtAbuse);
|
||||
inv.setItem(32, hcf_KickAndKill);
|
||||
inv.setItem(39, hcf_DtrEvading);
|
||||
inv.setItem(40, hcf_Alting);
|
||||
inv.setItem(41, hcf_GriefingOutsideClaims);
|
||||
inv.setItem(48, hcf_Inside);
|
||||
inv.setItem(49, hcf_Blockglitch);
|
||||
inv.setItem(50, hcf_Allying);
|
||||
inv.setItem(16, chat_Toxicity);
|
||||
inv.setItem(17, chat_UsersDisrIndirectly);
|
||||
inv.setItem(25, chat_UsersDisrDirectly);
|
||||
inv.setItem(26, chat_StaffDisr);
|
||||
inv.setItem(34, chat_ChatSpam);
|
||||
inv.setItem(35, chat_ChatFlood);
|
||||
inv.setItem(43, chat_ExternalLinks);
|
||||
inv.setItem(44, chat_FactionMesaggesSpam);
|
||||
inv.setItem(2, misc_InsiderRank);
|
||||
inv.setItem(6, misc_Unban);
|
||||
inv.setItem(4, misc_Skull);
|
||||
inv.setItem(5, misc_RulesDoc);
|
||||
inv.setItem(3, misc_LinksDoc);
|
||||
inv.setItem(23, hcf_LeaveAndKill);
|
||||
inv.setItem(22, hcf_Betray);
|
||||
inv.setItem(52, chat_HelpopMissue);
|
||||
inv.setItem(21, hcf_AnvilSpam);
|
||||
inv.setItem(53, chat_LieToStaff);
|
||||
|
||||
// ####################################################################################################################################################################### //
|
||||
|
||||
player.openInventory(inv);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onClick(InventoryClickEvent event){
|
||||
|
||||
if(!event.getInventory().getName().contains("Punish Manager")){
|
||||
return;
|
||||
}
|
||||
Player player = (Player) event.getWhoClicked();
|
||||
event.setCancelled(true);
|
||||
switch(event.getRawSlot()){
|
||||
// ####################################################################################################################################################################### //
|
||||
case 9:
|
||||
if(player.hasPermission("base.command.punishment.ipban")){
|
||||
Bukkit.dispatchCommand(player, "ipban " + target + " Hacked client" + silent);
|
||||
player.closeInventory();
|
||||
}else{
|
||||
Bukkit.dispatchCommand(player, "tempban " + target + " 365d" + " Hacked client" + silent);
|
||||
player.closeInventory();
|
||||
}
|
||||
break;
|
||||
|
||||
case 10:
|
||||
Bukkit.dispatchCommand(player, "tempban " + target + " 30d" + " Hacked client [Admit]" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 18:
|
||||
Bukkit.dispatchCommand(player, "tempban " + target + " 15d" + " Xray" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 19:
|
||||
Bukkit.dispatchCommand(player, "tempban " + target + " 7d" + " Xray [Admit]" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 27:
|
||||
Bukkit.dispatchCommand(player, "tempban " + target + " 30d" + " Autoclick" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 28:
|
||||
Bukkit.dispatchCommand(player, "tempban " + target + " 15d" + " Autoclick [Admit]" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 36:
|
||||
Bukkit.dispatchCommand(player, "tempban " + target + " 3d" + " Abusing of glitches" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 37:
|
||||
Bukkit.dispatchCommand(player, "tempban " + target + " 15d" + " Unapproved Mods" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 45:
|
||||
if(player.hasPermission("base.command.punishment.ipban")){
|
||||
Bukkit.dispatchCommand(player, "ipban " + target + " Advertising" + silent);
|
||||
player.closeInventory();
|
||||
}else{
|
||||
Bukkit.dispatchCommand(player, "tempban " + target + " 365d" + " Advertising" + silent);
|
||||
player.closeInventory();
|
||||
}
|
||||
break;
|
||||
|
||||
case 46:
|
||||
if(player.hasPermission("hcf.command.punishment.ipban")){
|
||||
Bukkit.dispatchCommand(player, "ipban " + target + " DDos" + silent);
|
||||
player.closeInventory();
|
||||
}else{
|
||||
Bukkit.dispatchCommand(player, "tempban " + target + " 365d" + " DDos" + silent);
|
||||
player.closeInventory();
|
||||
}
|
||||
break;
|
||||
|
||||
// ####################################################################################################################################################################### //
|
||||
|
||||
case 21:
|
||||
Bukkit.dispatchCommand(player, "warn " + target + " Anvil Spam" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 22:
|
||||
Bukkit.dispatchCommand(player, "tempban " + target + " 3d" + " Betray" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 23:
|
||||
Bukkit.dispatchCommand(player, "warn " + target + " Leave & Kill" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 30:
|
||||
Bukkit.dispatchCommand(player, "warn " + target + " Suffocation traps" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 31:
|
||||
Bukkit.dispatchCommand(player, "tempban " + target + " 1d" + " Abusing of pvp protection" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 32:
|
||||
Bukkit.dispatchCommand(player, "warn " + target + " Kick & Kill" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 39:
|
||||
Bukkit.dispatchCommand(player, "warn " + target + " DTR Evading" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 40:
|
||||
Bukkit.dispatchCommand(player, "tempban " + target + " 1d" + " Alting" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 41:
|
||||
Bukkit.dispatchCommand(player, "warn " + target + " Griefing outside faction claims" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 48:
|
||||
Bukkit.dispatchCommand(player, "warn " + target + " Inside" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 49:
|
||||
Bukkit.dispatchCommand(player, "warn " + target + " Block glitching" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 50:
|
||||
Bukkit.dispatchCommand(player, "warn " + target + " Allying" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
// ####################################################################################################################################################################### //
|
||||
|
||||
case 16:
|
||||
Bukkit.dispatchCommand(player, "tempmute " + target + " 1h" + " Toxicity" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 17:
|
||||
Bukkit.dispatchCommand(player, "tempmute " + target + " 15m" + " Users disrespect" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 25:
|
||||
Bukkit.dispatchCommand(player, "tempmute " + target + " 30m" + " Users disrespect" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 26:
|
||||
Bukkit.dispatchCommand(player, "tempmute " + target + " 1h" + " Staff disrespect" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 34:
|
||||
Bukkit.dispatchCommand(player, "tempmute " + target + " 5m" + " Chat spam" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 35:
|
||||
Bukkit.dispatchCommand(player, "warn " + target + " Chat flood" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 43:
|
||||
Bukkit.dispatchCommand(player, "tempmute " + target + " 30m" + " External links" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 44:
|
||||
Bukkit.dispatchCommand(player, "kick " + target + " Spamming faction commands" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 52:
|
||||
Bukkit.dispatchCommand(player, "warn " + target + " Missue of Helpop" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 53:
|
||||
Bukkit.dispatchCommand(player, "tempban " + target + " 1d" + " Lying to Staff" + silent);
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
// ####################################################################################################################################################################### //
|
||||
|
||||
case 2:
|
||||
if(player.hasPermission("base.command.punishment.insider")){
|
||||
Bukkit.dispatchCommand(player, "pex user " + target + " group set Insider");
|
||||
player.closeInventory();
|
||||
}else{
|
||||
player.sendMessage(ChatColor.BOLD + " * " + ChatColor.GOLD + ChatColor.BOLD + "Punishment " + ChatColor.RED + "You don't have pex access, ask a manager.");
|
||||
player.closeInventory();
|
||||
}
|
||||
break;
|
||||
|
||||
case 6:
|
||||
if(player.hasPermission("base.command.punishment.ipban")){
|
||||
Bukkit.dispatchCommand(player, "unban " + target + silent);
|
||||
player.closeInventory();
|
||||
}else{
|
||||
player.closeInventory();
|
||||
player.sendMessage(ChatColor.BOLD + " * " + ChatColor.GOLD + ChatColor.BOLD + "Punishment " + ChatColor.RED + "You can't unban players, ask a moderator.");
|
||||
}
|
||||
break;
|
||||
|
||||
case 5:
|
||||
player.sendMessage(ChatColor.BOLD + " * " + ChatColor.GOLD + ChatColor.BOLD + "ALERT " + ChatColor.YELLOW + "Rules document " + ChatColor.RED + ChatColor.UNDERLINE + "https://goo.gl/ous7pE");
|
||||
player.closeInventory();
|
||||
break;
|
||||
|
||||
case 3:
|
||||
player.sendMessage(ChatColor.BOLD + " * " + ChatColor.GOLD + ChatColor.BOLD + "ALERT " + ChatColor.YELLOW + "Links document " + ChatColor.RED + ChatColor.UNDERLINE + "https://goo.gl/3xc79b");
|
||||
player.closeInventory();
|
||||
break;
|
||||
case 4:
|
||||
if(event.getClick() == ClickType.LEFT) Bukkit.dispatchCommand(player, "alts " + target);
|
||||
player.closeInventory();
|
||||
if(event.getClick() == ClickType.RIGHT) Bukkit.dispatchCommand(player, "history " + target);
|
||||
player.closeInventory();
|
||||
break;
|
||||
}
|
||||
silent = "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return args.length == 1 ? null : Collections.emptyList();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,101 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.google.common.base.Enums;
|
||||
import com.google.common.base.Optional;
|
||||
import com.google.common.primitives.Ints;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import org.bukkit.*;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class RemoveEntityCommand
|
||||
extends BaseCommand{
|
||||
public RemoveEntityCommand(){
|
||||
super("removeentity", "Removes all of a specific entity.");
|
||||
this.setUsage("/(command) <worldName> <entityType> [removeCustomNamed] [radius]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
boolean removeCustomNamed;
|
||||
Integer radius;
|
||||
if(args.length < 2){
|
||||
sender.sendMessage(this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
World world = Bukkit.getWorld(args[0]);
|
||||
Optional optionalType = Enums.getIfPresent((Class) EntityType.class, args[1].toUpperCase());
|
||||
if(!optionalType.isPresent()){
|
||||
sender.sendMessage(ChatColor.RED + "Not an entity named '" + args[1] + "'.");
|
||||
return true;
|
||||
}
|
||||
EntityType entityType = (EntityType) optionalType.get();
|
||||
if(entityType == EntityType.PLAYER){
|
||||
sender.sendMessage(ChatColor.RED + "You cannot remove " + entityType.name() + " entities!");
|
||||
return true;
|
||||
}
|
||||
boolean bl = removeCustomNamed = args.length > 2 && Boolean.parseBoolean(args[2]);
|
||||
if(args.length > 3){
|
||||
radius = Ints.tryParse(args[3]);
|
||||
if(radius == null){
|
||||
sender.sendMessage(ChatColor.RED + "'" + args[3] + "' is not a number.");
|
||||
return true;
|
||||
}
|
||||
if(radius <= 0){
|
||||
sender.sendMessage(ChatColor.RED + "Radius must be positive.");
|
||||
return true;
|
||||
}
|
||||
}else{
|
||||
radius = 0;
|
||||
}
|
||||
Location location = sender instanceof Player ? ((Player) sender).getLocation() : null;
|
||||
int removed = 0;
|
||||
for(Chunk chunk : world.getLoadedChunks()){
|
||||
for(Entity entity : chunk.getEntities()){
|
||||
LivingEntity livingEntity;
|
||||
if(entity.getType() != entityType || radius != 0 && (location == null || location.distanceSquared(entity.getLocation()) > (double) radius.intValue()) || !removeCustomNamed && (entity instanceof Tameable && ((Tameable) entity).isTamed() || entity instanceof LivingEntity && (livingEntity = (LivingEntity) entity).getCustomName() != null))
|
||||
continue;
|
||||
entity.remove();
|
||||
++removed;
|
||||
}
|
||||
}
|
||||
sender.sendMessage(ChatColor.YELLOW + "Removed " + removed + " of " + entityType.getName() + '.');
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(final CommandSender sender, final Command command, final String label, final String[] args){
|
||||
List<String> results = null;
|
||||
switch(args.length){
|
||||
case 1:{
|
||||
final Collection<World> worlds = Bukkit.getWorlds();
|
||||
results = new ArrayList<String>(worlds.size());
|
||||
for(final World world : worlds){
|
||||
results.add(world.getName());
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 2:{
|
||||
EntityType[] entityTypes = EntityType.values();
|
||||
results = new ArrayList(entityTypes.length);
|
||||
for(EntityType entityType : entityTypes){
|
||||
if(entityType == EntityType.UNKNOWN || entityType == EntityType.PLAYER) continue;
|
||||
results.add(entityType.name());
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:{
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
return BukkitUtils.getCompletions(args, results);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class RenameCommand
|
||||
extends BaseCommand{
|
||||
public RenameCommand(){
|
||||
super("rename", "Rename your held item.");
|
||||
this.setUsage("/(command) <newItemName>");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(ChatColor.RED + "Only players can execute this command.");
|
||||
return true;
|
||||
}
|
||||
if(args.length < 1){
|
||||
sender.sendMessage(this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
Player player = (Player) sender;
|
||||
ItemStack stack = player.getItemInHand();
|
||||
if(stack == null || stack.getType() == Material.AIR){
|
||||
sender.sendMessage(ChatColor.RED + "You are not holding anything.");
|
||||
return true;
|
||||
}
|
||||
ItemMeta meta = stack.getItemMeta();
|
||||
String oldName = meta.getDisplayName();
|
||||
if(oldName != null){
|
||||
oldName = oldName.trim();
|
||||
}
|
||||
String newName = args[0].equalsIgnoreCase("none") || args[0].equalsIgnoreCase("null") ? null : ChatColor.translateAlternateColorCodes('&', StringUtils.join(args, ' ', 0, args.length));
|
||||
if(oldName == null && newName == null){
|
||||
sender.sendMessage(ChatColor.RED + "Your held item already has no name.");
|
||||
return true;
|
||||
}
|
||||
if(oldName != null && oldName.equals(newName)){
|
||||
sender.sendMessage(ChatColor.RED + "Your held item is already named this.");
|
||||
return true;
|
||||
}
|
||||
meta.setDisplayName(newName);
|
||||
stack.setItemMeta(meta);
|
||||
if(newName == null){
|
||||
sender.sendMessage(ChatColor.YELLOW + "Removed name of held item from " + oldName + '.');
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage(ChatColor.YELLOW + "Renamed item in hand from " + (oldName == null ? "no name" : oldName) + ChatColor.YELLOW + " to " + newName + ChatColor.YELLOW + '.');
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.BaseConstants;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.PlayerInventory;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
|
||||
public class RepairCommand
|
||||
extends BaseCommand{
|
||||
private static final short FULLY_REPAIRED_DURABILITY = 0;
|
||||
|
||||
public RepairCommand(){
|
||||
super("repair", "Allows repairing of damaged tools for a player.");
|
||||
this.setUsage("/(command) <playerName> [all]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
Player target;
|
||||
if(args.length > 0){
|
||||
target = BukkitUtils.playerWithNameOrUUID(args[0]);
|
||||
}else{
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
target = (Player) sender;
|
||||
}
|
||||
if(target == null || !BaseCommand.canSee(sender, target)){
|
||||
sender.sendMessage(String.format(BaseConstants.PLAYER_WITH_NAME_OR_UUID_NOT_FOUND, args[0]));
|
||||
return true;
|
||||
}
|
||||
HashSet<ItemStack> toRepair = new HashSet<ItemStack>();
|
||||
if(args.length >= 1 && args[1].equalsIgnoreCase("all")){
|
||||
PlayerInventory targetInventory = target.getInventory();
|
||||
toRepair.addAll(Arrays.asList(targetInventory.getContents()));
|
||||
toRepair.addAll(Arrays.asList(targetInventory.getArmorContents()));
|
||||
}else{
|
||||
toRepair.add(target.getItemInHand());
|
||||
}
|
||||
for(ItemStack stack : toRepair){
|
||||
if(stack == null || stack.getType() == Material.AIR) continue;
|
||||
stack.setDurability((short) 0);
|
||||
}
|
||||
sender.sendMessage(ChatColor.YELLOW + "Repaired " + (toRepair.size() > 1 ? "all" : "item in hand") + " of " + target.getName() + '.');
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return args.length == 1 ? null : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,140 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
import com.sergivb01.base.BaseConstants;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.util.ItemBuilder;
|
||||
import com.sergivb01.util.chat.ClickAction;
|
||||
import com.sergivb01.util.chat.Text;
|
||||
import net.minecraft.util.org.apache.commons.lang3.time.DurationFormatUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.event.inventory.InventoryCloseEvent;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class ReportCommand
|
||||
extends BaseCommand
|
||||
implements Listener{
|
||||
private static final long REPORT_DELAY_MILLIS = TimeUnit.MINUTES.toMillis(3);
|
||||
private final Map<UUID, Long> reportMap;
|
||||
private final HashSet<String> whoReported = new HashSet();
|
||||
|
||||
public ReportCommand(){
|
||||
super("report", "Reports a player");
|
||||
this.setUsage("/(command) <playerName>");
|
||||
this.reportMap = Maps.newHashMap();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(ChatColor.RED + "Only players may report others.");
|
||||
return true;
|
||||
}
|
||||
if(args.length != 1){
|
||||
sender.sendMessage(ChatColor.RED + "Usage: /" + label + " <player> ");
|
||||
return true;
|
||||
}
|
||||
Player player = (Player) sender;
|
||||
Player target = Bukkit.getPlayer(args[0]);
|
||||
if(target == null || !player.canSee(target)){
|
||||
sender.sendMessage(String.format(BaseConstants.PLAYER_WITH_NAME_OR_UUID_NOT_FOUND, args[0]));
|
||||
return true;
|
||||
}
|
||||
if(sender.equals(target)){
|
||||
sender.sendMessage(ChatColor.RED + "You may not report yourself.");
|
||||
return true;
|
||||
}
|
||||
UUID uuid = player.getUniqueId();
|
||||
long millis = System.currentTimeMillis();
|
||||
Long lastReport = this.reportMap.get(uuid);
|
||||
if(lastReport != null && lastReport - millis > 0){
|
||||
sender.sendMessage(ChatColor.RED + "You have already reported someone in the last " + DurationFormatUtils.formatDurationWords(REPORT_DELAY_MILLIS, true, true) + '.');
|
||||
return true;
|
||||
}
|
||||
this.reportMap.put(uuid, millis + REPORT_DELAY_MILLIS);
|
||||
this.whoReported.add(sender.getName());
|
||||
this.openInv((Player) sender, target);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return args.length == 1 ? null : Collections.emptyList();
|
||||
}
|
||||
|
||||
private void openInv(Player p, Player target){
|
||||
Inventory inv = Bukkit.createInventory(null, 18, ChatColor.DARK_AQUA + "Report " + target.getName());
|
||||
ItemStack item = new ItemStack(Material.DIAMOND_SWORD);
|
||||
ItemMeta itemMeta = item.getItemMeta();
|
||||
itemMeta.setDisplayName(ChatColor.YELLOW + "ForceField");
|
||||
item.setItemMeta(itemMeta);
|
||||
inv.addItem(item);
|
||||
ItemStack item3 = new ItemStack(Material.FEATHER);
|
||||
ItemMeta itemMeta3 = item3.getItemMeta();
|
||||
itemMeta3.setDisplayName(ChatColor.YELLOW + "Speed");
|
||||
item3.setItemMeta(itemMeta3);
|
||||
inv.addItem(item3);
|
||||
ItemStack item5 = new ItemStack(Material.DIAMOND_PICKAXE);
|
||||
ItemMeta itemMeta5 = item5.getItemMeta();
|
||||
itemMeta5.setDisplayName(ChatColor.YELLOW + "X-Ray");
|
||||
item5.setItemMeta(itemMeta5);
|
||||
inv.addItem(item5);
|
||||
ItemStack item6 = new ItemStack(Material.ENDER_PEARL);
|
||||
ItemMeta itemMeta6 = item6.getItemMeta();
|
||||
itemMeta6.setDisplayName(ChatColor.YELLOW + "Fly");
|
||||
item6.setItemMeta(itemMeta6);
|
||||
inv.addItem(item6);
|
||||
ItemStack item8 = new ItemStack(Material.SAND);
|
||||
ItemMeta itemMeta8 = item8.getItemMeta();
|
||||
itemMeta8.setDisplayName(ChatColor.YELLOW + "Phasing");
|
||||
item8.setItemMeta(itemMeta8);
|
||||
inv.addItem(item8);
|
||||
ItemStack item9 = new ItemStack(Material.BRICK);
|
||||
ItemMeta itemMeta9 = item9.getItemMeta();
|
||||
itemMeta9.setDisplayName(ChatColor.YELLOW + "Anti-KB");
|
||||
item9.setItemMeta(itemMeta9);
|
||||
inv.addItem(item9);
|
||||
ItemStack builder = new ItemBuilder(Material.DIAMOND_CHESTPLATE).displayName(ChatColor.YELLOW + "Glitching").build();
|
||||
inv.addItem(builder);
|
||||
p.openInventory(inv);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onClick(InventoryClickEvent e){
|
||||
if(e.getInventory().getName().contains("Report")){
|
||||
Player p = (Player) e.getWhoClicked();
|
||||
e.setCancelled(true);
|
||||
p.closeInventory();
|
||||
for(Player on : Bukkit.getOnlinePlayers()){
|
||||
if(!on.hasPermission("hcf.report.view")) continue;
|
||||
if(Bukkit.getPlayer(e.getInventory().getName().replace(ChatColor.DARK_AQUA + "Report ", "")) != null){
|
||||
new Text(ChatColor.YELLOW + "[" + ChatColor.RED + "R" + ChatColor.YELLOW + "] " + ChatColor.RED + e.getInventory().getName().replace(new StringBuilder().append(ChatColor.DARK_AQUA).append("Report ").toString(), "") + ChatColor.GRAY + " has been reported for: " + ChatColor.YELLOW + e.getCurrentItem().getItemMeta().getDisplayName().replace(ChatColor.AQUA.toString(), "") + ChatColor.GRAY + ChatColor.ITALIC + " (Click here)").setHoverText(ChatColor.YELLOW + "Reported by: " + ChatColor.GRAY + p.getName() + ChatColor.YELLOW + ". Click to teleport").setClick(ClickAction.RUN_COMMAND, "/tp " + Bukkit.getPlayer(e.getInventory().getName().replace(new StringBuilder().append(ChatColor.DARK_AQUA).append("Report ").toString(), "")).getName()).send(on);
|
||||
continue;
|
||||
}
|
||||
new Text(ChatColor.GRAY + "[" + ChatColor.AQUA + "R" + ChatColor.GRAY + "] " + ChatColor.AQUA + e.getInventory().getName().replace(new StringBuilder().append(ChatColor.DARK_AQUA).append("Report ").toString(), "") + ChatColor.GRAY + " has been reported for: " + ChatColor.AQUA + e.getCurrentItem().getItemMeta().getDisplayName().replace(ChatColor.AQUA.toString(), "") + ChatColor.GRAY + ChatColor.ITALIC + " (Click here)").setHoverText(ChatColor.YELLOW + "The reporter: " + ChatColor.GRAY + p.getName()).send(on);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void ReportClose(InventoryCloseEvent e){
|
||||
if(e.getInventory().getName().contains("Report")){
|
||||
Player p = (Player) e.getPlayer();
|
||||
p.sendMessage(ChatColor.GOLD + "Report has been sent, any illegitimate reports may result in punishment.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.util.chat.ClickAction;
|
||||
import com.sergivb01.util.chat.Text;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
|
||||
import net.minecraft.util.org.apache.commons.lang3.time.DurationFormatUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class RequestCommand
|
||||
extends BaseCommand{
|
||||
private static final long REPORT_DELAY_MILLIS = TimeUnit.MINUTES.toMillis(3);
|
||||
private final String RECIEVE_MESSAGE;
|
||||
private final Map<UUID, Long> reportMap;
|
||||
private final HashSet<String> whoReported = new HashSet();
|
||||
|
||||
public RequestCommand(){
|
||||
super("request", "Gets the staffs attention");
|
||||
this.setUsage("/(command) <Message>");
|
||||
this.setAliases(new String[]{"helpop"});
|
||||
this.RECIEVE_MESSAGE = "command.request.recieve";
|
||||
this.reportMap = Maps.newHashMap();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String s, String[] args){
|
||||
if(args.length == 0){
|
||||
sender.sendMessage(this.getUsage(s));
|
||||
return true;
|
||||
}
|
||||
Player player = (Player) sender;
|
||||
UUID uuid = player.getUniqueId();
|
||||
long millis = System.currentTimeMillis();
|
||||
Long lastReport = this.reportMap.get(uuid);
|
||||
if(lastReport != null && lastReport - millis > 0){
|
||||
sender.sendMessage(org.bukkit.ChatColor.RED + "You have already requested help in the last " + DurationFormatUtils.formatDurationWords(REPORT_DELAY_MILLIS, true, true) + '.');
|
||||
return true;
|
||||
}
|
||||
this.reportMap.put(uuid, millis + REPORT_DELAY_MILLIS);
|
||||
|
||||
String message = StringUtils.join(args, ' ');
|
||||
for(Player on : Bukkit.getOnlinePlayers()){
|
||||
if(!on.hasPermission(this.RECIEVE_MESSAGE)) continue;
|
||||
new Text(ChatColor.translateAlternateColorCodes('&', "&e[&aRequest&e] &f" + sender.getName() + " &7requested: &e" + message)).setHoverText(ChatColor.translateAlternateColorCodes('&', "&eClick to teleport to &6" + sender.getName())).setClick(ClickAction.RUN_COMMAND, "/tp " + sender.getName()).send(on);
|
||||
}
|
||||
sender.sendMessage(ChatColor.GREEN + "Your request has been sent to staff.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,121 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class RulesCommand
|
||||
extends BaseCommand{
|
||||
private final BasePlugin plugin;
|
||||
//final HashMap<String, String> rule = new HashMap();
|
||||
|
||||
public RulesCommand(BasePlugin plugin){
|
||||
super("rules", "Shows the server rules.");
|
||||
this.setUsage("/(command)");
|
||||
/*this.rule.put("Staff-Disrespect", "Intentionally trying to insult and criticise a staff member.");
|
||||
this.rule.put("DDoS-Threats", "Threats relating to DoS attacks [DDoS].");
|
||||
this.rule.put("DDoS-Comedy", "Joking around about DDoS.");
|
||||
this.rule.put("Spamming", "Constantly posting the same message over.");
|
||||
this.rule.put("Chat-Flood", "Using multiple lines to express one's thought.");
|
||||
this.rule.put("Racist-Content", "Any messages related to profanity towards one's race.");
|
||||
this.rule.put("Death-Threats", "Messages that encourage harm/suicidal inflictions towards one's personal life.");
|
||||
this.rule.put("Unfair-Modification", "Any mods that aren't on the allowed mod list.");
|
||||
this.rule.put("Insiding", "Removing items and or Griefing your current faction to then leave and betray.");*/
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
/*Integer ruleAmount = 1;
|
||||
if (args.length == 0) {
|
||||
sender.sendMessage(ChatColor.GRAY + BukkitUtils.STRAIGHT_LINE_DEFAULT);
|
||||
for (String string : this.rule.keySet()) {
|
||||
new Text(ChatColor.GRAY + "[" + ruleAmount + "] " + ChatColor.DARK_AQUA.toString() + string + ". " + ChatColor.AQUA + this.rule.get(string)).setColor(ChatColor.AQUA).setHoverText(ChatColor.GOLD + "Click for more information").setClick(ClickAction.RUN_COMMAND, "/rules " + string).send(sender);
|
||||
Integer n = ruleAmount;
|
||||
Integer n2 = ruleAmount = Integer.valueOf(ruleAmount + 1);
|
||||
}
|
||||
sender.sendMessage(ChatColor.GRAY + BukkitUtils.STRAIGHT_LINE_DEFAULT);
|
||||
}
|
||||
if (args.length == 1) {
|
||||
for (String string : this.rule.keySet()) {
|
||||
if (!args[0].equalsIgnoreCase(string)) continue;
|
||||
if (string.equalsIgnoreCase("Staff-Disrespect")) {
|
||||
sender.sendMessage(ChatColor.YELLOW + "In-Depth Description: " + ChatColor.RED + "\n Any attempts to disrupt or discourage a staff member from performing their duty will \nnot be tolerated. Issues with staff members should be brought up on the forums with valid evidence. \nDisrespecting staff or undermining decisions will result in consequence.");
|
||||
sender.sendMessage("");
|
||||
sender.sendMessage(ChatColor.GOLD + "Punishments: ");
|
||||
sender.sendMessage(ChatColor.YELLOW + "First Offence: " + ChatColor.RED + "30 Minute Mute");
|
||||
sender.sendMessage(ChatColor.YELLOW + "Second Offence: " + ChatColor.RED + "1 Hour Mute");
|
||||
sender.sendMessage(ChatColor.YELLOW + "Third Offence: " + ChatColor.RED + "1 Day Mute");
|
||||
}
|
||||
if (string.equalsIgnoreCase("DDoS-Threats")) {
|
||||
sender.sendMessage(ChatColor.YELLOW + "In-Depth Description: " + ChatColor.RED + "\n Chat messages related to inappropriate DDoS usage are subject to consequence, whether \nthe opposing party is joking or not.\n*These are considered federal crimes in most countries and will NOT be tolerated on our servers.* ");
|
||||
sender.sendMessage("");
|
||||
sender.sendMessage(ChatColor.GOLD + "Punishments: ");
|
||||
sender.sendMessage(ChatColor.YELLOW + "First Offence: " + ChatColor.RED + "Permanent Ban");
|
||||
}
|
||||
if (string.equalsIgnoreCase("DDoS-Comedy")) {
|
||||
sender.sendMessage(ChatColor.YELLOW + "In-Depth Description: " + ChatColor.RED + "\n Joking about DDoS. Not to be confused with DDoS threats.");
|
||||
sender.sendMessage("");
|
||||
sender.sendMessage(ChatColor.GOLD + "Punishments: ");
|
||||
sender.sendMessage(ChatColor.YELLOW + "First Offence: " + ChatColor.RED + "Mute or a Temporary Ban depending on the severity.");
|
||||
}
|
||||
if (string.equalsIgnoreCase("Spamming")) {
|
||||
sender.sendMessage(ChatColor.YELLOW + "In-Depth Description: " + ChatColor.RED + "\nPosting the same message more than 3 times.");
|
||||
sender.sendMessage("");
|
||||
sender.sendMessage(ChatColor.GOLD + "Punishments: ");
|
||||
sender.sendMessage(ChatColor.YELLOW + "First Offence: " + ChatColor.RED + "5 Minute Mute");
|
||||
sender.sendMessage(ChatColor.YELLOW + "Second Offence: " + ChatColor.RED + "15 Minute Mute");
|
||||
sender.sendMessage(ChatColor.YELLOW + "Third Offence: " + ChatColor.RED + "30 Minute Mute");
|
||||
sender.sendMessage(ChatColor.YELLOW + "Fourth Offence: " + ChatColor.RED + "Tempban 3 Days");
|
||||
}
|
||||
if (string.equalsIgnoreCase("Chat-Flood")) {
|
||||
sender.sendMessage(ChatColor.YELLOW + "In-Depth Description: " + ChatColor.RED + "\nUsing multiple lines to express one's thoughts.");
|
||||
sender.sendMessage("");
|
||||
sender.sendMessage(ChatColor.GOLD + "Punishments: ");
|
||||
sender.sendMessage(ChatColor.YELLOW + "First Offence: " + ChatColor.RED + "Warn");
|
||||
sender.sendMessage(ChatColor.YELLOW + "Second Offence: " + ChatColor.RED + "5 Minute Mute");
|
||||
sender.sendMessage(ChatColor.YELLOW + "Third Offence: " + ChatColor.RED + "15 Minute Mute");
|
||||
sender.sendMessage(ChatColor.YELLOW + "Fourth Offence: " + ChatColor.RED + "30 Minute Mute");
|
||||
}
|
||||
if (string.equalsIgnoreCase("Racism")) {
|
||||
sender.sendMessage(ChatColor.YELLOW + "In-Depth Description: " + ChatColor.RED + "\nWe do not want racial content on the Network, people do not want to be called \u00e2\u20ac\u0153ni*gers\u00e2\u20ac\ufffd etc. \nRacist \u00e2\u20ac\u02dc\u00e2\u20ac\u2122Slang\u00e2\u20ac\u2122\u00e2\u20ac\u2122 such as nigga is discouraged but is not punishable.");
|
||||
sender.sendMessage("");
|
||||
sender.sendMessage(ChatColor.GOLD + "Punishments: ");
|
||||
sender.sendMessage(ChatColor.YELLOW + "First Offence: " + ChatColor.RED + "1 Hour Mute");
|
||||
sender.sendMessage(ChatColor.YELLOW + "Second Offence: " + ChatColor.RED + "3 Hour Mute");
|
||||
sender.sendMessage(ChatColor.YELLOW + "Third Offence: " + ChatColor.RED + "1 Day Mute");
|
||||
sender.sendMessage(ChatColor.GOLD + "Note: Punishment may vary due to severity");
|
||||
}
|
||||
if (string.equalsIgnoreCase("Death-Threats")) {
|
||||
sender.sendMessage(ChatColor.YELLOW + "In-Depth Description: " + ChatColor.RED + "\nAny sort of Death Threats will not be tolerated on the Network.\nWe want to have a very clean server, and that does not involve people telling them to kill themselves.");
|
||||
sender.sendMessage("");
|
||||
sender.sendMessage(ChatColor.GOLD + "Punishments: ");
|
||||
sender.sendMessage(ChatColor.YELLOW + "First Offence: " + ChatColor.RED + "30 Minute Mute");
|
||||
sender.sendMessage(ChatColor.YELLOW + "Second Offence: " + ChatColor.RED + "1 Hour Mute");
|
||||
sender.sendMessage(ChatColor.YELLOW + "Third Offence: " + ChatColor.RED + "1 Day Mute");
|
||||
sender.sendMessage(ChatColor.GOLD + "Note: Punishment may vary due to severity");
|
||||
}
|
||||
if (string.equalsIgnoreCase("Unfair-Modification")) {
|
||||
sender.sendMessage(ChatColor.YELLOW + "In-Depth Description: " + ChatColor.RED + "\nSuch mods include hacked clients, see-through texture packs, etc.\nInquire with a staff member about mods you have doubts about.");
|
||||
sender.sendMessage("");
|
||||
sender.sendMessage(ChatColor.GOLD + "Punishments: ");
|
||||
sender.sendMessage(ChatColor.YELLOW + "First Offence: " + ChatColor.RED + "Permanent Ban");
|
||||
sender.sendMessage(ChatColor.GOLD + "Note: Punishment may vary due to severity");
|
||||
}
|
||||
if (!string.equalsIgnoreCase("Insiding")) continue;
|
||||
sender.sendMessage(ChatColor.YELLOW + "In-Depth Description: " + ChatColor.RED + "\nAny time you remove an item or block in intent to harm or betray your faction.\nThis may include griefing then leaving, or taking items for another Faction in itent to betray.\nAnything that you willingly and knowingly do to cause harm to the faction for antoehr faction will fall under this rule.");
|
||||
sender.sendMessage("");
|
||||
sender.sendMessage(ChatColor.GOLD + "Punishments: ");
|
||||
sender.sendMessage(ChatColor.YELLOW + "First Offence: " + ChatColor.RED + "3 Day Tempban & Prefix");
|
||||
sender.sendMessage(ChatColor.YELLOW + "Second Offence: " + ChatColor.RED + "5 Day TempBan & Longer Deathban");
|
||||
sender.sendMessage(ChatColor.YELLOW + "Third Offence: " + ChatColor.RED + "Blacklist from joining any faction.");
|
||||
sender.sendMessage(ChatColor.GOLD + "Note: Punishment may vary due to severity");
|
||||
}
|
||||
}*/
|
||||
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&eRules can be found at &aveilhcf.us/rules"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.base.user.BaseUser;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.lang.time.DateFormatUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class SNoteCommand
|
||||
extends BaseCommand{
|
||||
public SNoteCommand(){
|
||||
super("snote", "add, removes, and checks notes for a user");
|
||||
this.setUsage("/(command) <add|remove|check> <playerName> [note]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmd, String s, String[] args){
|
||||
if(args.length >= 2){
|
||||
if(Bukkit.getPlayer(args[1]) == null && Bukkit.getOfflinePlayer(args[1]) == null){
|
||||
sender.sendMessage(ChatColor.RED + "Player not found.");
|
||||
return true;
|
||||
}
|
||||
OfflinePlayer tg = Bukkit.getOfflinePlayer(args[1]);
|
||||
BaseUser target = BasePlugin.getPlugin().getUserManager().getUser(tg.getUniqueId());
|
||||
String note = StringUtils.join(args, ' ', 2, args.length);
|
||||
if(args[0].equalsIgnoreCase("add")){
|
||||
if(args[2] != null){
|
||||
String date = DateFormatUtils.format(System.currentTimeMillis(), "dd/MM");
|
||||
String time = DateFormatUtils.format(System.currentTimeMillis(), "hh:mm");
|
||||
target.setNote(ChatColor.translateAlternateColorCodes('&', "&7[" + date + "/" + time + "] &e[" + sender.getName() + "] &c" + note));
|
||||
sender.sendMessage(ChatColor.YELLOW + "You have added a note to " + target.getName());
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
sender.sendMessage(ChatColor.RED + "Usage: /note <check/add/remove> <player> [note]");
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage(ChatColor.RED + "Usage: /note <check/add/remove> <player> [note]");
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import net.minecraft.server.v1_7_R4.MinecraftServer;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class SetMotdCommand
|
||||
extends BaseCommand{
|
||||
private final BasePlugin plugin;
|
||||
|
||||
public SetMotdCommand(BasePlugin plugin){
|
||||
super("setmotd", "Set the servers motd.");
|
||||
this.setUsage("/(command) <message>");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
if(args.length < 1){
|
||||
sender.sendMessage(ChatColor.RED + "You must specify a message.");
|
||||
return false;
|
||||
}
|
||||
|
||||
String message = StringUtils.join(args, ' ', 0, args.length);
|
||||
MinecraftServer.getServer().setMotd(ChatColor.translateAlternateColorCodes('&', message));
|
||||
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&eYou have set this servers MOTD to: &a" + message));
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return args.length == 1 ? null : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.google.common.primitives.Ints;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import static org.bukkit.ChatColor.GREEN;
|
||||
import static org.bukkit.ChatColor.RED;
|
||||
|
||||
public class SetViewDistanceCommand extends BaseCommand{
|
||||
|
||||
public SetViewDistanceCommand(){
|
||||
super("setviewdistance", "Starts global ban wave.");
|
||||
this.setAliases(new String[]{"renderdistance", "setrenderdistance", "svd", "srd"});
|
||||
this.setUsage("/(command) <vipsonly(true/false)> <distance>");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
if(args.length <= 1){
|
||||
sender.sendMessage(this.getUsage());
|
||||
return false;
|
||||
}
|
||||
|
||||
boolean vipsonly = args[0].equalsIgnoreCase("true");
|
||||
Integer distance = Ints.tryParse(args[1]);
|
||||
|
||||
if(distance == null){
|
||||
sender.sendMessage(RED + args[1] + " is not an integer u fatass!");
|
||||
return false;
|
||||
}
|
||||
|
||||
if(distance <= 1){
|
||||
sender.sendMessage(RED + "View distance may not be less or equals to 1.");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
if(vipsonly){
|
||||
for(Player target : Bukkit.getOnlinePlayers()){
|
||||
if(target.hasPermission("utils.vipdistance")){
|
||||
target.spigot().setViewDistance(distance);
|
||||
}
|
||||
}
|
||||
sender.sendMessage(GREEN + "Set distance of VIPS (players with permission utils.vipdistance) to " + distance);
|
||||
return true;
|
||||
}
|
||||
|
||||
for(Player target : Bukkit.getOnlinePlayers()){
|
||||
target.spigot().setViewDistance(distance);
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,142 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.base.user.BaseUser;
|
||||
import com.sergivb01.util.ItemBuilder;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.InventoryHolder;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import static org.bukkit.ChatColor.*;
|
||||
|
||||
public class SettingsCommand extends BaseCommand implements Listener, InventoryHolder{
|
||||
private final BasePlugin plugin;
|
||||
|
||||
public SettingsCommand(BasePlugin plugin){
|
||||
super("settings", "Configure the looking on the server.");
|
||||
this.setUsage("/(command) <message>");
|
||||
this.setAliases(new String[]{"options", "config"});
|
||||
this.plugin = plugin;
|
||||
Bukkit.getPluginManager().registerEvents(this, plugin);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(RED + "You may not execute this command.");
|
||||
return true;
|
||||
}
|
||||
|
||||
Player player = (Player) sender;
|
||||
player.sendMessage(YELLOW + "Opening your menu...");
|
||||
|
||||
ItemStack[] contents = getContents(player);
|
||||
Inventory inv = Bukkit.createInventory(this, contents.length, ChatColor.translateAlternateColorCodes('&', "&6&lSettings"));
|
||||
inv.setContents(contents);
|
||||
player.openInventory(inv);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private ItemStack[] getContents(Player player){
|
||||
BaseUser baseUser = this.plugin.getUserManager().getUser(player.getUniqueId());
|
||||
boolean staff = player.hasPermission("hcf.utils.staff");
|
||||
|
||||
ItemStack[] itemStacks = new ItemStack[9];
|
||||
itemStacks[1] = new ItemBuilder(Material.INK_SACK, 1, (byte) (baseUser.isMessagesVisible() ? 10 : 8))
|
||||
.displayName((baseUser.isMessagesVisible() ? GREEN : RED) + "Private messages")
|
||||
.lore(c("&7Toggle whether you receive messages", "", "&7Click to toggle"))
|
||||
.build();
|
||||
|
||||
itemStacks[4] = new ItemBuilder(Material.INK_SACK, 1, (byte) (baseUser.isMessagingSounds() ? 10 : 8))
|
||||
.displayName((baseUser.isMessagingSounds() ? GREEN : RED) + "Sounds")
|
||||
.lore(c("&7Toggle whether you want notifications sounds.", "", "&7Click to toggle"))
|
||||
.build();
|
||||
|
||||
|
||||
//if(staff){
|
||||
//TODO: Handle staff tab style
|
||||
// itemStacks[7] = new ItemBuilder(Material.INK_SACK, 1, (byte) (baseUser.isMessagesVisible() ? 10 : 8))
|
||||
// .displayName((true /*TODO: Change this to baseUser.getTabStyle()*/ ? GREEN : RED) + "Tab style")
|
||||
/* .lore(c("&7Change your tab style.", "", "&7Click to change"))
|
||||
.build();
|
||||
*/
|
||||
//}else{
|
||||
//itemStacks[7] = new ItemBuilder(Material.INK_SACK, 1, (byte) (baseUser.isMessagesVisible() ? 10 : 8))
|
||||
// .displayName((true /*TODO: Change this to baseUser.getTabStyle()*/ ? GREEN : RED) + "Tab style")
|
||||
/* .lore(c("&7Change your tab style.", "", "&7Click to change"))
|
||||
.build();
|
||||
}
|
||||
*/
|
||||
return itemStacks;
|
||||
}
|
||||
|
||||
|
||||
@EventHandler
|
||||
public void onInventoryClick(InventoryClickEvent event){
|
||||
if((event.getView() != null) && ((event.getWhoClicked() instanceof Player)) && (event.getClickedInventory() != null) && ((event.getClickedInventory().getHolder() instanceof SettingsCommand))){
|
||||
Player player = (Player) event.getWhoClicked();
|
||||
BaseUser baseUser = this.plugin.getUserManager().getUser(player.getUniqueId());
|
||||
//FactionUser factionUser = HCF.getInstance().getUserManager().getUser(player.getUniqueId());
|
||||
|
||||
event.setCancelled(true);
|
||||
|
||||
if(baseUser != null){
|
||||
int slot = event.getSlot();
|
||||
boolean staff = player.hasPermission("hcf.utils.staff");
|
||||
switch(slot){
|
||||
case 1:{ //private messages
|
||||
player.performCommand("togglepm");
|
||||
break;
|
||||
}
|
||||
case 4:{ //sounds
|
||||
player.performCommand("togglesounds");
|
||||
break;
|
||||
}
|
||||
/* case 7:{ //tab style
|
||||
int next = (factionUser.getTabStyleInt() >= (staff ? 2 : 1) ? 0 : factionUser.getTabStyleInt() + 1);
|
||||
factionUser.setTabStyle(next);
|
||||
player.sendMessage(YELLOW + "Tab style set to " + next + " => " + factionUser.getTabStyle().toString());
|
||||
PlayerTab.clean.add(player);
|
||||
break;
|
||||
}
|
||||
*/
|
||||
default:
|
||||
return;
|
||||
}
|
||||
Inventory inventory = event.getClickedInventory();
|
||||
inventory.setContents(getContents(player));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return args.length == 1 ? null : Collections.emptyList();
|
||||
}
|
||||
|
||||
private String[] c(String... strs){
|
||||
for(int i = 0; i < strs.length; i++){
|
||||
strs[i] = ChatColor.translateAlternateColorCodes('&', strs[i]);
|
||||
}
|
||||
return strs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Inventory getInventory(){
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,112 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.primitives.Floats;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class SpeedCommand
|
||||
extends BaseCommand{
|
||||
private static final float DEFAULT_FLIGHT_SPEED = 2.0f;
|
||||
private static final float DEFAULT_WALK_SPEED = 1.0f;
|
||||
private static final ImmutableList<String> COMPLETIONS_FIRST = ImmutableList.of("fly", "walk");
|
||||
private static final ImmutableList<String> COMPLETIONS_SECOND = ImmutableList.of("reset");
|
||||
|
||||
public SpeedCommand(){
|
||||
super("speed", "Sets the fly/walk speed of a player.");
|
||||
this.setUsage("/(command) <fly|walk> <speedMultiplier|reset> [playerName]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
block19:
|
||||
{
|
||||
Boolean flight;
|
||||
Player target;
|
||||
Float multiplier;
|
||||
if(args.length < 2){
|
||||
sender.sendMessage(ChatColor.RED + "Usage: " + this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
if(args.length > 2 && sender.hasPermission(command.getPermission() + ".others")){
|
||||
target = BukkitUtils.playerWithNameOrUUID(args[2]);
|
||||
}else{
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
target = (Player) sender;
|
||||
}
|
||||
if(args[0].equalsIgnoreCase("fly")){
|
||||
flight = true;
|
||||
}else{
|
||||
if(!args[0].equalsIgnoreCase("walk")){
|
||||
sender.sendMessage(this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
flight = false;
|
||||
}
|
||||
if(args[1].equalsIgnoreCase("reset")){
|
||||
multiplier = Float.valueOf(flight != false ? 2.0f : 1.0f);
|
||||
}else{
|
||||
multiplier = Floats.tryParse(args[1]);
|
||||
if(multiplier == null){
|
||||
sender.sendMessage(ChatColor.RED + "Invalid speed multiplier: '" + args[1] + "'.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if(flight.booleanValue()){
|
||||
float flySpeed = 0.1f * multiplier.floatValue();
|
||||
try{
|
||||
target.setFlySpeed(flySpeed);
|
||||
Command.broadcastCommandMessage(sender, ChatColor.YELLOW + "Flight speed of " + target.getName() + " has been set to " + multiplier + '.');
|
||||
return true;
|
||||
}catch(IllegalArgumentException ex){
|
||||
if(flySpeed < 0.1f){
|
||||
sender.sendMessage(ChatColor.RED + "Speed multiplier too low: " + multiplier);
|
||||
}else if(flySpeed > 0.1f){
|
||||
sender.sendMessage(ChatColor.RED + "Speed multiplier too high: " + multiplier);
|
||||
}
|
||||
break block19;
|
||||
}
|
||||
}
|
||||
float walkSpeed = 0.2f * multiplier.floatValue();
|
||||
try{
|
||||
target.setWalkSpeed(walkSpeed);
|
||||
Command.broadcastCommandMessage(sender, ChatColor.YELLOW + "Walking speed of " + target.getName() + " has been set to " + multiplier + '.');
|
||||
return true;
|
||||
}catch(IllegalArgumentException ex){
|
||||
if(walkSpeed < 0.2f){
|
||||
sender.sendMessage(ChatColor.RED + "Speed multiplier too low: " + multiplier);
|
||||
}
|
||||
if(walkSpeed <= 0.2f) break block19;
|
||||
sender.sendMessage(ChatColor.RED + "Speed multiplier too high: " + multiplier);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
switch(args.length){
|
||||
case 1:{
|
||||
return BukkitUtils.getCompletions(args, COMPLETIONS_FIRST);
|
||||
}
|
||||
case 2:{
|
||||
return BukkitUtils.getCompletions(args, COMPLETIONS_SECOND);
|
||||
}
|
||||
case 3:{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import net.minecraft.util.com.google.common.io.ByteArrayDataOutput;
|
||||
import net.minecraft.util.com.google.common.io.ByteStreams;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class StaffServerCommand extends BaseCommand{
|
||||
public StaffServerCommand(){
|
||||
super("staffserver", "Teleports to a server.");
|
||||
this.setUsage("/(command) <server>");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args){
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(ChatColor.RED + "You may not do that.");
|
||||
return false;
|
||||
}
|
||||
if(args.length < 1){
|
||||
sender.sendMessage(ChatColor.RED + "Usage: " + this.getUsage(label));
|
||||
return true;
|
||||
}else{
|
||||
final ByteArrayDataOutput dataOutput = ByteStreams.newDataOutput();
|
||||
dataOutput.writeUTF("Connect");
|
||||
dataOutput.writeUTF(args[0]);
|
||||
((Player) sender).sendPluginMessage(BasePlugin.getPlugin(), "BungeeCord", dataOutput.toByteArray());
|
||||
sender.sendMessage(ChatColor.YELLOW + "Sending you to " + ChatColor.GOLD + args[0]);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,173 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.base.event.StaffModeEvent;
|
||||
import com.sergivb01.base.user.BaseUser;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.PlayerInventory;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
public class StaffUtilitiesCommand extends BaseCommand{
|
||||
public static ConcurrentHashMap<Player, ItemStack[]> staffitems = new ConcurrentHashMap<>();
|
||||
public static ConcurrentHashMap<Player, ItemStack[]> staffarmor = new ConcurrentHashMap<>();
|
||||
private final HashMap<UUID, ItemStack[]> contents = new HashMap<>();
|
||||
private final HashMap<UUID, ItemStack[]> armorContents = new HashMap<>();
|
||||
BasePlugin plugin;
|
||||
|
||||
|
||||
public StaffUtilitiesCommand(final BasePlugin plugin){
|
||||
super("staffmode", "Turns on/off staffmode");
|
||||
this.setAliases(new String[]{"mod", "h", "staff"});
|
||||
this.plugin = plugin;
|
||||
this.setUsage("/(command)");
|
||||
}
|
||||
|
||||
public static ItemStack getRandomTeleport(){
|
||||
ItemStack is = new ItemStack(351, 1, (byte) 14);
|
||||
ItemMeta im = is.getItemMeta();
|
||||
im.setDisplayName(ChatColor.GOLD + "Random Teleport " + ChatColor.GRAY + "(Right Click)");
|
||||
is.setItemMeta(im);
|
||||
return is;
|
||||
}
|
||||
|
||||
public static ItemStack getFreezeTool(){
|
||||
ItemStack is = new ItemStack(Material.IRON_FENCE);
|
||||
ItemMeta im = is.getItemMeta();
|
||||
im.setDisplayName(ChatColor.GOLD + "Freeze Player " + ChatColor.GRAY + "(Right Click)");
|
||||
is.setItemMeta(im);
|
||||
return is;
|
||||
}
|
||||
|
||||
public static ItemStack getCompassTool(){
|
||||
ItemStack is = new ItemStack(Material.COMPASS);
|
||||
ItemMeta im = is.getItemMeta();
|
||||
im.setDisplayName(ChatColor.GOLD + "Teleport " + ChatColor.GRAY + "(Right Click)");
|
||||
is.setItemMeta(im);
|
||||
return is;
|
||||
}
|
||||
|
||||
public static ItemStack getMinerTeleport(){
|
||||
ItemStack is = new ItemStack(Material.DIAMOND_PICKAXE);
|
||||
ItemMeta im = is.getItemMeta();
|
||||
im.setDisplayName(ChatColor.GOLD + "Miner Teleport " + ChatColor.GRAY + "(Right Click)");
|
||||
is.setItemMeta(im);
|
||||
return is;
|
||||
}
|
||||
|
||||
public static ItemStack getBookTool(){
|
||||
ItemStack is = new ItemStack(Material.BOOK);
|
||||
ItemMeta im = is.getItemMeta();
|
||||
im.setDisplayName(ChatColor.GOLD + "Inspect " + ChatColor.GRAY + "(Right Click)");
|
||||
is.setItemMeta(im);
|
||||
return is;
|
||||
}
|
||||
|
||||
public static ItemStack getWorldEditTool(){
|
||||
ItemStack is = new ItemStack(Material.WOOD_AXE);
|
||||
ItemMeta im = is.getItemMeta();
|
||||
im.setDisplayName(ChatColor.GOLD + "World Edit ");
|
||||
is.setItemMeta(im);
|
||||
return is;
|
||||
}
|
||||
|
||||
public static ItemStack getVanishTool(boolean vanish){
|
||||
if(vanish){
|
||||
ItemStack is = new ItemStack(351, 1, (byte) 8);
|
||||
ItemMeta im = is.getItemMeta();
|
||||
im.setDisplayName(ChatColor.RED + "Disable Vanish " + ChatColor.GRAY + "(Right Click)");
|
||||
is.setItemMeta(im);
|
||||
return is;
|
||||
}else{
|
||||
ItemStack is = new ItemStack(351, 1, (byte) 10);
|
||||
ItemMeta im = is.getItemMeta();
|
||||
im.setDisplayName(ChatColor.GREEN + "Enable Vanish " + ChatColor.GRAY + "(Right Click)");
|
||||
is.setItemMeta(im);
|
||||
return is;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public boolean hasPreviousInventory(Player player){
|
||||
return contents.containsKey(player.getUniqueId()) && armorContents.containsKey(player.getUniqueId());
|
||||
}
|
||||
|
||||
public void saveInventory(Player player){
|
||||
contents.put(player.getUniqueId(), player.getInventory().getContents());
|
||||
armorContents.put(player.getUniqueId(), player.getInventory().getArmorContents());
|
||||
}
|
||||
|
||||
public void loadInventory(Player player){
|
||||
PlayerInventory playerInventory = player.getInventory();
|
||||
playerInventory.setContents((ItemStack[]) contents.get(player.getUniqueId()));
|
||||
playerInventory.setArmorContents((ItemStack[]) armorContents.get(player.getUniqueId()));
|
||||
contents.remove(player.getUniqueId());
|
||||
armorContents.remove(player.getUniqueId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args){
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(ChatColor.RED + "Only players.");
|
||||
return false;
|
||||
}
|
||||
|
||||
final Player player = (Player) sender;
|
||||
final BaseUser user = this.plugin.getUserManager().getUser(player.getUniqueId());
|
||||
final StaffModeEvent playerFreezeEvent = new StaffModeEvent(player, !user.isStaffUtil());
|
||||
Bukkit.getServer().getPluginManager().callEvent(playerFreezeEvent);
|
||||
player.sendMessage(ChatColor.YELLOW + "Staff Mode has been set to " + !user.isStaffUtil() + ChatColor.YELLOW + ".");
|
||||
if(!user.isStaffUtil()){
|
||||
staffitems.put((Player) sender, ((Player) sender).getInventory().getContents());
|
||||
staffarmor.put((Player) sender, ((Player) sender).getInventory().getArmorContents());
|
||||
Player p = (Player) sender;
|
||||
|
||||
saveInventory(player);
|
||||
PlayerInventory playerInventory = player.getInventory();
|
||||
playerInventory.setArmorContents(new ItemStack[]{new ItemStack(Material.AIR), new ItemStack(Material.AIR), new ItemStack(Material.AIR), new ItemStack(Material.AIR)});
|
||||
playerInventory.clear();
|
||||
|
||||
p.getInventory().setItem(0, getCompassTool());
|
||||
p.getInventory().setItem(1, getBookTool());
|
||||
p.getInventory().setItem(2, getWorldEditTool());
|
||||
|
||||
user.setVanished(true);
|
||||
|
||||
p.getInventory().setItem(6, getFreezeTool());
|
||||
p.getInventory().setItem(8, getVanishTool(true));
|
||||
p.getInventory().setItem(7, getRandomTeleport());
|
||||
|
||||
p.setGameMode(GameMode.CREATIVE);
|
||||
}else{
|
||||
Player p = (Player) sender;
|
||||
|
||||
PlayerInventory playerInventory = player.getInventory();
|
||||
playerInventory.setArmorContents(new ItemStack[]{new ItemStack(Material.AIR), new ItemStack(Material.AIR),
|
||||
new ItemStack(Material.AIR), new ItemStack(Material.AIR)});
|
||||
playerInventory.clear();
|
||||
player.setGameMode(GameMode.SURVIVAL);
|
||||
if(hasPreviousInventory(player)){
|
||||
loadInventory(player);
|
||||
}
|
||||
|
||||
if(staffitems.contains(player)){
|
||||
p.getInventory().setContents(staffitems.remove(sender));
|
||||
p.getInventory().setArmorContents(staffarmor.remove(sender));
|
||||
}
|
||||
p.setGameMode(GameMode.SURVIVAL);
|
||||
}
|
||||
user.setStaffUtil(!user.isStaffUtil());
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class StopLagCommand
|
||||
extends BaseCommand{
|
||||
private final BasePlugin plugin;
|
||||
|
||||
public StopLagCommand(BasePlugin plugin){
|
||||
super("stoplag", "Decrease the server lag.");
|
||||
this.plugin = plugin;
|
||||
this.setUsage("/(command)");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
boolean newMode = !this.plugin.getServerHandler().isDecreasedLagMode();
|
||||
this.plugin.getServerHandler().setDecreasedLagMode(newMode);
|
||||
String newModeString = Boolean.toString(newMode);
|
||||
for(World world : Bukkit.getWorlds()){
|
||||
world.setGameRuleValue("doDaylightCycle", newModeString);
|
||||
}
|
||||
Command.broadcastCommandMessage(sender, ChatColor.YELLOW + "Server is " + (newMode ? new StringBuilder().append(ChatColor.RED).append("not").toString() : new StringBuilder().append(ChatColor.GREEN).append("now").toString()) + ChatColor.YELLOW + " allowing intensive activity.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,98 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class SudoCommand
|
||||
extends BaseCommand{
|
||||
public SudoCommand(){
|
||||
super("sudo", "Forces a player to run command.");
|
||||
this.setUsage("/(command) <force> <all|playerName> <command args...>");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
boolean force;
|
||||
if(args.length < 3){
|
||||
sender.sendMessage(this.getUsage());
|
||||
return true;
|
||||
}
|
||||
try{
|
||||
force = Boolean.parseBoolean(args[0]);
|
||||
}catch(IllegalArgumentException ex){
|
||||
sender.sendMessage(this.getUsage());
|
||||
return true;
|
||||
}
|
||||
String executingCommand = StringUtils.join(args, ' ', 2, args.length);
|
||||
if(args[1].equalsIgnoreCase("all")){
|
||||
for(Player target : Bukkit.getOnlinePlayers()){
|
||||
this.executeCommand(target, executingCommand, force);
|
||||
}
|
||||
sender.sendMessage(ChatColor.RED + "Forcing all players to run " + executingCommand + (force ? " with permission bypasses" : "") + '.');
|
||||
return true;
|
||||
}
|
||||
Player target2 = Bukkit.getPlayer(args[1]);
|
||||
if(SudoCommand.checkNull(sender, args[1])){
|
||||
return true;
|
||||
}
|
||||
this.executeCommand(target2, executingCommand, force);
|
||||
Command.broadcastCommandMessage(sender, ChatColor.RED + sender.getName() + ChatColor.RED + " made " + target2.getName() + " run " + executingCommand + (force ? " with permission bypasses" : "") + '.');
|
||||
sender.sendMessage(ChatColor.RED + "Making " + target2.getName() + " to run " + executingCommand + (force ? " with permission bypasses" : "") + '.');
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
ArrayList<String> results;
|
||||
if(args.length == 1){
|
||||
results = new ArrayList<String>(2);
|
||||
results.add("true");
|
||||
results.add("false");
|
||||
}else{
|
||||
if(args.length != 2){
|
||||
return Collections.emptyList();
|
||||
}
|
||||
results = new ArrayList();
|
||||
results.add("ALL");
|
||||
Player senderPlayer = sender instanceof Player ? (Player) sender : null;
|
||||
for(Player target : Bukkit.getOnlinePlayers()){
|
||||
if(senderPlayer != null && !senderPlayer.canSee(target)) continue;
|
||||
results.add(target.getName());
|
||||
}
|
||||
}
|
||||
return BukkitUtils.getCompletions(args, results);
|
||||
}
|
||||
|
||||
|
||||
private boolean executeCommand(Player target, String executingCommand, boolean force){
|
||||
if(target.isOp()){
|
||||
force = false;
|
||||
}
|
||||
try{
|
||||
if(force){
|
||||
target.setOp(true);
|
||||
}
|
||||
target.performCommand(executingCommand);
|
||||
boolean bl = true;
|
||||
return bl;
|
||||
}catch(Exception ex){
|
||||
boolean bl = false;
|
||||
return bl;
|
||||
}finally{
|
||||
if(force){
|
||||
target.setOp(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class ToggleDonorOnly
|
||||
extends BaseCommand{
|
||||
BasePlugin plugin;
|
||||
|
||||
public ToggleDonorOnly(BasePlugin plugin){
|
||||
super("toggledonoronly", "Turns the server into Donor only mode.");
|
||||
this.setUsage("/(command)");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
this.plugin.getServerHandler().setDonorOnly(!this.plugin.getServerHandler().isDonorOnly());
|
||||
Command.broadcastCommandMessage(sender, ChatColor.YELLOW + "Server is " + (!this.plugin.getServerHandler().isDonorOnly() ? new StringBuilder().append(ChatColor.RED).append("not").toString() : new StringBuilder().append(ChatColor.GREEN).append("now").toString()) + ChatColor.YELLOW + " in donor only mode.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.sergivb01.base.BaseConstants;
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.base.user.BaseUser;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class VanishCommand
|
||||
extends BaseCommand{
|
||||
private final BasePlugin plugin;
|
||||
|
||||
public VanishCommand(BasePlugin plugin){
|
||||
super("vanish", "Hide from other players.");
|
||||
this.setAliases(new String[]{"v", "vis", "vanish", "invis"});
|
||||
this.setUsage("/(command) [playerName]");
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
Player target;
|
||||
if(args.length > 0 && sender.hasPermission(command.getPermission() + ".others")){
|
||||
target = BukkitUtils.playerWithNameOrUUID(args[0]);
|
||||
}else{
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
target = (Player) sender;
|
||||
}
|
||||
if(target == null || sender instanceof Player && !((Player) sender).canSee(target)){
|
||||
sender.sendMessage(String.format(BaseConstants.PLAYER_WITH_NAME_OR_UUID_NOT_FOUND, args[0]));
|
||||
return true;
|
||||
}
|
||||
BaseUser baseUser = this.plugin.getUserManager().getUser(target.getUniqueId());
|
||||
Player p = (Player) sender;
|
||||
boolean newVanished = !baseUser.isVanished() || args.length > 1 && Boolean.parseBoolean(args[1]);
|
||||
baseUser.setVanished(target, newVanished, true);
|
||||
if(baseUser.isStaffUtil()){
|
||||
p.getInventory().setItem(8, StaffUtilitiesCommand.getVanishTool(newVanished));
|
||||
p.sendMessage("changed");
|
||||
}
|
||||
sender.sendMessage(ChatColor.YELLOW + "Vanish mode of " + target.getName() + " set to " + newVanished + '.');
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return args.length == 1 ? null : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,101 @@
|
|||
package com.sergivb01.base.command.module.essential;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.sergivb01.base.BaseConstants;
|
||||
import com.sergivb01.base.BasePlugin;
|
||||
import com.sergivb01.base.StaffPriority;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.base.user.BaseUser;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import org.apache.commons.lang.time.DurationFormatUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class WhoisCommand extends BaseCommand{
|
||||
private static final Map<Integer, String> CLIENT_PROTOCOL_IDS;
|
||||
|
||||
static{
|
||||
CLIENT_PROTOCOL_IDS = ImmutableMap.of(4, "1.7.5", 5, "1.7.10", 47, "1.8");
|
||||
}
|
||||
|
||||
private final BasePlugin plugin;
|
||||
|
||||
public WhoisCommand(final BasePlugin plugin){
|
||||
super("whois", "Check information about a player.");
|
||||
this.plugin = plugin;
|
||||
this.setUsage("/(command) [player]");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args){
|
||||
if(args.length < 1){
|
||||
sender.sendMessage(this.getUsage());
|
||||
return true;
|
||||
}
|
||||
final Player target = BukkitUtils.playerWithNameOrUUID(args[0]);
|
||||
if(target == null || !BaseCommand.canSee(sender, target)){
|
||||
sender.sendMessage(String.format(BaseConstants.PLAYER_WITH_NAME_OR_UUID_NOT_FOUND, args[0]));
|
||||
return true;
|
||||
}
|
||||
final Location location = target.getLocation();
|
||||
final World world = location.getWorld();
|
||||
final BaseUser baseUser = this.plugin.getUserManager().getUser(target.getUniqueId());
|
||||
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7" + BukkitUtils.STRAIGHT_LINE_DEFAULT));
|
||||
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9Username: &f" + target.getName()));
|
||||
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9UUID: &f" + target.getUniqueId()));
|
||||
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9Operator: &f" + (target.isOp() ? "True" : "False")));
|
||||
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9All Permissions: &f" + (target.hasPermission("*") ? "True" : "False")));
|
||||
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9Staff: &f" + (target.hasPermission("hcf.utils.staff") ? "True" : "False")));
|
||||
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9Priority: &f" + StaffPriority.of(target).getPriorityLevel()));
|
||||
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9Idle: &f" + (target.isOnline() ? ChatColor.RED + "User is offline" : DurationFormatUtils.formatDurationWords(BukkitUtils.getIdleTime(target), true, true))));
|
||||
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7" + BukkitUtils.STRAIGHT_LINE_DEFAULT));
|
||||
/*
|
||||
sender.sendMessage(ChatColor.GRAY + BukkitUtils.STRAIGHT_LINE_DEFAULT);
|
||||
sender.sendMessage(ChatColor.GREEN + " [" + target.getDisplayName() + ChatColor.GREEN + ']');
|
||||
sender.sendMessage(ChatColor.YELLOW + " Health: " + ChatColor.AQUA + target.getHealth() + '/' + target.getMaxHealth());
|
||||
sender.sendMessage(ChatColor.YELLOW + " Hunger: " + ChatColor.AQUA + target.getFoodLevel() + '/' + 20 + " (" + target.getSaturation() + " saturation)");
|
||||
sender.sendMessage(ChatColor.YELLOW + " Exp/Level: " + ChatColor.AQUA + target.getExp() + '/' + target.getLevel());
|
||||
sender.sendMessage(ChatColor.YELLOW + " Location: " + ChatColor.AQUA + world.getName() + ' ' + ChatColor.GRAY + '[' + WordUtils.capitalizeFully(world.getEnvironment().name().replace('_', ' ')) + "] " + ChatColor.GOLD + '(' + location.getBlockX() + ", " + location.getBlockY() + ", " + location.getBlockZ() + ')');
|
||||
sender.sendMessage(ChatColor.YELLOW + " Vanished: " + ChatColor.AQUA + baseUser.isVanished() + " (priority=" + StaffPriority.of(target).getPriorityLevel() + ')');
|
||||
sender.sendMessage(ChatColor.YELLOW + " Staff Chat: " + ChatColor.AQUA + baseUser.isInStaffChat());
|
||||
sender.sendMessage(ChatColor.YELLOW + " Operator: " + ChatColor.AQUA + target.isOp());
|
||||
if (PermissionsEx.getPlugin() != null) {
|
||||
sender.sendMessage(ChatColor.YELLOW + " * Permission: " + (PermissionsEx.getUser(target).has("*") ? (ChatColor.AQUA + "True") : (ChatColor.AQUA + "False")));
|
||||
}
|
||||
sender.sendMessage(ChatColor.YELLOW + " Staff Mode: " + ChatColor.AQUA + baseUser.isStaffUtil());
|
||||
sender.sendMessage(ChatColor.YELLOW + " GameMode: " + ChatColor.AQUA + WordUtils.capitalizeFully(target.getGameMode().name().replace('_', ' ')));
|
||||
sender.sendMessage(ChatColor.YELLOW + " Idle Time: " + ChatColor.AQUA + DurationFormatUtils.formatDurationWords(BukkitUtils.getIdleTime(target), true, true));
|
||||
sender.sendMessage(ChatColor.YELLOW + " IP4 Address: " + ChatColor.RED + "" + ChatColor.STRIKETHROUGH + "*********");
|
||||
if (baseUser.getNotes() != null) {
|
||||
if (!baseUser.getNotes().isEmpty()) {
|
||||
if (baseUser.getNotes().size() > 1) {
|
||||
new Text(ChatColor.YELLOW + " Note: " + ChatColor.AQUA + baseUser.getNotes().get(0) + ChatColor.GRAY + " [Click for more notes]").setHoverText(ChatColor.AQUA + "Click me to view " + target.getName() + "'s " + baseUser.getNotes().size() + " more notes.").setClick(ClickAction.RUN_COMMAND, "/note check " + target.getName()).send(sender);
|
||||
} else {
|
||||
sender.sendMessage(ChatColor.YELLOW + " Notes: " + ChatColor.AQUA + baseUser.getNotes().get(0));
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage(ChatColor.YELLOW + " Notes: " + ChatColor.RED + "none");
|
||||
}
|
||||
} else {
|
||||
sender.sendMessage(ChatColor.YELLOW + " Notes: " + ChatColor.RED + "none");
|
||||
}
|
||||
final int version = ((CraftPlayer) target).getHandle().playerConnection.networkManager.getVersion();
|
||||
sender.sendMessage(ChatColor.YELLOW + " Client Version: " + ChatColor.AQUA + version + ChatColor.GRAY + " [" + ObjectUtils.firstNonNull(WhoisCommand.CLIENT_PROTOCOL_IDS.get(version), "Unknown (check at http://wiki.vg/Protocol_version_numbers)") + "]");
|
||||
sender.sendMessage(ChatColor.GRAY + BukkitUtils.STRAIGHT_LINE_DEFAULT);*/
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(final CommandSender sender, final Command command, final String label, final String[] args){
|
||||
return (args.length == 1) ? null : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
package com.sergivb01.base.command.module.inventory;
|
||||
|
||||
import com.sergivb01.base.BaseConstants;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.PlayerInventory;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class ClearInvCommand
|
||||
extends BaseCommand{
|
||||
public ClearInvCommand(){
|
||||
super("ci", "Clears a players inventory.");
|
||||
this.setAliases(new String[]{"clear", "clearinventory"});
|
||||
this.setUsage("/(command) <playerName>");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPlayerOnlyCommand(){
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
|
||||
Player target;
|
||||
if(args.length > 0 && sender.hasPermission(command.getPermission() + ".others")){
|
||||
target = BukkitUtils.playerWithNameOrUUID(args[0]);
|
||||
}else{
|
||||
if(!(sender instanceof Player)){
|
||||
sender.sendMessage(this.getUsage(label));
|
||||
return true;
|
||||
}
|
||||
target = (Player) sender;
|
||||
}
|
||||
if(target == null || !BaseCommand.canSee(sender, target)){
|
||||
sender.sendMessage(String.format(BaseConstants.PLAYER_WITH_NAME_OR_UUID_NOT_FOUND, args[0]));
|
||||
return true;
|
||||
}
|
||||
PlayerInventory targetInventory = target.getInventory();
|
||||
targetInventory.clear();
|
||||
targetInventory.setArmorContents(new ItemStack[]{new ItemStack(Material.AIR, 1), new ItemStack(Material.AIR, 1), new ItemStack(Material.AIR, 1), new ItemStack(Material.AIR, 1)});
|
||||
Command.broadcastCommandMessage(sender, ChatColor.YELLOW + "Cleared inventory of player " + target.getName() + '.');
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return args.length == 1 ? null : Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
package com.sergivb01.base.command.module.inventory;
|
||||
|
||||
import com.sergivb01.base.BaseConstants;
|
||||
import com.sergivb01.base.StaffPriority;
|
||||
import com.sergivb01.base.command.BaseCommand;
|
||||
import com.sergivb01.util.BukkitUtils;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class CopyInvCommand
|
||||
extends BaseCommand{
|
||||
public CopyInvCommand(){
|
||||
super("copyinv", "Copies a players inv");
|
||||
this.setAliases(new String[]{"copyinventory"});
|
||||
this.setUsage("/(command) <playerName>");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender cs, Command cmd, String s, String[] args){
|
||||
if(!(cs instanceof Player)){
|
||||
cs.sendMessage(ChatColor.RED + "You cannot copy your inventory.");
|
||||
return true;
|
||||
}
|
||||
if(args.length == 0){
|
||||
cs.sendMessage(ChatColor.RED + this.getUsage());
|
||||
return true;
|
||||
}
|
||||
Player player = (Player) cs;
|
||||
if(args.length == 1){
|
||||
Player target = BukkitUtils.playerWithNameOrUUID(args[0]);
|
||||
if(cs.equals(target)){
|
||||
cs.sendMessage(ChatColor.RED + "You cannot copygit the inventory of yourself.");
|
||||
return true;
|
||||
}
|
||||
if(target == null || !CopyInvCommand.canSee(player, target)){
|
||||
player.sendMessage(String.format(BaseConstants.PLAYER_WITH_NAME_OR_UUID_NOT_FOUND, args[0]));
|
||||
return true;
|
||||
}
|
||||
StaffPriority selfPriority = StaffPriority.of(player);
|
||||
if(StaffPriority.of(target).isMoreThan(selfPriority)){
|
||||
cs.sendMessage(ChatColor.RED + "You do not have access to check the inventory of that player.");
|
||||
return true;
|
||||
}
|
||||
player.getInventory().setContents(target.getInventory().getContents());
|
||||
player.getInventory().setArmorContents(target.getInventory().getArmorContents());
|
||||
player.sendMessage(ChatColor.YELLOW + "You have copied the inventory of " + target.getName());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args){
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue