Coder Social home page Coder Social logo

robbmanes / seeding-reward-bot Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 2.0 274 KB

Seeding reward bot for Glow's Battlegrounds Community

Home Page: https://discord.gg/glows

License: GNU Lesser General Public License v3.0

Python 99.03% Dockerfile 0.97%
bot discord hell-let-loose

seeding-reward-bot's Introduction

seeding-reward-bot

Discord Bot for encouraging and rewarding seeding for select games.

Proudly used in:

Setup

This section talks about how to deploy the bot to your Discord server.

Creating the Bot via Discord Developer Portal

The official instructions for creating a Discord Bot are located on the discord.py home page.

This bot requires no Privileged Gateway Intents.

Currently no permissions are required for the bot to operate as only slash commands are used.

seeding-reward-bot's People

Contributors

robbmanes avatar caranci avatar

Stargazers

Sneeze Party avatar  avatar  avatar

Watchers

 avatar  avatar

seeding-reward-bot's Issues

[FEAT] Check if certain users are online and notify in channel

Is your feature request related to a problem? Please describe.
Part of the community application process involves playing with applicants. Currently, users who are also members have no good way to know when applicants are online.

Describe the solution you'd like
Allow for a list of users/applicants to be monitored, and when they get online alert in a dedicated channel.

[FEAT] Gift VIP to other users

Is your feature request related to a problem? Please describe.
Sometimes you want to give VIP to other users acquired through seeding. There should be a command to allow for this.

Describe the solution you'd like
Some command, like /hll gift, etc, should allow you to do this.

[FEAT] Providing testing framework

Is your feature request related to a problem? Please describe.
Currently, testing is non-existent, which leads to bugs being caught in production.

Describe the solution you'd like
Using a pythonic method (pytest, tox, etc), creating testing scaffolding for unit and e2e tests.

[FEAT] Prompt users in discord to use seeder VIP hours

Is your feature request related to a problem? Please describe.
To encourage usage of VIP earned through seeding, provide an optional mechanism to allow for users to be notified at a certain threshold.

Describe the solution you'd like
Some optional/timer based thing - more discussion needed

[FEAT] Implement performance-based VIP at match end

Is your feature request related to a problem? Please describe.
In order to boost retention, high-performing players should be rewarded in a way that should enable them to continue playing on Glow's at peak times.

Describe the solution you'd like
High performing users should be rewarded with free VIP to use after certain thresholds have been met, calculated at match end.

Example VIP reward scenarios could be:

  • Top killer on each team (min. 30 kills)
  • Anyone with more than 70 kills
  • Squad leaders with 40 kills and 1200 support
  • Tank Crews with 1000 CE and 40 kills
  • Commanders with over 4000 support

[FEAT] Output seeder status to a channel

Is your feature request related to a problem? Please describe.
Currently seeding status has to be manually pinged out in discord channels. It would be ideal if messages could be updated regarding the current seeding status.

Describe the solution you'd like
Either a static channel with a message, or repeated/reoccurring (configurable) messages to the channel of the user's choice.

[FEAT] Add Discord Presence Updates for HLL Server Status

Is your feature request related to a problem? Please describe.

  • Currently, GlowBot does not leverage any presence updates that indicate server presence. It would be useful to get a player count, seeding status, etc.

Describe the solution you'd like

  • Status updates to the GlowBot presence, including:
    • Server player count
    • Seeding Status
    • Multi-server support

`update_seeders` fails with boolean ValueError exception when parsing player lists from RCON

Describe the bug
During update_seeders we're having tracebacks due to a boolean somehow being returned as a key of a dict it seems:

Traceback (most recent call last):
  File "/root/.cache/pypoetry/virtualenvs/glowbot-Yr1L9Y8C-py3.11/lib/python3.11/site-packages/discord/ext/tasks/__init__.py", line 198, in _loop
    raise exc
  File "/root/.cache/pypoetry/virtualenvs/glowbot-Yr1L9Y8C-py3.11/lib/python3.11/site-packages/discord/ext/tasks/__init__.py", line 169, in _loop
    await self.coro(*args, **kwargs)
  File "/root/GlowBot/glowbot/tasks.py", line 69, in update_seeders
    player_list = result[rcon_server_url]

This causes incorrect seeding times as the update_seeders method bails.

To Reproduce
Only happens during seeders, and only when certain players are present, although I am not sure what the criteria is.

Expected behavior
Obviously a string for the RCON name should be returned here, never a bool, and I am unsure how we're getting here. Looking into it.

[FEAT] Manage AFK seeders to ensure fair team balance

Is your feature request related to a problem? Please describe.
While seeding, AFK players are acceptable and desired. However, as the server approaches seeding limits, it is possible (and likely) that one team will have significantly more AFK/non-squad members than the other, leading to a lack of balance between the two teams regarding the amount of active players. This leads to one team being very quickly steamrolled due to pure active player count issues causing maps to flip more often and causing player retention issues.

Describe the solution you'd like
Glowbot should be able to manage AFK players interactively by:

  • Ensuring players not in a squad are considered as AFK.
  • Moving non-squad players between teams to balance them.
  • Removing non-squad players from teams (putting them back to the team selection screen).

[FEAT] Prompt users when seeding is ended

Is your feature request related to a problem? Please describe.
When users exceed the 20v20 limit of seeding, it is not immediately clear when a server is seeding still or is considered "live" and seeding rules are removed. This leads to confusion as all players are not uniformly informed of when seeding rules are in effect or not.

Describe the solution you'd like
Glowbot should be able to send a mass message when seeding rules are clearly enabled or not based on active player count.

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.