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
Kurulum
Kodlar
Uyarı Atma (uyari-at.js)
---
Uyarı Listeleme (uyari-liste.js)
Notlar
Umarım işinize yarar, sorularınızı konu altına yazabilirsiniz. 

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.

- `/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)

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


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}__`);
},
};
---

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>> ')}`);
}
},
};

- 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.

