LikeLakers2 / mettaton

A serious bot for once. This is the code that runs Mettaton on /r/Undertale's Discord server. Revel in my shitty coding.
MIT License
0 stars 2 forks source link

Management Outline #1

Open Xemiru opened 7 years ago

Xemiru commented 7 years ago

enhancement

Implementation detail of character creation, management and review process.

The goal of this system is to ensure that the administrators and reviewers have the most power and the least hassle while going through reviews. This means limiting the user's ability to provide unnecessary content and providing features that make it easier to mark reviews. The system does not assume that people are limited to a single character.

Submission Template

In its most basic form, a character concept is mostly comprised of a name, and a description. However, servers may want certain other specifics that detail more about a character, e.g. reaction to specific situations, favorite objects or abilities in a world where such abilities are common. That said, the rule set below tailors to these conditions.

Review Process

Based on the populus of the server the bot is operating in, the review process may either be a nightmare or a breeze. We'll be aiming to make it the latter

A review channel should be designated for the bot to operate in, responding to events in relevance to the review process. We should limit ourselves to one channel, but this may not prove favorable for managers to operate the bot for reviews in one location, as channel spam will very easily prevent simultaneous activity. The bot should be able to respond to bot commands correctly in a private-messaging channel, possibly by first requesting that the user name the server they'd like to perform management tasks in.

Command responses, especially in the review channel, should be succinct. If the response is long (like a character sheet), pagination should be an option unless the command was executed in private messaging.

The character may need to have notes, in case of oddities that the reviewers catch-on to. Notes should be optionally made viewable or non-viewable by the submission owner. Viewable notes will act as responses from the review team on how to make the submission better for approval, while restricted notes can act as communication between the review/management team.

Once a character is approved, it should be recorded. The bot will then be allowed to pull the character from its database and permit it for use within the main roleplaying channels. If a character is denied, the review team is expected to give a denial reason to send the character and reason back to the submission owner.

LikeLakers2 commented 7 years ago

Submission template - Currently, the bot enforces five fields when registering a character: Name, Age, Gender, Basic Appearance, and Brief Bio. The bot was originally meant for for /r/Undertale's roleplay, and it will stay that way for now, however I may change this later to a per-server configuration with those as the defaults.

Currently, users are always capable of adding custom fields to their sheet as many use it for little details that would be awkward to explain within Brief Bio or Basic Appearance -- so far, many users of the /r/Undertale roleplay have not abused this feature, and even if they did, I leave it up to the moderators to warn them. However, adding the ability to allow custom fields may come down the line, though I don't foresee it really helping when a user can easily fake new fields within Brief Bio.


Review channel - The bot sends all character registrations from rp!register to a channel specified in it's config; the way it works currently, the channel can vary between servers. In it's config the bot is also capable of adding a per-server prepend, useful for mentioning a group such as @GMs such that users may get notifications when a new character is submitted.


Command responses - The bot responds with a success or failure in regards to commands that do writing to a character; When viewing a character, the bot will attempt to post it all as one message; failing that, it sees if it can send it as two messages, split between the properties list and the actual info -- if either of those alone fail due to being over 2000 characters, it sends the output as a .txt file -- not desirable in any situation, however generally if it must be sent as a file, it may be in need of some trimming, with the excess info going on a google doc.

When registering a character, the character info is sent to the specified channel for review by a moderator team. The bot checks if the resulting message (which can include a prepend for mentioning groups, as well as the content itself) will be over Discord's character limit, and if so, it opts to upload the character info as a .txt document, using plain text.

The bot attempts to block any links when outputting a character's info, so as not to generate big embeds -- screen space is limited even on desktop discord in compact view, so we want to avoid giant messages wherever possible.


Ability to take notes - Can be done by setting properties on a character -- properties are basically fields that are not editable by regular users, instead being restricted to those the bot considers to be admins.

I may include a private notes feature in the future, however for now I am opting to let the moderators use their own methods (discord's own chat, or notepad, for example), as a way of storing private notes.