我一直在尝试向我的不和谐机器人添加一个井字游戏迷你游戏。我最初在@ client.command()中编写代码,因为我认为您可以在其中使用client.wait_for(),但不幸的是,您不能这样做。无论如何,我不得不将代码转换为可以在on_message()函数上使用,现在我遇到了从初始命令中获取discord.Member变量类型的问题,例如〜tictactoe @ user#1234。 因此,例如,我尝试在on_message()函数中编写此代码,但没有成功。
import tkinter as tk
class validate_login_entries:
def __init__(self, username, password, department_name):
self.username = username
self.password = password
self.department_name = department_name
def check_inputs(self):
print(self.username, self.password, self.department_name)
return ( len(self.username) > 5 and len(self.username) < 10
and len(self.password) > 3 and len(self.department_name) > 4 )
def check_identity_exsists(self):
check = self.check_inputs()
if check:
print( 'Entries meet spec.')
else:
print( 'Entries fail spec.')
root = tk.Tk()
user = tk.StringVar()
pword = tk.StringVar()
tk.Label( root, text = 'User Name').grid( row = 0, column = 0 )
tk.Entry( root, width = 12, textvariable = user ).grid( row = 0, column = 1 )
tk.Label( root, text = 'Password').grid( row = 1, column = 0 )
e1 = tk.Entry( root, width = 12, textvariable = pword, show = '*' ).grid( row = 1, column = 1 )
# show = '*' to hide the password as it's typed
def on_click():
valid = validate_login_entries( user.get(), pword.get(), 'Maths' )
# This must run after ussr has input text
valid.check_identity_exsists()
tk.Button( text = 'Login', command = on_click ).grid()
tk.mainloop()
这是我的完整代码:
if message.content.startswith("~tictactoe") or message.content.startwith("~ttt"):
member = str(message).split(" ")
member = discord.Member(member[1])
channel = message.channel
任何帮助:)
答案 0 :(得分:1)
您可以通过两种方式做到这一点:
<!@user_id>
,因此您可以将消息分为两个(命令和成员)并将<!@>
剥离给成员var:if message.content.startswith("~tictactoe") or message.content.startwith("~ttt"):
command, member = message.content.split()
member = member.strip("<!@>")
member = await bot.fetch_user(int(member)) #bot or client
#Do stuff
~ttt someone
,但无法100%地工作)discord.utils.get
。如果找不到用户,它将返回None
:from discord.utils import get
(...)
if message.content.startswith("~tictactoe") or message.content.startwith("~ttt"):
command, member = message.content.split()
member = get(message.guild.members, name=member)
if member:
#Do stuff
else:
return