Rehber - Discord Botlarında Slash Commands (/) Sistemi Nasıl Kurulur? | SroCave - SRO Destek Forumu

Rehber Discord Botlarında Slash Commands (/) Sistemi Nasıl Kurulur?

  • Konbuyu başlatan Konbuyu başlatan Jhaeger
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 7

Jhaeger

Blood Fury of Westeros
Katılım
9 Şub 2024
Mesajlar
526
Tepkime puanı
1,200
Puanları
93
jhaeger
Selamlar SroCave Ailesi!

Discord bot geliştirmede en büyük değişimlerden biri Slash Commands ( / komutları ) sistemidir.

Eskiden !komut gibi prefix tabanlı sistemler kullanılırken artık Discord resmi olarak slash komutlarını öneriyor ve destekliyor.

Bu konuda sıfırdan Slash Command sistemini nasıl kurabileceğinizi anlatacağım.
IQ1Re4T.png



Slash Command Nedir?​

Slash command, kullanıcıların / yazarak bot komutlarını görmesini ve kullanmasını sağlayan modern komut sistemidir.

Örnek:
Kod:
/ping
/ban
/yardım

Avantajları:

Komutlar otomatik listelenir
Kullanıcılar ne yazacağını bilir
Hata oranı düşer
Discord tarafından resmi desteklenir



Gerekli Kurulum​

Öncelikle discord.js v14 kullanıyoruz:

Bash:
npm install discord.js



Basit Slash Command Botu​

Aşağıdaki örnek bot /ping komutunu oluşturur:

JavaScript:
const { Client, GatewayIntentBits, REST, Routes, SlashCommandBuilder } = require('discord.js');

const client = new Client({
intents: [GatewayIntentBits.Guilds]
});

const commands = [
new SlashCommandBuilder()
.setName('ping')
.setDescription('Botun gecikmesini gösterir')
.toJSON()
];

const rest = new REST({ version: '10' }).setToken('BOT_TOKEN');

client.once('ready', async () => {
console.log(Bot giriş yaptı: ${client.user.tag});

try {<br>    await rest.put(<br>        Routes.applicationCommands('CLIENT_ID'),<br>        { body: commands }<br>    );<br><br>    console.log('Slash komutlar yüklendi!');<br>} catch (error) {<br>    console.error(error);<br>}<br>
});

client.on('interactionCreate', async interaction => {
if (!interaction.isChatInputCommand()) return;

if (interaction.commandName === 'ping') {<br>    await interaction.reply('Pong! 🏓');<br>}<br>
});

client.login('BOT_TOKEN');



Kod Açıklaması​

SlashCommandBuilder: Komutu oluşturur​

REST API: Komutları Discord'a kaydeder​

interactionCreate: Komut çalıştırıldığında tetiklenir​

Routes.applicationCommands: Global komut kaydı yapar​




Guild (Sunucuya Özel Komut - Daha Hızlı)​

Test için bunu kullanmanız önerilir:

JavaScript:
Routes.applicationGuildCommands('CLIENT_ID', 'GUILD_ID')

Avantajı:
Komutlar 1 dakika içinde aktif olur.
Global komutlar bazen 1 saat sürebilir.



Slash Command Parametre Örneği​

JavaScript:
new SlashCommandBuilder()
.setName('ban')
.setDescription('Kullanıcıyı banlar')
.addUserOption(option =>
option.setName('kullanici')
.setDescription('Banlanacak kullanıcı')
.setRequired(true)
)

Kullanım:
Kod:
/ban @user


Örnek Görsel​

20Ago4y.png

Sonuç​

Slash Command sistemi artık Discord botlarının standart yapısı haline geldi.
Prefix sistemler hâlâ çalışsa da, modern bot geliştirme için Slash Commands kullanmak çok daha avantajlıdır.
Eğer bot geliştiriyorsanız bu sisteme geçmeniz kesinlikle önerilir.

Not: Botunuzu geliştirirken kodlarınızı yedeklemeyi ve veritabanı dosyasını güvenli tutmayı unutmayın!
Sorularınızı aşağıya yazabilirsiniz, herkese kolay gelsin!
 
Etiketler Etiketler
#bot #botmaker #discord #guardcommunity #jhaeger

Geri
Üst Alt