Skip to main content

Discord bot command extension for aa-structuretimers

Project description

AA Timer Cog

A Discord bot extension for Alliance Auth that adds the /timer add command to create structure timers directly from Discord.

Features

  • Discord Slash Command: Use /timer add to create structure timers
  • Autocomplete Support: Smart autocomplete for solar systems, structure types, and timer types
  • Role-Based Permissions: Configure which Discord roles can use the command
  • Channel Restrictions: Optionally limit the command to specific channels
  • Full Integration: Works seamlessly with aa-structuretimers
  • Rich Embeds: Beautiful Discord embeds for timer confirmation

Requirements

Installation

Step 1: Install the Package

For manual installation (ZIP file):

  1. Extract the ZIP file to a temporary location
  2. Navigate to the extracted directory
  3. Activate your Alliance Auth virtual environment:
    source /home/allianceserver/venv/auth/bin/activate
    
  4. Install the package:
    pip install .
    

For future pip installation:

pip install aa-timercog

Step 2: Configure Alliance Auth

Add 'timercog' to your INSTALLED_APPS in local.py:

INSTALLED_APPS = [
    # ... other apps
    'timercog',
]

Step 3: Configure Permissions (Optional but Recommended)

Add the following settings to your local.py:

# Timer Cog Settings
# Discord Role IDs that can use the /timer add command
TIMERCOG_ALLOWED_ROLE_IDS = [
    123456789012345678,  # FC Role
    234567890123456789,  # Director Role
    # Add more role IDs as needed
]

# Discord Channel IDs where the command can be used (optional)
# If not set or empty, command works in all channels
TIMERCOG_ALLOWED_CHANNELS = [
    345678901234567890,  # timer-management channel
    # Add more channel IDs as needed
]

How to get Discord IDs:

  1. Enable Developer Mode in Discord (User Settings > Advanced > Developer Mode)
  2. Right-click on a role or channel and select "Copy ID"

Step 4: Run Migrations

python manage.py migrate

Step 5: Restart Services

For Docker:

docker-compose restart allianceauth_discordbot

For Supervisor (bare metal):

supervisorctl restart myauth:authbot

Usage

Creating a Timer

Use the /timer add slash command in Discord with the following parameters:

Required Parameters:

  • system: Solar system name (with autocomplete)
  • structure_type: Type of structure (e.g., Astrahus, Fortizar, Keepstar) (with autocomplete)
  • owner: Owner corporation or alliance name
  • timer_type: Timer type (e.g., Armor, Hull, Final) (with autocomplete)

Optional Parameters:

  • days: Days until timer expires (0-365)
  • hours: Hours until timer expires (0-23)
  • minutes: Minutes until timer expires (0-59)
  • structure_name: Custom name for the structure
  • objective: Friendly, Hostile, or Neutral (default: Hostile)
  • location_details: Additional location info (e.g., "Planet VI, Moon 1")
  • notes: Additional notes about the timer

Example Commands

Basic timer (1 hour):

/timer add system:Jita structure_type:Astrahus owner:"Test Corp" timer_type:Hull hours:1

Detailed timer (2 days, 3 hours, 30 minutes):

/timer add system:Jita structure_type:Fortizar owner:"Test Alliance" timer_type:Final 
  days:2 hours:3 minutes:30 structure_name:"Death Star" 
  location_details:"Planet IV - Moon 4" objective:Hostile 
  notes:"Primary target, bring dreads"

Permissions

Users must meet the following requirements to use the command:

  1. Discord Role: Must have one of the roles specified in TIMERCOG_ALLOWED_ROLE_IDS
  2. Channel: If TIMERCOG_ALLOWED_CHANNELS is set, command must be used in one of those channels
  3. Auth: Must be authenticated with Alliance Auth

If permissions are denied, users will receive an ephemeral (private) error message.

Troubleshooting

Command not appearing in Discord

  1. Make sure the bot has been restarted after installation
  2. Verify that 'timercog' is in INSTALLED_APPS
  3. Check bot logs for any errors during startup

"You don't have permission" error

  1. Verify the user's Discord account is linked to Alliance Auth
  2. Check that the user has the required role (if TIMERCOG_ALLOWED_ROLE_IDS is set)
  3. Ensure the command is being used in an allowed channel (if TIMERCOG_ALLOWED_CHANNELS is set)

Solar system or structure not found

  1. Make sure django-eveuniverse data is loaded:
    python manage.py eveuniverse_load_types EveType --category_id 65
    python manage.py eveuniverse_load_types EveSolarSystem
    

Check logs

Bot logs are typically at:

  • Docker: docker-compose logs allianceauth_discordbot
  • Supervisor: /home/allianceserver/myauth/log/authbot.log

Development

Project Structure

aa-timercog/
├── timercog/
│   ├── __init__.py
│   ├── apps.py
│   ├── auth_hooks.py
│   ├── cogs/
│   │   ├── __init__.py
│   │   └── timer_cog.py
│   └── migrations/
│       └── __init__.py
├── setup.py
├── README.md
└── LICENSE

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

Support

For issues and feature requests, please:

  • Open an issue on the GitHub repository
  • Join the Alliance Auth Discord server

License

This project is licensed under the MIT License.

Credits

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aa_timercog-0.0.4.tar.gz (14.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aa_timercog-0.0.4-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file aa_timercog-0.0.4.tar.gz.

File metadata

  • Download URL: aa_timercog-0.0.4.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aa_timercog-0.0.4.tar.gz
Algorithm Hash digest
SHA256 3d1849d7a47834e362ce863aaf93a0a1867cb95076feb88c97c046dc778c942a
MD5 4582293596d0ff72b269f12b5b64dfc6
BLAKE2b-256 17b1c8969fd1330735a7d118000896ce592ea7f0aebbf27c3c9ce3593262c906

See more details on using hashes here.

File details

Details for the file aa_timercog-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: aa_timercog-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 13.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aa_timercog-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 fa557fc222fa4e0cad042a96939de513b0efbdc1fdb380fbf9fdc5ede4f13348
MD5 af44c6b737bb0ea80d52186517964bca
BLAKE2b-256 86145bc7833e560e1fbb476a68db0ff2e6bb255c3cdd926acc11578a23a20ada

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page