Bu rehber, tek bir slash komutu olan /ping içeren bir Python botu yapar. Önce bir Discord uygulamasına ve bir bot token'ına ihtiyacınız var: Discord botu nasıl oluşturulur ve token'ı nasıl alınır.
Dosyalar
requirements.txt
discord.py>=2.4
bot.py
import os
import discord
from discord import app_commands
intents = discord.Intents.default()
client = discord.Client(intents=intents)
tree = app_commands.CommandTree(client)
@tree.command(name="ping", description="Replies with pong")
async def ping(interaction: discord.Interaction):
await interaction.response.send_message("pong")
@client.event
async def on_ready():
await tree.sync()
print(f"Logged in as {client.user}")
client.run(os.environ["DISCORD_TOKEN"])
Bot varsayılan intent'leri kullanır, bu yüzden hiçbir ayrıcalıklı intent'in açılması gerekmez.
PlayNHost'ta çalıştırın
- Sunucunuzu panel'de açın. Genel bakış sayfasında Sunucu türünü düzenle'ye tıklayın ve Python Bot'u seçin. Bunu yeni bir sunucuda yapın: türü değiştirmek sunucuyu yeniden kurar. Bkz. Sunucu türünüzü nasıl değiştirirsiniz.
- Files bölümünde
bot.pyverequirements.txtdosyalarını yükleyin. - Ayarlar, Oyun ayarları bölümünde Ana dosya alanını
bot.pyolarak ayarlayın ve token'ınızı Discord bot token'ı alanına yapıştırın. - Console'u açın ve sunucuyu başlatın. Sunucu her başlangıçta
requirements.txtiçindeki paketleri kurar. - Console
Logged in as ...gösterdiğinde Discord'da/pingyazın.
Bilmeniz gerekenler
- Sunucu varsayılan olarak Python 3.12 çalıştırır. Bir paket başka bir sürüme ihtiyaç duyuyorsa Ayarlar, Docker imajı altından 3.10, 3.11, 3.13 ya da 3.14'ü seçin.
tree.sync()ile kaydedilen komutlar globaldir ve görünmeleri biraz zaman alabilir. Test ederken bunun yerine tek bir sunucuya senkronize edin:tree.copy_global_to(guild=discord.Object(id=YOUR_SERVER_ID))sonraawait tree.sync(guild=...).- Hataları Console'da okuyun. Eksik bir paket,
requirements.txtdosyasında bir satırın eksik olduğu anlamına gelir.
Daha fazlası: Python Discord botu nasıl barındırılır, Discord botunuzla veritabanı nasıl kullanılır.





