From db19e2bec3435b0baba67ad171966d287052a0cf Mon Sep 17 00:00:00 2001 From: Knut Ahlers Date: Fri, 20 Apr 2018 08:18:51 +0200 Subject: [PATCH] Follow ESLint suggestions Signed-off-by: Knut Ahlers --- .eslintrc.json | 198 ++++++++++++++++++++++++++++++++++++++ autocookieclicker.user.js | 45 ++++----- 2 files changed, 218 insertions(+), 25 deletions(-) create mode 100644 .eslintrc.json diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..3d6b9be --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,198 @@ +{ + "parserOptions": { + "ecmaVersion": 8, + "ecmaFeatures": { + "experimentalObjectRestSpread": true, + "jsx": true + }, + "sourceType": "module" + }, + + "env": { + "es6": true, + "node": false + }, + + "plugins": [ + "import", + "node", + "promise", + "standard" + ], + + "globals": { + "document": false, + "navigator": false, + "window": false + }, + + "rules": { + "accessor-pairs": "error", + "arrow-spacing": ["error", { "before": true, "after": true }], + "block-spacing": ["error", "always"], + "brace-style": ["error", "1tbs", { "allowSingleLine": true }], + "camelcase": ["error", { "properties": "never" }], + "comma-dangle": ["error", "always-multiline"], + "comma-spacing": ["error", { "before": false, "after": true }], + "comma-style": ["error", "last"], + "constructor-super": "error", + "curly": ["error", "multi-line"], + "dot-location": ["error", "property"], + "eol-last": "error", + "eqeqeq": ["error", "always", { "null": "ignore" }], + "func-call-spacing": ["error", "never"], + "generator-star-spacing": ["error", { "before": true, "after": true }], + "handle-callback-err": ["error", "^(err|error)$" ], + "indent": ["error", 2, { + "SwitchCase": 1, + "VariableDeclarator": 1, + "outerIIFEBody": 1, + "MemberExpression": 1, + "FunctionDeclaration": { "parameters": 1, "body": 1 }, + "FunctionExpression": { "parameters": 1, "body": 1 }, + "CallExpression": { "arguments": 1 }, + "ArrayExpression": 1, + "ObjectExpression": 1, + "ImportDeclaration": 1, + "flatTernaryExpressions": false, + "ignoreComments": false + }], + "key-spacing": ["error", { "beforeColon": false, "afterColon": true }], + "keyword-spacing": ["error", { "before": true, "after": true }], + "new-cap": ["error", { "newIsCap": true, "capIsNew": false }], + "new-parens": "error", + "no-array-constructor": "error", + "no-caller": "error", + "no-class-assign": "error", + "no-compare-neg-zero": "error", + "no-cond-assign": "error", + "no-const-assign": "error", + "no-constant-condition": ["error", { "checkLoops": false }], + "no-control-regex": "error", + "no-debugger": "error", + "no-delete-var": "error", + "no-dupe-args": "error", + "no-dupe-class-members": "error", + "no-dupe-keys": "error", + "no-duplicate-case": "error", + "no-empty-character-class": "error", + "no-empty-pattern": "error", + "no-eval": "error", + "no-ex-assign": "error", + "no-extend-native": "error", + "no-extra-bind": "error", + "no-extra-boolean-cast": "error", + "no-extra-parens": ["error", "functions"], + "no-fallthrough": "error", + "no-floating-decimal": "error", + "no-func-assign": "error", + "no-global-assign": "error", + "no-implied-eval": "error", + "no-inner-declarations": ["error", "functions"], + "no-invalid-regexp": "error", + "no-irregular-whitespace": "error", + "no-iterator": "error", + "no-label-var": "error", + "no-labels": ["error", { "allowLoop": false, "allowSwitch": false }], + "no-lone-blocks": "error", + "no-mixed-operators": ["error", { + "groups": [ + ["==", "!=", "===", "!==", ">", ">=", "<", "<="], + ["&&", "||"], + ["in", "instanceof"] + ], + "allowSamePrecedence": true + }], + "no-mixed-spaces-and-tabs": "error", + "no-multi-spaces": "error", + "no-multi-str": "error", + "no-multiple-empty-lines": ["error", { "max": 1, "maxEOF": 0 }], + "no-negated-in-lhs": "error", + "no-new": "error", + "no-new-func": "error", + "no-new-object": "error", + "no-new-require": "error", + "no-new-symbol": "error", + "no-new-wrappers": "error", + "no-obj-calls": "error", + "no-octal": "error", + "no-octal-escape": "error", + "no-path-concat": "error", + "no-proto": "error", + "no-redeclare": "error", + "no-regex-spaces": "error", + "no-return-assign": ["error", "except-parens"], + "no-return-await": "error", + "no-self-assign": "error", + "no-self-compare": "error", + "no-sequences": "error", + "no-shadow-restricted-names": "error", + "no-sparse-arrays": "error", + "no-tabs": "error", + "no-template-curly-in-string": "error", + "no-this-before-super": "error", + "no-throw-literal": "error", + "no-trailing-spaces": "error", + "no-undef": "error", + "no-undef-init": "error", + "no-unexpected-multiline": "error", + "no-unmodified-loop-condition": "error", + "no-unneeded-ternary": ["error", { "defaultAssignment": false }], + "no-unreachable": "error", + "no-unsafe-finally": "error", + "no-unsafe-negation": "error", + "no-unused-expressions": ["error", { "allowShortCircuit": true, "allowTernary": true, "allowTaggedTemplates": true }], + "no-unused-vars": ["error", { "vars": "all", "args": "none", "ignoreRestSiblings": true }], + "no-use-before-define": ["error", { "functions": false, "classes": false, "variables": false }], + "no-useless-call": "error", + "no-useless-computed-key": "error", + "no-useless-constructor": "error", + "no-useless-escape": "error", + "no-useless-rename": "error", + "no-useless-return": "error", + "no-whitespace-before-property": "error", + "no-with": "error", + "object-property-newline": ["error", { "allowMultiplePropertiesPerLine": true }], + "one-var": ["error", { "initialized": "never" }], + "operator-linebreak": ["error", "after", { "overrides": { "?": "before", ":": "before" } }], + "padded-blocks": ["error", { "blocks": "never", "switches": "never", "classes": "never" }], + "prefer-promise-reject-errors": "error", + "quotes": ["error", "single", { "avoidEscape": true, "allowTemplateLiterals": true }], + "rest-spread-spacing": ["error", "never"], + "semi": ["error", "always"], + "semi-spacing": ["error", { "before": false, "after": true }], + "space-before-blocks": ["error", "always"], + "space-before-function-paren": ["error", "never"], + "space-in-parens": ["error", "never"], + "space-infix-ops": "error", + "space-unary-ops": ["error", { "words": true, "nonwords": false }], + "spaced-comment": ["error", "always", { + "line": { "markers": ["*package", "!", "/", ",", "="] }, + "block": { "balanced": true, "markers": ["*package", "!", ",", ":", "::", "flow-include"], "exceptions": ["*"] } + }], + "symbol-description": "error", + "template-curly-spacing": ["error", "never"], + "template-tag-spacing": ["error", "never"], + "unicode-bom": ["error", "never"], + "use-isnan": "error", + "valid-typeof": ["error", { "requireStringLiterals": true }], + "wrap-iife": ["error", "any", { "functionPrototypeMethods": true }], + "yield-star-spacing": ["error", "both"], + "yoda": ["error", "never"], + + "import/export": "error", + "import/first": "error", + "import/no-duplicates": "error", + "import/no-webpack-loader-syntax": "error", + + "node/no-deprecated-api": "error", + "node/process-exit-as-throw": "error", + + "promise/param-names": "error", + + "standard/array-bracket-even-spacing": ["error", "either"], + "standard/computed-property-even-spacing": ["error", "even"], + "standard/no-callback-literal": "error", + "standard/object-curly-even-spacing": ["error", "either"] + } +} diff --git a/autocookieclicker.user.js b/autocookieclicker.user.js index 64bd9e9..c9b46b4 100644 --- a/autocookieclicker.user.js +++ b/autocookieclicker.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name Automate CookieClicker // @namespace https://luzifer.io/ -// @version 0.16.1 +// @version 0.16.2 // @description Automate everything! // @author Knut Ahlers // @source https://github.com/Luzifer/automate-cookie-clicker @@ -10,28 +10,29 @@ // @updateURL https://raw.githubusercontent.com/Luzifer/automate-cookie-clicker/master/autocookieclicker.user.js // @icon http://orteil.dashnet.org/cookieclicker/img/favicon.ico // @grant GM_info -// @grant GM_addStyle // ==/UserScript== -var blockingUpgrades = [ +/* global Game:galse, GM_info:false, $:false */ + +let blockingUpgrades = [ 69, // Destructive upgrade: "One mind" 85, // Revoke elders covenant 331, // Golden switch 333, // Milk selector 414, // Background selector ]; -var dragonAuras = [ +let dragonAuras = [ 10, // Golden cookies may trigger a Dragonflight. 15, // All cookie production multiplied by 2. ]; -var purchaseSteps = 50; +let purchaseSteps = 50; function autoClick() { $('#bigCookie').click(); } function executeAutoActions() { - if (Game.T % (Game.fps * 0.5) != 0) { + if (Game.T % (Game.fps * 0.5) !== 0) { // Game logic ticks very fast, only trigger every 0.5s return; } @@ -47,17 +48,15 @@ function executeAutoActions() { // Look for upgrades being available let availableUpgrades = $('.upgrade.enabled').filter(upgradeFilter); if (availableUpgrades.length > 0) { - debug(availableUpgrades.length + " upgrades available, buying now..."); availableUpgrades.click(); note('Purchased ' + availableUpgrades.length + ' upgrades for you.'); } // Get the top enabled purchase to be made let availableProducts = $('.product.unlocked.enabled').filter(productFilter); - if (availableProducts.length > 0 && Game.buyMode == 1) { // buyMode 1 = buy, -1 = sell + if (availableProducts.length > 0 && Game.buyMode === 1) { // buyMode 1 = buy, -1 = sell let product = $(availableProducts[availableProducts.length - 1]); - debug("Auto-Buying: " + product.find('.title:first').text()); product.click(); note('Purchased ' + product.find('.title:first').text() + ' for you.'); } @@ -68,21 +67,17 @@ function executeAutoActions() { function controlAutoClicker() { let cps = Game.cookiesPs; if (cps < 3000 || hasActiveClickBuff()) { - if (window.autoClicker == undefined) { + if (window.autoClicker === undefined) { window.autoClicker = window.setInterval(autoClick, 100); } } else { - if (window.autoClicker != undefined) { + if (window.autoClicker !== undefined) { window.clearInterval(window.autoClicker); window.autoClicker = undefined; } } } -function debug(msg) { - console.log("[AutoCookieClicker] " + msg); -} - function getMaxBuy() { let topPurchaseCount = Game.ObjectsById[Game.ObjectsN - 1].amount; @@ -90,8 +85,8 @@ function getMaxBuy() { } function hasActiveClickBuff() { - var hasBuff = false; - for (var key in Game.buffs) { + let hasBuff = false; + for (let key in Game.buffs) { if (Game.buffs[key].multClick) hasBuff = true; } return hasBuff; @@ -109,36 +104,36 @@ function installHelper() { function manageDragon() { // Upgrade dragon if possible if (Game.dragonLevels[Game.dragonLevel].cost() && Game.dragonLevel < Game.dragonLevels.length - 1) { - Game.UpgradeDragon() + Game.UpgradeDragon(); } // Select first dragon aura - if (Game.dragonAura != dragonAuras[0] && Game.dragonLevel >= dragonAuras[0] + 4 && Game.SelectingDragonAura != dragonAura[0]) { + if (Game.dragonAura !== dragonAuras[0] && Game.dragonLevel >= dragonAuras[0] + 4 && Game.SelectingDragonAura !== dragonAuras[0]) { Game.SetDragonAura(dragonAuras[0], 0); } // Select second dragon aura - if (Game.dragonAura2 != dragonAuras[1] && Game.dragonLevel >= 22 && Game.SelectingDragonAura != dragonAura[1]) { + if (Game.dragonAura2 !== dragonAuras[1] && Game.dragonLevel >= 22 && Game.SelectingDragonAura !== dragonAuras[1]) { Game.SetDragonAura(dragonAuras[1], 1); } } function note(msg, quick = true) { // Icon: img/icons.png 0-based indices - Game.Notify("Auto-CookieClicker", msg, [12, 0], quick, true); + Game.Notify('Auto-CookieClicker', msg, [12, 0], quick, true); } -function productFilter(idx) { +function productFilter() { let owned = Game.ObjectsById[parseInt($(this).attr('id').replace(/^product/, ''))].amount; return owned < getMaxBuy(); } -function upgradeFilter(idx) { - var onClickHandler = $(this).attr('onclick'); +function upgradeFilter() { + let onClickHandler = $(this).attr('onclick'); if (onClickHandler == null) { return false; } - var upgradeID = parseInt(onClickHandler.replace(/^.*\[([0-9]+)\].*$/, "$1")); + let upgradeID = parseInt(onClickHandler.replace(/^.*\[([0-9]+)\].*$/, '$1')); return !blockingUpgrades.includes(upgradeID); }