用命令得到一点错误

时间:2013-07-30 21:03:11

标签: python

我有一个在python中运行的插件,用于我的游戏服务器。我有一个问题是在这部分中获得“处理命令的错误”:

def cmd_cost(self, data, client=None, cmd=None):
""" 
^3<command> - Tells you the cost of the specified command.
"""        
input = self._adminPlugin.parseUserCmd(data)
weapon_cost = self._command_cost_dict.get('weapon',0)
item_cost = self._command_cost_dict.get('item',0)
if not data:
    client.message('^7 correct syntax is !cost [command]')
    return False
else:
    if  len([x for x in data if x.isspace()]) > 0:
        client.message('^7 correct syntax is !cost [command]')
        return False
    else:
        input_data = data.split(' ',1)
        command_name = input_data[0]
        if command_name in ['autobuy','buy']:
            client.message('^7Weapon cost: ^2$%s ^7Item cost: ^2$%s' % (weapon_cost, item_cost))

        if command_name not in self._command_cost_dict and not 'autobuy''buy':
            client.message('^7 This command needn\'t money or this command doesn\'t exist!')
            return False
        command_cost = self._command_cost_dict[command_name]
        if command_cost == 0:
            return False
        client.message('^7 Command %s needs ^2$%s' % (command_name, command_cost))
return True

当他们询问!cost [...]并且它不在列表中时会发生这种情况。它应该说“这个命令不需要钱或者这个命令不存在”,但它会给出错误。希望有人可以提供帮助。 感谢。

1 个答案:

答案 0 :(得分:1)

此行not 'autobuy''buy'中的

始终评估为false

要解决此问题,您可以更改违规行:

if command_name not in self._command_cost_dict and not 'autobuy''buy':

为:

elif command_name not in self._command_cost_dict:

仅当命令不是autobuybuy时才会执行此操作。