Discord Bot to automute Among Us players at round transitions, in conjunction with https://github.com/automuteus/amonguscapture
MIT License
Bot releases are hidden (Show)
Published by denverquane about 4 years ago
New .au pause
command; bot will ignore all player/game updates and not apply any mutes/unmutes, etc.
Fixed .au end
still applying player/game updates erroneously
Fixed common issue with URL the bot sends not being encoded properly for the capture to understand.
Thanks to @theoddtech for the External Port config work (should make Heroku users' lives easier!) Use the External Port (details in readme) when the externally-reachable port might be different from the port that the bot is running the socket.io server on (such as in Heroku).
Thanks to @nzbr for work to make troubleshooting easier; .au new
will now display the URL and Code that you can manually enter into the capture, in case the Link URI doesn't automatically link. Nzbr also added support for the capture to actually accept the 8-character codes, so thanks for that 😆
Published by denverquane about 4 years ago
Fixed the functionality of DISCORD_BOT_TOKEN_2
. This now functions as expected, and will dramatically improve the speed and reliability at which users are muted/deafened in 7+ player games! Setup a second bot exactly like the first (make sure to also invite it your server, same permissions as the first bot), and provide this token for it to be used.
Drastically improved the responsiveness of status message updates.
Cleaner and more predictable status messages; shorter message with less info for Menu and Unlinked statuses.
Unlinked players will now be listed so you can see which in-game players are still unlinked to discord users (finally).
Miscellaneous bug fixes and stability improvements
Published by denverquane about 4 years ago
Lots of exciting features in this one :)
.au new
and follow the steps (thanks @ph0t0shop)!.au settings
to change settings while the bot is running (thanks @Giorgio)!SERVER_PORT
to just PORT
Developer/Contributor Patch Notes:
storage/storage.go
to see details for extending this interface to support other storage methods or databases.Published by denverquane about 4 years ago
This fixes the issue where old player data would hang around even after players have left. This resulted in new players being incorrectly linked to old data when joining.
Also fixed a bug where link
wouldn't work until a user had joined a voice channel already (thanks CloakingPotion 👍 )
Published by denverquane about 4 years ago
Small release, but you can now use commands more flexibly, for example:
.au help
and .auhelp
are equivalent in this update.
Added version number to the help text/command reference
Added preliminary support for sharding...
Published by denverquane about 4 years ago
Fixes an issue where the bot would respond with "no permission" to ANY text, not just .au commands
Published by denverquane about 4 years ago
You can now restrict permissions by certain "admin" userIDs, or by roleIDs in your config json!
You can also specify the default tracked channel name there, too
ex:
"defaultTrackedChannel": "general",
"adminIDs": ["12123434", "23213445"],
"permissionRoleIDs": ["14352134", "12345656"],
Published by denverquane about 4 years ago
Biggest aspect of this release is the new behavior for muting/unmuting; users mentioned there was occasional overlap between when dead players were unmuted, and when alive players were re-muted (resulting in potentially leaked information).
Now, the mute/deafen changes for players will only apply once the changes to the more "priority" users have completed. Aka, only undeafen alive players at discussion once we're sure that the dead players are muted (no overlap)!
Status message will now update when the socket initially connects, or when it disconnects!
A couple miscellaneous bug fixes, better handling of async socket messages for future large deployments, the "refresh" (.au refresh
) command to remake the status message at the bottom of the chat, a rare race condition, etc have been fixed
Published by denverquane about 4 years ago
When you start up the bot the first time, it will dump a default config in <guildid>_config.json
, which contains all the settings for your discord instance! Feel free to change your command prefix, delays, or even mute/deafen behavior in here (don't change the guildID).
changing defaultTrackedChannel, adminIDs, and permissionRoleIDs has NO EFFECT. Those are PLACEHOLDERS!
The format for the delays is a little complex; here is the format:
...
"delays": {
"DISCUSSION": {
"DISCUSSION": 0,
"LOBBY": 6,
"TASKS": 7
},
...
...
This specifies all the delays for DISCUSSION -> transitions, in seconds. So in the above example, there is a 6 second delay when going from DISCUSSION -> LOBBY, and a 7 second delay going from DISCUSSION -> TASKS
This config is only detected when restarting the bot. Making changes while the bot is currently running will have no effect
Published by denverquane about 4 years ago
This patch is mainly a stability/thread-safe refactor (no more crashes, and more consistent behavior across the board), but also should fix the behavior with erroneously marking a player as dead/alive when they shouldn't be. If you still see something similar still, SEND ME THE LOGS.
Other features:
.au new
, if that user is in a voice channel, that voice channel will be used as the tracked channel by defaultPublished by denverquane about 4 years ago
See title ya silly
Published by denverquane about 4 years ago
Added sync codes (no more guildID needed!), misc bug fixes, better help text, etc.
Logging to file by default, version # in logs automatically
Published by denverquane about 4 years ago
Also added new commands to .au help
Published by denverquane about 4 years ago
Adds .au end
to properly end the game (unmuting all players as necessary).
Added .au force <stage>
to force the bot to transition to the stage you desire, if it gets stuck in the wrong stage. For example, .au f task
or .au f d
(discuss). .au f lobby
as well.
Also added a cleaner embed message for the status, and implemented correct mute/deafen behavior for alive/ghosts
Published by denverquane about 4 years ago
Published by denverquane about 4 years ago
Should make debugging easier!
Published by denverquane about 4 years ago
Full-length commands weren't working (aka .au help
instead of .au h
). Also applies to the regions used in .au broadcast
; asia
, north
, or europe
Published by denverquane about 4 years ago
This should fix the rate limiting issue (finally? hopefully?). On a full server of 10 players, it will around 3+ seconds to mute/unmute all 10 players with these settings. I don't see a great way around this; this is an inherent limitation of Discord's API.
Added the variable to tweak the delay, however:
# how many milliseconds between mute commands (for multiple players) the bot should wait
# leave as default (300ms) unless you see players not being muted/unmuted fully, especially in large games of
# 7+ people. If playing with many players and inconsistent muting/unmuting is occurring, bump up to 350-400
DISCORD_API_MUTE_DELAY_MS = 300
Also included a change to detect final.env
, final.txt
, or even final.env.txt
as environment files
Published by denverquane about 4 years ago
Had a weird regression where the bot wouldn't automatically start tracking players when it started up. This should be fixed now!
Also added fields in the .env
for manually specifying the resolution if you have a problem with the resolution/monitor autodetection (rare):
# Only change if you are experiencing capture issues. The bot should autodetect the resolution of your primary display
# X_RESOLUTION = 1920
# Y_RESOLUTION = 1080
Published by denverquane about 4 years ago
This should address an issue people were reporting where players weren't correctly unmuted when the discussion phase begins (a weird race condition)