GithubHelp home page GithubHelp logo

dunguyen / whatshouldweplay-discord Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 1.28 MB

Discord bot that can display the mutually owned games of a bunch of steam users

TypeScript 99.38% Dockerfile 0.27% Shell 0.27% JavaScript 0.09%

whatshouldweplay-discord's Introduction

What Should We Play

Build Status Coverage Status

Ever tried to get your friends to play a game but there's always someone who doesn't have it? Or tired of just playing CS:GO for the 8th night in the row? What Should We Play can provide you inspiration for your next multiplayer session.

The bot is easy to use. Simply type wswp play followed by steam ids and it will return a list of common owned multi-player games on the steam accounts.

Get it here: Invite Link or on top.gg

Usage

All commands must be prefixed with wswp unless DM'ing the bot.

Command name Arguments Notes
help Optional: a command name
play @mentions or steam ids separated by space If no arguments are provided, the bot will look at the people online and try to use their linked accounts
link A steam id This will link your Discord account with the steam id allowing you to use @mention in the play command
unlink A linked gamertag found through the showlinked command This will delete the link between a previously linked command and your Discord account
showlinked Shows all linked gamertags with your Discord account
updatedlinked Will update linked gamertags of your Discord account. This is not necessary to run as it will be done automatically from time to time but may be useful if you just bought games
delete Will delete all linked gamertags of your Discord account.
prune Will delete a number of previous messages written by the bot. Useful for cleaning up a channel. Can only be run by an admin

Privacy

Using the bot's link functionality will save the steam id and associated games and playing times. This information can be deleted through the wswp delete command. Using the bot will save the discord id of the caller and the channel for analytics purposes. By using the bot you agree this information will be saved.

whatshouldweplay-discord's People

Contributors

dependabot[bot] avatar dunguyen avatar snyk-bot avatar

whatshouldweplay-discord's Issues

Sort Options only work in direct messages for a single player, not on server with multiple @s

Sort working in direct message:

Lifebound Today at 2:46 PM
play Playtime
---------------
What Should We Play Bot BOT Today at 2:46 PM
Checking all online members...
Found games for 1 user:
@Lifebound
10 Multi-player games you have in common:
Number of players who own    Game name
1    Elite Dangerous
1    EVE Online
1    Factorio
1    Sid Meier's Civilization® V
1    FINAL FANTASY XIV Online
1    Borderlands 2
1    Grand Theft Auto V
1    Dreadnought
1    Starbound
1    War Thunder

Those results generally track with my Steam library.

Sort not working in a server. Multiple users with linked ID's @'ed

Lifebound Today at 3:00 PM
wswp play @Lifebound @testaccountpleaseignore Playtime
------------------
What Should We Play Bot BOT Today at 3:00 PM
Found games for 2 users:
@Lifebound, @testaccountpleaseignore 
10 Multi-player games you have in common:
Number of players who own    Game name
2    Counter-Strike
2    Counter-Strike: Source
2    Day of Defeat: Source
2    Left 4 Dead 2
2    Portal 2
2    Counter-Strike: Global Offensive
2    Killing Floor
2    Sid Meier's Civilization® IV
2    Sid Meier's Civilization® III Complete
2    Garry's Mod

Factorio should be our commonly shared top title by playtime (a combined 800 hours), followed by Vermintide II (they have 300, I have 35), followed by Crusader Kings 3 (I have 100, he has 30), and only then follyed by anything listed here.

Other sort options are similarly not functional when sorting with multiple people.

Improve output

Right now it's huge list, perhaps provide only 10 random games that everyone owns?

Add prune command to allow bot to delete own messages

wswp prune - will prune all messages written by the bot within last x days
wswp prune all - will prune all messages written by the bot and by users who have written commands
wswp prune smart - will prune messages by the bot and users relating to help, link, unlinked and showlinked commands

Allow DMs to bot

Bot should listen to DMs for help, link, showlinked, unlink commands. Perhaps some of these commands should be DM only...

Sort gameslist with common games first

The bot outputs a randomized list of games.
The expected behavior is that games with a count of 1 should not be displayed.

image

image

In play.ts (33) you specify the default sort = SortOptions.Random
so it's always Random if you do not say anything else.

In userlibrary.ts (198) you have a switchcase with the default option which it will never hit due to the above.

you could set a condition for line 217 to be numberOwned > 1 or something similar.

Add sorting options to play command

Sort after popularity: steam rating/number of reviews
Sort after metacritic
Sort after number of active players
Sort after median hours played

Add analytics

Major questions to answer:
What is the usage? Overall - per command
User retention?

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.