Discord · מדריך

איך ליצור בוט מודרציה ל-Discord

עודכן October 11, 2026 6 דקות קריאה

בעמוד הזה
  1. התחילו עם Discord AutoMod
  2. מה מוסיף בוט מודרציה משלכם
  3. הרשאות, סדר תפקידים ו-intents
  4. פקודות מודרציה ב-Python (discord.py)
  5. פקודת פסק זמן ב-JavaScript (discord.js)
  6. תיעוד של מה שקורה
  7. השאירו את הבוט מחובר
  8. שאלות נפוצות

שרת Discord פעיל צריך מודרציה שלא הולכת לישון: מסנני ספאם, פסקי זמן מהירים, דרך לנקות הצפה של הודעות ותיעוד של מי עשה מה. חלק מזה Discord נותן בחינם עם AutoMod, ואת השאר משלים בוט קטן משלכם.

המדריך מתחיל ב-AutoMod, כי ייתכן שזה כל מה שאתם צריכים, ואז בונה פקודות מודרציה ב-Python (discord.py) או ב-JavaScript (discord.js) ומסביר את ההרשאות, ה-intents והיומנים שגורמים להן לעבוד.

התחילו עם Discord AutoMod

AutoMod מובנה ב-Discord ורץ בצד של Discord, ולכן הוא עובד גם כשאף בוט לא מחובר. פתחו את Server Settings → AutoMod; תצטרכו את ההרשאה Manage Server. הוא מציע:

  • מסנני מילים מותאמים עם מילות מפתח משלכם, תווים כלליים (wildcards) וביטויים רגולריים.
  • מילים מסומנות נפוצות: רשימות מוכנות של ניבולי פה, תוכן מיני וכינויי גנאי.
  • ספאם תיוגים: פעולה כשהודעה מתייגת יותר מדי אנשים בבת אחת, עד מגבלה שאתם קובעים.
  • תוכן ספאם: הזיהוי של Discord עצמו להודעות שחשודות כספאם.
  • מסנני פרופיל חברים: מילות מפתח שנבדקות מול שמות משתמש ופרופילים.

לכל כלל בוחרים מה יקרה: לחסום את ההודעה, לשלוח התראה לערוץ של המודרטורים או לתת לחבר פסק זמן. אפשר להחריג תפקידים וערוצים. חברים עם Manage Server או Administrator אף פעם לא מסוננים.

אם הבעיה שלכם היא ספאם, כינויי גנאי ותיוגים המוניים, הגדירו קודם את AutoMod ובדקו אם זה מספיק. בוט משלכם משתלם כשאתם רוצים פקודות שהמודרטורים יכולים להשתמש בהן, כללים משלכם ויומן אמיתי.

מה מוסיף בוט מודרציה משלכם

  • פקודות סלאש למודרטורים: /timeout, /purge, /slowmode, הרחקה וחסימה, עם סיבה שנרשמת בכל פעם.
  • ערוץ יומן מודרציה עם הצטרפויות, עזיבות, הודעות שנמחקו וכל פעולה שהמודרטורים שלכם מבצעים.
  • כללים משלכם: אזהרות שמצטברות לפסק זמן, עיכוב לחשבונות חדשים, קישורים שמותרים רק בחלק מהערוצים.
  • הכול במקום אחד, מותאם לקהילה שלכם במקום לברירות המחדל של בוט ציבורי.

אם מעולם לא יצרתם בוט, עקבו קודם אחרי איך ליצור בוט Discord כדי ליצור את האפליקציה, לקבל את הטוקן ולהריץ פקודת /ping ראשונה. הקוד שלהלן נבנה על זה.

הרשאות, סדר תפקידים ו-intents

הזמינו את הבוט רק עם ההרשאות שהפקודות שלו משתמשות בהן:

פעולההרשאה
לתת לחבר פסק זמן (עד 28 ימים)Moderate Members
להרחיק חברKick Members
לחסום חברBan Members
למחוק הודעותManage Messages ו-Read Message History
להפעיל מצב איטיManage Channels

סדר התפקידים חשוב. בוט יכול לפעול רק על חברים שהתפקיד הגבוה ביותר שלהם נמוך מהתפקיד הגבוה ביותר של הבוט. ב-Server Settings → Roles גררו את התפקיד של הבוט מעל התפקידים שהוא אמור לנהל. אף אחד לא יכול לתת פסק זמן לבעלים של השרת או ל-Administrator.

