Releases: 12beesinatrenchcoat/slabbot
rewrite plus
I don't feel like calling this "v1.0.0" because we're not there yet, but despite the minor version increment it's a big release because it's a complete rewrite — everything's now mostly written from scratch (some bits copied from iCrawl's yuudachi, hence the license change).
slabbot now also uses discord.js v14 alone (previously v12 + Akairo Framework). Something something futureproof-er.
Mostly has feature parity. Some stuff has been renamed, some stuff has been removed.
me
is now/slabbot profile
— conflicting with built-in slash command.about
has been moved to/slabbot about
.decide
now uses a bajillion options.- the
shutdown
command is gone. - the
help
command is gone. - the commit hash in
about
is gone. - my name is now "12beesinatrenchcoat" instead of "AndyThePie".
And probably some other stuff I'm forgetting.
So yeah, maybe I'll actually come back to maintaining this. Maybe I'll just let slabbot remain dormant again for another year. Who knows.
…oh yeah, happy belated 2nd birthday, slabbot. You've changed my life. Thanks.
Full Changelog: https://github.com/12beesinatrenchcoat/slabbot/commits/v0.5.0-indev
v0.4.2.2-indev
- fixed an issue relating to caching of osu! profiles (see #47).
- fixed
about
not showing the correct version.
just an exp update
fixed and modified the exp function a bit (things.functions.js
). that's it.
(rereleased because on wrong commit)
probably breaking
trying a different way of formatting this changelog, instead of just "additions" and "removals". so...
changes and improvements to me
for a quick overview, here's a picture.
⚠️ no more "compact ver." and "full ver.", and a small redesign of the embed.- this is quite broken on mobile, but... uhh... sorry? (i might add a user setting to have one or the other, we'll see.)
- merged "most used command" and "commands run".
- added nickname ("also known as
nickname
")
- you can now specify a user to see the stats of!
sl me [user]
- slabbot handles new users a bit better. (#23)
- if a new user ran
sl me
, the bot would return nothing. now it returns a little welcome message and a mostly blank embed. it's better!
- if a new user ran
- i expect to do quite a bit more to this in the next update... watch this space!
unorganized minor stuff
- consistency in
help
- all fields now use square brackets. roll
embeds are now colored based on how high or low the roll was (compared to the maximum / minimum).- cooldown messages delete themselves once the cooldown expires. (#33)
- the
osu
command now caches results for 180 seconds. (#43) admin.js
has been renamed toshutdown.js
, and moved into anadmin
folder.- admin commands get their own category, and are not shown in the help menu.
- removed "stack overflow" from "powered by" section in
about
.- it's not really "powered by" stack overflow, and i also don't use it as much anymore... thanks mdn <3
- added
--exact-match
to the end ofgit describe
, which should stopabout
from displayingv#.#-[commit hash]
as its version. - the level up message is now orange.
- cooldowns have been modified a bit, global default cooldown has been raised to 3000ms (up from 2000ms), but cooldowns for some other commands have been reduced.
help
uses the default cooldown (down from 10000ms).- the cooldown for
me
has been lowered to 15000ms (down from 30000ms). - the rate limit for
osu
has been raised to 4/30000ms (up from 3/30000ms).
code stuff
⚠️ now using xo code style. at least, with a few exceptions.- strings still use double quotes (unless you have to use them in the string).
- comments don't have to be capitalized (too professional!)
- todo comments don't return warnings, we have a github bot for that.
- no radix needed in
randInt()
(i only use decimal numbers...)
- slabbot can now properly start when an osu! api token is missing, and when it cannot connect to mongodb. (#36)
- when an osu! api token is missing from
config.json
, theosu
command will not be loaded. - when slabbot cannot connect to mongodb (on startup), the exp system (and the
me
command) will not be loaded.- command usage will also not be counted, and its related fields in
about
will be excluded.
- command usage will also not be counted, and its related fields in
- when an osu! api token is missing from
- functions in
things.functions.js
are no longer named- felt a tad redundant when they were called by their export names...
- new method of handling command errors (
things.commandError.js
).CommandError
is now a class.- takes in an object with properties
embedTitle
,embedDescription
, andmessageText
. reply()
method takes in aMessage
and placeholders (replace text inembedDescription
, used indespacito.js
).- consistent color and footer for all errors, should be a bit better.
- replaces
returnError
function from v0.4.0.
- takes in an object with properties
- i should probably name this something else, or just consolidate a single "things.js".
- renamed
commandinfo.json
tocommandInfo.json
, and moved to root directory.- and also using
require.main.require
, because it's cleaner. although it's a bit broken in vscode. please see microsoft/TypeScript#19117.
- and also using
console.log()
messages are a whole lot more colorful.- more READMEs.
- more code cleanup and comments, as always.
- updated dependencies.
- added renovate bot to help deal with them!
for a version bump that adds practically nothing on the user-end, this is probably the longest changelog so far. finishing up this update and typing these notes while in an airport, waiting for a flight that was delayed by nearly 7 hours was… an experience.
next update is proper game stuff, and a bunch of things that feel very long overdue. see ya then!
whoops
🔥 a hotfix because i forgot about two files!
>_< fixes
sl decide
is now in the "utilities" category. (as opposed to the "utilties" category)sl dice
has help info now.
that's it. that's literally it.
(if you want to see v0.4.0's changelog... click this...)
pro gamer move
“I'll probably end up abandoning this again for another month.”
- Me, 6 months ago
27 May 2021 / commit 065ef89
this version focused on some game stuff, i guess. it's been so long that i don't really even remember this... (>_<)
+ additions
- get
osu
! user stats!- you can get a user's osu! stats with this command.
- defaults to the user's default mode.
- specific modes can also be specified (
osu!taiko
,osu!catch
,osu!mania
, or justosu!
.)
- specific modes can also be specified (
- w00t p00t :3
- and just in case, no, i am not affiliated with the osu!team.
- roll some
dice
!- because... why not?
- fancier
about
command.- links now exist, the description's been changed, and there's also a version thing.
- current uptime is also fancier.
- links now exist, the description's been changed, and there's also a version thing.
- slabbot has a website?
- well, not really. it's just the
README
for now. watch this space, though...
- well, not really. it's just the
decide
command can now also be invoked with the aliaschoose
.shutdown
command posts a message before it shuts down.
~ other changes
- xp gain has been nerfed, and level thresholds are higher.
- levels may have been lost as well, the exp/level calculation has also slightly changed.
// const expNeededForLevel = level => 1024*(level**1.3)+(level/35)**4.5; const expNeededForLevel = level => 1024 * (level ** 1.3) + (256 *((level-1) / 8) ** 1.8);
- exp per message is also lower.
- 2.4exp at 6000ms, increasing to 9exp at 30000ms.
- previously 5exp at 5000ms, increasing to 25exp at 60000ms.
- see also: desmos graphs for the old exp/message graph and the new one.
- a new
things.functions.js
for functions that do things that i'll probably use in multiple commands.createExpBar
has been moved here (fromsl me
command).- so has
expNeededForLevel
.
- so has
fNum
formats numbers (adds commas and decimals).sToDhms
converts seconds to other units (used insl about
)getLongMonth
gets month name from aDate
.returnError
standardizes error embeds, I guess.- not yet used everywhere else... yet.
i think...? that's all. it's been fun to write these and get back into code and all the sort. it's summer as well... oh boy...
next update will focus on refactors and code cleanups and documentation and all the sort. so... see you then! (^^)/
await, mongoose!
The biggest update since... well, the last update.
+ additions
slabbot me
is now a thing!- A basic exp system. Some exp per message.
- You get exp for each message, with a cooldown of 5 seconds.
- The amount of exp you get depends on the last time you sent a message.
- look at this graph
- Also tracking command usage. Stats are cool.
- Oh yeah, and now a MongoDB instance is required. Defaults to connecting to
mongodb://localhost:27017
.
- Oh yeah, and now a MongoDB instance is required. Defaults to connecting to
- A basic exp system. Some exp per message.
slabbot about
is better.- Displays some stats (commands used, top commands)
- Uses an embed now. Hopefully looks a bit nicer.
slabbot shutdown
does what it says on the tin.- This is an owner only command - only runs if the user's ID is in
config.json
.
- This is an owner only command - only runs if the user's ID is in
~ other changes
- The cooldown message now displays cooldowns in seconds. (3642ms → 3.64s)
- Some commands now have much longer cooldowns:
me
has a rate limit of 2 uses / 30sabout
has a rate limit of 1 use / 30s
- More general code cleanup. Mostly removed some
console.log()
stuff.
It's been a long, long time since the last update, but... I think I'm starting to get the hang of some of this stuff. So... that's cool!
As always, never expect any updates, because I'll probably end up abandoning this again for another month. Or something like that.
Thank you for following development of slabbot
!
spaghetti edition
introducing spaghetti edition: now with 5000% more spaghetti!
A lot of very minor back-end things. And also a new command. And more Despacito.
...I should have named this one "wait, it's all despacito?" huh...
+ additions +
- Added 6 new videos to
this is so sad play despacito
.- I'd list them, but I'm very lazy.
Turns out that some videos don't haveI've fixed it by adding an override property for one thumbnail. If there's nomaxresdefault.jpg
thumbnails (and so, Kiryu Coco - Despacito has no thumbnail). I'll fix it it later.maxresdefault.jpg
, I'll use thehqdefault.jpg
instead.
- More errors! Attempting to send a NSFW video in a non-NSFW channel will return you an error, and so will choosing an out-of-bounds value.
- Added
decide
command.FeedGive slabbot some things, separated by commas, and they'll choose a random one! - slabbot now has the prefix
sl
. (You can still useslabbot
and mentions.) - More
README.md
s! and also hopefully slightly better.
- removals -
- Removed dependencies
sqlite
andsequelize
(and probably some more). I plan to usemongoose
. - Removed
slabbot-banner.png
, replaced withslabbot-icon.png
(in the README). It looked bad.
~ other changes ~
- Fixed a typo + reworded a thing in
commandinfo.json
(used in thehelp
command.)
> code stuff <
- Now utilizing
eslint
. Because my code is bad. - Turns out that you can set default values for properties (e.g.
constructor(a, b = true, c = 5);
). That's used once indespacito.js
.
Anyways, that's a second number increment. I feel like it's deserved. New command and some other things. Next release should hopefully add MongoDB or some other things.
wait, it's all despacito?
I'll just... copy the changelog here...
+ additions +
- added "Despacitouhou" by Princess Sylvysprit to
this is so sad play despacito
. - added "Hentaicito" by DaymanIsOurSavior to
this is so sad play despacito
.- added
nsfw
property to videos in the array.
- added
- added cooldowns. default is 2000ms per command,
this is so sad play despacito
has a cooldown of 8000ms / 2 uses. - added the ability to choose a specific video from the
this is so sad play despacito
-list.- basically, typing a number after the command will return video with that position in the list. something like that.
~ other changes ~
- changed the
about
text by like one word
> code stuff <
- refactored
despacito.js
a bit- holy moly that was disgusting to look at. hopefully this verson will be slightly less bad.
that's... it. yadda yadda yadda past and future release changes will be found in the actual CHANGELOG.
this is so sad play despacito
what's that? a wild slabbot appears!
another new discord bot. originally going to be a fork of despacitoBot; but I disliked the old codebase too much. so here's this. built from the ground up using the Akairo framework for discord.js.
the bot is far from done, but... i wanted to get something done. so... here's something.
+ additions +
- the basic commands - ping / about.
- ping can be executed using
slabbot ping
- about can be executed using
slabbot about
- ping can be executed using
- this is so sad play despacito. stolen from despacitoBot, and then rewritten. gives a random despacito-related video using an embed.
- executed using
this is so sad play despacito
(case insenstive) orslabbot despacito
.
- executed using
yeah, that's about it.
things to do:
- create
slabbot help
- in case people need to know commands. - categorize commands, maybe
- create some owner-related commands for rebooting / shutdown / reloading / etc
- a website or something
- sql stuff to track command usage
this (and all future updates) can also be found in the CHANGELOG.