It’s been a while since my last update, and a good deal of changes were made since then. More profile customisation options, improved moderation and a better chat experience are some of what was worked on in the last month or so.
Custom user icons
A new addition just for subscribers, adding a custom user icon can make for a more personalised chatting experience. These icons replace the heart given to supporters, and can be a static image or an animated gif for that added zazz.
Chat flood protection
Spam is constantly an issue with any public chat. Controlling this is a tricky matter, though a deterrent is flood protection. Sending too many messages in quick succession will cause a flood error, preventing you from sending any more messages. This will end after a few seconds of inactivity.
Additional moderator commands and adjustments
I’ve added two new moderator commands, kick and clear.
Kicking a user essentially just boots them from the room, though they are able to immediately return. It’s uses are mainly as a warning against further misbehaving, removing inactive users or controlling the user list after applying room restrictions (registered user requirements, passwords).
Clearing the chat feed removes all messages for all users. This is useful should a user post something they shouldn’t have, such as personal information about themselves or others.
More defined mod permissions
Additionally, I’ve made moderation permissions slightly more clear. There was always two kinds of moderators, a permanent moderator and an assigned moderator. The former are assigned by the room owner themselves, and can only be unassigned by the room owner. Permanent moderators can also assign other users as moderators. An assigned moderator however, has no ability to assign other moderators and can be unassigned by any other permanent mod.
Previously, differentiation between the two was not possible. I’ve added different icons for the two, with a permanent moderator given a full star, where as an assigned moderator is given a half star.
Ban confirmation and duration
When banning a user via the drop-down menu, you will now see a confirmation pop-up. This serves two purposes, to make sure you wish to ban the person and didn’t hit the button accidentally, and to allow you to choose a duration for the ban. You can set a duration from 1–24 hours, the maximum value being the default.
Banning users after they leave the room
Nefarious users who leave the room before a mod has the chance to ban them is a frustrating thing, which is part of the reason I’ve added a means to do so after they are no longer in the room. All room joins are stored for a maximum duration of 1 hour, allowing them to be banned before you have a chance to hit the button.
To give messages a little more emotion, I’ve added the ability to add simple text formatting. By surrounding your text in formatting codes, you can embolden or italicise part of your message. For example, *bold*and _italics_.
Re-enable private message conversations
Previously, when a user you were in a private conversation with leaves, the conversation will be closed. If they return, a new conversation must be made. I’ve improved this so a returning user’s conversation will be re-opened. Currently this only works for registered users, and does not reload the conversation if you reload the page.
Tab completion for chat commands
Most moderation chat commands require a username or nickname to work, though this would require carefully typing or copy-pasting the name. Instead you can now use TAB to autocomplete a name, much the same as @mentioning a user.
For example, having a room with a user called foo, if you type /ban f then press tab, it will autocomplete the closest match, which in this case should be foo.
Improved share on mobiles
Some mobile browsers have introduced a share API that integrates with the operating system’s share pop-over. I’ve changed the functionality of the share button to open this menu, if possible, instead of simply copy the room’s URL. This makes it possible to share directly to other apps.