74 lines
2.6 KiB
JavaScript
74 lines
2.6 KiB
JavaScript
// @ts-ignore 获取物品列表接口
|
||
/**
|
||
* 获取物品列表接口
|
||
* 通过PSK验证后,读取all_item_data.js文件中的物品数据
|
||
* 返回所有物品的详细信息
|
||
*/
|
||
export async function execute(http_message) {
|
||
// 验证请求头中的PSK
|
||
let psk_valid = HttpReQUtils.check_psk(http_message);
|
||
|
||
if (!psk_valid) {
|
||
// 直接返回错误响应
|
||
return HttpResUtils.err_code(401, "未授权");
|
||
}
|
||
|
||
try {
|
||
// 获取已导入的物品数据
|
||
// @ts-ignore
|
||
let itemData = G.AllItemData.default;
|
||
|
||
if (!itemData) {
|
||
console.error("物品数据未加载");
|
||
return HttpResUtils.err_code(404, "物品数据未加载");
|
||
}
|
||
|
||
// 格式化物品数据为列表
|
||
let itemList = [];
|
||
for (let itemName in itemData) {
|
||
if (itemData.hasOwnProperty(itemName)) {
|
||
let item = itemData[itemName];
|
||
// 确保wp_7是数组类型
|
||
let wp7Value = item.wp_7;
|
||
if (wp7Value === undefined || wp7Value === null) {
|
||
wp7Value = [];
|
||
} else if (!Array.isArray(wp7Value)) {
|
||
// 如果不是数组,转换为数组
|
||
wp7Value = [wp7Value];
|
||
}
|
||
|
||
// 确保数组中的所有元素都是字符串类型
|
||
wp7Value = wp7Value.map(element => {
|
||
if (element === null || element === undefined) {
|
||
return "";
|
||
}
|
||
return String(element);
|
||
});
|
||
|
||
itemList.push({
|
||
name: itemName,
|
||
wp_1: item.wp_1 || "",
|
||
wp_2: item.wp_2 || 0,
|
||
wp_3: item.wp_3 || 0,
|
||
wp_4: item.wp_4 || 0,
|
||
wp_5: item.wp_5 || 0,
|
||
wp_7: wp7Value,
|
||
wp_8: item.wp_8 || "",
|
||
wp_11: item.wp_11 || "",
|
||
wp_12: item.wp_12 || "",
|
||
wp_13: item.wp_13 || ""
|
||
});
|
||
}
|
||
}
|
||
|
||
// 返回成功响应
|
||
return HttpResUtils.ok({
|
||
item_list: itemList,
|
||
total: itemList.length
|
||
});
|
||
} catch (error) {
|
||
console.error("获取物品列表失败:", error);
|
||
// 返回错误响应
|
||
return HttpResUtils.err_data_msg(null, "获取物品列表失败: " + (error.message || "未知错误"));
|
||
}
|
||
} |