BotMother Discord icon

BotMother Discord -----

Professional integration between platforms, freedom of configuration, keep your community active!




Bot Mother DC
Complete Documentation
Version 1.0.0

Table of Contents

  1. Installation & Setup
  2. Discord Bot Configuration
  3. Account Synchronization
  4. Ticket Support System
  5. VoIP Voice Channels
  6. Shop & Stripe Integration
  7. Chat Bridge System
  8. Content Moderation
  9. Staff Roles
  10. Commands Reference
  11. Permissions Reference
  12. Configuration Files
  13. Troubleshooting

1. Installation & Setup

Requirements

  • Minecraft Server: Spigot/Paper 1.17.x - 1.21.x
  • Java: Version 17 or higher
  • Discord Bot: Created via Discord Developer Portal
  • Stripe Account: (Optional) For payment processing

Installation Steps

  1. Download BotMotherDC.jar
  2. Place the JAR file in your server's plugins folder
  3. Start the server once to generate configuration files
  4. Stop the server
  5. Configure the config.yml with your Discord bot token and guild ID
  6. Start the server again

First Time Setup

On first startup with first-time-setup: true in config.yml, the plugin will automatically create:
  • Discord roles: DevOps, Administrator, Moderator, Player, Member, Unverified
  • Channel categories: Welcome, Chat, VoIP, Support, Staff
  • Channels: Welcome, Rules, Announcements, Global Chat, Media Chat, Server Chat
  • Support system: Ticket creation channel

WARNING: Set first-time-setup: false after initial setup to prevent accidental resets!

2. Discord Bot Configuration

Creating a Discord Bot

  1. Go to https://discord.com/developers/applications
  2. Click "New Application" and give it a name
  3. Go to the "Bot" section
  4. Click "Add Bot"
  5. Enable these Privileged Gateway Intents:
    • PRESENCE INTENT
    • SERVER MEMBERS INTENT
    • MESSAGE CONTENT INTENT
  6. Copy the bot token
  7. Go to OAuth2 > URL Generator
  8. Select scopes: bot, applications.commands
  9. Select bot permissions: Administrator (or specific permissions)
  10. Copy the generated URL and invite the bot to your server

config.yml Configuration

Code (Text):

discord:
  bot-token: "YOUR_BOT_TOKEN_HERE"
  guild-id: "YOUR_GUILD_ID_HERE"

plugin:
  server-name: "My Minecraft Server"
  language: "en"
  debug-mode: false
  first-time-setup: true  # Set to false after first run!
 
3. Account Synchronization

How Sync Works

  1. Player types /sync dc in Minecraft
  2. Plugin generates a 6-character code (e.g., ABC123)
  3. Player enters the code in Discord verification channel
  4. Accounts are linked, rewards are granted

Sync Rewards Configuration

Edit positions.yml to configure sync rewards:

Code (Text):

sync-rewards:
  enabled: true
 
  # Permissions granted on sync
  permissions:
    - "botmotherdc.synced"
    - "botmotherdc.chat.discord"
 
  # Commands executed when player syncs
  # Placeholders: {player}, {uuid}, {discord_id}, {discord_tag}
  commands-on-sync:
    - "broadcast &a{player} &7has linked their Discord account!"
    - "give {player} diamond 3"
    - "eco give {player} 1000"
 
  # Discord role to assign
  discord-role-id: "123456789012345678"
 
  # Grant a position on sync
  grant-position:
    position-id: "subscriber"
    duration-days: 7  # -1 for permanent
 
  # Commands on unsync
  commands-on-unsync:
    - "broadcast &c{player} &7has unlinked their Discord account."
 
  # Role to remove on unsync
  discord-role-remove-on-unsync: "123456789012345678"
 
4. Ticket Support System

How Tickets Work

  1. User clicks "Create Ticket" button in #support channel
  2. User fills modal with subject and description
  3. Private ticket channel is created
  4. Staff receive DM notification with "Accept" button
  5. Staff accepts ticket, channel permissions update
  6. Optional: Create voice channel for call
  7. Staff closes ticket when resolved

Ticket Configuration

Code (Text):

# In config.yml
ticket:
  timeout-minutes: 30        # Auto-close if no staff responds
  cancel-wait-minutes: 5     # Wait time before user can cancel
  notify-staff-dm: true      # Send DM to staff on new tickets
 
Ticket Features

  • Private Channels: Only ticket creator and assigned staff can see
  • Staff Cannot Send Until Accept: Staff must click Accept button first
  • Voice Support: Create voice channel for live support
  • Auto-Timeout: Tickets auto-close after configured timeout
  • Extended Timeout: 24-hour timeout when no staff is online
  • History Logging: All tickets saved to data/tickets.yml

5. VoIP Voice Channels

How VoIP Works

  1. User joins the "Create VoIP" channel
  2. A new voice channel is created for them
  3. User is moved to their new channel
  4. Channel auto-deletes when empty

VoIP Configuration

Code (Text):

