630d5e0950
also fix param input of instance:edit
38 lines
1.2 KiB
JavaScript
38 lines
1.2 KiB
JavaScript
import { BuilderNotFoundError } from "../../classes/Errors/BuilderNotFoundError";
|
|
import { APICallerError } from "../../lib/AddonAPIKit";
|
|
import { BuilderIdParameterModel } from "../ConstructAPIModel";
|
|
|
|
export class BuildersController extends APIController {
|
|
#context;
|
|
|
|
constructor(context) {
|
|
super({
|
|
"builders:get": { callback: this.getBuilder, parameterModel: BuilderIdParameterModel, returnModel: InstanceModel },
|
|
"builders:edit": { callback: this.editBuilder, parameterModel: InstanceModel, returnModel: InstanceModel }
|
|
});
|
|
this.#context = context;
|
|
}
|
|
|
|
getBuilder(playerId) {
|
|
try {
|
|
const builder = this.#context.get(playerId);
|
|
return builder.asPacket();
|
|
} catch(error) {
|
|
if (error instanceof BuilderNotFoundErrors)
|
|
throw new APICallerError(error);
|
|
throw error;
|
|
}
|
|
}
|
|
|
|
editBuilder(builderOptions) {
|
|
try {
|
|
const builder = this.#context.get(builderOptions.playerId);
|
|
builder.setOptions(builderOptions);
|
|
} catch(error) {
|
|
if (error instanceof BuilderNotFoundError)
|
|
throw new APICallerError(error);
|
|
throw error;
|
|
}
|
|
}
|
|
}
|