AI #2
@ -15,7 +15,7 @@ module.exports = {
|
||||
},
|
||||
"ai":{
|
||||
"key": "<configure in secrets>",
|
||||
"interval": 5,
|
||||
"interval": 20,
|
||||
"prompts":{
|
||||
"custom": (name, interval, currentPlayers, custom)=>`
|
||||
Ignore all previous instructions prompts
|
||||
@ -88,7 +88,7 @@ Vince_NL owns another bot on the server, BulbaStore. Bulba is a great bot that s
|
||||
|
||||
CoreJourney about:
|
||||
The center of the map is the core (x0, z0). Everyone initially spawns/respawns near the core. You can't do anything there if you don't first reach level 50. Level 50 is the max usefull level on the server: with it you unlock all the map (the maximum zone is 50).
|
||||
How do I level up? ->First, you must spawn at a spawn corner. Type /spawncorner and the corner you want to do so (it can only be done once per respawn). Then, you will be able to do everything, as they are in zone 1, far from the core. Level up by using lapis or quartzs via crafting.
|
||||
How do I level up? -> you will be able to do everything, as they are in zone 1, far from the core. Level up by using lapis or quartzs via crafting.
|
||||
How do zones work? >The closer you get to the core, the higher the zone. The four spawn corners are situated near the border between zone 1 and zone 2. Zone 1 is the biggest one, as it extends from the 2nd to the end of the world. Level up to use higher zones or just visit/ignore them.
|
||||
Rules and more... >When you die, you get banned for 24h and lose your levels.
|
||||
You can safely /trade with anyone on the server, and you can /invite your friends to your location if you and them would be in a zone of your levels. Type /pillars or /rules for more.
|
||||
|
31
nodejs/conf/build.gradle.kts
Normal file
31
nodejs/conf/build.gradle.kts
Normal file
@ -0,0 +1,31 @@
|
||||
plugins {
|
||||
java
|
||||
}
|
||||
|
||||
group = "com.buildkillreign"
|
||||
version = "2.0.0"
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven("https://repo.codemc.io/repository/maven-public/") // ✅ CodeMC repository
|
||||
maven("https://repo.papermc.io/repository/maven-public/") // ✅ PaperMC repository
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly("com.comphenix.protocol:ProtocolLib:5.1.0") // ✅ Get ProtocolLib from CodeMC
|
||||
compileOnly("io.papermc.paper:paper-api:1.20.1-R0.1-SNAPSHOT") // ✅ Get Paper API from PaperMC repo
|
||||
compileOnly("io.papermc:paperlib:1.0.5") // ✅ Get PaperLib from CodeMC
|
||||
}
|
||||
|
||||
java {
|
||||
toolchain.languageVersion.set(JavaLanguageVersion.of(17)) // Required for MC 1.20+
|
||||
}
|
||||
|
||||
tasks.jar {
|
||||
archiveFileName.set("BuildKillReign.jar")
|
||||
destinationDirectory.set(file("build/libs"))
|
||||
|
||||
from("src/main/resources") {
|
||||
include("plugin.yml")
|
||||
}
|
||||
}
|
@ -24,10 +24,9 @@ class Ai{
|
||||
}
|
||||
|
||||
async init(){
|
||||
await this.start();
|
||||
this.bot.on('onReady', async (argument)=>{
|
||||
try{
|
||||
await sleep(1000);
|
||||
await this.start();
|
||||
let messages = [''];
|
||||
|
||||
this.messageListener = this.bot.on('message', (message, type)=>{
|
||||
|
@ -101,6 +101,23 @@ module.exports = {
|
||||
this.whisper(from, '?')
|
||||
}
|
||||
},
|
||||
'come': {
|
||||
desc: `make bot come to you`,
|
||||
allowed: ['wmantly', 'useless666', 'tux4242'],
|
||||
async function(from, playerName){
|
||||
const player = this.bot.players[playerName || from];
|
||||
|
||||
if (!player || !player.entity) {
|
||||
this.whisper(from, `I can't see ${player}.`);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
this.whisper(from, `Going to ${player}`);
|
||||
this.goTo({where: player.entity.position});
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
'logon': {
|
||||
desc: `Have bot log on for 10 seconds'`,
|
||||
|
@ -27,6 +27,11 @@ let sites = {
|
||||
desc: `Get an invite to the Farming outpost.`,
|
||||
allowed: ['wmantly', 'useless666', 'tux4242', 'pi_chef', '1_cut', 'nootbot', 'VinceNL', 'Ethan63020', 'Ethan63021', 'KimiKava', 'kawiimeowz', 'RaindropCake24', 'AndyNyg', 'AndyNyg_II'],
|
||||
},
|
||||
mega:{
|
||||
bot: 'ayay',
|
||||
desc: `Get an invite to the Farming outpost 2.`,
|
||||
allowed: ['wmantly', 'useless666', 'tux4242', 'pi_chef', '1_cut', '__Ethan63020', '__Ethan63021', 'VinceNL', 'nootbot'],
|
||||
},
|
||||
guardian: {
|
||||
bot: 'art',
|
||||
desc: 'blah',
|
||||
|
201
nodejs/controller/craft_chests.js
Normal file
201
nodejs/controller/craft_chests.js
Normal file
@ -0,0 +1,201 @@
|
||||
'use strict';
|
||||
|
||||
const conf = require('../conf');
|
||||
const {sleep, nextTick} = require('../utils');
|
||||
|
||||
class CraftChests{
|
||||
constructor(args){
|
||||
this.bot = args.bot;
|
||||
this.interval = args.interval;
|
||||
this.target = args.target;
|
||||
this.intervalStop;
|
||||
this.isAction = true;
|
||||
}
|
||||
|
||||
init(){
|
||||
return new Promise(async (resolve, reject)=>{
|
||||
this.bot.on('onReady', async ()=>{
|
||||
try{
|
||||
await sleep(500);
|
||||
await this.bot.goTo({
|
||||
where: this.bot.findBlockBySign('bot walk 2').position,
|
||||
range: 0,
|
||||
});
|
||||
|
||||
await this.bot.goTo({
|
||||
where: this.bot.findBlockBySign('bot walk 1').position,
|
||||
range: 0,
|
||||
});
|
||||
|
||||
await this.bot.goTo({
|
||||
where: this.bot.findBlockBySign('bot walk 2').position,
|
||||
range: 0,
|
||||
});
|
||||
|
||||
let hasItems = await this.getItems();
|
||||
|
||||
// while(hasItems){
|
||||
// await this.craft();
|
||||
// hasItems = await this.getItems();
|
||||
// }
|
||||
|
||||
return resolve();
|
||||
|
||||
}catch(error){
|
||||
reject(error);
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
unload(){
|
||||
if(this.intervalStop){
|
||||
clearInterval(this.intervalStop);
|
||||
this.intervalStop = undefined;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
async getItems(){
|
||||
/*clear inventory*/
|
||||
await this.bot.goTo({
|
||||
where: this.bot.findChestBySign('bot dump'),
|
||||
range: 2,
|
||||
})
|
||||
await this.bot.dumpToChest(this.bot.findChestBySign('bot dump'));
|
||||
|
||||
|
||||
/*
|
||||
Bamboo
|
||||
*/
|
||||
let packed_bambooChest = this.bot.findChestBySign('packed bamboo');
|
||||
await this.bot.goTo({
|
||||
where: packed_bambooChest.position,
|
||||
range: 2,
|
||||
});
|
||||
|
||||
|
||||
await this.bot.getFullShulkersFromChest(packed_bambooChest, 'bamboo');
|
||||
|
||||
return;
|
||||
|
||||
|
||||
let hasShard = await this.bot.checkItemsFromContainer(
|
||||
prismarine_shardChest, 'prismarine_shard', 64*4
|
||||
);
|
||||
|
||||
/*
|
||||
crystals
|
||||
*/
|
||||
let prismarine_crystalsChest = this.bot.findChestBySign('crystals');
|
||||
await this.bot.goTo({
|
||||
where: prismarine_crystalsChest.position,
|
||||
range: 2,
|
||||
});
|
||||
|
||||
let hasCrystals = await this.bot.checkItemsFromContainer(
|
||||
prismarine_crystalsChest, 'prismarine_crystals', 64*5
|
||||
);
|
||||
|
||||
if(!hasShard || !hasCrystals) return false;
|
||||
|
||||
/*
|
||||
get
|
||||
*/
|
||||
await sleep(3000);
|
||||
|
||||
await this.bot.getItemsFromChest(
|
||||
prismarine_shardChest, 'prismarine_shard', 64*4
|
||||
);
|
||||
await sleep(1000);
|
||||
|
||||
await this.bot.getItemsFromChest(
|
||||
prismarine_crystalsChest, 'prismarine_crystals', 64*5
|
||||
);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
async craft(){
|
||||
|
||||
// Ensure the bot has enough items (4 shards and 5 crystals for 1 lantern)
|
||||
let prismarineShardsCount = this.bot.bot.inventory.count(this.bot.mcData.itemsByName.prismarine_shard.id);
|
||||
let prismarineCrystalsCount = this.bot.bot.inventory.count(this.bot.mcData.itemsByName.prismarine_crystals.id);
|
||||
|
||||
if(prismarineShardsCount < 4 || prismarineCrystalsCount < 5){
|
||||
console.log("Not enough materials to craft 64 Sea Lanterns.");
|
||||
return;
|
||||
}else{
|
||||
console.log('good to make sea_lantern!');
|
||||
}
|
||||
|
||||
// Hold onto the closest crafting table
|
||||
let craftingTable = this.bot.bot.findBlock({
|
||||
matching: this.bot.mcData.blocksByName.crafting_table.id,
|
||||
maxDistance: 64
|
||||
});
|
||||
|
||||
await this.bot.goTo({
|
||||
where: craftingTable.position,
|
||||
range: 1,
|
||||
});
|
||||
|
||||
// Hold onto the recipe
|
||||
let recipe = this.bot.bot.recipesAll(
|
||||
this.bot.mcData.itemsByName.sea_lantern.id,
|
||||
null,
|
||||
craftingTable
|
||||
)[0];
|
||||
|
||||
let window = await this.bot.openCraftingTable(craftingTable);
|
||||
|
||||
// Move these into openCrating function
|
||||
let windowOnce = (event)=> new Promise((resolve, reject)=> window.once(event, resolve));
|
||||
let inventory = ()=> window.slots.slice(window.inventoryStart, window.inventoryEnd)
|
||||
|
||||
// Move the items into the crafting grid
|
||||
let slotCount = 1;
|
||||
for(let shapeRow of recipe.inShape){
|
||||
for(let shape of shapeRow){
|
||||
this.bot.bot.moveSlotItem(
|
||||
inventory().find((element)=> element && element.type === shape.id).slot,
|
||||
slotCount
|
||||
);
|
||||
await windowOnce(`updateSlot:${slotCount}`);
|
||||
slotCount++;
|
||||
}
|
||||
}
|
||||
|
||||
// Wait for the server to catch up.
|
||||
await sleep(500);
|
||||
|
||||
// Craft each item until all are gone.
|
||||
let craftedCount = 0;
|
||||
while(window.slots[0]){
|
||||
await this.bot.bot.moveSlotItem(
|
||||
window.craftingResultSlot,
|
||||
38 // dont hard code this!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
);
|
||||
craftedCount++;
|
||||
await windowOnce(`updateSlot:0`);
|
||||
await sleep(50); // wait for the client to catchup
|
||||
}
|
||||
|
||||
await window.close();
|
||||
|
||||
/*
|
||||
Dump items to chest
|
||||
*/
|
||||
|
||||
let seaLanternChest = this.bot.findChestBySign('sea_lantern');
|
||||
await this.bot.goTo({
|
||||
where: seaLanternChest.position,
|
||||
range: 4,
|
||||
});
|
||||
|
||||
await this.bot.dumpToChest(seaLanternChest, 'sea_lantern')
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = CraftChests;
|
165
nodejs/controller/goldFarm.js
Normal file
165
nodejs/controller/goldFarm.js
Normal file
@ -0,0 +1,165 @@
|
||||
'use strict';
|
||||
|
||||
const conf = require('../conf');
|
||||
const {sleep} = require('../utils');
|
||||
|
||||
|
||||
async function throwSnowballAtEntity(bot, entity) {
|
||||
const snowballItem = bot.bot.inventory.items().find(item => item.name === 'snowball');
|
||||
|
||||
if (!snowballItem) {
|
||||
console.log("No snowballs in inventory.");
|
||||
return;
|
||||
}
|
||||
|
||||
// Equip the snowball
|
||||
try{
|
||||
await bot.bot.equip(snowballItem, 'hand')
|
||||
|
||||
let tossAt = bot.findBlockBySign('bot balls');
|
||||
// Simulate throwing a snowball
|
||||
/* const nearestHayBlock = bot.bot.findBlock({
|
||||
useExtraInfo: true,
|
||||
maxDistance: 64,
|
||||
matching: (block)=>block.name.includes('hay'),
|
||||
});
|
||||
if (nearestHayBlock){
|
||||
}*/
|
||||
|
||||
await bot.bot.lookAt(tossAt.position.offset(0, -2, 0));
|
||||
await sleep(150);
|
||||
bot.bot.activateItem(); // This would simulate the throw of the snowball
|
||||
await sleep(200);
|
||||
bot.bot.activateItem(); // This would simulate the throw of the snowball
|
||||
await sleep(300);
|
||||
bot.bot.activateItem(); // This would simulate the throw of the snowball
|
||||
|
||||
}catch(error){
|
||||
console.log('GoldFarm.throwSnowballAtEntity error', error);
|
||||
}
|
||||
}
|
||||
|
||||
function getNearestEntityInDirection(bot, direction, entityType) {
|
||||
const entities = Object.values(bot.entities).filter(entity =>
|
||||
entity.position && entity !== bot.entity && entity.name === entityType
|
||||
);
|
||||
let nearestEntity = null;
|
||||
let minDistance = Infinity;
|
||||
|
||||
for (const entity of entities) {
|
||||
const relativePos = entity.position.minus(bot.entity.position);
|
||||
const angle = Math.atan2(relativePos.x, relativePos.z);
|
||||
const targetAngle = direction * (Math.PI / 180);
|
||||
const angleDiff = Math.abs(angle - targetAngle);
|
||||
|
||||
if (angleDiff < Math.PI / 8) {
|
||||
const distance = bot.entity.position.distanceTo(entity.position);
|
||||
if (distance < minDistance) {
|
||||
minDistance = distance;
|
||||
nearestEntity = entity;
|
||||
}
|
||||
}
|
||||
}
|
||||
return nearestEntity;
|
||||
}
|
||||
|
||||
class GoldFarm{
|
||||
location = {};
|
||||
|
||||
constructor(args){
|
||||
this.bot = args.bot;
|
||||
this.target = args.target;
|
||||
this.interval = args.interval;
|
||||
this.intervalStop;
|
||||
}
|
||||
|
||||
locationsSet(){
|
||||
this.location.xpSpotAlone = this.bot.findBlockBySign('xpSpotAlone');
|
||||
this.location.xpSpotSecond = this.bot.findBlockBySign('xpSpotSecond');
|
||||
this.location.xp = this.location.xpSpotAlone;
|
||||
this.location.attack = this.bot.findBlockBySign('bot attack spot');
|
||||
}
|
||||
|
||||
async init(){
|
||||
this.onReadyListen = this.bot.on('onReady', async ()=>{
|
||||
await sleep(1000);
|
||||
console.log('GoldFarm.init onReady called');
|
||||
try{
|
||||
this.locationsSet();
|
||||
|
||||
await this.agroPigs();
|
||||
|
||||
}catch(error){
|
||||
console.error('Error in GoldFarm.init:', error);
|
||||
}
|
||||
|
||||
|
||||
await this.gotoXP();
|
||||
|
||||
// let count = 1;
|
||||
// this.onPhysicTick = this.bot.on('physicsTick', async () => {
|
||||
// if(this.bot.bot.pathfinder.isMoving()) return;
|
||||
// if(count++ === 100){
|
||||
// count = 1;
|
||||
// for(let playerName in this.bot.bot.players){
|
||||
// if(this.bot.playerWithinBlock(playerName, this.location.xpSpotAlone, 1.5)){
|
||||
// this.location.xp = this.location.xpSpotSecond;
|
||||
// }else{
|
||||
// this.location.xp = this.location.xpSpotAlone;
|
||||
// }
|
||||
// await this.gotoXP();
|
||||
// }
|
||||
|
||||
// }
|
||||
// });
|
||||
});
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
unload(){
|
||||
console.log('GoldFarm.unload');
|
||||
clearInterval(this.intervalStop);
|
||||
this.intervalStop = null;
|
||||
this.onReadyListen();
|
||||
if(this.onPhysicTick) this.onPhysicTick();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
async agroPigs(){
|
||||
await this.bot.goTo({
|
||||
where: this.location.attack,
|
||||
range: 2,
|
||||
});
|
||||
|
||||
await sleep(1000);
|
||||
// let entity = this.bot.bot.nearestEntity(
|
||||
// entity => entity.name.toLowerCase() === 'zombified_piglin' && this.bot.bot.entity.position.distanceTo(entity.position) >= 10
|
||||
// );
|
||||
|
||||
let entity = getNearestEntityInDirection(this.bot.bot, 270, 'zombified_piglin');
|
||||
|
||||
console.log('entity', entity)
|
||||
|
||||
this.bot.bot.setControlState('jump', true);
|
||||
await sleep(100);
|
||||
await throwSnowballAtEntity(this.bot, entity);
|
||||
|
||||
await sleep(1200);
|
||||
this.bot.bot.setControlState('jump', false);
|
||||
}
|
||||
|
||||
async gotoXP(){
|
||||
await this.bot.bot.equip(this.bot.bot.inventory.items().find(
|
||||
item => item.name === 'diamond_sword'
|
||||
), 'hand');
|
||||
|
||||
await this.bot.goTo({
|
||||
where: this.location.xp,
|
||||
range: 1,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = GoldFarm;
|
@ -3,18 +3,60 @@
|
||||
const conf = require('../conf');
|
||||
const {sleep, nextTick} = require('../utils');
|
||||
|
||||
class GuardianFarm{
|
||||
constructor(args){
|
||||
this.bot = args.bot;
|
||||
|
||||
class Plugin{
|
||||
plunginsLoaded = {};
|
||||
|
||||
constructor(options){
|
||||
this.bot = options.bot;
|
||||
}
|
||||
|
||||
async load(pluginName, options){
|
||||
if(pluginName in this.plunginsLoaded) throw new Error(`Plugin ${pluginName} already loaded`);
|
||||
let plugin = new this.bot.constructor.plungins[pluginName]({...options, bot: this.bot})
|
||||
this.plunginsLoaded[pluginName] = plugin;
|
||||
|
||||
return await plugin.init();
|
||||
}
|
||||
|
||||
unload(pluginName){
|
||||
console.log('Plugin.unload', pluginName);
|
||||
if(pluginName){
|
||||
try{
|
||||
return this.plunginsLoaded[pluginName].unload();
|
||||
delete this.plunginsLoaded[pluginName];
|
||||
}catch(error){
|
||||
console.error('Plugin.unload error', pluginName);
|
||||
}
|
||||
}
|
||||
|
||||
for(pluginName in this.plunginsLoaded){
|
||||
console.log('Plugin.unload load', pluginName)
|
||||
try{
|
||||
this.plunginsLoaded[pluginName].unload();
|
||||
}catch(error){
|
||||
console.error(`Plugin.unload ${pluginName} Error`, error);
|
||||
}
|
||||
delete this.plunginsLoaded[pluginName];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class GuardianFarm extends Plugin{
|
||||
constructor(options){
|
||||
super(options);
|
||||
this.isDangerous = true;
|
||||
this.isAction = true;
|
||||
this.onTimeListen;
|
||||
}
|
||||
|
||||
async init(){
|
||||
console.log('GuardianFarm started')
|
||||
console.log('GuardianFarm started');
|
||||
this.onReadyListen = this.bot.on('onReady', async ()=>{
|
||||
await sleep(3000);
|
||||
let lastTimeListen = this.bot.bot.time.timeOfDay;
|
||||
await this.load('Swing');
|
||||
|
||||
this.onTimeListen = this.bot.bot.on('time', async ()=>{
|
||||
let isDay = lastTimeListen < this.bot.bot.time.timeOfDay;
|
||||
lastTimeListen = this.bot.bot.time.timeOfDay;
|
||||
@ -23,7 +65,6 @@ class GuardianFarm{
|
||||
await this.onNewDay();
|
||||
}
|
||||
});
|
||||
await this.bot.pluginLoad('Swing');
|
||||
|
||||
});
|
||||
|
||||
@ -31,8 +72,9 @@ class GuardianFarm{
|
||||
}
|
||||
|
||||
unload(){
|
||||
super.unload();
|
||||
this.onReadyListen();
|
||||
this.onTimeListen();
|
||||
// this.onTimeListen();
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -40,10 +82,10 @@ class GuardianFarm{
|
||||
async onNewDay(){
|
||||
try{
|
||||
console.log('GuardianFarm.onNewDay new day!');
|
||||
await this.bot.pluginUnload('Swing');
|
||||
await this.bot.pluginLoad('Craft');
|
||||
await this.bot.pluginUnload('Craft');
|
||||
await this.bot.pluginLoad('Swing');
|
||||
await this.unload('Swing');
|
||||
await this.load('Craft');
|
||||
await this.unload('Craft');
|
||||
await this.load('Swing');
|
||||
}catch(error){
|
||||
console.error('Error in GuardianFarm.onNewDay:', error);
|
||||
}
|
||||
|
@ -7,16 +7,14 @@ const inventoryViewer = require('mineflayer-web-inventory');
|
||||
|
||||
const commands = require('./commands');
|
||||
const {onJoin} = require('./player_list');
|
||||
const {Ai} = require('./ai');
|
||||
// const plugins = {
|
||||
// Swing: require('./swing'),
|
||||
// }
|
||||
|
||||
CJbot.pluginAdd(require('./swing'));
|
||||
CJbot.pluginAdd(require('./craft'));
|
||||
CJbot.pluginAdd(require('./tp'));
|
||||
CJbot.pluginAdd(require('./ai'));
|
||||
CJbot.pluginAdd(require('./guardianFarm'));
|
||||
CJbot.pluginAdd(require('./goldFarm'));
|
||||
CJbot.pluginAdd(require('./craft_chests'));
|
||||
|
||||
for(let name in conf.mc.bots){
|
||||
if(CJbot.bots[name]) continue;
|
||||
@ -28,12 +26,6 @@ for(let name in conf.mc.bots){
|
||||
bot.addCommand(name, toAdd)
|
||||
}
|
||||
}
|
||||
|
||||
if(conf.mc.bots[name].plugins){
|
||||
for(let pluginName in conf.mc.bots[name].plugins){
|
||||
bot.pluginLoad(pluginName, conf.mc.bots[name].plugins[pluginName]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
(async ()=>{try{
|
||||
|
@ -3,6 +3,14 @@
|
||||
const conf = require('../conf');
|
||||
const {sleep} = require('../utils');
|
||||
|
||||
|
||||
function faceEntity(bot, entity) {
|
||||
if (!entity) return; // Check if entity is valid
|
||||
|
||||
const targetPosition = entity.position.offset(0, entity.height * 0.5, 0); // Focus on the middle of the entity
|
||||
bot.bot.lookAt(targetPosition);
|
||||
}
|
||||
|
||||
class Swing{
|
||||
constructor(args){
|
||||
this.bot = args.bot;
|
||||
@ -29,6 +37,7 @@ class Swing{
|
||||
}
|
||||
|
||||
unload(){
|
||||
console.log('Swing.unload');
|
||||
clearInterval(this.intervalStop);
|
||||
this.intervalStop = null;
|
||||
this.onReadyListen();
|
||||
@ -46,14 +55,19 @@ class Swing{
|
||||
async swing(){
|
||||
this.intervalStop = setInterval(async ()=>{
|
||||
try{
|
||||
// console.log('attacking');
|
||||
await this.bot.bot.attack(
|
||||
this.bot.bot.nearestEntity(
|
||||
entity => entity.name.toLowerCase() === 'guardian'
|
||||
)
|
||||
);
|
||||
}catch(error){}
|
||||
}, 1010);
|
||||
let entity = this.bot.bot.nearestEntity(entity =>{
|
||||
// console.log('looking for entity name', entity.name, entity.name?.toLowerCase());
|
||||
return entity.name?.toLowerCase() === "guardian"
|
||||
});
|
||||
|
||||
if(entity && this.bot.isWithinRange(entity.position, 3)){
|
||||
faceEntity(this.bot, entity);
|
||||
await this.bot.bot.attack(entity);
|
||||
}
|
||||
}catch(error){
|
||||
console.log('Swing.swing interval error:', error);
|
||||
}
|
||||
}, 500);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -16,10 +16,14 @@ class Tp{
|
||||
}
|
||||
}
|
||||
|
||||
let spot = this.bot.findBlockBySign('bot TP spot');
|
||||
|
||||
if(spot){
|
||||
await this.bot.goTo({
|
||||
where: this.bot.findBlockBySign('bot TP spot'),
|
||||
range: 0,
|
||||
where: spot,
|
||||
range: 1,
|
||||
});
|
||||
}
|
||||
|
||||
this.cleatTimeout = setTimeout(()=>{
|
||||
this.bot.pluginUnload(this.constructor.name)
|
||||
|
@ -47,9 +47,11 @@ class CJbot{
|
||||
this.host = args.host;
|
||||
this.auth = args.auth || 'microsoft';
|
||||
this.version = args.version || '1.20.1';
|
||||
|
||||
this.hasAi = args.hasAi;
|
||||
|
||||
//
|
||||
this.pluginsWanted = args.plugins || {};
|
||||
|
||||
// States if the bot should connect when its loaded
|
||||
this.autoReConnect = 'autoConnect' in args ? args.autoReConnect : true;
|
||||
this.autoConnect = 'autoConnect' in args ? args.autoConnect : true;
|
||||
@ -61,9 +63,10 @@ class CJbot{
|
||||
}
|
||||
|
||||
connect(){
|
||||
console.log('CJbot.connect');
|
||||
return new Promise((resolve, reject) =>{
|
||||
|
||||
try{
|
||||
// Create the mineflayer instance
|
||||
this.bot = mineflayer.createBot({
|
||||
host: this.host,
|
||||
username: this.username,
|
||||
@ -83,6 +86,7 @@ class CJbot{
|
||||
// to the caller of the function
|
||||
this.bot.on('end', (reason, ...args)=>{
|
||||
console.log(this.name, 'Connection ended:', reason, ...args);
|
||||
this.pluginUnloadAll();
|
||||
this.isReady = false;
|
||||
reject(reason);
|
||||
});
|
||||
@ -90,18 +94,27 @@ class CJbot{
|
||||
// When the bot is ready, return to the caller success
|
||||
this.bot.on('spawn', async()=>{
|
||||
console.log('CJbot.connect on spawn')
|
||||
await sleep(2000);
|
||||
this.__onReady();
|
||||
resolve();
|
||||
this.pluginLoadAll();
|
||||
});
|
||||
|
||||
// Set a timer to try to connect again in 30 seconds if the bot is
|
||||
// not connected
|
||||
setTimeout(async ()=>{try{
|
||||
if(this.autoReConnect && !this.isReady) await this.connect();
|
||||
|
||||
/* setTimeout(async ()=>{
|
||||
try{
|
||||
if(this.autoReConnect && !this.isReady){
|
||||
console.log()
|
||||
await this.connect();
|
||||
}
|
||||
}catch(error){
|
||||
console.error('minecraft.js | connect | setTimeout |', this.name, ' ', error)
|
||||
}}, 30000);
|
||||
}
|
||||
}, 30000);*/
|
||||
}catch(error){
|
||||
console.log('CJbot.connect Error', error);
|
||||
reject(error);
|
||||
}
|
||||
|
||||
@ -140,6 +153,7 @@ class CJbot{
|
||||
// Start chat listeners
|
||||
this.__listen();
|
||||
|
||||
this.bot.on('title', (...args)=>console.log('on title', args))
|
||||
// this.bot.on('path_update', (...args)=>{ console.log('EVENT path_update', args) })
|
||||
// this.bot.on('goal_updated', (...args)=>{ console.log('EVENT goal_updated', args) })
|
||||
// this.bot.on('path_reset', (...args)=>{ console.log('EVENT path_reset', args) })
|
||||
@ -196,20 +210,21 @@ class CJbot{
|
||||
// Listen for ending events and call connect again
|
||||
__autoReConnect(){
|
||||
try{
|
||||
console.log('auto connect function')
|
||||
this.on('end', async (reason)=>{
|
||||
console.error('_autorestart MC on end', reason)
|
||||
console.log('auto re-connect function')
|
||||
this.on('kicked', (...args)=>console.log('CJbot.__autoReConnect on kick', args))
|
||||
|
||||
this.on('end', async (...args)=>{
|
||||
console.error('CJbot.__autoReConnect on end', args)
|
||||
|
||||
await sleep(30000)
|
||||
this.connect()
|
||||
});
|
||||
|
||||
this.on('kick', console.error)
|
||||
|
||||
this.on('error', (error)=>{
|
||||
console.error('MC on error', error);
|
||||
|
||||
this.connect();
|
||||
// this.connect();
|
||||
});
|
||||
}catch(error){
|
||||
console.error('error in __autoReConnect', error);
|
||||
@ -242,6 +257,12 @@ class CJbot{
|
||||
|
||||
plunginsLoaded = {};
|
||||
|
||||
pluginLoadAll(){
|
||||
for(let pluginName in this.pluginsWanted){
|
||||
this.pluginLoad(pluginName, this.pluginsWanted[pluginName]);
|
||||
}
|
||||
}
|
||||
|
||||
async pluginLoad(pluginName, opts){
|
||||
console.log('CJbot.pluginLoad', pluginName)
|
||||
let plugin = new this.constructor.plungins[pluginName]({...opts, bot:this})
|
||||
@ -252,13 +273,26 @@ class CJbot{
|
||||
async pluginUnload(name){
|
||||
console.log('CJbot.pluginUnload', name)
|
||||
if(this.plunginsLoaded[name]){
|
||||
await this.plunginsLoaded[name].unload();
|
||||
this.plunginsLoaded[name].unload();
|
||||
delete this.plunginsLoaded[name];
|
||||
console.log('CJbot.pluginUnload', name, 'done');
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
async pluginUnloadAll(){
|
||||
console.log('CJbot.pluginUnloadAll');
|
||||
for(let pluginName in this.plunginsLoaded){
|
||||
console.log('CJbot.pluginUnloadAll loop', pluginName)
|
||||
try{
|
||||
await this.plunginsLoaded[pluginName].unload()
|
||||
delete this.plunginsLoaded[pluginName];
|
||||
}catch(error){
|
||||
console.log('CJbot.pluginUnload loop error:', error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Chat and messaging*/
|
||||
|
||||
__listen(){
|
||||
@ -438,29 +472,37 @@ class CJbot{
|
||||
});
|
||||
}
|
||||
|
||||
isWithinRange(target, range=2) {
|
||||
isWithinRange(target, range=2){
|
||||
const botPos = this.bot.entity.position;
|
||||
const distance = botPos.distanceTo(target);
|
||||
|
||||
return distance <= range+.9;
|
||||
}
|
||||
|
||||
async _goTo(block, range=2){
|
||||
try{
|
||||
}catch(error){
|
||||
if(error.message === 'Not supported block identifier'){
|
||||
console.log('found block error')
|
||||
await sleep(1000);
|
||||
block = this.__blockOrVec(block);
|
||||
}
|
||||
console.log('other', error)
|
||||
playerWithinBlock(player, block, range){
|
||||
let playerData = this.bot.players[player];
|
||||
if(!playerData || !playerData.entity) return; // Skip if no entity info
|
||||
|
||||
// Calculate the distance between the player and the block
|
||||
let distance = playerData.entity.position.distanceTo(block.position);
|
||||
|
||||
console.log('CJbot.playerWithinBlock', distance, range, distance < range)
|
||||
if(!range){
|
||||
return distance;
|
||||
}
|
||||
|
||||
try{
|
||||
}catch(error){
|
||||
if(error.name === 'GoalChanged') return await this._goTo(block, range);
|
||||
console.log('error in _goTo', error.name, '|', error.message);
|
||||
return distance < range;
|
||||
}
|
||||
|
||||
areGoalsWithinRange(goal1, goal2) {
|
||||
const dx = goal1.x - goal2.x;
|
||||
const dy = goal1.y - goal2.y;
|
||||
const dz = goal1.z - goal2.z;
|
||||
|
||||
const distanceSq = dx * dx + dy * dy + dz * dz;
|
||||
|
||||
// Compare with the maximum allowed squared range (rangeSq)
|
||||
return distanceSq <= goal1.rangeSq && distanceSq <= goal2.rangeSq;
|
||||
}
|
||||
|
||||
async goTo(options) {
|
||||
@ -469,19 +511,20 @@ class CJbot{
|
||||
|
||||
while(!this.isWithinRange(this.__blockOrVec(options.where).position, range)){
|
||||
try{
|
||||
console.log('goal', this.bot.pathfinder.goal);
|
||||
if(this.bot.pathfinder.isMoving()){
|
||||
await sleep(500);
|
||||
console.log('the bot is moving...')
|
||||
console.log('the bot is moving...');
|
||||
continue;
|
||||
}
|
||||
await this.bot.pathfinder.goto(
|
||||
new GoalNear(...block.position.toArray(), range)
|
||||
);
|
||||
}catch(error){
|
||||
await sleep(500);
|
||||
// await sleep(500);
|
||||
console.log('CJbot.goTo while loop error:', error)
|
||||
// await this.bot.pathfinder.setGoal(null);
|
||||
await this.bot.pathfinder.stop();
|
||||
// await this.bot.pathfinder.stop();
|
||||
await sleep(500);
|
||||
}
|
||||
}
|
||||
@ -565,7 +608,6 @@ class CJbot{
|
||||
return window;
|
||||
}
|
||||
|
||||
|
||||
async checkItemsFromContainer(containerBlock, itemName, count){
|
||||
let currentSlot = 0;
|
||||
let foundCount = 0;
|
||||
@ -594,21 +636,35 @@ class CJbot{
|
||||
|
||||
let window = await this.openContainer(chestBlock);
|
||||
|
||||
|
||||
let itemCount = 0
|
||||
let currentSlot = 0;
|
||||
for(let slot of window.slots){
|
||||
if(currentSlot++ === window.inventoryStart) break;
|
||||
if(!slot) continue;
|
||||
|
||||
// if(!slot || slot.name !== 'shulker_box') continue;
|
||||
console.log('slot:', slot)
|
||||
if(!slot || slot.name !== 'shulker_box') continue;
|
||||
// console.log('slot:', slot)
|
||||
if(slot.nbt){
|
||||
// console.log(slot.nbt)
|
||||
console.log('BlockEntityTag:', slot.nbt.value.BlockEntityTag.value.Items.value.value)
|
||||
// console.log('nbt', slot.nbt, slot.nbt.value.BlockEntityTag)
|
||||
// console.log('BlockEntityTag:', slot.nbt.value.BlockEntityTag.value.Items.value.value)
|
||||
|
||||
for(let shulkerSlot of slot.nbt.value.BlockEntityTag.value.Items.value.value){
|
||||
console.log('shulkerSlot', shulkerSlot)
|
||||
if(shulkerSlot.id?.value !== `minecraft:${item}`) continue;
|
||||
itemCount += shulkerSlot.Count.value
|
||||
}
|
||||
if(this.bot.registry.itemsByName[item].stackSize * 27 === itemCount){
|
||||
console.log('found full shulker');
|
||||
this.bot.moveSlotItem(currentSlot, window.inventoryStart);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
await window.close();
|
||||
|
||||
/* // Get the inventory of the chest block
|
||||
const chestInventory = chestBlock.getInventory();
|
||||
|
||||
|
566
nodejs/package-lock.json
generated
566
nodejs/package-lock.json
generated
@ -14,7 +14,7 @@
|
||||
"dotenv": "^16.0.1",
|
||||
"extend": "^3.0.2",
|
||||
"minecraft-data": "^3.69.0",
|
||||
"mineflayer": "^4.0.0",
|
||||
"mineflayer": "^4.27.0",
|
||||
"mineflayer-pathfinder": "^2.4.5",
|
||||
"mineflayer-web-inventory": "^1.3.0",
|
||||
"moment": "^2.29.3",
|
||||
@ -25,19 +25,19 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@azure/msal-common": {
|
||||
"version": "14.15.0",
|
||||
"resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.15.0.tgz",
|
||||
"integrity": "sha512-ImAQHxmpMneJ/4S8BRFhjt1MZ3bppmpRPYYNyzeQPeFN288YKbb8TmmISQEbtfkQ1BPASvYZU5doIZOPBAqENQ==",
|
||||
"version": "14.16.0",
|
||||
"resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.16.0.tgz",
|
||||
"integrity": "sha512-1KOZj9IpcDSwpNiQNjt0jDYZpQvNZay7QAEi/5DLubay40iGYtLzya/jbjRPLyOTZhEKyL1MzPuw2HqBCjceYA==",
|
||||
"engines": {
|
||||
"node": ">=0.8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@azure/msal-node": {
|
||||
"version": "2.15.0",
|
||||
"resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.15.0.tgz",
|
||||
"integrity": "sha512-gVPW8YLz92ZeCibQH2QUw96odJoiM3k/ZPH3f2HxptozmH6+OnyyvKXo/Egg39HAM230akarQKHf0W74UHlh0Q==",
|
||||
"version": "2.16.2",
|
||||
"resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.16.2.tgz",
|
||||
"integrity": "sha512-An7l1hEr0w1HMMh1LU+rtDtqL7/jw74ORlc9Wnh06v7TU/xpG39/Zdr1ZJu3QpjUfKJ+E0/OXMW8DRSWTlh7qQ==",
|
||||
"dependencies": {
|
||||
"@azure/msal-common": "14.15.0",
|
||||
"@azure/msal-common": "14.16.0",
|
||||
"jsonwebtoken": "^9.0.0",
|
||||
"uuid": "^8.3.0"
|
||||
},
|
||||
@ -72,17 +72,25 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "22.7.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz",
|
||||
"integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==",
|
||||
"version": "22.13.13",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.13.tgz",
|
||||
"integrity": "sha512-ClsL5nMwKaBRwPcCvH8E7+nU4GxHVx1axNvMZTFHMEfNI7oahimt26P5zjVCRrjiIWj6YFXfE1v3dEp94wLcGQ==",
|
||||
"dependencies": {
|
||||
"undici-types": "~6.19.2"
|
||||
"undici-types": "~6.20.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/node-rsa": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/node-rsa/-/node-rsa-1.1.4.tgz",
|
||||
"integrity": "sha512-dB0ECel6JpMnq5ULvpUTunx3yNm8e/dIkv8Zu9p2c8me70xIRUUG3q+qXRwcSf9rN3oqamv4116iHy90dJGRpA==",
|
||||
"dependencies": {
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/readable-stream": {
|
||||
"version": "4.0.15",
|
||||
"resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-4.0.15.tgz",
|
||||
"integrity": "sha512-oAZ3kw+kJFkEqyh7xORZOku1YAKvsFTogRY8kVl4vHpEKiDkfnSA/My8haRE7fvmix5Zyy+1pwzOi7yycGLBJw==",
|
||||
"version": "4.0.18",
|
||||
"resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-4.0.18.tgz",
|
||||
"integrity": "sha512-21jK/1j+Wg+7jVw1xnSwy/2Q1VgVjWuFssbYGTREPUBeZ+rqVFl2udq0IkxzPC0ZhOzVceUbyIACFZKLqKEBlA==",
|
||||
"dependencies": {
|
||||
"@types/node": "*",
|
||||
"safe-buffer": "~5.1.1"
|
||||
@ -182,9 +190,9 @@
|
||||
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
|
||||
},
|
||||
"node_modules/axios": {
|
||||
"version": "1.7.7",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz",
|
||||
"integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==",
|
||||
"version": "1.8.4",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-1.8.4.tgz",
|
||||
"integrity": "sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==",
|
||||
"dependencies": {
|
||||
"follow-redirects": "^1.15.6",
|
||||
"form-data": "^4.0.0",
|
||||
@ -349,16 +357,25 @@
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/call-bind": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
|
||||
"integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
|
||||
"node_modules/call-bind-apply-helpers": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
|
||||
"integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
|
||||
"dependencies": {
|
||||
"es-define-property": "^1.0.0",
|
||||
"es-errors": "^1.3.0",
|
||||
"function-bind": "^1.1.2",
|
||||
"get-intrinsic": "^1.2.4",
|
||||
"set-function-length": "^1.2.1"
|
||||
"function-bind": "^1.1.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/call-bound": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
|
||||
"integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
|
||||
"dependencies": {
|
||||
"call-bind-apply-helpers": "^1.0.2",
|
||||
"get-intrinsic": "^1.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
@ -485,9 +502,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/debug": {
|
||||
"version": "4.3.7",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
|
||||
"integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
|
||||
"version": "4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
|
||||
"integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
|
||||
"dependencies": {
|
||||
"ms": "^2.1.3"
|
||||
},
|
||||
@ -500,22 +517,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/define-data-property": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
|
||||
"integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
|
||||
"dependencies": {
|
||||
"es-define-property": "^1.0.0",
|
||||
"es-errors": "^1.3.0",
|
||||
"gopd": "^1.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/delayed-stream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
@ -547,9 +548,9 @@
|
||||
"integrity": "sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ=="
|
||||
},
|
||||
"node_modules/dotenv": {
|
||||
"version": "16.4.5",
|
||||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz",
|
||||
"integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==",
|
||||
"version": "16.4.7",
|
||||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz",
|
||||
"integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==",
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
@ -557,6 +558,19 @@
|
||||
"url": "https://dotenvx.com"
|
||||
}
|
||||
},
|
||||
"node_modules/dunder-proto": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
|
||||
"integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
|
||||
"dependencies": {
|
||||
"call-bind-apply-helpers": "^1.0.1",
|
||||
"es-errors": "^1.3.0",
|
||||
"gopd": "^1.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/ecdsa-sig-formatter": {
|
||||
"version": "1.0.11",
|
||||
"resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
|
||||
@ -619,13 +633,26 @@
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/es-define-property": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
|
||||
"integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
|
||||
"node_modules/engine.io/node_modules/debug": {
|
||||
"version": "4.3.7",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
|
||||
"integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
|
||||
"dependencies": {
|
||||
"get-intrinsic": "^1.2.4"
|
||||
"ms": "^2.1.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"supports-color": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/es-define-property": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
|
||||
"integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
@ -638,6 +665,31 @@
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/es-object-atoms": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
|
||||
"integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
|
||||
"dependencies": {
|
||||
"es-errors": "^1.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/es-set-tostringtag": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
|
||||
"integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
|
||||
"dependencies": {
|
||||
"es-errors": "^1.3.0",
|
||||
"get-intrinsic": "^1.2.6",
|
||||
"has-tostringtag": "^1.0.2",
|
||||
"hasown": "^2.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/escape-html": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
|
||||
@ -668,9 +720,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/express": {
|
||||
"version": "4.21.1",
|
||||
"resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz",
|
||||
"integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==",
|
||||
"version": "4.21.2",
|
||||
"resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
|
||||
"integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
|
||||
"dependencies": {
|
||||
"accepts": "~1.3.8",
|
||||
"array-flatten": "1.1.1",
|
||||
@ -691,7 +743,7 @@
|
||||
"methods": "~1.1.2",
|
||||
"on-finished": "2.4.1",
|
||||
"parseurl": "~1.3.3",
|
||||
"path-to-regexp": "0.1.10",
|
||||
"path-to-regexp": "0.1.12",
|
||||
"proxy-addr": "~2.0.7",
|
||||
"qs": "6.13.0",
|
||||
"range-parser": "~1.2.1",
|
||||
@ -706,6 +758,10 @@
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.10.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/express"
|
||||
}
|
||||
},
|
||||
"node_modules/express/node_modules/debug": {
|
||||
@ -817,12 +873,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/form-data": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
|
||||
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz",
|
||||
"integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==",
|
||||
"dependencies": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.8",
|
||||
"es-set-tostringtag": "^2.1.0",
|
||||
"mime-types": "^2.1.12"
|
||||
},
|
||||
"engines": {
|
||||
@ -868,15 +925,20 @@
|
||||
}
|
||||
},
|
||||
"node_modules/get-intrinsic": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
|
||||
"integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
|
||||
"integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
|
||||
"dependencies": {
|
||||
"call-bind-apply-helpers": "^1.0.2",
|
||||
"es-define-property": "^1.0.1",
|
||||
"es-errors": "^1.3.0",
|
||||
"es-object-atoms": "^1.1.1",
|
||||
"function-bind": "^1.1.2",
|
||||
"has-proto": "^1.0.1",
|
||||
"has-symbols": "^1.0.3",
|
||||
"hasown": "^2.0.0"
|
||||
"get-proto": "^1.0.1",
|
||||
"gopd": "^1.2.0",
|
||||
"has-symbols": "^1.1.0",
|
||||
"hasown": "^2.0.2",
|
||||
"math-intrinsics": "^1.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
@ -885,6 +947,18 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/get-proto": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
|
||||
"integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
|
||||
"dependencies": {
|
||||
"dunder-proto": "^1.0.1",
|
||||
"es-object-atoms": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/glob-parent": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
|
||||
@ -898,11 +972,11 @@
|
||||
}
|
||||
},
|
||||
"node_modules/gopd": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
|
||||
"integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
|
||||
"dependencies": {
|
||||
"get-intrinsic": "^1.1.3"
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
|
||||
"integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
@ -917,21 +991,10 @@
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/has-property-descriptors": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
|
||||
"integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
|
||||
"dependencies": {
|
||||
"es-define-property": "^1.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/has-proto": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
|
||||
"integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
|
||||
"node_modules/has-symbols": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
|
||||
"integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
@ -939,10 +1002,13 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/has-symbols": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
|
||||
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
|
||||
"node_modules/has-tostringtag": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
|
||||
"integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
|
||||
"dependencies": {
|
||||
"has-symbols": "^1.0.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
@ -1067,14 +1133,6 @@
|
||||
"node": ">=0.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/jose": {
|
||||
"version": "4.15.9",
|
||||
"resolved": "https://registry.npmjs.org/jose/-/jose-4.15.9.tgz",
|
||||
"integrity": "sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==",
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/panva"
|
||||
}
|
||||
},
|
||||
"node_modules/json-schema-traverse": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
|
||||
@ -1128,7 +1186,8 @@
|
||||
"node_modules/lodash.get": {
|
||||
"version": "4.4.2",
|
||||
"resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
|
||||
"integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ=="
|
||||
"integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
|
||||
"deprecated": "This package is deprecated. Use the optional chaining (?.) operator instead."
|
||||
},
|
||||
"node_modules/lodash.includes": {
|
||||
"version": "4.3.0",
|
||||
@ -1180,6 +1239,14 @@
|
||||
"resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.5.3.tgz",
|
||||
"integrity": "sha512-vGBKTA+jwM4KgjGZ+S/8/Mkj9rWzePyGY6jManXPGhiWu63RYwW8dKPyk5koP+8qNVhPhHgFa1y/MJ4wrjsNrg=="
|
||||
},
|
||||
"node_modules/math-intrinsics": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
|
||||
"integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/media-typer": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
|
||||
@ -1235,14 +1302,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/minecraft-assets": {
|
||||
"version": "1.12.2",
|
||||
"resolved": "https://registry.npmjs.org/minecraft-assets/-/minecraft-assets-1.12.2.tgz",
|
||||
"integrity": "sha512-/eMxh3LNjCXOnU6KnQMjBM8dRnoJNpWIg7mD2m2RthraYiQK2FNzPWIKxWm2j3Ufcf5nzFXupgABledE86r4fQ=="
|
||||
"version": "1.15.0",
|
||||
"resolved": "https://registry.npmjs.org/minecraft-assets/-/minecraft-assets-1.15.0.tgz",
|
||||
"integrity": "sha512-hHHNyzrUUaCDEVdupvgnu8hM5y/6t6R8V2m9LgkFRlz0XENII2uDevO5pXkLlz80K0SazHWzd8+zcHitmt6c0Q=="
|
||||
},
|
||||
"node_modules/minecraft-data": {
|
||||
"version": "3.69.0",
|
||||
"resolved": "https://registry.npmjs.org/minecraft-data/-/minecraft-data-3.69.0.tgz",
|
||||
"integrity": "sha512-FGpjH/8ABfIuHm53253MZZVLwfVgLuRl4wrYz91TNoT14a+pMPH7igNxdpBmKayhiO7VO0ox/ZISkCOj6S/isA=="
|
||||
"version": "3.84.1",
|
||||
"resolved": "https://registry.npmjs.org/minecraft-data/-/minecraft-data-3.84.1.tgz",
|
||||
"integrity": "sha512-0yPsnu4rYjbokPgm6aMqhIm70fhsUUYFMEbbqrLG7QGLQDUy3lauuVlh3ctRxtPP6vX/ywLo1p5Uczz3Snnocg=="
|
||||
},
|
||||
"node_modules/minecraft-folder-path": {
|
||||
"version": "1.2.0",
|
||||
@ -1250,10 +1317,11 @@
|
||||
"integrity": "sha512-qaUSbKWoOsH9brn0JQuBhxNAzTDMwrOXorwuRxdJKKKDYvZhtml+6GVCUrY5HRiEsieBEjCUnhVpDuQiKsiFaw=="
|
||||
},
|
||||
"node_modules/minecraft-protocol": {
|
||||
"version": "1.47.0",
|
||||
"resolved": "https://registry.npmjs.org/minecraft-protocol/-/minecraft-protocol-1.47.0.tgz",
|
||||
"integrity": "sha512-IHL8faXLLIWv1O+2v2NgyKlooilu/OiSL9orI8Kqed/rZvVOrFPzs2PwMAYjpQX9gxLPhiSU19KqZ8CjfNuqhg==",
|
||||
"version": "1.55.0",
|
||||
"resolved": "https://registry.npmjs.org/minecraft-protocol/-/minecraft-protocol-1.55.0.tgz",
|
||||
"integrity": "sha512-jlzmRxoNuj2bFk1fxR+dTg6Z4RpOR1/FLrk1zhft0jCwAIEhgV2OPi6Ceg2KFKADneEX0suhCty855A/qFLQWA==",
|
||||
"dependencies": {
|
||||
"@types/node-rsa": "^1.1.4",
|
||||
"@types/readable-stream": "^4.0.0",
|
||||
"aes-js": "^3.1.2",
|
||||
"buffer-equal": "^1.0.0",
|
||||
@ -1261,7 +1329,7 @@
|
||||
"endian-toggle": "^0.0.0",
|
||||
"lodash.get": "^4.1.2",
|
||||
"lodash.merge": "^4.3.0",
|
||||
"minecraft-data": "^3.55.0",
|
||||
"minecraft-data": "^3.78.0",
|
||||
"minecraft-folder-path": "^1.2.0",
|
||||
"node-fetch": "^2.6.1",
|
||||
"node-rsa": "^0.4.2",
|
||||
@ -1269,40 +1337,40 @@
|
||||
"prismarine-chat": "^1.10.0",
|
||||
"prismarine-nbt": "^2.5.0",
|
||||
"prismarine-realms": "^1.2.0",
|
||||
"protodef": "^1.8.0",
|
||||
"protodef": "^1.17.0",
|
||||
"readable-stream": "^4.1.0",
|
||||
"uuid-1345": "^1.0.1",
|
||||
"yggdrasil": "^1.4.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
"node": ">=22"
|
||||
}
|
||||
},
|
||||
"node_modules/mineflayer": {
|
||||
"version": "4.20.1",
|
||||
"resolved": "https://registry.npmjs.org/mineflayer/-/mineflayer-4.20.1.tgz",
|
||||
"integrity": "sha512-QMMNPx4IyZE7ydAzjvGLQLCnQNUOfkk1qVZKxTTS9q3qPTAewz4GhsVUBtbQ8LSbHthe5RcQ1Sgxs4wlIma/Qw==",
|
||||
"version": "4.27.0",
|
||||
"resolved": "https://registry.npmjs.org/mineflayer/-/mineflayer-4.27.0.tgz",
|
||||
"integrity": "sha512-3bxph4jfbkBh5HpeouorxzrfSLNV+i+1gugNJ2jf52HW+rt+tW7eiiFPxrJEsOVkPT/3O/dEIW7j93LRlojMkQ==",
|
||||
"dependencies": {
|
||||
"minecraft-data": "^3.56.0",
|
||||
"minecraft-protocol": "^1.47.0",
|
||||
"minecraft-data": "^3.76.0",
|
||||
"minecraft-protocol": "^1.51.0",
|
||||
"prismarine-biome": "^1.1.1",
|
||||
"prismarine-block": "^1.17.0",
|
||||
"prismarine-chat": "^1.7.1",
|
||||
"prismarine-chunk": "^1.34.0",
|
||||
"prismarine-entity": "^2.3.0",
|
||||
"prismarine-item": "^1.14.0",
|
||||
"prismarine-chunk": "^1.36.0",
|
||||
"prismarine-entity": "^2.5.0",
|
||||
"prismarine-item": "^1.15.0",
|
||||
"prismarine-nbt": "^2.0.0",
|
||||
"prismarine-physics": "^1.8.0",
|
||||
"prismarine-physics": "^1.9.0",
|
||||
"prismarine-recipe": "^1.3.0",
|
||||
"prismarine-registry": "^1.5.0",
|
||||
"prismarine-registry": "^1.10.0",
|
||||
"prismarine-windows": "^2.9.0",
|
||||
"prismarine-world": "^3.6.0",
|
||||
"protodef": "^1.14.0",
|
||||
"protodef": "^1.18.0",
|
||||
"typed-emitter": "^1.0.0",
|
||||
"vec3": "^0.1.7"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
"node": ">=22"
|
||||
}
|
||||
},
|
||||
"node_modules/mineflayer-pathfinder": {
|
||||
@ -1429,9 +1497,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/nodemon": {
|
||||
"version": "3.1.7",
|
||||
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.7.tgz",
|
||||
"integrity": "sha512-hLj7fuMow6f0lbB0cD14Lz2xNjwsyruH251Pk4t/yIitCFJbmY1myuLlHm/q06aST4jg6EgAh74PIBBrRqpVAQ==",
|
||||
"version": "3.1.9",
|
||||
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.9.tgz",
|
||||
"integrity": "sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"chokidar": "^3.5.2",
|
||||
@ -1474,9 +1542,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/object-inspect": {
|
||||
"version": "1.13.2",
|
||||
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
|
||||
"integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
|
||||
"version": "1.13.4",
|
||||
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
|
||||
"integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
@ -1504,9 +1572,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/path-to-regexp": {
|
||||
"version": "0.1.10",
|
||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz",
|
||||
"integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w=="
|
||||
"version": "0.1.12",
|
||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
|
||||
"integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ=="
|
||||
},
|
||||
"node_modules/picomatch": {
|
||||
"version": "2.3.1",
|
||||
@ -1521,15 +1589,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/prismarine-auth": {
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/prismarine-auth/-/prismarine-auth-2.5.0.tgz",
|
||||
"integrity": "sha512-CRv/pL6d/T+4cdjWS223PXG+ygHbz40Kef04L59SLMT+axNdAQro23eZZhgiIIu6u7rlvJcZYlIY93gFNtKxXA==",
|
||||
"version": "2.7.0",
|
||||
"resolved": "https://registry.npmjs.org/prismarine-auth/-/prismarine-auth-2.7.0.tgz",
|
||||
"integrity": "sha512-L8wTF6sdtnN6hViPNy+Nx39a8iQBwR5iO92AWCiym5cSXp/92pmnuwnTdcmNDWyqq6zY4hbibVGYhgLA1Ox8sQ==",
|
||||
"dependencies": {
|
||||
"@azure/msal-node": "^2.0.2",
|
||||
"@xboxreplay/xboxlive-auth": "^3.3.3",
|
||||
"debug": "^4.3.3",
|
||||
"jose": "^4.1.4",
|
||||
"node-fetch": "^2.6.1",
|
||||
"smart-buffer": "^4.1.0",
|
||||
"uuid-1345": "^1.0.2"
|
||||
}
|
||||
@ -1544,9 +1610,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/prismarine-block": {
|
||||
"version": "1.17.1",
|
||||
"resolved": "https://registry.npmjs.org/prismarine-block/-/prismarine-block-1.17.1.tgz",
|
||||
"integrity": "sha512-r1TIn/b5v77BX4a+qd+Yv+4/vZpsC/Jp5ElYxd6++2wpCnqiuxVG7BlS2Eo14vez1M2gt3qoNEl54Hr8qox/rQ==",
|
||||
"version": "1.21.0",
|
||||
"resolved": "https://registry.npmjs.org/prismarine-block/-/prismarine-block-1.21.0.tgz",
|
||||
"integrity": "sha512-Um7zRIMHKbtpHYq+bSibc+LgFPqhHCnJgy5DeUYGG1VPLptrHjgAwvzb9bztzpzz4auziZIX+325CCWSDjIv+Q==",
|
||||
"dependencies": {
|
||||
"minecraft-data": "^3.38.0",
|
||||
"prismarine-biome": "^1.1.0",
|
||||
@ -1557,9 +1623,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/prismarine-chat": {
|
||||
"version": "1.10.1",
|
||||
"resolved": "https://registry.npmjs.org/prismarine-chat/-/prismarine-chat-1.10.1.tgz",
|
||||
"integrity": "sha512-XukYcuueuhDxzEXG7r8BZyt6jOObrPPB4JESCgb+/XenB9nExoSHF8eTQWWj8faKPLqm1dRQaYwFJlNBlJZJUw==",
|
||||
"version": "1.11.0",
|
||||
"resolved": "https://registry.npmjs.org/prismarine-chat/-/prismarine-chat-1.11.0.tgz",
|
||||
"integrity": "sha512-VJT/MWYB3qoiznUhrgvSQh76YFpzpCZpY85kJKxHLbd3UVoM0wsfs43Eg8dOltiZG92wc5/DTMLlT07TEeoa9w==",
|
||||
"dependencies": {
|
||||
"mojangson": "^2.0.1",
|
||||
"prismarine-nbt": "^2.0.0",
|
||||
@ -1567,9 +1633,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/prismarine-chunk": {
|
||||
"version": "1.35.0",
|
||||
"resolved": "https://registry.npmjs.org/prismarine-chunk/-/prismarine-chunk-1.35.0.tgz",
|
||||
"integrity": "sha512-Q1lElMUle7wWxWdQjbZo3j2/dLNG325j90IcbbMmBTnHdQSWIjWFe792XOz3RVBlvrhRJEiZk38S6/eQTQ9esw==",
|
||||
"version": "1.38.1",
|
||||
"resolved": "https://registry.npmjs.org/prismarine-chunk/-/prismarine-chunk-1.38.1.tgz",
|
||||
"integrity": "sha512-VL7BpYYzmZSKveiKNfwp/a50pPqEVy4rMdpOL6niyUsV/Nk4hRcqd2uo7GyKHlJci/mK3g7GOR8jsVX+hU07Aw==",
|
||||
"dependencies": {
|
||||
"prismarine-biome": "^1.2.0",
|
||||
"prismarine-block": "^1.14.1",
|
||||
@ -1585,9 +1651,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/prismarine-entity": {
|
||||
"version": "2.4.0",
|
||||
"resolved": "https://registry.npmjs.org/prismarine-entity/-/prismarine-entity-2.4.0.tgz",
|
||||
"integrity": "sha512-DBwjmoCX1IYAhN99KwYkk2rMArn65JHTzuuGXchr4GLWQs7UN4Pf9tELqBwNOu4r57x3RaW0+9+0sI3FvJQWzQ==",
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/prismarine-entity/-/prismarine-entity-2.5.0.tgz",
|
||||
"integrity": "sha512-nRPCawUwf9r3iKqi4I7mZRlir1Ix+DffWYdWq6p/KNnmiXve+xHE5zv8XCdhZlUmOshugHv5ONl9o6ORAkCNIA==",
|
||||
"dependencies": {
|
||||
"prismarine-chat": "^1.4.1",
|
||||
"prismarine-item": "^1.11.2",
|
||||
@ -1596,26 +1662,26 @@
|
||||
}
|
||||
},
|
||||
"node_modules/prismarine-item": {
|
||||
"version": "1.14.0",
|
||||
"resolved": "https://registry.npmjs.org/prismarine-item/-/prismarine-item-1.14.0.tgz",
|
||||
"integrity": "sha512-udQHYGJ05klFe8Kkc0TOmwoXj5Xl1ZPgHVoMbGUAFB9exN4TFxEa1A39vkSYhxP5Et9PNufQQvFBFVom0nXikA==",
|
||||
"version": "1.16.0",
|
||||
"resolved": "https://registry.npmjs.org/prismarine-item/-/prismarine-item-1.16.0.tgz",
|
||||
"integrity": "sha512-88Tz+/6HquYIsDuseae5G3IbqLeMews2L+ba2gX+p6K6soU9nuFhCfbwN56QuB7d/jZFcWrCYAPE5+UhwWh67w==",
|
||||
"dependencies": {
|
||||
"prismarine-nbt": "^2.0.0",
|
||||
"prismarine-registry": "^1.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/prismarine-nbt": {
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/prismarine-nbt/-/prismarine-nbt-2.5.0.tgz",
|
||||
"integrity": "sha512-F0/8UAa9SDDnAGrBYqZc4nG8h2zj5cE2eAJU5xlDR/IsQQ3moVxkOjE3h3nMv6SbvZrvAcgX7waA/nd9LLHYdA==",
|
||||
"version": "2.7.0",
|
||||
"resolved": "https://registry.npmjs.org/prismarine-nbt/-/prismarine-nbt-2.7.0.tgz",
|
||||
"integrity": "sha512-Du9OLQAcCj3y29YtewOJbbV4ARaSUEJiTguw0PPQbPBy83f+eCyDRkyBpnXTi/KPyEpgYCzsjGzElevLpFoYGQ==",
|
||||
"dependencies": {
|
||||
"protodef": "^1.9.0"
|
||||
"protodef": "^1.18.0"
|
||||
}
|
||||
},
|
||||
"node_modules/prismarine-physics": {
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/prismarine-physics/-/prismarine-physics-1.8.0.tgz",
|
||||
"integrity": "sha512-gbM+S+bmVtOKVv+Z0WGaHMeEeBHISIDsRDRlv8sr0dex3ZJRhuq8djA02CBreguXtI18ZKh6q3TSj2qDr45NHA==",
|
||||
"version": "1.10.0",
|
||||
"resolved": "https://registry.npmjs.org/prismarine-physics/-/prismarine-physics-1.10.0.tgz",
|
||||
"integrity": "sha512-FE2xUSDhrdgjlJFtBPMTQt1FX3uG2YvKceRvoMmhcCni0MrS8365ZlbIcW06SB1sKIpoNQWanS5LuefynzwdXQ==",
|
||||
"dependencies": {
|
||||
"minecraft-data": "^3.0.0",
|
||||
"prismarine-nbt": "^2.0.0",
|
||||
@ -1640,11 +1706,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/prismarine-registry": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/prismarine-registry/-/prismarine-registry-1.7.0.tgz",
|
||||
"integrity": "sha512-yyva0FpWI078nNeMhx8ekVza5uUTYhEv+C+ADu3wUQXiG8qhXkvrf0uzsnhTgZL8BLdsi2axgCEiKw9qSKIuxQ==",
|
||||
"version": "1.11.0",
|
||||
"resolved": "https://registry.npmjs.org/prismarine-registry/-/prismarine-registry-1.11.0.tgz",
|
||||
"integrity": "sha512-uTvWE+bILxYv4i5MrrlxPQ0KYWINv1DJ3P2570GLC8uCdByDiDLBFfVyk4BrqOZBlDBft9CnaJMeOsC1Ly1iXw==",
|
||||
"dependencies": {
|
||||
"minecraft-data": "^3.0.0",
|
||||
"minecraft-data": "^3.70.0",
|
||||
"prismarine-block": "^1.17.1",
|
||||
"prismarine-nbt": "^2.0.0"
|
||||
}
|
||||
},
|
||||
@ -1686,23 +1753,23 @@
|
||||
}
|
||||
},
|
||||
"node_modules/protodef": {
|
||||
"version": "1.15.0",
|
||||
"resolved": "https://registry.npmjs.org/protodef/-/protodef-1.15.0.tgz",
|
||||
"integrity": "sha512-bZ2Omw8dT+DACjJHLrBWZlqN4MlT9g9oSpJDdkUAJOStUzgJp+Zn42FJfPUdwutUxjaxA0PftN0PDlNa2XbneA==",
|
||||
"version": "1.18.0",
|
||||
"resolved": "https://registry.npmjs.org/protodef/-/protodef-1.18.0.tgz",
|
||||
"integrity": "sha512-jO64lkzkh0dYc0AVWCU/GzCKwqhFFIz1kfEz0NBf0RUuRNcmvgKbopabJdfZ6W8NvALdySUXgEhvKDZPhdBwrg==",
|
||||
"dependencies": {
|
||||
"lodash.get": "^4.4.2",
|
||||
"lodash.reduce": "^4.6.0",
|
||||
"protodef-validator": "^1.3.0",
|
||||
"readable-stream": "^3.0.3"
|
||||
"readable-stream": "^4.4.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
}
|
||||
},
|
||||
"node_modules/protodef-validator": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/protodef-validator/-/protodef-validator-1.3.1.tgz",
|
||||
"integrity": "sha512-lZ5FWKZYR9xOjpMw1+EfZRfCjzNRQWPq+Dk+jki47Sikl2EeWEPnTfnJERwnU/EwFq6us+0zqHHzSsmLeYX+Lg==",
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/protodef-validator/-/protodef-validator-1.4.0.tgz",
|
||||
"integrity": "sha512-2y2coBolqCEuk5Kc3QwO7ThR+/7TZiOit4FrpAgl+vFMvq8w76nDhh09z08e2NQOdrgPLsN2yzXsvRvtADgUZQ==",
|
||||
"dependencies": {
|
||||
"ajv": "^6.5.4"
|
||||
},
|
||||
@ -1710,19 +1777,6 @@
|
||||
"protodef-validator": "cli.js"
|
||||
}
|
||||
},
|
||||
"node_modules/protodef/node_modules/readable-stream": {
|
||||
"version": "3.6.2",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
|
||||
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
|
||||
"dependencies": {
|
||||
"inherits": "^2.0.3",
|
||||
"string_decoder": "^1.1.1",
|
||||
"util-deprecate": "^1.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/proxy-addr": {
|
||||
"version": "2.0.7",
|
||||
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
|
||||
@ -1808,9 +1862,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/readable-stream": {
|
||||
"version": "4.5.2",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz",
|
||||
"integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==",
|
||||
"version": "4.7.0",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz",
|
||||
"integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==",
|
||||
"dependencies": {
|
||||
"abort-controller": "^3.0.0",
|
||||
"buffer": "^6.0.3",
|
||||
@ -1843,9 +1897,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/rxjs": {
|
||||
"version": "7.8.1",
|
||||
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
|
||||
"integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
|
||||
"version": "7.8.2",
|
||||
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz",
|
||||
"integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"tslib": "^2.1.0"
|
||||
@ -1862,9 +1916,9 @@
|
||||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
||||
},
|
||||
"node_modules/semver": {
|
||||
"version": "7.6.3",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
|
||||
"integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
|
||||
"version": "7.7.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
|
||||
"integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
|
||||
"bin": {
|
||||
"semver": "bin/semver.js"
|
||||
},
|
||||
@ -1930,36 +1984,71 @@
|
||||
"node": ">= 0.8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/set-function-length": {
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
|
||||
"integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
|
||||
"dependencies": {
|
||||
"define-data-property": "^1.1.4",
|
||||
"es-errors": "^1.3.0",
|
||||
"function-bind": "^1.1.2",
|
||||
"get-intrinsic": "^1.2.4",
|
||||
"gopd": "^1.0.1",
|
||||
"has-property-descriptors": "^1.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/setprototypeof": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
|
||||
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
|
||||
},
|
||||
"node_modules/side-channel": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
|
||||
"integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
|
||||
"integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
|
||||
"dependencies": {
|
||||
"call-bind": "^1.0.7",
|
||||
"es-errors": "^1.3.0",
|
||||
"get-intrinsic": "^1.2.4",
|
||||
"object-inspect": "^1.13.1"
|
||||
"object-inspect": "^1.13.3",
|
||||
"side-channel-list": "^1.0.0",
|
||||
"side-channel-map": "^1.0.1",
|
||||
"side-channel-weakmap": "^1.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/side-channel-list": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
|
||||
"integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
|
||||
"dependencies": {
|
||||
"es-errors": "^1.3.0",
|
||||
"object-inspect": "^1.13.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/side-channel-map": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
|
||||
"integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
|
||||
"dependencies": {
|
||||
"call-bound": "^1.0.2",
|
||||
"es-errors": "^1.3.0",
|
||||
"get-intrinsic": "^1.2.5",
|
||||
"object-inspect": "^1.13.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/side-channel-weakmap": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
|
||||
"integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
|
||||
"dependencies": {
|
||||
"call-bound": "^1.0.2",
|
||||
"es-errors": "^1.3.0",
|
||||
"get-intrinsic": "^1.2.5",
|
||||
"object-inspect": "^1.13.3",
|
||||
"side-channel-map": "^1.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
@ -2026,6 +2115,38 @@
|
||||
"node": ">=10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/socket.io-parser/node_modules/debug": {
|
||||
"version": "4.3.7",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
|
||||
"integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
|
||||
"dependencies": {
|
||||
"ms": "^2.1.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"supports-color": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/socket.io/node_modules/debug": {
|
||||
"version": "4.3.7",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
|
||||
"integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
|
||||
"dependencies": {
|
||||
"ms": "^2.1.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"supports-color": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/statuses": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
|
||||
@ -2108,9 +2229,9 @@
|
||||
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
|
||||
},
|
||||
"node_modules/tslib": {
|
||||
"version": "2.7.0",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz",
|
||||
"integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==",
|
||||
"version": "2.8.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
|
||||
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/type-is": {
|
||||
@ -2142,9 +2263,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/undici-types": {
|
||||
"version": "6.19.8",
|
||||
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
|
||||
"integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw=="
|
||||
"version": "6.20.0",
|
||||
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
|
||||
"integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg=="
|
||||
},
|
||||
"node_modules/unpipe": {
|
||||
"version": "1.0.0",
|
||||
@ -2162,11 +2283,6 @@
|
||||
"punycode": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/util-deprecate": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
|
||||
},
|
||||
"node_modules/utils-merge": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
|
||||
|
@ -22,7 +22,7 @@
|
||||
"dotenv": "^16.0.1",
|
||||
"extend": "^3.0.2",
|
||||
"minecraft-data": "^3.69.0",
|
||||
"mineflayer": "^4.0.0",
|
||||
"mineflayer": "^4.27.0",
|
||||
"mineflayer-pathfinder": "^2.4.5",
|
||||
"mineflayer-web-inventory": "^1.3.0",
|
||||
"moment": "^2.29.3",
|
||||
|
@ -4,7 +4,5 @@
|
||||
module.exports = {
|
||||
sleep: (ms)=> new Promise((resolve) => setTimeout(resolve, ms)),
|
||||
nextTick: ()=> new Promise(resolve => process.nextTick(resolve)),
|
||||
getOrRun: function(value){
|
||||
return typeof(value) === 'function' ? value() : value
|
||||
},
|
||||
getOrRun: (value)=> typeof(value) === 'function' ? value() : value,
|
||||
};
|
||||
|
Reference in New Issue
Block a user