Releases: theLAZYmd/LAZYbot
Ticketing functions
v.1.4.5 Rewrote handling of guildconfig and server to operate through the DataManager constructor
v.1.4.4 Rewrote handling of guildconfig so that now a variable 'server' is stored as a property of guildconfig for the specific server settings.
v.1.4.3 Fixed bugs with tickets so now it works perfectly with reactions - no more failing to find and react to the right message.
v.1.4.2 Updated !version
and !upversion
commands so bot nickname automatically changes to match the version. Created !setpresence
command.
v.1.4.1 Fixed bug where tickets and dbpositions couldn't co-exist.
v.1.4.0 Rewrote the entirety of the 'Support Manager' bot functions into LAZYbot, suiting the needs of our server. This includes:
• Not insta-deleting ticket messages.
• Reacting to ticket messages with a 💭 sign.
• Posting a reply which lets the user know their message has been read, then deleting it after 5 seconds.
• Updating a single embed in #transaction-log
which lists all the active tickets. Edits it to include new tickets upon .ticket add
and .ticket close
. Matches the database of stored tickets.
• Tickets automatically close on .give x person
if it can find a matching ticket and .ticket close [ticket number]
without extra commands. Give commands and confirmation commands automatically deleted on timer.
Lichess profile integration, emojis, embed-handling, DB positions, April Fools
v.1.3.31 Added medals to profiles, increasing the value of database positions.
v.1.3.30 Made the DB leaderboard more aesthetic. Learnt about and added a fix for awaitMessages
! which awaits the Nadeko message to confirm the transaction, so people can't simply bid despite not having the currency. It means messages like this can't abuse the system. Consolidating positions formally released. Made the switch so subtraction only happens when underbidding.
v.1.3.29 Big boy stuff - Database Positions. People have been curious about them on their profiles. Now users can buy out higher db positions. I can't access Nadeko db currency so LAZYbot effectively creates a 1-way holding of Nadeko currency, which people can use to bid against each other for higher positions. The rules are listed here and the leaderboard is pinned in announcements and available upon request. People can buy higher positions - LAZYbot reacts to the 'Database Position' argument after the .give
message. Then if successful, they are swapped with the person whose position they bought.
v.1.3.28 Added !shadowban
commands. Deletes all their messages instantly, doesn't allow any interaction with bots. Any time they ping someone when shadowbanned, a random 'counterping' will be let off against them somewhere in the server and instantly deleted.
v.1.3.27 Profile is no longer random, but matches the colour of your highest role.
v.1.3.26 Might actually have been a while ago, but added auto-emoji reactions for certain key phrases (er
s). Added !aer
to add new ones, !uer
to update, and !der
to delete them. Stored in guildconfig.json, which is becoming the equivalent of a guild's database page.
v.1.3.25 Added ability to react to Nadeko's live messages pinging a role.
v.1.3.24 Rejigged auto-restarting on glitch.com so that !uptime
displays a true uptime now. !backupstatus
command added so that the longer the uptime, the more the reliable (in-date) the backups, which can be viewed remotely, without having to enter the db.
v.1.3.23 Rejigged the entirety of a profile's layout so that multiple values are now stored in one field. Seemed to be more aesthetic. It was recommended that I add line breaks after each field, I decided against.
v.1.3.22 Added mod verified
and confirmed false
fields to info data on any given user, which adds an emoji to a user's profile info. To discourage deliberately misleading other users.
v.1.3.21 !asl
data now takes blank parameters after requests from users. This required a ridiculously huge amount of work to make work, that it would construct a functioning English sentence after usage with a blank parameter. Not worth doing again.
v.1.3.20 !asl
data now stored after requests from users.
v.1.3.19 Rejigged the embed handling system so that it is not always dependent on a pre-declared embedoutput
object with properties modified (though most of the time it still is, with no apparent ill effects). Updated field handler to better system where fields can be added to objects which are not necessarily embedoutput
. And not necessarily sequentially.
v.1.3.18 Added .iam
and .iamn
as aliases of !lichess
and !remove
. Seemed to fit thematically.
v.1.3.17 Rewrote the entirety of the coding style to a function() based system instead of an if(){} based system on client.on("message", (message) => {}}
This is clearly superior - it has removed having multiple client.on("message"
fields and made everything clearer. No functionality change achieved.
v.1.3.16 Fixed a crisis where bot was recognising guild id and getting member.ids from it. Changed code to declare the variables first then set them on ready, resulting in this rather attractive new startup console log.
v.1.3.15 Added icon for trophies so more visible and better looking. Added region to profiles. My user profile is back to normal.
v.1.3.14 In response to my user profile being corrupted as a result of changing nickname too many times to disguise myself for April Fool's Day, rejigged the owner-only commands to a if(checkowner(user) === false) return;
line, where checkowner()
cycles through ownerids stored in config.json and returns true if user.id matches any of them. Seems to be a better system.
APRIL FOOLS DAY Let loose hal9000.js
! A beautiful project, completed entirely in the space of two hours the night before and some emergency bug fixes in the morning of the project release. Functions of hal9000.js
:
• Kicked user with identical tag to me.
• Changed server icon and LAZYbot profile picture to HAL 9000's eye from 2001.
• Created new role 'Discovery One' and added it to everyone, turning their names red.
• Responded to every bot command (starting with .
or !
with I'm sorry ${user.username} I'm afraid I can't do that.
• Announced that the server was under LAZYbot control unless they find a set of 'easter egg' (keyword to trigger a message reaction).
• Threatened the server by kicking' a user every 10 minutes (posted a leave message with their last message and message count).
• When the easter eggs (certain lines from the movie) were found, (would react with the response phrase)[https://i.imgur.com/LTs5BSk.png]. If 'discovered' for the first time, first time posted, then would post in announcements and edit the 'easter eggs remaining' message. Handled a crisis where it would post in the identically-named #announcements
for the CWC.
• Awarded trophies to those who found the easter eggs and deactivated HAL. A success all round.
v.1.3.13 Added trophies now visible on profiles! New field stored in db.
v.1.3.12 Provisional chess API data now stored as strings with ?
behind them. Easily visible on profile, unbolded. Reworked handling system for fields so now it takes an array and can create a pseudo-table out of them.
v.1.3.11 .fetchmessages
reworked with some difficulty to receive an embed input. Useful for summoning messages. Progress towards storing embed objects.
v.1.3.10 Reworked database since it's centralised with the chess API parsed data now; created serious backing up mechanism so that it writes to files every hour, two hours, and twelve hours. Obviously don't work once the bot is crashed so now I have a permanent record of the last available backup from which I can restore the db.
v.1.3.9 Crash-handling far more stable thanks to the inclusion of Eika's promises and .catch(e)
throughout LAZYbot code. !backupdb
and !restorefrombackup
commands created. Backup dates logged in config.json. Note that db is still server specific - it does not store users based on GuildID since the bot is only operating in the one server. Could lead to instability issues if the bot is scraped for use elsewhere.
v.1.3.8 Reworked database since it's centralised with the chess API parsed data now; created serious backing up mechanism so that it writes to files every hour, two hours, and twelve hours. Obviously don't work once the bot is crashed so now I have a permanent record of the last available backup from which I can restore the db.
v.1.3.8 Added an emoji handler system. Design to grab the lichess
and chess.com
emojis from a second server for use with !profile
and the parsed lichess data, the principle can now be applied to any emoji I want to grab and work with, with particular usage for bypassing the 50 emoji limit - emojis only to be used by the bot can now be stored on the second server.
v.1.3.7 Added an emoji handler system. Design to grab the lichess
and chess.com
emojis from a second server for use with !profile
and the parsed lichess data, the principle can now be applied to any emoji I want to grab and work with, with particular usage for bypassing the 50 emoji limit - emojis only to be used by the bot can now be stored on the second server.
v.1.3.6 Moved message logging to tracker.js to avoid a conflict with tracker.js when someone both writes a message (increasing message count) and tracks new source, crashing fs' ability to write db.json.
v.1.3.5 Better method for parsing variants found - config.json
now contains a collection of variants which the parser can work through in a for
loop. Changed the OnTrackSuccess
message and any other relevant ones to match this new format.
v.1.3.4 Support added for all variants! Copy-pasted parsing function of the lichess API for other variants, lots of repetitive action, will have to find better method for future.
v.1.3.3 Rewrote Eika's code to match the style of mine. Adopted sections which do things better than the way I did - the use of DataManager
fully integrated into LAZYbot code for writing to fs
.
v.1.3.2 Removed deprecated code from Eika import; commands can now be used anywhere and replies are posted to message.channel
, not a specified botchannel.
v.1.31 Version stable. Eika bot functions now supports adding both chess.com and lichess.
v.1.3.0 [E...
Creating LAZYbot - commands, arguments, reactions, reddit links, trivia payouts
LAZYbot v.1 is active in the House Discord Server and hosted on glitch.com.
Changes
d6210d7
v.1.2.0 Huge changes, learned loads! Created profiles feature: returns basic information about each user, plus a customisable 'finger' section at the top. Trophies created which feature on profiles. Eliminated all the stupid booleans and variables lying around my code, functions are not integrated with return
functions so that everything is self-contained and non-conflicting. Added .timely
react message which tells people when testing mode
is going on. Embedobject is now a single object sent through {embed: embedoutput}
rather than assigning each property to an embed property. Added getrandomcolor
function.
28b4eda
v.1.1.21 Added !commands
feature to return bot commands. Entering them manually at the moment, that will have to change. Added testing mode
which denies send messages permissions to the two Bots-In-Use when the beta bot comes online. Added !setusername
feature.
56acc07
v.1.1.20 Added !fetch
command to return message. Bot is in good shape. Useful for admining.
6ac5149
v.1.1.19 Added !uptime
feature. Started working with times, learnt a lot.
a61ff69
v.1.1.18 Fixed bug where messages weren't being counted.
9c76681
v.1.1.17 Various bug fixes, but most importantly now working towards giving ability to edit db non-manually. !updatemessages
command is the first of those.
ee1a095
v.1.1.16 Started serious transition from command if statements to functions! Huge progress in creating .find() functions which return users from variables. Extremely useful.
4a073d0
v.1.1.15 Added new fakeban feature for use when I'm mad at someone. (But like in a pretend way. If I'm actually mad I'll ban them)
6f038db
v.1.1.14 Added all new .botcontingencyplan
which assigns server-wide powers to Nadeko#6687
for use when the self-hosted Nadeko-bot dies. Added .botcontingencyover
to go with.
6f8f053
v.1.1.13 Fixed issue where bot would die and delete message-log database if someone with 0 messages left.
9a99521
v.1.1.12 Perfect message counter. Now triggers when someone leaves the server so we can see how significant their impact on our lives has been. !messages
command is silver++ only now.
95d1c18
v.1.1.11 Added message counter! Fixed embed bug where title would be last thing the title was set to if blank.
51469b0
v.1.1.10 switched over trivia commands and reddit links to new embed builder. Starting creating LAZYbot.v2 using ported Eika code.
08ac093
v.1.1.9 ping command returns ping time. Embed builder discovered (not comfortable switching to rich embeds just yet)
d77dbcd
v.1.1.8 if reddit links are posted with punctuation such as /r/askreddit?
, those links are stripped of punctuation so that the link actually works! Also, various debugging to fix errors. An error with !lazybotprefix
and .nadekoprefix
persists unfortunately.
c8eb536
v.1.1.7 messages posting /r/subreddit
are now detected anywhere in the comment and replied to with the link to the subreddit. Can handle multiple too.
6634622
v.1.1.6 fixed minor bugs with trivia embeds of which there were many. Functionality is barely increased but it is now slightly less annoying.
d4a0670
v.1.1.5 Trivia .give
embed now automatically posts after the Nadeko bot posts the trivia results! Required lots of work in investigating how discord.js posts and logs embeds as part of message events. End of module: far more easy for people to payout trivia now.
cdd106e
v.1.1.4 Trivia .give
commands now posted as an embed.
c9da4b7
v.1.1.3 taking on the server's biggest grievance: trying to find and cross-reference trivia payments. The limitations of the server's Nadeko bot: trivia payments are only given out as a single sum of money, requiring people to pay out 2nd, 3rd, and 4th places. Command auto-posts the list of .give
commands required if the Trivia results box is copied and reposted.
.config.json
now logs Nadeko id
4875087
v.1.1.2 some pretty basic data-handling work. New module simply converts number entered from American Moneyline odds to European decimal odds to accommodate for international members of our Discord server.
d3a0ffa
v.1.1.1 created a new module based on the .notify
or .here
command. Allows people to ping @here
in the variant-specific channel iff they follow the command with a link from accepted domains. Required lots of argument work and learnt about for()
loop.
Retired lazybot2.js
file deleted from github. lazybot.js
run from node on desktop now runs LAZYbetabot used for testing before pushing to glitch.com.
-update
v.1.1.0 **LAZYbot now hosted permanently from glitch.com for free! There appears to be little/no downtime, the interface is easy to use, it has it's own console.log
, built-in error checking, syntax highlighting! Praise be to whomever is running the site.
dbf2f21
v.1.0.6 new config.nadekoprefix
section now created.
b52df56
v.1.0.5 bug with config.json
updating to undefined upon posting any message fixed. lazybot2.js
created - bot rebuilt from ground up to identify bug.
5253ae7
v.1.0.4 added first data-handling commands! .mf
and .tf
take three number arguments and use a formula specific to the House discord server to return a given 'payout' number.
8af079g
v.1.0.3 command handling system replaced to args
array. command
defined. Ability to change prefix and update config.json
as owner-only command added.
3006c13
v.1.0.2 reddit links feature detects r/subreddit
too now and posts the link as an embed: much cleaner.
60965e5
v.1.0.1 New reddit links feature: detects /r/subreddit
message posted in channel and replies with the subreddit link.
dae6694
v.1.0.0 LAZYbot created! Responds to basic single-word commands using the !
prefix; uses message.content.startsWith
property.