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

The bot doesn't work on servers that have the minecart improvements experiment turned on. #3555

Open
Hellozsoza opened this issue Jan 9, 2025 · 0 comments
Labels
possible bug Stage1 just created by someone new to the project, we don't know yet if it deserves an implementation / a f

Comments

@Hellozsoza
Copy link

The bot doesn't work on servers that have the minecart improvements experiment turned on.

I tried some things in my code. Here's my code:

`const mineflayer = require('mineflayer');
const { pathfinder, Movements, goals } = require('mineflayer-pathfinder');
const mcDataLoader = require('minecraft-data');

function createBot() {
const bot = mineflayer.createBot({
host: 'MindenNx2W.aternos.me', // A szerver IP-címe
port: 30436, // A szerver portja
username: 'Szipoa', // A bot neve
version: '1.21.4' // Minecraft verzió
});

bot.loadPlugin(pathfinder);

let hasTrident = false; // Jelzi, hogy megkapta-e már a szigonyt

bot.once('spawn', () => {
const mcData = mcDataLoader(bot.version);
console.log('Minecraft Data betöltve:', mcData.version.minecraftVersion);

console.log('Bot csatlakozott a szerverhez! Várja a szigonyt.');

});

// Packet figyelése és manuális kezelése
bot._client.on('packet', (data, meta) => {
if (meta.name === 'move_minecart') {
try {
processMinecartPacket(data); // Feldolgozás vagy hibás értékek figyelmen kívül hagyásával
} catch (err) {
console.warn('Hiba történt a move_minecart csomag feldolgozása során:', err);
}
}
});

function processMinecartPacket(data) {
const { entityId, steps } = data;

steps.forEach((step, index) => {
  // Ellenőrizzük a movement értékeket és figyelmen kívül hagyjuk az irreális számokat
  const movement = step.movement || {};
  if (
    Math.abs(movement.x || 0) > Number.MAX_SAFE_INTEGER ||
    Math.abs(movement.y || 0) > Number.MAX_SAFE_INTEGER ||
    Math.abs(movement.z || 0) > Number.MAX_SAFE_INTEGER
  ) {
    console.warn(`Hatalmas szám detektálva a move_minecart csomagban. Figyelmen kívül hagyva.`);
    return; // Hibás adat figyelmen kívül hagyása
  }

  console.log(`Minecart ID: ${entityId}, Step ${index + 1}:`, step);
});

}

bot.on('playerCollect', (collector, collected) => {
if (collector.username === bot.username) {
setTimeout(() => { // Várunk egy kicsit az inventory frissítésére
const item = bot.inventory.items().find(i => i.customName === 'Zsozal Szigony 2');
if (item) {
hasTrident = true;
console.log('A bot megkapta a "Zsozal Szigony 2" nevű szigonyt!');
}
}, 150); // Várakozási idő az inventory frissítéséhez
}
});

bot.on('chat', (username, message) => {
if (!hasTrident) {
console.log(Parancs érkezett ${username}-tól: "${message}", de a bot még nem kapta meg a szigonyt.);
return;
}

if (username === bot.username) return; // Ne reagáljon saját üzeneteire

const args = message.split(' ');
if (args[0] === 'kill' && args.length === 2) {
  const targetName = args[1];
  const target = bot.players[targetName]?.entity;

  if (!target) {
    console.log(`Nem találom ${targetName} játékost.`);
    return;
  }

  const distance = bot.entity.position.distanceTo(target.position);

  if (distance > 20) {
    // Ha a célpont több mint 20 blokkra van, közelítsen hozzá
    const goal = new goals.GoalNear(target.position.x, target.position.y, target.position.z, 10);
    bot.pathfinder.setMovements(new Movements(bot));
    bot.pathfinder.setGoal(goal);

    bot.once('goal_reached', () => {
      attackWithTrident(target);
    });
  } else if (distance > 5) {
    attackWithTrident(target); // Dobás közepes távolságból
  } else {
    attackMelee(target); // Ütés közelről
  }
}

});

function attackWithTrident(target) {
const trident = bot.inventory.items().find(item => item.name === 'trident' && item.customName === 'Zsozal Szigony 2');

if (!trident) {
  console.log('Nincs nálam "Zsozal Szigony 2" nevű szigony.');
  return;
}

bot.equip(trident, 'hand', () => {
  bot.lookAt(target.position.offset(0, target.height / 2, 0), true, () => {
    bot.activateItem(); // Dobja el a szigonyt
  });
});

}

function attackMelee(target) {
bot.lookAt(target.position.offset(0, target.height / 2, 0), true, () => {
bot.attack(target); // Ütés közelről
});
}

// Automatikus respawnolás halál esetén
bot.on('death', () => {
console.log('A bot meghalt! Újraéled...');

setTimeout(() => bot.chat('/respawn'), 1000);

});

// Automatikus újracsatlakozás hibák esetén
bot.on('end', () => {
console.log('Bot kilépett. Újracsatlakozás...');
setTimeout(() => createBot(), 5000); // Újraindítás várakozás után
});

bot.on('error', (err) => {
console.error('Hiba történt:', err);
});

bot.on('kicked', (reason) => {
console.log('A bot ki lett rúgva:', reason);
});
}

createBot();
`

@Hellozsoza Hellozsoza added possible bug Stage1 just created by someone new to the project, we don't know yet if it deserves an implementation / a f labels Jan 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
possible bug Stage1 just created by someone new to the project, we don't know yet if it deserves an implementation / a f
Projects
None yet
Development

No branches or pull requests

1 participant