Merhabalar,ben bir discord botu yapıyorum.Geçen yeni bir özellik eklerken bir hata aldım.Bu özellikteki amacım küfürle mücadele.Bunu yaparkende sınıfları kullandım ama discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: ‘str’ object has no attribute ‘kufur_sayisi’ isimli bir hata aldım.Nesne tabanlı programlamada çok iyi değilim anlaşılan.Kodun bir kısmı şu:
import discord
from discord.ext import commands
intents = discord.Intents(messages=True, guilds=True, reactions=True, members=True, presences=True,guild_messages = True)
client = commands.Bot(command_prefix="!dc ", intents=intents)
game = utilty_functions()
class kufur_kontrol:
def __init__(self,kufur_sayisi = 0):
self.kufur_sayisi = kufur_sayisi
def __del__(self):
print("Bir kullanici serverdan eksildi.")
@client.event
async def on_ready():
print("I am ready!")
@client.event
async def on_message(message):
if message.author == client.user:
await client.process_commands(message)
else:
with open("Badwords.txt", "r", encoding="utf-8") as f:
word = f.read()
badwords = word.split(",")
msg = message.content
for x in badwords:
if x in msg:
await message.delete()
await message.channel.send("Lütfen bu kötü ifadeyi kullanmayınız")
message.author.name.kufur_sayisi += 1 #kufur_kontrol sınıfındaki örnek özelliğini arttırdık.
await client.process_commands(
message)
@client.event
async def on_member_join(member):
channel = discord.utils.get(member.guild.text_channels, name="hosgeldiniz")
await channel.send(f"{member.name} isimli kullanıcı aramıza katıldı.")
kullanici_objesi = member.name
kullanici_objesi = kufur_kontrol() #Bu kodla sınıfımıza örnekleme yapıyoruz.
#Aşağıdaki kodla da amacım yaptıklarımı test etmek.Ama dediğim gibi yukarıdaki hatayı alıyorum.'str' object has no attribute 'kufur_sayisi'.
@client.command()
async def test(ctx):
await ctx.send(ctx.author.name.kufur_sayisi)
Bu hatayı nasıl çözebilirim.Yardımcı olabilir misiniz?Teşşekkürler(Bu arada kufur_sayisi belli bir sayiya gelince kullanıcı sunucudan banlanıcak)