Çözüldü Python Discord.py "Sa" yazınca "As" yazan komut

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Lykoss

Decapat
Katılım
23 Mayıs 2021
Mesajlar
957
Çözümler
6
Daha fazla  
Cinsiyet
Erkek
Meslek
Öğrenci
[CODE lang="python" title="A"]import discord
from discord.ext import commands
import random
from webserver import keep_alive
import saas
keep_alive()
Bot = commands.Bot(command_prefix='!m ')

@Bot.event
async def on_ready():
print("Bot çalışıyor." + str(Bot.user))
#------------------------------------------------------------------------

@Bot.command()
async def yardım(msg):
await msg.send('YARDIM')

@Bot.command()
async def musty(msg):
await msg.send('Merhaba ben MusTy')

#temizleme
@Bot.command()
async def temizle(ctx,amount=15):
await ctx.channel.purge(limit=amount)

#zaratma
@Bot.command()
async def zar(msg):
zar = random.randint(1,6)
await msg.send("Zar {} geldi.".format(zar))

#Ders programı
@Bot.command()
async def dersprogramı(msg):
await msg.send('A')

#Ödevler
@Bot.command()
async def ödevler(msg):
await msg.send('A')

#------------------------------------------------------------------------
Bot.run('(TOKEN)')
[/CODE]



[CODE lang="python" title="Sa-as"]import discord
from discord.ext.commands import Bot

TOKEN = "Sansür"

client = discord.Client()
bot = Bot(command_prefix="!m ")

@bot.event
async def on_ready():
print("Bot Hazır " + str(bot.user))


@bot.event
async def on_message(message):
if message.author == client.user:
return

if message.content == ("Sa"):
await message.channel.send("as")

if message.content == ("sa"):
await message.channel.send("as")

bot.run(TOKEN)
[/CODE]
Sınıf Sunucumuz için bir bot yapmıştım. Kullanıcı Sa yazınca As yazmasını istiyorum. Kendim yaptığımda !m komutları çalışmıyor. İkisi de nasıl çalışabilir?
 
Son düzenleme:
Çözüm
Her action'dan sonra break kullanmayın lütfen.
Python:
import discord
from discord.ext  import commands

client = discord.Client()
Bot = commands.Bot(command_prefix='!m ')
selam = ["selam","Selam","slm","SELAM"]


@Bot.event
async def on_ready():
 print("Bot çalışıyor." + str(Bot.user))
#------------------------------------------------------------------------

@Bot.event
async def on_message(message):
    if message.author.id == Bot.user.id:
        return
    if message.content in selam:
        await message.channel.send("Selam Gardaşım")
    await Bot.process_commands(message)


Bot.run("")

Şu kullandığınız for döngüsünü de anlayamadım ne gerek var. Python'da listeyi if a in list şeklinde kontrol edebiliyorsunuz.
Ha eğer mesaj içeriğinin herhangi bir yerinde selam bulunmasını kontrol etmek istiyorsan
Split = msg.content.split() kullan.
A dosyasının içinde sa-as dosyası ile ilgili bir kullanım yapmamışsınız. Yani sa-as dosyasından hiçbir fonksiyonu kullanmamışsınız. Yani sadece import etmek çalışması için yetmez. İmport ettiğiniz dosyadaki sınıfı, fonksiyonu veya her ne varsa içinde siz kullanmadığınız sürece orada öyle dururlar.
A dosyasının içinde sa-as dosyası ile ilgili bir kullanım yapmamışsınız. Yani sa-as dosyasından hiçbir fonksiyonu kullanmamışsınız. Yani sadece import etmek çalışması için yetmez. İmport ettiğiniz dosyadaki sınıfı, fonksiyonu veya her ne varsa içinde siz kullanmadığınız sürece orada öyle dururlar.


Diğer bir sorunda şu olabilir:
SA-AS dosyasını inceledim.
async def on_message(message): fonksiyonunun içerisine if bloklarından bağımsız en alt satıra await bot.process_commands(message) yazarmısınız ? Ve önceki gibi çalıştırdığınızda aldığınız sonucu paylaşın.

