Discord · Bələdçi

Discord moderasiya botu necə hazırlamaq olar

Yeniləndi October 11, 2026 6 dəq oxuma

Bu səhifədə
  1. Discord AutoMod ilə başlayın
  2. Xüsusi moderasiya botu nə qazandırır
  3. İcazələr, rol sırası və intent-lər
  4. Python ilə moderasiya əmrləri (discord.py)
  5. JavaScript ilə timeout əmri (discord.js)
  6. Baş verənləri loglamaq
  7. Botu onlayn saxlayın
  8. FAQ

Aktiv Discord serverinə heç vaxt yatmayan moderasiya lazımdır: spam filtrləri, cəld timeout-lar, mesaj selini təmizləmək üçün bir yol və kimin nə etdiyinin qeydi. Bunun bir hissəsini Discord AutoMod ilə pulsuz verir, qalanını isə öz kiçik botunuz həll edir.

Bu bələdçi AutoMod ilə başlayır, çünki bəlkə də sizə yalnız o lazımdır, sonra Python (discord.py) və ya JavaScript (discord.js) ilə moderasiya əmrləri qurur və onların işləməsi üçün lazım olan icazələri, intent-ləri və logları izah edir.

Discord AutoMod ilə başlayın

AutoMod Discord-a daxildir və Discord tərəfində işləyir, ona görə də heç bir bot onlayn olmayanda belə işləyir. Server Settings → AutoMod bölməsini açın; bunun üçün Manage Server icazəsi lazımdır. Təklif etdikləri:

  • Öz açar sözləriniz, joker simvollar və müntəzəm ifadələrlə xüsusi söz filtrləri.
  • Tez-tez işarələnən sözlər: söyüş, cinsi məzmun və təhqiramiz ifadələr üçün hazır siyahılar.
  • Etiketləmə spamı: mesaj eyni anda çox sayda insanı etiketləyəndə, sizin təyin etdiyiniz limitə qədər işə düşür.
  • Spam məzmun: Discord-un şübhəli spamı özünün aşkarlaması.
  • Üzv profili filtrləri: istifadəçi adlarında və profillərdə yoxlanılan açar sözlər.

Hər qayda üçün nə baş verəcəyini siz seçirsiniz: mesajı bloklamaq, moderatorlar kanalına xəbərdarlıq göndərmək və ya üzvə timeout vermək. Rolları və kanalları istisna edə bilərsiniz. Manage Server və ya Administrator icazəsi olan üzvlər heç vaxt filtrlənmir.

Probleminiz spam, təhqirlər və kütləvi etiketləmələrdirsə, əvvəlcə AutoMod-u qurun və bunun kifayət edib-etmədiyinə baxın. Xüsusi bot o zaman özünü doğruldur ki, moderatorlarınızın istifadə edə biləcəyi əmrlər, öz qaydalarınız və düzgün log istəyirsiniz.

Xüsusi moderasiya botu nə qazandırır

  • Moderatorlar üçün slash əmrləri: /timeout, /purge, /slowmode, kick və ban, hər dəfə səbəb qeyd olunmaqla.
  • Mod log kanalı: qoşulmalar, ayrılmalar, silinmiş mesajlar və moderatorlarınızın etdiyi hər addım.
  • Öz qaydalarınız: toplanıb timeout-a çevrilən xəbərdarlıqlar, gözlədilən yeni hesablar, yalnız bəzi kanallarda icazə verilən linklər.
  • Hər şey bir yerdə, ictimai botun standart ayarlarına görə yox, icmanıza uyğun tənzimlənmiş.

Əgər heç vaxt bot hazırlamamısınızsa, tətbiqi yaratmaq, token-i almaq və ilk /ping əmrini işə salmaq üçün əvvəlcə Discord botu necə hazırlamaq olar bələdçisinə əməl edin. Aşağıdakı kod onun üzərində qurulur.

İcazələr, rol sırası və intent-lər

Botu yalnız əmrlərinin istifadə etdiyi icazələrlə dəvət edin:

Əməliyyatİcazə
Üzvə timeout vermək (28 günə qədər)Moderate Members
Üzvü serverdən çıxarmaqKick Members
Üzvü banlamaqBan Members
Mesajları silməkManage Messages və Read Message History
Yavaş rejimi qurmaqManage Channels

Rol sırası vacibdir. Bot yalnız ən yüksək rolu botun öz ən yüksək rolundan aşağıda olan üzvlərə təsir edə bilər. Server Settings → Roles bölməsində botun rolunu moderasiya etməli olduğu rolların üstünə sürüşdürün. Heç kim server sahibinə və ya Administrator-a timeout verə bilməz.

Intent-lər. Slash əmrləri üçün heç bir imtiyazlı intent lazım deyil. Moderasiya üçün ikisi faydalıdır: qoşulma və ayrılma logları üçün Server Members, bot mesajları özü filtrləmək üçün oxuyursa Message Content. Onları Developer Portal-da Bot → Privileged Gateway Intents altında aktivləşdirin. 2026-cı ilin iyunundan Discord bunları yalnız 10 000-dən çox istifadəçiyə çatan tətbiqlər üçün yoxlayır; bundan aşağıda açarı yandırmaq kifayətdir.

