Skip to content

ChannelJoinNotification

Domekologe edited this page Jun 30, 2026 · 1 revision

ChannelJoinNotification

🌐 English · Deutsch

ChannelJoinNotification sends a member a direct message with a customizable text the moment they join a configured voice channel. Each voice channel has its own on/off switch and DM template, so you can welcome people into a lobby, brief them when they enter a support room, or ping them in a private channel — all without posting anything publicly. Configuration is available three ways: an ephemeral slash setup wizard in Discord, dashboard panels, and a dedicated guild dashboard page. Author: pd-codes · version 1.0.0 · requires Red 3.5.0+.

Screenshot: a join-notification DM in Discord

Installation

[p]repo add PDC_Redbot_Cogs https://github.com/pd-codes/PDC_Redbot_Cogs
[p]cog install PDC_Redbot_Cogs channeljoinnotification
[p]load channeljoinnotification
[p]slash sync

[p] is your bot's prefix. The setup UI is a slash command, so run [p]slash sync once after loading. See Installation for the full Downloader walkthrough.

Command

Command Type What it does
/join-notification Slash, guild-only Opens an ephemeral setup wizard (only you can see it).

There is no prefix command — /join-notification is the only in-Discord entry point.

Ephemeral setup wizard

The wizard keeps everything in a single ephemeral message that edits itself as you go:

  1. Pick a voice channel from the channel select (restricted to voice channels).
  2. The message shows the channel's current status (active/disabled) and a preview of its DM text.
  3. Aktivieren (Enable) opens a modal to type or edit the DM text, then activates the channel.
  4. Deaktivieren (Disable) turns notifications off for that channel without deleting the text.

The wizard times out after 10 minutes and only responds to the user who opened it.

DM text & variables

The DM text supports two placeholders, substituted when the message is sent:

Variable Replaced with
<Username> The member's display name
<Channelname> The voice channel's name

Example template: Hi <Username>! Du bist in <Channelname> gejoint ...

Voice channels only. The cog's listener fires only for discord.VoiceChannel joins and ignores bots and channel-to-channel moves where the destination isn't watched. If a member has DMs disabled, the bot fails silently — no error and no public message. (Although the cog is described as covering "voice/stage" channels, the current source filters strictly to voice channels.)

Configuration

ChannelJoinNotification stores everything per guild (Red Config, identifier 771194222451) under a single notifications map keyed by channel ID:

notifications = {
  "<channel_id>": { "enabled": true, "text": "Hi <Username>! ..." }
}
Key Type Meaning
enabled bool Whether a DM is sent on join for this channel.
text string The DM template (max ~1500–1900 chars depending on entry point).

A DM is sent only when the joined channel has an entry that is enabled and has non-empty text.

Dashboard integration

ChannelJoinNotification registers with the PDC Web Dashboard on load and re-attaches if the dashboard cog appears later. It exposes a widget, a panel, a managed list and two dashboard pages:

Surface Mount Permission Purpose
Widget "Join-Notify Channels" Dashboard home (KPI, small) guild_member Counts how many channels have notifications enabled.
Panel "Join-Benachrichtigungen" guild_settings guild_admin Per voice channel: an enable switch and a DM-text textarea with variable hints.
List "Konfigurierte Benachrichtigungen" guild_settings guild_admin Table of configured channels (channel, active, text preview) with inline edit and delete.
Page (home) dashboard home A small info card noting the integration is active.
Standalone page channeljoinnotification own page (GET/POST) manage_guild / admin / bot owner Full editor: add/update an entry (channel + enable + text), remove an entry, and a live table of all entries.

Screenshot: ChannelJoinNotification dashboard page

The standalone page auto-fills the form with a channel's existing settings when you pick it, and offers a separate "remove entry" form so you can clean up channels you no longer want to watch.

Permissions & notes

The bot only needs to be able to send the user a DM — no special guild permissions are required (none are declared in info.json). The slash setup wizard is available to any member who can run it but only edits config for the channels you select; the dashboard panels require guild_admin, and the standalone page requires manage_guild (or admin / bot owner). Only per-guild settings are stored — channel IDs, enable flags and message templates — no personal data.

See also: Installation · Dashboard Integration · EventMessages · Home

Clone this wiki locally