Dökümantasyonu.
 
Son düzenleme:
A dosyasının içinde sa-as dosyası ile ilgili bir kullanım yapmamışsınız. Yani sa-as dosyasından hiçbir fonksiyonu kullanmamışsınız. Yani sadece import etmek çalışması için yetmez. İmport ettiğiniz dosyadaki sınıfı, fonksiyonu veya her ne varsa içinde siz kullanmadığınız sürece orada öyle dururlar.
A dosyasının içinde sa-as dosyası ile ilgili bir kullanım yapmamışsınız. Yani sa-as dosyasından hiçbir fonksiyonu kullanmamışsınız. Yani sadece import etmek çalışması için yetmez. İmport ettiğiniz dosyadaki sınıfı, fonksiyonu veya her ne varsa içinde siz kullanmadığınız sürece orada öyle dururlar.

Diğer bir sorunda şu olabilir:
Sa-as dosyasını inceledim.
async def on_message(message): fonksiyonunun içerisine if bloklarından bağımsız en alt satıra await bot.process_commands(message) yazar mısınız? Ve önceki gibi çalıştırdığınızda aldığınız sonucu paylaşın.

Dökümantasyonu.

Tam yapamadım. Yaparak atar mısınız?
 
[CODE lang="python" title="SA-AS"]@bot.event
async def on_message(message):
if message.author == client.user:
return

if message.content == ("Sa"):
await message.channel.send("as")

if message.content == ("sa"):
await message.channel.send("as")
await bot.process_commands(message)[/CODE]
 
[CODE lang="python" title="SA-AS"]@bot.event
async def on_message(message):
if message.author == client.user:
return.

if message.content == ("Sa"):
await message.channel.send("as")

if message.content == ("sa"):
await message.channel.send("as")
await bot.process_commands(message)[/CODE]

Tek dosya halinde mi yapmalıyım sa-as'ı import ederek mi?
 
Tek dosya halinde mi yapmalıyım sa-as'ı import ederek mi?

Sa-as modülünü gösterdiğim şekilde güncelledikten sonra, ilk başta nasıl yaptıysanız öyle yapın.

Ardından olmuyorsa hepsini tek bir Python dosyasının içerisine yazın.

Ufak bir sorum var:
if message.author == client.user: return
Ne anlama geliyor? Ne işe yarıyor? döndürdüğü bir değer yok sonuçta?
 
Son düzenleyen: Moderatör:
Tek dosya halinde yaptım. @Aerosteon çok teşekkür ederim çalışıyor.
[CODE lang="python" title="Dc Bot"]import discord
from discord.ext import commands
import random
from webserver import keep_alive


client = discord.Client()
keep_alive()
Bot = commands.Bot(command_prefix='!m ')

@Bot.event
async def on_ready():
print("Bot çalışıyor." + str(Bot.user))
#------------------------------------------------------------------------
@Bot.command()
async def yardım(msg):
await msg.send('-Buraya bot komutları-')

#sa-as
@Bot.event
async def on_message(message):
if message.author == client.user:
return

if message.content == ("Sa"):
await message.channel.send("as")

if message.content == ("sa"):
await message.channel.send("as")
await Bot.process_commands(message)


@Bot.command()
async def musty(msg):
await msg.send('Merhaba ben MusTy')

#temizleme
@Bot.command()
async def temizle(ctx,amount=15):
await ctx.channel.purge(limit=amount)

#zaratma
@Bot.command()
async def zar(msg):
zar = random.randint(1,6)
await msg.send("Zar {} geldi.".format(zar))

#Ders programı
@Bot.command()
async def dersprogramı(msg):
await msg.send('a')

#Ödevler
@Bot.command()
async def ödevler(msg):
await msg.send('a')

Bot.run("token")[/CODE]
 
Tek dosya halinde yaptım. @Aerosteon çok teşekkür ederim çalışıyor.
[CODE lang="python" title="Dc Bot"]import discord
from discord.ext import commands
import random
from webserver import keep_alive


client = discord.Client()
keep_alive()
Bot = commands.Bot(command_prefix='!m ')

