我在Python中为XChat制作了一个脚本。当有人输入时,它会发出随机消息!pop。当我的昵称不是Pop时,它工作正常。如果我将昵称更改为Pop,则无效。它只有在我键入!pop。
时才有效以下是代码:
__module_name__ = 'Pop Script'
__module_version__ = '0.1'
__module_description__ = 'Epic popping script.'
import xchat
from random import randint
msgs = ['pops a balloon',
'pops a roller pop',
'eats up a poppy pie',
'pops a cracker',
'pops a lollipop']
command = '!pop'
def choose_msg():
x = randint(0,len(msgs)-1)
message = msgs[x]
return message
def a(word, world_eol, userdata):
msg = choose_msg()
cmnd = 'me %s' % msg
if word[1] == command:
xchat.command(cmnd)
else:
xchat.EAT_NONE
xchat.hook_print("Channel Message", a)
xchat.hook_print("Your Message", a)
答案 0 :(得分:0)
从未使用过XCHAT;但是我会抓住这个。您似乎正在将命令文本与!pop 进行比较,而不是查看它是否包含 pop
有两种方法可以解决这个问题:
或者检查 word [1] 是否包含pop。就像是 下面:
def a(word, world_eol, userdata):
msg = choose_msg()
cmnd = 'me %s' % msg
# here we normalize the input command to lower case and check if **command** is a substring of **word[1]**
if command in word[1].lower()
xchat.command(cmnd)
else:
xchat.EAT_NONE
让我知道这是否有效。