Çö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.

Bunu örnekle anlatabilir misiniz? Print ve input kullanarak yapabilirsiniz.
 
1 - Bir liste tanımlayın.
2 - Listenin içerisine belirlediğiniz elemanları girin ( "Sa","As","sA","aS").
3 - Döngü oluşturun.
4 - Döngü ile listedeki elemanlara erişin.
5 - Koşul cümlesi ile yaklaşıp eğer ilgili döngü değişkeni yazılan mesajın içerisinde varsa...
6 - Discord botu karşılık olarak belirlenen mesajı versin.
 

Kod olarak yazabilir misiniz? Maalesef uğraştırıyorum ama anlamadım.
 
Pseudo kod olarak yazdım zaten bunu python diline dökmeniz gerekiyor.

Ki bu yazdığım zaten bir zorunluluktan dolayı değil. Yazdığınız yanlış demek te değil. "Şöyle de yapabilirsiniz" cümlesine benzer bir tavsiyeydi.
 
Ki bu yazdığım zaten bir zorunluluktan dolayı değil. Yazdığınız yanlış demek te değil. "şöyle de yapabilirsiniz" cümlesine benzer bir tavsiyeydi.

Biliyorum ama Python diline dökemedim.
 
[CODE lang="python"]
sorgu = input("Sorgula >>> ")
liste = ["SA","Sa","sa","sA"]
test =[i for i in liste if i in sorgu]
if test:
print("Aleyküm selam hoşgeldiniz")
print(test)[/CODE]

veya

Python:
sorgu = input("Sorgula >>> ")
liste = ["SA","Sa","sa","sA"]
for i in liste:
    if i in sorgu:
        print("Aleyküm selam hoşgeldin")

Örnekler birkaç değişiklik olmakla birlikte arttırılabilir.

Bunlarda şunlar olabilir:
Python:
sorgu = input("Sorgula >>> ")
test =[i for i in ["SA","Sa","sa","sA"] if i in sorgu]

if test:
    print("Aleyküm selam hoşgeldiniz")
Python:
sorgu = input("Sorgula >>> ")
for i in ["SA","Sa","sa","sA"]:
    if i in sorgu:
        print("Aleyküm selam hoşgeldin")

Yazarken ki değişim görmüşsünüzdür zaten.
 

[CODE lang="python" title="SELAM"]@Bot.event
async def on_message(message):

for i in selam:
if i in message.content:
await message.channel.send("Selam.")[/CODE]

Sonuç:

 
break'i if bloğunun içerisine yazın
Python:
for i in selam:
      if i in message.content:
       await message.channel.send("Selam.")
       break
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…