Skip to content

Releases: AnchorlightDev/zander

Version 2.1.0

Choose a tag to compare

@benrobson benrobson released this 05 Oct 08:25
593542c

Upgrading from 2.0.0

Read these before deploying.

  • The shared apiKey is gone. Every caller of the API — each Minecraft server, the uptime monitor, and this app itself — now needs its own client key. Create them at Dashboard → API Keys (zander.web.apikeys); keys look like zdr_<prefix>_<secret>. A request carrying the old shared key is rejected with 401.
  • New environment variables:
    • INTERNAL_API_KEY (required) — this app's own client key, used for its calls to its own API. Create a client for it at Dashboard → API Keys.
    • MINEMONITOR_BASE_URL, MINEMONITOR_CONNECTION_TOKEN — see the content filtering note below, and .env.example.
  • Content filtering has moved to MineMonitor. The local filter.json word and link lists are gone; the link and phrase filters now ask MineMonitor, which filters through Purify. If MineMonitor is not configured, or does not answer, content is let through unfiltered. Set the two MINEMONITOR_* variables (or the base URL at Dashboard → Settings → Automation) before deploying if you rely on the filter.
  • Site settings and module switches now live in the database. config.json and features.json are no longer read at runtime. On the first boot that finds them, they are imported once into the database. After that, edit settings at Dashboard → Settings and switch modules on and off at Dashboard → Modules. You can then delete the files.
  • 25 database migrations (0041–0066) run on deploy via npm run build. Migration 0066 cancels leftover duplicate event announcements (see Fixed); nothing is deleted.
  • Node.js 20 or newer is required.
  • Plugins: built for Java 21. The Waterfall proxy plugin has been removed; use Velocity.

New

  • Forms — build application and survey forms with section breaks, field requirements, eligibility rules, drafts, reapply cooldowns, access codes and optional review. Submissions can open a support ticket or post to a Discord forum thread or DM, and can be exported to CSV. Forms can be duplicated.
  • Webstore — product and category management, with per-item visibility and settings.
  • Site settings and Modules dashboards — edit site configuration and turn features on or off without touching files.
  • API Keys dashboard — issue, scope and revoke a separate key for each API client.
  • Default event announcements — set Discord, MOTD, in-game tip and website announcements once (Events → Templates → Default Announcements). New events and templates start with them, and Apply to Existing Events adds them to upcoming events that don't have them yet.
  • Rank-locked events — limit an event to certain ranks, with a teaser description shown to everyone else.
  • Discord booster rewards — give ranks to members who boost the Discord server, and remove them when the boost ends.
  • Rank permissions management in the dashboard, plus self-promotion rules for rank assignment.
  • Bedrock Edition landing page and connection details.
  • User profiles — timezone and birthday.
  • Region settings — the site's region, country and language, used across the site.
  • Dismissible site-wide banner; announcements now record when they were created.
  • Verification reminders for unverified Discord members.
  • Content filtering through MineMonitor (backed by Purify), including Discord invite-link handling.
  • Latest forum posts on the homepage — the newest discussions visitors can see, with an excerpt. Show one category (for example network announcements) or all of them, and set how many, at Dashboard → Settings → Watch, Events & Forums.
  • Version and commit shown in the site and dashboard footers.

Improved

  • Event announcements move with the event. Changing an event's date or time reschedules its announcements, on drafts too, and the event page shows when each one will go out.
  • Event templates pre-fill the new-event form, and the editors give clearer errors.
  • Discord timestamps in event descriptions render on the site the same way they do in Discord.
  • Locked forum categories explain what's needed to get access.
  • Event banners keep their natural aspect ratio on every screen size.
  • Discord role sync reports what it did and why it failed, and matches users by LuckPerms UUID first, so placeholder accounts no longer get the wrong roles.
  • Discord account linking resolves conflicts and merges accounts instead of blocking.
  • Sessions are cached in memory, so most requests no longer read the session from the database.
  • Finance budgets — entries can be removed from a given month onwards.

