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.

100 lines
3.2 KiB

package xyz.wbsite.jmacro.wjdr;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import xyz.wbsite.jmacro.JMacro;
import xyz.wbsite.jmacro.JMainService;
import xyz.wbsite.jmacro.base.ViewRect;
import xyz.wbsite.jmacro.util.Logger;
import xyz.wbsite.jmacro.wjdr.task.Task_;
import xyz.wbsite.jmacro.wjdr.task.Task_;
import xyz.wbsite.jmacro.wjdr.task.Task_;
import xyz.wbsite.jmacro.wjdr.task.Task_;
/**
* 无尽冬日脚本
*
* @author wangbing
* @version 0.0.1
* @since 1.8
*/
public class MacroForWJDR extends JMacro {
/**
* 工作开始时间
*/
private final String workStart = "08:00:00";
/**
* 工作结束时间
*/
private final String workEnd = "24:00:00";
/**
* 最大工作时间(ms)
*/
private final long workTime = 30 * 60 * 1000;
@Override
public synchronized ViewRect focus() {
Logger.info("聚焦窗口");
ViewRect mumu = findLegend("慕慕_工具栏", 0.95d);
ViewRect rect = getScreenRect();
if (mumu == null) {
Logger.info("聚焦窗口失败,默认全屏");
} else {
// 计算应用窗口返回
rect.setLeft(mumu.getLeft() - 428);
rect.setTop(mumu.getBottom() + 7);
rect.setRight(mumu.getRight());
rect.setBottom(mumu.getBottom() + 951);
}
Logger.info("聚焦窗口:" + rect.toString());
Logger.info("聚焦窗口大小:{}x{}", rect.getRight() - rect.getLeft(), rect.getBottom() - rect.getTop());
return rect;
}
@Override
public void run() {
DateTime current = DateUtil.date();
String currentTime = current.toString("HH:mm:ss");
Logger.info("工作时间:{}~{}", workStart, workEnd);
Logger.info("当前时间:{}", currentTime);
if (!DateUtil.parseTime(currentTime).isIn(DateUtil.parseTime(workStart), DateUtil.parseTime(workEnd))) {
Logger.info("当前时间为非工作时间,休眠待命!");
delay(60 * 1000);
return;
}
Logger.info("当前时间为工作时间");
Logger.info("任务线程开始", current.toString("yyyy-MM-dd HH:mm:ss"));
// 获取启动图标
Logger.info("查找启动图标");
ViewRect launch = findLegend("启动图标", 0.9);
if (launch != null) {
Logger.info("启动图标坐标:", launch.toString());
Logger.info("点击启动图标");
mouseLeftClick(launch);
Logger.info("等待程序启动中,请稍等...");
delay(10 * 1000);
}
Logger.info("启动循环任务");
while (JMainService.getInstance().run) {
// 任意界面优先返回城镇
new Task_(this, focusRect).run();
// 可按优先级排序以下任务
{
// 矿场攻击检测任务
new Task_(this, focusRect).run();
// 避难者
new Task_(this, focusRect).run();
// 自动采矿任务
new Task_(this, focusRect).run();
}
}
}
}

Powered by TurnKey Linux.