From c88abaab2cb3407f69c0b874538d3e97aa0cc30e Mon Sep 17 00:00:00 2001 From: FORT <100344180+YTFort@users.noreply.github.com> Date: Tue, 11 Jul 2023 15:23:54 +0300 Subject: [PATCH] Add --- READMY_RU.txt | 128 ++++++++++++++++++++++++++++++++++++++++++++++++++ minenet.js | 99 ++++++++++++++++++++++++++++++++++++++ test.js | 15 ++++++ 3 files changed, 242 insertions(+) create mode 100644 READMY_RU.txt create mode 100644 minenet.js create mode 100644 test.js diff --git a/READMY_RU.txt b/READMY_RU.txt new file mode 100644 index 0000000..96849eb --- /dev/null +++ b/READMY_RU.txt @@ -0,0 +1,128 @@ +![Header](/IMG/1.png) +GitHub stars +GitHub watchers +GitHub forks +GitHub download + +# `MineNet` +### Скрипт, который позволяет вам легко использовать Minecraft API +#### Следите за жизнью проекта здесь, а также общайтесь с сообществом : [DISCORD](https://discord.gg/bjgpVAxgyE) + +## `Контакты создателя :` +- 👾 [Discord](https://discord.gg/bjgpVAxgyE) +- ❤️ [Youtube](https://youtube.com/c/fortcote) +- ✈️ [Telegram](https://t.me/FortcoteTG) + +## `Переводы :` +| EN [English](README.md) | RU [Русский](README_RU.md) | +|-------------------------|----------------------------| + +## `Дисклеймер :` +> Этот скрипт создан в ознакомительных целях и не принуждает вас использовать его функции в злонамеренных целях! +>> ❗ Вы можете использовать исходный код в своих программах, авторских прав нет, просто, пожалуйста, предоставьте ссылку на меня ;) +>>> Если вы обнаружите ошибку, то создайте iuses! + +## `Поддерживаемая ОС :` + + * ✅ Windows + * ✅ Linux + * ✅ Mac + +## `Функции :` + +> ❗Предлагайте свои идеи по улучшению в дискуссиях и в pull + + * Поддержка Minecraft 1.7.X - 1.20.X + * Поддержка версий Java и Bedrock (PE) + * Узнайте статус сервера + * Query + * Проверка работоспособности сервера с помощью бота + * Rcon +### 🕓 Скоро : + * Оптимизация + * Добавление цвета к выходным данным + * Свой API + * Другие функции Minecraft API + * Создать библиотеку из скрипта + * Wiki + +# `Установка :` + + * Скачайте последний [Релиз](https://github.com/YTFort/24-Aternos/releases) + * Установите последнюю сервсию [Node.js](https://nodejs.dev) + +### Библиотеки : +```bash +npm install minecraft-server-util +npm install readline-sync +npm install mineflayer +``` + +### Затем поместите **minenet.js** в ваш проект + +# `Использование :` + +## Rcon : +```bash +var minenet = require('./minenet'); +minenet.rcon('HOST', PORT, 'PASSWORD'); +// minenet.rcon('localhost', 25575, '123'); +``` +```bash +[#] Rcon is connected +[>] time set day +[<] Set the time to 1000 +[>] exit +[!] Rcon is disconnected +``` + +#### exit или Exit для отключения +#### [>] - Входные данные +#### [<] - Выходные данные + +## Одноразовый Rcon : +```bash +var minenet = require('./minenet'); +minenet.rcon('HOST', PORT, 'PASSWORD', 'COMMAND'); +``` + +## Status : +```bash +var minenet = require('./minenet'); +minenet.getstatus('HOST', PORT) // JAVA +``` +```bash +var minenet = require('./minenet'); +minenet.getpestatus('HOST', PORT) // BEDROCK (PE) +``` + +## Query : +```bash +var minenet = require('./minenet'); +minenet.getquery('HOST', PORT) // JAVA +``` + +## Join : +```bash +var minenet = require('./minenet'); +minenet.jointest('HOST', PORT, 'MAIL', 'PASSWORD') // License - JAVA +``` +#### Microsoft аккаунт! +```bash +var minenet = require('./minenet'); +minenet.jointestpirat('HOST', PORT, 'BOTNAME') // Pirat - JAVA +``` +#### Вывод : [#] Successfully - Значит на сервер можно зайти + + +# `Спасибо :` + +- [minecraft server util](https://github.com/PassTheMayo/minecraft-server-util) +- [mineflayer](https://github.com/PrismarineJS/mineflayer) + +# `Поддержите меня :` + +### **Поставьте ⭐ и Fork , если этот скрипт оказался вам полезен** +### ETH : `0x325026E8f45D2D488e753b21F42dDF9BC15A3343` +### [Donate 1 (RU)](https://www.donationalerts.com/r/fortcotetm) / [Donate 2 (EN)](https://new.donatepay.ru/@924403) + diff --git a/minenet.js b/minenet.js new file mode 100644 index 0000000..1662de8 --- /dev/null +++ b/minenet.js @@ -0,0 +1,99 @@ +const util = require('minecraft-server-util'); +const readline = require('readline-sync'); +const mineflayer = require('mineflayer'); + +const client = new util.RCON(); + +const Status = { + timeout: 1000 * 10, + enableSRV: true +}; + +const Login = { + timeout: 1000 * 10 +}; + +const Connect = { + timeout: 1000 * 10 +}; + +module.exports = { + rcon: function (Host, Port, Password) { + (async () => { + await client.connect(Host, Port, Connect); + await client.login(Password, Login); + console.log('[#] Rcon is connected'); + + do { + const cmd = readline.question("[>] "); + + if (cmd === 'exit' || cmd === 'Exit') { + await client.close(); + console.log('[!] Rcon is disconnected'); break + } else { + const msg = await client.execute(cmd); + console.log('[<] ' + msg); + }; + + } while (true); + })(); + }, + + disprcon: function (Host, Port, Password, Command) { + (async () => { + await client.connect(Host, Port, Connect); + await client.login(Password, Login); + + const msg = await client.execute(Command); console.log('[<] ' + msg); + await client.close(); + })(); + }, + + getstatus: function (Host, Port) { + util.status(Host, Port, Status) + .then((result) => console.log(result)) + .catch((error) => console.error(error)); + }, + + getpestatus: function (Host, Port) { + util.statusBedrock(Host, Port, Status) + .then((result) => console.log(result)) + .catch((error) => console.error(error)); + }, + + getquery: function (Host, Port) { + util.queryFull(Host, Port, Status) + .then((result) => console.log(result)) + .catch((error) => console.error(error)); + }, + + jointestpirat: function (Host, Port, Name) { + try { + const bot = mineflayer.createBot({ + host: Host, + port: Port, + username: Name, + version: false + }); + bot.once('spawn', () => { console.log('[#] Successfully'); bot.end(); }); + bot.on('kicked', (reason, loggedIn) => console.log(reason, loggedIn)); + bot.on('error', err => console.log(err)); + } catch { + console.log('[!] Failed'); + }; + }, + + jointest: function (Host, Port, Mail, Password) { + const bot = mineflayer.createBot({ + host: Host, + port: Port, + username: Mail, + password: Password, + auth: 'microsoft', + version: false + }); + bot.once('spawn', () => { console.log('[#] Successfully'); bot.end(); }); + bot.on('kicked', (reason, loggedIn) => console.log(reason, loggedIn)); + bot.on('error', err => console.log(err)); + }, +}; \ No newline at end of file diff --git a/test.js b/test.js new file mode 100644 index 0000000..b6109f4 --- /dev/null +++ b/test.js @@ -0,0 +1,15 @@ +var minenet = require('./minenet'); + +minenet.rcon('localhost', 25575, '123'); + +minenet.disprcon('localhost', 25575, '123', 'help'); + +minenet.getstatus('localhost', 25565); + +minenet.getpestatus('localhost', 19132); + +minenet.getquery('localhost', 25565); + +minenet.jointest('localhost', 25565, 'test@test.com', '123'); + +minenet.jointestpirat('localhost', 25565, 'Bot_Test'); \ No newline at end of file