Giter Site home page Giter Site logo

wolfiabot / wolfia Goto Github PK

View Code? Open in Web Editor NEW
46.0 7.0 15.0 6.82 MB

Discord bot for Mafia / Werewolf and similar games

Home Page: https://bot.wolfia.party

License: GNU Affero General Public License v3.0

Java 71.34% HTML 0.65% Shell 0.03% Dockerfile 0.03% JavaScript 2.71% Vue 4.88% CSS 0.47% PLpgSQL 0.11% Groovy 0.20% Kotlin 19.58%
discord discord-bot jda-bot mafia-game werewolf-game werewolves mafia game werewolf java

wolfia's Introduction

Build Status License Uptime Robot ratio (7 days) Discord
SonarCloud

Wolfia

A Discord bot to play Mafia, Werewolf and similar games

Invite the Wolfia bot to your server.

Click the banner above or this link

Commands and supported modes

Wolfia is considered to be beta status. New games, modes and features are coming out regularly.

Please check out https://wolfia.party for a full list of commands and games!

Support, feedback, roadmap and games in the Wolfia Lounge

Join Wolfia Lounge

Selfhosting

No selfhosting support will be provided.

Special mentions

  • Written in Java using the excellent JDA (Java Discord API). They maintain a super helpful crowd in their Discord guild.
  • Several functions and architectural decisions inspired by and/or plain copy pasta'd from Frederikam's music bot FredBoat.
  • Thanks to the folks at Mafia Universe and their Discord guild for helping testing and refining the initial version.
  • Big thanks goes out to JetBrains for supporting the development of Wolfia with free licenses to their products.

wolfia's People

Contributors

dependabot[bot] avatar otterboops avatar sario528 avatar schnapster avatar technicallyafk 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

wolfia's Issues

Global signups

Users will be invited to the Wolfia Lounge for these games.

Notes:

  • Users that are banned from the Wolfia Lounge may not sign up
  • Users must be given time to read the rules before being thrown into a game

SEO basics

Read up on some basics, maybe add some meta tags, to the upcoming dashboard.

Integrate Togglz/Feature flag servlet in Dashboard

The feature flag servlet at /api/togglz looks a bit lonely. Why not try to integrate it into the dashboard? Maybe an iframe can be used?
The user from the user endpoint contains spring roles so it can be shown to users conditionally on them having the required role (OWNER for now).

Handle disconnects from Discord more gracefully

If we detect a disconnect, we could pause the game to avoid processing timed events like day-night-cycles while the players cannot provide input. Upon the shard reconnecting and becoming ready, any ongoing paused games should be informed in the main game channel about the pause and its reason + length for maximum transparency to the players.

Deal with invalid recorded games

There needs to be a way to deal with recorded games that turned out to be invalid.

As part of #78 some recorded games have been discovered that ended more than once. In that case, those with two recorded ending events are the invalid ones, but in other cases other rules might apply, so an automatic rule is hard to come up with. Rather they should be dealt with manually on a case-by-case basis.
Deleting them might be also be too destructive of an operation. I'd rather see them marked as invalid with a flag in the db, but that will also make any statistical queries rather complicated.

Invite links on the dashboard open wrong Discord page

When clicking on invite in the dashboard, it should open a discord page that has the guild preselected (via &guild_id=123..." and the redirect should be back to the dashboard, not the Wolfia Lounge invite. Seems something is off with the InviteEndpoint returning a wrong redirect.

Add users to the baddie guilds

Bots can add users to guilds.
Implement adding users to the baddie guilds to avoid ppl missing the invites.
This requires implementing an oauth2 grant.

Create Public Grafana Team

It is probably a good idea and would be pretty cool to make (some of) the Wolfia Grafana dashboards public. For that we would need to create a new Grafana team with publicly visible graphs, and create new or move the existing dashboards over.

Try out End-2-End tests

Let's try adding some E2E tests.

To be able to get into the parts behind the login we will probably need access to the java code so set up some mocks, so we would need a web ui testing library for Java. Seems like there aren't many around as I've only found https://github.com/selenide/selenide so far.

Let's give it a spin, write a few tests, and evaluate if it's worth it.

Footer

The upcoming dashboard needs a footer.

Take a look at the one from the existing page.

Dynamically query owner ID from Discord

Instead of hardcoding the owner ID, we could fetch it from Discord at runtime (and mock during tests).

This would be handy for contributors running copies of the bot to do and see all the stuff I can usually do.

Landing page

The upcoming dashboard website lack a landing page that showcases the bot.
Nothing too fancy for the start

Legalese

Investigate and implement what kind of legal crap we need on the website - cookie notices, imprint etc

Update Copyright headers

With the recent influx of a bunch of small contributions, the copyright headers should probably be reworded. I don't have plans to relicense so we don't need to collect any CLA agreements, and can have an inclusive Copyright holder formulation such as "The Wolfia Bot contributors".

Review website on mobile devices.

After most of the issues for the dashboard are done, we need to do a thorough pass through all of the subpages and dropdown menus to confirm everything displays correctly.

Tutorial

Interactive tutorial for users completely new to the game.
Possibly tying completion of the tutorial with a level system / unlocking of more complicated game modes.

Document Commands

The upcoming dashboard website should have a part that documents the commands. Use stuff from the existing website to populate it.

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.