- /tg-admin result post-all [slot:] — posts/updates every TG result for a slot (default 20:00) in one pass, not one at a time - Officers can add a late-arriving player to a poll (locked or not) so they can submit a score instead of hitting "You weren't in this TG": /tg poll add-attendee (single, autocomplete) and /tg-admin poll add-attendees (modal, comma/newline-separated, for adding several at once — Discord modals can't hold select menus, only text inputs) - fix: /tg-admin result post, leaderboard post, and leaderboard post-highlights had no permission check at all — any guild member could invoke them - fix: --register never exited after registering slash commands, so it kept running as a full second bot instance forever. Every docker exec --register run stacked another live process on top of the container's real one, each independently connected to Discord — root cause of /tg poll start posting multiple polls and vote/submit state acting confused (confirmed 3 live processes via docker top, cleaned up) - fix: bot startup poll-restore logic had the same stale-button- resurrection bug already fixed in /tg poll reload, in a sibling code path that got missed — now respects scoreSubmitOpen/buttonsRemoved there too instead of re-deriving from locked/confirmed - rename: officer -> moderator throughout (Config.roles, hasOfficerRole, all "officer only" text, /tg-config roles set/add/remove/reset-* commands). Config.load() auto-migrates a legacy roles.officer key on read so existing deployed config.json files don't silently reset. Slash command names changed — re-register after deploying. - data/updates v0.10.3 changelog for the above
26 lines
1.2 KiB
JSON
26 lines
1.2 KiB
JSON
{
|
|
"id": "002-score-modal-shorthand-input",
|
|
"title": "📝 Submit Score — faster ATK / DEF / Heal input",
|
|
"date": "2026-07-31",
|
|
"intro": "The Attack, Defense, and Healing fields (Submit Score modal, `/tg score set`, and moderator tools) now accept shorthand instead of the full number:",
|
|
"color": "#e8a317",
|
|
"sections": [
|
|
{
|
|
"label": "How it works",
|
|
"emoji": "<:anima_atk:1517702182710018179>",
|
|
"items": [
|
|
{ "text": "Type `500K` or `1.4M` instead of `500000` or `1400000` — case doesn't matter, `500k` works the same as `500K`" },
|
|
{ "text": "Commas work as decimals too — `3,4M` parses the same as `3.4M`" },
|
|
{ "text": "A plain number under 100 is read as millions (`1.4` → 1.4M), 100 and up is read as thousands (`500` → 500K) — so you'll rarely need to type the full number at all" }
|
|
]
|
|
},
|
|
{
|
|
"label": "Heads up",
|
|
"emoji": "⚠️",
|
|
"items": [
|
|
{ "text": "Values that look unrealistically high for a single TG get rejected as a likely typo (e.g. an extra digit, or adding M to a number that was already the full value). If you're sure a value is correct, ping a moderator to raise the limit" }
|
|
]
|
|
}
|
|
],
|
|
"imageUrl": null
|
|
}
|