'Client' object has no attribute 'send_message - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: 'Client' object has no attribute 'send_message (/thread-21378.html) |
'Client' object has no attribute 'send_message - Bambob01 - Sep-27-2019 this is my discord bot what am I doing wrong PLEASE HELP import discord import request import json # command handler class class CommandHandler: # constructor def __init__(self, client): self.client = client self.commands = [] def add_command(self, command): self.commands.append(command) def command_handler(self, message): for command in self.commands: if message.content.startswith(command['trigger']): args = message.content.split(' ') if args[0] == command['trigger']: args.pop(0) if command['args_num'] == 0: return self.client.send_message(message.channel, str(command['function'](message, self.client, args))) break else: if len(args) >= command['args_num']: return self.client.send_message(message.channel, str(command['function'](message, self.client, args))) break else: return self.client.send_message(message.channel, 'command "{}" requires {} argument(s) "{}"'.format(command['trigger'], command['args_num'], ', '.join(command['args_name']))) break else: break # create discord client client = discord.Client() token = 'NDI3MjIyOTExMjg0NDEyNDQ2.DZhfMA.h3sx9iq6vO_ROYtlxHHTSZJz0xs' # create the CommandHandler object and pass it the client ch = CommandHandler(client) ## start commands command def commands_command(message, client, args): try: count = 1 coms = '**Commands List**\n' for command in ch.commands: coms += '{}.) {} : {}\n'.format(count, command['trigger'], command['description']) count += 1 return coms except Exception as e: print(e) ch.add_command({ 'trigger': '!commands', 'function': commands_command, 'args_num': 0, 'args_name': [], 'description': 'Prints a list of all the commands!' }) ## end commands command ## start ip commad def ip_command(message, client, args): try: req = requests.get('http://ip-api.com/json/{}'.format(args[0])) resp = json.loads(req.content.decode()) if req.status_code == 200: if resp['status'] == 'success': template = '**{}**\n**IP: **{}\n**City: **{}\n**State: **{}\n**Country: **{}\n**Latitude: **{}\n**Longitude: **{}\n**ISP: **{}' out = template.format(args[0], resp['query'], resp['city'], resp['regionName'], resp['country'], resp['lat'], resp['lon'], resp['isp']) return out elif resp['status'] == 'fail': return 'API Request Failed' else: return 'HTTP Request Failed: Error {}'.format(req.status_code) except Exception as e: print(e) ch.add_command({ 'trigger': '!ip', 'function': ip_command, 'args_num': 1, 'args_name': ['IP\Domain'], 'description': 'Prints information about provided IP/Domain!' }) ## end ip command # bot is ready @client.event async def on_ready(): try: print(client.user.name) print(client.user.id) except Exception as e: print(e) # on new message @client.event async def on_message(message): # if the message is from the bot itself ignore it if message.author == client.user: pass else: # try to evaluate with the command handler try: await ch.command_handler(message) # message doesn't contain a command trigger except TypeError as e: pass # generic python error except Exception as e: print(e) # start bot client.run('NjI2NTQxNTU4ODQ1NjY5Mzg4.XY0atQ.i5F30aG-S38pf4o9-tQt5lTYh5w') Client' object has no attribute 'send_message that's the only error message ill provide some screenshots starting the bot http://prntscr.com/pbj2o7 entering the !commands command http://prntscr.com/pbj2td After entering command and bot not forfilling command I get this error http://prntscr.com/pbj2zb RE: 'Client' object has no attribute 'send_message - Bambob01 - Sep-27-2019 Code in order froom Pycharm SS 1 http://prntscr.com/pbj4xd SS2 http://prntscr.com/pbj54y SS3 http://prntscr.com/pbj5b4 SS4 http://prntscr.com/pbj5g3 SS5 http://prntscr.com/pbj5ic SS6 http://prntscr.com/pbj5l3 SS7 http://prntscr.com/pbj5pm Hope this helps ty <3 |