Merhaba! Bu proje, Discord sunucunuzdaki üye etkileşimlerini (ses ve mesaj) takip etmek, analiz etmek ve sıralamak için geliştirilmiş gelişmiş bir istatistik botudur. Sunucu aktivitesini ölçmek, en aktif üyeleri ödüllendirmek ve topluluk yönetimini veriye dayalı hale getirmek için ideal bir çözümdür.
Bot, üyelerin ses kanallarında ne kadar süre geçirdiğini ve metin kanallarına kaç mesaj attığını anlık olarak takip eder. MongoDB veritabanı sayesinde bu verileri kalıcı olarak saklar ve çeşitli komutlarla detaylı raporlar sunar.
- 📈 Kapsamlı İstatistik Takibi: Ses kanallarında geçirilen süre ve metin kanallarında atılan mesaj sayısını kullanıcı bazlı olarak takip eder.
- 🏆 Liderlik Tabloları: Sunucunun en aktif üyelerini ses, mesaj ve genel kategorilerde listeleyen komutlar (
!top,!sesliste,!mesajliste). - 👤 Kişisel İstatistikler: Her üyenin kendi veya başkasının detaylı istatistiklerini görmesini sağlayan
!benkomutu. - 📢 Kanal Bazlı Analiz: Belirli bir metin veya ses kanalının aktivite raporunu sunan
!kanalkomutu. - 🛡️ Karaliste Sistemi: Belirtilen kullanıcıların istatistiklerinin sayılmasını engelleme özelliği.
- 💾 MongoDB Veritabanı: Tüm istatistik verilerini güvenli ve kalıcı bir şekilde MongoDB (Atlas uyumlu) üzerinde saklar.
- ⚙️ Hibrit Komut Desteği: Hem
prefix (!)hem deslash (/)komutlarını destekler. - 🔧 Yeniden Yükleme: Botu kapatmadan komutları ve eventleri yeniden yüklemek için
!reloadkomutu (Sadece bot sahibi). - 💨 Performans Odaklı: Veritabanı sorguları ve veri işleme, performansı en üst düzeyde tutacak şekilde optimize edilmiştir.
Projeyi bilgisayarınıza klonlayarak başlayın.
git clone https://github.com/pordarman/ultimate-stat-bot.git
cd ultimate-stat-botProjenin çalışması için gerekli olan Node.js modüllerini yükleyin.
npm installProjenin ana dizininde .env.example dosyasını kopyalayıp .env adında yeni bir dosya oluşturun. Ardından bu dosyanın içini kendi bilgilerinizle doldurun.
# --------------------------------- #
# BOT & VERİTABANI AYARLARI #
# --------------------------------- #
DISCORD_TOKEN= # Botunuzun tokeni
PREFIX=! # Botunuzun kullanacağı ön-ek (prefix)
MONGO_URI= # MongoDB Atlas bağlantı URI'niz
# --------------------------------- #
# YETKİLENDİRME AYARLARI #
# --------------------------------- #
OWNER_IDS= # Bot sahibi ID'leri (Birden fazlaysa virgülle ayırın, boşluk bırakmayın)
MOD_ROLE_IDS= # Yönetici rollerinin ID'leri (Birden fazlaysa virgülle ayırın, boşluk bırakmayın)
# --------------------------------- #
# İSTATİSTİK AYARLARI #
# --------------------------------- #
STAT_ACTIVE=1 # İstatistik sayımını aktif etmek için 1, pasif etmek için 0 yapın
GUILD_ID= # Botun çalışacağı sunucunun ID'si
VOICE_CHANNEL_ID= # Botun sürekli kalacağı ses kanalının ID'si (İsteğe bağlı)📃 Değişkenlerin açıklamaları ve nasıl alınacakları aşağıda belirtilmiştir.
-
DISCORD_TOKEN:
- Discord Developer Portal'a gidin.
- "New Application" diyerek yeni bir bot oluşturun.
- "Bot" sekmesine gelin ve "Reset Token" butonuna tıklayarak token'ınızı alın. Bu token'ı kimseyle paylaşmayın!
- Privileged Gateway Intents kısmından
MESSAGE CONTENT INTENTveSERVER MEMBERS INTENTseçeneklerini aktif edin.
-
MONGO_URI:
- MongoDB Atlas'a kaydolun ve ücretsiz bir cluster oluşturun.
- "Database Access" bölümünden bir kullanıcı adı ve şifre oluşturun.
- "Network Access" bölümünden
0.0.0.0/0(her yerden erişim) IP adresini ekleyin. - "Database" sekmesinden "Connect" > "Drivers" seçeneğine tıklayın ve size verilen bağlantı linkini kopyalayın. Şifre kısmını kendi belirlediğiniz şifre ile güncelleyin.
-
Diğer ID'ler (Sunucu, Kanal, Rol):
- Discord ayarlarından "Gelişmiş" sekmesine girin ve "Geliştirici Modu"nu aktif edin.
- ID'sini almak istediğiniz sunucuya, kanala veya role sağ tıklayıp "ID'yi Kopyala" seçeneğini kullanın.
Terminali açıp aşağıdaki komutu yazın:
node index.jsVeya, start.bat dosyasına çift tıklayarak botu kolayca başlatabilirsiniz. Bu dosya, bot çöktüğünde otomatik olarak yeniden başlatacaktır.
PM2, botunuzun sürekli olarak online kalmasını ve kolayca yönetilmesini sağlar.
npm i -g pm2
pm2 start index.js --name StatBotLogları (kayıtları) görmek için:
pm2 logs StatBot✅
.envdosyasındaki tüm gerekli alanlar doldurulmadan bot başlamayacaktır.
| Komut | Alternatifler | Açıklama | Yetki |
|---|---|---|---|
!topstat |
top |
Genel ses ve mesaj istatistiklerini gösterir. | Herkes |
!topüye |
topmembers |
En çok mesaj atan ve seste kalan üyeleri gösterir. | Herkes |
!mesaj |
m, message |
Sunucudaki genel mesaj istatistiklerini gösterir. | Herkes |
!ses |
s, voice |
Sunucudaki genel ses istatistiklerini gösterir. | Herkes |
!ben |
me, user |
Kendi veya belirtilen bir üyenin istatistiklerini gösterir. | Herkes |
!kanal |
channel |
Belirtilen veya bulunulan kanalın istatistiklerini gösterir. | Herkes |
!mesajliste |
ml, msglist |
Sunucudaki tüm üyelerin mesaj sıralamasını gösterir. | Herkes |
!sesliste |
sl, voicelist |
Sunucudaki tüm üyelerin ses sıralamasını gösterir. | Herkes |
!mesajkliste |
mkl, msgclist |
Sunucudaki tüm kanalların mesaj sıralamasını gösterir. | Herkes |
!seskliste |
skl, voiceclist |
Sunucudaki tüm kanalların ses sıralamasını gösterir. | Herkes |
!karaliste |
blacklist |
Belirtilen kullanıcıyı istatistik takibinden çıkarır/ekler. | Admin |
!yardım |
help, komutlar |
Tüm komutları içeren bir yardım menüsü gösterir. | Admin |
!reload |
r, yenile |
Bot komutlarını ve olaylarını yeniden yükler. | Sahip |
Bu bot ile sunucunuzun aktivitesini sayılara dökebilir ve topluluğunuzu daha iyi anlayabilirsiniz. Kod yapısı açık, geliştirilebilir ve modülerdir. Artık kontrol sizde! ✨