Fixed

  • Event announcements:
    • Draft events could post their announcements to Discord.
    • Cancelled and deleted events kept announcing: queued Discord messages still went out and MOTDs and banners stayed up.
    • Saving a published event duplicated its announcements.
    • Announcement tokens such as {discord_f} and {endAt} were posted as raw text.
    • A 0-minute "before event" announcement never sent.
    • Announcements due while the bot was offline were marked failed instead of being retried.
    • Duplicating an event lost its announcements.
    • Editors without reviewer rights could change the announcements of approved and published events.
  • Long report reasons are trimmed to fit instead of failing to save.
  • Auth utility pages (password reset and similar) are kept out of search engines.

Security

  • Content Security Policy, in report-only mode, with a reporting endpoint.
  • Event descriptions are sanitised against XSS.
  • Verification and reset codes are generated with a cryptographic random source.
  • Webhook events are claimed atomically, so a replayed Stripe event can't be processed twice.
  • Webstore commands are escaped before being sent to a server.
  • Dependencies — all known high-severity advisories resolved (npm audit is clean).

Removed

  • Unused files: about 15 MB of assets (an old admin theme and its fonts and scripts), dead views, and five unused npm packages.
  • nodemon — npm run dev now uses Node's built-in --watch.
  • The Waterfall plugin.

Version 2.0.0

Choose a tag to compare

@benrobson benrobson released this 13 Sep 07:14
676b539

Zander 2.0 brings the different parts of the platform together into one unified project, alongside a major expansion of the website, community tools, integrations, and management systems. This gives Zander a much stronger foundation for features that span Minecraft, Discord, and the website.

✨ What's New

🎥 Creator Watch

A new community creator system has been introduced.

  • Connect Twitch and YouTube accounts to your profile
  • Discover related streams and videos from community creators
  • See live streams and recent uploads from the new Watch page
  • Eligible creator content can automatically be shared to Discord
  • Live viewer counts are supported for streamed content

🛒 Webstore

Zander now includes a fully integrated webstore.

  • Purchase supported ranks and perks through the website
  • Support for one-time purchases and subscriptions
  • Gift eligible products to other players
  • Purchases can be delivered in-game even while the recipient is offline
  • View previous purchases and order history
  • Improved handling of command delivery, retries, and failed rewards

❤️ Server Support & Finance

The server support experience has been expanded.

  • New support and donation experience
  • Server funding progress can be displayed directly on the website
  • New finance tools for tracking transactions, budgets, categories, and reports
  • Improved visibility into the financial side of running the community

📅 Events

Zander now has a dedicated events system.

  • Browse upcoming community events
  • View individual event details
  • Improved event publishing and announcements
  • Event templates make recurring events easier to manage
  • Better integration between website events and Discord

🗳️ Voting & Rewards

Minecraft server voting is now integrated into Zander.

  • Votes can be tracked across supported voting sites
  • Monthly voting totals and top voters are recorded
  • Rewards can be delivered automatically in-game
  • Reward delivery works across servers and can wait until a player is available
  • Monthly rewards can be configured independently from normal vote rewards

🏅 Badges & Ranks

Profiles and ranks have received a major expansion.

  • Community badges can now be created and assigned to players
  • Badges can be displayed on player profiles
  • Rank information is now managed through Zander instead of relying entirely on static configuration
  • Improved synchronisation between Zander, LuckPerms, and Discord roles
  • Expanded rank management tools for staff

👤 Accounts & Profiles

Account management has been improved across the platform.

  • Expanded user management
  • Better handling of linked and unlinked accounts
  • Improved Minecraft account registration and linking
  • Automatic handling of temporary accounts created through Discord support
  • Additional connected-account options
  • Improved account state and verification handling
  • New reminders for users who have not completed verification

🎫 Support Improvements

The support system has received several upgrades.

  • Improved ticket management
  • Better participant management
  • Tickets can now be escalated and de-escalated
  • Better handling of users who create tickets before linking their Minecraft account
  • Emoji and modern Unicode characters are now properly supported in ticket messages

💬 Community Improvements

Several existing areas of Zander have also been modernised.

  • Forums now properly support emoji and extended Unicode characters
  • Discord moderation records now better support modern usernames and characters
  • Improved announcements and scheduled content
  • Automatic announcement expiry support
  • Expanded staff auditing and reporting tools

🌐 Website Improvements

