{"id":16224208,"url":"https://github.com/emar10/highqualitybot","last_synced_at":"2026-04-24T16:06:17.110Z","repository":{"id":75350573,"uuid":"93882099","full_name":"emar10/highqualitybot","owner":"emar10","description":"A Java-based bot for Discord","archived":false,"fork":false,"pushed_at":"2018-05-04T21:29:13.000Z","size":220,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-03-25T06:51:56.065Z","etag":null,"topics":["bot","discord","discord-bot","java","jda"],"latest_commit_sha":null,"homepage":"","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/emar10.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":"2017-06-09T17:32:36.000Z","updated_at":"2018-04-29T19:00:00.000Z","dependencies_parsed_at":"2023-06-06T05:45:09.849Z","dependency_job_id":null,"html_url":"https://github.com/emar10/highqualitybot","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/emar10/highqualitybot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emar10%2Fhighqualitybot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emar10%2Fhighqualitybot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emar10%2Fhighqualitybot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emar10%2Fhighqualitybot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emar10","download_url":"https://codeload.github.com/emar10/highqualitybot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emar10%2Fhighqualitybot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32230438,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["bot","discord","discord-bot","java","jda"],"created_at":"2024-10-10T12:23:17.411Z","updated_at":"2026-04-24T16:06:17.095Z","avatar_url":"https://github.com/emar10.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# High Quality Bot [![CircleCI](https://circleci.com/gh/sasquench/highqualitybot/tree/master.svg?style=svg)](https://circleci.com/gh/sasquench/highqualitybot/tree/master)\n\nHigh Quality Bot is a Java-based bot for the VoIP and chat platform [Discord](https://discordapp.com) built on\n[JDA](https://github.com/DV8FromTheWorld/JDA) and [LavaPlayer](https://github.com/sedmelluq/lavaplayer). Currently\nfeatures commands for music playback, but future versions are planned to include other features such as administrative\ncommands and chat tools/games.\n\n## Building\n\n### Prerequisites\n\nHigh Quality Bot requires Java Development Kit 8. Building is done with Gradle, so all other dependencies are managed\nautomagically. Just clone the repository and run the `shadowJar` task using the wrapper.\n\n### On MacOS, Linux, etc.\n\n1. Navigate to the location of the cloned repository in your terminal emulator of choice\n2. Run `./gradlew shadowJar`\n\n### On Windows\n\n1. Open a Command Prompt and move to the cloned repository\n2. Run `gradlew shadowJar`\n\nOn all platforms the built JAR will be placed in `build/libs/highqualitybot-\u003cversion\u003e.jar`\n\n## Setting Up the Bot\n\nBefore you can run the bot yourself, you'll need to set up an application on Discord's\n[developer](https://discordapp.com/developers) page and add the bot account to your server. If you've already done this\nand have your token ready, then skip to Configuring.\n\n### Creating an Application on Discord\n\n1. Make sure that you're logged in, then go to \"My Apps.\"\n2. Create a new app.\n2. Give your app a sweet name, and optionally give it a description and icon.\n3. After creating the app, go to \"Create a Bot User.\"\n4. You should now have the option to display your bot's token. You'll need this for the config file later.\n5. Add the bot to your server as discussed [here](https://discordapp.com/developers/docs/topics/oauth2#bots).\n\n### Configuring\n\nHigh Quality Bot expects a file called `config.cfg` to be in the same directory as the .jar file, and won't run without\nit. The format is simply one `key=value` declaration per line. `exampleconfig.cfg` provides a sample configuration.\nCurrently available options to set are:\n* `token` - Your Bot account's OAuth token\n* `prefix` - The desired character (or string of characters if you're a crazy person) used to invoke commands.\n* `ownerid` - The User attached to this ID is automatically given permission to use all commands.\n* `allowed` - This is a list of command names separated by commas that users are allowed to use by default.\n* `disallowed` - Users are by default explicitly disallowed to use these commands.\n* `allowedHasPrecedence` - If true, any commands in both `allowed` and `disallowed` are considered allowed.\n* `permissiongroups` - A list of filenames separated by commas from which HQBot will read permission groups.\nAt the bare minimum you should set the token and ownerid. *If the owner ID is not set, you will not be able to run any\ncommands.* For more information about the Permissions system, see below.\n* `logLevel` - Set the system-wide logging level. Options from most verbose to least are: `TRACE`, `DEBUG`, `INFO` (default), `WARN`, and `ERROR`.\n\nExample `config.cfg`:\n\n```\n# Parser will ignore lines starting with '#'\n# Options are set with:\n# key=value\n\n# Token (this one isn't valid don't even try it)\ntoken=MjY4MjExODI2MzU1ODYzNTUz.DByjTQ.1ycw5crEGVZGo-ckyGakydsno0o\n\n# Prefix\nprefix=.\n\n# OwnerID\nownerid=123456789\n\n# Allowed \u0026 Disallowed\nallowed=*\ndisallowed=shutdown\n\nallowedHasPrecedence=false\n\n```\n\n## Permissions\n\nHigh Quality Bot makes use of a permissions system that integrates with Discord's Roles. When checking if a user is\nallowed to run a command, the bot starts with the permissions set in the `config.cfg`. From there, another .cfg file is\nadded for each Discord Role you would like the bot to make use of. This file includes lists of commands that users in\nthe role will be granted or denied permission to use, as well as a priority in the event of collision between two roles.\nOnce the file is created, simply add its path to `permissiongroups` in the main config.\n\nExample Permission Group `DJ.cfg`\n\n```\n# Lines starting with '#' are ignored\n\n# Role Name\nrole=DJ\n\n# Allowed\nallowed=play,pause,skip,queue\n\n# No Disallowed commands required\n\n# Priority (should be set higher than any conflicting groups that you don't want to override this one)\npriority=9\n\n```\n\n## Using the Bot\n\nTo run High Quality Bot, place the JAR and config in the same directory wherever you like,\nand start it up with `java -jar highqualitybot-\u003cversion\u003e.jar`. Once connected, you can invoke commands through any text\nchannel using the prefix set in the config file followed by the name of the command. Any arguments follow the command\nname separated by spaces. To list all available commands (with a prefix of `.`):\n```\n.help\n```\n\n## Attribution\n\nDevelopment of High Quality Bot is made possible through the use of the following libraries:\n\n* [JDA](https://github.com/DV8FromTheWorld/JDA) by *DV8FromTheWorld* (Licensed under [Apache-2.0](https://apache.org/licenses/LICENSE-2.0))\n* [LavaPlayer](https://github.com/sedmelluq/LavaPlayer) by *sedmelluq* (Licensed under [Apache-2.0](https://apache.org/licenses/LICENSE-2.0))\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femar10%2Fhighqualitybot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femar10%2Fhighqualitybot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femar10%2Fhighqualitybot/lists"}