Add Void difficulty and publish changelogs
Some checks failed
Deploy MineGeo to Dokploy / deploy (push) Failing after 3m40s

This commit is contained in:
2026-10-20 14:05:01 +05:00
parent 3ba398a838
commit de0e891b62
37 changed files with 995 additions and 65 deletions

23
docs/changelogs.md Normal file
View File

@@ -0,0 +1,23 @@
# Release changelogs
`/changelogs` reads messages from MineGeo's `___news___` channel (`1558048830770122772`).
Only release posts from webhook ID `1561021045211660401` appear. The bot only reads
message history using GET; this feature never sends, edits, or deletes Discord messages.
The webhook URL and its secret token are not needed or stored by the reader.
Use the existing server-only `DISCORD_BOT_TOKEN` with View Channel and Read Message
History in news. Enable Message Content Intent in Discord Developer Portal → Bot;
otherwise Discord redacts the webhook messages' text. Optional `DISCORD_NEWS_CHANNEL_ID` and `DISCORD_RELEASE_WEBHOOK_ID`
override the defaults. Never prefix these variables with `NEXT_PUBLIC_`.
The feed accepts `## MineGeo 1.0.4 Alpha`, `Beta`, `Production`, and four-part
`Bug fix` headings. It removes role mentions, leading separators, and the trailing
`PLAY THE MINEGEO AT:` footer. React safely renders paragraphs, bullet lists, bold,
inline code, and HTTP(S) links; raw HTML cannot execute.
Discord history is cached for 60 seconds. The latest page refreshes every 65 seconds
while visible. Each page scans 100 Discord messages; Older posts continues through
history even when a page contains only tournament announcements. Edited and deleted
release posts are reflected after revalidation. If credentials or history permissions
are unavailable, the page displays a temporary-unavailability state, without exposing
Discord errors or credentials. There is no database migration for changelogs.

View File

@@ -2,7 +2,7 @@
Signed-in users with active accounts can create a tournament at `/tournaments` and share its `/tournaments/{id}` page. The organizer chooses a published map with at least five distinct panorama locations, a difficulty, a scheduled start, a player cap from 2 to 32, and 1 to 10 tournament rounds. Every tournament round contains exactly five mini-rounds.
The organizer selects either a shared time budget across the five mini-rounds (the default), or a separate timer for each mini-round. Shared budgets accept 15–3000 seconds; per-mini-round timers accept 15–600 seconds. Both use 15-second increments. The shared clock starts when the first mini-round becomes playable, excludes initial loading, and keeps running through later loading and result screens. When it expires, all unplayed mini-rounds close with zero points. Difficulty settings are saved with the tournament, so later preset changes do not alter a running competition.
The organizer selects either a shared time budget across the five mini-rounds (the default), or a separate timer for each mini-round. Shared budgets accept 15–3000 seconds; per-mini-round timers accept 15–600 seconds. Both use 15-second increments. Void always uses a separate 10-second timer per mini-round. The shared clock starts when the first mini-round becomes playable, excludes initial loading, and keeps running through later loading and result screens. When it expires, all unplayed mini-rounds close with zero points. Difficulty settings are saved with the tournament, so later preset changes do not alter a running competition.
The schedule form displays the application server's timezone. Its local date/time input is interpreted in that zone, even when the organizer's browser uses another zone. The server validates future starts within 90 days; browser clocks do not decide when gameplay begins. Discord announcements include the server date/time and zone, plus Discord timestamps displayed in each reader's local time.