mattfalahe/seat-discord-pings

Discord ping and broadcast management for SeAT - Send fleet notifications to Discord channels

Installs: 1 846

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

Language:Blade

Type:seat-plugin

pkg:composer/mattfalahe/seat-discord-pings

1.0.5 2026-02-06 23:01 UTC

This package is auto-updated.

Last update: 2026-02-06 23:24:25 UTC


README

A comprehensive Discord ping and broadcast management plugin for SeAT - Send fleet notifications to Discord channels with rich embeds, role mentions, channel links, staging locations, and advanced scheduling features.

Latest Version License SeAT 5.0

Features

Core Features

  • ๐Ÿ“ข Fleet Pings - Send formatted fleet broadcasts to Discord with rich embeds
  • ๐ŸŽฏ Multiple Webhooks - Manage unlimited Discord webhooks for different channels
  • ๐Ÿ“ Templates - Quick templates for common ping types (CTA, Mining, Strategic, etc.)
  • ๐Ÿ“Š Rich Embeds - Beautiful Discord embeds with customizable colors and fields
  • โฐ EVE Time - Automatic EVE time stamps with local time display

Discord Integration

  • ๐Ÿ‘ฅ Discord Roles - Manage and mention Discord roles in your pings
  • ๐Ÿ’ฌ Discord Channels - Link to specific Discord channels in messages
  • ๐ŸŽจ Custom Mentions - Support for @everyone, @here, role mentions, and custom mentions
  • ๐Ÿ”— Channel Links - Add clickable channel references to guide users
  • ๐Ÿ“ Staging Locations - Pre-configure staging locations with quick dropdown selection

Fleet Information Fields

  • FC Name
  • Formup Location (with staging dropdown)
  • PAP Type (Strategic/Peacetime/CTA)
  • Comms Information
  • Doctrine Details (with seat-fitting integration)
  • Discord Channel Links
  • Custom Messages

Advanced Features

  • ๐Ÿ“… Scheduled Pings - Schedule pings with EVE time and recurring options
  • ๐Ÿ“† Calendar View - Visual calendar for scheduled broadcasts with week/month/list views
  • ๐Ÿš€ Doctrine Integration - Automatic integration with seat-fitting plugins
  • ๐Ÿ“ Staging Management - Configure and manage staging locations
  • ๐Ÿ“œ History Tracking - Complete history of all sent pings with resend capability
  • ๐Ÿ‘ฅ Role Restrictions - Limit webhook access to specific SeAT roles
  • ๐Ÿ”„ Multiple Recipients - Send to multiple Discord channels simultaneously
  • ๐ŸŽจ Custom Colors - Per-webhook and per-ping embed color customization
  • ๐Ÿงช Webhook Testing - Test webhooks before using them
  • ๐Ÿ—‘๏ธ Automatic Cleanup - Scheduled cleanup of old ping history
  • โš™๏ธ Discord Configuration - Unified interface for managing webhooks, roles, channels, and stagings
  • ๐Ÿ“š Personal Templates - Create and manage custom templates with full field support

Requirements

  • SeAT 5.0 or higher
  • PHP 8.0 or higher
  • Laravel 10.0 or higher
  • Discord webhook URLs
  • Queue worker running for scheduled pings

Installation

composer require mattfalahe/seat-discord-pings

SeAT will automatically run migrations and publish assets on restart.

Configuration

Discord Setup

Setting Up Discord Webhooks

  1. In Discord, right-click on your channel and select Edit Channel
  2. Navigate to Integrations โ†’ Webhooks
  3. Click New Webhook
  4. Give it a name (e.g., "SeAT Fleet Pings")
  5. Click Copy Webhook URL
  6. In SeAT, navigate to Discord Pings โ†’ Discord Config โ†’ Webhooks tab
  7. Click Add Webhook and paste your URL

Adding Discord Roles

  1. Navigate to Discord Pings โ†’ Discord Config โ†’ Discord Roles tab
  2. Click Add Role
  3. Enter a friendly name for the role
  4. Enter the Discord Role ID (right-click role in Discord with Developer Mode enabled โ†’ Copy ID)
  5. Optionally set a color for visual identification
  6. Click Add Role

Adding Discord Channels

  1. Navigate to Discord Pings โ†’ Discord Config โ†’ Discord Channels tab
  2. Click Add Channel
  3. Enter a friendly name for the channel
  4. Paste the Discord channel URL (right-click channel โ†’ Copy Link)
  5. Select the channel type (text, voice, announcement, etc.)
  6. Click Add Channel

Configuring Staging Locations

  1. Navigate to Discord Pings โ†’ Discord Config โ†’ Staging Locations tab
  2. Click Add Staging
  3. Enter a name for the staging (e.g., "Home Staging")
  4. Enter the system name (e.g., "Jita")
  5. Optionally enter the structure name (e.g., "4-4 CNAP")
  6. Optionally set as default staging
  7. Click Add Staging

Permissions

Configure permissions through SeAT's Access Management system:

Permission Description
discordpings.view Access to Discord Pings plugin menu
discordpings.send Send pings to Discord
discordpings.send_multiple Send to multiple webhooks at once
discordpings.manage_webhooks Manage webhooks, roles, channels, and stagings
discordpings.view_history View own ping history
discordpings.view_all_history View all users' ping history
discordpings.manage_scheduled Create and manage scheduled pings
discordpings.manage_templates Create, edit, and delete your own broadcast templates
discordpings.manage_global_templates Create and manage global templates visible to all users

