Added RaidMode
This commit is contained in:
parent
37b012ffe1
commit
9b8b2f9a92
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,11 +1,9 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Gradle: com.fasterxml.jackson.core:jackson-annotations:2.8.0">
|
<library name="Gradle: com.fasterxml.jackson.core:jackson-annotations:2.8.0">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-annotations/2.8.0/45b426f7796b741035581a176744d91090e2e6fb/jackson-annotations-2.8.0.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.8.0/jackson-annotations-2.8.0.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES>
|
<SOURCES />
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-annotations/2.8.0/29a1a95363d497e856c0a7d682e4f7973e334068/jackson-annotations-2.8.0-sources.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
@ -1,11 +1,9 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Gradle: com.fasterxml.jackson.core:jackson-core:2.8.5">
|
<library name="Gradle: com.fasterxml.jackson.core:jackson-core:2.8.5">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-core/2.8.5/60d059f5d2930ccd1ef03535b713fd9f933d1ba7/jackson-core-2.8.5.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.8.5/jackson-core-2.8.5.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES>
|
<SOURCES />
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-core/2.8.5/14b04ebe5d1d9b54b793f84245d983b4c329634d/jackson-core-2.8.5-sources.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
@ -1,11 +1,9 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Gradle: com.fasterxml.jackson.core:jackson-databind:2.8.5">
|
<library name="Gradle: com.fasterxml.jackson.core:jackson-databind:2.8.5">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-databind/2.8.5/b3035f37e674c04dafe36a660c3815cc59f764e2/jackson-databind-2.8.5.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.8.5/jackson-databind-2.8.5.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES>
|
<SOURCES />
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-databind/2.8.5/b658c4640ee224391e699ebaea4a3eb1c2ea8239/jackson-databind-2.8.5-sources.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
@ -1,11 +1,9 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Gradle: com.sedmelluq:lavaplayer-common:1.0.5">
|
<library name="Gradle: com.sedmelluq:lavaplayer-common:1.0.5">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.sedmelluq/lavaplayer-common/1.0.5/4529d7855a9918dd2cfdef1a030bcf8abbf5bbae/lavaplayer-common-1.0.5.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/com/sedmelluq/lavaplayer-common/1.0.5/lavaplayer-common-1.0.5.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES>
|
<SOURCES />
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.sedmelluq/lavaplayer-common/1.0.5/abbdf7e043ec24fa7151597d6a6cf44cc8934f71/lavaplayer-common-1.0.5-sources.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
@ -2,11 +2,8 @@
|
|||||||
<library name="Gradle: commons-codec:commons-codec:1.9">
|
<library name="Gradle: commons-codec:commons-codec:1.9">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.9/commons-codec-1.9.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.9/commons-codec-1.9.jar!/" />
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.9/9ce04e34240f674bc72680f8b843b1457383161a/commons-codec-1.9.jar!/" />
|
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES>
|
<SOURCES />
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.9/3f15fff45d57656685abfee9e8302bf14580044c/commons-codec-1.9-sources.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
@ -2,11 +2,8 @@
|
|||||||
<library name="Gradle: commons-logging:commons-logging:1.2">
|
<library name="Gradle: commons-logging:commons-logging:1.2">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.2/commons-logging-1.2.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.2/commons-logging-1.2.jar!/" />
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-logging/commons-logging/1.2/4bfc12adfe4842bf07b657f0369c4cb522955686/commons-logging-1.2.jar!/" />
|
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES>
|
<SOURCES />
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-logging/commons-logging/1.2/ecf26c7507d67782a3bbd148d170b31dfad001aa/commons-logging-1.2-sources.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
@ -2,8 +2,11 @@
|
|||||||
<library name="Gradle: mysql:mysql-connector-java:5.1.38">
|
<library name="Gradle: mysql:mysql-connector-java:5.1.38">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jar!/" />
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/mysql/mysql-connector-java/5.1.38/dbbd7cd309ce167ec8367de4e41c63c2c8593cc5/mysql-connector-java-5.1.38.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES />
|
<SOURCES>
|
||||||
|
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/mysql/mysql-connector-java/5.1.38/b83cac8c938dfb9b7a8e191e2d482be88eb8280c/mysql-connector-java-5.1.38-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
@ -1,11 +1,9 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Gradle: net.iharder:base64:2.3.9">
|
<library name="Gradle: net.iharder:base64:2.3.9">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.iharder/base64/2.3.9/6c34d1c85141be8a21b0a957d84359894e2684b7/base64-2.3.9.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/net/iharder/base64/2.3.9/base64-2.3.9.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES>
|
<SOURCES />
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.iharder/base64/2.3.9/f7aa9fa9bdb0c9d6ade1586c979d631cf71e8645/base64-2.3.9-sources.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
@ -1,11 +1,9 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Gradle: net.java.dev.jna:jna:4.4.0">
|
<library name="Gradle: net.java.dev.jna:jna:4.4.0">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/jna/4.4.0/cb208278274bf12ebdb56c61bd7407e6f774d65a/jna-4.4.0.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/net/java/dev/jna/jna/4.4.0/jna-4.4.0.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES>
|
<SOURCES />
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.java.dev.jna/jna/4.4.0/9d45d3dc35711eef7267d8b4fc2c0dc482ef9fd2/jna-4.4.0-sources.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
@ -2,11 +2,8 @@
|
|||||||
<library name="Gradle: net.sf.trove4j:trove4j:3.0.3">
|
<library name="Gradle: net.sf.trove4j:trove4j:3.0.3">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/net/sf/trove4j/trove4j/3.0.3/trove4j-3.0.3.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/net/sf/trove4j/trove4j/3.0.3/trove4j-3.0.3.jar!/" />
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.sf.trove4j/trove4j/3.0.3/42ccaf4761f0dfdfa805c9e340d99a755907e2dd/trove4j-3.0.3.jar!/" />
|
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES>
|
<SOURCES />
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.sf.trove4j/trove4j/3.0.3/109c5be93362e6e651e417c51d1863477a22969c/trove4j-3.0.3-sources.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
@ -2,11 +2,8 @@
|
|||||||
<library name="Gradle: org.apache.commons:commons-collections4:4.1">
|
<library name="Gradle: org.apache.commons:commons-collections4:4.1">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-collections4/4.1/commons-collections4-4.1.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-collections4/4.1/commons-collections4-4.1.jar!/" />
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-collections4/4.1/a4cf4688fe1c7e3a63aa636cc96d013af537768e/commons-collections4-4.1.jar!/" />
|
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES>
|
<SOURCES />
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-collections4/4.1/f305f3aa45a3b208c013ef92328f8f230329f20e/commons-collections4-4.1-sources.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
@ -2,11 +2,8 @@
|
|||||||
<library name="Gradle: org.apache.httpcomponents:httpclient:4.5.2">
|
<library name="Gradle: org.apache.httpcomponents:httpclient:4.5.2">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpclient/4.5.2/httpclient-4.5.2.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpclient/4.5.2/httpclient-4.5.2.jar!/" />
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpclient/4.5.2/733db77aa8d9b2d68015189df76ab06304406e50/httpclient-4.5.2.jar!/" />
|
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES>
|
<SOURCES />
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpclient/4.5.2/b9f9e3e5255b6ddc3bf21be05428c7a60d00e042/httpclient-4.5.2-sources.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
@ -2,11 +2,8 @@
|
|||||||
<library name="Gradle: org.apache.httpcomponents:httpcore:4.4.4">
|
<library name="Gradle: org.apache.httpcomponents:httpcore:4.4.4">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpcore/4.4.4/httpcore-4.4.4.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpcore/4.4.4/httpcore-4.4.4.jar!/" />
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.4.4/b31526a230871fbe285fbcbe2813f9c0839ae9b0/httpcore-4.4.4.jar!/" />
|
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES>
|
<SOURCES />
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.4.4/c5c19e3e6af6b452def290cde12a3ee4c35c893c/httpcore-4.4.4-sources.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
@ -2,11 +2,8 @@
|
|||||||
<library name="Gradle: org.json:json:20160810">
|
<library name="Gradle: org.json:json:20160810">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/json/json/20160810/json-20160810.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/org/json/json/20160810/json-20160810.jar!/" />
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.json/json/20160810/aca5eb39e2a12fddd6c472b240afe9ebea3a6733/json-20160810.jar!/" />
|
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES>
|
<SOURCES />
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.json/json/20160810/92f4b89bc0bb4c7c3f7b52724568a901b7e0195b/json-20160810-sources.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
@ -1,11 +1,9 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Gradle: org.jsoup:jsoup:1.10.1">
|
<library name="Gradle: org.jsoup:jsoup:1.10.1">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jsoup/jsoup/1.10.1/645f1ad2f6f4cbad1cde4c483eae71e4051be6ef/jsoup-1.10.1.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/org/jsoup/jsoup/1.10.1/jsoup-1.10.1.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES>
|
<SOURCES />
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jsoup/jsoup/1.10.1/ce0ad15b1c229332bfa078f58a440403dd4a73e7/jsoup-1.10.1-sources.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
@ -1,11 +1,9 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Gradle: org.slf4j:slf4j-api:1.7.22">
|
<library name="Gradle: org.slf4j:slf4j-api:1.7.22">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-api/1.7.22/a1c83373863cec7ae8d89dc1c5722d8cb6ec0309/slf4j-api-1.7.22.jar!/" />
|
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.22/slf4j-api-1.7.22.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES>
|
<SOURCES />
|
||||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-api/1.7.22/2b9722cdf33bd0b1d1639a98034dde38b156ad34/slf4j-api-1.7.22-sources.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
@ -14,6 +14,7 @@
|
|||||||
<orderEntry type="library" name="Gradle: com.sedmelluq:lavaplayer:1.2.42" level="project" />
|
<orderEntry type="library" name="Gradle: com.sedmelluq:lavaplayer:1.2.42" level="project" />
|
||||||
<orderEntry type="library" name="Gradle: org.twitter4j:twitter4j-stream:4.0.6" level="project" />
|
<orderEntry type="library" name="Gradle: org.twitter4j:twitter4j-stream:4.0.6" level="project" />
|
||||||
<orderEntry type="library" name="Gradle: org.projectlombok:lombok:1.16.18" level="project" />
|
<orderEntry type="library" name="Gradle: org.projectlombok:lombok:1.16.18" level="project" />
|
||||||
|
<orderEntry type="library" name="Gradle: ca.pjer:chatter-bot-api:1.4.7" level="project" />
|
||||||
<orderEntry type="library" name="Gradle: org.apache.commons:commons-lang3:3.5" level="project" />
|
<orderEntry type="library" name="Gradle: org.apache.commons:commons-lang3:3.5" level="project" />
|
||||||
<orderEntry type="library" name="Gradle: org.apache.commons:commons-collections4:4.1" level="project" />
|
<orderEntry type="library" name="Gradle: org.apache.commons:commons-collections4:4.1" level="project" />
|
||||||
<orderEntry type="library" name="Gradle: org.json:json:20160810" level="project" />
|
<orderEntry type="library" name="Gradle: org.json:json:20160810" level="project" />
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
<orderEntry type="library" name="Gradle: com.sedmelluq:lavaplayer:1.2.42" level="project" />
|
<orderEntry type="library" name="Gradle: com.sedmelluq:lavaplayer:1.2.42" level="project" />
|
||||||
<orderEntry type="library" name="Gradle: org.twitter4j:twitter4j-stream:4.0.6" level="project" />
|
<orderEntry type="library" name="Gradle: org.twitter4j:twitter4j-stream:4.0.6" level="project" />
|
||||||
<orderEntry type="library" name="Gradle: org.projectlombok:lombok:1.16.18" level="project" />
|
<orderEntry type="library" name="Gradle: org.projectlombok:lombok:1.16.18" level="project" />
|
||||||
|
<orderEntry type="library" name="Gradle: ca.pjer:chatter-bot-api:1.4.7" level="project" />
|
||||||
<orderEntry type="library" name="Gradle: org.apache.commons:commons-lang3:3.5" level="project" />
|
<orderEntry type="library" name="Gradle: org.apache.commons:commons-lang3:3.5" level="project" />
|
||||||
<orderEntry type="library" name="Gradle: org.apache.commons:commons-collections4:4.1" level="project" />
|
<orderEntry type="library" name="Gradle: org.apache.commons:commons-collections4:4.1" level="project" />
|
||||||
<orderEntry type="library" name="Gradle: org.json:json:20160810" level="project" />
|
<orderEntry type="library" name="Gradle: org.json:json:20160810" level="project" />
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -30,6 +30,7 @@ dependencies {
|
|||||||
compile 'org.twitter4j:twitter4j-core:4.0.3'
|
compile 'org.twitter4j:twitter4j-core:4.0.3'
|
||||||
compile 'org.twitter4j:twitter4j-stream:4.0.6'
|
compile 'org.twitter4j:twitter4j-stream:4.0.6'
|
||||||
compile 'org.projectlombok:lombok:1.16.18'
|
compile 'org.projectlombok:lombok:1.16.18'
|
||||||
|
compile 'ca.pjer:chatter-bot-api:1.4.7'
|
||||||
}
|
}
|
||||||
|
|
||||||
compileJava.options.encoding = 'UTF-8'
|
compileJava.options.encoding = 'UTF-8'
|
@ -1,5 +1,9 @@
|
|||||||
package me.savvy.rixa;
|
package me.savvy.rixa;
|
||||||
|
|
||||||
|
import com.google.code.chatterbotapi.ChatterBot;
|
||||||
|
import com.google.code.chatterbotapi.ChatterBotFactory;
|
||||||
|
import com.google.code.chatterbotapi.ChatterBotSession;
|
||||||
|
import com.google.code.chatterbotapi.ChatterBotType;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import me.savvy.rixa.commands.admin.*;
|
import me.savvy.rixa.commands.admin.*;
|
||||||
@ -9,6 +13,7 @@ import me.savvy.rixa.commands.handlers.CommandHandler;
|
|||||||
import me.savvy.rixa.commands.mod.DeleteMessagesCommand;
|
import me.savvy.rixa.commands.mod.DeleteMessagesCommand;
|
||||||
import me.savvy.rixa.commands.mod.MuteCommand;
|
import me.savvy.rixa.commands.mod.MuteCommand;
|
||||||
import me.savvy.rixa.commands.mod.PurgeMessagesCommand;
|
import me.savvy.rixa.commands.mod.PurgeMessagesCommand;
|
||||||
|
import me.savvy.rixa.commands.mod.RaidModeCommand;
|
||||||
import me.savvy.rixa.data.database.Data;
|
import me.savvy.rixa.data.database.Data;
|
||||||
import me.savvy.rixa.data.database.DataType;
|
import me.savvy.rixa.data.database.DataType;
|
||||||
import me.savvy.rixa.data.database.sql.DatabaseManager;
|
import me.savvy.rixa.data.database.sql.DatabaseManager;
|
||||||
@ -22,6 +27,7 @@ import me.savvy.rixa.modules.reactions.handlers.React;
|
|||||||
import me.savvy.rixa.modules.reactions.handlers.ReactionManager;
|
import me.savvy.rixa.modules.reactions.handlers.ReactionManager;
|
||||||
import me.savvy.rixa.modules.reactions.react.ConfigReaction;
|
import me.savvy.rixa.modules.reactions.react.ConfigReaction;
|
||||||
import me.savvy.rixa.modules.reactions.react.HelpReaction;
|
import me.savvy.rixa.modules.reactions.react.HelpReaction;
|
||||||
|
import me.savvy.rixa.modules.reactions.react.LeaderboardReaction;
|
||||||
import net.dv8tion.jda.core.AccountType;
|
import net.dv8tion.jda.core.AccountType;
|
||||||
import net.dv8tion.jda.core.JDA;
|
import net.dv8tion.jda.core.JDA;
|
||||||
import net.dv8tion.jda.core.JDABuilder;
|
import net.dv8tion.jda.core.JDABuilder;
|
||||||
@ -36,6 +42,8 @@ import java.io.File;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.Executors;
|
||||||
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -55,8 +63,13 @@ public class Rixa {
|
|||||||
private static ConfigManager config;
|
private static ConfigManager config;
|
||||||
@Getter @Setter
|
@Getter @Setter
|
||||||
private static DatabaseManager dbManager;
|
private static DatabaseManager dbManager;
|
||||||
|
private static ChatterBotFactory factory;
|
||||||
|
private static ChatterBotSession chatBotSession;
|
||||||
|
private static ChatterBot chatBot;
|
||||||
@Getter @Setter
|
@Getter @Setter
|
||||||
private LanguageManager languageManager;
|
private LanguageManager languageManager;
|
||||||
|
@Getter @Setter
|
||||||
|
private ScheduledExecutorService executorService;
|
||||||
// String search = event.getMessage().getContent().substring(event.getMessage().getContent().indexOf(" ") + 1);
|
// String search = event.getMessage().getContent().substring(event.getMessage().getContent().indexOf(" ") + 1);
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
instance = new Rixa();
|
instance = new Rixa();
|
||||||
@ -67,6 +80,7 @@ public class Rixa {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void load() {
|
private static void load() {
|
||||||
|
getInstance().setExecutorService(Executors.newSingleThreadScheduledExecutor());
|
||||||
dbManager = new DatabaseManager(
|
dbManager = new DatabaseManager(
|
||||||
String.valueOf(config.getJsonObject().getJSONObject("sql").getString("hostName")),
|
String.valueOf(config.getJsonObject().getJSONObject("sql").getString("hostName")),
|
||||||
String.valueOf(config.getJsonObject().getJSONObject("sql").getString("portNumber")),
|
String.valueOf(config.getJsonObject().getJSONObject("sql").getString("portNumber")),
|
||||||
@ -104,9 +118,16 @@ public class Rixa {
|
|||||||
new BatchMoveCommand(), new MuteCommand(), new MusicCommand(),
|
new BatchMoveCommand(), new MuteCommand(), new MusicCommand(),
|
||||||
new ConfigCommand(), new UrbanDictionaryCommand(), new YoutubeCommand(),
|
new ConfigCommand(), new UrbanDictionaryCommand(), new YoutubeCommand(),
|
||||||
new AddRoleCommand(), new RemoveRoleCommand(), new LevelsCommand(),
|
new AddRoleCommand(), new RemoveRoleCommand(), new LevelsCommand(),
|
||||||
new LeaderboardCommand()});
|
new LeaderboardCommand(), new RaidModeCommand()});
|
||||||
register(new React[] {new HelpReaction(), new ConfigReaction() });
|
register(new React[] {new HelpReaction(), new ConfigReaction(), new LeaderboardReaction() });
|
||||||
data = new Data(DataType.SQL);
|
data = new Data(DataType.SQL);
|
||||||
|
try {
|
||||||
|
factory = new ChatterBotFactory();
|
||||||
|
chatBot = factory.create(ChatterBotType.PANDORABOTS, "b0dafd24ee35a477");
|
||||||
|
chatBotSession = chatBot.createSession();
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void register(CommandExec commandExecs[]) {
|
private static void register(CommandExec commandExecs[]) {
|
||||||
@ -121,6 +142,10 @@ public class Rixa {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static ChatterBotSession getChatBotSession() {
|
||||||
|
return chatBotSession;
|
||||||
|
}
|
||||||
|
|
||||||
public Logger getLogger() {
|
public Logger getLogger() {
|
||||||
return Logger.getLogger("Rixa");
|
return Logger.getLogger("Rixa");
|
||||||
}
|
}
|
||||||
|
@ -190,6 +190,10 @@ public class ConfigCommand implements CommandExec {
|
|||||||
} else if (messages[2].equalsIgnoreCase("joinverification")) {
|
} else if (messages[2].equalsIgnoreCase("joinverification")) {
|
||||||
RixaGuild.getGuild(event.getGuild()).getGuildSettings().setJoinVerification(false);
|
RixaGuild.getGuild(event.getGuild()).getGuildSettings().setJoinVerification(false);
|
||||||
new MessageBuilder("Successfully disabled Join Verification!").setColor(event.getMember().getColor()).queue(event.getChannel());
|
new MessageBuilder("Successfully disabled Join Verification!").setColor(event.getMember().getColor()).queue(event.getChannel());
|
||||||
|
} else if (messages[2].equalsIgnoreCase("joinmessage")) {
|
||||||
|
RixaGuild.getGuild(event.getGuild()).getGuildSettings().setJoinMessageChannel("default_value");
|
||||||
|
} else if (messages[2].equalsIgnoreCase("quitmessage")) {
|
||||||
|
RixaGuild.getGuild(event.getGuild()).getGuildSettings().setQuitMessageChannel("default_value");
|
||||||
}
|
}
|
||||||
} else if (messages[1].equalsIgnoreCase("addperm") || messages[1].equalsIgnoreCase("addpermission") || messages[1].equalsIgnoreCase("aperm")) {
|
} else if (messages[1].equalsIgnoreCase("addperm") || messages[1].equalsIgnoreCase("addpermission") || messages[1].equalsIgnoreCase("aperm")) {
|
||||||
String permission = "notFound";
|
String permission = "notFound";
|
||||||
|
@ -6,10 +6,14 @@ import me.savvy.rixa.commands.handlers.CommandExec;
|
|||||||
import me.savvy.rixa.commands.handlers.CommandType;
|
import me.savvy.rixa.commands.handlers.CommandType;
|
||||||
import net.dv8tion.jda.core.EmbedBuilder;
|
import net.dv8tion.jda.core.EmbedBuilder;
|
||||||
import net.dv8tion.jda.core.JDA;
|
import net.dv8tion.jda.core.JDA;
|
||||||
|
import net.dv8tion.jda.core.audit.ActionType;
|
||||||
import net.dv8tion.jda.core.entities.ChannelType;
|
import net.dv8tion.jda.core.entities.ChannelType;
|
||||||
|
import net.dv8tion.jda.core.entities.Member;
|
||||||
|
import net.dv8tion.jda.core.entities.MessageEmbed;
|
||||||
import net.dv8tion.jda.core.entities.User;
|
import net.dv8tion.jda.core.entities.User;
|
||||||
import net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent;
|
import net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent;
|
||||||
|
|
||||||
|
import java.time.OffsetDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
@ -26,34 +30,67 @@ public class InfoCommand implements CommandExec {
|
|||||||
usage = "%pinfo", mainCommand = "info")
|
usage = "%pinfo", mainCommand = "info")
|
||||||
public void execute(GuildMessageReceivedEvent event) {
|
public void execute(GuildMessageReceivedEvent event) {
|
||||||
EmbedBuilder messageEmbed = new EmbedBuilder();
|
EmbedBuilder messageEmbed = new EmbedBuilder();
|
||||||
User botOwner = event.getJDA().getUserById("202944101333729280");
|
String[] messages = event.getMessage().getContent().split(" ");
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm:ss");
|
if(messages.length == 1) {
|
||||||
Date date1 = new Date(Rixa.getTimeUp());
|
User botOwner = event.getJDA().getUserById("202944101333729280");
|
||||||
Date date2 = new Date();
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm:ss");
|
||||||
long difference = date2.getTime() - date1.getTime();
|
Date date1 = new Date(Rixa.getTimeUp());
|
||||||
long seconds = difference / 1000;
|
Date date2 = new Date();
|
||||||
int day = (int)TimeUnit.SECONDS.toDays(seconds);
|
long difference = date2.getTime() - date1.getTime();
|
||||||
long hours = TimeUnit.SECONDS.toHours(seconds) - (day *24);
|
long seconds = difference / 1000;
|
||||||
long minute = TimeUnit.SECONDS.toMinutes(seconds) - (TimeUnit.SECONDS.toHours(seconds)* 60);
|
int day = (int) TimeUnit.SECONDS.toDays(seconds);
|
||||||
long second = TimeUnit.SECONDS.toSeconds(seconds) - (TimeUnit.SECONDS.toMinutes(seconds) *60);
|
long hours = TimeUnit.SECONDS.toHours(seconds) - (day * 24);
|
||||||
int guildCount = 0;
|
long minute = TimeUnit.SECONDS.toMinutes(seconds) - (TimeUnit.SECONDS.toHours(seconds) * 60);
|
||||||
int userCount = 0;
|
long second = TimeUnit.SECONDS.toSeconds(seconds) - (TimeUnit.SECONDS.toMinutes(seconds) * 60);
|
||||||
for(JDA jda: Rixa.getShardsList()) {
|
int guildCount = 0;
|
||||||
guildCount += jda.getGuilds().size();
|
int userCount = 0;
|
||||||
userCount += jda.getUsers().size();
|
for (JDA jda : Rixa.getShardsList()) {
|
||||||
}
|
guildCount += jda.getGuilds().size();
|
||||||
messageEmbed
|
userCount += jda.getUsers().size();
|
||||||
.setTitle("Rixa Discord Bot", "http://rixa.io/")
|
}
|
||||||
.setDescription("Rixa is a user-friendly, multi-purpose bot currently in development which is capable of being customized to your Discord server needs. " +
|
messageEmbed
|
||||||
"Rixa is complete with a dashboard, user profile, server statistics system, and many more features such as assigning roles on user join, music module, " +
|
.setTitle("Rixa Discord Bot", "http://rixa.io/")
|
||||||
"levels, and more. Rixa was created to bring ease and simplicity to managing Discord servers, and has since grown into much more than just a bot used for " +
|
.setDescription("Rixa is a user-friendly, multi-purpose bot currently in development which is capable of being customized to your Discord server needs. " +
|
||||||
"moderation.")
|
"Rixa is complete with a dashboard, user profile, server statistics system, and many more features such as assigning roles on user join, music module, " +
|
||||||
.addField("Created", event.getJDA().getSelfUser().getCreationTime().format(formatter), true)
|
"levels, and more. Rixa was created to bring ease and simplicity to managing Discord servers, and has since grown into much more than just a bot used for " +
|
||||||
.addField("Bot Uptime ", "Uptime: " + day + " days " + hours + " hours " + minute + " minutes " + second + " seconds.", true)
|
"moderation.")
|
||||||
.addField("Total Guilds", String.valueOf(guildCount), true)
|
.addField("Created", event.getJDA().getSelfUser().getCreationTime().format(formatter), true)
|
||||||
.addField("Total Users", String.valueOf(userCount), true)
|
.addField("Bot Uptime ", "Uptime: " + day + " days " + hours + " hours " + minute + " minutes " + second + " seconds.", true)
|
||||||
.addField("Rixa Developer", botOwner.getName() + "#" + botOwner.getDiscriminator(), true)
|
.addField("Total Guilds", String.valueOf(guildCount), true)
|
||||||
.setFooter("Requested by " + event.getAuthor().getName() + "#" + event.getAuthor().getDiscriminator(), event.getAuthor().getAvatarUrl());
|
.addField("Total Users", String.valueOf(userCount), true)
|
||||||
event.getChannel().sendMessage(messageEmbed.build()).queue();
|
.addField("Rixa Developer", botOwner.getName() + "#" + botOwner.getDiscriminator(), true)
|
||||||
|
.setFooter("Requested by " + event.getAuthor().getName() + "#" + event.getAuthor().getDiscriminator(), event.getAuthor().getAvatarUrl());
|
||||||
|
event.getChannel().sendMessage(messageEmbed.build()).queue();
|
||||||
|
|
||||||
|
} else if(messages.length >= 2) {
|
||||||
|
if(event.getMessage().getMentionedUsers().size() != 1) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
User user = event.getMessage().getMentionedUsers().get(0);
|
||||||
|
Member member = event.getGuild().getMember(user);
|
||||||
|
OffsetDateTime time = user.getCreationTime();
|
||||||
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMM/dd/yyyy HH:mm:ss");
|
||||||
|
EmbedBuilder eb = new EmbedBuilder();
|
||||||
|
if(member.getGame() != null) {
|
||||||
|
eb.setDescription("Playing **" + member.getGame().getName() + "**");
|
||||||
|
}
|
||||||
|
eb.setAuthor("User Information: " + user.getName(), null, user.getAvatarUrl());
|
||||||
|
eb.setColor(member.getColor());
|
||||||
|
eb.setThumbnail(user.getAvatarUrl());
|
||||||
|
|
||||||
|
eb.addField("User", user.getAsMention(), true)
|
||||||
|
.addField("ID", user.getId(), true)
|
||||||
|
.addField("Roles", String.valueOf(member.getRoles().size()), true)
|
||||||
|
.addField("Status", member.getOnlineStatus().name(), true)
|
||||||
|
.addField("Mutual Guilds", String.valueOf(user.getMutualGuilds().size()), true);
|
||||||
|
if(member.getNickname() != null) {
|
||||||
|
eb.addField("Nickname", member.getNickname(), true);
|
||||||
|
}
|
||||||
|
eb.addField("Created", time.format(formatter), true)
|
||||||
|
.addField("Joined", member.getJoinDate().format(formatter), true);
|
||||||
|
MessageEmbed embed = eb.build();
|
||||||
|
event.getChannel().sendMessage(embed).complete();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,7 @@ public class LeaderboardCommand implements CommandExec {
|
|||||||
}
|
}
|
||||||
Message message = event.getChannel().sendMessage
|
Message message = event.getChannel().sendMessage
|
||||||
(rixaGuild.getLevelsModule().leaderboard
|
(rixaGuild.getLevelsModule().leaderboard
|
||||||
(event.getMember(), 0).getBuilder().build()).complete();
|
(event.getMember(), 1).getBuilder().build()).complete();
|
||||||
message.addReaction("\u2B05").complete();
|
message.addReaction("\u2B05").complete();
|
||||||
message.addReaction("\u27A1").complete();
|
message.addReaction("\u27A1").complete();
|
||||||
}
|
}
|
||||||
|
@ -3,18 +3,16 @@ package me.savvy.rixa.commands.general;
|
|||||||
import me.savvy.rixa.Rixa;
|
import me.savvy.rixa.Rixa;
|
||||||
import me.savvy.rixa.commands.handlers.Command;
|
import me.savvy.rixa.commands.handlers.Command;
|
||||||
import me.savvy.rixa.commands.handlers.CommandExec;
|
import me.savvy.rixa.commands.handlers.CommandExec;
|
||||||
import me.savvy.rixa.commands.handlers.RixaPermission;
|
|
||||||
import me.savvy.rixa.guild.RixaGuild;
|
import me.savvy.rixa.guild.RixaGuild;
|
||||||
import me.savvy.rixa.guild.user.UserData;
|
import me.savvy.rixa.guild.user.UserData;
|
||||||
import me.savvy.rixa.utils.MessageBuilder;
|
import me.savvy.rixa.utils.MessageBuilder;
|
||||||
import me.savvy.rixa.utils.YoutubeSearch;
|
|
||||||
import net.dv8tion.jda.core.entities.ChannelType;
|
import net.dv8tion.jda.core.entities.ChannelType;
|
||||||
|
import net.dv8tion.jda.core.entities.Member;
|
||||||
|
import net.dv8tion.jda.core.entities.User;
|
||||||
import net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent;
|
import net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by savit on 7/11/2017.
|
* Created by savit on 7/11/2017.
|
||||||
@ -31,8 +29,26 @@ public class LevelsCommand implements CommandExec {
|
|||||||
new MessageBuilder("Levels are not enabled on this server!").setColor(event.getMember().getColor()).queue(event.getChannel());
|
new MessageBuilder("Levels are not enabled on this server!").setColor(event.getMember().getColor()).queue(event.getChannel());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
UserData data = rixaGuild.getLevelsModule().getUserData(event.getAuthor().getId());
|
|
||||||
String query = "SELECT * FROM `levels` WHERE `guild_id` = '" + event.getGuild().getId() + "' ORDER BY `experience` DESC";
|
if (event.getMessage().getContent().split(" ").length == 2) {
|
||||||
|
if(event.getMessage().getMentionedUsers().size() < 1) {
|
||||||
|
new MessageBuilder(event.getMember().getAsMention() + ", incorrect usage try [" + rixaGuild.getGuildSettings().getPrefix() + "rank <user>].").setColor(event.getMember().getColor()).queue(event.getChannel());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (event.getGuild().getMember(event.getMessage().getMentionedUsers().get(0)) == null) {
|
||||||
|
new MessageBuilder(event.getMember().getAsMention() + ", couldn't find user.").setColor(event.getMember().getColor()).queue(event.getChannel());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
getInfo(rixaGuild, event.getGuild().getMember(event.getMessage().getMentionedUsers().get(0))).queue(event.getChannel());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
getInfo(rixaGuild, event.getMember()).queue(event.getChannel());
|
||||||
|
}
|
||||||
|
|
||||||
|
public MessageBuilder getInfo(RixaGuild rixaGuild, Member member) {
|
||||||
|
User author = member.getUser();
|
||||||
|
UserData data = rixaGuild.getLevelsModule().getUserData(author.getId());
|
||||||
|
String query = "SELECT * FROM `levels` WHERE `guild_id` = '" + rixaGuild.getGuild().getId() + "' ORDER BY `experience` DESC";
|
||||||
ResultSet rs = Rixa.getDbManager().executeQuery(query);
|
ResultSet rs = Rixa.getDbManager().executeQuery(query);
|
||||||
int rowNumber = 0;
|
int rowNumber = 0;
|
||||||
String rank = "Not found.";
|
String rank = "Not found.";
|
||||||
@ -40,7 +56,7 @@ public class LevelsCommand implements CommandExec {
|
|||||||
rs.beforeFirst();
|
rs.beforeFirst();
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
rowNumber++;
|
rowNumber++;
|
||||||
if (rs.getString("user_id").equalsIgnoreCase(event.getAuthor().getId())) {
|
if (rs.getString("user_id").equalsIgnoreCase(author.getId())) {
|
||||||
rank = String.valueOf(rowNumber);
|
rank = String.valueOf(rowNumber);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -49,16 +65,15 @@ public class LevelsCommand implements CommandExec {
|
|||||||
} catch(SQLException ignored) {
|
} catch(SQLException ignored) {
|
||||||
ignored.printStackTrace();
|
ignored.printStackTrace();
|
||||||
}
|
}
|
||||||
new MessageBuilder()
|
return new MessageBuilder()
|
||||||
.setAuthor(event.getAuthor().getName(), event.getAuthor().getEffectiveAvatarUrl(), event.getAuthor().getEffectiveAvatarUrl())
|
.setAuthor(author.getName(), author.getEffectiveAvatarUrl(), author.getEffectiveAvatarUrl())
|
||||||
.setTitle(event.getAuthor().getName() + "'s level")
|
.setTitle(author.getName() + "'s level")
|
||||||
.setColor(event.getMember().getColor())
|
.setColor(member.getColor())
|
||||||
.addField("Rank", rank, true)
|
.addField("Rank", rank, true)
|
||||||
.addField("Level", String.valueOf(data.getLevel()), true)
|
.addField("Level", String.valueOf(data.getLevel()), true)
|
||||||
.addField("Exp Needed",
|
.addField("Exp Needed",
|
||||||
data.getRemainingExperience() + "/" + data.getNeededXP
|
data.getRemainingExperience() + "/" + data.getNeededXP
|
||||||
(data.getLevelFromExperience(data.getExperience())).intValue(), false)
|
(data.getLevelFromExperience(data.getExperience())).intValue(), false)
|
||||||
.addField("Total Exp", String.valueOf(data.getExperience()), false)
|
.addField("Total Exp", String.valueOf(data.getExperience()), true);
|
||||||
.queue(event.getChannel());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,6 +24,7 @@ import me.savvy.rixa.modules.music.MusicManager;
|
|||||||
import me.savvy.rixa.modules.music.TrackScheduler;
|
import me.savvy.rixa.modules.music.TrackScheduler;
|
||||||
import me.savvy.rixa.utils.MessageBuilder;
|
import me.savvy.rixa.utils.MessageBuilder;
|
||||||
import me.savvy.rixa.utils.YoutubeSearch;
|
import me.savvy.rixa.utils.YoutubeSearch;
|
||||||
|
import net.dv8tion.jda.core.EmbedBuilder;
|
||||||
import net.dv8tion.jda.core.Permission;
|
import net.dv8tion.jda.core.Permission;
|
||||||
import net.dv8tion.jda.core.entities.*;
|
import net.dv8tion.jda.core.entities.*;
|
||||||
import net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent;
|
import net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent;
|
||||||
@ -90,7 +91,7 @@ public class MusicCommand implements CommandExec {
|
|||||||
TrackScheduler scheduler = mng.scheduler;
|
TrackScheduler scheduler = mng.scheduler;
|
||||||
// music join <channel>
|
// music join <channel>
|
||||||
if(message.length == 1) {
|
if(message.length == 1) {
|
||||||
sendHelp();
|
sendHelp(event.getGuild().getId(), rixaGuild.getGuildSettings().getPrefix(), event.getAuthor(), event.getChannel());
|
||||||
} else if (message.length == 2) {
|
} else if (message.length == 2) {
|
||||||
if(message[1].equalsIgnoreCase("join") || message[1].equalsIgnoreCase("summon") ) {
|
if(message[1].equalsIgnoreCase("join") || message[1].equalsIgnoreCase("summon") ) {
|
||||||
if (event.getMember().getVoiceState().getChannel() == null) {
|
if (event.getMember().getVoiceState().getChannel() == null) {
|
||||||
@ -104,7 +105,20 @@ public class MusicCommand implements CommandExec {
|
|||||||
new MessageBuilder("I do not have permission to join the requested voice channel.").setColor(event.getMember().getColor()).queue(event.getChannel());
|
new MessageBuilder("I do not have permission to join the requested voice channel.").setColor(event.getMember().getColor()).queue(event.getChannel());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if(message[1].equalsIgnoreCase("play")) {
|
} else if (message[1].equalsIgnoreCase("reset")) {
|
||||||
|
synchronized (musicManagers) {
|
||||||
|
scheduler.queue.clear();
|
||||||
|
player.destroy();
|
||||||
|
guild.getAudioManager().setSendingHandler(null);
|
||||||
|
musicManagers.remove(guild.getId());
|
||||||
|
}
|
||||||
|
mng = getMusicManager(guild);
|
||||||
|
guild.getAudioManager().setSendingHandler(mng.sendHandler);
|
||||||
|
new MessageBuilder("The player has been completely reset!").setColor(event.getMember().getColor()).queue(event.getChannel());
|
||||||
|
} else if (message[1].equalsIgnoreCase("skip")) {
|
||||||
|
scheduler.nextTrack();
|
||||||
|
new MessageBuilder("Successfully skipped current track.").setColor(event.getMember().getColor()).queue(event.getChannel());
|
||||||
|
} else if(message[1].equalsIgnoreCase("play") || message[1].equalsIgnoreCase("resume")) {
|
||||||
if (player.isPaused()) {
|
if (player.isPaused()) {
|
||||||
player.setPaused(false);
|
player.setPaused(false);
|
||||||
new MessageBuilder("MusicPlayer resumed track: " + player.getPlayingTrack().getInfo().title).setColor(event.getMember().getColor()).queue(event.getChannel());
|
new MessageBuilder("MusicPlayer resumed track: " + player.getPlayingTrack().getInfo().title).setColor(event.getMember().getColor()).queue(event.getChannel());
|
||||||
@ -119,7 +133,7 @@ public class MusicCommand implements CommandExec {
|
|||||||
if(track != null) {
|
if(track != null) {
|
||||||
desc += "Track skipped. ";
|
desc += "Track skipped. ";
|
||||||
}
|
}
|
||||||
new MessageBuilder(desc + " Leaving voice channel...").setColor(event.getMember().getColor()).queue(event.getChannel());
|
new MessageBuilder(desc + "Leaving voice channel...").setColor(event.getMember().getColor()).queue(event.getChannel());
|
||||||
guild.getAudioManager().setSendingHandler(null);
|
guild.getAudioManager().setSendingHandler(null);
|
||||||
guild.getAudioManager().closeAudioConnection();
|
guild.getAudioManager().closeAudioConnection();
|
||||||
} else if(message[1].equalsIgnoreCase("link")) {
|
} else if(message[1].equalsIgnoreCase("link")) {
|
||||||
@ -162,17 +176,6 @@ public class MusicCommand implements CommandExec {
|
|||||||
} else if(message[1].equalsIgnoreCase("repeat")) {
|
} else if(message[1].equalsIgnoreCase("repeat")) {
|
||||||
scheduler.setRepeating(!scheduler.isRepeating());
|
scheduler.setRepeating(!scheduler.isRepeating());
|
||||||
new MessageBuilder("Repeat on music play has been " + (scheduler.isRepeating() ? "enabled" : "disabled")).setColor(event.getMember().getColor()).queue(event.getChannel());
|
new MessageBuilder("Repeat on music play has been " + (scheduler.isRepeating() ? "enabled" : "disabled")).setColor(event.getMember().getColor()).queue(event.getChannel());
|
||||||
} else if(message[1].equalsIgnoreCase("restart")) {
|
|
||||||
synchronized (musicManagers) {
|
|
||||||
scheduler.queue.clear();
|
|
||||||
player.destroy();
|
|
||||||
guild.getAudioManager().setSendingHandler(null);
|
|
||||||
musicManagers.remove(guild.getId());
|
|
||||||
}
|
|
||||||
|
|
||||||
mng = getMusicManager(guild);
|
|
||||||
guild.getAudioManager().setSendingHandler(mng.sendHandler);
|
|
||||||
new MessageBuilder("The music player has been reset!").setColor(event.getMember().getColor()).queue(event.getChannel());
|
|
||||||
} else if(message[1].equalsIgnoreCase("np") || message[1].equalsIgnoreCase("nowplaying")) {
|
} else if(message[1].equalsIgnoreCase("np") || message[1].equalsIgnoreCase("nowplaying")) {
|
||||||
AudioTrack currentTrack = player.getPlayingTrack();
|
AudioTrack currentTrack = player.getPlayingTrack();
|
||||||
if (currentTrack != null) {
|
if (currentTrack != null) {
|
||||||
@ -183,7 +186,7 @@ public class MusicCommand implements CommandExec {
|
|||||||
} else {
|
} else {
|
||||||
new MessageBuilder("The music player is not playing anything!").setColor(event.getMember().getColor()).queue(event.getChannel());
|
new MessageBuilder("The music player is not playing anything!").setColor(event.getMember().getColor()).queue(event.getChannel());
|
||||||
}
|
}
|
||||||
} else if(message[1].equalsIgnoreCase("list")) {
|
} else if(message[1].equalsIgnoreCase("list") || message[1].equalsIgnoreCase("queue") || message[1].equalsIgnoreCase("q")) {
|
||||||
Queue<AudioTrack> queue = scheduler.queue;
|
Queue<AudioTrack> queue = scheduler.queue;
|
||||||
synchronized (queue) {
|
synchronized (queue) {
|
||||||
if (queue.isEmpty()) {
|
if (queue.isEmpty()) {
|
||||||
@ -212,6 +215,8 @@ public class MusicCommand implements CommandExec {
|
|||||||
}
|
}
|
||||||
scheduler.shuffle();
|
scheduler.shuffle();
|
||||||
new MessageBuilder("The queue has been shuffled!").setColor(event.getMember().getColor()).queue(event.getChannel());
|
new MessageBuilder("The queue has been shuffled!").setColor(event.getMember().getColor()).queue(event.getChannel());
|
||||||
|
} else {
|
||||||
|
sendHelp(event.getGuild().getId(), rixaGuild.getGuildSettings().getPrefix(), event.getAuthor(), event.getChannel());
|
||||||
}
|
}
|
||||||
} else if (message.length == 3) {
|
} else if (message.length == 3) {
|
||||||
if(message[1].equalsIgnoreCase("join")) {
|
if(message[1].equalsIgnoreCase("join")) {
|
||||||
@ -241,14 +246,16 @@ public class MusicCommand implements CommandExec {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if(message[1].equalsIgnoreCase("play") || message[1].equalsIgnoreCase("playlist")) {
|
} else if(message[1].equalsIgnoreCase("play") || message[1].equalsIgnoreCase("playlist") || message[1].equalsIgnoreCase("pplay")) {
|
||||||
if (event.getMember().getVoiceState().getChannel() == null) {
|
if (event.getMember().getVoiceState().getChannel() == null) {
|
||||||
new MessageBuilder("You must be in a voice channel to summon me!").setColor(event.getMember().getColor()).queue(event.getChannel());
|
new MessageBuilder("You must be in a voice channel to summon me!").setColor(event.getMember().getColor()).queue(event.getChannel());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
guild.getAudioManager().openAudioConnection(event.getMember().getVoiceState().getChannel());
|
guild.getAudioManager().openAudioConnection(event.getMember().getVoiceState().getChannel());
|
||||||
loadAndPlay(mng, event.getChannel(), message[2], false);
|
loadAndPlay(mng, event.getChannel(), message[2], (message[2].toLowerCase().contains("playlist")
|
||||||
|
|| message[1].equalsIgnoreCase("playlist")
|
||||||
|
|| message[1].equalsIgnoreCase("pplay")));
|
||||||
} catch (PermissionException e) {
|
} catch (PermissionException e) {
|
||||||
if (e.getPermission() == Permission.VOICE_CONNECT) {
|
if (e.getPermission() == Permission.VOICE_CONNECT) {
|
||||||
new MessageBuilder("I do not have permission to join the requested voice channel.").setColor(event.getMember().getColor()).queue(event.getChannel());
|
new MessageBuilder("I do not have permission to join the requested voice channel.").setColor(event.getMember().getColor()).queue(event.getChannel());
|
||||||
@ -263,6 +270,8 @@ public class MusicCommand implements CommandExec {
|
|||||||
} catch (NumberFormatException e) {
|
} catch (NumberFormatException e) {
|
||||||
new MessageBuilder(message[2] + " is not a valid integer. Try a number between 10 and 100.").setColor(event.getMember().getColor()).queue(event.getChannel());
|
new MessageBuilder(message[2] + " is not a valid integer. Try a number between 10 and 100.").setColor(event.getMember().getColor()).queue(event.getChannel());
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
sendHelp(event.getGuild().getId(), rixaGuild.getGuildSettings().getPrefix(), event.getAuthor(), event.getChannel());
|
||||||
}
|
}
|
||||||
} // music youtube <query
|
} // music youtube <query
|
||||||
else if(message.length >= 3) {
|
else if(message.length >= 3) {
|
||||||
@ -302,7 +311,11 @@ public class MusicCommand implements CommandExec {
|
|||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
sendHelp(event.getGuild().getId(), rixaGuild.getGuildSettings().getPrefix(), event.getAuthor(), event.getChannel());
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
sendHelp(event.getGuild().getId(), rixaGuild.getGuildSettings().getPrefix(), event.getAuthor(), event.getChannel());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -375,9 +388,6 @@ public class MusicCommand implements CommandExec {
|
|||||||
return String.format("%02d:%02d", minutes, seconds);
|
return String.format("%02d:%02d", minutes, seconds);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendHelp() {
|
|
||||||
}
|
|
||||||
|
|
||||||
private String getMessage(String[] messages, int argToBegin) {
|
private String getMessage(String[] messages, int argToBegin) {
|
||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder = new StringBuilder();
|
||||||
for(int i = argToBegin; i < messages.length; i++) {
|
for(int i = argToBegin; i < messages.length; i++) {
|
||||||
@ -385,4 +395,33 @@ public class MusicCommand implements CommandExec {
|
|||||||
}
|
}
|
||||||
return builder.toString().trim();
|
return builder.toString().trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void sendHelp(String title, String prefix, User user, TextChannel textChannel) {
|
||||||
|
EmbedBuilder embedBuilder = new EmbedBuilder();
|
||||||
|
String stringBuilder = "\u2753" +
|
||||||
|
" **Music Commands Help**" +
|
||||||
|
"\n" +
|
||||||
|
"Click a number below for information about other commands.";
|
||||||
|
embedBuilder.setTitle(String.format("Help: %s", title));
|
||||||
|
embedBuilder.setDescription(stringBuilder);
|
||||||
|
embedBuilder.addField(prefix + "music join [name]", "Joins a voice channel that has the provided name", false)
|
||||||
|
.addField(prefix + "music join [id]", "Joins a voice channel based on the provided id.", false)
|
||||||
|
.addField(prefix + "music leave", "Leaves the voice channel that the bot is currently in.", false)
|
||||||
|
.addField(prefix + "music play", "Plays songs from the current queue. Starts playing again if it was previously paused", false)
|
||||||
|
.addField(prefix + "music play [url]", "Adds a new song to the queue and starts playing if it wasn't playing already", false)
|
||||||
|
.addField(prefix + "music playlist", "Adds a playlist to the queue and starts playing if not already playing", false)
|
||||||
|
.addField(prefix + "music pause", "Pauses audio playback", false)
|
||||||
|
.addField(prefix + "music stop", "Completely stops audio playback, skipping the current song.", false)
|
||||||
|
.addField(prefix + "music skip", "Skips the current song, automatically starting the next", false)
|
||||||
|
.addField(prefix + "music nowplaying", "Prints information about the currently playing song (title, current time)", false)
|
||||||
|
.addField(prefix + "music np", "Alias for nowplaying", false)
|
||||||
|
.addField(prefix + "music list", "Lists the songs in the queue", false)
|
||||||
|
.addField(prefix + "music volume [vol]", "Sets the volume of the MusicPlayer [10 - 100]", false)
|
||||||
|
.addField(prefix + "music restart", "Restarts the current song or restarts the previous song if there is no current song playing.", false)
|
||||||
|
.addField(prefix + "music repeat", "Makes the player repeat the currently playing song", false)
|
||||||
|
.addField(prefix + "music reset", "Completely resets the player, fixing all errors and clearing the queue.", false)
|
||||||
|
.addField(prefix + "music shuffle", "Shuffle current music queue.", false);
|
||||||
|
user.openPrivateChannel().complete().sendMessage(embedBuilder.build()).queue();
|
||||||
|
new MessageBuilder(user.getAsMention() + ", help menu delivered in private messages.").setColor(Color.decode("#4CC276")).queue(textChannel);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,30 +23,32 @@ public class CommandHandler {
|
|||||||
public static boolean hasCommand(String s) {
|
public static boolean hasCommand(String s) {
|
||||||
if(getCommands().containsKey(s)) {
|
if(getCommands().containsKey(s)) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
|
||||||
for (CommandRegistrar commandRegistrar : getCommands().values()) {
|
|
||||||
if (commandRegistrar.getAnnotation().mainCommand().equalsIgnoreCase(s)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
for (String string : commandRegistrar.getAnnotation().aliases()) {
|
|
||||||
if (string.equalsIgnoreCase(s)) return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
for (CommandRegistrar commandRegistrar : getCommands().values()) {
|
||||||
|
if (commandRegistrar.getAnnotation().mainCommand().equalsIgnoreCase(s)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
for (String string : commandRegistrar.getAnnotation().aliases()) {
|
||||||
|
if (string.equalsIgnoreCase(s)) return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static CommandRegistrar get(String s) {
|
public static CommandRegistrar get(String s) {
|
||||||
if(getCommands().containsKey(s)) {
|
if(getCommands().containsKey(s)) {
|
||||||
return getCommands().get(s);
|
return getCommands().get(s);
|
||||||
} else {
|
|
||||||
for (CommandRegistrar commandRegistrar : getCommands().values()) {
|
|
||||||
for (String string : commandRegistrar.getAnnotation().aliases()) {
|
|
||||||
if (string.equalsIgnoreCase(s)) return commandRegistrar;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (CommandRegistrar commandRegistrar : getCommands().values()) {
|
||||||
|
if (commandRegistrar.getAnnotation().mainCommand().equalsIgnoreCase(s)) {
|
||||||
|
return commandRegistrar;
|
||||||
|
}
|
||||||
|
for (String string : commandRegistrar.getAnnotation().aliases()) {
|
||||||
|
if (string.equalsIgnoreCase(s)) return commandRegistrar;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Map<String, CommandRegistrar> getCommands() {
|
public static Map<String, CommandRegistrar> getCommands() {
|
||||||
|
@ -5,6 +5,6 @@ package me.savvy.rixa.commands.handlers;
|
|||||||
*/
|
*/
|
||||||
public enum RixaPermission {
|
public enum RixaPermission {
|
||||||
|
|
||||||
MUTE, ADD_ROLE, REMOVE_ROLE, CLEAR_CHAT, ACCESS_CONFIG, PM_MESSAGE, KICK_MEMBER, BAN_MEMBER, BATCH_MOVE
|
MUTE, ADD_ROLE, REMOVE_ROLE, CLEAR_CHAT, ACCESS_CONFIG, PM_MESSAGE, KICK_MEMBER, BAN_MEMBER, BATCH_MOVE, TOGGLE_RAIDMODE
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,35 @@
|
|||||||
|
package me.savvy.rixa.commands.mod;
|
||||||
|
|
||||||
|
import me.savvy.rixa.commands.handlers.Command;
|
||||||
|
import me.savvy.rixa.commands.handlers.CommandExec;
|
||||||
|
import me.savvy.rixa.commands.handlers.RixaPermission;
|
||||||
|
import me.savvy.rixa.guild.RixaGuild;
|
||||||
|
import me.savvy.rixa.utils.MessageBuilder;
|
||||||
|
import net.dv8tion.jda.core.entities.ChannelType;
|
||||||
|
import net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Timber on 5/23/2017.
|
||||||
|
*/
|
||||||
|
public class RaidModeCommand implements CommandExec {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Command(mainCommand = "toggleraidmode",
|
||||||
|
description = "Toggle Raid Mode!",
|
||||||
|
channelType = ChannelType.TEXT,
|
||||||
|
aliases = {"raidmode", "trm", "toggleraid"})
|
||||||
|
public void execute(GuildMessageReceivedEvent event) {
|
||||||
|
RixaGuild rixaGuild = RixaGuild.getGuild(event.getGuild());
|
||||||
|
if(!rixaGuild.hasPermission(event.getMember(), RixaPermission.TOGGLE_RAIDMODE)) {
|
||||||
|
new MessageBuilder(event.getMember().getAsMention() + ", you do not have permission for this command.").setColor(event.getMember().getColor()).queue(event.getChannel());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!(rixaGuild.getGuildSettings().isRaidMode())) {
|
||||||
|
rixaGuild.getGuildSettings().startRaidMode();
|
||||||
|
new MessageBuilder(event.getMember().getAsMention() + ", successfully turned raid mode on").setColor(event.getMember().getColor()).queue(event.getChannel());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
rixaGuild.getGuildSettings().endRaidMode();
|
||||||
|
new MessageBuilder(event.getMember().getAsMention() + ", successfully turned raid mode off.").setColor(event.getMember().getColor()).queue(event.getChannel());
|
||||||
|
}
|
||||||
|
}
|
@ -2,6 +2,7 @@ package me.savvy.rixa.events;
|
|||||||
|
|
||||||
import me.savvy.rixa.guild.RixaGuild;
|
import me.savvy.rixa.guild.RixaGuild;
|
||||||
import me.savvy.rixa.utils.MessageBuilder;
|
import me.savvy.rixa.utils.MessageBuilder;
|
||||||
|
import net.dv8tion.jda.core.Permission;
|
||||||
import net.dv8tion.jda.core.entities.Guild;
|
import net.dv8tion.jda.core.entities.Guild;
|
||||||
import net.dv8tion.jda.core.entities.Role;
|
import net.dv8tion.jda.core.entities.Role;
|
||||||
import net.dv8tion.jda.core.events.guild.member.GuildMemberJoinEvent;
|
import net.dv8tion.jda.core.events.guild.member.GuildMemberJoinEvent;
|
||||||
@ -22,6 +23,14 @@ public class MemberEvent {
|
|||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public void onMember(GuildMemberJoinEvent event) {
|
public void onMember(GuildMemberJoinEvent event) {
|
||||||
RixaGuild rixaGuild = RixaGuild.getGuild(event.getGuild());
|
RixaGuild rixaGuild = RixaGuild.getGuild(event.getGuild());
|
||||||
|
|
||||||
|
/* if (rixaGuild.getGuildSettings().isRaidMode()) {
|
||||||
|
if(event.getGuild().getSelfMember().hasPermission(Permission.KICK_MEMBERS)) {
|
||||||
|
new MessageBuilder("Sorry " + event.getGuild().getName() + " currently has raid mode enabled. Please rejoin at a later time. Sorry!").send(event.getUser());
|
||||||
|
event.getGuild().getController().kick(event.getMember()).reason("Raid-Mode").queue();
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}*/
|
||||||
if(rixaGuild.getGuildSettings().getJoinMessageChannel() != null) {
|
if(rixaGuild.getGuildSettings().getJoinMessageChannel() != null) {
|
||||||
try {
|
try {
|
||||||
new MessageBuilder(rixaGuild.getGuildSettings().getJoinMessage()
|
new MessageBuilder(rixaGuild.getGuildSettings().getJoinMessage()
|
||||||
@ -42,12 +51,14 @@ public class MemberEvent {
|
|||||||
try {
|
try {
|
||||||
Role role = event.getGuild().getRoleById(rixaGuild.getGuildSettings().getDefaultRole());
|
Role role = event.getGuild().getRoleById(rixaGuild.getGuildSettings().getDefaultRole());
|
||||||
event.getGuild().getController().addRolesToMember(event.getMember(), Collections.singleton(role)).complete();
|
event.getGuild().getController().addRolesToMember(event.getMember(), Collections.singleton(role)).complete();
|
||||||
|
rixaGuild.getGuildSettings().setLastJoin(System.currentTimeMillis());
|
||||||
} catch(PermissionException ex) {
|
} catch(PermissionException ex) {
|
||||||
new MessageBuilder(String.format("I do not have permission for %s in %s", ex.getPermission().getName(), rixaGuild.getGuild().getName()))
|
new MessageBuilder(String.format("I do not have permission for %s in %s", ex.getPermission().getName(), rixaGuild.getGuild().getName()))
|
||||||
.setColor(event.getMember().getColor()).send(rixaGuild.getGuild().getOwner().getUser());
|
.setColor(event.getMember().getColor()).send(rixaGuild.getGuild().getOwner().getUser());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(rixaGuild.getGuildSettings().getJoinPrivateMessage().equalsIgnoreCase("default")) {
|
if(rixaGuild.getGuildSettings().getJoinPrivateMessage().equalsIgnoreCase("default")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package me.savvy.rixa.events;
|
package me.savvy.rixa.events;
|
||||||
|
|
||||||
|
import com.google.code.chatterbotapi.ChatterBotFactory;
|
||||||
import com.mysql.jdbc.StringUtils;
|
import com.mysql.jdbc.StringUtils;
|
||||||
|
import me.savvy.rixa.Rixa;
|
||||||
import me.savvy.rixa.commands.handlers.CommandHandler;
|
import me.savvy.rixa.commands.handlers.CommandHandler;
|
||||||
import me.savvy.rixa.commands.handlers.CommandRegistrar;
|
import me.savvy.rixa.commands.handlers.CommandRegistrar;
|
||||||
import me.savvy.rixa.guild.RixaGuild;
|
import me.savvy.rixa.guild.RixaGuild;
|
||||||
@ -12,6 +14,7 @@ import net.dv8tion.jda.core.entities.Invite;
|
|||||||
import net.dv8tion.jda.core.entities.Message;
|
import net.dv8tion.jda.core.entities.Message;
|
||||||
import net.dv8tion.jda.core.entities.MessageEmbed;
|
import net.dv8tion.jda.core.entities.MessageEmbed;
|
||||||
import net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent;
|
import net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent;
|
||||||
|
import net.dv8tion.jda.core.events.message.guild.react.GuildMessageReactionAddEvent;
|
||||||
import net.dv8tion.jda.core.events.message.priv.PrivateMessageReceivedEvent;
|
import net.dv8tion.jda.core.events.message.priv.PrivateMessageReceivedEvent;
|
||||||
import net.dv8tion.jda.core.events.message.react.MessageReactionAddEvent;
|
import net.dv8tion.jda.core.events.message.react.MessageReactionAddEvent;
|
||||||
import net.dv8tion.jda.core.exceptions.PermissionException;
|
import net.dv8tion.jda.core.exceptions.PermissionException;
|
||||||
@ -20,6 +23,7 @@ import net.dv8tion.jda.core.hooks.SubscribeEvent;
|
|||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
@ -37,6 +41,21 @@ public class MessageEvent {
|
|||||||
public void handle(GuildMessageReceivedEvent event) {
|
public void handle(GuildMessageReceivedEvent event) {
|
||||||
if (event.getGuild() == null) return;
|
if (event.getGuild() == null) return;
|
||||||
if (event.getAuthor().isBot()) return;
|
if (event.getAuthor().isBot()) return;
|
||||||
|
|
||||||
|
if (event.getMessage().getContent().startsWith
|
||||||
|
("@" + event.getGuild().getSelfMember().getEffectiveName())) {
|
||||||
|
try {
|
||||||
|
String s = event.getMessage().getContent().replace
|
||||||
|
("@" + event.getGuild().getSelfMember().getEffectiveName()+ " ", "");
|
||||||
|
if (s.isEmpty()) return;
|
||||||
|
s = Rixa.getChatBotSession().think(s);
|
||||||
|
if (s.isEmpty()) return;
|
||||||
|
event.getChannel().sendMessage(s).queue();
|
||||||
|
return;
|
||||||
|
} catch (Exception ex) { ex.printStackTrace(); }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
RixaGuild rixaGuild = RixaGuild.getGuild(event.getGuild());
|
RixaGuild rixaGuild = RixaGuild.getGuild(event.getGuild());
|
||||||
String prefix = rixaGuild
|
String prefix = rixaGuild
|
||||||
.getGuildSettings()
|
.getGuildSettings()
|
||||||
@ -60,7 +79,8 @@ public class MessageEvent {
|
|||||||
|
|
||||||
String[] splitContent = event.getMessage().getContent().replace(prefix, "").split(" ");
|
String[] splitContent = event.getMessage().getContent().replace(prefix, "").split(" ");
|
||||||
if(!CommandHandler.hasCommand(splitContent[0])) {
|
if(!CommandHandler.hasCommand(splitContent[0])) {
|
||||||
return; }
|
return;
|
||||||
|
}
|
||||||
CommandRegistrar cmd = CommandHandler.get(splitContent[0]);
|
CommandRegistrar cmd = CommandHandler.get(splitContent[0]);
|
||||||
Method m = cmd.getMethod();
|
Method m = cmd.getMethod();
|
||||||
try {
|
try {
|
||||||
@ -107,6 +127,7 @@ public class MessageEvent {
|
|||||||
.getMember(event.getAuthor()), Collections.singleton(rixaGuild.getGuild().getRoleById(rixaGuild.getGuildSettings().getDefaultRole()))).complete();
|
.getMember(event.getAuthor()), Collections.singleton(rixaGuild.getGuild().getRoleById(rixaGuild.getGuildSettings().getDefaultRole()))).complete();
|
||||||
new MessageBuilder(String.format("You have been promoted on %s!", rixaGuild.getGuild().getName()))
|
new MessageBuilder(String.format("You have been promoted on %s!", rixaGuild.getGuild().getName()))
|
||||||
.setColor(rixaGuild.getGuild().getMember(event.getAuthor()).getColor()).send(event.getAuthor());
|
.setColor(rixaGuild.getGuild().getMember(event.getAuthor()).getColor()).send(event.getAuthor());
|
||||||
|
rixaGuild.getGuildSettings().setLastJoin(System.currentTimeMillis());
|
||||||
} catch(PermissionException ex) {
|
} catch(PermissionException ex) {
|
||||||
new MessageBuilder(String.format("I do not have permission for %s in %s", ex.getPermission().getName(), rixaGuild.getGuild().getName()))
|
new MessageBuilder(String.format("I do not have permission for %s in %s", ex.getPermission().getName(), rixaGuild.getGuild().getName()))
|
||||||
.setColor(Color.RED).send(rixaGuild.getGuild().getOwner().getUser());
|
.setColor(Color.RED).send(rixaGuild.getGuild().getOwner().getUser());
|
||||||
@ -143,14 +164,36 @@ public class MessageEvent {
|
|||||||
MessageEmbed embed = message.getEmbeds().get(0);
|
MessageEmbed embed = message.getEmbeds().get(0);
|
||||||
if(StringUtils.isNullOrEmpty(embed.getTitle())) return;
|
if(StringUtils.isNullOrEmpty(embed.getTitle())) return;
|
||||||
String[] titleSplit = embed.getTitle().split(": ");
|
String[] titleSplit = embed.getTitle().split(": ");
|
||||||
if(ReactionManager.getReactions().containsKey(titleSplit[0])) {
|
if (titleSplit[0].equalsIgnoreCase("Leaderboard")) return;
|
||||||
ReactRegistrar reactRegistrar = ReactionManager.getReactions().get(titleSplit[0]);
|
if(!ReactionManager.getReactions().containsKey(titleSplit[0])) return;
|
||||||
Method m = reactRegistrar.getMethod();
|
|
||||||
try {
|
ReactRegistrar reactRegistrar = ReactionManager.getReactions().get(titleSplit[0]);
|
||||||
m.invoke(reactRegistrar.getExecutor(), event);
|
Method m = reactRegistrar.getMethod();
|
||||||
} catch (Exception e) {
|
try {
|
||||||
e.printStackTrace();
|
m.invoke(reactRegistrar.getExecutor(), event);
|
||||||
}
|
} catch (Exception e) {
|
||||||
}
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public void onGuildReact(GuildMessageReactionAddEvent event) {
|
||||||
|
if (event.getGuild() == null) return;
|
||||||
|
if (event.getUser().isBot()) return;
|
||||||
|
Message message = event.getChannel().getMessageById(event.getMessageId()).complete();
|
||||||
|
if(message == null || message.getEmbeds().size() != 1) return;
|
||||||
|
MessageEmbed embed = message.getEmbeds().get(0);
|
||||||
|
if(StringUtils.isNullOrEmpty(embed.getTitle())) return;
|
||||||
|
String[] titleSplit = embed.getTitle().split(": ");
|
||||||
|
System.out.println(Arrays.toString(titleSplit));
|
||||||
|
if(ReactionManager.getReactions().containsKey(titleSplit[0])) {
|
||||||
|
ReactRegistrar reactRegistrar = ReactionManager.getReactions().get(titleSplit[0]);
|
||||||
|
Method m = reactRegistrar.getMethod();
|
||||||
|
try {
|
||||||
|
m.invoke(reactRegistrar.getExecutor(), event);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,6 +1,7 @@
|
|||||||
package me.savvy.rixa.guild.management;
|
package me.savvy.rixa.guild.management;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
import me.savvy.rixa.Rixa;
|
import me.savvy.rixa.Rixa;
|
||||||
import me.savvy.rixa.enums.Result;
|
import me.savvy.rixa.enums.Result;
|
||||||
import net.dv8tion.jda.core.entities.Guild;
|
import net.dv8tion.jda.core.entities.Guild;
|
||||||
@ -9,6 +10,9 @@ import net.dv8tion.jda.core.entities.TextChannel;
|
|||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
import java.util.TimerTask;
|
||||||
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Timber on 5/23/2017.
|
* Created by Timber on 5/23/2017.
|
||||||
@ -22,6 +26,9 @@ public class GuildSettings {
|
|||||||
private String prefix = "/", defaultRole, muteRole, joinMessage, quitMessage, joinPrivateMessage, description;
|
private String prefix = "/", defaultRole, muteRole, joinMessage, quitMessage, joinPrivateMessage, description;
|
||||||
@Getter
|
@Getter
|
||||||
private TextChannel joinMessageChannel, quitMessageChannel;
|
private TextChannel joinMessageChannel, quitMessageChannel;
|
||||||
|
@Getter @Setter Guild.VerificationLevel defaultVerificationLevel;
|
||||||
|
@Getter @Setter long lastJoin;
|
||||||
|
private boolean raidMode;
|
||||||
|
|
||||||
public GuildSettings(Guild guild) {
|
public GuildSettings(Guild guild) {
|
||||||
this.guild = guild;
|
this.guild = guild;
|
||||||
@ -63,6 +70,7 @@ public class GuildSettings {
|
|||||||
set = Rixa.getDbManager().getObject(ps);
|
set = Rixa.getDbManager().getObject(ps);
|
||||||
this.description = (set.getString("description"));
|
this.description = (set.getString("description"));
|
||||||
this.enlisted = (set.getBoolean("enlisted"));
|
this.enlisted = (set.getBoolean("enlisted"));
|
||||||
|
this.raidMode = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean checkExists() {
|
private boolean checkExists() {
|
||||||
@ -92,16 +100,26 @@ public class GuildSettings {
|
|||||||
this.joinPrivateMessage = joinPrivateMessage;
|
this.joinPrivateMessage = joinPrivateMessage;
|
||||||
Rixa.getData().update("settings", "joinPM", "guild_id", joinPrivateMessage, guild.getId());
|
Rixa.getData().update("settings", "joinPM", "guild_id", joinPrivateMessage, guild.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setJoinMessageChannel(TextChannel joinMessageChannel) {
|
public void setJoinMessageChannel(TextChannel joinMessageChannel) {
|
||||||
this.joinMessageChannel = joinMessageChannel;
|
this.joinMessageChannel = joinMessageChannel;
|
||||||
Rixa.getData().update("settings", "greetings", "guild_id", joinMessageChannel.getId(), guild.getId());
|
Rixa.getData().update("settings", "greetings", "guild_id", joinMessageChannel.getId(), guild.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setJoinMessageChannel(String joinMessageChannel) {
|
||||||
|
if (joinMessageChannel.equalsIgnoreCase("default_value"))this.joinMessageChannel = null;
|
||||||
|
Rixa.getData().update("settings", "greetings", "guild_id", joinMessageChannel, guild.getId());
|
||||||
|
}
|
||||||
|
|
||||||
public void setQuitMessageChannel(TextChannel quitMessageChannel) {
|
public void setQuitMessageChannel(TextChannel quitMessageChannel) {
|
||||||
this.quitMessageChannel = quitMessageChannel;
|
this.quitMessageChannel = quitMessageChannel;
|
||||||
Rixa.getData().update("settings", "farewell", "guild_id", quitMessageChannel.getId(), guild.getId());
|
Rixa.getData().update("settings", "farewell", "guild_id", quitMessageChannel.getId(), guild.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setQuitMessageChannel(String quitMessageChannel) {
|
||||||
|
if (quitMessageChannel.equalsIgnoreCase("default_value"))this.quitMessageChannel = null;
|
||||||
|
Rixa.getData().update("settings", "greetings", "guild_id", quitMessageChannel, guild.getId());
|
||||||
|
}
|
||||||
|
|
||||||
public void setDefaultRole(String defaultRole) {
|
public void setDefaultRole(String defaultRole) {
|
||||||
this.defaultRole = defaultRole;
|
this.defaultRole = defaultRole;
|
||||||
@ -132,4 +150,34 @@ public class GuildSettings {
|
|||||||
this.joinVerification = joinVerification;
|
this.joinVerification = joinVerification;
|
||||||
Rixa.getData().update("settings", "joinVerification", "guild_id", joinVerification, guild.getId());
|
Rixa.getData().update("settings", "joinVerification", "guild_id", joinVerification, guild.getId());
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
public void startRaidMode() {
|
||||||
|
this.raidMode = true;
|
||||||
|
setDefaultVerificationLevel(guild.getVerificationLevel());
|
||||||
|
guild.getManager().setVerificationLevel(Guild.VerificationLevel.HIGH).queue();
|
||||||
|
raidModeScheduler();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void endRaidMode() {
|
||||||
|
this.raidMode = false;
|
||||||
|
guild.getManager().setVerificationLevel(getDefaultVerificationLevel()).queue();
|
||||||
|
setDefaultVerificationLevel(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void raidModeScheduler() {
|
||||||
|
ScheduledExecutorService scheduler = Rixa.getInstance().getExecutorService();
|
||||||
|
scheduler.scheduleWithFixedDelay(new TimerTask() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
if (isRaidMode()) {
|
||||||
|
endRaidMode();
|
||||||
|
}
|
||||||
|
this.cancel();
|
||||||
|
}
|
||||||
|
}, 0, 5, TimeUnit.MINUTES);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isRaidMode() {
|
||||||
|
return raidMode;
|
||||||
|
}
|
||||||
|
}
|
@ -43,8 +43,8 @@ public class UserData {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
String query = "SELECT * FROM `%s` WHERE `%s` = '%s' AND `%s` = '%s';";
|
String query = "SELECT * FROM `%s` WHERE `%s` = '%s' AND `%s` = '%s';";
|
||||||
PreparedStatement ps = null;
|
PreparedStatement ps;
|
||||||
ResultSet rs = null;
|
ResultSet rs;
|
||||||
try {
|
try {
|
||||||
ps = Rixa.getDbManager().getConnection().prepareStatement(String.format
|
ps = Rixa.getDbManager().getConnection().prepareStatement(String.format
|
||||||
(query, "levels", "guild_id",
|
(query, "levels", "guild_id",
|
||||||
@ -107,7 +107,9 @@ public class UserData {
|
|||||||
Result r;
|
Result r;
|
||||||
try {
|
try {
|
||||||
r = Rixa.getDbManager().checkExists(String.format
|
r = Rixa.getDbManager().checkExists(String.format
|
||||||
(query, "user_id", "levels", "guild_id", guild.getId(), "user_id", user.getId()));
|
(query, "user_id", "levels", "guild_id",
|
||||||
|
guild.getId(), "user_id",
|
||||||
|
user.getId()));
|
||||||
return r == Result.TRUE;
|
return r == Result.TRUE;
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@ -118,7 +120,8 @@ public class UserData {
|
|||||||
private void insert() {
|
private void insert() {
|
||||||
String query = "INSERT INTO `%s` (`%s`,`%s`,`%s`) VALUES ('%s', '%s', '%s');";
|
String query = "INSERT INTO `%s` (`%s`,`%s`,`%s`) VALUES ('%s', '%s', '%s');";
|
||||||
Rixa.getDbManager()
|
Rixa.getDbManager()
|
||||||
.insert(String.format(query, "levels", "guild_id", "user_id", "experience", guild.getId(), user.getId(), 0));
|
.insert(String.format(query, "levels", "guild_id", "user_id", "experience",
|
||||||
|
guild.getId(), user.getId(), "0"));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setExperience(int experience) {
|
private void setExperience(int experience) {
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
package me.savvy.rixa.modules.levels;
|
package me.savvy.rixa.modules.levels;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
|
||||||
import me.savvy.rixa.Rixa;
|
import me.savvy.rixa.Rixa;
|
||||||
import me.savvy.rixa.commands.handlers.RixaPermission;
|
import me.savvy.rixa.data.database.sql.DatabaseManager;
|
||||||
import me.savvy.rixa.enums.Result;
|
import me.savvy.rixa.enums.Result;
|
||||||
import me.savvy.rixa.guild.RixaGuild;
|
import me.savvy.rixa.guild.RixaGuild;
|
||||||
import me.savvy.rixa.guild.user.UserData;
|
import me.savvy.rixa.guild.user.UserData;
|
||||||
@ -31,29 +30,57 @@ public class LevelsModule implements RixaModule {
|
|||||||
load();
|
load();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private List<UserData> leaderboard(Member member) {
|
||||||
|
DatabaseManager db = Rixa.getDbManager();
|
||||||
|
ResultSet rs = db.executeQuery(String.format
|
||||||
|
("SELECT * FROM `levels` WHERE `guild_id` = '%s' ORDER BY `experience` DESC;", member.getGuild().getId()));
|
||||||
|
List<UserData> userDataList = new LinkedList<>();
|
||||||
|
try {
|
||||||
|
while (rs.next()) {
|
||||||
|
if (member.getGuild().getMemberById(rs.getString("user_id")) == null) continue;
|
||||||
|
UserData userData = rixaGuild.getLevelsModule().getUserData(rs.getString("user_id"));
|
||||||
|
userDataList.add(userData);
|
||||||
|
}
|
||||||
|
rs.getStatement().close();
|
||||||
|
rs.close();
|
||||||
|
} catch (SQLException ex) {
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
return userDataList;
|
||||||
|
}
|
||||||
|
|
||||||
public MessageBuilder leaderboard(Member member, int page) {
|
public MessageBuilder leaderboard(Member member, int page) {
|
||||||
int sizePerPage = 4;
|
int sizePerPage = 10;
|
||||||
|
if(page < 1) {
|
||||||
|
page = 1;
|
||||||
|
}
|
||||||
|
List<UserData> userData = leaderboard(member);
|
||||||
int maxPages = userData.size() / sizePerPage + (userData.size() % sizePerPage > 0 ? 1 : 0);
|
int maxPages = userData.size() / sizePerPage + (userData.size() % sizePerPage > 0 ? 1 : 0);
|
||||||
if(page < 0) {
|
if (page > maxPages) {
|
||||||
page = 0;
|
return null;
|
||||||
}
|
}
|
||||||
if(page > maxPages - 2) {
|
/*int from = Math.max(0, page * sizePerPage);
|
||||||
page = maxPages - 3;
|
int to = Math.min(userData.size(), (page + 2) * sizePerPage);*/
|
||||||
}
|
int start = Math.min(Math.max(sizePerPage * (page - 1), 0), userData.size());
|
||||||
int from = Math.max(0, page * sizePerPage);
|
int end = Math.min(Math.max(sizePerPage * page, start), userData.size());
|
||||||
int to = Math.min(userData.size(), (page + 2) * sizePerPage);
|
List<UserData> userList = userData.subList(start, end);
|
||||||
List<UserData> userList = new ArrayList<>(userData.values()).subList(from, to);
|
|
||||||
StringBuilder stringBuilder = new StringBuilder();
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
for (int i = 0; i < userList.size(); i++) {
|
for (int i = 0; i < userList.size(); i++) {
|
||||||
UserData user = userData.get(i);
|
UserData user = userList.get(i);
|
||||||
stringBuilder.append(i)
|
if (user == null) continue;
|
||||||
.append(1).append(" ").append(user.getUser().getName())
|
stringBuilder
|
||||||
|
.append("`")
|
||||||
|
.append( i + start + 1/*(page > 1) ? ((i + 1) * 10) : i + 1*/)
|
||||||
|
.append(")` ")
|
||||||
|
.append(
|
||||||
|
user.getUser().getName())
|
||||||
.append("#").append(user.getUser().getDiscriminator())
|
.append("#").append(user.getUser().getDiscriminator())
|
||||||
.append(" (Lvl. ").append(user.getLevel()).append(")")
|
.append(" (Lvl. ").append(user.getLevel()).append(")")
|
||||||
.append("\n");
|
.append("\n");
|
||||||
}
|
}
|
||||||
MessageBuilder builder = new MessageBuilder(stringBuilder.toString());
|
MessageBuilder builder = new MessageBuilder(stringBuilder.toString());
|
||||||
builder.footer("Page: (" + page + " / " + (maxPages - 2) + ")", member.getGuild().getIconUrl());
|
builder.footer("Page: (" + page + " / " + maxPages + ")", member.getGuild().getIconUrl());
|
||||||
return builder.setColor(member.getColor()).setTitle(String.format("Leaderboard: %s", member.getGuild().getName()));
|
return builder.setColor(member.getColor()).setTitle(String.format("Leaderboard: %s", member.getGuild().getName()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package me.savvy.rixa.modules.reactions.handlers;
|
package me.savvy.rixa.modules.reactions.handlers;
|
||||||
|
|
||||||
|
import net.dv8tion.jda.core.events.message.guild.react.GuildMessageReactionAddEvent;
|
||||||
import net.dv8tion.jda.core.events.message.react.MessageReactionAddEvent;
|
import net.dv8tion.jda.core.events.message.react.MessageReactionAddEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -8,4 +9,6 @@ import net.dv8tion.jda.core.events.message.react.MessageReactionAddEvent;
|
|||||||
public interface React {
|
public interface React {
|
||||||
|
|
||||||
void reactionTrigger(MessageReactionAddEvent event);
|
void reactionTrigger(MessageReactionAddEvent event);
|
||||||
|
|
||||||
|
default void reactionGuildTrigger(GuildMessageReactionAddEvent event) { }
|
||||||
}
|
}
|
||||||
|
@ -85,7 +85,8 @@ public class HelpReaction implements React {
|
|||||||
.addField(prefix + "music volume [vol]", "Sets the volume of the MusicPlayer [10 - 100]", false)
|
.addField(prefix + "music volume [vol]", "Sets the volume of the MusicPlayer [10 - 100]", false)
|
||||||
.addField(prefix + "music restart", "Restarts the current song or restarts the previous song if there is no current song playing.", false)
|
.addField(prefix + "music restart", "Restarts the current song or restarts the previous song if there is no current song playing.", false)
|
||||||
.addField(prefix + "music repeat", "Makes the player repeat the currently playing song", false)
|
.addField(prefix + "music repeat", "Makes the player repeat the currently playing song", false)
|
||||||
.addField(prefix + "music reset", "Completely resets the player, fixing all errors and clearing the queue.", false);
|
.addField(prefix + "music reset", "Completely resets the player, fixing all errors and clearing the queue.", false)
|
||||||
|
.addField(prefix + "music shuffle", "Shuffle current music queue.", false);
|
||||||
message.editMessage(embedBuilder.build()).queue();
|
message.editMessage(embedBuilder.build()).queue();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,47 @@
|
|||||||
|
package me.savvy.rixa.modules.reactions.react;
|
||||||
|
|
||||||
|
import me.savvy.rixa.guild.RixaGuild;
|
||||||
|
import me.savvy.rixa.modules.reactions.handlers.React;
|
||||||
|
import me.savvy.rixa.modules.reactions.handlers.ReactHandle;
|
||||||
|
import net.dv8tion.jda.core.MessageBuilder;
|
||||||
|
import net.dv8tion.jda.core.entities.ChannelType;
|
||||||
|
import net.dv8tion.jda.core.entities.Guild;
|
||||||
|
import net.dv8tion.jda.core.entities.Message;
|
||||||
|
import net.dv8tion.jda.core.entities.MessageEmbed;
|
||||||
|
import net.dv8tion.jda.core.events.message.guild.react.GuildMessageReactionAddEvent;
|
||||||
|
import net.dv8tion.jda.core.events.message.react.MessageReactionAddEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Timber on 6/9/2017.
|
||||||
|
*/
|
||||||
|
public class LeaderboardReaction implements React {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void reactionTrigger(MessageReactionAddEvent event) { }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@ReactHandle(title = "Leaderboard", description = "Leaderboard for levels")
|
||||||
|
public void reactionGuildTrigger(GuildMessageReactionAddEvent event) {
|
||||||
|
Message message = event.getChannel().getMessageById(event.getMessageId()).complete();
|
||||||
|
Guild guild = event.getGuild();
|
||||||
|
if(guild == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
RixaGuild rixaGuild = RixaGuild.getGuild(guild);
|
||||||
|
int page = 500;
|
||||||
|
switch (event.getReaction().getEmote().getName()) {
|
||||||
|
case "\u2B05":// previous
|
||||||
|
page = Integer.parseInt(message.getEmbeds().get(0).getFooter().getText().split(" /")[0].replace("Page: (", "")) - 1;
|
||||||
|
break;
|
||||||
|
case "\u27A1":// next
|
||||||
|
page = Integer.parseInt(message.getEmbeds().get(0).getFooter().getText().split(" /")[0].replace("Page: (", "")) + 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if(page != 500) {
|
||||||
|
me.savvy.rixa.utils.MessageBuilder builder = rixaGuild.getLevelsModule().leaderboard
|
||||||
|
(event.getMember(), page);
|
||||||
|
if (builder == null) return;
|
||||||
|
message.editMessage(builder.getBuilder().build()).queue();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user