OttoBot/src/main/kotlin/nl/voidcorp/dbot/commands/UnityCommandEvent.kt

77 lines
1.9 KiB
Kotlin

package nl.voidcorp.dbot.commands
import net.dv8tion.jda.core.JDA
import net.dv8tion.jda.core.entities.*
import net.dv8tion.jda.core.events.message.MessageReceivedEvent
class UnityCommandEvent(
val event: MessageReceivedEvent,
val args: String,
val client: UnityCommandClient
) {
fun splitMessage(stringtoSend: String): MutableList<String> {
var msg = stringtoSend
val msgs = mutableListOf<String>()
msg = msg.trim { it <= ' ' }
while (msg.length > 2000) {
val leeway = 2000 - msg.length % 2000
var index = msg.lastIndexOf("\n", 2000)
if (index < leeway)
index = msg.lastIndexOf(" ", 2000)
if (index < leeway)
index = 2000
val temp = msg.substring(0, index).trim { it <= ' ' }
if (temp != "")
msgs.add(temp)
msg = msg.substring(index).trim { it <= ' ' }
}
if (msg != "")
msgs.add(msg)
return msgs
}
fun reply(embed: MessageEmbed) {
event.channel.sendMessage(embed).queue()
}
fun reply(message: Message) {
event.channel.sendMessage(message).queue()
}
fun reply(message: String) {
event.channel.sendMessage(message).queue()
}
fun reply(message: String, success: (message: Message) -> Unit) {
event.channel.sendMessage(message).queue(success)
}
val member: Member
get() = event.member
val guild: Guild
get() = event.guild
val channelType: ChannelType
get() = event.channelType
val textChannel: TextChannel?
get() = event.textChannel
val message: Message
get() = event.message
val selfUser: SelfUser
get() = jda.selfUser
val jda: JDA
get() = event.jda
val selfMember: Member
get() = guild.selfMember
val author: User
get() = event.author
}