Usage

Sending a Quick Ping

  1. Navigate to Discord Pings โ†’ Send Ping
  2. Select your target webhook
  3. Enter your message
  4. Choose mention type (optional):
    • No Mention
    • @everyone
    • @here
    • Discord Role (select from configured roles)
    • Custom mention
  5. Select a Discord channel to link (optional)
  6. Select formup location from staging dropdown or type manually
  7. Select doctrine from dropdown (if seat-fitting is installed) or type manually
  8. Fill in fleet details (FC, PAP type, comms, etc.)
  9. Click Send Ping

Using Templates

Click any template button to quickly fill the message field:

  • Standard CTA - General call to arms
  • Emergency - Urgent hostile response
  • Mining Op - Mining fleet formation
  • Roam Fleet - PvP roam announcement
  • Strategic Op - Important strategic operations

Using Staging Locations

  1. Click the dropdown arrow next to Formup Location
  2. Select from pre-configured staging locations
  3. Or type a custom location manually
  4. Set default staging in Discord Config for quick access

Scheduling Pings

  1. Fill out your ping details on the Send Ping page
  2. Click Schedule instead of Send
  3. Set date and time in EVE time (UTC)
  4. View both EVE time and your local time for reference
  5. Set recurrence options:
    • One-time
    • Hourly
    • Daily
    • Weekly
    • Monthly
  6. Optionally set an end date for recurring pings
  7. Pings will be sent automatically at the scheduled EVE time

Bulk Sending

  1. Click "Multiple Webhooks" button on the Send Ping page
  2. Check all desired webhooks
  3. Fill in your message and details
  4. Send once to reach multiple Discord channels

Managing Discord Configuration

Access Discord Pings โ†’ Discord Config to manage:

  • Webhooks Tab: Add, edit, test, and delete webhook configurations
  • Discord Roles Tab: Configure Discord roles for mentions
  • Discord Channels Tab: Add Discord channels for quick linking
  • Staging Locations Tab: Manage staging locations for quick selection

Integration with Seat-Fitting

The plugin automatically detects and integrates with seat-fitting plugins (CryptaTech or Denngarr versions):

  • Doctrine dropdown appears when seat-fitting is installed
  • Creates clickable doctrine links in Discord
  • Falls back to plain text if doctrine viewing route is not available
  • Works with both scheduled and immediate pings

Discord Embed Format

Pings are sent as rich Discord embeds with:

  • Title:
    • ๐Ÿ“ข Fleet Broadcast (for fleet operations)
    • ๐Ÿ“ฃ Announcement (for general announcements)
    • ๐Ÿ’ฌ Message (for simple messages)
  • Message: Your custom message
  • Fields:
    • ๐Ÿ‘ค FC Name
    • ๐Ÿ“ Formup Location
    • ๐ŸŽฏ PAP Type
    • ๐Ÿš€ Doctrine (with clickable link if using seat-fitting)
    • ๐ŸŽง Comms / Channel (combined field)
  • Footer: "This was a coord broadcast from [username] to discord at [timestamp] EVE"
  • Color: Customizable per webhook or per ping
  • Mentions: Configurable @everyone, @here, or specific roles

Time Zones

  • All times in the interface are displayed in EVE time (UTC)
  • Your local time is shown for reference when scheduling
  • Scheduled pings execute based on EVE time
  • History timestamps are in EVE time

Scheduled Jobs

The plugin includes two automated jobs:

  1. Process Scheduled Pings - Runs every minute to send due pings
  2. Cleanup History - Runs daily at 2 AM to remove old ping history

These are automatically registered in SeAT's schedule when you run migrations.

Troubleshooting

Webhook Test Fails

  • Verify the webhook URL is correct and starts with https://discord.com/api/webhooks/
  • Check if the Discord channel still exists
  • Ensure the webhook wasn't deleted in Discord

Pings Not Sending

  • Check if Laravel queue is running: php artisan queue:work
  • Verify cron job is configured correctly
  • Check SeAT logs in storage/logs/

Scheduled Pings Not Working

  • Ensure the scheduler is running (check crontab)
  • Verify queue workers are processing jobs
  • Check if the scheduled ping is marked as active
  • Verify times are being set correctly in EVE time

Permission Issues

  • Run php artisan discordpings:setup --grant-admin to grant admin permissions
  • Ensure users have the discordpings.view permission to see the menu
  • Check role restrictions on webhooks
  • Verify webhook is active

Missing Discord Roles/Channels in Dropdown

  • Ensure roles and channels are added in Discord Config
  • Check that they are marked as active
  • Verify the Discord IDs are correct

Doctrine Dropdown Not Showing

  • Ensure seat-fitting plugin is installed (CryptaTech or Denngarr version)
  • Create at least one doctrine in the fitting plugin
  • Check logs for any loading errors

Database Errors

  • Run php artisan migrate to ensure all tables are created
  • Clear caches with php artisan cache:clear

Rate Limiting

  • Discord has rate limits on webhooks (30 requests per minute)
  • Space out bulk broadcasts
  • Use scheduled pings for better timing

Support

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is licensed under the GNU General Public License v2.0 - see the LICENSE file for details.

Credits

  • Created by Matt Falahe
  • Built for the SeAT Alliance / Corporation Management Platform
  • Inspired by the EVE Online community's need for better fleet communication tools

Changelog

See CHANGELOG.md for a detailed list of changes in each version.