2017-06-05 22 views
-1

ユーザーがtestをアクティブにすると、チャットルームにテストメニューが表示され、同じユーザーがメッセージに反応を投稿すると、そのメッセージが削除されます。テストメニュー:異なる機能間でオブジェクトを共有する方法

import discord, asyncio 

client = discord.Client() 

@client.event 
async def on_message(message): 
    if message.content.lower().startswith('test'): 
     menu = await client.send_message(message.channel, "test menu") 

@client.event 
async def on_reaction_add(reaction, user): 
    if user == message.author: 
     await client.delete_message(menu) 

client.run('ClientToken') 

しかし、コードは他の関数からmessage.authorまたはmenuのようなオブジェクトを読んでいません。

答えて

1

メッセージと作成者の値を保持するための辞書を作成できます。

test = {'message': None, 'author': None} 

@client.event 
async def on_message(message): 
    if message.content.lower().startswith('test'): 
     menu = await client.send_message(message.channel, "test menu") 
     test['message'] = menu 
     test['author'] = message.author 

@client.event 
async def on_reaction_add(reaction, user): 
    if user == test['author']: 
     await client.delete_message(test['message']) 
+0

テストは*グローバル*、右か? – rth

関連する問題