The public website has received a number of upgrades.

  • Improved homepage and server information handling
  • Better Play and Ranks pages
  • New Events, Watch, Webstore, Finance, and Support experiences
  • Improved navigation between Zander's growing collection of services
  • Better search engine and structured-data support
  • New sitemap support
  • Improved page metadata and discoverability
  • Website pages now degrade more gracefully when individual services are temporarily unavailable

🔧 Platform Improvements

Zander 2.0 also includes extensive work behind the scenes to improve reliability and prepare the platform for future features.

This includes improved database management, persistent sessions, automated migrations, error reporting, command delivery reliability, account cleanup tools, additional automated tests, and a more consistent permissions system.

Version 1.3.0

Choose a tag to compare

@benrobson benrobson released this 08 Mar 03:53
eca5f58

🚀 New Features

🏛️ Forum System

  • Full Forum Suite: Implementation of a complete forum system with support for hierarchical categories, discussions, and threaded posts.
  • Advanced Permissions: Granular view and post permissions per category.
  • Revision History: Full tracking of post edits and revisions for moderation.
  • Management UI: Dedicated dashboard modules for managing forum structures and content.

🎫 Support Ticket System

  • Unified Support: Web-based ticketing system for user inquiries and issues.
  • Categorized Routing: Flexible ticket categories with specialized staff permissions.
  • Staff Tools: Internal staff-only notes, status tracking (Open, Closed, In-Progress), and attachment support.

⚖️ Punishment & Appeal System

  • Multi-Platform Punishments: New system for managing Discord and Web punishments (Warn, Kick, Ban, Mute).
  • Integrated Appeals: Users can now submit appeals directly through the web interface.
  • Staff Dashboard: Comprehensive moderation tools for reviewing active punishments and pending appeals.

🔐 Local Authentication & Registration

  • Custom Auth Flow: Users can now register locally with email and password, reducing reliance on third-party providers.
  • Verification Systems: Integrated email verification and Minecraft account linking via in-game codes.
  • Security Features: Secure password reset flows and session persistence improvements.

🛒 Shopping Directory

  • Global Search: A new web interface to search and browse in-game shop items and prices.
  • Discord Integration: /shopdirectory command to search for items directly from Discord.

🏺 Vault & Map Archive

  • Historical Archives: Dedicated section for browsing and downloading previous server maps and builds.
  • Command Support: /vault Discord command for quick access to archives.

✨ Enhancements

🎨 Modernized UI/UX

  • Bootstrap 5 Migration: Complete migration of the frontend framework from Bootstrap 4 to Bootstrap 5.
  • Redesigned Profiles: Revamped user profiles with Discord linking, detailed stats, and activity feeds.
  • Staff Recognition: Dynamic staff page featuring active team members and a "Retired Staff" section.
  • Responsive Dashboard: Improved staff dashboard layout with a collapsible sidebar and mobile-friendly modules.

📅 Scheduler & Communication

  • Timed Announcements: Ability to schedule web announcements and popups with start/end dates.
  • Discord Scheduling: New module for scheduling timed Discord embed messages to specific channels.
  • Web Push Notifications: Integration of Web Push API for real-time user notifications.

🛠️ Technical & Internal

📊 Infrastructure & API

  • Database Migrations: Comprehensive SQL migrations (v1.2.0 through v1.11.0) for system scalability.
  • Public Config API: New unauthenticated endpoints for site configuration, social links, and policies.
  • Reliability Fixes: Resolved several 502 Bad Gateway errors and fixed CRUD operations across all admin modules.

🛡️ Moderation & Auditing

  • Profanity Filter: Integration with profanity.dev for automated content filtering and staff alerts.
  • Audit Reporting: Automated staff audit reports delivered via Discord webhooks.
  • Background Tasks: New crons for nickname checks, punishment expiry, and scheduled message delivery.

1.2.0

Choose a tag to compare

@benrobson benrobson released this 23 Aug 21:08

1.1.0

Choose a tag to compare

@benrobson benrobson released this 02 Jan 21:18
9a7321e

v1.0: Announcements, Applications, Discord and Server Management

Choose a tag to compare

@benrobson benrobson released this 12 Nov 03:12
a75a00b
Version 1.0: The Beginning (Announcements, Applications, Discord and …