feat: almost first version (discord integration)

This commit is contained in:
Izan Gil
2022-12-29 12:37:46 +01:00
parent d87bf6f3d2
commit 62bda73ce2
3 changed files with 137 additions and 31 deletions

View File

@@ -1,26 +1,33 @@
import * as colorette from "colorette";
import mineflayer from "mineflayer";
import { mineflayer as mineflayerViewer } from "prismarine-viewer";
import { Client } from "discord.js";
import { Client, GatewayIntentBits } from "discord.js";
import inventoryViewer from "mineflayer-web-inventory";
import "dotenv/config"
const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.MessageContent,
],
});
const bot = mineflayer.createBot({
host: "testingsrizan.aternos.me", // minecraft server ip
username: "YourMom", // minecraft username
// password: '12345678' // minecraft password, comment out if you want to log into online-mode=false servers
port: 24311, // only set if you need a port that isn't 25565
version: "1.18.2", // only set if you need a specific version or snapshot (ie: "1.8.9" or "1.16.5"), otherwise it's set automatically
// auth: 'mojang' // only set if you need microsoft auth, then set this to 'microsoft'
host: "testingsrizan.aternos.me",
username: "YourMom",
port: 24311,
version: "1.18.2",
});
let target;
bot.on("chat", async (username, message) => {
const items = await Promise.all(bot.inventory.items().map(item => {
return item.displayName
}))
target = bot.players[username].entity;
client.on("messageCreate", async (message) => {
if (message.channel.id !== "1057648908630757426") return;
const items = await Promise.all(
bot.inventory.items().map((item) => {
return item.displayName;
})
);
let entity;
switch (message) {
switch (message.content) {
case "hold w":
bot.setControlState("forward", true);
break;
@@ -91,37 +98,42 @@ bot.on("chat", async (username, message) => {
case "dismount":
bot.dismount();
break;
case "move vehicle forward":
case "vehicle forward":
bot.moveVehicle(0.0, 1.0);
break;
case "move vehicle backward":
case "vehicle backward":
bot.moveVehicle(0.0, -1.0);
break;
case "move vehicle left":
case "vehicle left":
bot.moveVehicle(1.0, 0.0);
break;
case "move vehicle right":
case "vehicle right":
bot.moveVehicle(-1.0, 0.0);
break;
case "pos":
bot.chat(bot.entity.position.toString());
break;
case "yp":
bot.chat(`Yaw ${bot.entity.yaw}, pitch: ${bot.entity.pitch}`);
break;
case "items":
bot.chat(`${items.join(', ')}`)
break;
bot.chat(`${items.join(", ")}`);
break;
}
if (message.content.includes('execute') && message.author.id === '703974042700611634') {
bot.chat(message.content.replace('execute ', ''))
message.reply('ok')
}
console.log(`${colorette.bgYellow('MSG')} => message ${message.content} recieved`)
});
client.on("ready", () =>
console.log(colorette.bgGreen("Logged onto Discord!"))
);
bot.on("login", () => {
console.log(colorette.bgGreen("Logged on!"));
console.log(colorette.bgGreen("Logged onto Minecraft!"));
client.login(process.env.TOKEN);
});
bot.once("spawn", () => {
mineflayerViewer(bot, { port: 3007, firstPerson: true });
inventoryViewer(bot);
});
// Log errors and kick reasons:
bot.on("kicked", console.log);
bot.on("error", console.log);

View File

@@ -24,7 +24,9 @@
"dependencies": {
"colorette": "^2.0.19",
"discord.js": "^14.7.1",
"dotenv": "^16.0.3",
"mineflayer": "^4.6.0",
"mineflayer-web-inventory": "^1.8.3",
"prismarine-viewer": "^1.23.0"
}
}

100
yarn.lock
View File

@@ -85,12 +85,17 @@
resolved "https://registry.yarnpkg.com/@tweenjs/tween.js/-/tween.js-18.6.4.tgz#40a3d0a93647124872dec8e0fd1bd5926695b6ca"
integrity sha512-lB9lMjuqjtuJrx7/kOkqQBtllspPIN+96OvTCeJ2j5FEzinoAXTdAMFnDAQT1KVPRlnYfBrqxtqP66vDM40xxQ==
"@types/cookie@^0.4.1":
"@types/component-emitter@^1.2.10":
version "1.2.11"
resolved "https://registry.yarnpkg.com/@types/component-emitter/-/component-emitter-1.2.11.tgz#50d47d42b347253817a39709fef03ce66a108506"
integrity sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==
"@types/cookie@^0.4.0", "@types/cookie@^0.4.1":
version "0.4.1"
resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d"
integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==
"@types/cors@^2.8.12":
"@types/cors@^2.8.12", "@types/cors@^2.8.8":
version "2.8.13"
resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.13.tgz#b8ade22ba455a1b8cb3b5d3f35910fd204f84f94"
integrity sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==
@@ -177,6 +182,11 @@ axios@^0.21.1:
dependencies:
follow-redirects "^1.14.0"
base64-arraybuffer@0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812"
integrity sha512-a1eIFi4R9ySrbiMuyTGx5e92uRH5tQY6kArNcFaKBUleIoLjdjBg7Zxm3Mqm3Kmkf27HLR/1fnxX9q8GQ7Iavg==
base64-js@^1.3.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
@@ -258,6 +268,11 @@ commander@^2.19.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
component-emitter@~1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
compressible@~2.0.16:
version "2.0.18"
resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba"
@@ -365,6 +380,11 @@ discord.js@^14.7.1:
undici "^5.13.0"
ws "^8.11.0"
dotenv@^16.0.3:
version "16.0.3"
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07"
integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==
ecdsa-sig-formatter@1.0.11:
version "1.0.11"
resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf"
@@ -398,11 +418,31 @@ engine.io-client@~6.2.3:
ws "~8.2.3"
xmlhttprequest-ssl "~2.0.0"
engine.io-parser@~4.0.0:
version "4.0.3"
resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-4.0.3.tgz#83d3a17acfd4226f19e721bb22a1ee8f7662d2f6"
integrity sha512-xEAAY0msNnESNPc00e19y5heTPX4y/TJ36gr8t1voOaNmTojP9b3oK3BbJLFufW2XFPQaaijpFewm2g2Um3uqA==
dependencies:
base64-arraybuffer "0.1.4"
engine.io-parser@~5.0.3:
version "5.0.4"
resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.4.tgz#0b13f704fa9271b3ec4f33112410d8f3f41d0fc0"
integrity sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==
engine.io@~4.1.0:
version "4.1.2"
resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-4.1.2.tgz#f96ceb56d4b39cc7ca5bd29a20e9c99c1ad1a765"
integrity sha512-t5z6zjXuVLhXDMiFJPYsPOWEER8B0tIsD3ETgw19S1yg9zryvUfY3Vhtk3Gf4sihw/bQGIqQ//gjvVlu+Ca0bQ==
dependencies:
accepts "~1.3.4"
base64id "2.0.0"
cookie "~0.4.1"
cors "~2.8.5"
debug "~4.3.1"
engine.io-parser "~4.0.0"
ws "~7.4.2"
engine.io@~6.2.1:
version "6.2.1"
resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.2.1.tgz#e3f7826ebc4140db9bbaa9021ad6b1efb175878f"
@@ -722,7 +762,12 @@ mime@1.6.0:
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
minecraft-data@^3.0.0, minecraft-data@^3.15.2, minecraft-data@^3.8.0:
minecraft-assets@^1.6.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/minecraft-assets/-/minecraft-assets-1.9.0.tgz#5139dcdcb9ce4c5ac5cda8d6ecd873d7bba8ccc2"
integrity sha512-KtvIRd9gcKlxbvrswGv1Ap9k7tVs//QW2ukp+8vJ28miYwkhUmYfjTZyElIG8KUXV/46wL2kDzLH8SJbXQ56Mg==
minecraft-data@^3.0.0, minecraft-data@^3.1.1, minecraft-data@^3.15.2, minecraft-data@^3.8.0:
version "3.20.0"
resolved "https://registry.yarnpkg.com/minecraft-data/-/minecraft-data-3.20.0.tgz#b832abcc48be89cd1f485e3cfcd779092bc6fe7c"
integrity sha512-xBQZwY0FoVq7jirFTD8mexNatSddP72CpDYweISHKE3J0co+CgfjtvQ94ykdQW+QPTMgrIIlATxVGIlk0Xjm8w==
@@ -755,6 +800,19 @@ minecraft-protocol@^1.36.0:
uuid-1345 "^1.0.1"
yggdrasil "^1.4.0"
mineflayer-web-inventory@^1.8.3:
version "1.8.3"
resolved "https://registry.yarnpkg.com/mineflayer-web-inventory/-/mineflayer-web-inventory-1.8.3.tgz#69586c3ae79b160d7d4eb70af211422f9d7c8e27"
integrity sha512-lyFhzmwQ7KBWTEHsJc3/skDZ3smTREKdN9nNZ+SL4mn9v3khIGQBsSHebZtXIl+w7xgEF/I0wXlYTZJiedJXQw==
dependencies:
express "^4.17.1"
lodash "^4.17.21"
minecraft-assets "^1.6.0"
minecraft-data "^3.1.1"
prismarine-windows "^2.4.1"
socket.io "^3.1.1"
vec3 "^0.1.7"
mineflayer@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/mineflayer/-/mineflayer-4.6.0.tgz#c9ef2c5e579fc1dcd1e1c1c4b30e44c8b9f4ddbe"
@@ -992,7 +1050,7 @@ prismarine-viewer@^1.23.0:
three.meshline "^1.3.0"
vec3 "^0.1.7"
prismarine-windows@^2.5.0:
prismarine-windows@^2.4.1, prismarine-windows@^2.5.0:
version "2.6.1"
resolved "https://registry.yarnpkg.com/prismarine-windows/-/prismarine-windows-2.6.1.tgz#f0e1331eb3d61ad8a5e57a3e61adcd13489bf2e0"
integrity sha512-5B8+W4Zb9MWaakd38I/WW564zEgat6bC23ftcv15yVYmHZTq8mtUfX2GsOUD3Pu/aFKarvXpyyJahFMUTUVoXg==
@@ -1177,6 +1235,11 @@ smart-buffer@^4.1.0:
resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae"
integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==
socket.io-adapter@~2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz#edc5dc36602f2985918d631c1399215e97a1b527"
integrity sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==
socket.io-adapter@~2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz#b50a4a9ecdd00c34d4c8c808224daa1a786152a6"
@@ -1192,6 +1255,15 @@ socket.io-client@^4.0.0:
engine.io-client "~6.2.3"
socket.io-parser "~4.2.1"
socket.io-parser@~4.0.3:
version "4.0.5"
resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.0.5.tgz#cb404382c32324cc962f27f3a44058cf6e0552df"
integrity sha512-sNjbT9dX63nqUFIOv95tTVm6elyIU4RvB1m8dOeZt+IgWwcWklFDOdmGcfo3zSiRsnR/3pJkjY5lfoGqEe4Eig==
dependencies:
"@types/component-emitter" "^1.2.10"
component-emitter "~1.3.0"
debug "~4.3.1"
socket.io-parser@~4.2.1:
version "4.2.1"
resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.1.tgz#01c96efa11ded938dcb21cbe590c26af5eff65e5"
@@ -1200,6 +1272,21 @@ socket.io-parser@~4.2.1:
"@socket.io/component-emitter" "~3.1.0"
debug "~4.3.1"
socket.io@^3.1.1:
version "3.1.2"
resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-3.1.2.tgz#06e27caa1c4fc9617547acfbb5da9bc1747da39a"
integrity sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==
dependencies:
"@types/cookie" "^0.4.0"
"@types/cors" "^2.8.8"
"@types/node" ">=10.0.0"
accepts "~1.3.4"
base64id "~2.0.0"
debug "~4.3.1"
engine.io "~4.1.0"
socket.io-adapter "~2.1.0"
socket.io-parser "~4.0.3"
socket.io@^4.0.0:
version "4.5.4"
resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.5.4.tgz#a4513f06e87451c17013b8d13fdfaf8da5a86a90"
@@ -1372,6 +1459,11 @@ ws@^8.11.0:
resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143"
integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==
ws@~7.4.2:
version "7.4.6"
resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c"
integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==
ws@~8.2.3:
version "8.2.3"
resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba"