This commit is contained in:
disclearing 2019-01-21 22:11:15 +00:00
parent b842704ad9
commit b2662c4847
1401 changed files with 84941 additions and 1 deletions

View File

@ -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>

21
.idea/compiler.xml Normal file
View File

@ -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>

4
.idea/encodings.xml Normal file
View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with NO BOM" />
</project>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

11
.idea/misc.xml Normal file
View File

@ -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>

10
.idea/modules.xml Normal file
View File

@ -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>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

761
.idea/workspace.xml Normal file
View File

@ -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&#9;" 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>

86
Base/Base.iml Normal file
View File

@ -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>

BIN
Base/lib/LiteBans.jar Normal file

Binary file not shown.

BIN
Base/lib/ProtocolLib.jar Normal file

Binary file not shown.

BIN
Base/lib/SAPI.jar Normal file

Binary file not shown.

BIN
Base/lib/Spigot.jar Normal file

Binary file not shown.

BIN
Base/lib/Vault.jar Normal file

Binary file not shown.

BIN
Base/lib/WorldEdit-6.2.jar Normal file

Binary file not shown.

BIN
Base/lib/nucleusapi.jar Normal file

Binary file not shown.

131
Base/pom.xml Normal file
View File

@ -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>

View File

@ -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.";
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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;
}
}
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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);
}

View File

@ -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();
}
}

View File

@ -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);
}
}

View File

@ -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));
}
}

View File

@ -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));
}
}

View File

@ -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());
}
}

View File

@ -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));
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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");
}
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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();
}
}
}

View File

@ -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;
}
}

View File

@ -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();
}
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
*/
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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();
}
}

View File

@ -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;
}
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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);
}
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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();
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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);
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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.");
}
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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();
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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();
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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);
}
}
}
}

View File

@ -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;
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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