1.0.4c-zio6: GroupVerify clan tag for verified players, upper-case rank tags

While GroupVerify has a clan tag set (css_gv_clantag or the web panel), players without a rank
tag get it on the scoreboard if they're verified, and no tag at all if they aren't. Staff keep
their rank tag either way. With no clan tag, or GroupVerify off or missing, nothing changes;
clearing it gives players their own tags back. Tags update as soon as verification or the clan
tag changes (OnVerifiedChanged, OnClanTagChanged). GroupVerifyApi is a compile-only reference
(lib/), optional at runtime.

Also (zio5, not released on its own): the scoreboard spells ranks in capitals (OWNER, S.ADMIN,
ADMIN, ...) and chat prefixes use SimpleAdmin's staff chat rank names ([Mod], [S.Admin], ...).
This commit is contained in:
Astra 2026-10-02 18:44:36 +01:00
parent 3ac24ac3fe
commit b0e67b1ee0
5 changed files with 160 additions and 22 deletions

View file

@ -19,6 +19,7 @@ CounterStrikeSharp 1.0.375 (net10.0) and meant to run alongside CS2-SimpleAdmin.
(the game prints it), in both all and team chat. The old `team_chat` key is gone.
- `css_tags_reload` works from the server console and for `@css/root` admins, and reapplies
scoreboard tags straight away. Hot reload applies tags to players already connected.
- Verification tags from GroupVerify (see below).
- Removed `css_tag_mute`/`css_tag_unmute` and the `@` team-chat admin chat. CS2-SimpleAdmin
already does both, and its catch-all command listener runs first. CSS always runs those before
per-command listeners, so gagged players' messages never reach this plugin.
@ -26,17 +27,18 @@ CounterStrikeSharp 1.0.375 (net10.0) and meant to run alongside CS2-SimpleAdmin.
## Configuration
`addons/counterstrikesharp/configs/plugins/CS2-Tags/tags.json`, written on first load with a tag
for each of our SimpleAdmin rank groups. They use the same abbreviations as SimpleAdmin's staff chat
(O, SA, A, TA, M, TM, H, G): `[M] name: message` in chat, with a white `[ ]`, lime rank and
team-coloured name. The scoreboard spells the rank out: Owner, Sen.Admin, Admin, T.Admin, Mod,
T.Mod, Helper and Guardian (CS2 adds the brackets itself). An example with other kinds of key:
for each of our SimpleAdmin rank groups. The chat prefixes are the same rank tags SimpleAdmin uses in
staff chat (O, S.Admin, Admin, T.Admin, Mod, T.Mod, Helper, Guardian): `[Mod] name: message`,
with a white `[ ]`, lime rank and team-coloured name. The scoreboard shows OWNER, S.ADMIN, ADMIN,
T.ADMIN, MOD, T.MOD, HELPER and GUARDIAN (CS2 adds the brackets itself). An example with other
kinds of key:
```jsonc
{
"tags": {
"76561198000000000": { "prefix": "{Magenta}[Dev]", "nick_color": "", "message_color": "", "scoreboard": "Dev" },
"#rank/owner": { "prefix": "{Default}[{Lime}O{Default}]", "nick_color": "", "message_color": "", "scoreboard": "Owner" },
"#rank/mod": { "prefix": "{Default}[{Lime}M{Default}]", "nick_color": "", "message_color": "", "scoreboard": "Mod" },
"#rank/owner": { "prefix": "{Default}[{Lime}O{Default}]", "nick_color": "", "message_color": "", "scoreboard": "OWNER" },
"#rank/mod": { "prefix": "{Default}[{Lime}Mod{Default}]", "nick_color": "", "message_color": "", "scoreboard": "MOD" },
"@css/vip": { "prefix": "{Gold}[VIP]", "nick_color": "", "message_color": "", "scoreboard": "VIP" },
"everyone": { "prefix": "", "nick_color": "", "message_color": "", "scoreboard": "" }
}
@ -78,6 +80,25 @@ Group membership comes from CS2-SimpleAdmin (`css_addadmin ... -g`, `css_addgrou
`css_reloadadmins`). After changing ranks or `tags.json`, run `css_tags_reload` to reapply
scoreboard tags without waiting for a respawn.
## Verified players' clan tag (GroupVerify)
When GroupVerify (`plugins/GroupVerify`) is installed and has a clan tag set (`css_gv_clantag`,
or the web panel's Verification page), players **without a rank tag** get it in place of their own
Steam group tag:
| | verified | not verified |
|-----------------------------------|----------------|----------------|
| a scoreboard tag from `tags.json` | their rank tag | their rank tag |
| everyone else | the clan tag | no tag at all |
Staff keep their rank tag either way. With no clan tag set, GroupVerify turned off or not
installed, everyone else keeps their own tag, as before; turning the clan tag off puts back the
tag each player had. Tags update as soon as someone's verification or the clan tag changes.
GroupVerify's API is a compile-only reference (`lib/GroupVerifyApi.dll`, a copy of
`plugins/GroupVerify`'s build; GroupVerify installs the real one in `shared/GroupVerifyApi`).
CS2-Tags loads without it.
## Commands
- `css_tags_reload` (`@css/root` or server console) - reload `tags.json` and reapply scoreboard tags.
@ -91,4 +112,4 @@ FORGEJO_TOKEN=... ./release.sh v<ModuleVersion>
`release.sh` rebuilds from the committed source and publishes `CS2-Tags-<tag>.tar.gz`, laid out
like `game/csgo/`, to https://git.zio.sh/cs2/CS2-Tags. The tag must equal `v<ModuleVersion>`
(`v1.0.4c-zio4` now).
(`v1.0.4c-zio6` now).