Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

io.github.jan-tennert.discordkm:DiscordKM-jvm

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

io.github.jan-tennert.discordkm:DiscordKM-jvm

A Kotlin Multiplatform Discord API Wrapper

  • 0.8-beta-8
  • Source
  • Maven
  • Socket score

Version published
Maintainers
1
Source

DiscordKM

A Kotlin Multiplatform Discord API Wrapper

Packages:

  • DiscordKM (core) Maven Central JVM JS
  • DiscordKM-Lavalink Maven Central JVM JS
  • DiscordKM-Http-Interactions Maven Central JVM

Discord: Click here
Wiki: Click here

Warning: This project is in Alpha and can change without notice

Introduction

You can create a client easily by just using buildClient:

 val client = buildClient("TOKEN") {
    intents = mutableSetOf( //set intents
        Intent.GUILD_MEMBERS,
        Intent.GUILD_PRESENCES,
        Intent.GUILD_WEBHOOKS,
        Intent.GUILD_MESSAGE_TYPING,
        Intent.DIRECT_MESSAGE_TYPING,
        Intent.GUILDS
    )

    logging {
        level = Logger.Level.WARN
    }
    reconnectDelay = 10.seconds
    enabledCache -= CacheFlag.VOICE_STATES //remove caches you don't need
}

client.on<MessageCreateEvent> {
    println("Received message: ${message.content}")
}

//slash commands:
client.on<ReadyEvent> {
    client.commands.createChatInputCommand {
        name = "test"
        description = "This is a chat input command!"

        options {
            string(name = "option1", description = "This is a string option", required = true) {
                choice("choice1", "choice1")
            }
            user("option2", "This is a user option", required = true)
        }
    }
}

client.on<SlashCommandEvent>(predicate = { it.commandName == "test" }) {
    interaction.reply("String Option: ${options["option1"].string}. User Name: ${options["option2"].user.name}")
}

client.login()

JVM-Only

If you want to easily add event listeners without having to use the Kotlin DSL you can use the following:

client.importCommands("io.github.jan.bot.commands", subPackages = true, mapOf(
   "someValue" to 1.0 
) /* Map for argument injection */)

//then you can add top level functions in the commands package and in all its subpackages
@CommandExecutor(name = "test", subCommand = "subCommand") //You can optionally use subCommand and subCommandGroup
fun SlashCommandEvent.testCommand(@Inject("someValue") value: Double) {
    interaction.reply("injected value: $value")
}

//same with events:
client.importEvents("io.github.jan.bot.events", subPackages = true, mapOf(
    "node" to lavalinkNode
))

@EventListener
fun MessageCreateEvent.play(@Inject("node") lavalinkNode: LavalinkNode) {
    //play music
}

FAQs

Package last updated on 28 Apr 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc