DATA Discord Bot Changelog

DATA is the Argo Discord Server’s custom bot, capable of numerous tasks, big and small. This topic will consolidate updates on any major features changed/added over time. I will also do my best to keep this first post updated with an accurate command list.

/argotime
Get the current time in Argo shift language
/whenis
Look up the time translation for a specific Argo shift (alpha, beta, gamma, delta, epsilon, zeta)
/memquote
Grabs a random memorable quote from this thread.
/ping
Easy check if bot's alive
/roll
Roll a dice; 1d100 by default if no parameters are specified.
/rollkd
Roll a karmic dice; more likely to get a high roll after a bad luck streak.

/scene

Used for creating discord channels expressly for RPing.
Full instructions can be found in the #lobby-ooc channel.

/trekfact
Random Trek fact
/version
Current bot version number
/vobmenu
What's on sale at Vanilla or Bust today
1 Like

Hello, all. We’ve pushed a couple new discord/discourse integrations, as you’re probably noticing.

  1. All News posts and Mission Briefs posts will now automatically be cross-posted to the “News” channel in Discord. (I’ve noticed that it has a short delay, but it does work. Unfortunately it doesn’t seem to care about edits, so we may look into a different solution for this in the future.)

  2. We have reorganized Discord channels a little bit because we have a new Discord RP lobby feature! This new DATA feature will let people create new channels exclusively for RPing on the fly, which can be private or public or even simply lurkers-welcome. You’ll also have the option for your logs to be automatically crossposted to the forums when you’re done! Please take a look at #lobby-ooc for an explanation of how it works.

As an example of how the lobby can be utilized for Discord RP, we’ll be using it with this year’s Holiday Exchange RP, which is now accepting signups. More details can be found on this post here: https://argo.ex-astris.net/t/argo-holiday-exchange-2020/575

4 Likes

As of v1.1.53

(some of these changes were implemented before .53, but I’m consolidating the announcements of them in this post.)

Lots of hotfixes. :(

Discord.js updated to v13 a while back and that broke a lot of little things that I’ve been slowly discovering and trying to fix as we go. This includes a transcript saving issue that should hopefully be addressed in this version. It’s recommended that if you want to save a log, do so before you close it just to make sure it’s captured in case anything goes wrong, until we’ve proven that it’s working properly.

Added @channelparty feature.

We currently have two systems that create Discord channels for private conversations (tickets and RP scene channels). This command will let you add GROUPS of players to both types of channels, by selecting their role, e.g. !channelparty @ds13 crew or !channelparty @medical. This feature can only be used in tickets and scene channels.

Added ability to leave a scene channel.

The RP lobby emojis have changed to :door: and :eyes:. With this change comes the ability to actually leave a scene that you previously joined, either by invitation, or because it was public and you clicked in to participate. Leaving a channel can be done by un-reacting the :door: emoji from the RP lobby on the scene you want to leave. (You may need to react and then un-react, if you didn’t have a door react to begin with.)

2 Likes

As of v1.1.56

RP Lobby transcript saving/crossposting should be fixed (99.8% confidence rating.)

2 Likes

As of v1.1.7

Event crossposting compatible with Discord events

Previously our News posts and Event posts were being crossposted to Discord via a forum plugin. I have added additional features to DATA and subsequently removed events from the plugin’s care (although news will still be handled the old way).

The new crossposting method integrates better with Discord’s newish “Guild Events” feature by automatically taking information from the calendar/event widgets made in a forum post and creating a Discord event with it. Editing event information on the forum will also update the Discord event accordingly, so things should always be up to date and in sync.

DATA will also post DM notifications for anyone who clicks the “Interested” button on a Discord event. By default, DATA will message interested parties 20 minutes before an event is scheduled to begin.

Event notification preferences

A new !preferences command is available; it is preferred that you use it in #bot-spam. This will prompt DATA to direct message you with a menu of preference options. Use the correct react on the message to get the settings you want and make sure to pin the message, or DATA will not know that this is the correct set of preferences to use.

If no preferences are set, DATA will default to the 20m notification before setting.

Feeling relatively confident in regards to the stability of this update, but as always, if you find bugs, let me know via Discord in #suggestions.

2 Likes

As of v1.1.72

!preferences and event notifications are fairly well tested and seem to be working just fine, so yay.

Also implemented change so that event invitations (when they are posted to the #news channel) will not expire until after the event is over.

2 Likes

As of v1.1.8

!scene adduser fixed

Added default duration, so when bot tries to crosspost to Discord events without an end time, it defaults to a 2 hr duration instead, rather than just failing to post anything.

Disabled !channelparty, because role support was added to adduser, both in tickets and scenes, so we don’t need it anymore.

As of version 1.2.3

New roles for (primarily) DATA notification purposes!

I overhauled DM notifications so that they are based on server roles, rather than the preferences message from before. This means all DMs from DATA are now OPT-IN, make sure to check the Discord #roles channel to select what you want!

  • notifs new thread alert: DATA will send you a DM when a new thread is created anywhere on the server!

  • Event Reminder-based roles:

    • notifs eventrem 20m: Send a notifcation 20 minutes before the event start time
    • notifs eventrem 2hrs: Send a notification 2 hours before the event start time
    • notifs eventrem 1d: Send a notification 24 hours before the event start time
    • notifs eventrem always: Send me the above-selected notifications, even if I did not click (or forgot to click) that I'm Interested in the event.

Please note that if you select to always receive event notifications, you must still select the time intervals that you want to receive them at; selecting ‘always’ by itself will not do anything!

In conjunction with this change to how notifications work, the !preferences command has been removed. (You can unpin that message in your DM with argonaut now. :stuck_out_tongue: )

Discord → Forum RP Lobby crossposting fixes/improvements.

Added a feature in RP Lobby transcript saving/crossposting where, if you use a particular syntax while RPing in Discord, it will be converted with a unique visual appearance (CSS class) applied. This was primarily implemented for GMing purposes.

Use a blockquote character followed by the newly-added custom emoji, gm to trigger this, i.e. > :gm: (Note that it will not look special in Discord (apart from regular Discord visuals), only on crossposting/saving to the forums.)

Also apparently I did have code to grab attachments/images and add it to the crossposted log originally, and it just broke at some point. Fixed now. :roll_eyes:

Boring technical notes

  • discord.js upgrade to v14.3.0. had to migrate/adjust code as necessary to be compatible with new version. I did a faiiirly thorough check of all features to make sure things were working, but if you notice anything wonky, please report it.
  • fixed an issue with event crossposting not having the right timezone. I don’t think anyone noticed this bug but me, so it’s here in the boring section.
3 Likes

As of v1.2.54

Been a while since I’ve made any changes that people could interact with, so this was kind of a practice commit to re-acquaint myself with my own code. I did take the opportunity to do a couple minor things.

Made a small changed to how adding lurkers works on RP scenes for RP Lobby, to prevent people from accidentally muting themselves, so this should ideally no longer happen.

Removed !vobvote

Implemented VOB Experimental Menu instead. Each day the VOB menu is generated, there is a 33% chance it will also grab 1 flavor off of the experimental menu.

(Yes, I’m aware that Trek Facts is also accessible. Please only contribute actual Trek facts.)

2 Likes

As of v1.2.6

MAJOR UPDATE!!

Please note that as of this version, DATA is no longer accepting commands in the previous !command format, as we have formally switched over to supporting slash commands. Most all commands have made the transition, including all the commands used for controlling scenes. The auto-complete should help make things a bit easier when it comes to targeting people to invite.

The one command that underwent a few alterations is !alpha, !beta … etc. /argotime still works, but the others have been bundled into a single /whenis command, which takes the shift you’re interested in as a parameter input instead.

Also in this version is two new commands:

/roll - Using DATA’s /roll will, by default, roll a 1d100, since that’s the most commonly used format for us (presumably because it matches STO’s roll.) You can also specify number of dice and sides with the respective inputs, or you can select the q option and then give the regular RPG syntax (i.e. 2d20 to roll two 20-sided dice.)

/rollkd - Roll karmic dice instead of a regular fair-sided dice. This dice is generated based on the history of most recent rolls and will produce unfairly-sided dice that favors the player. (i.e. if everyone’s dice rolls have been terrible, you are more likely to roll something high by using this.) This resets after a high roll is achieved. (I don’t know if anyone plans to use this; I just thought it’d be fun to put in. :crazy_face: )

2 Likes