
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
flayercaptcha
Advanced tools
| <sub>EN</sub> [English](README.md) | <sub>RU</sub> [Русский](README_ru.md) | |---------------------------------------|--------------------------------------|
| EN English | RU Русский |
|---|
FlayerCaptcha is a module for Mineflayer bots that simplifies working with map images in frames and inventory.
npm i flayercaptcha
const mineflayer = require('mineflayer');
const FlayerCaptcha = require('flayercaptcha');
const bot = mineflayer.createBot({
host: 'localhost',
port: 25565,
username: 'username'
});
const captcha = new FlayerCaptcha(bot, {
delay: 10,
isStopped: false
});
Configuration parameters:
delay — delay in milliseconds before the final image assembly (default is 10).isStopped — if true, the module does not process new data until captcha.resume() is called (default is false).captcha.stop(); // pauses processing
captcha.resume(); // resumes processing
imageReady EventTriggered when the final image from multiple frames is ready.
captcha.on('imageReady', async ({ data, image }) => {
console.log('Image data received:');
console.table({
ViewDir: data.viewDirection,
MinDistance: data.minDistance,
Facing: data.facing
});
// Frame data
for (const frame of data.frames) {
console.table({
EntityFrameId: frame.entityFrameId,
MapId: frame.mapId,
Rotate: frame.rotate,
Coordinate: `x:${frame.coordinate.x}, y:${frame.coordinate.y}, z:${frame.coordinate.z}`,
Distance: frame.distance
});
// Additional data: frame.nbtData
}
const filename = `image_${data.minDistance}.png`;
await image.toFile(filename);
console.log(`Image saved as ${filename}`);
});
Arguments:
data — object with information about the assembled image:
viewDirection — view directionminDistance — minimum distance to framesfacing — direction of the frame relative to the bot's view. Possible values: "forward", "left", "right", "back", "up", "down".frames — array of objects with data about each frame (see below)image — image object (Sharp)frameInfo EventTriggered when a frame with an image is detected.
captcha.on('frameInfo', async ({ data, image }) => {
console.log('Frame data received:');
console.table({
EntityFrameId: data.entityFrameId,
MapId: data.mapId,
Rotate: data.rotate,
Coordinate: `x:${data.coordinate.x}, y:${data.coordinate.y}, z:${data.coordinate.z}`,
ViewDir: data.viewDirection,
Distance: data.distance,
Facing: data.facing,
});
// Additional data: data.nbtData
const filename = `frame_${data.entityFrameId}.png`;
await image.toFile(filename);
console.log(`Image saved as ${filename}`);
});
Arguments:
data — object with frame data:
entityFrameId — frame entity IDmapId — map IDrotate — rotation value of the item inside the framecoordinate — frame coordinates { x, y, z }viewDirection — frame view directionnbtData — metadata of the item inside the framedistance — distance from the bot to the framefacing — direction of the frame relative to the bot's view. Possible values: "forward", "left", "right", "back", "up", "down".image — image object (Sharp)
inventoryInfo EventTriggered when a map is detected in the bot's inventory.
captcha.on('inventoryInfo', async ({ data, image }) => {
console.log(`Data for map ${data.mapId} in inventory received:`);
for (const slot of data.slots) {
console.log('SlotId:', slot.slotId);
console.log('Item:', slot.item);
}
const filename = `inventory_${data.mapId}.png`;
await image.toFile(filename);
console.log(`Image saved as ${filename}`);
});
Arguments:
data — object with data about the map in inventory:
slots — inventory slots where maps were found. Each slot contains:
slotId — inventory slot IDitem — map item with its datamapId — map IDimage — image object (Sharp)
FAQs
| <sub>EN</sub> [English](README.md) | <sub>RU</sub> [Русский](README_ru.md) | |---------------------------------------|--------------------------------------|
We found that flayercaptcha demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.