@shirokasoke/webapi-sdk 2.9.0-beta2-0.11-pre
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.d.ts +576 -0
- package/dist/client.js +668 -0
- package/dist/esm/client.js +663 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/test.js +6 -0
- package/dist/esm/types/ae2.js +1 -0
- package/dist/esm/types/block.js +1 -0
- package/dist/esm/types/chunk.js +1 -0
- package/dist/esm/types/common.js +1 -0
- package/dist/esm/types/entity.js +1 -0
- package/dist/esm/types/fluid.js +1 -0
- package/dist/esm/types/fmp.js +1 -0
- package/dist/esm/types/gt5.js +1 -0
- package/dist/esm/types/index.js +13 -0
- package/dist/esm/types/item.js +1 -0
- package/dist/esm/types/rawInfo.js +1 -0
- package/dist/esm/types/recipe.js +1 -0
- package/dist/esm/types/threeD.js +1 -0
- package/dist/esm/types/world.js +1 -0
- package/dist/esm/validators/ae2.js +163 -0
- package/dist/esm/validators/block.js +85 -0
- package/dist/esm/validators/chunk.js +58 -0
- package/dist/esm/validators/common.js +28 -0
- package/dist/esm/validators/entity.js +117 -0
- package/dist/esm/validators/fluid.js +24 -0
- package/dist/esm/validators/fmp.js +34 -0
- package/dist/esm/validators/gt5.js +186 -0
- package/dist/esm/validators/index.js +13 -0
- package/dist/esm/validators/item.js +31 -0
- package/dist/esm/validators/rawInfo.js +25 -0
- package/dist/esm/validators/recipe.js +77 -0
- package/dist/esm/validators/threeD.js +34 -0
- package/dist/esm/validators/world.js +59 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +22 -0
- package/dist/test.d.ts +1 -0
- package/dist/test.js +8 -0
- package/dist/types/ae2.d.ts +162 -0
- package/dist/types/ae2.js +2 -0
- package/dist/types/block.d.ts +87 -0
- package/dist/types/block.js +2 -0
- package/dist/types/chunk.d.ts +57 -0
- package/dist/types/chunk.js +2 -0
- package/dist/types/common.d.ts +27 -0
- package/dist/types/common.js +2 -0
- package/dist/types/entity.d.ts +114 -0
- package/dist/types/entity.js +2 -0
- package/dist/types/fluid.d.ts +23 -0
- package/dist/types/fluid.js +2 -0
- package/dist/types/fmp.d.ts +33 -0
- package/dist/types/fmp.js +2 -0
- package/dist/types/gt5.d.ts +210 -0
- package/dist/types/gt5.js +2 -0
- package/dist/types/index.d.ts +13 -0
- package/dist/types/index.js +29 -0
- package/dist/types/item.d.ts +38 -0
- package/dist/types/item.js +2 -0
- package/dist/types/rawInfo.d.ts +25 -0
- package/dist/types/rawInfo.js +2 -0
- package/dist/types/recipe.d.ts +114 -0
- package/dist/types/recipe.js +2 -0
- package/dist/types/threeD.d.ts +43 -0
- package/dist/types/threeD.js +2 -0
- package/dist/types/world.d.ts +58 -0
- package/dist/types/world.js +2 -0
- package/dist/validators/ae2.d.ts +63 -0
- package/dist/validators/ae2.js +169 -0
- package/dist/validators/block.d.ts +12 -0
- package/dist/validators/block.js +91 -0
- package/dist/validators/chunk.d.ts +9 -0
- package/dist/validators/chunk.js +64 -0
- package/dist/validators/common.d.ts +8 -0
- package/dist/validators/common.js +36 -0
- package/dist/validators/entity.d.ts +9 -0
- package/dist/validators/entity.js +123 -0
- package/dist/validators/fluid.d.ts +4 -0
- package/dist/validators/fluid.js +30 -0
- package/dist/validators/fmp.d.ts +4 -0
- package/dist/validators/fmp.js +40 -0
- package/dist/validators/gt5.d.ts +24 -0
- package/dist/validators/gt5.js +192 -0
- package/dist/validators/index.d.ts +13 -0
- package/dist/validators/index.js +29 -0
- package/dist/validators/item.d.ts +13 -0
- package/dist/validators/item.js +37 -0
- package/dist/validators/rawInfo.d.ts +6 -0
- package/dist/validators/rawInfo.js +31 -0
- package/dist/validators/recipe.d.ts +30 -0
- package/dist/validators/recipe.js +83 -0
- package/dist/validators/threeD.d.ts +8 -0
- package/dist/validators/threeD.js +40 -0
- package/dist/validators/world.d.ts +5 -0
- package/dist/validators/world.js +65 -0
- package/package.json +49 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import type { Fluid } from "./fluid";
|
|
2
|
+
import type { ItemStack } from "./item";
|
|
3
|
+
/** 合成配方查询中单个格子/原料的可选物品集合 */
|
|
4
|
+
export interface RecipeIngredient {
|
|
5
|
+
/** 矿物词典前缀列表(如 ["plankWood"]),仅有序/无序矿物词典配方会出现 */
|
|
6
|
+
ores?: string[];
|
|
7
|
+
/** 可替代的物品列表,至少一个 */
|
|
8
|
+
items: Array<ItemStack & {
|
|
9
|
+
stackSize: number;
|
|
10
|
+
}>;
|
|
11
|
+
}
|
|
12
|
+
/** 工作台合成配方(有序/无序) */
|
|
13
|
+
export interface CraftingRecipe {
|
|
14
|
+
/** 配方实现类全名,如 net.minecraft.item.crafting.ShapedRecipes */
|
|
15
|
+
recipeClass: string;
|
|
16
|
+
/** shaped=有序,shapeless=无序,unknown=无法识别的实现 */
|
|
17
|
+
type: "shaped" | "shapeless" | "unknown";
|
|
18
|
+
shapeless: boolean;
|
|
19
|
+
/** 有序配方网格宽度;无法还原网格或无序配方时为 -1 */
|
|
20
|
+
width?: number;
|
|
21
|
+
/** 有序配方网格高度;无法还原网格或无序配方时为 -1 */
|
|
22
|
+
height?: number;
|
|
23
|
+
/** 有序配方网格(可为 null 表示空槽);无法还原网格时不输出 */
|
|
24
|
+
grid?: Array<Array<RecipeIngredient | null>>;
|
|
25
|
+
/** 无序配方原料列表;无法还原网格的有序配方也会退化为该字段 */
|
|
26
|
+
ingredients?: RecipeIngredient[];
|
|
27
|
+
output: (ItemStack & {
|
|
28
|
+
stackSize: number;
|
|
29
|
+
}) | null;
|
|
30
|
+
}
|
|
31
|
+
/** 熔炉熔炼配方的单条记录 */
|
|
32
|
+
export interface FurnaceRecipe {
|
|
33
|
+
input: ItemStack & {
|
|
34
|
+
stackSize: number;
|
|
35
|
+
};
|
|
36
|
+
output: ItemStack & {
|
|
37
|
+
stackSize: number;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/** /recipes/crafting 响应 */
|
|
41
|
+
export interface CraftingRecipesResult {
|
|
42
|
+
type: "crafting";
|
|
43
|
+
queryType: "output" | "input";
|
|
44
|
+
count: number;
|
|
45
|
+
offset: number;
|
|
46
|
+
/** 仅在启用索引加速(IndexedCraftingRecipesHandler)时输出 */
|
|
47
|
+
total?: number;
|
|
48
|
+
query?: ItemStack & {
|
|
49
|
+
stackSize?: number;
|
|
50
|
+
};
|
|
51
|
+
recipes: CraftingRecipe[];
|
|
52
|
+
}
|
|
53
|
+
/** /recipes/furnace 响应 */
|
|
54
|
+
export interface FurnaceRecipesResult {
|
|
55
|
+
type: "furnace";
|
|
56
|
+
queryType: "output" | "input";
|
|
57
|
+
count: number;
|
|
58
|
+
offset: number;
|
|
59
|
+
query?: ItemStack & {
|
|
60
|
+
stackSize?: number;
|
|
61
|
+
};
|
|
62
|
+
recipes: FurnaceRecipe[];
|
|
63
|
+
}
|
|
64
|
+
/** GT5 配方表映射表中的一项 */
|
|
65
|
+
export interface GTRecipeMap {
|
|
66
|
+
unlocalizedName: string;
|
|
67
|
+
name: string;
|
|
68
|
+
}
|
|
69
|
+
/** GT5 配方(结构与 GTRecipe 字段对应) */
|
|
70
|
+
export interface GTRecipe {
|
|
71
|
+
recipeMap: string;
|
|
72
|
+
recipeMapName: string;
|
|
73
|
+
duration: number;
|
|
74
|
+
eut: number;
|
|
75
|
+
amperage: number;
|
|
76
|
+
specialValue: number;
|
|
77
|
+
enabled: boolean;
|
|
78
|
+
hidden: boolean;
|
|
79
|
+
fake: boolean;
|
|
80
|
+
inputs: {
|
|
81
|
+
items: Array<(ItemStack & {
|
|
82
|
+
stackSize: number;
|
|
83
|
+
}) | null>;
|
|
84
|
+
fluids: Array<(Fluid & {
|
|
85
|
+
amount: number;
|
|
86
|
+
}) | null>;
|
|
87
|
+
};
|
|
88
|
+
outputs: {
|
|
89
|
+
items: Array<(ItemStack & {
|
|
90
|
+
stackSize: number;
|
|
91
|
+
}) | null>;
|
|
92
|
+
fluids: Array<(Fluid & {
|
|
93
|
+
amount: number;
|
|
94
|
+
}) | null>;
|
|
95
|
+
};
|
|
96
|
+
inputChances: number[];
|
|
97
|
+
outputChances: number[];
|
|
98
|
+
fluidInputChances: number[];
|
|
99
|
+
fluidOutputChances: number[];
|
|
100
|
+
}
|
|
101
|
+
/** /recipes/gt 响应 */
|
|
102
|
+
export interface GTRecipesResult {
|
|
103
|
+
type: "gt";
|
|
104
|
+
queryType: "output" | "input";
|
|
105
|
+
count: number;
|
|
106
|
+
offset: number;
|
|
107
|
+
/** 限定查询的配方表(仅当传入 map 参数时输出) */
|
|
108
|
+
map?: string;
|
|
109
|
+
query?: ItemStack & {
|
|
110
|
+
stackSize?: number;
|
|
111
|
+
};
|
|
112
|
+
fluid?: Fluid;
|
|
113
|
+
recipes: GTRecipe[];
|
|
114
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/** 3D 打印任务状态 */
|
|
2
|
+
export type PrintJobStatus = "pending" | "running" | "completed";
|
|
3
|
+
/** /3d/player 响应:投递到玩家背包的结果 */
|
|
4
|
+
export interface PlayerPrintResult {
|
|
5
|
+
/** 生成的打印件总数 */
|
|
6
|
+
total: number;
|
|
7
|
+
/** 成功放入背包的数量 */
|
|
8
|
+
added: number;
|
|
9
|
+
/** 背包放不下、掉落在玩家附近的数量 */
|
|
10
|
+
dropped: number;
|
|
11
|
+
}
|
|
12
|
+
/** /3d/world PUT 提交响应 */
|
|
13
|
+
export interface WorldPrintSubmitResult {
|
|
14
|
+
id: string;
|
|
15
|
+
total: number;
|
|
16
|
+
/** 全透明被跳过的小块数量 */
|
|
17
|
+
skipped: number;
|
|
18
|
+
}
|
|
19
|
+
/** /3d/world 任务失败详情 */
|
|
20
|
+
export interface WorldPrintFailure {
|
|
21
|
+
x: number;
|
|
22
|
+
y: number;
|
|
23
|
+
z: number;
|
|
24
|
+
reason: string;
|
|
25
|
+
}
|
|
26
|
+
/** /3d/world GET 任务结果 */
|
|
27
|
+
export interface WorldPrintJobResult {
|
|
28
|
+
id: string;
|
|
29
|
+
total: number;
|
|
30
|
+
completed: number;
|
|
31
|
+
success: number;
|
|
32
|
+
failed: number;
|
|
33
|
+
status: PrintJobStatus;
|
|
34
|
+
createTime: number;
|
|
35
|
+
finishTime?: number;
|
|
36
|
+
durationMs?: number;
|
|
37
|
+
failures?: WorldPrintFailure[];
|
|
38
|
+
failuresTruncated?: number;
|
|
39
|
+
}
|
|
40
|
+
/** /3d/size 响应:打印件 NBT 大小(字节) */
|
|
41
|
+
export interface PrintSizeResult {
|
|
42
|
+
size: number;
|
|
43
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { ClassInfo } from "./common";
|
|
2
|
+
export interface TPSInfo {
|
|
3
|
+
WorldName?: string;
|
|
4
|
+
TickTime: number;
|
|
5
|
+
TPS: number;
|
|
6
|
+
}
|
|
7
|
+
export interface WorldInfoData {
|
|
8
|
+
WorldServerClass?: ClassInfo;
|
|
9
|
+
WorldInfoClass?: ClassInfo;
|
|
10
|
+
WorldInfo: Record<string, unknown>;
|
|
11
|
+
}
|
|
12
|
+
export interface ProfilerData {
|
|
13
|
+
server: {
|
|
14
|
+
totalMemoryMB: number;
|
|
15
|
+
freeMemoryMB: number;
|
|
16
|
+
maxMemoryMB: number;
|
|
17
|
+
};
|
|
18
|
+
dimensions: Record<string, {
|
|
19
|
+
name: string;
|
|
20
|
+
loadedChunks: number;
|
|
21
|
+
totalEntities: number;
|
|
22
|
+
totalTileEntities: number;
|
|
23
|
+
laggyChunks: Array<{
|
|
24
|
+
chunkX: number;
|
|
25
|
+
chunkZ: number;
|
|
26
|
+
entityCount: number;
|
|
27
|
+
}>;
|
|
28
|
+
}>;
|
|
29
|
+
profiler: {
|
|
30
|
+
enabled: boolean;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export interface LagAnalyzerData {
|
|
34
|
+
entities: {
|
|
35
|
+
byType: Array<{
|
|
36
|
+
name: string;
|
|
37
|
+
count: number;
|
|
38
|
+
items: number;
|
|
39
|
+
xpOrbs: number;
|
|
40
|
+
}>;
|
|
41
|
+
byDimension: Record<string, number>;
|
|
42
|
+
};
|
|
43
|
+
tileEntities: {
|
|
44
|
+
byType: Array<{
|
|
45
|
+
name: string;
|
|
46
|
+
count: number;
|
|
47
|
+
samplePositions: string[];
|
|
48
|
+
}>;
|
|
49
|
+
byDimension: Record<string, number>;
|
|
50
|
+
};
|
|
51
|
+
memory: {
|
|
52
|
+
totalMB: number;
|
|
53
|
+
freeMB: number;
|
|
54
|
+
usedMB: number;
|
|
55
|
+
maxMB: number;
|
|
56
|
+
availableProcessors: number;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import Joi from "joi";
|
|
2
|
+
import type { AECPU, AECPUCancelBody, AECPUCancelResult, AECraftingTaskBody, AECraftingTaskResult, AEHitResult, AEItemsResult, AEMEInterface, AENode } from "../types/ae2";
|
|
3
|
+
export declare const AEStackProvidersSchema: Joi.ArraySchema<any[]>;
|
|
4
|
+
/** 对应服务端 Pattern.dumpAEStack 的输出:物品或流体堆,附加 stackSize 字段 */
|
|
5
|
+
export declare const AEStackSchema: Joi.AlternativesSchema<{
|
|
6
|
+
MaxStackSize: unknown;
|
|
7
|
+
damageable: unknown;
|
|
8
|
+
damage: unknown;
|
|
9
|
+
AttributeModifiers: unknown;
|
|
10
|
+
stackSize: unknown;
|
|
11
|
+
} | {
|
|
12
|
+
stackSize: unknown;
|
|
13
|
+
}>;
|
|
14
|
+
export declare const AEStackWithProvidersSchema: Joi.AlternativesSchema<{
|
|
15
|
+
stackSize: unknown;
|
|
16
|
+
providers: unknown;
|
|
17
|
+
} | {
|
|
18
|
+
stackSize: unknown;
|
|
19
|
+
providers: unknown;
|
|
20
|
+
}>;
|
|
21
|
+
export declare const AENodeSchema: Joi.ObjectSchema<AENode>;
|
|
22
|
+
export declare const AE2PatternSchema: Joi.ObjectSchema<{
|
|
23
|
+
crafting: unknown;
|
|
24
|
+
substitute: unknown;
|
|
25
|
+
beSubstitute: unknown;
|
|
26
|
+
author: unknown;
|
|
27
|
+
inputs: unknown;
|
|
28
|
+
outputs: unknown;
|
|
29
|
+
isCraftable: unknown;
|
|
30
|
+
priority: unknown;
|
|
31
|
+
canSubstitute: unknown;
|
|
32
|
+
canBeSubstitute: unknown;
|
|
33
|
+
condensedInputs: unknown;
|
|
34
|
+
condensedOutputs: unknown;
|
|
35
|
+
patternParseError: unknown;
|
|
36
|
+
}>;
|
|
37
|
+
/**
|
|
38
|
+
* `appeng.util.ScheduledReason` 枚举名。
|
|
39
|
+
* 采用严格枚举校验:取值必须是下方列表中的一项,未知值直接判非法。
|
|
40
|
+
* rv3-beta-1000-GTNH 已知取值:UNDEFINED / SOMETHING_STUCK / BLOCKING_MODE /
|
|
41
|
+
* LOCK_MODE / NO_TARGET / NOT_ENOUGH_INGREDIENTS / SAME_NETWORK / UNSUPPORTED_STACK
|
|
42
|
+
*/
|
|
43
|
+
export declare const AE_CPU_SCHEDULED_REASONS: readonly ["UNDEFINED", "SOMETHING_STUCK", "BLOCKING_MODE", "LOCK_MODE", "NO_TARGET", "NOT_ENOUGH_INGREDIENTS", "SAME_NETWORK", "UNSUPPORTED_STACK"];
|
|
44
|
+
export declare const AECPUScheduledReasonSchema: Joi.StringSchema<string>;
|
|
45
|
+
export declare const AECPUTaskSchema: Joi.ObjectSchema<any>;
|
|
46
|
+
export declare const AECPUSchema: Joi.ObjectSchema<AECPU>;
|
|
47
|
+
export declare const AEMEInterfaceSchema: Joi.ObjectSchema<AEMEInterface>;
|
|
48
|
+
export declare const AECraftingTaskBodySchema: Joi.ObjectSchema<AECraftingTaskBody>;
|
|
49
|
+
export declare const AECraftingTaskResultSchema: Joi.ObjectSchema<AECraftingTaskResult>;
|
|
50
|
+
export declare const AECPUCancelBodySchema: Joi.ObjectSchema<AECPUCancelBody>;
|
|
51
|
+
export declare const AECPUCancelResultSchema: Joi.ObjectSchema<AECPUCancelResult>;
|
|
52
|
+
export declare const AEItemStackSchema: Joi.AlternativesSchema<{
|
|
53
|
+
type: unknown;
|
|
54
|
+
stackSize: unknown;
|
|
55
|
+
Craftable: unknown;
|
|
56
|
+
} | {
|
|
57
|
+
type: unknown;
|
|
58
|
+
stackSize: unknown;
|
|
59
|
+
Craftable: unknown;
|
|
60
|
+
}>;
|
|
61
|
+
export declare const AEItemCellStatusSchema: Joi.ObjectSchema<any>;
|
|
62
|
+
export declare const AEItemsResultSchema: Joi.ObjectSchema<AEItemsResult>;
|
|
63
|
+
export declare const AEHitResultSchema: Joi.ObjectSchema<AEHitResult>;
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.AEHitResultSchema = exports.AEItemsResultSchema = exports.AEItemCellStatusSchema = exports.AEItemStackSchema = exports.AECPUCancelResultSchema = exports.AECPUCancelBodySchema = exports.AECraftingTaskResultSchema = exports.AECraftingTaskBodySchema = exports.AEMEInterfaceSchema = exports.AECPUSchema = exports.AECPUTaskSchema = exports.AECPUScheduledReasonSchema = exports.AE_CPU_SCHEDULED_REASONS = exports.AE2PatternSchema = exports.AENodeSchema = exports.AEStackWithProvidersSchema = exports.AEStackSchema = exports.AEStackProvidersSchema = void 0;
|
|
7
|
+
const joi_1 = __importDefault(require("joi"));
|
|
8
|
+
const common_1 = require("./common");
|
|
9
|
+
const fluid_1 = require("./fluid");
|
|
10
|
+
const item_1 = require("./item");
|
|
11
|
+
exports.AEStackProvidersSchema = joi_1.default.array().items(joi_1.default.object({
|
|
12
|
+
x: joi_1.default.number().required(),
|
|
13
|
+
y: joi_1.default.number().required(),
|
|
14
|
+
z: joi_1.default.number().required(),
|
|
15
|
+
dimension: joi_1.default.number().required(),
|
|
16
|
+
})).required();
|
|
17
|
+
/** 对应服务端 Pattern.dumpAEStack 的输出:物品或流体堆,附加 stackSize 字段 */
|
|
18
|
+
exports.AEStackSchema = joi_1.default.alternatives(item_1.ItemStackSchema.append({ stackSize: joi_1.default.number().required() }), fluid_1.FluidSchema.append({ stackSize: joi_1.default.number().required() }));
|
|
19
|
+
exports.AEStackWithProvidersSchema = joi_1.default.alternatives(item_1.ItemStackSchema.append({
|
|
20
|
+
stackSize: joi_1.default.number().required(),
|
|
21
|
+
providers: exports.AEStackProvidersSchema,
|
|
22
|
+
}), fluid_1.FluidSchema.append({
|
|
23
|
+
stackSize: joi_1.default.number().required(),
|
|
24
|
+
providers: exports.AEStackProvidersSchema,
|
|
25
|
+
}));
|
|
26
|
+
exports.AENodeSchema = joi_1.default.object({
|
|
27
|
+
active: joi_1.default.boolean().required(),
|
|
28
|
+
meetsChannel: joi_1.default.boolean().required(),
|
|
29
|
+
playerID: joi_1.default.number().required(),
|
|
30
|
+
machineClass: common_1.ClassInfoSchema.optional(),
|
|
31
|
+
isPart: joi_1.default.boolean().required(),
|
|
32
|
+
isIActionHost: joi_1.default.boolean().required(),
|
|
33
|
+
location: joi_1.default.object({
|
|
34
|
+
x: joi_1.default.number().required(),
|
|
35
|
+
y: joi_1.default.number().required(),
|
|
36
|
+
z: joi_1.default.number().required(),
|
|
37
|
+
dimension: joi_1.default.number().required(),
|
|
38
|
+
}).optional(),
|
|
39
|
+
idlePowerUsage: joi_1.default.number().required(),
|
|
40
|
+
flags: joi_1.default.array().items(joi_1.default.string()).required(),
|
|
41
|
+
});
|
|
42
|
+
exports.AE2PatternSchema = item_1.ItemStackSchema.append({
|
|
43
|
+
crafting: joi_1.default.boolean().required(),
|
|
44
|
+
substitute: joi_1.default.boolean().required(),
|
|
45
|
+
beSubstitute: joi_1.default.boolean().required(),
|
|
46
|
+
author: joi_1.default.string().optional(),
|
|
47
|
+
inputs: joi_1.default.array().items(joi_1.default.alternatives(item_1.ItemStackSchema, joi_1.default.valid(null))).optional(),
|
|
48
|
+
outputs: joi_1.default.array().items(joi_1.default.alternatives(item_1.ItemStackSchema, joi_1.default.valid(null))).optional(),
|
|
49
|
+
isCraftable: joi_1.default.boolean().optional(),
|
|
50
|
+
priority: joi_1.default.number().optional(),
|
|
51
|
+
canSubstitute: joi_1.default.boolean().optional(),
|
|
52
|
+
canBeSubstitute: joi_1.default.boolean().optional(),
|
|
53
|
+
condensedInputs: joi_1.default.array().items(exports.AEStackSchema).optional(),
|
|
54
|
+
condensedOutputs: joi_1.default.array().items(exports.AEStackSchema).optional(),
|
|
55
|
+
patternParseError: joi_1.default.string().optional(),
|
|
56
|
+
});
|
|
57
|
+
/**
|
|
58
|
+
* `appeng.util.ScheduledReason` 枚举名。
|
|
59
|
+
* 采用严格枚举校验:取值必须是下方列表中的一项,未知值直接判非法。
|
|
60
|
+
* rv3-beta-1000-GTNH 已知取值:UNDEFINED / SOMETHING_STUCK / BLOCKING_MODE /
|
|
61
|
+
* LOCK_MODE / NO_TARGET / NOT_ENOUGH_INGREDIENTS / SAME_NETWORK / UNSUPPORTED_STACK
|
|
62
|
+
*/
|
|
63
|
+
exports.AE_CPU_SCHEDULED_REASONS = [
|
|
64
|
+
"UNDEFINED",
|
|
65
|
+
"SOMETHING_STUCK",
|
|
66
|
+
"BLOCKING_MODE",
|
|
67
|
+
"LOCK_MODE",
|
|
68
|
+
"NO_TARGET",
|
|
69
|
+
"NOT_ENOUGH_INGREDIENTS",
|
|
70
|
+
"SAME_NETWORK",
|
|
71
|
+
"UNSUPPORTED_STACK",
|
|
72
|
+
];
|
|
73
|
+
exports.AECPUScheduledReasonSchema = joi_1.default.string()
|
|
74
|
+
.valid(...exports.AE_CPU_SCHEDULED_REASONS)
|
|
75
|
+
.required();
|
|
76
|
+
exports.AECPUTaskSchema = joi_1.default.object({
|
|
77
|
+
remaining: joi_1.default.number().required(),
|
|
78
|
+
scheduledReason: exports.AECPUScheduledReasonSchema,
|
|
79
|
+
inputs: joi_1.default.array().items(exports.AEStackSchema).required(),
|
|
80
|
+
pattern: exports.AE2PatternSchema.required(),
|
|
81
|
+
outputs: joi_1.default.array().items(exports.AEStackWithProvidersSchema).required(),
|
|
82
|
+
});
|
|
83
|
+
exports.AECPUSchema = joi_1.default.object({
|
|
84
|
+
name: joi_1.default.string().allow("").required(),
|
|
85
|
+
busy: joi_1.default.boolean().required(),
|
|
86
|
+
availableStorage: joi_1.default.number().unsafe().required(),
|
|
87
|
+
usedStorage: joi_1.default.number().required(),
|
|
88
|
+
coProcessors: joi_1.default.number().required(),
|
|
89
|
+
remainingItemCount: joi_1.default.number().required(),
|
|
90
|
+
startItemCount: joi_1.default.number().required(),
|
|
91
|
+
elapsedTime: joi_1.default.number().required(),
|
|
92
|
+
craftingAllowMode: joi_1.default.string().required(),
|
|
93
|
+
waiting: joi_1.default.boolean().required(),
|
|
94
|
+
suspended: joi_1.default.boolean().required(),
|
|
95
|
+
missingMode: joi_1.default.boolean().required(),
|
|
96
|
+
finalOutput: exports.AEStackSchema.optional(),
|
|
97
|
+
waitingForMissing: joi_1.default.array().items(exports.AEStackSchema).optional(),
|
|
98
|
+
tasks: joi_1.default.array().items(exports.AECPUTaskSchema).optional(),
|
|
99
|
+
tasking: joi_1.default.array().items(exports.AEStackWithProvidersSchema).optional(),
|
|
100
|
+
tasksError: joi_1.default.string().optional(),
|
|
101
|
+
});
|
|
102
|
+
exports.AEMEInterfaceSchema = joi_1.default.object({
|
|
103
|
+
display: joi_1.default.boolean().required(),
|
|
104
|
+
name: joi_1.default.string().required(),
|
|
105
|
+
rawName: joi_1.default.string().allow(null).required(),
|
|
106
|
+
active: joi_1.default.boolean().required(),
|
|
107
|
+
allowsPatternOptimization: joi_1.default.boolean().required(),
|
|
108
|
+
playerID: joi_1.default.number().required(),
|
|
109
|
+
location: joi_1.default.object({
|
|
110
|
+
x: joi_1.default.number().required(),
|
|
111
|
+
y: joi_1.default.number().required(),
|
|
112
|
+
z: joi_1.default.number().required(),
|
|
113
|
+
dimension: joi_1.default.number().required(),
|
|
114
|
+
}).required(),
|
|
115
|
+
patterns: joi_1.default.array().items(exports.AE2PatternSchema.append({ slot: joi_1.default.number().required() })).required(),
|
|
116
|
+
});
|
|
117
|
+
exports.AECraftingTaskBodySchema = joi_1.default.object({
|
|
118
|
+
id: joi_1.default.number().required(),
|
|
119
|
+
Count: joi_1.default.number().required(),
|
|
120
|
+
Type: joi_1.default.string().valid("item", "fluid").optional(),
|
|
121
|
+
Damage: joi_1.default.number().optional(),
|
|
122
|
+
tag: joi_1.default.string().optional(),
|
|
123
|
+
cpu: joi_1.default.string().optional(),
|
|
124
|
+
});
|
|
125
|
+
exports.AECraftingTaskResultSchema = joi_1.default.object({
|
|
126
|
+
bytes: joi_1.default.number().required(),
|
|
127
|
+
cpu: joi_1.default.string().required(),
|
|
128
|
+
output: item_1.ItemStackSchema.append({ stackSize: joi_1.default.number().required() }).required(),
|
|
129
|
+
});
|
|
130
|
+
exports.AECPUCancelBodySchema = joi_1.default.object({
|
|
131
|
+
name: joi_1.default.string().optional(),
|
|
132
|
+
id: joi_1.default.number().optional(),
|
|
133
|
+
});
|
|
134
|
+
exports.AECPUCancelResultSchema = joi_1.default.object({
|
|
135
|
+
cpu: joi_1.default.string().required(),
|
|
136
|
+
wasBusy: joi_1.default.boolean().required(),
|
|
137
|
+
});
|
|
138
|
+
exports.AEItemStackSchema = joi_1.default.alternatives(item_1.ItemStackSchema.append({
|
|
139
|
+
type: joi_1.default.string().valid("item").required(),
|
|
140
|
+
stackSize: joi_1.default.number().required(),
|
|
141
|
+
Craftable: joi_1.default.boolean().required(),
|
|
142
|
+
}), fluid_1.FluidSchema.append({
|
|
143
|
+
type: joi_1.default.string().valid("fluid").required(),
|
|
144
|
+
stackSize: joi_1.default.number().required(),
|
|
145
|
+
Craftable: joi_1.default.boolean().required(),
|
|
146
|
+
}));
|
|
147
|
+
exports.AEItemCellStatusSchema = joi_1.default.object({
|
|
148
|
+
all: joi_1.default.number().required(),
|
|
149
|
+
green: joi_1.default.number().required(),
|
|
150
|
+
blue: joi_1.default.number().required(),
|
|
151
|
+
orange: joi_1.default.number().required(),
|
|
152
|
+
red: joi_1.default.number().required(),
|
|
153
|
+
});
|
|
154
|
+
exports.AEItemsResultSchema = joi_1.default.object({
|
|
155
|
+
items: joi_1.default.array().items(exports.AEItemStackSchema).required(),
|
|
156
|
+
totalBytes: joi_1.default.number().required(),
|
|
157
|
+
usedBytes: joi_1.default.number().required(),
|
|
158
|
+
totalTypes: joi_1.default.number().required(),
|
|
159
|
+
usedTypes: joi_1.default.number().required(),
|
|
160
|
+
cellStatus: exports.AEItemCellStatusSchema.required(),
|
|
161
|
+
fluidTotalBytes: joi_1.default.number().required(),
|
|
162
|
+
fluidUsedBytes: joi_1.default.number().required(),
|
|
163
|
+
fluidTotalTypes: joi_1.default.number().required(),
|
|
164
|
+
fluidUsedTypes: joi_1.default.number().required(),
|
|
165
|
+
fluidCellStatus: exports.AEItemCellStatusSchema.required(),
|
|
166
|
+
});
|
|
167
|
+
exports.AEHitResultSchema = joi_1.default.object({
|
|
168
|
+
message: joi_1.default.string().required(),
|
|
169
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import Joi from "joi";
|
|
2
|
+
import type { BatchSetBlockJobResult, Block, BlockDetail } from "../types/block";
|
|
3
|
+
export declare const MaterialSchema: Joi.ObjectSchema<any>;
|
|
4
|
+
export declare const BlockSchema: Joi.ObjectSchema<Block>;
|
|
5
|
+
export declare const BlockDetailSchema: Joi.ObjectSchema<BlockDetail>;
|
|
6
|
+
export declare const SetBlockBodySchema: Joi.ObjectSchema<any>;
|
|
7
|
+
export declare const SetBlockResultSchema: Joi.Schema<any>;
|
|
8
|
+
export declare const BatchSetBlockTaskSchema: Joi.ObjectSchema<any>;
|
|
9
|
+
export declare const BatchSetBlockSubmitResultSchema: Joi.ObjectSchema<any>;
|
|
10
|
+
export declare const BatchSetBlockJobStatusSchema: Joi.Schema<any>;
|
|
11
|
+
export declare const BatchSetBlockFailureSchema: Joi.ObjectSchema<any>;
|
|
12
|
+
export declare const BatchSetBlockJobResultSchema: Joi.ObjectSchema<BatchSetBlockJobResult>;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.BatchSetBlockJobResultSchema = exports.BatchSetBlockFailureSchema = exports.BatchSetBlockJobStatusSchema = exports.BatchSetBlockSubmitResultSchema = exports.BatchSetBlockTaskSchema = exports.SetBlockResultSchema = exports.SetBlockBodySchema = exports.BlockDetailSchema = exports.BlockSchema = exports.MaterialSchema = void 0;
|
|
7
|
+
const joi_1 = __importDefault(require("joi"));
|
|
8
|
+
const common_1 = require("./common");
|
|
9
|
+
const item_1 = require("./item");
|
|
10
|
+
exports.MaterialSchema = joi_1.default.object({
|
|
11
|
+
isLiquid: joi_1.default.boolean().required(),
|
|
12
|
+
isSolid: joi_1.default.boolean().required(),
|
|
13
|
+
blocksMovement: joi_1.default.boolean().required(),
|
|
14
|
+
isOpaque: joi_1.default.boolean().required(),
|
|
15
|
+
isFlammable: joi_1.default.boolean().required(),
|
|
16
|
+
isReplaceable: joi_1.default.boolean().required(),
|
|
17
|
+
requiresNoTool: joi_1.default.boolean().required(),
|
|
18
|
+
mobilityFlag: joi_1.default.number().required(),
|
|
19
|
+
isAdventureModeExempt: joi_1.default.boolean().required(),
|
|
20
|
+
});
|
|
21
|
+
exports.BlockSchema = joi_1.default.object({
|
|
22
|
+
class: common_1.ClassInfoSchema.optional(),
|
|
23
|
+
id: joi_1.default.number().required(),
|
|
24
|
+
registryName: joi_1.default.string().required(),
|
|
25
|
+
unlocalizedName: joi_1.default.string().required(),
|
|
26
|
+
localizedName: joi_1.default.string().required(),
|
|
27
|
+
resistance: joi_1.default.alternatives(joi_1.default.number().unsafe(), joi_1.default.valid("Infinity")).required(),
|
|
28
|
+
lightLevel: joi_1.default.number().required(),
|
|
29
|
+
isOpaqueCube: joi_1.default.boolean().required(),
|
|
30
|
+
isNormalCube: joi_1.default.boolean().required(),
|
|
31
|
+
slipperiness: joi_1.default.number().required(),
|
|
32
|
+
renderType: joi_1.default.number().required(),
|
|
33
|
+
material: exports.MaterialSchema.required(),
|
|
34
|
+
meta: joi_1.default.number().optional(),
|
|
35
|
+
fileName: joi_1.default.string().optional(),
|
|
36
|
+
blockColor: joi_1.default.number().optional(),
|
|
37
|
+
});
|
|
38
|
+
exports.BlockDetailSchema = joi_1.default.object({
|
|
39
|
+
block: exports.BlockSchema.append({
|
|
40
|
+
hardness: joi_1.default.number().required(),
|
|
41
|
+
isReplaceable: joi_1.default.boolean().required(),
|
|
42
|
+
isPassable: joi_1.default.boolean().required(),
|
|
43
|
+
}).required(),
|
|
44
|
+
coordinates: common_1.CoordinatesSchema.required(),
|
|
45
|
+
metadata: joi_1.default.number().required(),
|
|
46
|
+
isAir: joi_1.default.boolean().required(),
|
|
47
|
+
tileEntity: joi_1.default.object({
|
|
48
|
+
class: common_1.ClassInfoSchema.optional(),
|
|
49
|
+
inventorySize: joi_1.default.number().optional(),
|
|
50
|
+
items: joi_1.default.array().items(item_1.ItemStackSchema.append({ slot: joi_1.default.number().required() })).optional(),
|
|
51
|
+
}).unknown().optional(),
|
|
52
|
+
});
|
|
53
|
+
exports.SetBlockBodySchema = joi_1.default.object({
|
|
54
|
+
id: joi_1.default.number().required(),
|
|
55
|
+
metadataIn: joi_1.default.number().optional(),
|
|
56
|
+
flag: joi_1.default.number().optional(),
|
|
57
|
+
});
|
|
58
|
+
exports.SetBlockResultSchema = joi_1.default.valid(null);
|
|
59
|
+
exports.BatchSetBlockTaskSchema = joi_1.default.object({
|
|
60
|
+
x: joi_1.default.number().required(),
|
|
61
|
+
y: joi_1.default.number().required(),
|
|
62
|
+
z: joi_1.default.number().required(),
|
|
63
|
+
dim: joi_1.default.number().optional(),
|
|
64
|
+
id: joi_1.default.number().required(),
|
|
65
|
+
metadata: joi_1.default.number().optional(),
|
|
66
|
+
flag: joi_1.default.number().optional(),
|
|
67
|
+
});
|
|
68
|
+
exports.BatchSetBlockSubmitResultSchema = joi_1.default.object({
|
|
69
|
+
id: joi_1.default.string().required(),
|
|
70
|
+
total: joi_1.default.number().required(),
|
|
71
|
+
});
|
|
72
|
+
exports.BatchSetBlockJobStatusSchema = joi_1.default.valid("pending", "running", "completed");
|
|
73
|
+
exports.BatchSetBlockFailureSchema = joi_1.default.object({
|
|
74
|
+
x: joi_1.default.number().required(),
|
|
75
|
+
y: joi_1.default.number().required(),
|
|
76
|
+
z: joi_1.default.number().required(),
|
|
77
|
+
reason: joi_1.default.string().required(),
|
|
78
|
+
});
|
|
79
|
+
exports.BatchSetBlockJobResultSchema = joi_1.default.object({
|
|
80
|
+
id: joi_1.default.string().required(),
|
|
81
|
+
total: joi_1.default.number().required(),
|
|
82
|
+
completed: joi_1.default.number().required(),
|
|
83
|
+
success: joi_1.default.number().required(),
|
|
84
|
+
failed: joi_1.default.number().required(),
|
|
85
|
+
status: exports.BatchSetBlockJobStatusSchema.required(),
|
|
86
|
+
createTime: joi_1.default.number().required(),
|
|
87
|
+
finishTime: joi_1.default.number().optional(),
|
|
88
|
+
durationMs: joi_1.default.number().optional(),
|
|
89
|
+
failures: joi_1.default.array().items(exports.BatchSetBlockFailureSchema).optional(),
|
|
90
|
+
failuresTruncated: joi_1.default.number().optional(),
|
|
91
|
+
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import Joi from "joi";
|
|
2
|
+
import type { ChunkForceList, ChunkLoadResult, ChunkMapCell, ChunksByDimension, ChunkWithDimension } from "../types/chunk";
|
|
3
|
+
export declare const ChunkSchema: Joi.ObjectSchema<any>;
|
|
4
|
+
export declare const ChunkWithDimensionSchema: Joi.ObjectSchema<ChunkWithDimension>;
|
|
5
|
+
export declare const ChunksByDimensionSchema: Joi.ObjectSchema<ChunksByDimension>;
|
|
6
|
+
export declare const ChunkLoadInfoSchema: Joi.ObjectSchema<any>;
|
|
7
|
+
export declare const ChunkForceListSchema: Joi.ObjectSchema<ChunkForceList>;
|
|
8
|
+
export declare const ChunkLoadResultSchema: Joi.ObjectSchema<ChunkLoadResult>;
|
|
9
|
+
export declare const ChunkMapCellSchema: Joi.ObjectSchema<ChunkMapCell>;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ChunkMapCellSchema = exports.ChunkLoadResultSchema = exports.ChunkForceListSchema = exports.ChunkLoadInfoSchema = exports.ChunksByDimensionSchema = exports.ChunkWithDimensionSchema = exports.ChunkSchema = void 0;
|
|
7
|
+
const joi_1 = __importDefault(require("joi"));
|
|
8
|
+
const common_1 = require("./common");
|
|
9
|
+
const entity_1 = require("./entity");
|
|
10
|
+
exports.ChunkSchema = joi_1.default.object({
|
|
11
|
+
class: common_1.ClassInfoSchema.optional(),
|
|
12
|
+
chunkX: joi_1.default.number().required(),
|
|
13
|
+
chunkZ: joi_1.default.number().required(),
|
|
14
|
+
xStart: joi_1.default.number().required(),
|
|
15
|
+
zStart: joi_1.default.number().required(),
|
|
16
|
+
xEnd: joi_1.default.number().required(),
|
|
17
|
+
zEnd: joi_1.default.number().required(),
|
|
18
|
+
lastSaveTime: joi_1.default.number().required(),
|
|
19
|
+
isTerrainPopulated: joi_1.default.boolean().required(),
|
|
20
|
+
isLightPopulated: joi_1.default.boolean().required(),
|
|
21
|
+
isModified: joi_1.default.boolean().required(),
|
|
22
|
+
hasEntities: joi_1.default.boolean().required(),
|
|
23
|
+
isChunkLoaded: joi_1.default.boolean().required(),
|
|
24
|
+
sendUpdates: joi_1.default.boolean().required(),
|
|
25
|
+
tileEntityCount: joi_1.default.number().required(),
|
|
26
|
+
entityCount: joi_1.default.number().optional(),
|
|
27
|
+
entityList: joi_1.default.array().items(joi_1.default.array().items(entity_1.EntitySchema)).optional(),
|
|
28
|
+
inhabitedTime: joi_1.default.number().required(),
|
|
29
|
+
});
|
|
30
|
+
exports.ChunkWithDimensionSchema = exports.ChunkSchema.append({
|
|
31
|
+
dimension: joi_1.default.number().required(),
|
|
32
|
+
});
|
|
33
|
+
exports.ChunksByDimensionSchema = joi_1.default.object({
|
|
34
|
+
name: joi_1.default.string().required(),
|
|
35
|
+
class: common_1.ClassInfoSchema.optional(),
|
|
36
|
+
chunks: joi_1.default.array().items(exports.ChunkSchema).required(),
|
|
37
|
+
count: joi_1.default.number().required(),
|
|
38
|
+
});
|
|
39
|
+
exports.ChunkLoadInfoSchema = joi_1.default.object({
|
|
40
|
+
ticketKey: joi_1.default.string().required(),
|
|
41
|
+
chunkX: joi_1.default.number().required(),
|
|
42
|
+
chunkZ: joi_1.default.number().required(),
|
|
43
|
+
minX: joi_1.default.number().required(),
|
|
44
|
+
maxX: joi_1.default.number().required(),
|
|
45
|
+
minZ: joi_1.default.number().required(),
|
|
46
|
+
maxZ: joi_1.default.number().required(),
|
|
47
|
+
dimension: joi_1.default.number().required(),
|
|
48
|
+
startTime: joi_1.default.number().required(),
|
|
49
|
+
durationSec: joi_1.default.number().required(),
|
|
50
|
+
remainingSec: joi_1.default.number().required(),
|
|
51
|
+
isActive: joi_1.default.boolean().required(),
|
|
52
|
+
});
|
|
53
|
+
exports.ChunkForceListSchema = joi_1.default.object({
|
|
54
|
+
totalLoaded: joi_1.default.number().required(),
|
|
55
|
+
chunks: joi_1.default.array().items(exports.ChunkLoadInfoSchema).required(),
|
|
56
|
+
});
|
|
57
|
+
exports.ChunkLoadResultSchema = exports.ChunkLoadInfoSchema.append({
|
|
58
|
+
action: joi_1.default.valid("load", "unload").required(),
|
|
59
|
+
});
|
|
60
|
+
exports.ChunkMapCellSchema = joi_1.default.object({
|
|
61
|
+
name: joi_1.default.string().required(),
|
|
62
|
+
meta: joi_1.default.number().required(),
|
|
63
|
+
y: joi_1.default.number().required(),
|
|
64
|
+
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import Joi from "joi";
|
|
2
|
+
import type { RootInfo } from "../types/common";
|
|
3
|
+
export declare const ClassInfoSchema: Joi.ObjectSchema<any>;
|
|
4
|
+
export declare const CoordinatesSchema: Joi.ObjectSchema<any>;
|
|
5
|
+
export declare const ApiSuccessResponseSchema: <T>(dataSchema: Joi.Schema<T>) => Joi.ObjectSchema<any>;
|
|
6
|
+
export declare const ApiErrorResponseSchema: Joi.ObjectSchema<any>;
|
|
7
|
+
export declare const ApiResponseSchema: <T>(dataSchema: Joi.Schema<T>) => Joi.AlternativesSchema<any>;
|
|
8
|
+
export declare const RootInfoSchema: Joi.ObjectSchema<RootInfo>;
|