Giter Site home page Giter Site logo

silence-among-us's People

Contributors

dependabot[bot] avatar jftanner avatar vrnagy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

silence-among-us's Issues

unable to delete messages which contain commands for the bot

Bug Report

Commands like "!sau start", "!sau config set speech off" or "!sau config get prefix" can not be deleted out of Discord channels by users/moderators/admins.
I assume that's due to the bot still accessing those messages (?)

Steps to Reproduce

  • type "!sau help" in a channel the bot has Access to.
    (the bot will provide the help page)
  • try to delete your own message "!sau help".
    (you should notice that the message does not get deleted)

Expected behavior

I would expect the bot delete the command messages automatically or at least not prevent users from deleting them.

Lobby instructions always say `!sau join`

Bug Report

The lobby instructions don't respect the actual server prefix.

Steps to Reproduce

  1. Change the command prefix of the bot
  2. Start a lobby, or add a spectator.

Expected behavior

The "Join the Game!" instructions should use the server's default prefix.

Screenshots

image

Users stay muted when leaving the voice channel

Bug Report

If a user is muted/deafened by the bot in a voice channel, they stay muted/defeaned when they leave it.

The audio states of users also isn't corrected later, if they're not in the voice channel.

Steps to Reproduce

  1. Start a lobby
  2. Join the lobby as a player
  3. Transition the lobby to working to get muted`
  4. Switch voice channels

This also works for spectators (though the lobby ends if he last spectator leaves.

Expected behavior

Users should be unmuted/undeafened when they leave the voice channel.

Bot doesn't respond to !sau

Bug Report

Bot doesn't respond to !sau

Steps to Reproduce

Just tried !sau start or !sau help

Expected behavior

Nothing happend

Screenshots

Release links from Tanndev-CI are wrong

Bug Report

Tanndev CI links literally https://github.com/tanndev/silence-among-us/issues/github_release_url, because of this setting:

- successComment: "This ${issue.pull_request ? 'pull request is included' : 'issue is resolved'} in version [${nextRelease.version}](<github_release_url>)"

Steps to Reproduce

  1. Release anything linked to an issue.

Expected behavior

It should give a link to the actual release.

Spectators Deafening

Not sure why the default functionality has spectators deafening, I understanding muting the spectators, but deafening is kinda the opposite of "spectating".

The automated release is failing 🚨

🚨 The automated release from the main branch failed. 🚨

I recommend you give this issue a high priority, so other packages depending on you could benefit from your bug fixes and new features.

You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. I’m sure you can resolve this πŸ’ͺ.

Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.

Once all the errors are resolved, semantic-release will release your package the next time you push a commit to the main branch. You can also manually restart the failed CI job that runs semantic-release.

If you are not sure how to resolve this, here is some links that can help you:

If those don’t help, or if this issue is reporting something you think isn’t right, you can always ask the humans behind semantic-release.


Unfortunately this error doesn't have any additional information. Feel free to kindly ask the author of the @semantic-release/exec plugin to add more helpful information.


Good luck with your project ✨

Your semantic-release bot πŸ“¦πŸš€

Spectators do not mute during discussion

When playing with spectators in the lobby they do not get muted during the discussion, this causes them to have to be careful about saying anything about the game even during "Working Phase" as they can end up in the discussion on accident.

Persist lobbies across restarts

Feature

Store lobby data so that it's not lost whenever the bot is restarted.

Reasons for Implementing

When the bot is restarted for an update or maintenance, any lobby in progress is lost.

This causes a few problems:

  • Users' original nicknames are lost, and can't be restored.
  • Users are left muted/deafened.
  • Games in progress are no longer tracked/automated.
  • Lobby info posts are left behind in text channels.

Ideas & Details

A couple options for storing lobby info:

  • Use the local file system as a database and use mounted volumes.
  • Use a remote database (CouchDB?) to store data.

The main problem is how to serialize lobby data in a way that can be recovered. Whichever instance of the bot is handling the shard on startup will need to be able to load the lobby and resume where the previous instance left off.

The capture app shouldn't be a problem, since Socket.IO supports automatic reconnection. It should simply reconnect to the new instance smoothly. Update: While Socket.IO does automatically reconnect, the capture app doesn't resend the connect code. That'll need to be patched.

Alternatives

One other option would be to add a graceful shutdown order which ends all existing lobbies.

Not working with new patch

I'm guessing you already know, but my bot has stopped working on the main version of the game with the new update they just pushed.

Endpoint or Command for Pulling Game State Data

I apologize if there is already a way to do this within the current framework, or if you consider it outside the scope of this project, but figured it couldn't hurt to ask.

I have floated the idea of 3rd party game roles to my server and the concept has received some positive feedback. 3rd party roles could really be anything, but my initial idea would be to emulate roles from other Mafia-style games such as "The Tanner" from ONUW.

Obviously, the ideal implementation would be directly into the game itself, but the game itself is not currently open-source, and modifying game files comes with inherent risk. So, at least as proof of concept what makes the most sense to me so far is leveraging the knowledge of the game states this bot has to assign roles and instructions on what to do via discord private messaging.

I figure adding the full functionality is certainly out of the scope of this project. However, if there was a way to either listen to a data endpoint or ping the bot periodically with a command for in-game states (who is known-dead, unknown-dead, game-phase, who is the imposter, etc.) I would try leveraging that into a secondary bot that piggybacks off the provided data and handles the rest of the concept.

Let me know if you want more details about what I had in mind, and I appreciate how responsive you have been even if this isn't something you are interested in pursuing!

Emojis to join

Feature

Allow players to connect to the game using emojis, like with AmongUsCapture

Reasons for Implementing

My friends are lazy and don't want to type things

Bot ends lobbies for inactivity during active games

Bug Report

The bot will end a lobby stating "Nothing has happened 30 minutes, so I ended the lobby." despite the lobby being actively in use for a game. Bot automatically unmutes everyone when it occurs, proceeds to mute everyone as per usual after a state change in the game. Attempting to use "!sau stop" to close the lobby after this bug appears has the bot say "There's not a lobby for your voice channel. Try !sau start!"

Steps to Reproduce

Play games with the bot running alongside Among Us Capture.
Eventually (Feels like it might be around the 30 minute mark but not confirmed) bot will claim to close the lobby.

Expected behavior

Bot should detect the game as still running and not end lobby

Screenshots

https://imgur.com/a/350CUOK

Auto Join by Profile

Feature

When a new game is created, associate players in game with existing users.

Reasons for Implementing

It is tedious to have users type join every time you choose to change a map.

Ideas & Details

The server has its list of saved users, and their names. If it is initialized or a player joins, and their discord name matches their saved profile, then automatically add them to the game

Alternatives

Not an alternative, but potentially added as an opt-in initially and then switched to default if so desired

Hash user snowflakes

Feature

Rather than storing user IDs directly, the bot should store hashed versions of them.

Reasons for Implementing

The reasons are simple:

  • The snowflake could be considered PII, and thus should not be stored unless absolutely necessary.
  • The bot only needs to fetch/update user records when requested by the users. No reverse-lookup is necessary.

Ideas & Details

Use a cryptographic hash to generate a unique document ID for each user settings document.
The hash (and therefore the document ID) can be recalculated whenever the document is needed.

Help text is too long

Bug Report

There's an error when asking for help text:

Invalid Form Body
embed.fields[0].value: Must be 1024 or fewer in length.

Steps to Reproduce

Give the command !s? to the bot.

Expected behavior

Help text should print.

Screenshots

image

404 Error: Not Found

Bug Report

Any command I enter results in a 404 error

Steps to Reproduce

Enter and command, you'll probably get this error

Expected behavior

I expected the command do run, such as stopping a lobby with !s stop or joining a lobby with !sj

Screenshots

Admin command to join or kick from lobby

Feature

Admin command to let others (or just the admins and moderators from the discord server) to force join the spectators into the lobby, and have a command to kick a person from the lobby if he's not in the voice channel (and not in the match) anymore.

Reasons for Implementing

For the force join command, the idea is to let someone with higher permissions to force others join the lobby, most to prevent someone from not joining, and also helping those who are playing using the mobile discord and mobile among us.
As for the kick command, I've noticed that if the person who is leaving the match doesn't use the command to leave the lobby, it will stay in there. Also, the same reason for the mobile players.

I guess this will help to manage the lobby a lot more easier.
Thanks in advance.

Ideas & Details

Alternatives

Double text in Discord

Hello mate!
Since the beginning I added the bot, it seems that all the players are in double in the informations given by the bot :
image

I use amongUsCapture.exe, and here is the log file :
CaptureLog.txt

Thank you for your help ! :)

Presence Customization

Feature

Customizable Presence text.

Reasons for Implementing

Currently, the bot is hardcoded to !sau-rollcall which is already misleading if you have changed prefix.

Ideas & Details

The de-facto standard for these types of bots has trended toward

${prefix} help | Watching ${num} games in ${num} servers

Personally, I think the help is too verbose and everything to the right of the pipe is perfect, but opinions are endless haha. Possibly above as the default for MVP with roadmap to user customizable text?

Alternatives

At a minimum, the ability to completely replace the status text as is, via

!sau config set status crewmates get bamboozled

assuming stull hardcoded watching prefix.

Refactor to allow for language packs

Feature

Create some mechanism to allow text to be bundled into language packs.

Reasons for Implementing

Right now, the bot only really works for english readers. Since Among Us supports other languages, it'd be useful for the bot to support those languages too. But that can't happen so long as the bot hard-codes it's text.

Ideas & Details

Couple ideas:

  • Move all text into an external file (or set of files) and reference them by ID. (How do we handle templates?)
  • Create a "translator" interface that takes an arbitrary string and returns a different language if it can. (Lot of regex for templates.)

Alternatives

Alternatively, someone could fork the repo if they want to provide a non-english version. In one sense, that'd be ideal because then it'd be inherently maintained by a translator. But it would mean that the publicly-hosted bot would be english-only.

Don't react to command

The bot don't react to commands, sometimes he just delete my command (!sau help) sometimes he don't

Handle disconnecting players better

Feature

From @douglasmonsky:

People should probably be auto ejected when they leave the voice channel (or maybe after being gone for say 5 mins). Even when telling people pretty much no one actually leaves to the session via the bot, they just leave.

Players should be removed from the bot automatically, where possible.

Reasons for Implementing

Players don't leave the bot (because why would they?) which means they are left hanging around until someone uses ejects them or ends the lobby. This just is inelegant and annoying.

Ideas & Details

Some options to think about:

  • For automated lobbies, switch players to spectator when they disconnect from the game. (This will need careful handling to work smoothly over lobby restarts.)
  • Automatically remove missing players during intermission.
    • Would need some way to auto-rejoin when they come back.
  • Always disconnect players when they change channels.
    • They need to automatically reconnect when re-joining the channel.
    • Need to lock the player so another user can't join as them.

Alternatives

Configurable spectator behavior

Feature

From #41:

Make [spectator handling] configurable. (I'm thinking mute, ignore dead for settings, with a warning that the last option will impact performance.)

Reasons for Implementing

Some users want spectators to be ignored, other users want them to be muted. whynotboth.gif

Ideas & Details

Add a new spectators config options with three values:

  • mute: Spectators are muted during the game.
  • ignore: Spectators are ignored entirely.
  • dynamic: Spectators are muted/unmuted dynamically along with dead people.

Living Meeting players not unmuted

Bug Report

Testing the bot, and living players are still muted in the meeting state. Screenshot below shows the bot recognizes the meeting state, and that I'm living. It correctly mutes when the game begins, but does not unmute living once meetings begin.

Steps to Reproduce

  • (In game) Start a game
  • Start a lobby
  • Start & Link capture to lobby via DM link
  • !sau meet to simulate meeting.

Expected behavior

Expect living players to become unmuted.

Screenshots

image

Redirect users to https://automute.us/

I simply haven't had time to give this bot the attention it requires. And, in the meantime, AutoMuteUs has gotten constant updates and improvements. So, for the final version of the bot, I'm going to replace all of it's functions with a recommendation to go use that one instead.

[Feature Request] Assign multiple in game players to 1 Discord user

The group I play with regularly has multiple married couples that play together in the same room using 1 Microphone and 1 Discord account for both of them, is it possible to add the ability to assign multiple players to 1 discord account and treat the discord account as alive unless both players are dead?

Lobbies should expire

Feature

If a lobby is unchanged after a certain amount of time, it should automatically stop.

Reasons for Implementing

Since lobbies only close themselves when all players are gone, and non-spectators aren't removed when leaving the channel, they can end up staying open indefinitely. This consumes resources and can be confusing for people if they join the channel.

Ideas & Details

If the lobby is untouched for a certain amount of time (20-30 minutes?), it should automatically stop.

I imagine that "untouched" could mean that no commands have been issued manually OR by the capture app. Either would indicate at least some interest in the lobby.

The easiest solution would likely be to add a timeout to the lobby. If it expires, the lobby closes automatically. Then, in both of the Lobby.findXXX functions, the timeout gets reset.

Alternatives

  • Close the lobby if everyone leaves the voice channel, even while playing. (Could be frustrating.)
  • Track disconnected players in the capture, and prune them. (Doesn't work in manual mode.)
  • Stop the lobby if the capture stops AND everyone left the voice channel. (Viable?)

New players cannot join the lobby

Bug Report

Hi! Not sure this is a bug or a config, but whenever we play a match (e.g. with 5~6 people) and someone else tries to join the lobby, he receive the message ", Guild member (undefined isn't in the lobby."
Also, we noticed that this issue may also happen if some minutes (didn't checked how many) have passed after the start of the lobby (I think it was around 10m)

Steps to Reproduce

1- Play a game with fewer people
2- once the match is over, ask to someone else join the lobby

Expected behavior

Let anyone join the lobby if the status is "intermission"

Allow users to erase their data

Feature

Users should be able to erase all data related to themselves.

Reasons for Implementing

Even if the data stored by SAU isn't considered PII protected by GDPR, users should still be able request that any related data be erased. And if it is, then it's legally required.

In either case, this should be made as simple and easy as possible.

Ideas & Details

The bot should expose a simple forget-me command that erases the user's settings document without question.
CouchDB will automatically replicate the deletion to any backups, and database compaction will make the data unrecoverable relatively quickly.

Alternatives

The API server could also expose an API for this, though some kind of authentication mechanism would be required in order to prevent malicious actors from deleting other users' data.

Blocked by Discord Verification

The bot is currently blocked by Discord verification. Users see this message:
image

The verification process has been started (and has been since it hit 75 servers), but not yet complete. It must be completed for the bot to be added to any new servers.

This issue will be updated with progress on that. In the meantime, the only available workaround is to use the beta version instead. (See the README) for details on that.)

Changing prefix into a single character making the bot unusable

Bug Report

Hello, i recently added the bot to my server and trying to change the prefix.
I changed the prefix to dollar sign "$", and then the bot isn't picking any command i typed.
I confirmed it by typing "!say-rollcall" and it is indeed the bot already changed the prefix to "$", but the bot just don't reply to any command i issue, like "$ help" etc

Steps to Reproduce

  • Change the prefix to "$"
    !sau config set prefix $
  • Check if bot is using the new prefix
    !sau-rollcall
    Silence Among Us: @User, I'm listening for $ Try using $ help for more information.
  • Try any command with the new prefix, bot won't response
    $ help

Expected Behavior

Bot listens to the new prefix

Room code not cleared on returning to menu.

Bug Report

The bot doesn't remove a lobby's room when the socket receives the MENU state update event.

Steps to Reproduce

  • Start a lobby
  • Start capture
  • (In game) Start a game (to get a room code)
  • (In game) Go back to the menu.

The bot gets the MENU state update event, but doesn't remove the room.

Expected behavior

Going to the menu should reset the room.

Screenshots

image
image

Make a lobby-ended embed

Feature

Lobby stop messages are ugly. They should be prettier.

Reasons for Implementing

Ewww:
image

Ideas & Details

Create a new embed ending a lobby, with the reason it closed, etc.

Alternatives

Alternatively, re-use the lobby info-post with some different options.

Bot keeps trying to update nicknames

Bug Report

While looking at the logs for something else, I noticed that the bot kept trying to update the nickname of a given player.
This implies that the nickname wasn't being updated correctly.

Steps to Reproduce

Unknown at this time.

Expected behavior

The bot should only update the user's nickname if it's different.

Track info-post message across restarts

Feature

Find the previous info-post message after the lobby resumes from a restart, so it can be deleted.

Reasons for Implementing

Every time the bot restarts (for an upgrade, usually), the last info-post it left behind sticks around indefinitely.
It'd be much better if the bot could find that message again, and delete it.

Ideas & Details

Try storing the ID of the message in the database, and see if it can be searched for.

Add voice reports

Feature

Play audio clips into the channel to announce things like the lobby starting.

Reasons for Implementing

There's some information that would be useful to hear:

  • That a new lobby has been started in the channel
  • That the room code has been updated
  • That the lobby is leaving intermission

Ideas & Details

Add announcements into the Lobby class.

Dead players marked as "untracked

Bug Report

When a player dies, they are marked as "untracked". Likely, their color is being deleted for some reason.
I don't know if this happens instantly, or when they are actually killed.

Steps to Reproduce

Die.

Expected behavior

Screenshots

[Bug] Players who are not joined appear twice in the players list

Bug Report

Players who are not joined appear twice in the players list

Steps to Reproduce

  1. Start a game with Among Us Capture connected (!sau start)
  2. All players who are in the Discord voice channel join the lobby (!sau join <name>)
  3. Players who are not joined will appear twice in the list

Expected behavior

All players should be listed once

Screenshots

Players (12)
:stopwatch: @Guto (guto) (Orange)
:stopwatch: @Sabi~ (SabiSus) (Blue)
:stopwatch: @Los (Dr Los) (Cyan)
:stopwatch: Jakt Noob (Red)
:stopwatch: Jakt Noob (Blue)
:stopwatch: @Juice (Dr Rho) (Green)
:stopwatch: MikeHunt (White)
:stopwatch: MikeHunt (White)
:stopwatch: Not Ghandi (Black)
:stopwatch: Not Ghandi (Black)
:stopwatch: Eiei (Lime)
:stopwatch: Eiei (Lime)

In the above sample, Jakt Noob, MikeHunt, Not Ghandi, and Eiei are listed twice

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.