discord-kagebot/src/main/kotlin/moe/kageru/kagebot/extensions/Extensions.kt

25 lines
1.2 KiB
Kotlin
Raw Normal View History

2019-11-11 23:52:14 +01:00
package moe.kageru.kagebot.extensions
import arrow.core.ListK
import arrow.core.Option
import arrow.core.k
import org.javacord.api.entity.channel.ServerTextChannel
import moe.kageru.kagebot.Util.asOption
import moe.kageru.kagebot.config.Config
import org.javacord.api.entity.channel.ChannelCategory
import org.javacord.api.entity.permission.Role
import org.javacord.api.entity.server.Server
import org.javacord.api.entity.user.User
2019-11-12 22:02:32 +01:00
import org.javacord.api.event.message.MessageCreateEvent
2019-11-11 23:52:14 +01:00
fun Server.channelById(id: String): Option<ServerTextChannel> = getTextChannelById(id).asOption()
2019-11-12 22:02:32 +01:00
fun Server.channelsByName(name: String): ListK<ServerTextChannel> = getTextChannelsByName(name).k()
2019-11-11 23:52:14 +01:00
fun Server.rolesByName(name: String): ListK<Role> = getRolesByNameIgnoreCase(name).k()
fun Server.membersByName(name: String): ListK<User> = getMembersByName(name).toList().k()
2019-11-12 21:13:01 +01:00
fun Server.memberById(name: Long): Option<User> = getMemberById(name).asOption()
2019-11-11 23:52:14 +01:00
fun Server.categoriesByName(name: String): ListK<ChannelCategory> = getChannelCategoriesByNameIgnoreCase(name).k()
2019-11-12 22:02:32 +01:00
fun MessageCreateEvent.getUser(): Option<User> = Config.server.memberById(messageAuthor.id)
2019-11-11 23:52:14 +01:00
fun User.roles(): ListK<Role> = getRoles(Config.server).k()