{"id":15690431,"url":"https://github.com/koooooo-7/k-bot","last_synced_at":"2025-07-23T00:32:29.803Z","repository":{"id":37115556,"uuid":"269374092","full_name":"Koooooo-7/K-Bot","owner":"Koooooo-7","description":":robot: A Quantum Discord Bot in SpringBoot.","archived":false,"fork":false,"pushed_at":"2024-03-01T15:20:03.000Z","size":123,"stargazers_count":7,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-07T23:39:57.019Z","etag":null,"topics":["discord","discord-bot","java","springboot"],"latest_commit_sha":null,"homepage":"https://github.com/Koooooo-7/K-Bot","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Koooooo-7.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-04T13:57:23.000Z","updated_at":"2024-05-28T02:11:22.000Z","dependencies_parsed_at":"2024-10-23T22:59:02.259Z","dependency_job_id":"dcf2c1a8-538a-4b34-b33e-10321dbcffc4","html_url":"https://github.com/Koooooo-7/K-Bot","commit_stats":{"total_commits":80,"total_committers":5,"mean_commits":16.0,"dds":0.275,"last_synced_commit":"3ab5fb86e8f75a201b62a0cd5b419ed18ffda7a6"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Koooooo-7/K-Bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Koooooo-7%2FK-Bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Koooooo-7%2FK-Bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Koooooo-7%2FK-Bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Koooooo-7%2FK-Bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Koooooo-7","download_url":"https://codeload.github.com/Koooooo-7/K-Bot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Koooooo-7%2FK-Bot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266596689,"owners_count":23953891,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["discord","discord-bot","java","springboot"],"created_at":"2024-10-03T18:09:23.261Z","updated_at":"2025-07-23T00:32:29.730Z","avatar_url":"https://github.com/Koooooo-7.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/Koooooo-7\"\u003e\n    \u003cimg alt=\"kbot\" src=\"https://user-images.githubusercontent.com/33706142/86933539-369bd600-c16d-11ea-8d44-ee4c1f053cdf.jpg\" width = \"100px\" \u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cb\u003eKbot\u003c/b\u003e, a Quantum Discord bot in SpringBoot.\n\u003c/p\u003e\n\n\n\n### [Intruduction](#Intruduction)  ·  [Usage](#bookusage)  ·  [Plugins](#wrenchplugins)  ·  [Contributing](#Contributing)  · [Statement](#-statement )\n\n\u003c!---\nlabels , star... something\n--\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"javascript:\"\u003e\n        \u003cimg alt=\"kbot\" src=\"https://img.shields.io/badge/Discord-K--bot-brightgreen?style=plastic\u0026logo=appveyor\"  \u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://sonarcloud.io/dashboard?id=Koooooo-7_K-Bot\"\u003e\n        \u003cimg alt=\"sonar\" src=\"https://sonarcloud.io/images/project_badges/sonarcloud-black.svg\" \u003e\n    \u003c/a\u003e\n    \u003ca href=\"javascript:\"\u003e\n        \u003cimg alt=\"kot CI\" src=\"https://github.com/Koooooo-7/K-Bot/workflows/K%20Bot%20CI/badge.svg\"  \u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n\n\n---\n\n## 📣Introduction\n\n\u003e  A DIY bot that you can be the designer of your own **`K-bot`** ​!:fire:\n\n**`K-bot`** is a Quantum [Discord](discord.com) bot, which means she can do everything, if she has enough plugins. :rocket:\n\nIt is **NOT** the specific bot which is just for importing to your Discord server( absolutely, she can do that ! :wink: ).\n\n\n\n**`K-bot`** is developed in `SpringBoot` and makes all the plugins as plugins/configurations.  hence you can chose what skills you want for `K-bot` via setting the configuration files to summon the abilities, and you can add and register your own plugins in **`K-bot`** easily. :cowboy_hat_face: \n\n\n\n---\n\n## :book:Usage\n\n\u003e IF YOU WANNA USE IT.\n\nSet those configurations to `application.yml`(more details in `application-example.yml`).\n\n**Get your bot**\n\n```yaml\nk-bot:\n  # your bot token\n  token: \"your bot token\"\n  # the command you wanna call your bot\n  cmd: \"!koy\"\n```\n\n**Summon  Plugin**\n\nthe plugins you want add to your bot and then , it will only create those plugin instances.\n\n```yaml\n  # register plugins\n  plugins:\n  - player\n  - time\n  - joker\n```\n\n\n\n\u003e IF YOU WANNA CREATE IT !\n\n**Create Plugin**\n\n- Implementation interface.\n\nthe parser will give the arguments to your plugin if it matched.\n\n```java\npublic interface IPlugin {\n    \n    void handle(String[] args);\n    \n    @Deprecated\n    String command();\n}\n```\n\n\n\n- Define command\n\nWe use the  annotation `@Plugin` to define the plugin meta data.\n\n```java\n@Target(ElementType.TYPE)\n@Retention(RetentionPolicy.RUNTIME)\n@Inherited\npublic @interface Plugin {\n\n    // the plugin name\n    String name() default \"\";\n\n    // how to call the plugin normally\n    String call();\n\n    // fast commands\n    String[] fastCommand() default {};\n}\n```\n\n\n\n- Configure the condition\n\nWe won't create the plugin instance when it does not be called, so we should set the conditional configuration.\n\n```java\n@Bean\n@ConditionalOnSummoned(name = \"k-bot.plugins\", havingValue = \"player\")\npublic AudioPlayer audioPlayer(){\n    return new AudioPlayer();\n}\n```\n\n**Example**\n\nthe example of how to create the plugin `joker`.\n\n- create `joker`\n\n```java\n@Plugin(name = \"joker\", call = \"joker\", fastCommand = {\"j\", \"jk\"})\npublic class Joker implements IPlugin {\n    ...\n}\n```\n\n- set bean condition\n\n```java\n@Bean\n@ConditionalOnSummoned(name = \"k-bot.plugins\", havingValue = \"joker\")\npublic Joker joker() {\n    return new Joker();\n}\n```\n\nit is so easy to add an new plugin to `K-bot`, isn't it ! :tada:\n\n---\n\n## :wrench:Plugins\n\n\u003e  NOTE:  **Command** doesn't contain the command/name calling the bot. :pencil:\n\n| Plugin  | Description                                                  | Command            | Example         |\n| ------- | ------------------------------------------------------------ | ------------------ | --------------- |\n| Player  | A audio player based on [lavaplayer](https://github.com/sedmelluq/lavaplayer). | play [- u ]        | play hello      |\n| Joke    | Send a joke randomly.                                        | joke               | joke            |\n| time    | Report the current time of the city.                         | time [cityname]    | time Tokyo      |\n| weather | Report the current weather details of the city.              | weather [cityname] | weather Beijing |\n|         |                                                              |                    |                 |\n| ...     | waiting for your ideas !:rocket:                             |                    |                 |\n\n**Help**\n\n`help` is an embed command that it can help a lot about the commands, such as recommending the similar commands when you called a non exist command.\n\n---\n\n## :rocket:Contributing\n\n**Folk it !**\n\n- fix bugs： send a PR here !\n- feature：it is better to have an `feature request` issue first and then, working on it !\n\n---\n\n## 📃 Statement\n\nThe API of bot are all getting from the open resources, if there has any problem, leaving an issues please.\n\n[MIT](LICENSE) @Koy","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkoooooo-7%2Fk-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkoooooo-7%2Fk-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkoooooo-7%2Fk-bot/lists"}