Sunucunuzda bir ses kanalında "7/24 açık oda" ya da bir canlı yayın/radyo kanalı mı istiyorsunuz? Bunu yapmanın resmî ve güvenli yolu bir bot hesabıdır. Aşağıda adım adım kurulum ve sürekli çalıştırma var.
Kullanıcı hesabınızın token'ıyla ses kanalında bekleyen araçlar (selfbot) Discord'un Hizmet Şartları'na aykırıdır; hesabınız askıya alınabilir. Ayrıntı: Discord token nedir?
Gereksinimler
- Node.js 18 veya üzeri
- Developer Portal'da oluşturulmuş bir bot ve Connect + Speak izinleri
GuildVoiceStatesintent'i- Paketler:
discord.js,@discordjs/voice, ve bir şifreleme paketi (ör.libsodium-wrappersveyatweetnacl)
npm install discord.js @discordjs/voice libsodium-wrappers dotenv
Kod: kanala katıl ve bağlantı kopunca yeniden bağlan
require('dotenv').config();
const { Client, GatewayIntentBits, Events } = require('discord.js');
const { joinVoiceChannel, VoiceConnectionStatus, entersState } = require('@discordjs/voice');
const client = new Client({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildVoiceStates] });
const GUILD_ID = process.env.GUILD_ID;
const CHANNEL_ID = process.env.VOICE_CHANNEL_ID;
function connect() {
const guild = client.guilds.cache.get(GUILD_ID);
if (!guild) return console.error('Sunucu bulunamadı');
const connection = joinVoiceChannel({
channelId: CHANNEL_ID,
guildId: GUILD_ID,
adapterCreator: guild.voiceAdapterCreator,
selfDeaf: true, // kulaklık kapalı: gereksiz ses verisi almaz
});
connection.on(VoiceConnectionStatus.Disconnected, async () => {
try {
// Kısa süreli kopma ise Discord kendiliğinden yeniden bağlanır
await Promise.race([
entersState(connection, VoiceConnectionStatus.Signalling, 5_000),
entersState(connection, VoiceConnectionStatus.Connecting, 5_000),
]);
} catch {
connection.destroy(); // gerçekten koptu: temizle ve yeniden katıl
setTimeout(connect, 5_000);
}
});
}
client.once(Events.ClientReady, () => {
console.log('Hazır:', client.user.tag);
connect();
});
client.login(process.env.TOKEN);
.env dosyası:
TOKEN=bot_tokeniniz
GUILD_ID=sunucu_idsi
VOICE_CHANNEL_ID=ses_kanali_idsi
Müzik / radyo çalmak isterseniz
Kanalda ses çalmak için bir AudioPlayer oluşturup bağlantıya abone olursunuz ve createAudioResource ile bir kaynağı oynatırsınız. Ses çalma için ayrıca @discordjs/opus (ya da opusscript) ve ffmpeg gerekir. Yalnızca "kanalda durmak" için bunlar gerekmez. Telif hakkı ve platform kurallarına (ör. akış servislerinin şartları) uygun içerik kullanmaya dikkat edin.
Botu 7/24 açık tutmak
Kanalda kalıcı durmak için botun sürekli çalışması gerekir. Üç yol vardır:
- Bot hosting paneli: Revolvant ZIP'i yükler, çökerse yeniden başlatır, loglarda "Hazır" mesajını görürsünüz.
- VDS üzerinde
pm2ile. - Kendi bilgisayarınız (yalnızca deneme).
Genel karşılaştırma: Discord botu 7/24 nasıl açık tutulur?
Sık karşılaşılan sorunlar
| Sorun | Çözüm |
|---|---|
| Bot kanala girmiyor | Connect izni, doğru kanal kimliği, GuildVoiceStates intent'i |
| Girip hemen düşüyor | Şifreleme paketi (libsodium-wrappers) eksik olabilir; Node sürümünü kontrol edin |
| Sürekli yeniden bağlanıyor | Kanalın kullanıcı limiti ya da bölge sorunu; farklı bölge deneyin |
| Sunucu yeniden başlayınca kanaldan çıkıyor | Süreç yöneticisi/hosting ile otomatik başlatmayı açın |
Sık sorulan sorular
Ses kanalında 7/24 durmak için token gerekir mi?
Resmî yolda bot token'ı gerekir; kullanıcı hesabı token'ı gerekmez. Bot token'ını da yalnızca kendi .env dosyanızda saklayın.
Kendi hesabımla ses kanalında beklemek yasak mı?
Kullanıcı hesabını otomatikleştirmek Discord Hizmet Şartları'na aykırıdır. Normal şekilde elle kanala girip kalmak serbesttir; ancak bunu bir araçla otomatikleştirmek riskli olabilir.
Bot kanalda dururken ne kadar kaynak kullanır?
Yalnızca bağlantıyı tutan bir bot genellikle çok az bellek ve CPU kullanır. Ses çalıyorsanız kullanım artar.
Discord ara sıra botu kanaldan atıyor, normal mi?
Evet; Discord ses sunucularını yeniden dağıtabilir. Yukarıdaki Disconnected yönetimi bunu otomatik düzeltir.
Önce botunuzu çalıştırın
Resmî bot hesabınızı Revolvant’ta 7/24 barındırın.