2017-12-25 10 views
-2

Ich habe eine Liste von Befehlen für einen Diskord Bot, so dass ich sie später ändern oder ändern kann. Wenn jemand einen Befehl in Zwietracht schreibt, versuche ich zu überprüfen, ob er in der Befehlsliste steht. Das Problem ist, dass ich den Fehler bekomme:Discord bot Befehlsliste

Gibt es eine Möglichkeit, dies zu tun? Wie würde ich es nicht schreibgeschützt machen ... oder wie würde ich das beheben?


Der Code:

import discord, asyncio 

client = discord.Client() 

@client.event 
async def on_ready(): 
    print('logged in as: ', client.user.name, ' - ', client.user.id) 

@client.event 
async def on_message(message): 
    commands = ('!test', '!test1', '!test2') 

    for message.content.startswith in commands: 
     print('true') 

if __name__ == '__main__': 
    client.run('token') 
+0

Sie sollten sich die Befehle Erweiterung für 'Discord.py'. Die Dokumentation dafür gibt es fast nicht, aber es gibt einen [Beispiel-Bot] (https://github.com/Rapptz/discord.py/blob/master/examples/basic_bot.py) –

Antwort

4

Dieser Teil ist die Frage:

for message.content.startswith in commands: 
    print('true') 

Das macht keinen Sinn. Ich nehme an, message.content ist eine Zeichenfolge. startswith ist eine String-Methode, aber es dauert ein Argument, see here. Sie müssen startswith die tatsächlichen Zeichen übergeben, nach denen Sie suchen. Beispiel: "hello".startswith("he") gibt true zurück. Ich glaube, das ist, was Sie wollen:

for command in commands: 
    if message.content.startswith(command): 
     print('true')