Add build building task

This commit is contained in:
2020-04-12 20:41:26 +03:00
parent 9d85d07ff5
commit 9fdc573746
8 changed files with 127 additions and 25 deletions

View File

@ -0,0 +1,24 @@
import { ActionController, registerAction } from './ActionController';
import { Args } from '../Common';
import { ActionError, GrabError, TryLaterError } from '../Errors';
import { Task } from '../Storage/TaskQueue';
import { clickBuildButton } from '../Page/BuildingPage';
@registerAction
export class BuildBuildingAction extends ActionController {
async run(args: Args, task: Task): Promise<any> {
const buildTypeId = args.buildTypeId;
if (!buildTypeId) {
throw new ActionError(task.id, 'Unknown build type id');
}
try {
clickBuildButton(buildTypeId);
} catch (e) {
if (e instanceof GrabError) {
throw new TryLaterError(task.id, 15 * 60, 'No build button, try later');
}
throw e;
}
}
}