# In config.yml
voip:
  max-users: 6               # Max users per voice channel
  empty-timeout-seconds: 0   # Delete immediately when empty (0 = instant)
  alone-timeout-minutes: 5   # Delete after 5 min with only 1 person
  screen-share-required-hours: 12  # Voice hours needed for screen share
 
Voice Time Tracking

The plugin tracks voice time for each user. After reaching the configured hours, users unlock screen sharing permission.

6. Shop & Stripe Integration

Setting Up Stripe

  1. Create account at https://stripe.com
  2. Get API keys from Dashboard > Developers > API keys
  3. Configure stripe.yml with your keys
  4. Start the server to generate webhook URL
  5. Create webhook in Stripe Dashboard using the generated URL
  6. Copy the webhook signing secret to stripe.yml
  7. Restart server to enable shop

stripe.yml Configuration

Code (Text):

stripe:
  secret-key: "sk_test_YOUR_SECRET_KEY"
  publishable-key: "pk_test_YOUR_PUBLISHABLE_KEY"
  webhook-secret: "whsec_YOUR_WEBHOOK_SECRET"

payment:
  currency: "usd"
  allow-promo-codes: true

webhook-server:
  enabled: true
  port: 8443
 
  # Cloudflare Tunnel (recommended for production)
  cloudflare-tunnel:
    enabled: false
    url: "https://your-tunnel.trycloudflare.com"

delivery:
  mode: "both"  # online, login, or both
  announce-purchases: true
  announcement-format: "&6&l[SHOP] &e{player} &7just purchased &a{position}!"

polling:
  enabled: true
  interval-seconds: 30
 
IMPORTANT SSL WARNING:
The auto-generated SSL certificate is for TESTING ONLY!
For production, use Cloudflare Tunnel (free) or a valid SSL certificate.
Stripe will reject self-signed certificates in live mode!

Creating Positions/VIPs

Edit positions.yml:

Code (Text):

positions:
  vip:
    enabled: true
    display-name: "VIP"
    description: |
      VIP Benefits:
      - Custom prefix
      - Exclusive commands
      - Priority queue
    price: 9.99
    duration-days: 30      # -1 for permanent
    icon: "DIAMOND"
    color: "&b"
    priority: 20           # Higher = appears first in shop
    permissions:
      - "server.vip"
      - "essentials.fly"
    commands-on-activate:
      - "broadcast &b{player} &7is now &b&lVIP&7!"
      - "give {player} diamond 10"
    commands-on-expire:
      - "broadcast &b{player}&7's VIP has expired."
    discord-role-id: "123456789012345678"
 
Webhook Events Required

When creating webhook in Stripe Dashboard, select:
  • checkout.session.completed
  • checkout.session.expired
  • payment_intent.succeeded
  • payment_intent.payment_failed

7. Chat Bridge System

Chat Channels

  • Global Chat: Minecraft <-> Discord, all players
  • Media Chat: Discord only, for images/videos
  • Server Chat: Minecraft <-> Discord, verified players only

Chat Configuration

Code (Text):

# In config.yml
channels:
  global-chat:
    allow-media: false
    delay-seconds: 10      # Anti-spam delay
 
  media-chat:
    delay-seconds: 300     # 5 minute delay
 
  server-chat:
    verified-only: true    # Only synced players
    delay-seconds: 0
 
Chat Filters (chat.yml)

For servers using chat plugins (TownyChat, EssentialsChat):

Code (Text):

chat-filter:
  # Messages with these prefixes go to Discord
  global-prefixes:
    - "[G]"
    - "[Global]"
 
  # Messages with these prefixes are NOT sent to Discord
  local-prefixes:
    - "[L]"
    - "[Local]"
    - "[Party]"
    - "[Town]"
 
  # Messages completely blocked
  blocked-prefixes:
    - "/"
    - "[System]"
    - "[PM]"
 
8. Content Moderation

Moderation Features

  • Profanity filter with multi-language support
  • Leetspeak detection (f*ck, sh1t, etc.)
  • Repeated character detection (fuuuuck)
  • Spaced word detection (f u c k)
  • Link filtering with whitelist
  • Cross-platform punishment sync

norms.yml Configuration

Code (Text):

general:
  enabled: true
  sync-punishments: true   # Sync punishments between platforms

links:
  enabled: true
  whitelist:
    - "discord.gg"
    - "minecraft.net"

profanity:
  enabled: true
  check-leetspeak: true
  check-repeated-chars: true
  check-spaced-words: true
 
  words-en:
    - "badword1"
    - "badword2"
 
  words-pt_br:
    - "palavrao1"

punishments:
  warnings:
    max-before-mute: 3
    expiration-hours: 24
    delete-message: true
 
  mute:
    duration-hours: 24
    max-before-kick: 5
 
  kick:
    duration-hours: 24
    max-before-ban: 3
 
  ban:
    first-ban-days: 7
    max-before-permanent: 5
 
9. Staff Roles

How Staff Roles Work

  1. Staff member links Discord to Minecraft via /sync
  2. Staff has Administrator or Moderator role in Discord
  3. When they join Minecraft, plugin detects Discord role
  4. Prefix and permissions are automatically applied

