mirror of
https://github.com/amalthea-mc/spigot-tg-bridge.git
synced 2024-11-23 10:52:26 +00:00
Rewrite build.gradle to kotlin DSL
Remove bot username from config Fix lateinit property not initialized in `Plugin::onDisable()`
This commit is contained in:
parent
b99748f96b
commit
555478599c
2
.idea/.gitignore
vendored
2
.idea/.gitignore
vendored
@ -1,2 +0,0 @@
|
|||||||
# Default ignored files
|
|
||||||
/workspace.xml
|
|
@ -1,69 +0,0 @@
|
|||||||
<component name="ArtifactManager">
|
|
||||||
<artifact type="jar" name="rzcraft-bridge:jar">
|
|
||||||
<output-path>$USER_HOME$/MinecraftServers/spigot_1.15.2/plugins/</output-path>
|
|
||||||
<root id="archive" name="rzcraft-bridge.jar">
|
|
||||||
<element id="module-output" name="rzcraft-bridge.main" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/failureaccess/1.0.1/1dcf1de382a0bf95a3d8b0849546c88bac1292c9/failureaccess-1.0.1.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.telegram/telegrambots-meta/4.6/959a0ea151af21113accf17b3843a43826c76726/telegrambots-meta-4.6.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.javassist/javassist/3.22.0-CR2/44eaf0990dea92f4bca4b9931b2239c0e8756ee7/javassist-3.22.0-CR2.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.jersey.core/jersey-common/2.29.1/ea60b9ace56f1ae758c2eebbb48e8387d959102f/jersey-common-2.29.1.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/jakarta.ws.rs/jakarta.ws.rs-api/2.1.6/1dcb770bce80a490dff49729b99c7a60e9ecb122/jakarta.ws.rs-api-2.1.6.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.codehaus.mojo/animal-sniffer-annotations/1.18/f7aa683ea79dc6681ee9fb95756c999acbb62f5d/animal-sniffer-annotations-1.18.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/2.6/815893df5f31da2ece4040fe0a12fd44b577afaf/commons-io-2.6.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/junit/junit/4.12/2973d150c0dc1fefe998f834810d68f278ea58ec/junit-4.12.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpclient/4.5.10/7ca2e4276f4ef95e4db725a8cd4a1d1e7585b9e5/httpclient-4.5.10.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.j2objc/j2objc-annotations/1.3/ba035118bc8bac37d7eff77700720999acd9986d/j2objc-annotations-1.3.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/javax.inject/javax.inject/1/6975da39a7040257bd51d21a231b76c915872d38/javax.inject-1.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/jakarta.annotation/jakarta.annotation-api/1.3.5/59eb84ee0d616332ff44aba065f3888cf002cd2d/jakarta.annotation-api-1.3.5.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-api/1.7.29/e56bf4473a4c6b71c7dd397a833dce86d1993d9d/slf4j-api-1.7.29.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.grizzly/grizzly-http/2.4.4/c789d449906458d4174126f6a4fefdd7a6008777/grizzly-http-2.4.4.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/2.10.1/69ee6b94fa8e0653bf62c718c7a2fe533a6558d4/jackson-jaxrs-json-provider-2.10.1.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.11/3acb4705652e16236558f0f4f2192cc33c3bd189/commons-codec-1.11.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.jersey.inject/jersey-hk2/2.29.1/54b316e9f91ac9de1e6900aeb63457505862a296/jersey-hk2-2.29.1.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.jersey.media/jersey-media-json-jackson/2.29.1/e16c6b8d486604ac55a2b5f49b20e75564e7979b/jersey-media-json-jackson-2.29.1.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.3.60/a42a01c0338795930e0a7d8f9d19acafdd1c50ee/kotlin-stdlib-jdk7-1.3.60.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.hk2.external/jakarta.inject/2.6.1/8096ebf722902e75fbd4f532a751e514f02e1eb7/jakarta.inject-2.6.1.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/jakarta.xml.bind/jakarta.xml.bind-api/2.3.2/8d49996a4338670764d7ca4b85a1c4ccf7fe665d/jakarta.xml.bind-api-2.3.2.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.telegram/telegrambots/4.6/9f88658948bcd41557390610f7ca1af85aed0261/telegrambots-4.6.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.grizzly/grizzly-framework/2.4.4/85ff29df39616972a074737948f116ef25addfee/grizzly-framework-2.4.4.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.grizzly/grizzly-http-server/2.4.4/f9a62c711eb51f351cc5ba48faf44d5a49faa0a7/grizzly-http-server-2.4.4.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.3.60/538bd29b2d5a7d278a7188f89c3b84183fa37f75/kotlin-stdlib-common-1.3.60.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/aopalliance/aopalliance/1.0/235ba8b489512805ac13a8f9ea77a1ca5ebe3e8/aopalliance-1.0.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpmime/4.5.10/3513ca10d24d7aa962741c90e914fec650f0848c/httpmime-4.5.10.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/3.0.2/25ea2e8b0c338a877313bd4672d3fe056ea78f0d/jsr305-3.0.2.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.hk2/hk2-api/2.6.1/114bd7afb4a1bd9993527f52a08a252b5d2acac5/hk2-api-2.6.1.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.yaml/snakeyaml/1.25/8b6e01ef661d8378ae6dd7b511a7f2a33fae1421/snakeyaml-1.25.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-annotations/2.10.1/54d72475c0d6819f2d0e9a09d25c3ed876a4972f/jackson-annotations-2.10.1.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.hk2/hk2-utils/2.6.1/396513aa96c1d5a10aa4f75c4dcbf259a698d62d/hk2-utils-2.6.1.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-databind/2.10.1/18eee15ffc662d27538d5b6ee84e4c92c0a9d03e/jackson-databind-2.10.1.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.4.12/21ebaf6d532bc350ba95bd81938fa5f0e511c132/httpcore-4.4.12.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.vdurmont/emoji-java/5.1.1/5b5896190e12110584f1e9e09eff376565a92626/emoji-java-5.1.1.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/13.0/919f0dfe192fb4e063e7dacadee7f8bb9a2672a9/annotations-13.0.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/jakarta.validation/jakarta.validation-api/2.0.2/5eacc6522521f7eacb081f95cee1e231648461e7/jakarta.validation-api-2.0.2.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/28.1-jre/b0e91dcb6a44ffb6221b5027e12a5cb34b841145/guava-28.1-jre.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.hk2.external/aopalliance-repackaged/2.6.1/b2eb0a83bcbb44cc5d25f8b18f23be116313a638/aopalliance-repackaged-2.6.1.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.errorprone/error_prone_annotations/2.3.2/d1a0c5032570e0f64be6b4d9c90cdeb103129029/error_prone_annotations-2.3.2.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/b421526c5f297295adef1c886e5246c39d4ac629/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.jersey.ext/jersey-entity-filtering/2.29.1/e68a310e03fcd97f245854e7f59b2e9668c5c146/jersey-entity-filtering-2.29.1.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.hk2/hk2-locator/2.6.1/9dedf9d2022e38ec0743ed44c1ac94ad6149acdd/hk2-locator-2.6.1.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-logging/commons-logging/1.2/4bfc12adfe4842bf07b657f0369c4cb522955686/commons-logging-1.2.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-core/2.10.1/2c8b5e26ba40e5f91eb37a24075a2028b402c5f9/jackson-core-2.10.1.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.json/json/20180813/8566b2b0391d9d4479ea225645c6ed47ef17fe41/json-20180813.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.jersey.core/jersey-client/2.29.1/1635f245b7e9eecf8d3d753fba87f3b79aef1b34/jersey-client-2.29.1.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.inject/guice/4.2.2/6dacbe18e5eaa7f6c9c36db33b42e7985e94ce77/guice-4.2.2.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/42a25dc3219429f0e5d060061f71acb49bf010a0/hamcrest-core-1.3.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.jersey.media/jersey-media-jaxb/2.29.1/53f22b94254ff781667b3313acbb3afebfd091b5/jersey-media-jaxb-2.29.1.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.jaxrs/jackson-jaxrs-base/2.10.1/76b76bab5f077c877e8c40290aec2b1c24085df5/jackson-jaxrs-base-2.10.1.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.module/jackson-module-jaxb-annotations/2.10.1/7a733550bf39eed5f9d0db25adca72781de959bf/jackson-module-jaxb-annotations-2.10.1.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.hk2/osgi-resource-locator/1.0.3/de3b21279df7e755e38275137539be5e2c80dd58/osgi-resource-locator-1.0.3.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.checkerframework/checker-qual/2.8.1/eb2e8ab75598548cc8acf9a1ca227e480e01881e/checker-qual-2.8.1.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.60/984644b61450add3bcef8cf20f948fec458b420d/kotlin-stdlib-1.3.60.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.3.60/5cb6bf19bab36ab9d10b216356e869250c686a09/kotlin-stdlib-jdk8-1.3.60.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.jersey.core/jersey-server/2.29.1/edeaa59abad953156a4ed83199780d66ce7998c0/jersey-server-2.29.1.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.jersey.containers/jersey-container-grizzly2-http/2.29.1/5b70b50891d48f6ee3dcf77d15f729ec900ab035/jersey-container-grizzly2-http-2.29.1.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/jakarta.activation/jakarta.activation-api/1.2.1/562a587face36ec7eff2db7f2fc95425c6602bc1/jakarta.activation-api-1.2.1.jar" path-in-jar="/" />
|
|
||||||
<element id="file-copy" path="$PROJECT_DIR$/src/config.yml" />
|
|
||||||
<element id="file-copy" path="$PROJECT_DIR$/src/main/resources/plugin.yml" />
|
|
||||||
</root>
|
|
||||||
</artifact>
|
|
||||||
</component>
|
|
Binary file not shown.
@ -1,11 +0,0 @@
|
|||||||
<component name="ProjectCodeStyleConfiguration">
|
|
||||||
<code_scheme name="Project" version="173">
|
|
||||||
<option name="SOFT_MARGINS" value="80" />
|
|
||||||
<JetCodeStyleSettings>
|
|
||||||
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
|
|
||||||
</JetCodeStyleSettings>
|
|
||||||
<codeStyleSettings language="kotlin">
|
|
||||||
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
|
|
||||||
</codeStyleSettings>
|
|
||||||
</code_scheme>
|
|
||||||
</component>
|
|
@ -1,5 +0,0 @@
|
|||||||
<component name="ProjectCodeStyleConfiguration">
|
|
||||||
<state>
|
|
||||||
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
|
|
||||||
</state>
|
|
||||||
</component>
|
|
@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="CompilerConfiguration">
|
|
||||||
<bytecodeTargetLevel target="14" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
@ -1,21 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="GradleMigrationSettings" migrationVersion="1" />
|
|
||||||
<component name="GradleSettings">
|
|
||||||
<option name="linkedExternalProjectsSettings">
|
|
||||||
<GradleProjectSettings>
|
|
||||||
<option name="delegatedBuild" value="true" />
|
|
||||||
<option name="testRunner" value="GRADLE" />
|
|
||||||
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
|
||||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
|
||||||
<option name="gradleHome" value="$PROJECT_DIR$/../../../../Program Files/Gradle/gradle-6.5.1" />
|
|
||||||
<option name="modules">
|
|
||||||
<set>
|
|
||||||
<option value="$PROJECT_DIR$" />
|
|
||||||
</set>
|
|
||||||
</option>
|
|
||||||
<option name="useQualifiedModuleNames" value="true" />
|
|
||||||
</GradleProjectSettings>
|
|
||||||
</option>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
@ -1,40 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="RemoteRepositoriesConfiguration">
|
|
||||||
<remote-repository>
|
|
||||||
<option name="id" value="central" />
|
|
||||||
<option name="name" value="Maven Central repository" />
|
|
||||||
<option name="url" value="https://repo1.maven.org/maven2" />
|
|
||||||
</remote-repository>
|
|
||||||
<remote-repository>
|
|
||||||
<option name="id" value="jboss.community" />
|
|
||||||
<option name="name" value="JBoss Community repository" />
|
|
||||||
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
|
|
||||||
</remote-repository>
|
|
||||||
<remote-repository>
|
|
||||||
<option name="id" value="MavenRepo" />
|
|
||||||
<option name="name" value="MavenRepo" />
|
|
||||||
<option name="url" value="https://repo.maven.apache.org/maven2/" />
|
|
||||||
</remote-repository>
|
|
||||||
<remote-repository>
|
|
||||||
<option name="id" value="maven" />
|
|
||||||
<option name="name" value="maven" />
|
|
||||||
<option name="url" value="https://hub.spigotmc.org/nexus/content/repositories/snapshots" />
|
|
||||||
</remote-repository>
|
|
||||||
<remote-repository>
|
|
||||||
<option name="id" value="maven" />
|
|
||||||
<option name="name" value="maven" />
|
|
||||||
<option name="url" value="https://oss.sonatype.org/content/repositories/snapshots/" />
|
|
||||||
</remote-repository>
|
|
||||||
<remote-repository>
|
|
||||||
<option name="id" value="maven2" />
|
|
||||||
<option name="name" value="maven2" />
|
|
||||||
<option name="url" value="https://jitpack.io" />
|
|
||||||
</remote-repository>
|
|
||||||
<remote-repository>
|
|
||||||
<option name="id" value="BintrayJCenter" />
|
|
||||||
<option name="name" value="BintrayJCenter" />
|
|
||||||
<option name="url" value="https://jcenter.bintray.com/" />
|
|
||||||
</remote-repository>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
@ -1,18 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="EntryPointsManager">
|
|
||||||
<list size="1">
|
|
||||||
<item index="0" class="java.lang.String" itemvalue="org.bukkit.event.EventHandler" />
|
|
||||||
</list>
|
|
||||||
</component>
|
|
||||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
|
||||||
<component name="FrameworkDetectionExcludesConfiguration">
|
|
||||||
<file type="web" url="file://$PROJECT_DIR$" />
|
|
||||||
</component>
|
|
||||||
<component name="JavaScriptSettings">
|
|
||||||
<option name="languageLevel" value="ES6" />
|
|
||||||
</component>
|
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_14" default="true" project-jdk-name="14" project-jdk-type="JavaSDK">
|
|
||||||
<output url="file://$PROJECT_DIR$/out" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
@ -1,2 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<module type="JAVA_MODULE" version="4" />
|
|
@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="VcsDirectoryMappings">
|
|
||||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
@ -13,10 +13,9 @@
|
|||||||
- Copy [config.yml](https://raw.githubusercontent.com/kraftwerk28/spigot-tg-bridge/master/src/main/resources/config.yml) to `plugins/SpigotTGBridge/` in your server directory.
|
- Copy [config.yml](https://raw.githubusercontent.com/kraftwerk28/spigot-tg-bridge/master/src/main/resources/config.yml) to `plugins/SpigotTGBridge/` in your server directory.
|
||||||
|
|
||||||
4. A `config.yml` is just a [valid YAML](https://en.wikipedia.org/wiki/YAML) file, alternative for JSON, but more human-readable.
|
4. A `config.yml` is just a [valid YAML](https://en.wikipedia.org/wiki/YAML) file, alternative for JSON, but more human-readable.
|
||||||
Now, take bot's __username__ and __token__ which you got in 2nd step and paste them into `config.yml`, so it looks like this:
|
Now, take bot's __token__ which you got in 2nd step and paste them into `config.yml`, so it looks like this:
|
||||||
```yaml
|
```yaml
|
||||||
botToken: abcdefghijklmnopq123123123
|
botToken: abcdefghijklmnopq123123123
|
||||||
botUsername: my_awesome_spigot_bot
|
|
||||||
# other configuration values...
|
# other configuration values...
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -25,7 +24,6 @@
|
|||||||
6. Add you bot to chats, where you plan to use it. In each of them, run `/chat_id` command. The bot should respond and give special value - __chat id__. Now, open `config.yml` and paste this ID under `chats` section, so it will look like this:
|
6. Add you bot to chats, where you plan to use it. In each of them, run `/chat_id` command. The bot should respond and give special value - __chat id__. Now, open `config.yml` and paste this ID under `chats` section, so it will look like this:
|
||||||
```yaml
|
```yaml
|
||||||
botToken: abcdefghijklmnopq123123123
|
botToken: abcdefghijklmnopq123123123
|
||||||
botUsername: my_awesome_spigot_bot
|
|
||||||
chats:
|
chats:
|
||||||
# Note about doubling minus sign. This is not a mistake, first one means list element, the second one - actual minus
|
# Note about doubling minus sign. This is not a mistake, first one means list element, the second one - actual minus
|
||||||
- -123456789
|
- -123456789
|
||||||
@ -47,7 +45,6 @@ P. S. You can always update plugin configuration without restarting the server.
|
|||||||
|:-----:|:------------|:----:|:--------:|:-------:|
|
|:-----:|:------------|:----:|:--------:|:-------:|
|
||||||
| enable | If plugin should be enabled | `boolean` | :x: | `true` |
|
| enable | If plugin should be enabled | `boolean` | :x: | `true` |
|
||||||
| botToken | Telegram bot token ([How to create bot](https://core.telegram.org/bots#3-how-do-i-create-a-bot)) | `string` | :heavy_check_mark: | - |
|
| botToken | Telegram bot token ([How to create bot](https://core.telegram.org/bots#3-how-do-i-create-a-bot)) | `string` | :heavy_check_mark: | - |
|
||||||
| botUsername | Telegram bot username | `string` | :heavy_check_mark: | - |
|
|
||||||
| chats | Chats, where bot will work (to prevent using bot by unknown chats) | `number[] or string[]` | :heavy_check_mark: | `[]` |
|
| chats | Chats, where bot will work (to prevent using bot by unknown chats) | `number[] or string[]` | :heavy_check_mark: | `[]` |
|
||||||
| serverStartMessage | What will be sent to chats when server starts | `string` | :x: | `'Server started.'` |
|
| serverStartMessage | What will be sent to chats when server starts | `string` | :x: | `'Server started.'` |
|
||||||
| serverStopMessage | What will be sent to chats when server stops | `string` | :x: | `'Server stopped.'` |
|
| serverStopMessage | What will be sent to chats when server stops | `string` | :x: | `'Server stopped.'` |
|
||||||
|
67
build.gradle
67
build.gradle
@ -1,67 +0,0 @@
|
|||||||
import org.yaml.snakeyaml.Yaml
|
|
||||||
|
|
||||||
buildscript {
|
|
||||||
repositories {
|
|
||||||
mavenCentral()
|
|
||||||
}
|
|
||||||
dependencies {
|
|
||||||
classpath group: 'org.yaml', name: 'snakeyaml', version: '1.26'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
plugins {
|
|
||||||
id 'java'
|
|
||||||
id 'org.jetbrains.kotlin.jvm' version '1.3.60'
|
|
||||||
id 'com.github.johnrengelman.shadow' version '5.2.0'
|
|
||||||
}
|
|
||||||
|
|
||||||
group 'org.kraftwerk28'
|
|
||||||
def pluginConfigFile = new File("src/main/resources/plugin.yml").newInputStream()
|
|
||||||
def cfg = (Map<String, Object>)new Yaml().load(pluginConfigFile)
|
|
||||||
version cfg.get("version")
|
|
||||||
|
|
||||||
repositories {
|
|
||||||
maven {
|
|
||||||
url "https://hub.spigotmc.org/nexus/content/repositories/snapshots"
|
|
||||||
}
|
|
||||||
maven {
|
|
||||||
url "https://jitpack.io"
|
|
||||||
}
|
|
||||||
maven {
|
|
||||||
url "https://oss.sonatype.org/content/repositories/snapshots/"
|
|
||||||
}
|
|
||||||
mavenCentral()
|
|
||||||
jcenter()
|
|
||||||
}
|
|
||||||
|
|
||||||
def plugDir = "MinecraftServers/spigot_1.15.2/plugins/"
|
|
||||||
def homeDir = System.properties['user.home']
|
|
||||||
|
|
||||||
task cpArtifacts(type: Copy) {
|
|
||||||
from shadowJar
|
|
||||||
into "$homeDir/$plugDir"
|
|
||||||
}
|
|
||||||
|
|
||||||
shadowJar {
|
|
||||||
archiveClassifier = null
|
|
||||||
}
|
|
||||||
shadowJar.finalizedBy cpArtifacts
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
|
|
||||||
testImplementation group: 'junit', name: 'junit', version: '4.12'
|
|
||||||
compileOnly "org.spigotmc:spigot-api:1.15.2-R0.1-SNAPSHOT"
|
|
||||||
implementation 'com.vdurmont:emoji-java:5.1.1'
|
|
||||||
|
|
||||||
def tgBotVer = '5.0.0'
|
|
||||||
implementation "io.github.kotlin-telegram-bot.kotlin-telegram-bot:telegram:$tgBotVer"
|
|
||||||
// def ktorVersion = '1.3.2'
|
|
||||||
// implementation "io.ktor:ktor-server-core:$ktorVersion"
|
|
||||||
}
|
|
||||||
|
|
||||||
compileKotlin {
|
|
||||||
kotlinOptions.jvmTarget = "1.8"
|
|
||||||
}
|
|
||||||
compileTestKotlin {
|
|
||||||
kotlinOptions.jvmTarget = "1.8"
|
|
||||||
}
|
|
74
build.gradle.kts
Normal file
74
build.gradle.kts
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
import org.yaml.snakeyaml.Yaml
|
||||||
|
import java.io.*
|
||||||
|
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
||||||
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||||
|
|
||||||
|
buildscript {
|
||||||
|
repositories {
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
dependencies {
|
||||||
|
classpath(group = "org.yaml", name = "snakeyaml", version = "1.26")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
id("org.jetbrains.kotlin.jvm") version "1.4.31"
|
||||||
|
id("com.github.johnrengelman.shadow") version "5.2.0"
|
||||||
|
}
|
||||||
|
|
||||||
|
group = "org.kraftwerk28"
|
||||||
|
|
||||||
|
val cfg: Map<String, String> = Yaml().load(
|
||||||
|
FileInputStream("src/main/resources/plugin.yml")
|
||||||
|
)
|
||||||
|
val pluginVersion = cfg.get("version")
|
||||||
|
val spigotApiVersion = cfg.get("api-version")
|
||||||
|
version = pluginVersion as Any
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
mavenCentral()
|
||||||
|
maven(
|
||||||
|
url = "https://hub.spigotmc.org/nexus/content/repositories/snapshots/"
|
||||||
|
)
|
||||||
|
maven(url = "https://jitpack.io")
|
||||||
|
maven(url = "https://oss.sonatype.org/content/repositories/snapshots/")
|
||||||
|
}
|
||||||
|
|
||||||
|
val tgBotVersion = "6.0.4"
|
||||||
|
val plugDir = "MinecraftServers/spigot_1.16.5/plugins/"
|
||||||
|
val homeDir = System.getProperty("user.home")
|
||||||
|
|
||||||
|
tasks {
|
||||||
|
named<ShadowJar>("shadowJar") {
|
||||||
|
archiveBaseName.set(
|
||||||
|
"spigot-tg-bridge-${spigotApiVersion}-v${pluginVersion}.jar"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.register<Copy>("copyArtifacts") {
|
||||||
|
from(tasks.shadowJar)
|
||||||
|
into(File(homeDir, plugDir))
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.register("pack") {
|
||||||
|
dependsOn("shadowJar")
|
||||||
|
finalizedBy("copyArtifacts")
|
||||||
|
}
|
||||||
|
|
||||||
|
defaultTasks("pack")
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
|
||||||
|
compileOnly("org.spigotmc:spigot-api:$spigotApiVersion-R0.1-SNAPSHOT")
|
||||||
|
implementation(
|
||||||
|
"io.github.kotlin-telegram-bot.kotlin-telegram-bot" +
|
||||||
|
":telegram:$tgBotVersion"
|
||||||
|
)
|
||||||
|
implementation("com.vdurmont:emoji-java:5.1.1")
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.withType<KotlinCompile> {
|
||||||
|
kotlinOptions.jvmTarget = "1.8"
|
||||||
|
}
|
5
gradle/wrapper/gradle-wrapper.properties
vendored
5
gradle/wrapper/gradle-wrapper.properties
vendored
@ -1,6 +1,5 @@
|
|||||||
#Sat Feb 08 20:44:49 EET 2020
|
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip
|
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStorePath=wrapper/dists
|
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
zipStorePath=wrapper/dists
|
||||||
|
53
gradlew
vendored
53
gradlew
vendored
@ -1,5 +1,21 @@
|
|||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copyright 2015 the original author or authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
##
|
##
|
||||||
## Gradle start up script for UN*X
|
## Gradle start up script for UN*X
|
||||||
@ -28,7 +44,7 @@ APP_NAME="Gradle"
|
|||||||
APP_BASE_NAME=`basename "$0"`
|
APP_BASE_NAME=`basename "$0"`
|
||||||
|
|
||||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||||
DEFAULT_JVM_OPTS='"-Xmx64m"'
|
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||||
|
|
||||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||||
MAX_FD="maximum"
|
MAX_FD="maximum"
|
||||||
@ -66,6 +82,7 @@ esac
|
|||||||
|
|
||||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||||
|
|
||||||
|
|
||||||
# Determine the Java command to use to start the JVM.
|
# Determine the Java command to use to start the JVM.
|
||||||
if [ -n "$JAVA_HOME" ] ; then
|
if [ -n "$JAVA_HOME" ] ; then
|
||||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||||
@ -109,10 +126,11 @@ if $darwin; then
|
|||||||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# For Cygwin, switch paths to Windows format before running java
|
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||||
if $cygwin ; then
|
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
|
||||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
||||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
||||||
|
|
||||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
JAVACMD=`cygpath --unix "$JAVACMD"`
|
||||||
|
|
||||||
# We build the pattern for arguments to be converted via cygpath
|
# We build the pattern for arguments to be converted via cygpath
|
||||||
@ -138,19 +156,19 @@ if $cygwin ; then
|
|||||||
else
|
else
|
||||||
eval `echo args$i`="\"$arg\""
|
eval `echo args$i`="\"$arg\""
|
||||||
fi
|
fi
|
||||||
i=$((i+1))
|
i=`expr $i + 1`
|
||||||
done
|
done
|
||||||
case $i in
|
case $i in
|
||||||
(0) set -- ;;
|
0) set -- ;;
|
||||||
(1) set -- "$args0" ;;
|
1) set -- "$args0" ;;
|
||||||
(2) set -- "$args0" "$args1" ;;
|
2) set -- "$args0" "$args1" ;;
|
||||||
(3) set -- "$args0" "$args1" "$args2" ;;
|
3) set -- "$args0" "$args1" "$args2" ;;
|
||||||
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
||||||
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
||||||
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
||||||
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
||||||
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
||||||
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -159,14 +177,9 @@ save () {
|
|||||||
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
||||||
echo " "
|
echo " "
|
||||||
}
|
}
|
||||||
APP_ARGS=$(save "$@")
|
APP_ARGS=`save "$@"`
|
||||||
|
|
||||||
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
||||||
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
||||||
|
|
||||||
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
|
|
||||||
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
|
|
||||||
cd "$(dirname "$0")"
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec "$JAVACMD" "$@"
|
exec "$JAVACMD" "$@"
|
||||||
|
43
gradlew.bat
vendored
43
gradlew.bat
vendored
@ -1,3 +1,19 @@
|
|||||||
|
@rem
|
||||||
|
@rem Copyright 2015 the original author or authors.
|
||||||
|
@rem
|
||||||
|
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
@rem you may not use this file except in compliance with the License.
|
||||||
|
@rem You may obtain a copy of the License at
|
||||||
|
@rem
|
||||||
|
@rem https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
@rem
|
||||||
|
@rem Unless required by applicable law or agreed to in writing, software
|
||||||
|
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
@rem See the License for the specific language governing permissions and
|
||||||
|
@rem limitations under the License.
|
||||||
|
@rem
|
||||||
|
|
||||||
@if "%DEBUG%" == "" @echo off
|
@if "%DEBUG%" == "" @echo off
|
||||||
@rem ##########################################################################
|
@rem ##########################################################################
|
||||||
@rem
|
@rem
|
||||||
@ -13,15 +29,18 @@ if "%DIRNAME%" == "" set DIRNAME=.
|
|||||||
set APP_BASE_NAME=%~n0
|
set APP_BASE_NAME=%~n0
|
||||||
set APP_HOME=%DIRNAME%
|
set APP_HOME=%DIRNAME%
|
||||||
|
|
||||||
|
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
||||||
|
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||||
|
|
||||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||||
set DEFAULT_JVM_OPTS="-Xmx64m"
|
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||||
|
|
||||||
@rem Find java.exe
|
@rem Find java.exe
|
||||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||||
|
|
||||||
set JAVA_EXE=java.exe
|
set JAVA_EXE=java.exe
|
||||||
%JAVA_EXE% -version >NUL 2>&1
|
%JAVA_EXE% -version >NUL 2>&1
|
||||||
if "%ERRORLEVEL%" == "0" goto init
|
if "%ERRORLEVEL%" == "0" goto execute
|
||||||
|
|
||||||
echo.
|
echo.
|
||||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||||
@ -35,7 +54,7 @@ goto fail
|
|||||||
set JAVA_HOME=%JAVA_HOME:"=%
|
set JAVA_HOME=%JAVA_HOME:"=%
|
||||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||||
|
|
||||||
if exist "%JAVA_EXE%" goto init
|
if exist "%JAVA_EXE%" goto execute
|
||||||
|
|
||||||
echo.
|
echo.
|
||||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||||
@ -45,28 +64,14 @@ echo location of your Java installation.
|
|||||||
|
|
||||||
goto fail
|
goto fail
|
||||||
|
|
||||||
:init
|
|
||||||
@rem Get command-line arguments, handling Windows variants
|
|
||||||
|
|
||||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
|
||||||
|
|
||||||
:win9xME_args
|
|
||||||
@rem Slurp the command line arguments.
|
|
||||||
set CMD_LINE_ARGS=
|
|
||||||
set _SKIP=2
|
|
||||||
|
|
||||||
:win9xME_args_slurp
|
|
||||||
if "x%~1" == "x" goto execute
|
|
||||||
|
|
||||||
set CMD_LINE_ARGS=%*
|
|
||||||
|
|
||||||
:execute
|
:execute
|
||||||
@rem Setup the command line
|
@rem Setup the command line
|
||||||
|
|
||||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||||
|
|
||||||
|
|
||||||
@rem Execute Gradle
|
@rem Execute Gradle
|
||||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
|
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
||||||
|
|
||||||
:end
|
:end
|
||||||
@rem End local scope for the variables with windows NT shell
|
@rem End local scope for the variables with windows NT shell
|
||||||
|
@ -14,4 +14,4 @@ class Commands(yamlCfg: YamlConfiguration) {
|
|||||||
chatID = getString("commands.chat_id")
|
chatID = getString("commands.chat_id")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@ import org.bukkit.configuration.file.YamlConfiguration
|
|||||||
import java.io.File
|
import java.io.File
|
||||||
import org.kraftwerk28.spigot_tg_bridge.Constants as C
|
import org.kraftwerk28.spigot_tg_bridge.Constants as C
|
||||||
|
|
||||||
class Configuration(plugin: Plugin) {
|
class Configuration {
|
||||||
private lateinit var yamlCfg: YamlConfiguration
|
private lateinit var yamlCfg: YamlConfiguration
|
||||||
|
|
||||||
var isEnabled: Boolean = false
|
var isEnabled: Boolean = false
|
||||||
@ -16,7 +16,6 @@ class Configuration(plugin: Plugin) {
|
|||||||
|
|
||||||
// Telegram bot stuff
|
// Telegram bot stuff
|
||||||
var botToken: String = ""
|
var botToken: String = ""
|
||||||
var botUsername: String = ""
|
|
||||||
var allowedChats: List<Long> = listOf()
|
var allowedChats: List<Long> = listOf()
|
||||||
var logFromTGtoMC: Boolean = false
|
var logFromTGtoMC: Boolean = false
|
||||||
var allowWebhook: Boolean = false
|
var allowWebhook: Boolean = false
|
||||||
@ -32,16 +31,12 @@ class Configuration(plugin: Plugin) {
|
|||||||
|
|
||||||
lateinit var commands: Commands
|
lateinit var commands: Commands
|
||||||
|
|
||||||
init {
|
|
||||||
reload(plugin)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun reload(plugin: Plugin) {
|
fun reload(plugin: Plugin) {
|
||||||
val cfgFile = File(plugin.dataFolder, C.configFilename);
|
val cfgFile = File(plugin.dataFolder, C.configFilename);
|
||||||
if (!cfgFile.exists()) {
|
if (!cfgFile.exists()) {
|
||||||
cfgFile.parentFile.mkdirs()
|
cfgFile.parentFile.mkdirs()
|
||||||
plugin.saveResource(C.configFilename, false);
|
plugin.saveResource(C.configFilename, false);
|
||||||
throw Exception()
|
throw Exception(C.WARN.noConfigWarning)
|
||||||
}
|
}
|
||||||
|
|
||||||
yamlCfg = YamlConfiguration()
|
yamlCfg = YamlConfiguration()
|
||||||
@ -56,10 +51,7 @@ class Configuration(plugin: Plugin) {
|
|||||||
allowedChats = getLongList("chats")
|
allowedChats = getLongList("chats")
|
||||||
serverStartMessage = getString("serverStartMessage")
|
serverStartMessage = getString("serverStartMessage")
|
||||||
serverStopMessage = getString("serverStopMessage")
|
serverStopMessage = getString("serverStopMessage")
|
||||||
|
|
||||||
botToken = getString("botToken") ?: throw Exception(C.WARN.noToken)
|
botToken = getString("botToken") ?: throw Exception(C.WARN.noToken)
|
||||||
botUsername = getString("botUsername") ?: throw Exception(C.WARN.noUsername)
|
|
||||||
|
|
||||||
allowWebhook = getBoolean("useWebhook", false)
|
allowWebhook = getBoolean("useWebhook", false)
|
||||||
val whCfg = get("webhookConfig")
|
val whCfg = get("webhookConfig")
|
||||||
if (whCfg is Map<*, *>) {
|
if (whCfg is Map<*, *>) {
|
||||||
@ -79,4 +71,6 @@ class Configuration(plugin: Plugin) {
|
|||||||
|
|
||||||
commands = Commands(yamlCfg)
|
commands = Commands(yamlCfg)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
fun load(plugin: Plugin) = reload(plugin)
|
||||||
|
}
|
||||||
|
@ -9,42 +9,43 @@ import org.bukkit.event.player.PlayerJoinEvent
|
|||||||
import org.bukkit.event.player.PlayerQuitEvent
|
import org.bukkit.event.player.PlayerQuitEvent
|
||||||
|
|
||||||
class EventHandler(
|
class EventHandler(
|
||||||
private val plugin: Plugin,
|
private val tgBot: TgBot,
|
||||||
private val config: Configuration
|
private val config: Configuration
|
||||||
) : Listener {
|
) : Listener {
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
fun onPlayerChat(event: AsyncPlayerChatEvent) {
|
fun onPlayerChat(event: AsyncPlayerChatEvent) {
|
||||||
if (config.logFromMCtoTG) {
|
if (!config.logFromMCtoTG) return
|
||||||
plugin.tgBot.sendMessageToTGFrom(
|
event.run {
|
||||||
event.player.displayName, event.message
|
tgBot.sendMessageToTelegram(
|
||||||
|
message, player.displayName
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
fun onPlayerJoin(event: PlayerJoinEvent) {
|
fun onPlayerJoin(event: PlayerJoinEvent) {
|
||||||
if (!config.logJoinLeave || config.joinString == null) return
|
if (!config.logJoinLeave || config.joinString == null) return
|
||||||
val username = TgBot.fullEscape(event.player.displayName)
|
val username = fullEscape(event.player.displayName)
|
||||||
val text = config.joinString!!.replace("%username%", username)
|
val text = config.joinString!!.replace("%username%", username)
|
||||||
plugin.tgBot.broadcastToTG(text)
|
tgBot.sendMessageToTelegram(text)
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
fun onPlayerLeave(event: PlayerQuitEvent) {
|
fun onPlayerLeave(event: PlayerQuitEvent) {
|
||||||
if (!config.logJoinLeave || config.leaveString == null) return
|
if (!config.logJoinLeave || config.leaveString == null) return
|
||||||
val username = TgBot.fullEscape(event.player.displayName)
|
val username = fullEscape(event.player.displayName)
|
||||||
val text = config.leaveString!!.replace("%username%", username)
|
val text = config.leaveString!!.replace("%username%", username)
|
||||||
plugin.tgBot.broadcastToTG(text)
|
tgBot.sendMessageToTelegram(text)
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
fun onPlayerDied(event: PlayerDeathEvent) {
|
fun onPlayerDied(event: PlayerDeathEvent) {
|
||||||
if (!config.logDeath) return
|
if (!config.logDeath) return
|
||||||
event.deathMessage?.let {
|
event.deathMessage?.let {
|
||||||
val username = TgBot.fullEscape(event.entity.displayName)
|
val username = fullEscape(event.entity.displayName)
|
||||||
val text = it.replace(username, "<i>$username</i>")
|
val text = it.replace(username, "<i>$username</i>")
|
||||||
plugin.tgBot.broadcastToTG(text)
|
tgBot.sendMessageToTelegram(text)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,6 +54,6 @@ class EventHandler(
|
|||||||
if (!config.logPlayerAsleep) return
|
if (!config.logPlayerAsleep) return
|
||||||
if (event.bedEnterResult != PlayerBedEnterEvent.BedEnterResult.OK) return
|
if (event.bedEnterResult != PlayerBedEnterEvent.BedEnterResult.OK) return
|
||||||
val text = "<i>${event.player.displayName}</i> fell asleep."
|
val text = "<i>${event.player.displayName}</i> fell asleep."
|
||||||
plugin.tgBot.broadcastToTG(text)
|
tgBot.sendMessageToTelegram(text)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,60 +7,56 @@ import org.kraftwerk28.spigot_tg_bridge.Constants as C
|
|||||||
|
|
||||||
class Plugin : JavaPlugin() {
|
class Plugin : JavaPlugin() {
|
||||||
|
|
||||||
lateinit var tgBot: TgBot
|
var tgBot: TgBot? = null
|
||||||
lateinit var config: Configuration
|
val config: Configuration = Configuration()
|
||||||
|
|
||||||
override fun onEnable() {
|
override fun onEnable() {
|
||||||
try {
|
try {
|
||||||
config = Configuration(this)
|
config.load(this)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
logger.warning(C.WARN.noConfigWarning)
|
logger.warning(e.message)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!config.isEnabled) return
|
if (!config.isEnabled)
|
||||||
|
return
|
||||||
|
|
||||||
val cmdHandler = CommandHandler(this)
|
val cmdHandler = CommandHandler(this)
|
||||||
val eventHandler = EventHandler(this, config)
|
|
||||||
|
|
||||||
tgBot = TgBot(this, config)
|
tgBot = TgBot(this, config)
|
||||||
getCommand(C.COMMANDS.PLUGIN_RELOAD)?.setExecutor(cmdHandler)
|
getCommand(C.COMMANDS.PLUGIN_RELOAD)?.setExecutor(cmdHandler)
|
||||||
|
val eventHandler = EventHandler(tgBot!!, config)
|
||||||
server.pluginManager.registerEvents(eventHandler, this)
|
server.pluginManager.registerEvents(eventHandler, this)
|
||||||
|
|
||||||
// Notify Telegram groups about server start
|
// Notify Telegram groups about server start
|
||||||
config.serverStartMessage?.let {
|
config.serverStartMessage?.let { message ->
|
||||||
tgBot.broadcastToTG(it)
|
tgBot?.sendMessageToTelegram(message)
|
||||||
}
|
}
|
||||||
logger.info("Plugin started.")
|
logger.info("Plugin started.")
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDisable() {
|
override fun onDisable() {
|
||||||
if (!config?.isEnabled) return
|
if (!config.isEnabled) return
|
||||||
config.serverStopMessage?.let {
|
config.serverStopMessage?.let { message ->
|
||||||
tgBot.broadcastToTG(it)
|
tgBot?.sendMessageToTelegram(message)
|
||||||
}
|
}
|
||||||
logger.info("Plugin stopped.")
|
logger.info("Plugin stopped.")
|
||||||
}
|
}
|
||||||
|
|
||||||
fun sendMessageToMC(text: String) {
|
fun sendMessageToMinecraft(text: String, username: String? = null) {
|
||||||
val prep = EmojiParser.parseToAliases(text)
|
var prepared = config.telegramMessageFormat
|
||||||
server.broadcastMessage(prep)
|
.replace(C.MESSAGE_TEXT_PLACEHOLDER, escapeEmoji(text))
|
||||||
}
|
username?.let {
|
||||||
|
prepared = prepared
|
||||||
fun sendMessageToMCFrom(username: String, text: String) {
|
.replace(C.USERNAME_PLACEHOLDER, escapeEmoji(it))
|
||||||
val prepared = config.telegramMessageFormat
|
}
|
||||||
.replace(C.USERNAME_PLACEHOLDER, emojiEsc(username))
|
|
||||||
.replace(C.MESSAGE_TEXT_PLACEHOLDER, emojiEsc(text))
|
|
||||||
server.broadcastMessage(prepared)
|
server.broadcastMessage(prepared)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun emojiEsc(text: String) = EmojiParser.parseToAliases(text)
|
|
||||||
|
|
||||||
fun reload() {
|
fun reload() {
|
||||||
logger.info(C.INFO.reloading)
|
logger.info(C.INFO.reloading)
|
||||||
config.reload(this)
|
config.reload(this)
|
||||||
tgBot.stop()
|
tgBot?.stop()
|
||||||
tgBot.start(this, config)
|
tgBot?.start(this, config)
|
||||||
logger.info(C.INFO.reloadComplete)
|
logger.info(C.INFO.reloadComplete)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,20 +6,11 @@ import com.github.kotlintelegrambot.dispatcher.text
|
|||||||
import com.github.kotlintelegrambot.entities.BotCommand
|
import com.github.kotlintelegrambot.entities.BotCommand
|
||||||
import com.github.kotlintelegrambot.entities.ParseMode
|
import com.github.kotlintelegrambot.entities.ParseMode
|
||||||
import com.github.kotlintelegrambot.entities.Update
|
import com.github.kotlintelegrambot.entities.Update
|
||||||
import com.github.kotlintelegrambot.entities.User
|
import com.github.kotlintelegrambot.logging.LogLevel
|
||||||
|
import com.github.kotlintelegrambot.entities.ChatId
|
||||||
import okhttp3.logging.HttpLoggingInterceptor
|
import okhttp3.logging.HttpLoggingInterceptor
|
||||||
import org.kraftwerk28.spigot_tg_bridge.Constants as C
|
import org.kraftwerk28.spigot_tg_bridge.Constants as C
|
||||||
|
|
||||||
fun Bot.skipUpdates(lastUpdateID: Long = 0) {
|
|
||||||
val newUpdates = getUpdates(lastUpdateID)
|
|
||||||
|
|
||||||
if (newUpdates.isNotEmpty()) {
|
|
||||||
val lastUpd = newUpdates.last()
|
|
||||||
if (lastUpd !is Update) return
|
|
||||||
return skipUpdates(lastUpd.updateId + 1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class TgBot(private val plugin: Plugin, private val config: Configuration) {
|
class TgBot(private val plugin: Plugin, private val config: Configuration) {
|
||||||
|
|
||||||
private lateinit var bot: Bot
|
private lateinit var bot: Bot
|
||||||
@ -35,9 +26,9 @@ class TgBot(private val plugin: Plugin, private val config: Configuration) {
|
|||||||
skipUpdates()
|
skipUpdates()
|
||||||
bot = bot {
|
bot = bot {
|
||||||
token = config.botToken
|
token = config.botToken
|
||||||
logLevel = HttpLoggingInterceptor.Level.NONE
|
logLevel = LogLevel.None
|
||||||
|
|
||||||
val cmdBinding = commands.let {
|
val commandBindings = commands.let {
|
||||||
mapOf(
|
mapOf(
|
||||||
it.time to ::time,
|
it.time to ::time,
|
||||||
it.online to ::online,
|
it.online to ::online,
|
||||||
@ -46,10 +37,12 @@ class TgBot(private val plugin: Plugin, private val config: Configuration) {
|
|||||||
}.filterKeys { it != null }
|
}.filterKeys { it != null }
|
||||||
|
|
||||||
dispatch {
|
dispatch {
|
||||||
cmdBinding.forEach { (text, handler) ->
|
commandBindings.forEach { (text, handler) ->
|
||||||
command(text!!.replace(slashRegex, ""), handler)
|
command(text!!.replace(slashRegex, "")) {
|
||||||
|
handler(update)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
text(null, ::onText)
|
text { onText(update) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bot.setMyCommands(getBotCommands())
|
bot.setMyCommands(getBotCommands())
|
||||||
@ -65,7 +58,7 @@ class TgBot(private val plugin: Plugin, private val config: Configuration) {
|
|||||||
bot.stopPolling()
|
bot.stopPolling()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun time(bot: Bot, update: Update) {
|
private fun time(update: Update) {
|
||||||
val msg = update.message!!
|
val msg = update.message!!
|
||||||
if (!config.allowedChats.contains(msg.chat.id)) {
|
if (!config.allowedChats.contains(msg.chat.id)) {
|
||||||
return
|
return
|
||||||
@ -73,7 +66,7 @@ class TgBot(private val plugin: Plugin, private val config: Configuration) {
|
|||||||
|
|
||||||
if (plugin.server.worlds.isEmpty()) {
|
if (plugin.server.worlds.isEmpty()) {
|
||||||
bot.sendMessage(
|
bot.sendMessage(
|
||||||
msg.chat.id,
|
ChatId.fromId(msg.chat.id),
|
||||||
"No worlds available",
|
"No worlds available",
|
||||||
replyToMessageId = msg.messageId
|
replyToMessageId = msg.messageId
|
||||||
)
|
)
|
||||||
@ -90,13 +83,14 @@ class TgBot(private val plugin: Plugin, private val config: Configuration) {
|
|||||||
} + " ($t)"
|
} + " ($t)"
|
||||||
|
|
||||||
bot.sendMessage(
|
bot.sendMessage(
|
||||||
msg.chat.id, text,
|
ChatId.fromId(msg.chat.id),
|
||||||
|
text,
|
||||||
replyToMessageId = msg.messageId,
|
replyToMessageId = msg.messageId,
|
||||||
parseMode = ParseMode.HTML
|
parseMode = ParseMode.HTML
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun online(bot: Bot, update: Update) {
|
private fun online(update: Update) {
|
||||||
val msg = update.message!!
|
val msg = update.message!!
|
||||||
if (!config.allowedChats.contains(msg.chat.id)) {
|
if (!config.allowedChats.contains(msg.chat.id)) {
|
||||||
return
|
return
|
||||||
@ -111,13 +105,14 @@ class TgBot(private val plugin: Plugin, private val config: Configuration) {
|
|||||||
if (playerList.isNotEmpty()) "${config.onlineString}:\n$playerStr"
|
if (playerList.isNotEmpty()) "${config.onlineString}:\n$playerStr"
|
||||||
else config.nobodyOnlineString
|
else config.nobodyOnlineString
|
||||||
bot.sendMessage(
|
bot.sendMessage(
|
||||||
msg.chat.id, text,
|
ChatId.fromId(msg.chat.id),
|
||||||
|
text,
|
||||||
replyToMessageId = msg.messageId,
|
replyToMessageId = msg.messageId,
|
||||||
parseMode = ParseMode.HTML
|
parseMode = ParseMode.HTML
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun chatID(bot: Bot, update: Update) {
|
private fun chatID(update: Update) {
|
||||||
val msg = update.message!!
|
val msg = update.message!!
|
||||||
val chatID = msg.chat.id
|
val chatID = msg.chat.id
|
||||||
val text = """
|
val text = """
|
||||||
@ -127,46 +122,49 @@ class TgBot(private val plugin: Plugin, private val config: Configuration) {
|
|||||||
""".trimIndent() +
|
""".trimIndent() +
|
||||||
"\n\n<code>chats:\n # other ids...\n - ${chatID}</code>"
|
"\n\n<code>chats:\n # other ids...\n - ${chatID}</code>"
|
||||||
bot.sendMessage(
|
bot.sendMessage(
|
||||||
chatID,
|
ChatId.fromId(chatID),
|
||||||
text,
|
text,
|
||||||
parseMode = ParseMode.HTML,
|
parseMode = ParseMode.HTML,
|
||||||
replyToMessageId = msg.messageId
|
replyToMessageId = msg.messageId
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun broadcastToTG(text: String) {
|
fun sendMessageToTelegram(text: String, username: String? = null) {
|
||||||
config.allowedChats.forEach { chatID ->
|
config.allowedChats.forEach { chatID ->
|
||||||
bot.sendMessage(chatID, text, parseMode = ParseMode.HTML)
|
username?.let {
|
||||||
|
bot.sendMessage(
|
||||||
|
ChatId.fromId(chatID),
|
||||||
|
formatMsgFromMinecraft(username, text),
|
||||||
|
parseMode = ParseMode.HTML,
|
||||||
|
)
|
||||||
|
} ?: run {
|
||||||
|
bot.sendMessage(
|
||||||
|
ChatId.fromId(chatID),
|
||||||
|
text,
|
||||||
|
parseMode = ParseMode.HTML,
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun sendMessageToTGFrom(username: String, text: String) {
|
private fun onText(update: Update) {
|
||||||
config.allowedChats.forEach { chatID ->
|
|
||||||
bot.sendMessage(
|
|
||||||
chatID,
|
|
||||||
messageFromMinecraft(username, text),
|
|
||||||
parseMode = ParseMode.HTML
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun onText(bot: Bot, update: Update) {
|
|
||||||
if (!config.logFromTGtoMC) return
|
if (!config.logFromTGtoMC) return
|
||||||
val msg = update.message!!
|
val msg = update.message!!
|
||||||
if (msg.text!!.startsWith("/")) return // Suppress command forwarding
|
|
||||||
plugin.sendMessageToMCFrom(rawUserMention(msg.from!!), msg.text!!)
|
// Suppress commands to be sent to Minecraft
|
||||||
|
if (msg.text!!.startsWith("/")) return
|
||||||
|
|
||||||
|
plugin.sendMessageToMinecraft(msg.text!!, rawUserMention(msg.from!!))
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun messageFromMinecraft(username: String, text: String): String =
|
private fun formatMsgFromMinecraft(
|
||||||
|
username: String,
|
||||||
|
text: String
|
||||||
|
): String =
|
||||||
config.minecraftMessageFormat
|
config.minecraftMessageFormat
|
||||||
.replace("%username%", fullEscape(username))
|
.replace("%username%", fullEscape(username))
|
||||||
.replace("%message%", escapeHTML(text))
|
.replace("%message%", escapeHTML(text))
|
||||||
|
|
||||||
private fun rawUserMention(user: User): String =
|
|
||||||
(if (user.firstName.length < 2) null else user.firstName)
|
|
||||||
?: user.username
|
|
||||||
?: user.lastName!!
|
|
||||||
|
|
||||||
private fun getBotCommands(): List<BotCommand> {
|
private fun getBotCommands(): List<BotCommand> {
|
||||||
val cmdList = config.commands.run { listOfNotNull(time, online, chatID) }
|
val cmdList = config.commands.run { listOfNotNull(time, online, chatID) }
|
||||||
val descList = C.COMMAND_DESC.run { listOf(timeDesc, onlineDesc, chatIDDesc) }
|
val descList = C.COMMAND_DESC.run { listOf(timeDesc, onlineDesc, chatIDDesc) }
|
||||||
@ -174,21 +172,11 @@ class TgBot(private val plugin: Plugin, private val config: Configuration) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun skipUpdates() {
|
private fun skipUpdates() {
|
||||||
|
// Creates a temporary bot w/ 0 timeout to skip updates
|
||||||
bot {
|
bot {
|
||||||
token = config.botToken
|
token = config.botToken
|
||||||
timeout = 0
|
timeout = 0
|
||||||
logLevel = HttpLoggingInterceptor.Level.NONE
|
logLevel = LogLevel.None
|
||||||
}.skipUpdates()
|
}.skipUpdates()
|
||||||
}
|
}
|
||||||
|
}
|
||||||
companion object {
|
|
||||||
fun escapeHTML(s: String) = s
|
|
||||||
.replace("&", "&")
|
|
||||||
.replace(">", ">")
|
|
||||||
.replace("<", "<")
|
|
||||||
|
|
||||||
fun escapeColorCodes(s: String) = s.replace("\u00A7.".toRegex(), "")
|
|
||||||
|
|
||||||
fun fullEscape(s: String) = escapeColorCodes(escapeHTML(s))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
35
src/main/kotlin/org/kraftwerk28/spigot_tg_bridge/Utils.kt
Normal file
35
src/main/kotlin/org/kraftwerk28/spigot_tg_bridge/Utils.kt
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
package org.kraftwerk28.spigot_tg_bridge
|
||||||
|
|
||||||
|
import com.github.kotlintelegrambot.Bot
|
||||||
|
import com.github.kotlintelegrambot.entities.Update
|
||||||
|
import com.github.kotlintelegrambot.entities.User
|
||||||
|
import com.vdurmont.emoji.EmojiParser
|
||||||
|
|
||||||
|
fun Bot.skipUpdates(lastUpdateID: Long = 0) {
|
||||||
|
val newUpdates = getUpdates(lastUpdateID)
|
||||||
|
|
||||||
|
if (newUpdates.isNotEmpty()) {
|
||||||
|
val lastUpd = newUpdates.last()
|
||||||
|
if (lastUpd !is Update) return
|
||||||
|
return skipUpdates(lastUpd.updateId + 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun String.escapeHtml() =
|
||||||
|
this.replace("&", "&").replace(">", ">").replace("<", "<")
|
||||||
|
|
||||||
|
fun escapeHTML(s: String) = s
|
||||||
|
.replace("&", "&")
|
||||||
|
.replace(">", ">")
|
||||||
|
.replace("<", "<")
|
||||||
|
|
||||||
|
fun escapeColorCodes(s: String) = s.replace("\u00A7.".toRegex(), "")
|
||||||
|
|
||||||
|
fun fullEscape(s: String) = escapeColorCodes(escapeHTML(s))
|
||||||
|
|
||||||
|
fun escapeEmoji(text: String) = EmojiParser.parseToAliases(text)
|
||||||
|
|
||||||
|
fun rawUserMention(user: User): String =
|
||||||
|
(if (user.firstName.length < 2) null else user.firstName)
|
||||||
|
?: user.username
|
||||||
|
?: user.lastName!!
|
@ -1,6 +1,5 @@
|
|||||||
enable: true
|
enable: true
|
||||||
botToken: abcdef123456789
|
botToken: abcdef123456789
|
||||||
botUsername: sample_username
|
|
||||||
chats:
|
chats:
|
||||||
- -1234567890123
|
- -1234567890123
|
||||||
serverStartMessage: 'Server started.'
|
serverStartMessage: 'Server started.'
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
name: SpigotTGBridge
|
name: SpigotTGBridge
|
||||||
version: 0.0.14
|
version: 0.0.16
|
||||||
api-version: '1.15'
|
api-version: '1.15'
|
||||||
main: org.kraftwerk28.spigot_tg_bridge.Plugin
|
main: org.kraftwerk28.spigot_tg_bridge.Plugin
|
||||||
description: Telegram <-> Minecraft communication plugin for Spigot.
|
description: Telegram <-> Minecraft communication plugin for Spigot.
|
||||||
|
Loading…
Reference in New Issue
Block a user