NidToolbox: Chat Tags module 1.7.6

Due to human (non-bot) spam the first contribution of a user has to be reviewed and activated manually, all further contributions do not require this.
As long as a user does not have at least one reviewed and activated contribution, the user is unable to edit his profile, set a avatar, title picture or a signature.

Contains Server Chat Tags module for NidToolbox Light server tool-set. Chat Tags appear next to the name of players.

1573-nidtoolbox-design01-nid-64-png

Chat Tags

for NidToolbox Light

requries nid-core module available here





NEW - if you would like to have your server logo appear in the notifications area in messages that come from NidToolbox. Please join my Discord https://discord.nidaren.net/ and post them in #server-logos channel.


Create and assign chat tags to the players on your server, to clearly mark their roles and membership, whether they are an [Admin] or a [Janitor] :)


NidToolbox's Discord Channel -> here


Chat Tags module allows:

  • Easy creating, granting, revoking and displaying chat tags like: [Admin], [Donor], [Server Owner]
  • Can be visible in tooltips!
  • Fully customizable! Any colour of choice can be defined. Module accepts either any hex colour code or provided 16 defined named colours options for ease of use.
  • Formatting options include: Brackets type, bracket color, size, italic, underline, underline color.
  • Possible to force custom capitalisation of the name.
  • Priorities can be assigned to different tags, which should appear first, 0 (zero) being the highest priority.
  • Full integration with Elixir Framework permission Groups! See below for examples.
  • Tags can have shorter forms, like [DR], for [Donor] etc. Configurable via TextInUI and TooltipText properties, or tag-Tooltip and tag-UI commands.
  • Easy configuration via in-game commands.
  • Configuration can be viewed at any time, with looks example as well as tag membership.
  • Assigned tags can now also be hidden on specific users.
  • Module can be reloaded at any time, without the need of a server restart.


(click to enlarge)



Requirements:

As any module of NidToolbox set, it requires nid-core version 1.0.3+ module, available in the main forum thread: here


How to install:

  1. Unpack .zip archive
  2. Copy nid-chattags.dll to Mods\NidToolbox\Modules


Settings files:


Config files are located at:

  1. Configs\Mods\NidToolbox\ChatTags.json - contains module settings.


Configuration:



Chat tags are created and configured via usage of in game commands. While there is a settings file available as well, I strongly discourage from editing it by hand.



There are currently two tag types:

  • Manual - this is simplest chat tag, can be created, deleted, renamed, formatted at any time and assigned freely.
  • EMGroup - this chat tag is created automatically, based on existing Elixir Framework permission groups and protected from deletion or renaming. Its colour, priority and visibility can be assigned freely, however membership is read directly form the EM Groups created by server admins. See below for some example integrations with EM permission groups. Some of the system tags as Admin and Default are also defined as this type of tag.
  • (upcoming) Demographic - it is an upcoming chat tag type, that will be assigned automatically to the members of the specified demographic. Its visibility, priority and colour will also be freely editable.


Adding new tag is as simple as issuing /tag-add and specifying the details. Only tag name and color are required, priority of 1 and visibility enabled are assumed if not given by the issuer.


Tags can be assigned by issuing /tag-grant and stating a player name. After that tag will be always added to the targeted user.


How to view Tag's settings - to check tag's settings at glance, simply issue /tag-show tagName. It will trigger a window, showing all the settings for the tag, including members, colors, type and look example.


Priority - normally tags are shown in the alphabetical order. If you would like to alter this behaviour, for example to signify some important roles like Donors and server supporters, you can assign priority to the tag in question. Tags with higher priority will show first. Highest priority available is 0 (zero). Tags with same priority will respect alphabetical order.

Use /tag-pri tagName, priority to change tag's priority.


Visibility - all created tags start as visible, however if you need to hide tag for some reason, you don't need to delete it. Just hide it's visibility! Visibilty can be change via /tag-config command.


Formatting:


Bracket types, bracket colors, italic, underline and underline colors and size can all be applied as per the user liking. See below for details (in commands section).


Let's say you have created a player tag - My Supporters but instead of using the default [ ] brackets, you prefer < > type. Use /tag-brackets to alter them.


