我用Python语言为XChat编写了一个脚本。当有人输入!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)发布于 2013-07-27 20:56:40
我从未使用过XCHAT;不过,我将尝试一下。看起来您是在比较命令文本是否与!pop完全相同,而不是查看它是否包含pop
有两种方法可以解决这个问题:
从word1中的命令中删除!字符,并在区分大小写的情况下将命令的其余部分与 pop 进行比较,检查word1是否包含pop。如下所示:
def a(word,world_eol,userdata):msg = choose_msg() cmnd =‘me%s’% msg #这里我们将输入命令规范化为小写,并检查** command **是否是**word1** if命令的子串。xchat.command() xchat.command(cmnd) else: word1
如果有效,请让我知道。
https://stackoverflow.com/questions/17897454
复制相似问题