Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restore bot functionality #34

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 109 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
# Moomoo.io AI Bot Sender

~~This script is a very configurable botting tool for the MMO game [Moomoo.io](http://moomoo.io).~~
This script is a very configurable botting tool for the MMO game [Moomoo.io](http://moomoo.io).

**Bot sending is no longer functional due to Moomoo.io's new IP limits. However, probing still works, so raid livestreams manually to your heart's content.**

### WARNING: Please do not download any code that claims that it will "fix" or "add features" to this bot code. People have been including trojans and viruses in those unofficial programs. The ONLY official Moomoo bot code authors are Mega-Mewthree and Nebula-Devs. DO NOT download any other code related to Moomoo bots.
### WARNING: Please do not download any code that claims that it will "fix" or "add features" to this bot code. People have been including trojans and viruses in those unofficial programs. The ONLY official Moomoo bot code authors are `Mega-Mewthree` and `Nebula-Developers`. DO NOT download any other code related to Moomoo bots.

We are not responsible for any damages caused by this project, or derivatives of this project. Use at your own risk.

Expand All @@ -13,7 +11,7 @@ We are not responsible for any damages caused by this project, or derivatives of
* [Discord](https://discord.gg/VgKFcVf)
* [Subreddit](https://reddit.com/r/Nebula_Devs)

For contributors: [To-Do List](https://github.com/Mega-Mewthree/Moomoo-AI-Bot-Sender/projects/1)
For contributors: [To-Do List](https://github.com/Nebula-Developers/Moomoo-AI-Bot-Sender/projects/1)

## Installation

Expand All @@ -23,6 +21,39 @@ First, you must download and install Node.js: https://nodejs.org/en/

For all the Windows users who have no clue how to open a Command Prompt terminal/console, open `openCommandPrompt.bat`.

### Install Compilers to Make Follow Mouse Command Work (Optional)

If you have already installed the bot code, run `npm uninstall robotjs` in your console/terminal inside of the bot code's directory.

#### Windows

Download and install Visual C++ Build Tools 2015 [here](http://landinghub.visualstudio.com/visual-cpp-build-tools).

Download and install Python 2.7.x [here](https://www.python.org/downloads/release/python-2714/). Make sure you select the option to add it to PATH.

Run the following commands in your console (Command Prompt/Powershell):

npm config set python python2.7
npm config set msvs_version 2015

#### Mac OS X

Download and install Python 2.7.x [here](https://www.python.org/downloads/release/python-2714/) if it isn't already installed.

Download and install Xcode [here](https://developer.apple.com/xcode/download/).

#### Unix

You need Python 2.7.x and `make`.

Download and install GCC [here](https://gcc.gnu.org/).

#### All Systems

Run the following command in your console/terminal inside of the bot code's directory:

npm install robotjs

### Install the Bot Code (Required)

After Node.js is installed, run the below command in your console inside this folder. It is required to install important code the script depends on to run, and you can do that easily with the following command:
Expand All @@ -31,20 +62,60 @@ After Node.js is installed, run the below command in your console inside this fo

Or you can run `npminstall.bat` if you are on Windows and you have no clue how to get to a console.

Install a userscript manager:

Chrome: [Tampermonkey](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo?hl=en)

Firefox: [Tampermonkey](https://addons.mozilla.org/firefox/addon/tampermonkey/)

Safari: [Tampermonkey](http://tampermonkey.net/?browser=safari)

Microsoft Edge: [Tampermonkey](https://www.microsoft.com/store/p/tampermonkey/9nblggh5162s)

Opera: [Tampermonkey](https://addons.opera.com/extensions/details/tampermonkey-beta/)


Put the code in showid.user.js into Tampermonkey so that your ID is visible.


Here is the start script:

node index.js [--probeTribe tribeName] [--probeName playerName] [--probeRegex boolean]
node index.js [--probeTribe tribeName] [--probeName playerName] [--num numberOfBots] [--link moomooPartyLink] [--tribe tribeName] [--name botName] [--randNames true] [--chat chatMessage] [--ai true] [--autoHeal true] [--randSkins true]

See the next section for information on everything after `node index.js`.

## Configuration

~~There are two main modes to this bot, probing and botting.~~

**The script only has the probe function now.**
There are two main modes to this bot, probing and botting.

#### NEW: Open start.bat to get an easier to use UI! For people who can't use the command line very well! (Windows only)

### Botting

Type "setowner \<your ID>" into the node.js console to make the bot obey your commands.

`--num` sets the number of bots. Required for bots to function, and servers have their own limit of around 20 bots and users. Default: `0`

`--link` sets the Moomoo party link. Required for bots to function. Default: none

`--tribe` sets the Moomoo tribe. Default: none

`--name` sets the bots' names. Default: `unknown`

`--randNames` selects random names for the bots. Default: `false`

`--chat` sets the bots' chat message. Default: none

`--ai` enables using commands. If AI is not enabled, the bots spawn and do nothing. Default: `false`

`--autoHeal` enables auto healing. Default: `true`

`--randSkins` randomizes the skin color of bots. Default: `false`

`--hat` changes the hat via ID, name, or keyword, that will be bought/equipped when enough gold is reached. You can find each hat's ID online, and soon in the Tampermonkey script. Default: none

`--autoAttack` enables auto attack (as if they pressed E). Default: `true`

### Probing

`--probeTribe` searches all Moomoo.io servers for any tribes with the given name and returns the IPs so you can use them with --link.
Expand All @@ -53,7 +124,7 @@ See the next section for information on everything after `node index.js`.

`--probeRegex` makes the arguments provided to the 2 previous probe flags be interpreted as a regular expression. Do not use flags in your regular expression. Note that the starting and ending slashes (`/`) are not required. It is suggested that you surround your search expression in quotation marks so that the terminal doesn't interpret special characters like `>` as command line operators. Default: `false`

You can probe (search) for a name on the leaderboard or a tribe on all the public Moomoo.io servers. This is useful if you want to raid someone's livestream.
You can probe (search) for a name on the leaderboard or a tribe on all the public Moomoo.io servers. This is useful if you want to use the other part of this script to put bots on someone's livestream.

Here is the start script for probing using a tribe name:

Expand All @@ -72,3 +143,31 @@ Here is an example of regular expression probing:
node index.js --probeName "Luc" --probeRegex true

This will return all servers where someone whose name has the string `Luc` is on the leaderboard. For example, it will match `Luc`, `Luca`, `Lucario`, and `abcLucdef`. (But not `luc`.)

You can put both the outputs into `--link` for the botting start script.

## Console Commands

Type `setowner <your ID>` into the Node.js console to make the bot obey your ingame commands.

## Ingame Commands

Press R or click on the minimap to make a ping on the minimap, which makes the bots come to that pinged location.

!id \<player name>: Makes the bots send the ID of a player in chat.

!fme: Makes the bots follow you.

!fid \<player ID>: Makes the bots follow the player with that ID.

!atkid \<player ID>: Makes the bots attack the player with that ID. [BUGGY]

!s: Makes the bots stay.

!r: Releases the bots from control. Different from !s in that pressing R to ping will move them.

!fm: Makes the bots follow your mouse. May be buggy if the robot.js lib didn't compile correctly.

!hat \<hat ID>: Switches a bot's hat using the ID, name, or keyword. If necessary, the requested hat will be bot.

!atk: Toggles auto attack, as if the bots pressed E.
6 changes: 6 additions & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
June 28, 2018 (2.1.0):
+ Bots are back
* There will still be a warning when using 20 or more bots though
* No known way to bypass IP limit other than proxies (might come eventually)
+ You can re-enable your script, it has some useful features

June 27, 2018 (2.0.0):
+ Sidney added an IP limit to Moomoo.io
* RIP bots 2017-2018
Expand Down
28 changes: 4 additions & 24 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
/*
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

*/

/*
Moomoo-AI-Bot-Sender
Copyright (C) 2018 Mega Mewthree
Expand All @@ -22,8 +16,6 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

// Updated on June 27th, 2018

(async () => {
const io = require("socket.io-client");
const request = require("request");
Expand Down Expand Up @@ -709,8 +701,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
}).catch(console.error);
})(allServers.length);
} else {
console.error("Due to the new IP limit, bot sending no longer works.\nHowever, you can still use the probe function.");
process.exit();
if (numBots > 20) {
process.stdout.write("Warning: 20 or more bots may be capped by a server-side IP limit.\n");
}

const server = getServerByID(link);
if (!server) {
console.error("Invalid link!");
Expand All @@ -736,17 +730,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
});
process.stdin.resume();
})();

/*
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEGTGecftnrhRz9oomf4qgY6FcSQsFAlszwokACgkQf4qgY6Fc
SQsDTggA502bffFL+F0jBl9XW16Ql1BIKXVro8RuXA9DVXvHcFH0vZBFOA0Cz5bx
druRqTT2QpbZPoTgoAznPrMcSBa8SbmBxxpMkAlIf4e5Uyrp+YZF8KoSg6FKnsyU
tlwDTjV8+JnycxPmkH1IuSM0cNgd0lM6s3Cl4p9DuCSnCxjuTIcaDlZNilzftiEs
p8N7647ogCwxSnankpcCUVXrphqbgJNIoGFExUdPpNbwKXF+PUuFFFI76118yHyf
elY6g7wX2ks+75r6L0ULKQ1a75AGVAc7+fpb/zkxELrsiv/OFTm7Dhkyv244q/td
O20ZVdsTqTS1ZtPo5Ltj6j+iYr8lTQ==
=iYEa
-----END PGP SIGNATURE-----
*/
14 changes: 8 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,30 +1,32 @@
{
"name": "moomoo-bots-with-ai",
"version": "2.0.0",
"version": "2.1.0",
"description": "A Moomoo AI Bot Script",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Mega-Mewthree",
"author": "Mega-Mewthree (Nebula-Developers)",
"license": "GPL-3.0",
"dependencies": {
"auto-updater": "^1.0.2",
"request": "^2.83.0",
"socket.io": "^2.0.4",
"socket.io-msgpack-parser": "^2.2.0"
},
"optionalDependencies": {},
"optionalDependencies": {
"robotjs": "^0.4.7"
},
"repository": {
"type": "git",
"url": "https://github.com/Mega-Mewthree/Moomoo-AI-Bot-Sender.git"
"url": "https://github.com/Nebula-Developers/Moomoo-AI-Bot-Sender.git"
},
"bugs": "https://github.com/Mega-Mewthree/Moomoo-AI-Bot-Sender/issues",
"bugs": "https://github.com/Nebula-Developers/Moomoo-AI-Bot-Sender/issues",
"engines": {
"node": ">=7.6.0"
},
"auto-updater": {
"repo": "Mega-Mewthree/Moomoo-AI-Bot-Sender",
"repo": "Nebula-Developers/Moomoo-AI-Bot-Sender",
"branch": "master"
},
"devDependencies": {
Expand Down
4 changes: 2 additions & 2 deletions start.bat
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ cls
@echo off
:start
echo Menu:
echo 1. Bot Sender (NOT FUNCTIONAL)
echo 1. Bot Sender
echo 2. Prober
set /p menu="Select an option: "
if %menu%==2 goto probe
Expand Down Expand Up @@ -42,7 +42,7 @@ cls
set /p partylink="Party Link: "
set /p tribename="Tribe Name: "
set /p botnick="Bot Name: "
set /p numbots="Number of Bots: "
set /p numbots="Number of Bots (may be limited by server): "
set /p chatmsg="Bot Chat Message: "
set /p ai="AI? (Y/N): "
set /p autoheal="Autoheal? (Y/N): "
Expand Down