You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
1.5 KiB

package xyz.wbsite.jmacro.wjdr.task;
import xyz.wbsite.jmacro.JMacro;
import xyz.wbsite.jmacro.JMainService;
import xyz.wbsite.jmacro.base.ViewRect;
import xyz.wbsite.jmacro.ex.MacroErrorException;
import xyz.wbsite.jmacro.util.Logger;
/**
* 基础任务类
*/
public abstract class BaseTask {
/**
* 脚本持有对象
*/
protected JMacro macro;
/**
* 应用窗口
*/
protected ViewRect viewRect;
public BaseTask(JMacro macro, ViewRect viewRect) {
this.macro = macro;
this.viewRect = viewRect;
}
public void run() {
if (!JMainService.getInstance().run) {
Logger.error("服务中断");
return;
}
String name = getClass().getSimpleName();
try {
Logger.info("》》》任务[{}]开始》》》", name);
this.task(macro, viewRect);
Logger.info("》》》任务[{}]结束》》》", name);
} catch (Exception e) {
Logger.info("》》》任务[{}]异常中断》》》", name);
throw e;
}
}
public void isReady() {
for (int i = 0; i < 10; i++) {
ViewRect rect = macro.matchLegend("野外", 0.9);
if (rect != null) {
return;
}
macro.delay(100);
}
throw new MacroErrorException("请返回城镇");
}
/**
* 任务
*
* @param macro 脚本
* @param viewRect 视口
*/
public abstract void task(JMacro macro, ViewRect viewRect);
}

Powered by TurnKey Linux.