Giter Site home page Giter Site logo

pedrofracassi / amongcord Goto Github PK

View Code? Open in Web Editor NEW
137.0 137.0 29.0 972 KB

Among Us Discord Bot | Discord bot for controlling voice channels during Among Us matches

Home Page: https://add.amongcord.xyz/

License: MIT License

JavaScript 99.09% Shell 0.09% Dockerfile 0.82%
among-us amongus bot discord discord-bot docker

amongcord's Introduction

โœŒ Hi, I'm Pedro! ๐Ÿค˜

  • I'm a 21 years old self-taught developer from Salvador, Brazil but living in Sรฃo Paulo.
  • Currently an undergraduate Computer Engineering student at Insper
  • I've developed solutions for companies such as Riot Games and Globo.
  • Check my CV for more details.

Follow me around the interwebs

  • ๐Ÿฆ Twitter @plfracassi_
  • ๐Ÿ’ผ LinkedIn @pedrofracassi
  • ๐ŸŽต TikTok @pedro.fracassi
  • ๐Ÿ“ธ Instagram @pedro.fracassi
  • ๐ŸŽง Last.fm @pedrofracassi
  • ๐Ÿšดโ€โ™‚๏ธ Strava @pedrofracassi
  • ๐ŸŽฎ Discord pedrofracassi#4623

amongcord's People

Contributors

alissonsleal avatar lscobe16 avatar metehus avatar pedrofracassi avatar rorosaurus 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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar

amongcord's Issues

Manage Permissions for moderative commands (Kick, Sync, Newgame)

Well I want to be able to split into different VCs and have a host per VC do the button pressing on the phone/site/kicking so no one else needs to do so or can mess with it and troll due to the fact that currently I cannot tell who is using the Sync functionality.

Lag Unmutting/Undeafening

When ever I have a full game of players, the BOT inevitably lags with the final player to unmute/undeafen. This happens both when I use Discussion, so one living player is unable to hear or talk for about 10-15 more seconds of discussion time or when I switch to Task. Then one dead player stays muted for a bit. I end up having to manually do it so they aren't missing out on the conversation.

Suggestion: use reactions(emojis) to link color in game

I think that it could be more easier for users to just click on the color. Maybe after the sync/newgame(that I think it should be unite), the bot will present all colors options so the players could just click on the emoji and they will join with their color much more easily. It could be less annoying than typing ,join <color>

suggestion: admin links

have 2 links for each game where the admin one is the control dmed to the person who synced or started the game

and the spectator link, which can be public which would have

  1. the status of the game (Lobby, Tasks)
  2. Players remaining (photo and count)
  3. Stats like death counter and time elapsed

Question | How to self host?

The title.

I have read the ReadMe but I still don't understand. All it gives is this error: UnhandledPromiseRejectionWarning: Error [TOKEN_INVALID]: An invalid token was provided.

But I put my bot token in the .env file. What do I do?

(Sorry for being a complete noob at this, I am still learning.)

AmongCord not responding

I keep typing ,help and all other commands such as ,newgame and the bot is not responding. I have tried kicking the bot and reinviting it. thanks for your help, this bot is amazing!

Adjust player colors via the sync webste

I believe we touched on this in another suggestion, but figured it should probably have its own topic.
Since right now there isn't a "host-only" lockout, and even if there was, you can't always rely on people to properly select their color. Even if they do it properly at the start, inevitably they end up swapping to a free color at some point between games.
Also, it is tedious to do a forcejoin for 9 other players, only to have them swap colors around after you have it set up, or mid-session between games.

An easy fix (at least for the "host", I have no idea how easy to develop) would be on the sync page if you could adjust people's colors to match in-game.
The workflow I see would be:

,newgame
,joinall
,sync

And then after going to the sync website:
a little button at the top (maybe a rainbow icon) that when you click it, it puts it in "color fix" mode so rather than toggling between dead/alive when you click players, it instead lets you click a player and select the correct color they are using. After you fix all the colors, you can click the color fix button again and it sets your changes. At this point, there could be a check that there is only one of each color (it won't let you exit the color fix mode until there is only one of each color).

I know there have been a few games where I think everything is color-coded properly, and then I "kill" player blue, and the lobby yells at me, why I muted blue when Yellow is who is dead (because they swapped colors). And it is such a pain to either have to do mental name translations between among us / discord names as well it is annoying to require players to use discord names in among us.

Ideally, it makes the "host" job more streamlined and easy so you can spend more time playing and less time babysitting!

Request - Player reacts

A "join game" command that makes a reply post with 10 react colors and players select their colors with react roles.

Alternatively allow the bot to Manage Emojis and to add all crew graphics

DiscordAPIError: Target user is not connected to voice.

node:20993) UnhandledPromiseRejectionWarning: DiscordAPIError: Target user is not connected to voice.
    at RequestHandler.execute (/home/pedro/amongcord/node_modules/discord.js/src/rest/RequestHandler.js:170:25)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
(node:20993) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 6)

Suggestion: Allowing the host to add people with a specific color

Thank you so much for your hard work and efforts toward this, this is such a great tool that I think could use a tiny tweek.

