Skip to content

ClanGuard Bot

C# / .NET 8 Discord bot that handles activity tracking, AWOL management, auto-promotion, event attendance, Reddit recruitment leads, and a stack of QoL automations for the 189th.

  • Repo: dklaver15/189th-clanbot
  • Stack: .NET 8 Worker, Discord.Net 3.17, EF Core (SQLite, WAL mode), Serilog
  • Hosting: DigitalOcean droplet (ubuntu-clanbot-nyc3), Docker Compose
  • Deploy: GitHub Actions → SSH to droplet → docker compose up -d --force-recreate

Where to start

Subsystems at a glance

Subsystem Purpose Entry points
AWOL Flag inactive members, kick after grace period AwolCheckService, KickAwolsCommandHandler
Auto-Promotion Tier-based automatic rank advancement AutoPromotionService, PromotionService
Apollo Integration Parse Apollo bot embeds for event tracking ApolloEventHandler, ApolloEmbedParser
Event Attendance Snapshot voice presence during events EventAttendanceSnapshotService
Google Sheets/Calendar Roster export, gamertag log, calendar sync GoogleSheetsService, GoogleCalendarService
Patrol Watch Detect when squads form in LFG voice PatrolWatchService
Reddit Leads Recruitment lead detection from subreddits RedditLeadService, LeadMatcher
Weekly Briefing AI-generated officer briefing every Sunday WeeklyOfficerBriefingService
Reminders & Bumps Tickets, guests, onboarding, Disboard bumps *ReminderHandler, BumpReminderHandler
Invites & Attribution Track which invite link a join came from InviteCacheService, InviteAttributionService