Git Product home page Git Product logo

robonene's Introduction

GhostNeneRobo

A Project Sekai Tiering Discord Bot that stores user and tiering data and visualizes them in the form of graphs and heatmaps

Visualization overview

All visualization is based from a central database that tracks two things

  • All users that have linked with the bot
  • The current top 120 people on the leaderboard

With that information many different visualizations can be made

Statistics

/statistics shows the current statistics for a specific user or current tier on the leaderboard (T100).

This show multiple useful values. The most useful are the event points and games played in the last hour, to see a user's current pace. Additionally this command shows the last 6 games played, the timestamp of when they played, and the energy usage of the game.

image

Graph

Use

/graph cutoff(tier, by_tier=None, event=None)

/graph user(user, event=None)

Description

/graph shows the event point graph for a specific user or current tier on the leaderboard (T100).

This is a simple line graph of your event points over time, it's useful to see your usual pace over a period of time. This graph uses quickchart.io to generate the graph.

image

Heatmap

Use

/heatmap cutoff(tier, offset=None, event=None, pallete=None, annotategames=None, bypoints=None)

/heatmap user(user, offset=None, event=None, pallete=None, annotategames=None, bypoints=None)

Description

/heatmap shows the games played or points gained for every hour of an event. This uses plotly to generate the graph.

additionally it can be configured in the settings with a different color palette and to show numbers on the heatmap (example with default color palette and numbers shown).

image

Histogram

Use

/hist cutoff(tier, binsize=None, min=None, max=None, event=None, hourly=None, games=None)

/hist user(user, binsize=None, min=None, max=None, event=None, hourly=None, games=None)

Description

/hist shows the histogram of your event points for each individual game. This uses plotly to generate the graph.

This can also be configured to show event points per hour, and games played per hour.

image

Bar

Use

/bar cutoff(tier, hour, event=None)

/bar user(tier, hour, event=None)

Description

/bar shows a bar graph of every game played for a given hour, there are buttons at the bottom to move between hours. This uses plotly to generate the graph.

image

Leaderboard

Use

/leaderboard(rank=None)

Description

/leaderboard shows the current top 120 players separated into 6 pages

This also shows their change in current tier, their change in event points over the last hour Additionally, an alternative view shows the score per game over the last hour, their total games played, and the games they played in the last hour.

image image

Miscellaneous Commands

Aside from visualization GhostNeneRobo has other functions useful for tiering and for fun

Gacha

/gacha automatically generates an image with a 10 roll on the in game gacha. Due to copyright I cannot give an example image here.

Room

/rm is a function that renames a channel for a specific room code and amount of open players

image

Bonk

/bonk allows you to "bonk" another user to go to sleep. This also stored the amount of times a single user has been bonked

image

Pray

/pray is a command that lets you pray to a specific character in Project Sekai, this command gives luck varying from -1 to 80

image

Stock

/stock is a command with 5 subcommands These subcommands are

  • get
  • buy
  • sell
  • list
  • portfolio
Get

/stock get(symbol)

This command gets a specific stock by it's symbol, this works both for custom-named stock tickers and normal ones

image

Buy

/stock buy(symbol, amount)

This command buys a given amount of a specific stock ticker of a given amount, this uses luck gained from the command /pray to buy stock

image

Sell

/stock sell(symbol, amount)

This command sells a given amount of a stock (given that the user has enough) and gives luck from the current price

image

List

/stock list()

This command lists all tickers for custom stocks

Portfolio

This command lists the users current stock portfolio and their current prices

image

Installation

Rename config.sample.json to config.json

Fill token: "" with your own discord bot token, obtainable from Discord Developer Portal

Make sure that you have enabled applications.commands as a scope when generating an invite URL

npm init to install all of the required dependencies

npm run load to load all the slash commands

node index.js to run the bot

Note

Due to the sensitive nature of the game API, the script to pull data from the game is not included in this code.

Contact

If you have any issues with the bot or would like to contribute, please contact Ai0 on Discord.

Credits

Code

  • Potor10#3237
  • Ai0
  • Ult#0001
  • Redside#1337
  • Yuu#6883
  • Maid

robonene's People

Contributors

ai0796 avatar potor10 avatar maidd avatar

Forkers

elliot-gh

robonene's Issues

Add a /hug command

Similar to other bots, add a /hug command to ghostnene. This command suggested by a user in discord without a github account

image

Restrict API calls during downtime

During Maintenance and Event end some API calls are still able to be sent despite the server rejecting the requests and possibly rejecting them. Put in safeguards to turn stop requests or use internal data during these events.

Commands that use this include

  • /rank
  • /leaderboard
  • /statistics
  • /heatmap
  • /hist
  • /spy
  • /bar

Show FCs and APs for a user

Similar to a different bot (Unibot). Create a command that shows all FC and AP progress for a given user and the hardest difficulty FCed/APed for both or a table of difficulties for both

/lottery

Could you add a lottery command to gamble our pray currency?

Add different colors to graphs

the commands graph, hist, and bar which generate graphs are locked to a specific color palette, with graph also not supporting dark mode.

Add the palette parameter to each of these commands that create custom colors such as with the command heatmap

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.