@Bot.event
async def on_ready():
print("Bot çalışıyor." + str(Bot.user))
#------------------------------------------------------------------------
@Bot.command()
async def yardım(msg):
await msg.send('-Buraya bot komutları-')

#sa-as
@Bot.event
async def on_message(message):
if message.author == client.user:
return

if message.content == ("Sa"):
await message.channel.send("as")

if message.content == ("sa"):
await message.channel.send("as")
await Bot.process_commands(message)


@Bot.command()
async def musty(msg):
await msg.send('Merhaba ben MusTy')

#temizleme
@Bot.command()
async def temizle(ctx,amount=15):
await ctx.channel.purge(limit=amount)

#zaratma
@Bot.command()
async def zar(msg):
zar = random.randint(1,6)
await msg.send("Zar {} geldi.".format(zar))

#Ders programı
@Bot.command()
async def dersprogramı(msg):
await msg.send('a')

#Ödevler
@Bot.command()
async def ödevler(msg):
await msg.send('a')

Bot.run("token")[/CODE]
Tebrik ederim.
 

Tebrik edilmesi gereken sizsiniz. Çok teşekkür ederim ilgilendiğiniz için.
Sa-as modülünü gösterdiğim şekilde güncelledikten sonra, ilk başta nasıl yaptıysanız öyle yapın.

Ardından olmuyorsa hepsini tek bir Python dosyasının içerisine yazın.

Ufak bir sorum var:
if message.author == client.user: return.
Ne anlama geliyor? Ne işe yarıyor? Döndürdüğü bir değer yok sonuçta?

Bunu ben de bilmiyorum hazır kod olduğu için.
Tek dosya halinde yaptım. @Aerosteon çok teşekkür ederim çalışıyor.
[CODE lang="python" title="Dc Bot"]import discord
from discord.ext import commands
import random
from webserver import keep_alive


client = discord.Client()
keep_alive()
Bot = commands.Bot(command_prefix='!m ')

@Bot.event
async def on_ready():
print("Bot çalışıyor." + str(Bot.user))
#------------------------------------------------------------------------
@Bot.command()
async def yardım(msg):
await msg.send('-Buraya bot komutları-')

#sa-as
@Bot.event
async def on_message(message):
if message.author == client.user:
return

if message.content == ("Sa"):
await message.channel.send("as")

if message.content == ("sa"):
await message.channel.send("as")
await Bot.process_commands(message)


@Bot.command()
async def musty(msg):
await msg.send('Merhaba ben MusTy')

#temizleme
@Bot.command()
async def temizle(ctx,amount=15):
await ctx.channel.purge(limit=amount)

#zaratma
@Bot.command()
async def zar(msg):
zar = random.randint(1,6)
await msg.send("Zar {} geldi.".format(zar))

#Ders programı
@Bot.command()
async def dersprogramı(msg):
await msg.send('a')

#Ödevler
@Bot.command()
async def ödevler(msg):
await msg.send('a')

Bot.run("token")[/CODE]
Bu kodu şöyle düzeltim. Büyük küçük harf duyarlılığı için
[CODE lang="python" title="İlk hali-Son hali"]if message.content == ("Sa"):
await message.channel.send("as")

if message.content == ("sa"):
await message.channel.send("as")
await Bot.process_commands(message)

#Üstekinde her yazılış için 2 satır kod gerekiyor.(SA,Sa,sa,sA)
#Tek satır kodla buna gerek kalmıyor.Aşağıda mesajın büyük yazılmış halini alıp eşitse
#cevap veriyor


if message.content.upper() == ("SA"):
await message.channel.send("Aleyküm selam hoşgeldiniz.")
await Bot.process_commands(message)[/CODE]
 
Son düzenleme:
Bir liste oluşturup ilgili kelimeleri yazarsınız for döngüsü ile içerisinde ki elemanlara ulaşırsınız. Kullanıcının yazdığı mesajla listedeki elemanları karşılaştırısınız. Eğer o mesaj listenin içinde varsa botun karşı mesajını yazdırırsınız. Güzel bir düzenleme bence.
 

Technopat Haberler

Yeni konular

Geri
Yukarı