As a streamer, playing this game with viewers can get a little hectic.
The concept is that I need to be in full control of the bot at all times so trolls/griefers don't run havoc.
I already see there is a suggestion to have a lock-down command so only the hose can control the bot, which is great! In the mean-time, I made a work around so only "I" could send the bot commands, I created a special admin-amongcord channel that only I and the bot have access too (and removed the bot's access to general text channels). Since nobody else can join, nobody else can see it, send it commands, or control it...

However, that removes the availability for them to use the ,join command to add themselves to the bots player list...
I currently can use the ,joinall and that will populate the list, but the colors are "random" (as it says it does).
This means I have to now mentally ignore the colors (while using the phone sync feature) and do a mental what is their name on discord vs what is their name in game, to moderate their alive/dead status (or force them to use discord name as game name)...

My suggestion would be to have a command, something like ,forcejoin <@discordname> <color>
This way I can personally populate the list with the appropriate and correct colors for the names. for examp in my hidden admin channel I could do a command:
,forcejoin @someplayer red
and that would populate the current game that the bot is tracking with that discord name as the color red.
OR an even more fancy version would be something like a ,joinallnocolor command that grabs all the names, and then spits back out the list (like the ,players command does) and then you could just react to each name to set the color.

The react-to-set-color would be much better/easier but I'm sure would take more work. I've noticed in my lobbies people have a habit of changing their color/skin between games, so before starting, you could just do a ,players command, react to whom ever needs the appropriate color change to fix the colors. Otherwise you probably would need a ,changecolor <@username> <new color> command which would assign a player a new color (and if their new color was previously used, the bot would unassign that color from whom ever had it last, and would echo a warning about a player not having a color, and that they need to be assigned a new color.

I see this type of feature being great for everyone (not just a streamer) as it makes the setup easier since usually the host will be more skilled with using the bot, rather then explaining to people who may be new, how to join themselves into the game. This makes it much easier to get the list populated with correct discord to game color relationships and lets you play the game more and mess around setting the bot up less!

Again thank you so much for this, and your efforts as it makes this game much more manageable. Looking forward to a streamdeck plugin you mention may come in the future as that would be killer too!!!! Stay Safe and be well!

Status event

Create a bot status for display the {prefix}help

issue with sync

When I open the amongcord sync mobile app or the website, it says that "sync.amongcord.xyz took too long to respond."
What can I do to solve this?

Inviled Token

C:\Users\ืืจื ื•ืŸ ื”ื›ื”ืŸ\Desktop\amongcord\node_modules\discord.js\src\client\Client.js:205
    if (!token || typeof token !== 'string') throw new Error('TOKEN_INVALID');
                                                   ^

Error [TOKEN_INVALID]: An invalid token was provided.
    at Client.login (C:\Users\ืืจื ื•ืŸ ื”ื›ื”ืŸ\Desktop\amongcord\node_modules\discord.js\src\client\Client.js:205:52)
    at Object.<anonymous> (C:\Users\ืืจื ื•ืŸ ื”ื›ื”ืŸ\Desktop\amongcord\src\index.js:232:8)
    at Module._compile (node:internal/modules/cjs/loader:1083:30)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1112:10)
    at Module.load (node:internal/modules/cjs/loader:948:32)
    at Function.Module._load (node:internal/modules/cjs/loader:789:14)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:72:12)
    at node:internal/main/run_main_module:17:47 {
  [Symbol(code)]: 'TOKEN_INVALID'
}

i'm getting it Every Time That i Trying To Start the bot

Allow certain commands to not require a game

You can argue that it may defeat the purpose of the bot, but sometimes I don't want to go through the hassle of setting up everything the bot needs to work. Sometimes I just want to jump into a game and be able to mute and unmute a voice channel at will.

Using deafen so ghosts can talk during round.

Following up from Reddit.

My suggestion is using deafen instead of mute during tasks to allow ghosts to communicate.

You mentioned that one of your concerns is that you would require more API calls if you used deafen instead of muting, but in the worst case isn't it just 10 calls? Meeting called, x dead: 10-x API calls to undeafen, x calls to mute. Ten total API calls in any given meeting. I am not very familiar with the discord API rate limits, so I admit there may be issues I am not aware of.

The benefit of the way it is currently structured is that each time a player is killed, you have less calls overall. Although, in the worst case you would still have 10 API calls, i.e. discussion called, 0 dead, 10 setMute(false) calls.

One alternative is that you just deafen alive players during tasks and don't worry about muting dead players during meetings. In that case you have the same number of calls. That does require people to self police during discussions, so probably not the best solution.

Option to move dead players to a new channel

I don't know how common this is, but on our server we use a different voice channel for ghosts. It would be nice if the functionality of moving dead players to a different channel was built-in to this bot.

Weird bug

Since a few days I need to manually type the code into the box (sync.amongcord.xyz). Normally I could click connect instantly. I dont know if this intended.

Tie Multiple Crew to Single Discord Account

Hey there!

For some games, people in the same house may play together from a single Discord account. Then, we can only add one and can only count them as dead if all of them there are dead.

Can this bot just do that? Allow multiple colors to be tied to an account, but the account is muted like crew unless all colors on the account are marked as dead?

Dark mode for mobile app/ ,sync webpage

Although i can turn it black by force dark mode in chrome flags. But it would be nice if there is a button to toggle or pick color for the background and make pitch black (#000000). Since, it can reduce battery usage, so i can always keep my Amoled display on without concern about my battery. Maybe several color option also make it fun and cool look webpage.
Screenshot_20200922-134135_Chrome

Suggestions: Add Role ForceJoin To Allow Spectators

I play on a large server that often has many people joining as a spectator to the game and to listen to all the discussion. Would it be possible, now that you have ,forcejoin and ,joinall to have the ,joinall specifically allow for a Role Name. This way spectators aren't lumped into the ,joinall command.

Send a sync code in the ",newgame' response

When starting a game, I always have to type the ",sync' command. I think it would be much faster if the "Started a new game in <channel>!" message contained a sync code to make things faster. This could also be toggleable (",autosync true" or something like that).

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.