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.83 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 discord-guild wolfia-lounge palermo games hacktoberfest

wolfia's Issues

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.

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.

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.

SEO basics

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

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.

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".

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.

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.

Footer

The upcoming dashboard needs a footer.

Take a look at the one from the existing page.

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).

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

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.

Document Commands

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

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.

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.

Landing page

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

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.