Dice-Developer-Team / Dice

QQ Dice Robot For TRPG QQ跑团掷骰机器人
https://v2docs.kokona.tech https://forum.kokona.tech
GNU Affero General Public License v3.0
477 stars 162 forks source link

关于无参数指令的匹配问题 #69

Closed firehomework closed 7 months ago

firehomework commented 1 year ago

在指令匹配时,无参数指令对应的匹配代码会引发问题:

else if (strLowerMessage.substr(intMsgCnt, 7) == "dismiss")
    {
        intMsgCnt += 7;
        if (isPrivate())

当输入.dismiss?( 时,由于匹配到前半部分dismiss,而指令内并没有检测指令参数,导致错误的指令输入仍然可以生效。

这意味着,只要是以点开头,dismiss后面的所有字符串都会被忽略。

建议:增加判断,如判断长度是否一致,从而规避这个问题。

另附上BUG造成的后果图:

FEDCFF6F8941882DBB83666C48F80D32

4476E181B0CA1C319BA8C82830340239

EE479D93FDA323F7D849EEEFE20AF50E

{0FAEED0D-3E1E-6F27-1436-61328148505B}