forked from DiscordBots/lilJudd
feat: make the bot update the roles on startup
fix: fixed the bot throwing Errors when there is no role for a channel Signed-off-by: limited_dev <loginakkisativ@gmail.com>
This commit is contained in:
parent
d6bf2e7bc9
commit
196bb378b4
2 changed files with 17 additions and 3 deletions
|
@ -22,6 +22,7 @@ import com.kotlindiscord.kord.extensions.ExtensibleBot
|
||||||
import dev.kord.common.Color
|
import dev.kord.common.Color
|
||||||
import dev.kord.common.entity.PresenceStatus
|
import dev.kord.common.entity.PresenceStatus
|
||||||
import dev.kord.core.behavior.interaction.response.respond
|
import dev.kord.core.behavior.interaction.response.respond
|
||||||
|
import dev.kord.core.event.gateway.ReadyEvent
|
||||||
import dev.kord.core.event.interaction.ButtonInteractionCreateEvent
|
import dev.kord.core.event.interaction.ButtonInteractionCreateEvent
|
||||||
import dev.kord.core.on
|
import dev.kord.core.on
|
||||||
import dev.kord.gateway.Intent
|
import dev.kord.gateway.Intent
|
||||||
|
@ -151,6 +152,11 @@ object Bot {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Update roles
|
||||||
|
bot.kordRef.on<ReadyEvent> {
|
||||||
|
AvailabilityManager.runThread()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//Start the bot
|
//Start the bot
|
||||||
bot.start()
|
bot.start()
|
||||||
|
|
|
@ -88,14 +88,22 @@ object AvailabilityManager : IFeature {
|
||||||
continue // This channel does not exist anymore.
|
continue // This channel does not exist anymore.
|
||||||
val c =
|
val c =
|
||||||
Bot.bot.kordRef.getChannelOf<MessageChannel>(Snowflake(data.channelid))!! // Get the channel as MessageChannel
|
Bot.bot.kordRef.getChannelOf<MessageChannel>(Snowflake(data.channelid))!! // Get the channel as MessageChannel
|
||||||
val roleData = roleMap[data.channelid]!! // Get the role data
|
if (roleMap.size < 1) {
|
||||||
|
Logger.out("No saved roles. Canceling.")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
val roleData = roleMap[data.channelid] // Get the role data
|
||||||
|
if (roleData == null) {
|
||||||
|
Logger.out("Role for this channel does not exist")
|
||||||
|
return
|
||||||
|
}
|
||||||
val g = Bot.bot.kordRef.getGuildOrThrow(Snowflake(data.serverid))
|
val g = Bot.bot.kordRef.getGuildOrThrow(Snowflake(data.serverid))
|
||||||
// Get all members with the role
|
// Get all members with the role
|
||||||
val mce = g.requestMembers {
|
val mce = g.requestMembers {
|
||||||
this.requestAllMembers()
|
this.requestAllMembers()
|
||||||
}
|
}
|
||||||
mce.collect { it1 ->
|
mce.collect { memberchunkevent ->
|
||||||
it1.members.forEach {
|
memberchunkevent.members.forEach {
|
||||||
Logger.out("Checking member ${it.id.value}")
|
Logger.out("Checking member ${it.id.value}")
|
||||||
if (it.roleIds.contains(Snowflake(roleData.hastimeroleid)))
|
if (it.roleIds.contains(Snowflake(roleData.hastimeroleid)))
|
||||||
it.removeRole(Snowflake(roleData.hastimeroleid))
|
it.removeRole(Snowflake(roleData.hastimeroleid))
|
||||||
|
|
Loading…
Reference in a new issue