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

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.
 
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.
 
[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"]
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ç:

1648057571914.png
 
Son düzenleme:

Technopat Haberler

Yeni konular

Geri
Yukarı