SpikeyBot Discord Versions Save

SpikeyBot for Discord. Hunger Games simulator, and other helpful commands.

v1.11.1

4 years ago

HG

  • Bug fixes galore.
  • Removed Oxford comma from player lists in events.
  • Forced outcomes support same groups as in/exclude commands.
  • Consumed items can be multiplied by player counts.
  • Most actions are now asynchronous to support very large servers (Not fully done yet, some actions still seem to cause crashes on very large servers).
  • Removing the bot's permission to send HG messages will cause the game to pause.

General

  • Created ModLog and RaidBlock.
  • Commands are properly case-insensitive.
  • Sharding is fully supported properly.
  • Fix websocket reconnecting issues.
  • Scheduled Commands can no longer be recursive, and must be separated by at least 5 seconds. Scheduled commands that repeat, and are within 5 seconds of another, will be cancelled.

Commands

  • ping shows a graph of 24 hour history.
  • resetcharacters and whois added to help with moderating the become command.
  • ban supports banning by ID. User still must be in the server.
  • kick exists now with same usage as ban.

v1.10.1

5 years ago

Since v1.9, the largest change is the massive HG refactor and transition to using worker_threads for simulation. HG also now has the hg react command.

define is now a command. color is now a command. Uno supports NPCs and bots now. The web proxy has a basic rate-limiting implemented.

A ton of other little bug fixes have been added, as well as an overall backend cleanup as usual.

Self-Hosting note: hungryGames.js requires NodeJS to be at least v10.5.0, and needs to be run with --experimental-worker.

v1.9.0

5 years ago

It's been a while since the last release, so a lot has changed, and I may have missed things in this list that were changed a while ago.
There are still bugs that I haven't been able to squash yet. Particularly in cmdScheduling.js where scheduled commands are often invisible to the user, and the website does not always agree with the in discord command. There is also a memory leak somewhere in either music.js or in getAllStats(), I have not been able to find it as of yet.

HG

  • Supports NPCs
  • Can be paused anytime
  • Suggests correct commands if user tried an invalid command
  • Status lists are sorted and have more customization options
  • Soft-mentions are supported (Don't need to actually ping someone in chat for the bot to know who you're talking about)
  • Patrons can change their bar color
  • Games can be renamed

UNO

  • Exists
  • Still in beta
  • Definitely has bugs, I know what they are, I just haven't bothered to fix them.

Music

  • Audio is better and less choppy.
  • Very basic Spotify listen-along is supported, but barely works

Chatbot

  • Does stuff.
  • Disable it with togglechatbot

Other

  • Lots of code cleanup and bugfixes.
  • Patch JS sandboxing security vulnerabilities
    • Now supports Python as well
  • Disabled commands can be completely muted

v1.7.0

5 years ago

Lots of bug fixes, general minor usability improvements, lots of back-end updates, Hungry Games now supports custom Arena and Weapon events.

v1.1.0

6 years ago

I started using versioning!

Commands

Web Page with command help (also available from bot with help command)

Main

General

addme help say createdate joindate pmme pmspikey flip avatar ping

Music

play stop skip queue remove lyrics

Math

add simplify solve evaluate derive graph

Admin

purge ban smite

Hungry Games

Game

create options reset

Players

players exclude include

Teams

swap move rename randomize reset

Events

events debugevents add remove

Time Control

create start end autoplay pause next

Other

help

Hidden

  • js (Run javascript code)
  • timer (Set a timer)(Should be visible)
  • thotpm (Semi-anonymously have the bot DM someone)
  • uptime (Amount of time the bot has been running)
  • version (Current bot version)
  • game (Information about a user's current visible status)
  • hg save (Causes hungry games to save all data manually)
  • hg debug (Dumps current guild's hungry games data into chat)(Should be improved)
  • vi (Alias for play nice try vi)
  • airhorn (Plays airhorn sound)
  • rickroll (Plays Rick Astley in voice channel)
  • kokomo (Alias for play kokomo)
  • updategame (Changes bot's status)
  • reboot (Triggers a graceful shutdown of the entire bot. Assumes the parent process will restart automatically)
  • reload (Gracefully unloads all sub-modules, and re-loads and initializes them)

Events

  • Added to guild
    • Sends a message to the top text channel introducing the bot.
  • User in guild is banned
    • Sends a message saying the user was banned and by whom.
  • Anthony sends a message
    • Add the surprised emoji as a reaction (😮)

Development

  • Unit tests exist
    • Covers all current commands with text-only replies.
    • Tests only send a message, and check for response messages that match expected output.
      1. String exact match
      2. String contains match
      3. String does not contain match
      4. String is not an error
      5. Is an embed
      6. Correct number of messages
    • Does not work if multiple instances of bot are running.
    • Need more thorough and flexible tests.
  • Linting
    • All commits are checked by eslint using Google defaults.
    • Eslint is run with pre-commit git hook.
  • Most code is moved into sub-modules for easier division and reloading.
    • Music-Only mode (needs renaming) only loads minimal features to allow for multiple bots to run without overlap.
    • Music sub-module is expected to run in separate process to improve performance until better solution for music is made.
    • Submodules are passed in via command line arguments.
      • Path relative to cwd should be given.
      • Must be valid for directly being passed into require().
  • Files
    • Most persistent data is saved to disk when bot shuts down.
      • Hungry Games current state is saved and loaded. Resuming in-progress games is attempted, but untested.
        • Events and most messages are also read from file.
      • Timers and reactToAnthony settings are saved.
      • Music queues are not saved, but may continue playing after unloading submodule.