You can also force specific capitalisation of the tag. This is especially useful for tags that are created for the existing EM Groups. By default, EM Group tags will inherit the group name and will be capitalised. Normally this is fine, but let's say you have created Vips EM Group, the chat tag will look as follows: [Vips], you can force [VIPs] capitalisation by using /tag-ForceCap.



Integration with EM Framework:


This module integrates fully and seamlessly with EM Framework.

If you would like to take things on your server to the next level, make sure you utilise EM Framework's permissions system!


Elixir Framework Groups and Permissions module, allows fine and granular control over which player can do what.


Let's say you want your Donors to be able to teleport home and use the teleport command, but you DON'T want the same rights for just the regular users.


Or You want a Moderator group who can ban and mute players but restrict them from spawning items or flying. This is where EM Framework Groups and Permissions come in.


By using /grp-add you can create special permission groups for your Moderators, Donors, Support etc with specifically assigned commands only they can use.


NidToolbox Chat Tags will automatically recognise your EM Groups, their members and will create and assign tags to them all by itself. You can of course still alter colors, visibilty and priority of such tags.


The best thing is - you don't have to download anything, em-framework is included with nid-core download and required by it, so you already have it :)


If you are interested, be sure to check EM Framework documentation page, here.



Available commands:


/help Tags


Displays information about all commands contained within this module.


/tag-add 1711-rcon-png

Creates new player chat tag.

/tag-add string tagName, string color, int priority, bool showInChat


priority and visibilty in chat are optional. When not defined, priority 1 and visibility in chat will be assumed


Code
/tag-add tagName, scolor, priority, true/false


/tag-show 1712-non-rcon-png

Displays tag's easily viewable tag configuration in a separate window, including information on who is the tag currently assigned to.

/tag-show string tagName

Code
/tag-show tagName


/tag-grant 1711-rcon-png

Assigns tag to the player.

/tag-grant string tagName, string targetPlayer

Code
/tag-grant tagName, targetPlayer


/tag-revoke 1711-rcon-png

Remove tag from the player.

/tag-revoke string tagName, string targetPlayer

Code
/tag-revoke tagName, targetPlayer


/tag-color 1711-rcon-png

Assigns color to the selected tag.

/tag-color string tagName, string color

Code
/tag-color tagName, color


/tag-format 1711-rcon-png

Sets formatting options for the selected tag. Use this if you want to set everything by one command. If you want to target only some properties, see commands below.

/tag-format string tagName, string bracketsType, string bracketsColor, int size, bool italic, bool underline, string underlineColor

Code
/tag-format tagName, [], #FF00FF, 22, false, true, #FFFFFF


/tag-brackets 1711-rcon-png

Sets bracket type and bracket color for selected tag. You can ommit bracketsColor, if you do, default value of #FDE698 will be used.

/tag-brackets string tagName, string bracketsType, string (optional) bracketsColor

Code
/tag-brackets tagName, <>, #FDE698


/tag-font 1711-rcon-png

Changes the format properties of the font: underline, italic, underline color. Underline color is optional, when omitted, default value of #FDE698 will be used.

/tag-font string tagName, bool italic, bool underline, string underlineColor

Code
/tag-font tagName, false, true, #FDE698


/tag-ForceCap 1711-rcon-png

Forces exact capitalisation in tag name.

/tag-ForceCap string tagName, string newName

Code
/tag-ForceCap vips, VIPs


/tag-hideOnUser 1711-rcon-png

Hides chat tag on specified user.

/tag-hideOnUser string tagName, User targetUser

Code
/tag-hideOnUser tagName, targetUser


/tag-unHideOnUser 1711-rcon-png

Shows previously hidden chat tag on specified user.

/tag-unhideOnUser string tagName, User targetUser

Code
/tag-unhideOnUser tagName, targetUser


/tag-del 1711-rcon-png

Removes specified player chat tag.

/tag-del string tagName

Code
/tag-del tagName


/tag-rename 1711-rcon-png

Renames existing tag.

/tag-rename string tagName, string newName

Code
/tag-rename tagName, newName


/tag-pri 1711-rcon-png

Assigns priority to the selected tag.

/tag-pri int priority

Code
/tag-pri priority


/tag-config 1711-rcon-png

Configures targeted chat tag.

