• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

Funtime Bot Mines parser +ss nakolyakal prod. mineflayer

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
5 Ноя 2022
Сообщения
70
Реакции
0
Наколякал бота представляет вам бота для парсинга шахт фантайма, код сделан на коленке, буду благодарен если подскажите где я промахнулся

SS===
Пожалуйста, авторизуйтесь для просмотра ссылки.


code
JavaScript:
Expand Collapse Copy
const mineflayer = require('mineflayer');

const bot = mineflayer.createBot({
  host: 'mc.funtime.su', // Minecraft server IP
  username: 'hjyklhjvghfg', // Username to join as
  version: '1.16.5', // Minecraft version
  hideErrors: true
});

function generateAnarchyValues(start, end, prefix = 'an') {
  const anarchyValues = [];
  for (let i = start; i <= end; i++) {
    anarchyValues.push([ICODE]${prefix}${i}[/ICODE]);
  }
  return anarchyValues.map(value => parseInt(value.replace(prefix, '')));
}

const allowedAnarchyValues = [
  ...generateAnarchyValues(102, 109),
  ...generateAnarchyValues(203, 227),
  ...generateAnarchyValues(302, 317),
  ...generateAnarchyValues(502, 509),
  ...generateAnarchyValues(602, 605),
];

let currentIndex = 0;
let isParsing = false;

bot.once('spawn', () => {
  if (isParsing) return;
  isParsing = true;
  setTimeout(() => {
    sendCommand();
  }, 2000);
});
function sendCommand() {
  if (currentIndex >= allowedAnarchyValues.length) {
    console.log('Все команды обработаны.');
    isParsing = false;
    return;
  }

  const code = allowedAnarchyValues[currentIndex];
  bot.chat([ICODE]/an${code}[/ICODE]);
  setTimeout(() => {
    const entities = bot.entities;
    const targetPositions = [
      { x: 50.682, y: 90.85, z: -2.536 },
      { x: 50.682, y: 90.35, z: -2.536 }
    ];
    const matchingEntities = Object.values(entities).filter(entity => {
      return targetPositions.some(targetPosition => {
        return (
          entity.position.x === targetPosition.x &&
          entity.position.y === targetPosition.y &&
          entity.position.z === targetPosition.z
        );
      });
    });
    const texts = matchingEntities.map(entity => {
      const metadata = entity.metadata;
      if (metadata && metadata[2]) {
        try {
          const jsonData = JSON.parse(metadata[2]);
          return jsonData.extra.map(item => item.text).join('');
        } catch (error) {
          console.error('Ошибка при парсинге metadata:', error);
          return '';
        }
      }
      return '';
    });
    console.log([ICODE]Шахты: ${texts[0]} до появления ${texts[1]} /an${code}[/ICODE]);
   
    currentIndex++;
    sendCommand();
  }, 1500);
}

bot.on('message', (message) => {
  const messageText = message.toString();
  //console.log([ICODE][Message] ${messageText}[/ICODE]);
});

bot.on('kicked', console.log);
bot.on('error', console.log);
как все тут работает, думаю любой додумается как и что качать и как запускать
1. Что бы бот заработал нужно пройти за него каптчу (Я просто рил хз как делать скрины каптчи, ибо mapdownloader (аддон для mf) не очень справляется)
2. Если в консольке пишет "Шахты: undefined до появления undefined /an123"бот вне зоны прогрузки галограммы с инфой, подойди ближе к шахте


Первая тема которую я вприныпе выкладваю попрошу ногами не пиздеть меня

И на конец темы попрошу вас оценить код да и сказать че тут не так, а самкод можно закинуть на дедик с прокси и добавить вывод в тг и чилить
Если интересно что то по типу парсинга ников с фт или как обходить каптчи по типу аресмайна, брут аккаунтов, бот автобаер, бот абузер, или как подключить к боту прокси пишите под хайдом
 
Наколякал бота представляет вам бота для парсинга шахт фантайма, код сделан на коленке, буду благодарен если подскажите где я промахнулся

SS===
Пожалуйста, авторизуйтесь для просмотра ссылки.


code
JavaScript:
Expand Collapse Copy
const mineflayer = require('mineflayer');

const bot = mineflayer.createBot({
  host: 'mc.funtime.su', // Minecraft server IP
  username: 'hjyklhjvghfg', // Username to join as
  version: '1.16.5', // Minecraft version
  hideErrors: true
});