Intents. פקודות סלאש לא צריכות שום intent מוגן. שניים שימושיים למודרציה: Server Members ליומני הצטרפות ועזיבה, ו-Message Content אם הבוט קורא הודעות כדי לסנן אותן בעצמו. מפעילים אותם תחת Bot → Privileged Gateway Intents ב-Developer Portal. מאז יוני 2026, Discord בודק אותם רק באפליקציות שמגיעות ליותר מ-10,000 משתמשים; מתחת לזה, מספיק להפעיל את המתג.

פקודות מודרציה ב-Python (discord.py)

אחרי שמתקינים discord.py 2.7 (pip install discord.py), קובץ bot.py הזה מוסיף את /timeout, /purge ו-/slowmode:

import os
from datetime import timedelta
from typing import Optional

import discord
from discord import app_commands

class Bot(discord.Client):
    def __init__(self):
        super().__init__(intents=discord.Intents.default())
        self.tree = app_commands.CommandTree(self)

    async def setup_hook(self):
        await self.tree.sync()

bot = Bot()

@bot.tree.command(description="Time out a member")
@app_commands.guild_only()
@app_commands.default_permissions(moderate_members=True)
async def timeout(interaction: discord.Interaction, member: discord.Member,
                  minutes: app_commands.Range[int, 1, 40320], reason: Optional[str] = None):
    await member.timeout(timedelta(minutes=minutes), reason=reason)
    await interaction.response.send_message(f"{member.mention} is timed out for {minutes} min.", ephemeral=True)

@bot.tree.command(description="Delete recent messages in this channel")
@app_commands.guild_only()
@app_commands.default_permissions(manage_messages=True)
async def purge(interaction: discord.Interaction, count: app_commands.Range[int, 1, 100]):
    await interaction.response.defer(ephemeral=True)
    deleted = await interaction.channel.purge(limit=count)
    await interaction.followup.send(f"Deleted {len(deleted)} messages.", ephemeral=True)

@bot.tree.command(description="Set slow mode in this channel")
@app_commands.guild_only()
@app_commands.default_permissions(manage_channels=True)
async def slowmode(interaction: discord.Interaction, seconds: app_commands.Range[int, 0, 21600]):
    await interaction.channel.edit(slowmode_delay=seconds)
    await interaction.response.send_message(f"Slow mode is now {seconds} s.", ephemeral=True)

bot.run(os.environ["DISCORD_TOKEN"])

default_permissions מסתיר כל פקודה מחברים שאין להם את ההרשאה המתאימה. מנהלי השרת יכולים לשנות מי רואה אותה ב-Server Settings → Integrations. המגבלות בקוד הן של Discord: 40,320 דקות הן 28 ימים, ומצב איטי מגיע עד 6 שעות.

פקודת פסק זמן ב-JavaScript (discord.js)

עם discord.js 14 (npm install discord.js), אותה פקודת /timeout נראית כך. moderatable בודק את סדר התפקידים ואת ההרשאה של הבוט לפני הניסיון:

const { Client, Events, GatewayIntentBits, InteractionContextType, MessageFlags,
  PermissionFlagsBits, REST, Routes, SlashCommandBuilder } = require('discord.js');

const commands = [
  new SlashCommandBuilder()
    .setName('timeout').setDescription('Time out a member')
    .addUserOption((o) => o.setName('member').setDescription('Member').setRequired(true))
    .addIntegerOption((o) => o.setName('minutes').setDescription('Minutes').setMinValue(1).setMaxValue(40320).setRequired(true))
    .addStringOption((o) => o.setName('reason').setDescription('Reason'))
    .setDefaultMemberPermissions(PermissionFlagsBits.ModerateMembers)
    .setContexts(InteractionContextType.Guild)
    .toJSON(),
];
const client = new Client({ intents: [GatewayIntentBits.Guilds] });

client.once(Events.ClientReady, async (c) => {
  await new REST().setToken(process.env.DISCORD_TOKEN).put(Routes.applicationCommands(c.user.id), { body: commands });
});

client.on(Events.InteractionCreate, async (interaction) => {
  if (!interaction.isChatInputCommand() || interaction.commandName !== 'timeout') return;
  const member = interaction.options.getMember('member');
  const minutes = interaction.options.getInteger('minutes');
  if (!member?.moderatable) {
    return interaction.reply({ content: 'I cannot time out that member.', flags: MessageFlags.Ephemeral });
  }
  await member.timeout(minutes * 60_000, interaction.options.getString('reason') ?? undefined);
  await interaction.reply({ content: `${member} is timed out for ${minutes} min.`, flags: MessageFlags.Ephemeral });
});

