Kod ⚠️ Uyarı Sistemi (Uyarı Ver & Listele)

  • Konuyu Başlatan Konuyu Başlatan WxTimer
  • Başlangıç tarihi Başlangıç tarihi

Hoş Geldiniz!

Discordev'e Kayıt Olduğunuzda, topluluğumuzun diğer üyeleriyle tartışabilir, paylaşımda bulunabilir ve özel mesajlaşabilirsiniz.

Hemen Kayıt Ol!
  • Konu Yazar
Merhaba arkadaşlar 👋
Sunucunuzda düzeni sağlamak için geliştirdiğim **uyarı sistemi**ni paylaşıyorum.
Bu sistemle üyeleri uyarabilir ve tüm uyarıları kayıt altında tutabilirsiniz.



⚡ Özellikler
  • `/uyarı-at` komutu ile üyeye uyarı verme
  • `/uyarı-liste` komutu ile uyarı geçmişini görme
  • CroxyDB üzerinde kalıcı veri tutma
  • Toplam uyarı sayısını gösterme
  • Sebep kaydı ekleme
  • Yetki kısıtlaması (ModerateMembers yetkisi gerekli)



🔧 Kurulum
  1. Kodları commands/uyari-at.js ve commands/uyari-liste.js dosyalarına kaydedin.
  2. `croxydb` paketini yükleyin:
    Kod:
    npm install croxydb
  3. Botu yeniden başlatın.
  4. Komutları test edin.



📜 Kodlar

🔹 Uyarı Atma (uyari-at.js)
JavaScript:
const { SlashCommandBuilder } = require('@discordjs/builders');
const { PermissionFlagsBits } = require("discord.js");
const croxydb = require('croxydb');

module.exports = {
    data: new SlashCommandBuilder()
        .setName('uyarı-at')
        .setDescription('Kişiyi uyarır.')
        .setDefaultMemberPermissions(PermissionFlagsBits.ModerateMembers)

        .addUserOption(option =>
            option.setName('kişi')
                .setDescription('Uyarılacak kişi')
                .setRequired(true))

        .addStringOption(option =>
            option.setName('sebep')
                .setDescription('Uyarı sebebi')
                .setRequired(true)),

    async execute(interaction) {
        const member = interaction.options.getMember('kişi');
        const reason = interaction.options.getString('sebep');
        const userWarnings = croxydb.get(`warnings_${member.id}`) || [];
       
        userWarnings.push(reason);
        croxydb.set(`warnings_${member.id}`, userWarnings);
       
        await interaction.reply(`<:tik_arviis:1046067679884234863> ${member} **(** ${member.displayName} **)** adlı kişi başarıyla **uyarıldı.** \n\n <:alt_arviis:1100191032295047298>> **Bu kişi toplam** __ ${userWarnings.length} kez __ **uyarı almış.** \n\n<:modernsagok_arviis:1093852394317676634> **Uyarı Sebebi:** __${reason}__`);
    },
};

---

🔹 Uyarı Listeleme (uyari-liste.js)
JavaScript:
const { PermissionFlagsBits, SlashCommandBuilder } = require("discord.js");
const croxydb = require('croxydb');

module.exports = {
    data: new SlashCommandBuilder()
        .setName('uyarı-liste')
        .setDescription('Kişinin aldığı uyarıları gösterir.')
        .setDefaultMemberPermissions(PermissionFlagsBits.ModerateMembers)

        .addUserOption(option =>
            option.setName('kişi')
                .setDescription('Uyarıları gösterilecek kişi')
                .setRequired(true)),

    async execute(interaction) {
        const member = interaction.options.getMember('kişi');
        const userWarnings = croxydb.get(`warnings_${member.id}`) || [];

        if (userWarnings.length === 0) {
            await interaction.reply(`<:carpi_arviis:1046067681515814912> ${member} **(** ${member.displayName} **)** henüz **uyarı almamış.**`);
        } else {
            await interaction.reply(`> ${member} **(** ${member.displayName} **)** adlı kişi __toplam__ **${userWarnings.length} uyarı** almış. \n\n <:alt_arviis:1100191032295047298>> ${userWarnings.join('\n <:alt_arviis:1100191032295047298>> ')}`);
        }
    },
};



📝 Notlar
  • Veriler croxydb ile kalıcı tutulur.
  • Aynı üyeye tekrar uyarı atılabilir, listeye eklenir.
  • Kullanıcı hiç uyarı almadıysa özel bir mesaj döner.
  • Çıktılarda emojilerle görsellik artırılmıştır.

👉 Umarım işinize yarar, sorularınızı konu altına yazabilirsiniz. 🚀
 
Geri
Üst