Discord botunun sese girip rastgele ses paneli basması nasıl yapılır?

kyzael

Hectopat
Katılım
29 Ekim 2021
Mesajlar
3.778
Makaleler
3
Çözümler
66
Yer
İstanbul
Daha fazla  
Cinsiyet
Erkek
Bir türlü çözemedim, nasıl yapılacağı hakkında bilgisi olan veya kod verebilecek var mı?

Belirli ID'e sahip kanala girip ses panelinden veya bir klasöre atacağım, ses dosyalarından birini çalmasını istiyorum.

@Akif9748 bilgin var mı?
 
Son düzenleme:
Bir türlü çözemedim, nasıl yapılacağı hakkında bilgisi olan veya kod verebilecek var mı?

Belirli ID'e sahip kanala girip ses panelinden veya bir klasöre atacağım, ses dosyalarından birini çalmasını istiyorum.

@Akif9748 bilgin var mı?
Yeni discord kütüphanesinde biraz karışık. Hazır kullandığım bir kütüphane var mı? Hazır bir sistemin, onun üstüne yapılsa daha iyi. O konuda bilgi verirsen ona göre kod hazırlarız.

Yoksa algoritma belli. Kanala bağlan, random ile dosyayı seç, stream et ve başlasın.
 
Yeni discord kütüphanesinde biraz karışık. Hazır kullandığım bir kütüphane var mı? Hazır bir sistemin, onun üstüne yapılsa daha iyi. O konuda bilgi verirsen ona göre kod hazırlarız.

Yoksa algoritma belli. Kanala bağlan, random ile dosyayı seç, stream et ve başlasın.
Discord.js v14

const { Client, GatewayIntentBits, Partials } = require("discord.js");
const ayarlar = require("./ayarlar.json");
const { joinVoiceChannel, createAudioPlayer, createAudioResource, NoSubscriberBehavior } = require('@discordjs/voice');
const fs = require('fs');

const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.GuildPresences,
GatewayIntentBits.GuildMessageReactions,
GatewayIntentBits.DirectMessages,
GatewayIntentBits.MessageContent
],
partials: [Partials.Channel, Partials.Message, Partials.User, Partials.GuildMember, Partials.Reaction]
});

module.exports = client;

require("./events/message.js");
require("./events/ready.js");

const express = require("express");
const app = express();
const http = require("http");
app.get("/", (request, response) => {
response.sendStatus(200);
});
app.listen(process.env.PORT);

client.login(process.env.TOKEN || ayarlar.token);

// Ses dosyalarının bulunduğu dizin
const sesDizini = './sesler/';

// Ses dosyası çalma fonksiyonu
async function rastgeleSesCal(kanalId) {
try {
const sesDosyalari = fs.readdirSync(sesDizini).filter(dosya => dosya.endsWith('.ogg'));
if (sesDosyalari.length === 0) {
console.error('Ses dosyası bulunamadı!');
return;
}

const rastgeleDosya = sesDosyalari[Math.floor(Math.random() * sesDosyalari.length)];
const baglanti = joinVoiceChannel({
channelId: kanalId,
guildId: ''x", // Sunucu kimliğinizi buraya girin
adapterCreator: client.guilds.cache.get('x').voiceAdapterCreator,
});

const player = createAudioPlayer({
behaviors: {
noSubscriber: NoSubscriberBehavior.Pause
}
});

const kaynak = createAudioResource(sesDizini + rastgeleDosya);

player.play(kaynak);

// Oynatıcıyı başlatma
baglanti.subscribe(player);
} catch (hata) {
console.error('Ses dosyası çalınırken bir hata oluştu:', hata);
}
}

// Rastgele mesaj gönderme fonksiyonu
function rastgeleMesajGonder() {
const channelId = 'x'; // Metin kanalı kimliğinizi buraya girin
const mesajlar = [
"x"
// İstediğiniz kadar mesaj ekleyebilirsiniz
];
const randomIndex = Math.floor(Math.random() * mesajlar.length);
const mesaj = mesajlar[randomIndex];
const kanal = client.channels.cache.get(channelId);
if (kanal) {
kanal.send(mesaj);
} else {
console.error("Kanal bulunamadı!");
}
}

client.once('ready', () => {
console.log('Bot başarıyla bağlandı.');
// Her dakikada bir rastgeleSesCal fonksiyonunu çağır
setInterval(rastgeleSesCal, 15000, ''); // Ses kanalı kimliğinizi buraya girin

// Her saat başında rastgeleMesajGonder fonksiyonunu çağır
setInterval(rastgeleMesajGonder, 3600000); // 3600000 milisaniye = 1 saat
});
Var olan maine GPT'den ekletmeye çalıştım da çok başarılı olamadı, sese girip heykel gibi kalıyor.
 
Bilgisayarda bir bakayım koda, ama bu kodda düz discord.js voice kullanılmış. Normalde botta kendi müzik sistemi yok mu distube vs? Ona göre yazacağım ama düz voice çok hata veriyor.
 
Bilgisayarda bir bakayım koda, ama bu kodda düz discord.js voice kullanılmış. Normalde botta kendi müzik sistemi yok mu distube vs? Ona göre yazacağım ama düz voice çok hata veriyor.
Hayır, müzik sistemi yok. Rastgele aldığım boş bir altyapıydı bu. Slashlı olmaması için o kadar çok aradım ki...

1713039329709.png

@Akif9748
Konsola şu tarz bir log düşüyor fakat herhangi bir ses yok

const { Client, GatewayIntentBits, Partials } = require("discord.js");
const ayarlar = require("./ayarlar.json");

const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.GuildPresences,
GatewayIntentBits.GuildMessageReactions,
GatewayIntentBits.DirectMessages,
GatewayIntentBits.MessageContent
],
partials: [Partials.Channel, Partials.Message, Partials.User, Partials.GuildMember, Partials.Reaction]
});

module.exports = client;

require("./events/message.js")
require("./events/ready.js")

const express = require("express");
const app = express();
const http = require("http");
app.get("/", (request, response) => {
response.sendStatus(200);
});
app.listen(process.env.PORT);

//komutlar
// Rastgele mesaj gönderme fonksiyonu
function rastgeleMesajGonder() {
const channelId = '1105212055008591902'; // Metin kanalı kimliğinizi buraya girin
const mesajlar = [
"X"
// İstediğiniz kadar mesaj ekleyebilirsiniz
];

setInterval(() => {
const randomIndex = Math.floor(Math.random() * mesajlar.length);
const mesaj = mesajlar[randomIndex];
const kanal = client.channels.cache.get(channelId);
if (kanal) {
kanal.send(mesaj);
} else {
console.error("Kanal bulunamadı!");
}
}, 15000); // 15 saniyede bir mesaj gönder
}

rastgeleMesajGonder();

//komutlarbitti

client.login(process.env.TOKEN || ayarlar.token)


Bu da GPT'ye düzenletmeden önceki hali.
 
Son düzenleme:

Geri
Yukarı