Closed cbwsnr closed 2 weeks ago
CommandInfoService.java 里面的重复set代码是不是改成这样会简洁一些 CommandInfoDO.class加一个构造函数 public class CommandInfoDO { private String syntax; private int level; private String commandClassName;
public CommandInfoDO(String syntax, int level, String commandClassName) {
this.syntax = syntax;
this.level = level;
this.commandClassName = commandClassName;
}
// 其他 getter 和 setter 方法
}
方法体调用
public List
public List<CommandInfoDO> getLv0Commands() {
List<CommandInfoDO> results = new ArrayList<>();
// 使用辅助方法添加命令
addCommand(results, "help", 0, "HelpCommand");
addCommand(results, "commands", 0, "HelpCommand");
addCommand(results, "droplimit", 0, "DropLimitCommand");
return results;
}
private void addCommand(List<CommandInfoDO> results, String syntax, int level, String commandClassName) {
CommandInfoDO commandInfoDO = new CommandInfoDO();
commandInfoDO.setSyntax(syntax);
commandInfoDO.setLevel(level);
commandInfoDO.setCommandClassName(commandClassName);
results.add(commandInfoDO);
}
或者这样子,后续如果要扩展也不用复制重复的new CommandInfoDO()
好的。defaultLevel这个字段要放到构造函数中。后续从数据库读取的话,这些重复代码都会删掉
IntStream.rangeClosed(0, 6) .mapToObj(i -> "org.gms.client.command.commands.gm" + i) .forEach(packageName -> commandClassList.addAll(getPackageClasses(packageName))); 反正gm包是0-6有序的 不如这样子
数据库指令表脚本源自heaven-ms-nap 2.x里的sql脚本,对表名和字段名进行了修改。原sql脚本里的指令在北斗项目里不存在。
Service层用于后续将gm命令的在数据库进行增删改查。