client.login(process.env.DISCORD_TOKEN);

הרחקה וחסימה עובדות באותה תבנית עם member.kick(reason) ו-member.ban({ reason, deleteMessageSeconds }). חסימה יכולה גם למחוק עד 7 ימים של הודעות של החבר.

תיעוד של מה שקורה

  • תמיד ציינו סיבה. הספריות שולחות אותה ליומן הביקורת של Discord (Server Settings → Audit Log), ששומר רשומות 45 ימים.
  • פרסמו כל פעולה גם בערוץ יומן מודרציה פרטי: מי פעל, נגד מי, למה ולכמה זמן. בניגוד ליומן הביקורת, הוא שומר את ההיסטוריה כמה זמן שתרצו.
  • הצטרפויות ועזיבות דורשות את ה-intent של Server Members; תעדו את תאריך יצירת החשבון כדי לזהות חשבונות חד-פעמיים טריים.
  • הודעות שנמחקו או נערכו אפשר לתעד יחד עם הטקסט שלהן רק אם לבוט יש את ה-intent של Message Content.

זכרו את מגבלת המחיקה הקבוצתית: Discord מוחק עד 100 הודעות בכל קריאה ומסרב למחוק הודעות ישנות משבועיים, ולכן /purge מיועד לספאם טרי, לא לניקוי ערוץ ישן.

השאירו את הבוט מחובר

AutoMod ממשיך לעבוד גם בלעדיכם, אבל הפקודות והיומנים שלכם נעצרים ברגע שהתהליך של הבוט נעצר. בוט מודרציה שרץ על מחשב ביתי מנותק בדיוק כשהמחשב במצב שינה, ופשיטות כמעט אף פעם לא מחכות לשעות העבודה.

ב-אחסון בוטי Discord של HytHost מעלים את הפרויקט, בוחרים סביבת ריצה (Node.js, Python, Java, Go, C#, Bun או Lavalink) ושומרים את הטוקן במשתנה הפעלה במקום בקוד. הפאנל מפעיל את הבוט ומפעיל אותו מחדש אחרי קריסה. ההגדרה המלאה נמצאת ב-איך לארח בוט Discord שפועל 24/7.

בוט מודרציה עובד רק כל עוד הוא רץ: אחסון בוטי Discord של HytHost תומך ב-Python, ב-Node.js ובעוד 5 סביבות ריצה, החל מ-€0.89 לחודש.

לתוכניות אחסון הבוטים
שאלות נפוצות

שאלות נפוצות

להרבה שרתים AutoMod מספיק: הוא חוסם מילות מפתח, מילים מסומנות, ספאם תיוגים וספאם חשוד, ויכול לתת לחברים פסק זמן. הוסיפו בוט כשהמודרטורים שלכם צריכים פקודות כמו ניקוי הודעות ומצב איטי, כללים משלכם או יומן מלא של פעולות.

רק את אלה שהפקודות שלו משתמשות בהן: Moderate Members לפסקי זמן, Kick Members, Ban Members, Manage Messages יחד עם Read Message History למחיקת הודעות, ו-Manage Channels למצב איטי. הימנעו מלתת לו Administrator.

בדרך כלל בגלל סדר התפקידים: הבוט יכול לפעול רק על חברים שהתפקיד הגבוה ביותר שלהם נמוך משלו, אז העבירו את התפקיד של הבוט גבוה יותר ב-Server Settings. לבעלים של השרת ולחברים עם Administrator אי אפשר לתת פסק זמן בכלל.

לא במחיקה קבוצתית. המחיקה הקבוצתית של Discord מקבלת עד 100 הודעות בכל פעם, ורק הודעות שנשלחו בשבועיים האחרונים. הודעות ישנות יותר אפשר למחוק רק אחת-אחת, וזה איטי.

רק אם הוא קורא הודעות בעצמו, למשל כדי לסנן מילים או לתעד את הטקסט של הודעות שנמחקו. פקודות סלאש, פסקי זמן, חסימות וניקוי הודעות עובדים גם בלעדיו.

ארחו את בוט המודרציה שלכם

אחסון בוטי Discord של HytHost מריץ Python, Node.js, Java, Go, C#, Bun או Lavalink, מפעיל את הבוט מחדש אחרי קריסה ומתחיל מ-€0.89 לחודש.

Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hours

המדריך הזה עזר לך?