[]
        
(Showing Draft Content)

插件升级

在某些情况下,插件在迭代的时候,会增加一些字段。所增加的字段的值会根据命令之前的一些内容来确定。所需要的是当前命令实现 ISupportUpgrade 接口。

如下代码:

@Data
@Icon("resources/Icon.png")
public class MyPlugin extends Command implements ICommandExecutableInServerSide, ISupportUpgrade {

    @Browsable(false)
    private boolean myProperty1;

    private String myProperty2;

    private String myProperty3;

    @Override
    public ExecuteResult execute(IServerCommandExecuteContext dataContext) {
        return new ExecuteResult();
    }

    @Override
    public String toString() {
        return "我的插件";
    }

    @Override
    public void upgrade() {
        if(myProperty1){
            myProperty2 = "升级咯,我有值了";
            myProperty3 = "升级咯,我也有值了";
        }
    }
}

上述代码的解释:

原本存在字段myProperty1,插件升级后,myProperty1不再提供编辑,且预计逐渐废弃。老版本插件中,如果myProperty1为true,给新添加的字段myProperty2,myProperty3赋值。