{"id":27879480,"url":"https://github.com/mcmonkeyprojects/discordautothreadbot","last_synced_at":"2025-10-10T22:47:28.621Z","repository":{"id":60153061,"uuid":"443947938","full_name":"mcmonkeyprojects/DiscordAutoThreadBot","owner":"mcmonkeyprojects","description":"A Discord bot to auto-join some users to threads.","archived":false,"fork":false,"pushed_at":"2023-12-22T23:28:51.000Z","size":158,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-31T20:52:42.996Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","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/mcmonkeyprojects.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null}},"created_at":"2022-01-03T05:13:51.000Z","updated_at":"2022-01-05T00:37:35.000Z","dependencies_parsed_at":"2023-12-01T19:26:56.917Z","dependency_job_id":"a565684f-19fe-49fc-9e09-6ab6d2a32e4e","html_url":"https://github.com/mcmonkeyprojects/DiscordAutoThreadBot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mcmonkeyprojects/DiscordAutoThreadBot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcmonkeyprojects%2FDiscordAutoThreadBot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcmonkeyprojects%2FDiscordAutoThreadBot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcmonkeyprojects%2FDiscordAutoThreadBot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcmonkeyprojects%2FDiscordAutoThreadBot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mcmonkeyprojects","download_url":"https://codeload.github.com/mcmonkeyprojects/DiscordAutoThreadBot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcmonkeyprojects%2FDiscordAutoThreadBot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279005459,"owners_count":26083902,"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-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","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":[],"created_at":"2025-05-05T03:22:20.521Z","updated_at":"2025-10-10T22:47:28.604Z","avatar_url":"https://github.com/mcmonkeyprojects.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"DiscordAutoThreadBot\n--------------------\n\nA simple Discord bot to allow users to automatically join any newly created thread.\n\n### Status\n\nThis project is actively maintained and functional (as of late 2023 at least), however it is lower priority after the advent of Discord Forums. Its primary use case is for one specific Discord community (Denizen) and while outside users are welcome to use this bot or fork it or whatever, I don't necessarily have enough free time anymore to consistently provide support for use-cases outside my own needs.\n\n### Usage Details\n\nThe way it works is simple: somebody with admin permission on the Discord can type `@AutoThreadsBot add (user)` to add a user to the list, or `remove` to remove them.\n\nThe `(user)` can be either a user ID, or an `@ping` of the user.\n\nWhenever a thread is created, all users on the list get added to the thread.\n\nYou can also use `@AutoThreadsBot user (user) whitelist/blacklist/clear (channels)` to configure a specific user to be whitelisted or blacklisted to certain channels. Channels are referenced by ID or with a `#channel` tag. The list can be separated with spaces or commas.\n\nYou can also `@AutoThreadsBot user (user) forumexclude (true/false)` to configure whether to exclude that user from being auto-added to Forum channels.\n\nUsers on the list can block the bot to be added to the thread without seeing the notification.\n\nThere is a maximum of 15 users you can add to the list. This is because adding new users to a thread gets rate limited (4 users per second) so the more you have, the longer the bot has to freeze for each thread.\n\nIf you're running your own instance, you can edit this number by editing `GuildDataHelper.cs`, find the `public const int MAXIMUM_PER_LIST = 15;` line and change `15` to whatever you please.\n\nIf you reach the limit, check `@AutoThreadsBot list` to see if there's any users you can remove.\n\nYou can also configure `@AutoThreadsBot firstmessage (text)` to set a message that the bot will post in any new thread, before adding users. You can use this to ping users to add them into threads too (as a way to reduce the delay for the ratelimit, at the cost of the annoying notification showing up for those users in the ping message).\n\nYou can also configure `@AutoThreadsBot extramessage (text)` for the current thread-user-add hack to send additional text, for example a role ping. The current hack works by sending a blank message, then editing it to contain pings, then deleting the message - which effectively adds users to a thread without actually pinging them. This may not work in the future if Discord's API changes.\n\nThe bot can also apply username-prefixing if wanted, via `@AutoThreadsBot autoprefix true`. This is a feature we use on the Denizen discord to more readily distinguish threads. It applies the format `(Username) titlehere`, so for example if `mcmonkey` creates a thread `I need help`, it becomes `(mcmonkey) I need help`. This will disable if the thread title already has a prefix.\n\nYou can also use `@AutoThreadsBot autopin true` to enable automatic pinning of the first post in a thread after it's created.\n\nYou can also use `@AutoThreadsBot adminrole (role)` to set a specific role as having bot-admin permission (or `0` to disable).\n\nAnybody who has the `Manage Threads` permission (or who owns a thread) can use `/archive` while in a thread to archive that thread without locking it. This also is available as a `@AutoThreadsBot archive` command. This is left in ThreadBot because Discord's developers have casually deleted the GUI button that does this natively in Discord with no explanation on two separate occasions, leaving us unable to archive threads for several days both times.\n\n### Want To Add The Public Instance?\n\n- Just [click here](https://discord.com/api/oauth2/authorize?client_id=927424149268336691\u0026permissions=292057779200\u0026scope=bot%20applications.commands).\n\n### Setup Your Own Instance\n\n- 0: Before setup: This is intended to run on a Linux server, with `git`, `screen`, and `dotnet-6-sdk` installed. If you're not in this environment... you're on your own for making it work. Should be easy, but I'm only documenting my own use case here.\n- 1: Clone this repo with `git clone`\n- 2: Make sure to checkout submodules as well: `git submodule update --init --recursive` (the `start.sh` will automatically do this for you)\n- 3: create folder `config` at top level\n- 4: You need to have a Discord bot already - check [this guide](https://discordpy.readthedocs.io/en/stable/discord.html) if you don't know how to get one. Requires messages intent, and slash commands grant. Make sure to add the bot to your server(s).\n- 5: within `config` create file `token.txt` with contents being your Discord bot's token\n- 6: `./start.sh`. Will run in a screen which you can attach to with `screen -r autothreadbot`\n\n### Licensing pre-note:\n\nThis is an open source project, provided entirely freely, for everyone to use and contribute to.\n\nIf you make any changes that could benefit the community as a whole, please contribute upstream.\n\n### The short of the license is:\n\nYou can do basically whatever you want (as long as you give credit), except you may not hold any developer liable for what you do with the software.\n\n### The long version of the license follows:\n\nThe MIT License (MIT)\n\nCopyright (c) 2022-2023 Alex \"mcmonkey\" Goodwin\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcmonkeyprojects%2Fdiscordautothreadbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmcmonkeyprojects%2Fdiscordautothreadbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcmonkeyprojects%2Fdiscordautothreadbot/lists"}