Staff Configuration (positions.yml)

Code (Text):

staff-roles:
  enabled: true
 
  administrator:
    discord-role-id: "123456789012345678"
    chat-prefix: "&c&l[ADMIN] &r"
    nickname-prefix: "&c[A] "
    permissions:
      - "botmotherdc.staff.admin"
      - "minecraft.command.gamemode"
    commands-on-grant:
      - "broadcast &c{player} &7is now an &c&lAdministrator&7!"
    commands-on-revoke:
      - "broadcast &c{player} &7is no longer an Administrator."
 
  moderator:
    discord-role-id: "123456789012345678"
    chat-prefix: "&9&l[MOD] &r"
    nickname-prefix: "&9[M] "
    permissions:
      - "botmotherdc.staff.moderator"
    commands-on-grant:
      - "broadcast &9{player} &7is now a &9&lModerator&7!"
 
10. Commands Reference

Player Commands

Code (Text):

/sync dc
  Description: Generate a code to link your Minecraft account to Discord
  Permission: botmotherdc.sync (default: true)
  Aliases: /linkar, /vincular, /discord

/positions
  Description: View your active positions/VIPs
  Permission: botmotherdc.positions (default: true)
  Aliases: /vip, /ranks, /cargos
 
Admin Commands

Code (Text):

/botmother reload
  Description: Reload all configuration files
  Permission: botmotherdc.admin.reload (OP)

/botmother reset
  Description: Reset Discord server setup (recreate roles/channels)
  Permission: botmotherdc.admin.reset (OP)

/positions list
  Description: List all available positions
  Permission: botmother.admin.positions (OP)

/positions give <player> <position> <days>
  Description: Grant a position to a player
  Permission: botmother.admin.positions (OP)
  Example: /positions give Steve vip 30

/positions remove <player> <position>
  Description: Remove a position from a player
  Permission: botmother.admin.positions (OP)
  Example: /positions remove Steve vip

/positions check <player>
  Description: Check a player's active positions
  Permission: botmother.admin.positions (OP)
  Example: /positions check Steve
 
11. Permissions Reference

Code (Text):

# Wildcard Permissions
botmotherdc.*                - All permissions
botmotherdc.admin.*          - All admin permissions
botmotherdc.user.*           - All user permissions

# Admin Permissions (default: OP)
botmotherdc.admin.reload     - Reload configuration
botmotherdc.admin.reset      - Reset Discord setup
botmother.admin.positions    - Manage player positions

# User Permissions (default: true)
botmotherdc.sync             - Use the sync command
botmotherdc.positions        - View own positions

# Special Permissions
botmotherdc.synced           - Granted after sync
botmotherdc.chat.discord     - Use Discord chat features
botmotherdc.chat.color       - Use color codes in chat
botmother.links.bypass       - Bypass link filter
 
12. Configuration Files

File Structure

Code (Text):

plugins/BotMotherDC/
├── configs/
│   ├── config.yml      # Main plugin configuration
│   ├── stripe.yml      # Stripe payment settings
│   ├── positions.yml   # VIP/ranks and staff roles
│   ├── chat.yml        # Chat filter settings
│   └── norms.yml       # Moderation rules
├── languages/
│   ├── en.yml          # English
│   ├── pt_br.yml       # Portuguese (Brazil)
│   ├── es.yml          # Spanish
│   ├── it.yml          # Italian
│   ├── ru.yml          # Russian
│   └── zh.yml          # Chinese
├── data/
│   ├── linked_accounts.yml    # Synced accounts
│   ├── shop_data.yml          # Position purchases
│   ├── voice_time.yml         # Voice time tracking
│   ├── tickets.yml            # Ticket history
│   └── moderation_data.yml    # Punishment records
└── ssl/
    └── keystore.jks    # Auto-generated SSL certificate
 
13. Troubleshooting

Bot Not Connecting

  • Check bot token is correct in config.yml
  • Ensure bot has Administrator permission in Discord
  • Verify all Gateway Intents are enabled in Developer Portal
  • Check console for error messages

Stripe Webhook Errors

  • "TLS certificate verify failed": Use Cloudflare Tunnel or valid SSL
  • "Timed out connecting": Open port 8443 in firewall
  • "Invalid signature": Verify webhook-secret is correct
  • Check Stripe Dashboard > Webhooks for error details

Positions Not Working

  • Ensure Stripe is fully configured
  • Check webhook-secret is set (not placeholder)
  • Verify position exists in positions.yml
  • Enable debug-mode in config.yml for detailed logs

Sync Rewards Not Given

  • Check sync-rewards.enabled is true
  • Verify commands syntax in positions.yml
  • Test commands manually in console
  • Enable debug-mode for detailed logging

Debug Mode

Enable debug mode for detailed logging:

Code (Text):

# In config.yml
plugin:
  debug-mode: true
 

Bot Mother DC Documentation v1.0.0

Resource Information
Author:
----------
Total Downloads: 34
First Release: Dec 2, 2025
Last Update: Dec 4, 2025
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings