mirror of
https://github.com/babalae/bettergi-scripts-list.git
synced 2026-04-11 08:53:42 +08:00
fix(auto-tools): 修复锄地工具中的路径分组逻辑问题
- 移除无用的 groupByParentAndName 函数定义位置 - 修改锄地队映射逻辑,区分 root_name 存在和不存在的情况 - 更新路径排序逻辑,添加映射表处理父子路径关系 - 修复 generatedKey 调用参数传递问题 - 在 README 中添加语法风格一致性说明
This commit is contained in:
@@ -208,6 +208,7 @@ sequenceDiagram
|
||||
| team_seven_elements | 文本 | 七元素队伍(矿物,火,水,风,雷,草,冰,岩) | 按顺序填写 |
|
||||
| is_debug | 复选框 | 开发者模式(详细日志) | 调试时开启 |
|
||||
## 语法说明
|
||||
- 语法风格请保持一致 ,否则会导致路径会出现异常运行 如使用 地产->nam=1 同时保持 地产->nam=队伍名1 则路径会出现异常运行
|
||||
- order_rules 执行顺序规则
|
||||
1. `rootName` 根目录下层文件夹名称,`parentName` 父目录名称,`name` 文件夹名称
|
||||
2. 建议语法:`rootName->parentName->name=1,rootName->parentName->name2=2`
|
||||
|
||||
@@ -714,23 +714,6 @@ async function initRun(config_run) {
|
||||
}
|
||||
|
||||
|
||||
function groupByParentAndName(list) {
|
||||
const map = new Map();
|
||||
|
||||
list.forEach(item => {
|
||||
// const key = `${item.parentName}->${item.name}`;
|
||||
const key = generatedKey(item);
|
||||
const key_parent = generatedKey(item, true);
|
||||
if (!map.has(key)) map.set(key, []);
|
||||
map.get(key).push(item);
|
||||
if (!map.has(key_parent)) map.set(key_parent, []);
|
||||
map.get(key_parent).push(item);
|
||||
});
|
||||
|
||||
return Array.from(map.values()); // 转成二维数组 [[], []]
|
||||
}
|
||||
|
||||
let groups = groupByParentAndName(matchedPaths);
|
||||
//锄地队对应
|
||||
try {
|
||||
const teamHoeGroundStr = settings.team_hoe_ground || "parentName->name=key"
|
||||
@@ -756,10 +739,15 @@ async function initRun(config_run) {
|
||||
team_name: ""
|
||||
}]
|
||||
teamHoeGroundList.filter(item => item.uid === Record.uid).forEach(item => {
|
||||
const key = generatedKey(item);
|
||||
const key_parent = generatedKey(item, true);
|
||||
team.HoeGroundMap.set(key,item.team_name);
|
||||
team.HoeGroundMap.set(key_parent,item.team_name);
|
||||
if (item.root_name) {
|
||||
const key = generatedKey(item);
|
||||
team.HoeGroundMap.set(key, item.team_name);
|
||||
|
||||
} else {
|
||||
const key_parent = generatedKey(item, true);
|
||||
team.HoeGroundMap.set(key_parent, item.team_name);
|
||||
}
|
||||
|
||||
})
|
||||
log.info(`{0}加载完成`, json_path_name.HoeGround)
|
||||
} catch (e) {
|
||||
@@ -792,15 +780,35 @@ async function initRun(config_run) {
|
||||
order: 0
|
||||
}]
|
||||
orderList.filter(item => item.uid === Record.uid).forEach(item => {
|
||||
const key = generatedKey(item);
|
||||
const key_parent = generatedKey(item, true);
|
||||
orderMap.set(key, item.order)
|
||||
orderMap.set(key_parent, item.order)
|
||||
if (item.root_name) {
|
||||
const key = generatedKey(item);
|
||||
orderMap.set(key, item.order)
|
||||
} else {
|
||||
const key_parent = generatedKey(item, true);
|
||||
orderMap.set(key_parent, item.order)
|
||||
}
|
||||
})
|
||||
log.info(`{0}加载完成`, json_path_name.PathOrder)
|
||||
} catch (e) {
|
||||
}
|
||||
|
||||
function groupByParentAndName(list) {
|
||||
const map = new Map();
|
||||
|
||||
list.forEach(item => {
|
||||
// const key = `${item.parentName}->${item.name}`;
|
||||
const key = generatedKey(item);
|
||||
// const key_parent = generatedKey(item, true);
|
||||
if (!map.has(key)) map.set(key, []);
|
||||
map.get(key).push(item);
|
||||
// if (!map.has(key_parent)) map.set(key_parent, []);
|
||||
// map.get(key_parent).push(item);
|
||||
});
|
||||
|
||||
return Array.from(map.values()); // 转成二维数组 [[], []]
|
||||
}
|
||||
|
||||
let groups = groupByParentAndName(matchedPaths);
|
||||
groups.sort((a, b) => {
|
||||
const a_key = generatedKey(a)
|
||||
const b_key = generatedKey(b)
|
||||
@@ -811,10 +819,21 @@ async function initRun(config_run) {
|
||||
}
|
||||
return orderA - orderB;
|
||||
})
|
||||
|
||||
const asMap = new Map()
|
||||
groups.forEach(group => {
|
||||
const groupOne = group[0]
|
||||
const groupKey = generatedKey(groupOne);
|
||||
let groupKey_parent = generatedKey(groupOne, true);
|
||||
if (orderMap.has(groupKey_parent) || team.HoeGroundMap.has(groupKey_parent)) {
|
||||
let groupKey = generatedKey(groupOne);
|
||||
asMap.set(groupKey, groupKey_parent)
|
||||
}
|
||||
})
|
||||
groups.forEach(group => {
|
||||
const groupOne = group[0]
|
||||
let groupKey = generatedKey(groupOne);
|
||||
if (asMap.has(groupKey)) {
|
||||
groupKey = asMap.get(groupKey)
|
||||
}
|
||||
needRunMap.set(groupKey, {
|
||||
paths: group,
|
||||
parent_name: groupOne.parentName,
|
||||
|
||||
Reference in New Issue
Block a user