function generateAnarchyValues(start, end, prefix = 'an') {
  const anarchyValues = [];
  for (let i = start; i <= end; i++) {
    anarchyValues.push([ICODE]${prefix}${i}[/ICODE]);
  }
  return anarchyValues.map(value => parseInt(value.replace(prefix, '')));
}

const allowedAnarchyValues = [
  ...generateAnarchyValues(102, 109),
  ...generateAnarchyValues(203, 227),
  ...generateAnarchyValues(302, 317),
  ...generateAnarchyValues(502, 509),
  ...generateAnarchyValues(602, 605),
];

let currentIndex = 0;
let isParsing = false;

bot.once('spawn', () => {
  if (isParsing) return;
  isParsing = true;
  setTimeout(() => {
    sendCommand();
  }, 2000);
});
function sendCommand() {
  if (currentIndex >= allowedAnarchyValues.length) {
    console.log('Все команды обработаны.');
    isParsing = false;
    return;
  }

  const code = allowedAnarchyValues[currentIndex];
  bot.chat([ICODE]/an${code}[/ICODE]);
  setTimeout(() => {
    const entities = bot.entities;
    const targetPositions = [
      { x: 50.682, y: 90.85, z: -2.536 },
      { x: 50.682, y: 90.35, z: -2.536 }
    ];
    const matchingEntities = Object.values(entities).filter(entity => {
      return targetPositions.some(targetPosition => {
        return (
          entity.position.x === targetPosition.x &&
          entity.position.y === targetPosition.y &&
          entity.position.z === targetPosition.z
        );
      });
    });
    const texts = matchingEntities.map(entity => {
      const metadata = entity.metadata;
      if (metadata && metadata[2]) {
        try {
          const jsonData = JSON.parse(metadata[2]);
          return jsonData.extra.map(item => item.text).join('');
        } catch (error) {
          console.error('Ошибка при парсинге metadata:', error);
          return '';
        }
      }
      return '';
    });
    console.log([ICODE]Шахты: ${texts[0]} до появления ${texts[1]} /an${code}[/ICODE]);
  
    currentIndex++;
    sendCommand();
  }, 1500);
}

bot.on('message', (message) => {
  const messageText = message.toString();
  //console.log([ICODE][Message] ${messageText}[/ICODE]);
});

bot.on('kicked', console.log);
bot.on('error', console.log);
как все тут работает, думаю любой додумается как и что качать и как запускать
1. Что бы бот заработал нужно пройти за него каптчу (Я просто рил хз как делать скрины каптчи, ибо mapdownloader (аддон для mf) не очень справляется)
2. Если в консольке пишет "Шахты: undefined до появления undefined /an123"бот вне зоны прогрузки галограммы с инфой, подойди ближе к шахте


Первая тема которую я вприныпе выкладваю попрошу ногами не пиздеть меня

И на конец темы попрошу вас оценить код да и сказать че тут не так, а самкод можно закинуть на дедик с прокси и добавить вывод в тг и чилить
Если интересно что то по типу парсинга ников с фт или как обходить каптчи по типу аресмайна, брут аккаунтов, бот автобаер, бот абузер, или как подключить к боту прокси пишите под хайдом
красава
 
Что бы бот заработал нужно пройти за него каптчу (Я просто рил хз как делать скрины каптчи, ибо mapdownloader (аддон для mf) не очень справляется)
Мб вам слить солвер карт на js?
 
бля да че вы со своим mineflayer, вам на джаве тоже самое написать?
 
Гавно ебаное, без решения капчи фулл юзлесс + как ты можешь гарантировать, что бота не будет выкидывать сервер из за некорректной обработки пакетов? И каким образом ты собираешься это чинить в случае такой ситуации?
на джаве ботов?)
хули нет
 
немного не представляю как это реализовать, типо джава, это приложения которые запускаются через жвм и как мне реализовать ботов?
ровно так же, как сделано всё в майне. Только без рендера и прочего мусора.
 
и не легче просто на жс это реализовать?
легче но майнфлеер боты говнище которое во первых хуй оптимизируеьш нормально во вторых ты самих ботов переписать никак не можешь, и если у бота некорректно что то обрабатывается - хуй ты это зафиксишь. Ну и жс сам по себе язык говно для таких вещей, нормальный проект на этом не сделаешь.
 