/tag-config string tagName, string tagName, string color, bool showInChat, bool showInUserTooltip, bool showInObjectives, bool showInUI, int sizeInTooltip, int priority

Code
/tag-config tagName, color, true/false, true/flase, true/flase, true/flase, 24, priority



/tag-tooltip 1711-rcon-png

Configures user tooltip properties of the selected chat tag.

/tag-tooltip string tagName, bool showInTooltip, int sizeInTooltip, bool thickenFontTooltip, string textInTooltip = ""


Code
/tag-tooltip tagName, true/false, 24, true, ""


/tag-list 1711-rcon-png

Lists all created tags.

/tag-list

Code
/tag-list


/tag-reload 1711-rcon-png

Reload settings from config files.

/tag-reload

Code
/tag-reload


/tag-SetOnDutyTag 1711-rcon-png

Sets default OnDuty tag. This tag can be triggered by /onduty and /offduty self-commands.

OnDuty tag is a special tag that can be quickly shown and hidden by users to which it has been assigned.

/tag-SetOnDutyTag string tagName


Code
/tag-SetOnDutyTag tagName


/onDuty 1712-non-rcon-png

Displays the selected onDuty tag on issuing user.

OnDuty tag is a special tag that can be quickly shown and hidden by users to which it has been assigned.

/onDuty


Code
/onDuty


/offDuty 1712-non-rcon-png

Hides the selected onDuty tag on issuing user.

OnDuty tag is a special tag that can be quickly shown and hidden by users to which it has been assigned.

/offDuty


Code
/offDuty


/tag-Space 1711-rcon-png

Adds or removes space in chat between tag and name.

/tag-Space bool addSpaceInChat, bool addSpaceInUI

Code
/tag-Space true, true


/tag-UI 1711-rcon-png

Configures UI properties of the selected chat tag. textInUI is an optional value.

/tag-Space string tagName, bool showInChat, bool showInUI, bool showInObjectives, string textInUI

Code
/tag-UI someTag, true, true, true, ""

Images

  • Version 1.7.6

    Update to timers and changes made in nid-core 1.7.10.

    Updates to code for the upcoming Eco 10.

  • Version 1.7.5

    Tag property Visible changed to ShowInChat, your config files will be updated automatically. This was a legacy name from before tags have specific visibility properties.

    Owner tooltip on WorldObjects will now get updates when tags of the user change. This addresses the problem in store tooltip not reacting for its owner tags change and in all other places where owner tooltip is involved.

    Updated legacy tag-config command so it now accepts all visibility properties of the tag: showInChat, showInUserTooltip, showInUI, showInObjectives.

    Updated tag-UI command, so showing/hiding tag in exact places in the UI can be accssed easier via commands.

  • Version 1.7.4

    * Fixed issue with member string search. Issue reported by deathracer1989 Thanks!

  • Version 1.7.3

    Fixed issue of HidenForUsers not being respected in certain situations. Thanks to muzs1 for reporting.

  • Version 1.7.2

    * Updated project to net7.

  • Version 1.7.1

    * Added option to disable Admin tag visibility globally. When set to true, admin tag settings in config are ignored and tag is hidden.


    * Added try/catch block on Updating user strings to catch concurrent dictionary errors reported by Dennis.

  • Version 1.7.0

    Compatibility with Eco 9.7

  • Version 1.6.2

    Tags can now be shown in User Interface elements, like laws, laws descriptions, elections, titles, demographics and skill tooltips.

    Added tag-UI command to control tags visibility in the UI.

    Added possibility to replace tag text in the UI with custom text.

    Modified tag-Space command to affect UI as well.

    Added TooltipAffectedBy to RolesTip, to react to MarkedUpName changes.

    Changed tag properties: ShowInTooltip to ShowInUserTooltip and SizeInTooltip to SizeInUserTooltip. Your configs will be updated automatically and all the settings preserved.

    Updated ChatTags documentation on both mod.io and play.eco.

  • Version 1.6.1

    Changed commands to be RCON aware.

  • Version 1.6.0

    * Updated module to Eco version 9.6.0


    * Added markup service in line with changes to the vanilla code.


    * Fixes bug, which caused UI tags to be invisible on Linux.


    * REQUIRES: EM-Framework 3.3.0-beta2 or higher.