NidToolbox: Chat Tags module 1.1.4

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



1586-default-violet-2-png



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.
  • Easy configuration via in-game commands.
  • Configuration can be viewed at any time, with looks example as well as tag membership.
  • 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

Creates new player chat tag.

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


priority and visibilty are optional. When not defined, priority 1 and visible will be assumed


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


/tag-show

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

Assigns tag to the player.

/tag-grant string tagName, string targetPlayer

Code
/tag-grant tagName, targetPlayer


/tag-revoke

Remove tag from the player.

/tag-revoke string tagName, string targetPlayer

Code
/tag-revoke tagName, targetPlayer


/tag-color

Assigns color to the selected tag.

/tag-color string tagName, string color

Code
/tag-color tagName, color


/tag-format

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

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-size

Sets size for the selected tag.

/tag-size string tagName, int size

Code
/tag-size tagName, 22


/tag-font

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-SizeAll

Unifies size for all the chat tags

/tag-SizeAll int size

Code
/tag-SizeAll 22


/tag-ForceCap

Forces exact capitalisation in tag name.

/tag-ForceCap string tagName, string newName

Code
/tag-ForceCap vips, VIPs


/tag-del

Removes specified player chat tag.

/tag-del string tagName

Code
/tag-del tagName


/tag-rename

Renames existing tag.

/tag-rename string tagName, string newName

Code
/tag-rename tagName, newName


/tag-pri

Assigns priority to the selected tag.

/tag-pri int priority

Code
/tag-pri priority


/tag-config

Configures targeted chat tag.

/tag-config string tagName, string color, bool visible, bool showInTooltip, int sizeInTooltip, int priority


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


/tag-tooltip

Configures tooltip properties of the selected chat tag.

/tag-tooltip string tagName, bool showInTooltip, int sizeInTooltip


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


/tag-list

Lists all created tags.

/tag-list

Code
/tag-list


/tag-reload

Reload settings from config files.

/tag-reload

Code
/tag-reload
  • Version 1.1.4

    Version 1.1.4

    • Added option to show roles in user tooltips.
    • Added ShowInTooltip and SizeInTooltip chat tag properties. Added /tag-tooltip command, allowing for new chat tag properties modification. Added new chat tag properties to /tag-config command.
    • Added /tag-tooltip command, allowing for new chat tag properties modification.
    • Added new chat tag properties to /tag-config command.
    • Compatibility patch with EM Framework 3.1.0
    • Requires EM Framework 3.1.0
  • Version 1.1.3

    Version 1.1.3

    • Mistake upload
  • Version 1.1.2

    Version 1.1.2

    • Fixed alignment of example tag in tag-show command.
    • Fixed tag-rename allowing to rename tags made based on EM Groups.
    • Migrated project to Net5.
    • Compatibility patch with Eco version 9.4
  • Version 1.0.3

    Version 1.0.3:

    • Steam or SlgID have to match before tag is assigned to a person, name and internal server id have been dropped to make sure that when the old config files are moved to a new, fresh server, tags are assigned properly. Thx for @Dennis for the request to address this.

    • Bogus users (ones that either: have malformed Steam or Slg ids, don't have any id or their ids are empty), are reported now to the server owner and not considered for tags assignments.

    • Some code optimisations here and there.

    • Newest release of em-framework is included in this package, to make sure users who are on very outdated frameworks update their dlls.

  • Version 1.0.2

    Version 1.0.2:

    • Updates module to new game version - Eco 9.3. Fixes crash in new game version when using the module.
    • Adds new formatting options for the chat tag: Brackets type, bracket color, size, italic, underline, underline color.
    • Bracket type can be a pair of any selected characters: i.e. [ ], < >, * *, - - and so on
    • Default formatting of the tag will now capitalise all segments of the name, if it contains more than one word (for example My Supporters, instead of My supporters).
    • Added possibility to force specific capitalisation in the name, like VIPs, SuPpOrT etc.
    • Adds new commands:
      • tag-format - Sets formatting options for the selected tag. Allowing to set all tag formatting properties via one command.
      • tag-brackets - Sets bracket type and bracket color for selected tag.
      • tag-size - Sets size for the selected tag.
      • tag-font - Changes the format properties of the font: underline, italic, underline color.
      • tag-SizeAll - Unifies size of all the tags to selected size.
      • tag-ForceCap - Makes it possible to force specific capitalisation of the selected tag. For example: VIPs instead of Vips, SUppOrT instead of Support and so on.
  • Version 1.0.1

    Version 1.0.1

    • Fixes issue with users being rejected on log on, due null reference exception.
  • Version 1.0.0

    Version 1.0.0


    • Initial release.