自动挖矿机器人
// ==UserScript==
// @name mine
// @namespace http://tampermonkey.net/
// @version 0.0.0.7
// @description 自动挖矿机器人
// @author LaoTie
// @match https://www.element3ds.com/plugin.php?id=yw_mine:front&mod=mineDetail&mineId=*
// @match https://www.element3ds.com/plugin.php?id=yinxingfei_zzza:yinxingfei_zzza_hall
// @grant GM_setValue
// @grant GM_getValue
// ==/UserScript==
(async function () {
'use strict';
await sleep(2000);
await workupdate();
await kaikuang();
await lingqu();
await AskAction();
await MineLocalStorage();
var timer = setInterval(async function () {
location.reload();
}, 180000);
})();
async function MineLocalStorage() {
var mineid = getQuery('mineId');
var minstr = localStorage.getItem('minelist');
var mines = JSON.parse(minstr)
var nowvalue = Date.now();
if (mines === null) {
mines = [];
} else {
console.log(mines);
var has = false;
for (let i = 0; i < mines.length; i++) {
console.log(dateFormat('YYYY-mm-dd HH:MM', new Date(mines[i].date)));
if (mines[i].mineid === mineid) {
has = true;
if (mines[i].date > nowvalue) {
var datestr = jQuery('.yun_mine_detail span')[8].innerText;
datestr = datestr.replace(' 到期', '');
var daoqidate = new Date(datestr);
var daoqi = Date.parse(daoqidate);
if (mines[i].date !== daoqi) {
mines[i].date = daoqi;
}
}
}
if (mines[i].date < nowvalue) {
mines.shift(mines[i])
localStorage.setItem('minelist', JSON.stringify(mines));
window.location.href='https://www.element3ds.com/plugin.php?id=yw_mine:front&mod=mineDetail&mineId=' + mines[i].mineid;
}
}
if (!has) {
var datestr = jQuery('.yun_mine_detail span')[8].innerText;
datestr = datestr.replace(' 到期', '');
var daoqidate = new Date(datestr);
var daoqi = Date.parse(daoqidate);
let mine = {}
mine['mineid'] = mineid;
mine['date'] = daoqi;
mines.push(mine);
}
}
localStorage.setItem('minelist', JSON.stringify(mines));
}
//开矿
async function kaikuang() {
var ele = jQuery('.yun_mine_control.clearfix a')[0];
if (ele === undefined) {
return;
}
var attr = ele.attributes[1];
if (attr.value.indexOf('background-color:#696969;') < 0 && ele.innerText == '开始挖矿') {
ele.click();
await sleep(500);
jQuery('.tps-bottom a')[0].click();
await sleep(500);
jQuery('.yunw_button.clearfix a').click();
await sleep(500);
jQuery('#enter').click();
}
}
//更新工人数量
async function workupdate() {
var ele = jQuery('.yun_mine_control.clearfix a')[2]
if (ele === undefined) {
return;
}
var mnumele = jQuery('.yun_user_record .icon-miner');
var minerCount = 0;
if (mnumele.length > 0) {
minerCount = jQuery('.yun_user_record .icon-miner')[0].innerText.trim();
}
if (ele.innerText == '矿工管理' && minerCount > 0) { //派遣
ele.click();
await sleep(500);
var canSendMiner = jQuery('.yunw_text .clearfix')[1];
canSendMiner = canSendMiner.innerText.replace('*可派遣人数:', '').replace('人', '');
if (canSendMiner > 0) {
jQuery('.yunw_label_radio label input')[0].click();
await sleep(500);
jQuery('.yunw_label_input').val(canSendMiner);
await sleep(500);
jQuery('.yunw_button input')[0].click();
await sleep(500);
jQuery('#enter').click();
} else {
jQuery('.yunw_title div span').click();
}
}
}
//领取操作
async function lingqu() {
let list = await findele('.yun_user_ore')
if (list.length > 0) {
for (let i = 0; i < list.length; i++) {
if (list[i].children.length > 0) {
for (let j = 0; j < list[i].children.length; j++) {
if (list[i].children[j].children[0].innerHTML > 0 && list[i].children[j].children[1].attributes[1].value.indexOf('plugin.php?id=yw_mine:front&mod=myStore&act=callback_input&oreId=0') < 0) {
let name = list[i].children[j].children[1].innerHTML;
let cminfo = {};
cminfo.name = name;
cminfo.ele = list[i].children[j].children[1];
await getMine(cminfo);
await sleep(500);
}
}
}
}
}
}
//执行领取和出售的确认操作
async function getMine(ele) {
ele.ele.click();
// console.log(Date.parse(new Date()));
await sleep(500);
// console.log(Date.parse(new Date()));
let buts = jQuery('#yunform .yunw_button input');
if (buts.length > 0) {
// console.log(buts[0].value);
buts[0].click();
await sleep(1000);
jQuery('#enter').click();
}
}
//打开问答需要辅助其他的答题脚本
async function AskAction() {
var starele = jQuery('#ahome_question_icon')[0];
if (starele !== undefined) {
await yaoyiyao();
starele.click();
await sleep(500);
jQuery('.tps-bottom a')[0].click();
await sleep(500);
}
}
async function yaoyiyao() {
if (window.location.href.indexOf('yinxingfei_zzza_hall', 0) > 0) {
var ele = jQuery('.zzza_hall_bottom_right_yjan_left a');
if (ele === undefined) {
return;
}
ele.click();
await sleep(500);
jQuery('.tps-bottom a')[0].click();
await sleep(500);
jQuery('#zzza_go').click();
await sleep(1000);
} else {
window.location = 'https://www.element3ds.com/plugin.php?id=yinxingfei_zzza:yinxingfei_zzza_hall';
}
}
async function findele(cls) {
let list = [];
jQuery(cls).each(function (i, e) {
list.push(e);
})
return list;
}
//等待时间
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
//获取地址参数
function getQuery(name) {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
var r = window.location.search.substr(1).match(reg);
if (r != null) {
return unescape(r[2]);
}
return null;
}
function GM_setObject(name, value) {
if (value instanceof Object) {
GM_setValue(name, JSON.stringify(value));
}
}
function GM_getObject(name, undefined) {
try {
return JSON.parse(GM_getValue(name, '') || '{}');
} catch (e) {
return undefined;
}
};
function dateFormat(fmt, date) {
let ret;
const opt = {
"Y+": date.getFullYear().toString(), // 年
"m+": (date.getMonth() + 1).toString(), // 月
"d+": date.getDate().toString(), // 日
"H+": date.getHours().toString(), // 时
"M+": date.getMinutes().toString(), // 分
"S+": date.getSeconds().toString() // 秒
// 有其他格式化字符需求可以继续添加,必须转化成字符串
};
for (let k in opt) {
ret = new RegExp("(" + k + ")").exec(fmt);
if (ret) {
fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
};
};
return fmt;
}