Python ilə moderasiya əmrləri (discord.py)

discord.py 2.7 quraşdırılıbsa (pip install discord.py), bu bot.py /timeout, /purge və /slowmode əmrlərini əlavə edir:

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 hər əmri həmin icazəsi olmayan üzvlərdən gizlədir. Server adminləri əmri kimin görəcəyini Server Settings → Integrations altında dəyişə bilər. Koddakı limitlər Discord-un limitləridir: 40 320 dəqiqə 28 gün edir, yavaş rejim isə 6 saata qədər qalxır.

JavaScript ilə timeout əmri (discord.js)

discord.js 14 ilə (npm install discord.js) eyni /timeout belə görünür. moderatable cəhd etməzdən əvvəl rol sırasını və botun icazəsini yoxlayır:

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);

Kick və ban da eyni qaydanı member.kick(reason) və member.ban({ reason, deleteMessageSeconds }) ilə izləyir. Ban zamanı üzvün son 7 günə qədər mesajları da silinə bilər.

Baş verənləri loglamaq

  • Həmişə səbəb göstərin. Kitabxanalar onu Discord-un audit loguna (Server Settings → Audit Log) göndərir, o da qeydləri 45 gün saxlayır.
  • Hər əməliyyatı həm də gizli mod log kanalına göndərin: kim etdi, kimə, niyə və nə qədər müddətə. Audit logdan fərqli olaraq, bu kanal tarixçəni istədiyiniz qədər saxlayır.
  • Qoşulmalar və ayrılmalar üçün Server Members intent-i lazımdır; təzə birdəfəlik hesabları tutmaq üçün hesabın yaradılma tarixini də loglayın.
  • Silinmiş və redaktə olunmuş mesajları mətni ilə birlikdə yalnız botda Message Content intent-i olduqda loglamaq mümkündür.

Toplu silmə limitini yadda saxlayın: Discord bir çağırışda ən çox 100 mesaj silir və iki həftədən köhnə mesajları qəbul etmir, ona görə də /purge köhnə kanalı təmizləmək üçün yox, təzə spam üçündür.

Botu onlayn saxlayın

AutoMod siz olmadan da işləyir, amma əmrləriniz və loglarınız botun prosesi dayandığı an dayanır. Ev kompüterində işləyən moderasiya botu məhz kompüter yuxu rejiminə keçəndə oflayn olur, reydlər isə nadir hallarda iş saatlarını gözləyir.

HytHost Discord bot hostinqində layihəni yükləyirsiniz, mühiti seçirsiniz (Node.js, Python, Java, Go, C#, Bun və ya Lavalink) və token-i kodda deyil, başlanğıc dəyişənində saxlayırsınız. Panel botu işə salır və çökmədən sonra yenidən başladır. Tam quraşdırma Discord botunu 24/7 necə hostinq etməli bələdçisindədir.

Moderasiya botu yalnız işlədiyi müddətdə fayda verir: HytHost Discord bot hostinqi Python, Node.js və daha 5 mühiti dəstəkləyir, €0.89/ay-dan.

Bot hostinq planlarına baxın
FAQ

Tez-tez verilən suallar

Bir çox server üçün AutoMod kifayətdir: açar sözləri, işarələnən sözləri, etiketləmə spamını və şübhəli spamı bloklayır, üzvlərə timeout da verə bilir. Moderatorlarınıza purge və yavaş rejim kimi əmrlər, öz qaydalarınız və ya əməliyyatların tam logu lazım olduqda bot əlavə edin.

Yalnız əmrlərinin istifadə etdikləri: timeout üçün Moderate Members, Kick Members, Ban Members, mesajları silmək üçün Read Message History ilə birlikdə Manage Messages və yavaş rejim üçün Manage Channels. Ona Administrator verməkdən çəkinin.

Adətən səbəb rol sırasıdır: bot yalnız ən yüksək rolu öz rolundan aşağıda olan üzvlərə təsir edə bilər, ona görə də Server Settings-də botun rolunu yuxarı qaldırın. Server sahibinə və Administrator icazəsi olan üzvlərə ümumiyyətlə timeout vermək olmur.

Toplu şəkildə yox. Discord-un toplu silməsi bir dəfəyə ən çox 100 mesaj qəbul edir və yalnız iki həftədən yeni olanları. Köhnə mesajları yalnız bir-bir silmək olar, bu da yavaşdır.

Yalnız mesajları özü oxuyursa, məsələn, sözləri filtrləmək və ya silinmiş mesajların mətnini loglamaq üçün. Slash əmrləri, timeout-lar, banlar və purge onsuz da işləyir.

Moderasiya botunuzu host edin

HytHost Discord bot hostinqi Python, Node.js, Java, Go, C#, Bun və ya Lavalink işlədir, çökmədən sonra botu yenidən başladır və €0.89/ay-dan başlayır.

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

Bu bələdçi sizə kömək etdi?