drschlaubi / mikbot Goto Github PK
View Code? Open in Web Editor NEWA modular framework for building Discord bots in Kotlin using Kordex and Kord
A modular framework for building Discord bots in Kotlin using Kordex and Kord
We would like to run self-hosted mikbot (ghcr.io/drschlaubi/mikmusic/bot) with votebot plugin. Tried to deploy it based on https://github.com/StckOverflw/mikbot/blob/main/votebot/README.md with
- name: DOWNLOAD_PLUGINS
value: votebot
- name: PIE_CHART_SERVICE_URL
value: https://pie-chart-service.nc-01.votebot.space/
But we get the following error:
2023-06-26 14:24:11.744 [main] DEBUG o.p.update.DefaultUpdateRepository - Read plugins of 'c8757b615cfdffca' repository from 'https://storage.googleapis.com/mikbot-plugins/plugins.json'
2023-06-26 14:24:37.243 [main] DEBUG o.p.update.DefaultUpdateRepository - Found 25 plugins in repository 'c8757b615cfdffca'
2023-06-26 14:24:37.344 [main] INFO d.s.m.core.plugin.PluginUpdater - Attempting to download the following plugins: [PluginSpec(id=votebot, version=null)]
Exception in thread "main" org.pf4j.PluginRuntimeException: Error during download of plugin votebot
at org.pf4j.update.UpdateManager.downloadPlugin(UpdateManager.java:273)
at org.pf4j.update.UpdateManager.installPlugin(UpdateManager.java:241)
at dev.schlaubi.musicbot.core.plugin.PluginUpdater.downloadRequestedPlugins(PluginUpdater.kt:120)
at dev.schlaubi.musicbot.core.plugin.PluginUpdater.checkForUpdates$mikmusic(PluginUpdater.kt:30)
at dev.schlaubi.musicbot.core.plugin.PluginLoader.loadPlugins(PluginLoader.kt:58)
at dev.schlaubi.musicbot.LauncherKt.loadPlugins(Launcher.kt:29)
at dev.schlaubi.musicbot.LauncherKt.main(Launcher.kt:15)
at dev.schlaubi.musicbot.LauncherKt$main$2.invoke(Launcher.kt)
at dev.schlaubi.musicbot.LauncherKt$main$2.invoke(Launcher.kt)
at kotlin.coroutines.intrinsics.IntrinsicsKt__IntrinsicsJvmKt$createCoroutineUnintercepted$$inlined$createCoroutineFromSuspendFunction$IntrinsicsKt__IntrinsicsJvmKt$1.invokeSuspend(IntrinsicsJvm.kt:205)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlin.coroutines.ContinuationKt.startCoroutine(Continuation.kt:115)
at kotlin.coroutines.jvm.internal.RunSuspendKt.runSuspend(RunSuspend.kt:19)
at dev.schlaubi.musicbot.LauncherKt.main(Launcher.kt)
Caused by: io.ktor.client.plugins.HttpRequestTimeoutException: Request timeout has expired [url=https://storage.googleapis.com/mikbot-plugins/votebot/3.24.0/plugin-votebot-3.24.0.zip, request_timeout=unknown ms]
at io.ktor.client.engine.cio.EndpointKt$setupTimeout$timeoutJob$1.invokeSuspend(Endpoint.kt:252)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
Would like to note that game-animator
plugin works in the happy path.
CC: @MOZGIII
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
Warning
Renovate failed to look up the following dependencies: Failed to look up maven package dev.kord.x:kordx.emoji
.
Files affected: gradle/libs.versions.toml
These updates have all been created already. Click a checkbox below to force a retry/rebase of any.
com.google.devtools.ksp
, com.google.devtools.ksp:symbol-processing-api
)io.ktor:ktor-server-html-builder
, io.ktor:ktor-server-websockets
, io.ktor:ktor-server-cors
, io.ktor:ktor-server-core-jvm
, io.ktor:ktor-server-sessions
, io.ktor:ktor-server-auth
, io.ktor:ktor-server-status-pages
, io.ktor:ktor-server-resources
, io.ktor:ktor-server-netty
, io.ktor:ktor-server-content-negotiation
, io.ktor:ktor-client-resources
, io.ktor:ktor-client-auth
, io.ktor:ktor-client-core
, io.ktor:ktor-client-content-negotiation
, io.ktor:ktor-serialization-kotlinx-json
, io.ktor:ktor-client-logging
, io.ktor:ktor-client-okhttp
)dev.schlaubi.lavakord:lyrics-jvm
, dev.schlaubi.lavakord:lavasearch-jvm
, dev.schlaubi.lavakord:lavasrc-jvm
, dev.schlaubi.lavakord:sponsorblock
, dev.schlaubi.lavakord:kord
)These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.
docker-compose.yml
music/player/docker-compose.yml
ghcr.io/nycodeghg/image-color-service 0.1.1
Dockerfile
eclipse-temurin 22-jre-alpine
.github/workflows/ci.yaml
mikbot/mikbot-workflow v1.5.5
.github/workflows/gradle_plugin_ci.yml
actions/checkout v4
gradle/actions v3
actions/checkout v4
actions/setup-java v4
buildSrc/src/main/kotlin/Git.kt
buildSrc/src/main/kotlin/Project.kt
gradle.properties
settings.gradle.kts
com.gradle.develocity 3.17
build.gradle.kts
api/build.gradle.kts
api/annotations/build.gradle.kts
buildSrc/settings.gradle.kts
buildSrc/build.gradle.kts
dev.schlaubi:gradle-plugin 1.0.0
org.jlleitschuh.gradle:ktlint-gradle 12.1.1
com.github.gmazzo:gradle-buildconfig-plugin 3.1.0
gradle.plugin.com.google.cloud.artifactregistry:artifactregistry-gradle-plugin 2.2.1
buildSrc/src/main/kotlin/mikbot-module.gradle.kts
buildSrc/src/main/kotlin/mikbot-publishing.gradle.kts
buildSrc/src/main/kotlin/mikbot-template.gradle.kts
clients/haste-client/build.gradle.kts
clients/image-color-client/build.gradle.kts
clients/image-color-client-kord/build.gradle.kts
core/database-i18n/build.gradle.kts
core/game-animator/build.gradle.kts
core/gdpr/build.gradle.kts
core/health/build.gradle.kts
core/ktor/build.gradle.kts
core/redeploy-hook/build.gradle.kts
gradle/libs.versions.toml
dev.kord:kord-common 0.14.0
dev.kord:kord-rest 0.14.0
com.kotlindiscord.kord.extensions:kord-extensions 1.8.1-SNAPSHOT
com.kotlindiscord.kord.extensions:unsafe 1.8.1-SNAPSHOT
com.kotlindiscord.kord.extensions:annotation-processor 1.8.1-SNAPSHOT
dev.kord.x:kordx.emoji feature-mpp-SNAPSHOT
org.jetbrains.kotlinx:kotlinx-coroutines-jdk8 1.8.1
org.jetbrains.kotlinx:kotlinx-coroutines-core 1.8.1
org.jetbrains.kotlinx:kotlinx-coroutines-test 1.8.1
org.jetbrains.kotlinx:kotlinx-serialization-json 1.7.1
org.litote.kmongo:kmongo-coroutine-serialization 5.1.0
org.litote.kmongo:kmongo-id-serialization 5.1.0
dev.schlaubi:stdx-full 1.3.0
ch.qos.logback:logback-classic 1.5.6
com.google.apis:google-api-services-youtube v3-rev20240514-2.0.0
dev.schlaubi.lavakord:kord 6.4.0-SNAPSHOT
dev.schlaubi.lavakord:sponsorblock 6.4.0-SNAPSHOT
dev.schlaubi.lavakord:lavasrc-jvm 6.4.0-SNAPSHOT
dev.schlaubi.lavakord:lavasearch-jvm 6.4.0-SNAPSHOT
dev.schlaubi.lavakord:lyrics-jvm 6.4.0-SNAPSHOT
com.google.devtools.ksp:symbol-processing-api 2.0.0-1.0.22
io.ktor:ktor-client-okhttp 2.3.11
io.ktor:ktor-client-logging 2.3.11
io.ktor:ktor-serialization-kotlinx-json 2.3.11
io.ktor:ktor-client-content-negotiation 2.3.11
io.ktor:ktor-client-core 2.3.11
io.ktor:ktor-client-auth 2.3.11
io.ktor:ktor-client-resources 2.3.11
io.ktor:ktor-server-content-negotiation 2.3.11
io.ktor:ktor-server-netty 2.3.11
io.ktor:ktor-server-resources 2.3.11
io.ktor:ktor-server-status-pages 2.3.11
io.ktor:ktor-server-auth 2.3.11
io.ktor:ktor-server-sessions 2.3.11
io.ktor:ktor-server-core-jvm 2.3.11
io.ktor:ktor-server-cors 2.3.11
io.ktor:ktor-server-websockets 2.3.11
io.ktor:ktor-server-html-builder 2.3.11
org.pf4j:pf4j 3.11.1
org.pf4j:pf4j-update 2.3.0
com.google.code.gson:gson 2.11.0
io.insert-koin:koin-core 3.5.6
org.ow2.asm:asm 9.7
org.jetbrains.kotlin.plugin.serialization 2.0.0
org.jetbrains.kotlin.jvm 2.0.0
com.gradle.plugin-publish 1.2.1
com.github.gmazzo.buildconfig 5.3.5
dev.schlaubi.mikbot.gradle-plugin 1.0.0
com.google.devtools.ksp 2.0.0-1.0.22
gradle-plugin/settings.gradle.kts
gradle-plugin/build.gradle.kts
music/build.gradle.kts
music/commands/build.gradle.kts
music/lyrics/build.gradle.kts
music/player/build.gradle.kts
plugin-processor/build.gradle.kts
runtime/build.gradle.kts
gradle/wrapper/gradle-wrapper.properties
gradle 8.9
Add like button to music quiz so you can mark the songs you like
Deutschland
Sentry Issue: BOT-V2-Z
ClassCastException: dev.kord.core.entity.channel.NewsChannel incompatible with dev.kord.core.entity.channel.TextChannel
at space.votebot.commands.vote.create.AbstractCreateLogicKt.createVote(AbstractCreateLogic.kt:148)
at space.votebot.commands.vote.create.AbstractCreateLogicKt$createVote$3.invokeSuspend(AbstractCreateLogic.kt)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:191)
at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:147)
...
(83 additional frame(s) were not displayed)
Have a dedicated bot channel like hydra but with buttons
Currently the bot leaves immediately if there is no song remaining in the queue. In my opinion it would be nice if one could configure a timeout which has to exceed before he does so.
He also does not stop playing music if no user is left in the voice channel which wastes some server resources. This would also be a nice thing to implement.
Ability to set a channel where all created votes are gonna be.
Allow confirmations without acking for responding with a modal.
I'm having a bit of trouble getting this bot to run, I have docker and lavalink installed, I have created changed my .env and created the docker-compose.yml as well when I try to run the bot it just ends up exciting with code 1
would you be able to point and laughing at me before telling me what I'm doing wrong?
Microsoft Windows [Version 10.0.19044.1889]
(c) Microsoft Corporation. All rights reserved.
C:\WINDOWS\system32>cd C:\Music-Bot-2
C:\Music-Bot-2>docker-compose up -d
[+] Running 16/16
[+] Running 2/2docker-compose up
Currently you need to manually delete the downloaded snapshot to upgrade
Hey.
First of all: really nice project. I love it!
However I got a suggestion which would make the bot more practical to use for me.
In my case it would be nice if the configured bot owner could manage guild settings regardless of his guild permissions and if he could use the bot controls even if he is not in a voice channel.
Repeating emote is on all tracks and not just on repeating track
Only cool ppl are allowed to use it
Editing ephemerals follow-ups got removed yesterday (see discord/discord-api-docs#4414). We're currently investigating new ways to achieve the same behavior.
One way would be to not use followups for controls, which would require the auto-resend to use a button instead, since you can no longer follow up
We should add one of these fancy issue templates for votebot bug reports and feature requests.
Hi,
Is it normal that a user, if the vote allows to vote for several answers, can vote several times for the same answer?
Might use yt data api to filter for music
More scheduler options
Hi there, We at Humanode are utilizing the Votebot for polls in our community. Recently we did a vote for 48 hours and somehow the votes are stuck at 125. New people can't vote even though 5 hours are still left before the voting is closed. The error at my end shows this "The interaction failed."
freeze all players into db
use docker restart hook
unfreeze players
It seems that you cannot close a poll in the event that its containing message was deleted. Is there a fix for this? If not, maybe a fix could be implemented wherein attempting to close a poll with a message ID that doesn't exist will simply remove the poll from the list, or something similar?
Server wide player and scheduler settings (volume, loop)
also dj mode
This is according to @Korsti and needs further investigation
Looks like I screwed up
When i do /create-vote title: but then when i do yes │no it just dosent work, says not enough options
2022-01-07T21:12:51.563397345Z Exception in thread "DefaultDispatcher-worker-12" java.lang.NullPointerException: Cannot invoke "java.lang.Object.hashCode()" because "<parameter1>" is null
2022-01-07T21:12:51.563699070Z at java.base/java.util.concurrent.ConcurrentHashMap.replaceNode(Unknown Source)
2022-01-07T21:12:51.563788930Z at java.base/java.util.concurrent.ConcurrentHashMap.remove(Unknown Source)
2022-01-07T21:12:51.563863192Z at dev.schlaubi.mikmusic.sponsorblock.SponsorBlockKt.deleteSponsorBlockCache(SponsorBlock.kt:53)
2022-01-07T21:12:51.564095364Z at dev.schlaubi.mikmusic.player.MusicPlayer.onTrackEnd(MusicPlayer.kt:232)
2022-01-07T21:12:51.564331975Z at dev.schlaubi.mikmusic.player.MusicPlayer.access$onTrackEnd(MusicPlayer.kt:34)
2022-01-07T21:12:51.564556161Z at dev.schlaubi.mikmusic.player.MusicPlayer$2.invoke(MusicPlayer.kt:59)
2022-01-07T21:12:51.564786440Z at dev.schlaubi.mikmusic.player.MusicPlayer$2.invoke(MusicPlayer.kt:59)
2022-01-07T21:12:51.564963307Z at dev.schlaubi.mikmusic.player.MusicPlayer$special$$inlined$on$default$2$1.invokeSuspend(EventSource.kt:43)
2022-01-07T21:12:51.565288025Z at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
2022-01-07T21:12:51.565613665Z at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
2022-01-07T21:12:51.565696052Z at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:39)
2022-01-07T21:12:51.565701803Z at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
2022-01-07T21:12:51.565704217Z at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
2022-01-07T21:12:51.565706553Z at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
2022-01-07T21:12:51.565708937Z at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
2022-01-07T21:12:51.565711081Z at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
Hey I would like to know if we can make multiple choices or if you can add it.
Hello... love vote bot. however, it is not allowing me to vote more than once even though I have said max-votes is 2.
Sentry Issue: BOT-V2-T
ClassCastException: java.lang.String incompatible with dev.kord.core.entity.Message
at space.votebot.command.PollArguments$pollMessage$2$1.invoke(PollArgument.kt)
at com.kotlindiscord.kord.extensions.commands.application.slash.SlashCommand.autoComplete$autoComplete(SlashCommand.kt:162)
at com.kotlindiscord.kord.extensions.commands.application.slash.SlashCommand.autoComplete$suspendImpl(SlashCommand.kt:165)
at com.kotlindiscord.kord.extensions.commands.application.slash.SlashCommand.autoComplete(SlashCommand.kt)
at com.kotlindiscord.kord.extensions.commands.application.DefaultApplicationCommandRegistry.handle$suspendImpl(DefaultApplicationCommandRegistry.kt:410)
...
(11 additional frame(s) were not displayed)
Sometimes when I try to queue a song the bot simply starts playing it while skipping the current playing one. I can't really say for sure why that happens as it does not seem like there are any error messages logged in that case.
Lavalinks reconnecting strategy seems to fail sometimes
@StckOverflw pls comment here, so I can assign you
We should provide an option to enable usage of SponsorBlock to skip parts of youtube videos which have no music
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.