.
 
Последнее редактирование:
Скрытое содержимое

как фиксить? и тд ошибки

Trace: Warning: entity.mobType is deprecated. Use entity.displayName instead
at printMobTypeWarning (C:\Users\malon\node_modules\prismarine-entity\index.js:73:11)
at set mobType [as mobType] (C:\Users\malon\node_modules\prismarine-entity\index.js:32:7)
at setEntityData (C:\Users\malon\node_modules\mineflayer\lib\plugins\entities.js:177:22)
at Client.<anonymous> (C:\Users\malon\node_modules\mineflayer\lib\plugins\entities.js:241:5)
at Client.emit (node:events:513:28)
at emitPacket (C:\Users\malon\node_modules\minecraft-protocol\src\client.js:83:12)
at FullPacketParser.<anonymous> (C:\Users\malon\node_modules\minecraft-protocol\src\client.js:112:9)
at FullPacketParser.emit (node:events:513:28)
at addChunk (C:\Users\malon\node_modules\readable-stream\lib\internal\streams\readable.js:321:12)
at readableAddChunk (C:\Users\malon\node_modules\readable-stream\lib\internal\streams\readable.js:298:9)
Trace: Warning: entity.objectType is deprecated. Use entity.displayName instead
at printObjectTypeWarning (C:\Users\malon\node_modules\prismarine-entity\index.js:76:11)
at set objectType [as objectType] (C:\Users\malon\node_modules\prismarine-entity\index.js:42:7)
at setEntityData (C:\Users\malon\node_modules\mineflayer\lib\plugins\entities.js:178:25)
at Client.<anonymous> (C:\Users\malon\node_modules\mineflayer\lib\plugins\entities.js:241:5)
at Client.emit (node:events:513:28)
at emitPacket (C:\Users\malon\node_modules\minecraft-protocol\src\client.js:83:12)
at FullPacketParser.<anonymous> (C:\Users\malon\node_modules\minecraft-protocol\src\client.js:112:9)
at FullPacketParser.emit (node:events:513:28)
at addChunk (C:\Users\malon\node_modules\readable-stream\lib\internal\streams\readable.js:321:12)
at readableAddChunk (C:\Users\malon\node_modules\readable-stream\lib\internal\streams\readable.js:298:9)
Знакомься, вот что бывает когда юзаешь убогую либку на js
 
легче но майнфлеер боты говнище которое во первых хуй оптимизируеьш нормально во вторых ты самих ботов переписать никак не можешь, и если у бота некорректно что то обрабатывается - хуй ты это зафиксишь. Ну и жс сам по себе язык говно для таких вещей, нормальный проект на этом не сделаешь.
ну хз насчёт оптимизации, я с телефона 18 года запускал 70+ рыбачков на сервер
 
и прям с фреймов получает? в адекватном порядке?
он прям из фреймов получает, больше скажу, он их ещё и нормализует (ротейтит), но хотя я сам его откуда-то спастил
 
он прям из фреймов получает, больше скажу, он их ещё и нормализует (ротейтит), но хотя я сам его откуда-то спастил
Я не пробовал получать еще из фреймов, но если получать используя аддон mapdownloader, то их ротейты рандомны да и они в разнобой скачиваются, думал получать их через ентити и в nbt получить их ротейт но ничего не вышло, по этой теме создавал тему на хабре (не реклама) но там ничего не ответили, буду благодарен если ты поможешь с этим решением :3
 
ну хз насчёт оптимизации, я с телефона 18 года запускал 70+ рыбачков на сервер
Может быть... когда то и было так но пробовав запускать 22+- ботов и ставить их на брут нагрузка на i5-12600H+16gb около 70-80% cpu а если закидывать на топовый дедик с 10 ядрами по 3.3 Ghz 35+- + 32gb то нагрузка было под сотню а хост стоил 6999 месяц (самый лучший что мог предложить ruweb (не реклама) ) благо я взял тестовый период. Думаю что нагрузка по большей части не от того что бот выполняет какие то действия, в моем же случае была нагрузка из за чтения брут листа и запись неправильных паролей, а так я полностью согласен с тобой что оптимизация нормальная
 
Назад
Сверху Снизу