LeviLamina icon indicating copy to clipboard operation
LeviLamina copied to clipboard

指令注册冲突时报错或者进行某些操作

Open hhhxiao opened this issue 3 years ago • 3 comments

异常模块

Core(核心)

操作系统

Windows 11

LiteLoader版本

2.4.1

BDS版本

1.19.10.03

发生了什么?

如果两个插件有一个相同的命令,那么其中一个插件的所有命令都会无法使用。trapdoor和betweaker都有一个seed指令,如果同时加载这两个插件,trapdoor的所有指令都无法使用。 附加信息: Trapdoor用的是dynamicCommand:

void setup_seedCommand(int level) {
        using ParamType = DynamicCommand::ParameterType;
        auto command = DynamicCommand::createCommand("seed", "print seed",
                                                     static_cast<CommandPermissionLevel>(level));
        auto &seedItemEnum = command->setEnum("showSubCommand", {"enchant", "level"});
        command->mandatory("seed", ParamType::Enum, seedItemEnum,
                           CommandParameterOption::EnumAutocompleteExpansion);
        command->addOverload({seedItemEnum});
}

Bet用的是继承的方案:

class SeedCommand : public Command
{

public:

    void execute(CommandOrigin const& ori, CommandOutput& output) const override
    {}
    static void setup(CommandRegistry* registry)
    {}
};


复现此问题的步骤

No response

有关的日志/输出

No response

插件列表

No response

hhhxiao avatar Jul 24 '22 07:07 hhhxiao

加了个异常,应该会有用

Jasonzyt avatar Aug 01 '22 13:08 Jasonzyt

Reopen due to #643

Jasonzyt avatar Aug 11 '22 09:08 Jasonzyt

笑死

hhhxiao avatar Aug 11 '22 09:08 hhhxiao

指令检查针对注册中的空格进行过滤(以允许假指令以同样的指令前缀重复注册)

yqs112358 avatar Aug 13 '22 07:08 yqs112358