{"id":18397788,"url":"https://github.com/strato-emu/strato-bot","last_synced_at":"2025-04-07T04:33:34.009Z","repository":{"id":165723335,"uuid":"641130250","full_name":"strato-emu/strato-bot","owner":"strato-emu","description":"The bot for the official Strato Emulator Discord Server","archived":false,"fork":false,"pushed_at":"2023-10-21T00:37:19.000Z","size":319,"stargazers_count":13,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-22T13:37:48.101Z","etag":null,"topics":["bot","discord","strato"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/strato-emu.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}},"created_at":"2023-05-15T21:00:25.000Z","updated_at":"2023-12-13T22:54:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"b5725c8f-af64-420b-8eb3-906259329c5f","html_url":"https://github.com/strato-emu/strato-bot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strato-emu%2Fstrato-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strato-emu%2Fstrato-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strato-emu%2Fstrato-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strato-emu%2Fstrato-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/strato-emu","download_url":"https://codeload.github.com/strato-emu/strato-bot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247595370,"owners_count":20963939,"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","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","strato"],"created_at":"2024-11-06T02:18:40.174Z","updated_at":"2025-04-07T04:33:29.609Z","avatar_url":"https://github.com/strato-emu.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Strato Bot\n\nWe needed a bot for managing our Discord server with specific features. Strato Bot was created so that we could effectively moderate and help people in an efficient manner and meet the special needs of managing an emulation server with potential for integration with the application in the future.\n\nStrato Bot is forked from [Skyline Bot](https://github.com/skyline-emu/skyline-bot).\n\n## Outline\n\n### Events\n\nThese are any events emitted by the Discord API that are visible to the bot, such as:\n\n- Triggering an interaction (`interactionCreate`)\n- Successful connection with the Discord API (`ready`)\n- Sending a message (`messageCreate`)\n- Modification of a guild member (`guildMemberUpdate`)\n\n### Filters\n\nThese are implemented in the `messageCreate` event file. The functions added are run for every message that the bot recieves.\n\n### Commands\n\nStrato Bot uses Discord interactions (slash commands, modals, etc.) to provide users with a simple way of communicating with the bot.\n\n## Setup and usage\n\n### Step 1: Install Node.js\n\nWe use Discord.js for writing the bot, a module that allows the bot to connect with the Discord API through Node.js. Install Node.js to develop or host an instance of Strato Bot.\n\n### Step 2: Installing modules and dependencies\n\nDownload the code and extract it to a folder. Run `npm i` from inside the project folder to install the necessary modules and dependencies that allow Strato Bot to run.\n\n### Step 3: Starting the bot\n\nTo start the bot in development mode, run `npm run tscw`. This is a script that will allow users to make changes to the code that will be detected and recompiled as they are made. Otherwise, run `npm run start`. Bot commands are updated on start for both scripts.\n\n## Docker Support\n\nDocker packages can be created and run using Github workflows. Run the Docker images by downloading the package, cloning the .env file in the source code, and doing `docker run --env-file \u003c.env file name\u003e \u003cDocker image name\u003e`.\n\n## Notes\n\n- Strato Bot is written in TypeScript to allow for compile-time error checking. Strato Bot is also written completely using the ECMAScript standard for added concision and convenience.\n- Strato Bot logs command usage to a file named console.log in the root directory by default, using the function logToFile.\n- To set command permissions beyond the defaults, you'll need to edit them in server settings.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstrato-emu%2Fstrato-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstrato-emu%2Fstrato-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstrato-emu%2Fstrato-bot/lists"}