"/" komutları Discord'da Aralık 2020 tarihinde güncellenip botlar için daha kapsamlı hale getirilen bir özelliktir bu özelliği kullanmak için yapmanız gereken tek şey bir metin kanalına "/" yazmak.
Artık bu / özelliğine botlar kendi komutlarını ekleyebiliyorlar fakat bunun için sunucudaki bir yetkilinin botunuzu onaylaması gerekiyor, alt resimde gördüğünüz gibi ben bir otorol komutu yaptım ve komut bu şekilde gözükmekte.
"/" komutlarının 2 türü vardır:
- Global Komutlar
- Sunucuya Özel Komutlar
Bir global komut oluşturduğunuzda botun olduğu tüm sunuculara bu komutu uygularsınız. Fakat hepsinde göremezsiniz çünkü botunuza sunucu içinde özel ve gözükmeyen bir yetki vermelisiniz.
- Yetki vermek için Discord Developers sayfasına giriyoruz.
- Ardından botumuzu seçiyoruz (Görsel)
- Daha sonra sol taraftan OAuth2 kısmına giriyoruz (Görsel)
- Biraz aşağıya inip sunulan seçeneklerden applications.commands seçeneğini işaretliyoruz ve alt tarafta oluşan linke giriyoruz. (Görsel)
- Girdiğimiz linkte alt taraftaki sunucu seçme butonundan hangi sunucuda yetki vermek istiyorsak onu seçiyoruz ve yetkilendir butonuna basıyoruz. (Görsel)
Ve artık botumuz yetkilendirildi. Artık komutlarımızı oluşturabiliriz.
Global komut oluşturmak için aşağıdaki kodu yazmanız yeterli. Fakat bu komutu botunuza bir kere ekleyin ve başlatın, başlattıktan sonra eğer bir hata vermezse kodu silmenizi tavsiye ediyorum.
client.on("ready", () => {
client.api.applications(client.user.id).commands.post({data: {
name: 'ping',
description: 'ping pong!'
}})
});
Komutumuzu oluşturduktan sonra "/" yazınca karşımıza ping komutu çıkıyor. Ben daha önce otorol komutunu yaptığım için otorol de gözüküyor, sizde sadece ping komutu gözükür.
Komutumuzu oluşturduk fakat komutumuzu yazınca karşımıza hiç bir şey çıkmıyor. Bunun için bir event oluşturmamız gerekiyor.
client.ws.on('INTERACTION_CREATE', async interaction => {
const command = interaction.data.name.toLowerCase();
if (command == 'ping'){
client.api.interactions(interaction.id, interaction.token).callback.post({
data: {
type: 4,
data: {
content: "Pong!"
}
}
})
}
});
Eventimizi ekledikten sonra artık ping komutunu girince botumuz cevap veriyor.
Sunucuya özel komut oluşturduğunuzda isminden belli olduğu gibi sunucuya özel bir komut oluşturursunuz Global komutlar ile tek farkı sadece bir sunucu için geçerli olması. Sadece oluşturması farklı diğer tüm her şeyi Global ile aynı.
client.on("ready", () => {
client.api.applications(client.user.id)..guilds("SUNUCU ID")commands.post({data: {
name: 'ping',
description: 'ping pong!'
}})
});
- Oto Rol komutu kurulumu için ilk öncelikle botumuza yetki veriyoruz (Global komutlar kısmında anlattığım gibi).
- Daha sonra bot.js dosyasındaki ilk parçayı alıyoruz ve çalıştırıyoruz. Çalıştırdıktan sonra hatasız bir şekilde ekranda "hazır" yazarsa botu kapatıp kodu siliyoruz.
- Ardından bot.js dosyasındaki ikinci parçayı alıyoruz ve çalıştırıyoruz.
- Ve botunuz artık hazır!
- Eğer botunuz çalışmazsa ve hata verirse dert etmeyin çünkü bu daha yeni gelmiş bir özellik ve tam çalışmayan bir özellik.
- Bu bilgilerin hepsini internetten araştırdım daha fazla bilgi istiyorsanız buradan ve ya internette araştırarak bulabilirsiniz.
- V12 için geçerlidir v11'de çalışmamaktadır.
- Elimden geldiğince anlatmaya çalıştım umarım anlamışsınızdır.