"Yeah, some help would be good don't you think?
We'll work from here. Right now this is a placeholder for me to start putting stuff.
FAQ
What is RazBot?
RazBot was a 'quick' project that came out of (1) my need to have something practical to practice node.js, and (2) BowlBot not being
able to report more than a single group on a Discord server. At some point, I passed ten Discord servers because I like playing in
scheduled leagues. So, it reports matches, and I keep getting it to do things that seem like good ideas.
How do I get RazBot? I can't seem to find it in the normal Discord bot marketplace.
Talk to razmus, either via FUMBBL PM, or on Discord (you can DM after finding him on the main FUMBBL discord.) Right now, until I work
out several more technical elements, the setup is still highly manual. In brief though, you'll need to be an admin on the Discord
server on which you want to add the bot, and razmus will give you a link. You'll use the '!identify' command in the channel to which
you'll want Razbot to report... and the bot will give you back a number. Give that number, and your FUMBBL group number(s) to razmus,
and he get get you all setup.
Okay, got that working. What else can the bot do?
Well, '!help' is the starting place. I'm adding more stuff to the bot as I have time. But here's a list of the main commands:
- !help - gives the website, and a quick list of commands.
- !ping - Returns 'Pong!' if the server is functioning. If you get more than one response, I've got the development server up and I'm working on something.
- !version - Lets you confirm the version number and instances running. No, the version numbers are not consistently updated. Really all they'll tell you is if the numbers went up... something changed. From here you can also confirm if I've got the dev box running because it'll respond too.
- !uptime - Lets you know how long the bot server has been up, and how long it's been continuously talking to Discord.
- !identify - Spits back the unique Discord channel number.
- !serverlist - Lists the servers to which RazBot is currently joined.
- !policy - Just a quick statement of the RazBot privacy policy.
- !coin - Flips a coin. The coin in question is an Orc Gold piece I bought some years ago.
- !groups - Lists all the FUMBBL groups to which the bot is listening.
- !tournaments [FUMBBL groupNumber] - Gotta tell it which group you want the tournaments for, but will list the tournaments it knows about for that group. Originally it'd list all the tournaments, but ran into a message size constraint on Discord.
- !magic8ball [YourQuestion] - Gives a magic8ball type response. Talk to razmus if you can think of other amusing responses for it to give.
- !h2h [list of space separated values] - RazBot will pick one of those items, randomly. If it sees that the first option is a request for help, it will explain the function and go one to say the function was added to help out BobBorc from the SWL server.
- !flashbot - A function just to replace more bots... in this case it gives the same output flashbot would give you... just does it faster.
- !expensive -- Generates the Expensive Mistakes chart based on parameters.
- no parameters - Reminds you to put in some parameters as [base] [startgold] [stepgold] [tiers] [#minor] [#major]
- [base] [startgold] [stepgold] [tiers] [#minor] [#major] - And note that there is no comma between values, just a space. Gives you a chart.
- !time [parameters] - [June 2022]Switched to using the FUMBBL server for time, and Christer added a function to lookup the timezone for an individual coach and return their current time as well.[/June 2022] World time turns out to be fairly complicated, and I don't want to try to write this myself... not yet anyway.
- no parameter, or help - spits out simple help
- c [coach's_name] - Gives you the timezone and current time for that coach, assuming they've correctly registered their TZ on the site.
- list - Lists the nicknames already configured. Talk to razmus if there are others which should be added.
- [nickname] - Returns the current time in that timezone. If it's slow, know that the bot is waiting on the API. :-(
- !spec [parameters] - Reports the current status of games RazBot is watching.
- No parameter, or nothing razbot recognizes - will return ALL the games Razbot is watching.
- help - one line help about the spec command.
- list - list the game filters currently defined. Ask razmus about adding additional filters.
- list [filtername] - list the FUMBBL groups included in that game filter.
- [filtername] - returns just the games currently being played for the groups in that filterlist.
You mentioned production and development boxes. Where are they?
Production is an AWS EC2 t3.nano in their Stockholm data center. It's tiny, but it doesn't really do much. It's been suggested that I could run the
whole thing as lambda functions, and I'm not convinced. I think running it as a container is more likely. At this point, however, I have a completely
paid-for contract on a reserved EC2 instance until November 2023. (And in case anyone wonders, it works out to just slightly more than $1 US/month...
much less than a cheap cup of coffee.)
Development is on the little education box hosted by Goorm IDE in South Korea that I originally started using as part of a
Udemy Web Development bootcamp I was taking a couple years ago. That course is the
reason I learned some node.js and is why I started making the RazBot. I'll probably eventually move it all over to an AWS Cloud9 development box, but I
haven't done so yet. Since Goorm offers me a free development environment, I don't have a strong incentive to switch.
Do you accept donations to keep the bot running?
Naw. Razbot gives me excuses... excuses not to play, excuses to have a server in AWS, excuses to poke at stuff, excuses to learn new stuff. And because I'm cheap/frugal, it's a cheap bot/server to run. If you wanna donate, send it over to FUMBBL instead. I consume services from it, and it costs a lot more to run on a routine basis than Razbot.
Can I fork your code?
I beg your pardon!?! Seriously though, I'm not exactly confident in displaying my code publically. It's kind of a mess. While I have it all in a git
repository, it's private. At least for now, I'm keeping it under wraps.