discord.js-vsc
Version:
VSC Discord Bot Module - Ban System, Voice System, Status Role System
503 lines (401 loc) • 16.4 kB
Markdown
# 🚀 VSC Discord Bot Modülü
Discord botları için geliştirilmiş kapsamlı bir modül. Ban sistemi, ses sistemi ve durum rol sistemi gibi özellikleri içerir.
[](https://opensource.org/licenses/MIT)
[](https://nodejs.org/)
[](https://discord.js.org/)
[](https://github.com/hasbutcu/discord.js-vsc)
[](https://github.com/hasbutcu/discord.js-vsc)
[](https://www.npmjs.com/package/discord.js-vsc)
[](https://www.npmjs.com/package/discord.js-vsc)
## 📋 İçindekiler
- [Özellikler](#-özellikler)
- [Kurulum](#-kurulum)
- [Hızlı Başlangıç](#-hızlı-başlangıç)
- [Detaylı Kullanım](#-detaylı-kullanım)
- [Örnekler](#-örnekler)
- [Hata Yönetimi](#️-hata-yönetimi)
- [Sürüm Kontrolü](#-sürüm-kontrolü)
- [Lisans](#-lisans)
- [Destek](#-destek)
## ✨ Özellikler
### 🛡️ Ban Sistemi (`ikiban()`)
- **Otomatik Ban/Kick**: Ana sunucudan ayrılan kullanıcıları otomatik olarak yan sunucudan banlar/kickler
- **Çapraz Sunucu Yönetimi**: Farklı sunucular arası ban sistemi
- **Özelleştirilebilir Sebepler**: Ban sebebini özelleştirebilirsiniz
- **Log Sistemi**: Ban işlemlerini belirtilen kanala loglar
- **Ban/Kick Seçeneği**: İstediğiniz işlemi seçebilirsiniz
### 🎵 Ses Sistemi (`ses()`)
- **Otomatik Bağlanma**: Bot belirtilen ses kanalına otomatik bağlanır
- **Otomatik Yeniden Bağlanma**: Bağlantı kesildiğinde otomatik olarak yeniden bağlanır
- **Ses Kanalı Yönetimi**: Ses kanallarını kolayca yönetebilirsiniz
### 🏷️ Durum Rol Sistemi (`durumrol()`)
- **Otomatik Rol Verme**: Kullanıcının özel durumuna göre otomatik rol verir
- **Gerçek Zamanlı İzleme**: Durum değişikliklerini anında takip eder
- **Özel Durum Eşleştirme**: Belirttiğiniz metni içeren durumlara rol verir
- **Log Sistemi**: Rol verme/alma işlemlerini loglar
### 🎵 Welcome Sistemi (`welcome()`)
- **Otomatik Ses Çalma**: Ses kanalına giren kullanıcılara özel sesler çalar
- **Yetkili Kontrolü**: Yetkili rolüne sahip kullanıcılar için farklı ses
- **Tek Seferlik Çalma**: Ses dosyaları bir kez çalar, sürekli tekrar etmez
- **Arkaplan Sesi**: Kimse yokken sessiz arkaplan sesi çalar
- **Otomatik Bağlanma**: Bot belirtilen ses kanalına otomatik bağlanır
## 📦 Kurulum
### Gereksinimler
- Node.js 20.19.3 veya üzeri
- Discord.js 14.14.1 veya üzeri
- Discord Bot Token'ı
### Modülü Yükleme
```bash
npm install discord.js-vsc
```
### Discord Bot Oluşturma
1. [Discord Developer Portal](https://discord.com/developers/applications)'a gidin
2. "New Application" butonuna tıklayın
3. Bot sekmesine gidin ve "Add Bot" butonuna tıklayın
4. Token'ı kopyalayın ve güvenli bir yerde saklayın
5. Gerekli izinleri verin (aşağıda listelenmiştir)
## 🚀 Hızlı Başlangıç
### Temel Kurulum
```javascript
const Oxy = require('discord.js-vsc');
const { Client, GatewayIntentBits } = require('discord.js');
// Discord client'ını oluştur
const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMembers,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.MessageContent,
GatewayIntentBits.GuildPresences,
GatewayIntentBits.GuildVoiceStates
]
});
// VSC modülünü başlat
const bot = new Oxy(client);
// Sistemleri yapılandır
bot.ikiban({
main: 'ANA_SUNUCU_ID',
yan: 'YAN_SUNUCU_ID',
bansebep: 'Ana sunucudan ayrıldığı için atıldı.',
log: 'LOG_KANAL_ID',
action: 'ban'
});
bot.ses({
seskanali: 'SES_KANAL_ID',
sunucu: 'SUNUCU_ID'
});
bot.durumrol({
guildid: 'SUNUCU_ID',
rolid: 'ROL_ID',
durum: 'vsc',
log: 'LOG_KANAL_ID'
});
welcome({
hosgeldin: './hosgeldin.mp3',
yetkili: './yetkili.mp3',
arkaplan: './silence.mp3',
seslikanalid: 'SES_KANAL_ID',
adminrolid: 'YETKILI_ROL_ID'
});
// Bot'u başlat
client.login('BOT_TOKEN');
```
## 📖 Detaylı Kullanım
### 🛡️ Ban Sistemi Detayları
#### Parametreler
- `main` (zorunlu): Ana sunucu ID'si
- `yan` (zorunlu): Yan sunucu ID'si
- `bansebep` (opsiyonel): Ban sebebi (varsayılan: "Ana sunucudan ayrıldığı için atıldı.")
- `log` (opsiyonel): Log kanalı ID'si
- `action` (opsiyonel): İşlem türü - "ban" veya "kick" (varsayılan: "ban")
#### Nasıl Çalışır?
1. Kullanıcı ana sunucudan ayrılır
2. Sistem otomatik olarak yan sunucuda kullanıcıyı arar
3. Kullanıcı bulunursa belirtilen işlemi (ban/kick) yapar
4. Log kanalı belirtilmişse işlemi loglar
#### Örnek Kullanım
```javascript
bot.ikiban({
main: '1234567890123456789', // Ana sunucu
yan: '9876543210987654321', // Yan sunucu
bansebep: 'Ana sunucudan ayrıldığı için atıldı.',
log: '1234567890123456789', // Log kanalı
action: 'ban' // Ban işlemi
});
```
### 🎵 Ses Sistemi Detayları
#### Parametreler
- `seskanali` (zorunlu): Ses kanalı ID'si
- `sunucu` (zorunlu): Sunucu ID'si
#### Nasıl Çalışır?
1. Bot başlatıldığında belirtilen ses kanalına otomatik bağlanır
2. Bağlantı kesildiğinde 2 saniye bekler ve yeniden bağlanmaya çalışır
3. Sürekli olarak bağlantı durumunu kontrol eder
#### Örnek Kullanım
```javascript
bot.ses({
seskanali: '1234567890123456789', // Ses kanalı ID'si
sunucu: '1234567890123456789' // Sunucu ID'si
});
```
### 🏷️ Durum Rol Sistemi Detayları
#### Parametreler
- `guildid` (zorunlu): Sunucu ID'si
- `rolid` (zorunlu): Verilecek rol ID'si
- `durum` (zorunlu): Aranacak durum metni
- `log` (opsiyonel): Log kanalı ID'si
#### Nasıl Çalışır?
1. Kullanıcının özel durumu değiştiğinde sistem kontrol eder
2. Durum içeriğinde belirtilen metin varsa rol verir
3. Metin yoksa rolü alır
4. Log kanalı belirtilmişse işlemi loglar
#### Örnek Kullanım
```javascript
bot.durumrol({
guildid: '1234567890123456789', // Sunucu ID'si
rolid: '1234567890123456789', // Rol ID'si
durum: 'vsc', // Aranacak metin
log: '1234567890123456789' // Log kanalı
});
```
### 🎵 Welcome Sistemi Detayları
#### Parametreler
- `hosgeldin` (zorunlu): Normal kullanıcılar için ses dosyası yolu
- `yetkili` (zorunlu): Yetkili kullanıcılar için ses dosyası yolu
- `arkaplan` (zorunlu): Arkaplan ses dosyası yolu
- `seslikanalid` (zorunlu): Botun gireceği ses kanalı ID'si
- `adminrolid` (zorunlu): Yetkili rolü ID'si
#### Nasıl Çalışır?
1. Bot belirtilen ses kanalına otomatik bağlanır
2. Kullanıcı ses kanalına girdiğinde:
- **Yetkili varsa**: `yetkili.mp3` bir kez çalar
- **Normal kullanıcı varsa**: `hosgeldin.mp3` bir kez çalar
- **Kimse yoksa**: `silence.mp3` (sessiz) çalar
3. Ses dosyaları sürekli tekrar etmez, sadece yeni kullanıcı geldiğinde çalar
#### Örnek Kullanım
```javascript
welcome({
hosgeldin: './hosgeldin.mp3', // Normal kullanıcı sesi
yetkili: './yetkili.mp3', // Yetkili sesi
arkaplan: './silence.mp3', // Arkaplan sesi
seslikanalid: '1234567890123456789', // Ses kanalı ID
adminrolid: '1234567890123456789' // Yetkili rol ID
});
```
## 💡 Örnekler
### Tam Örnek Proje
```javascript
const Oxy = require('discord.js-vsc');
const { Client, GatewayIntentBits } = require('discord.js');
// Bot token'ınızı buraya yazın
const BOT_TOKEN = 'YOUR_BOT_TOKEN_HERE';
// Discord client'ını oluştur
const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMembers,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.MessageContent,
GatewayIntentBits.GuildPresences,
GatewayIntentBits.GuildVoiceStates
]
});
// VSC modülünü başlat
const bot = new Oxy(client);
// Ban Sistemi - Ana sunucudan ayrılanları yan sunucudan banla
bot.ikiban({
main: '1406592502810542140', // Ana sunucu
yan: '1406998013192179893', // Yan sunucu
bansebep: 'Ana sunucudan ayrıldığı için atıldı.',
log: '1406592834227929130', // Log kanalı
action: 'ban' // Ban işlemi
});
// Ses Sistemi - Belirtilen ses kanalına otomatik bağlan
bot.ses({
seskanali: '1406602193670373467', // Ses kanalı
sunucu: '1406592502810542140' // Sunucu
});
// Durum Rol Sistemi - "vsc" yazanlara rol ver
bot.durumrol({
guildid: '1406592502810542140', // Sunucu
rolid: '1406593872254992507', // Rol
durum: 'vsc', // Aranacak metin
log: '1406592834227929130' // Log kanalı
});
// Welcome Sistemi - Ses kanalına girenlere özel sesler
welcome({
hosgeldin: './hosgeldin.mp3', // Normal kullanıcı sesi
yetkili: './yetkili.mp3', // Yetkili sesi
arkaplan: './silence.mp3', // Arkaplan sesi
seslikanalid: '1406602193670373467', // Ses kanalı
adminrolid: '1406593872254992507' // Yetkili rol
});
// Bot hazır olduğunda
client.on('ready', () => {
console.log(`${client.user.tag} olarak giriş yapıldı!`);
console.log('VSC Sistemleri aktif!');
// Sunucuları listele
console.log('Bot bulunduğu sunucular:');
client.guilds.cache.forEach(guild => {
console.log(`- ${guild.name} (${guild.id})`);
});
});
// Hata yakalama
client.on('error', (error) => {
console.error('Bot hatası:', error);
});
process.on('unhandledRejection', (error) => {
console.error('Yakalanmamış hata:', error);
});
// Bot'u başlat
client.login(BOT_TOKEN);
```
### Farklı Konfigürasyon Örnekleri
#### Sadece Ban Sistemi
```javascript
const bot = new Oxy(client);
bot.ikiban({
main: 'ANA_SUNUCU_ID',
yan: 'YAN_SUNUCU_ID'
});
```
#### Sadece Ses Sistemi
```javascript
const bot = new Oxy(client);
bot.ses({
seskanali: 'SES_KANAL_ID',
sunucu: 'SUNUCU_ID'
});
```
#### Sadece Durum Rol Sistemi
```javascript
const bot = new Oxy(client);
bot.durumrol({
guildid: 'SUNUCU_ID',
rolid: 'ROL_ID',
durum: 'vsc'
});
```
#### Sadece Welcome Sistemi
```javascript
const bot = new Oxy(client);
welcome({
hosgeldin: './hosgeldin.mp3',
yetkili: './yetkili.mp3',
arkaplan: './silence.mp3',
seslikanalid: 'SES_KANAL_ID',
adminrolid: 'YETKILI_ROL_ID'
});
```
## ⚠️ Hata Yönetimi
### Gerekli İzinler
Bot'un aşağıdaki izinlere sahip olması gerekir:
#### Ban Sistemi İçin:
- `Ban Members` - Kullanıcıları banlamak için
- `Kick Members` - Kullanıcıları kicklemek için
- `Send Messages` - Log mesajları göndermek için
- `Embed Links` - Embed mesajları göndermek için
#### Ses Sistemi İçin:
- `Connect` - Ses kanallarına bağlanmak için
- `Speak` - Ses kanalında konuşmak için
#### Durum Rol Sistemi İçin:
- `Manage Roles` - Rolleri yönetmek için
- `Send Messages` - Log mesajları göndermek için
- `Embed Links` - Embed mesajları göndermek için
#### Welcome Sistemi İçin:
- `Connect` - Ses kanallarına bağlanmak için
- `Speak` - Ses kanalında konuşmak için
- `Use Voice Activity` - Ses aktivitesi kullanmak için
### Intent Gereksinimleri
```javascript
const client = new Client({
intents: [
GatewayIntentBits.Guilds, // Sunucu bilgileri
GatewayIntentBits.GuildMembers, // Üye bilgileri
GatewayIntentBits.GuildPresences, // Durum bilgileri
GatewayIntentBits.GuildVoiceStates, // Ses durumları
GatewayIntentBits.GuildMessages, // Mesaj bilgileri
GatewayIntentBits.MessageContent // Mesaj içerikleri
]
});
```
### Yaygın Hatalar ve Çözümleri
#### "Missing Permissions" Hatası
- Bot'un gerekli izinlere sahip olduğundan emin olun
- Bot'un rolünün yeterince yüksek olduğunu kontrol edin
#### "Unknown Role" Hatası
- Rol ID'sinin doğru olduğundan emin olun
- Rolün sunucuda mevcut olduğunu kontrol edin
#### "Channel Not Found" Hatası
- Kanal ID'sinin doğru olduğundan emin olun
- Bot'un kanala erişim izninin olduğunu kontrol edin
## 🔄 Sürüm Kontrolü
Modül otomatik olarak NPM registry'den güncellemeleri kontrol eder.
### Sürüm Bilgilerini Kontrol Etme
```javascript
const Oxy = require('discord.js-vsc');
// Mevcut sürümü göster
console.log('Mevcut sürüm:', Oxy.VERSION);
// Bot instance ile kontrol
const bot = new Oxy(client);
// Manuel güncelleme kontrolü
(async () => {
const isUpToDate = await bot.isUpToDate();
if (!isUpToDate) {
console.log('Güncelleme mevcut!');
await bot.checkForUpdates();
}
})();
```
### Güncelleme Mesajları
```
⚠️ GÜNCELLEME UYARISI!
📦 Mevcut sürüm: 1.0.0
🆕 En son sürüm: 1.1.0
🔗 Güncellemek için: npm update discord.js-vsc
💡 Yeni özellikler ve hata düzeltmeleri için güncelleyin!
```
## 📄 Lisans
Bu proje **MIT Lisansı** altında lisanslanmıştır - detaylar için [LICENSE](LICENSE) dosyasına bakın.
### Atıf Gereksinimleri
Bu kodu kullanırken, değiştirirken veya dağıtırken şunları dahil etmelisiniz:
- **Yazar**: hasbutcu
- **Repository**: https://github.com/hasbutcu/discord.js-vsc
- **Copyright**: Copyright (c) 2025 hasbutcu
**Orijinal kodun sahipliğini iddia etmeyin. Her zaman orijinal yazara uygun kredi verin.**
## 🆘 Destek
### Sorun Bildirme
Bir hata bulduysanız veya öneriniz varsa:
1. [GitHub Issues](https://github.com/hasbutcu/discord.js-vsc/issues) sayfasına gidin
2. Yeni bir issue oluşturun
3. Hata detaylarını ve kod örneklerini paylaşın
### İletişim
- **Discord**: hasbutcu
- **GitHub**: [@hasbutcu](https://github.com/hasbutcu)
### Sık Sorulan Sorular
#### Q: Bot neden ses kanalına bağlanmıyor?
A: Bot'un "Connect" ve "Speak" izinlerinin olduğundan emin olun.
#### Q: Ban sistemi çalışmıyor, ne yapmalıyım?
A: Bot'un "Ban Members" izninin olduğunu ve rolünün yeterince yüksek olduğunu kontrol edin.
#### Q: Durum rol sistemi çalışmıyor?
A: Bot'un "Manage Roles" izninin olduğunu ve rolünün verilecek rolden yüksek olduğunu kontrol edin.
#### Q: Log mesajları gelmiyor?
A: Bot'un log kanalında "Send Messages" ve "Embed Links" izinlerinin olduğunu kontrol edin.
#### Q: Welcome sistemi ses çalmıyor?
A: Bot'un "Connect" ve "Speak" izinlerinin olduğunu ve ses dosyalarının doğru yolda olduğunu kontrol edin.
#### Q: Ses dosyaları sürekli tekrar ediyor?
A: Bu sorun düzeltildi. Artık ses dosyaları sadece yeni kullanıcı geldiğinde bir kez çalar.
## 🔗 Faydalı Linkler
- [Discord.js Dokümantasyonu](https://discord.js.org/)
- [Discord Developer Portal](https://discord.com/developers/applications)
- [Node.js İndirme](https://nodejs.org/)
- [NPM Registry](https://www.npmjs.com/)
## 📊 Proje İstatistikleri
[](https://github.com/hasbutcu/discord.js-vsc)
[](https://github.com/hasbutcu/discord.js-vsc)
[](https://github.com/hasbutcu/discord.js-vsc/issues)
[](https://github.com/hasbutcu/discord.js-vsc/pulls)
[](https://www.npmjs.com/package/discord.js-vsc)
---
**VSC Discord Bot Modülü v1.0.0** - ❤️ ile hasbutcu tarafından geliştirildi
⭐ Bu projeyi beğendiyseniz yıldız vermeyi unutmayın!