Skip to content

tsal/sanshas-helper

Repository files navigation

Sansha's Helper

A Discord bot for EVE Frontier role management with thematic messaging. Built with TypeScript and Discord.js.

Quick Start

Prerequisites

  • Node.js 18+
  • Discord application and bot token

Setup

  1. Install:

    git clone https://github.com/tsal/sanshas-helper.git
    cd sanshas-helper
    npm install
  2. Configure:

    cp local-example.env .env
    # Edit .env with your bot token
    # Optionally set DATABASE_PATH for intel features
  3. Run:

    npm run dev

Configuration

Environment Variables

DISCORD_TOKEN=your_bot_token

# Optional configurations
TRIBE_ROLES=Exploration,PVP,Mining     # Limit available roles
RESPONSE_THEME=kuvakei                 # Message theme: kuvakei|triglav  

Discord Setup

Bot needs Manage Roles, Send Messages, Use Slash Commands permissions. Position bot role above managed roles.

Features

Role Management

Manages EVE Frontier activity roles:

  • Exploration (🟣) - Industry (🟡) - Mining (🟢) - PVE (🟠) - PVP (🔴)
  • Nerd (🔵) - Hauling (🟤) - Market (💰)

Intel Management

Store and manage EVE Frontier systems intelligence with a set of management commands.

Themes

  • Kuvakei: Sansha's Nation consciousness remnant
  • Triglav: Triglavian Collective proving trials

Commands

  • /eve-roles (Manage your roles for notifications and call outs)
  • /intel (Manage intelligence reports for rift and ore sites)

/intel Command

Manage intelligence reports for rift and ore sites.

Usage

/intel <subcommand> [options]

Subcommands
  • /intel list
    View current intelligence reports.
    Options:

    • timeout (integer, optional): Minutes before the report expires (1-10, default: 5)
    • pages (integer, optional): Number of pages to display (1-10, default: 1)
  • /intel rift
    Add a rift intel report.
    Options:

    • type (string, required): Rift type code
    • system (string, required): System name where the rift is located
    • near (string, optional): What the rift is near (e.g., P1L4)
  • /intel ore
    Add an ore site intel report.
    Options:

    • oretype (string, required): Type of ore resource (e.g., carbon, metal, common)
    • name (string, required): Name of the ore site (e.g., Carbon Debris Cluster)
    • system (string, required): System name where the ore site is located
    • near (string, optional): What the ore site is near (e.g., P1L4)
  • /intel fleet
    Add a fleet intel report.
    Options:

    • tribename (string, required): Name of the tribe/fleet
    • comp (string, required): Fleet composition
    • system (string, required): System name where the fleet is located
    • near (string, optional): What the fleet is near (e.g., P1L4)
    • standing (string, optional): Fleet standing/attitude
  • /intel site
    Add a site intel report.
    Options:

    • name (string, required): Name of the site
    • system (string, required): System name where the site is located
    • triggered (string, required): Whether the site is triggered
    • near (string, optional): What the site is near (e.g., P1L4)
  • /intel del
    Delete an intel report.
    Options:

    • type (string, required): Intel type (rift, ore, fleet, or site)
    • id (string, required): Intel item ID to delete
Example
/intel rift type:RIFT-A system:ZXY-123 near:P1L4
/intel ore oretype:carbon name:Carbon Debris Cluster system:ZXY-123 near:P1L4
/intel fleet tribename:Sansha comp:5x Frigate system:ZXY-123 near:P1L4 standing:hostile
/intel site name:Combat Site system:ZXY-123 triggered:yes near:P1L4
/intel list timeout:10 pages:2
/intel del type:fleet id:fleet-123456789

Configuration Options

Required

  • DISCORD_TOKEN: Bot token from Discord application configuration panel

Optional

  • TRIBE_ROLES: Comma-separated list of enabled roles (default: all roles)
  • RESPONSE_THEME: Message theme - kuvakei or triglav (default: kuvakei)
  • ROLES_COMMAND_NAME: Slash command name (default: eve-roles)
  • DATABASE_PATH: Path to database file for intel storage (default: disabled)
  • DEFAULT_INTEL_EXPIRATION: Intel expiration time in hours (default: 24)

See local-example.env for detailed configuration examples.

Development

Testing

Run the full test suite:

npm test

All role management, configuration parsing, and core functionality is covered by unit tests.

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Write tests for new functionality
  4. Ensure all tests pass: npm test
  5. Submit a pull request

License

MIT License - see LICENSE file for details

About

Discord bot focused on EVE Frontier

Resources

License

Stars

Watchers

Forks

Packages

No packages published