From 49a462046cc994f425c27d1de412c98aa9d00b56 Mon Sep 17 00:00:00 2001 From: "A.Beater" Date: Thu, 9 Jun 2022 20:24:02 +0200 Subject: [PATCH 01/11] Added Minecart detection --- .../client/module/modules/misc/StashLogger.kt | 79 ++++++++++++++++++- 1 file changed, 77 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt b/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt index 56ecb8ff6..960a92fcc 100644 --- a/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt +++ b/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt @@ -16,6 +16,8 @@ import com.lambda.client.commons.extension.synchronized import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.launch import net.minecraft.client.audio.PositionedSoundRecord +import net.minecraft.entity.Entity +import net.minecraft.entity.item.EntityMinecart import net.minecraft.init.SoundEvents import net.minecraft.tileentity.* import net.minecraft.util.math.BlockPos @@ -41,9 +43,10 @@ object StashLogger : Module( private val dispenserDensity by setting("Min Dispensers", 5, 1..20, 1, { logDispensers }) private val logHoppers by setting("Hoppers", true) private val hopperDensity by setting("Min Hoppers", 5, 1..20, 1, { logHoppers }) + private val logMinecarts by setting("Minecarts", value=true) + private val MinecartDensity by setting("Min Minecarts", 5, 1..20, 1, { logMinecarts }) private val disableAutoWalk by setting("Disable Auto Walk", false, description = "Disables AutoWalk when a stash is found") private val cancelBaritone by setting("Cancel Baritone", false, description = "Cancels Baritone when a stash is found") - private val chunkData = LinkedHashMap() private val knownPositions = HashSet() private val timer = TickTimer(TimeUnit.SECONDS) @@ -55,6 +58,7 @@ object StashLogger : Module( defaultScope.launch { coroutineScope { launch { + world.loadedEntityList.toList().forEach(::logEntity) world.loadedTileEntityList.toList().forEach(::logTileEntity) notification() } @@ -97,6 +101,31 @@ object StashLogger : Module( } } + + + + private fun logEntity(entity: Entity){ + if (!checkEntityType(entity)) return + if (!knownPositions.add(entity.position)) return + + val chunk = ChunkPos.asLong(entity.position.x shr 4, entity.position.z shr 4) + val chunkStats = chunkData.getOrPut(chunk, ::ChunkStats) + chunkStats.add(entity) + + + + } + + private fun checkEntityType(entity: Entity) = + logMinecarts && entity is EntityMinecart + + + + + + + + private fun logTileEntity(tileEntity: TileEntity) { if (!checkTileEntityType(tileEntity)) return if (!knownPositions.add(tileEntity.pos)) return @@ -107,6 +136,8 @@ object StashLogger : Module( chunkStats.add(tileEntity) } + + private fun checkTileEntityType(tileEntity: TileEntity) = logChests && tileEntity is TileEntityChest || logShulkers && tileEntity is TileEntityShulkerBox @@ -114,16 +145,46 @@ object StashLogger : Module( || logDispensers && tileEntity is TileEntityDispenser || logHoppers && tileEntity is TileEntityHopper + + + + + + + + private class ChunkStats { var chests = 0; private set var shulkers = 0; private set var droppers = 0; private set var dispensers = 0; private set var hoppers = 0; private set + var minecarts = 0; private set var hot = false private val tileEntities = ArrayList().synchronized() + private val entities = ArrayList().synchronized() + + + + fun add(entity: Entity) { + when (entity) { + is EntityMinecart -> minecarts++ + else -> return + } + + + entities.add(entity) + + if (minecarts >= MinecartDensity) { + hot = true + + + } + } + + fun add(tileEntity: TileEntity) { when (tileEntity) { @@ -132,6 +193,7 @@ object StashLogger : Module( is TileEntityDropper -> droppers++ is TileEntityDispenser -> dispensers++ is TileEntityHopper -> hoppers++ + else -> return } @@ -146,11 +208,22 @@ object StashLogger : Module( } } + + + fun center(): BlockPos { var x = 0.0 var y = 0.0 var z = 0.0 - val size = tileEntities.size + val size = tileEntities.size.also{entities.size} + //val size = entities.size + + for (entity in entities){ + x += entity.position.x + y += entity.position.y + z += entity.position.z + + } for (tileEntity in tileEntities) { x += tileEntity.pos.x @@ -158,6 +231,7 @@ object StashLogger : Module( z += tileEntity.pos.z } + x /= size y /= size z /= size @@ -172,6 +246,7 @@ object StashLogger : Module( if (droppers > 0 && logDroppers) statList.add("$droppers dropper${if (droppers == 1) "" else "s"}") if (dispensers > 0 && logDispensers) statList.add("$dispensers dispenser${if (dispensers == 1) "" else "s"}") if (hoppers > 0 && logHoppers) statList.add("$hoppers hopper${if (hoppers == 1) "" else "s"}") + if (minecarts > 0 && logMinecarts) statList.add("$minecarts minecart${if (minecarts == 1) "" else "s"}") return statList.joinToString() } } From 66a6d806ca1b28b18bf4205aff67ccc190f9b351 Mon Sep 17 00:00:00 2001 From: "A.Beater" Date: Thu, 9 Jun 2022 22:43:08 +0200 Subject: [PATCH 02/11] Minecarts --- .../client/module/modules/misc/StashLogger.kt | 79 ++++++++++++++++++- 1 file changed, 77 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt b/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt index 56ecb8ff6..960a92fcc 100644 --- a/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt +++ b/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt @@ -16,6 +16,8 @@ import com.lambda.client.commons.extension.synchronized import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.launch import net.minecraft.client.audio.PositionedSoundRecord +import net.minecraft.entity.Entity +import net.minecraft.entity.item.EntityMinecart import net.minecraft.init.SoundEvents import net.minecraft.tileentity.* import net.minecraft.util.math.BlockPos @@ -41,9 +43,10 @@ object StashLogger : Module( private val dispenserDensity by setting("Min Dispensers", 5, 1..20, 1, { logDispensers }) private val logHoppers by setting("Hoppers", true) private val hopperDensity by setting("Min Hoppers", 5, 1..20, 1, { logHoppers }) + private val logMinecarts by setting("Minecarts", value=true) + private val MinecartDensity by setting("Min Minecarts", 5, 1..20, 1, { logMinecarts }) private val disableAutoWalk by setting("Disable Auto Walk", false, description = "Disables AutoWalk when a stash is found") private val cancelBaritone by setting("Cancel Baritone", false, description = "Cancels Baritone when a stash is found") - private val chunkData = LinkedHashMap() private val knownPositions = HashSet() private val timer = TickTimer(TimeUnit.SECONDS) @@ -55,6 +58,7 @@ object StashLogger : Module( defaultScope.launch { coroutineScope { launch { + world.loadedEntityList.toList().forEach(::logEntity) world.loadedTileEntityList.toList().forEach(::logTileEntity) notification() } @@ -97,6 +101,31 @@ object StashLogger : Module( } } + + + + private fun logEntity(entity: Entity){ + if (!checkEntityType(entity)) return + if (!knownPositions.add(entity.position)) return + + val chunk = ChunkPos.asLong(entity.position.x shr 4, entity.position.z shr 4) + val chunkStats = chunkData.getOrPut(chunk, ::ChunkStats) + chunkStats.add(entity) + + + + } + + private fun checkEntityType(entity: Entity) = + logMinecarts && entity is EntityMinecart + + + + + + + + private fun logTileEntity(tileEntity: TileEntity) { if (!checkTileEntityType(tileEntity)) return if (!knownPositions.add(tileEntity.pos)) return @@ -107,6 +136,8 @@ object StashLogger : Module( chunkStats.add(tileEntity) } + + private fun checkTileEntityType(tileEntity: TileEntity) = logChests && tileEntity is TileEntityChest || logShulkers && tileEntity is TileEntityShulkerBox @@ -114,16 +145,46 @@ object StashLogger : Module( || logDispensers && tileEntity is TileEntityDispenser || logHoppers && tileEntity is TileEntityHopper + + + + + + + + private class ChunkStats { var chests = 0; private set var shulkers = 0; private set var droppers = 0; private set var dispensers = 0; private set var hoppers = 0; private set + var minecarts = 0; private set var hot = false private val tileEntities = ArrayList().synchronized() + private val entities = ArrayList().synchronized() + + + + fun add(entity: Entity) { + when (entity) { + is EntityMinecart -> minecarts++ + else -> return + } + + + entities.add(entity) + + if (minecarts >= MinecartDensity) { + hot = true + + + } + } + + fun add(tileEntity: TileEntity) { when (tileEntity) { @@ -132,6 +193,7 @@ object StashLogger : Module( is TileEntityDropper -> droppers++ is TileEntityDispenser -> dispensers++ is TileEntityHopper -> hoppers++ + else -> return } @@ -146,11 +208,22 @@ object StashLogger : Module( } } + + + fun center(): BlockPos { var x = 0.0 var y = 0.0 var z = 0.0 - val size = tileEntities.size + val size = tileEntities.size.also{entities.size} + //val size = entities.size + + for (entity in entities){ + x += entity.position.x + y += entity.position.y + z += entity.position.z + + } for (tileEntity in tileEntities) { x += tileEntity.pos.x @@ -158,6 +231,7 @@ object StashLogger : Module( z += tileEntity.pos.z } + x /= size y /= size z /= size @@ -172,6 +246,7 @@ object StashLogger : Module( if (droppers > 0 && logDroppers) statList.add("$droppers dropper${if (droppers == 1) "" else "s"}") if (dispensers > 0 && logDispensers) statList.add("$dispensers dispenser${if (dispensers == 1) "" else "s"}") if (hoppers > 0 && logHoppers) statList.add("$hoppers hopper${if (hoppers == 1) "" else "s"}") + if (minecarts > 0 && logMinecarts) statList.add("$minecarts minecart${if (minecarts == 1) "" else "s"}") return statList.joinToString() } } From 4b81dc30abdef938e2943e858584acc241849f8e Mon Sep 17 00:00:00 2001 From: "A.Beater" Date: Fri, 10 Jun 2022 12:58:09 +0200 Subject: [PATCH 03/11] Minecarts --- .../client/module/modules/misc/StashLogger.kt | 31 +++++++++++++------ 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt b/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt index 960a92fcc..bddffc7f0 100644 --- a/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt +++ b/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt @@ -17,7 +17,8 @@ import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.launch import net.minecraft.client.audio.PositionedSoundRecord import net.minecraft.entity.Entity -import net.minecraft.entity.item.EntityMinecart +import net.minecraft.entity.item.EntityMinecartChest +import net.minecraft.entity.item.EntityMinecartHopper import net.minecraft.init.SoundEvents import net.minecraft.tileentity.* import net.minecraft.util.math.BlockPos @@ -43,8 +44,12 @@ object StashLogger : Module( private val dispenserDensity by setting("Min Dispensers", 5, 1..20, 1, { logDispensers }) private val logHoppers by setting("Hoppers", true) private val hopperDensity by setting("Min Hoppers", 5, 1..20, 1, { logHoppers }) - private val logMinecarts by setting("Minecarts", value=true) - private val MinecartDensity by setting("Min Minecarts", 5, 1..20, 1, { logMinecarts }) + private val logMinecartChests by setting("MinecartChests", value=true) + private val MinecartChestDensity by setting("Min MinecartChests", 5, 1..20, 1, { logMinecartChests }) + + private val logMinecartHoppers by setting("MinecartHoppers", value=true) + private val MinecartHopperDensity by setting("Min MinecartHoppers", 5, 1..20, 1, { logMinecartHoppers }) + private val disableAutoWalk by setting("Disable Auto Walk", false, description = "Disables AutoWalk when a stash is found") private val cancelBaritone by setting("Cancel Baritone", false, description = "Cancels Baritone when a stash is found") private val chunkData = LinkedHashMap() @@ -117,7 +122,8 @@ object StashLogger : Module( } private fun checkEntityType(entity: Entity) = - logMinecarts && entity is EntityMinecart + logMinecartChests && entity is EntityMinecartChest + || logMinecartHoppers && entity is EntityMinecartHopper @@ -159,7 +165,8 @@ object StashLogger : Module( var droppers = 0; private set var dispensers = 0; private set var hoppers = 0; private set - var minecarts = 0; private set + var minecartChest = 0; private set + var minecartHopper = 0; private set var hot = false @@ -170,14 +177,16 @@ object StashLogger : Module( fun add(entity: Entity) { when (entity) { - is EntityMinecart -> minecarts++ + is EntityMinecartChest -> minecartChest++ + is EntityMinecartHopper -> minecartHopper++ else -> return } entities.add(entity) - if (minecarts >= MinecartDensity) { + if (minecartChest >= MinecartChestDensity + || minecartHopper >= MinecartHopperDensity) { hot = true @@ -215,9 +224,11 @@ object StashLogger : Module( var x = 0.0 var y = 0.0 var z = 0.0 - val size = tileEntities.size.also{entities.size} + val size = tileEntities.size.or(entities.size) //val size = entities.size + + for (entity in entities){ x += entity.position.x y += entity.position.y @@ -246,7 +257,9 @@ object StashLogger : Module( if (droppers > 0 && logDroppers) statList.add("$droppers dropper${if (droppers == 1) "" else "s"}") if (dispensers > 0 && logDispensers) statList.add("$dispensers dispenser${if (dispensers == 1) "" else "s"}") if (hoppers > 0 && logHoppers) statList.add("$hoppers hopper${if (hoppers == 1) "" else "s"}") - if (minecarts > 0 && logMinecarts) statList.add("$minecarts minecart${if (minecarts == 1) "" else "s"}") + if (minecartChest > 0 && logMinecartChests) statList.add("$minecartChest minecartchest${if (minecartChest == 1) "" else "s"}") + if (minecartHopper > 0 && logMinecartHoppers) statList.add("$minecartHopper minecartHopper${if (minecartHopper == 1) "" else "s"}") + return statList.joinToString() } } From 52c1b47b406a5d63542251611bfec7207a75865a Mon Sep 17 00:00:00 2001 From: "A.Beater" Date: Fri, 10 Jun 2022 13:03:23 +0200 Subject: [PATCH 04/11] Minecarts --- .../client/module/modules/misc/StashLogger.kt | 92 ++++++++++++++++++- 1 file changed, 90 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt b/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt index 56ecb8ff6..bddffc7f0 100644 --- a/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt +++ b/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt @@ -16,6 +16,9 @@ import com.lambda.client.commons.extension.synchronized import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.launch import net.minecraft.client.audio.PositionedSoundRecord +import net.minecraft.entity.Entity +import net.minecraft.entity.item.EntityMinecartChest +import net.minecraft.entity.item.EntityMinecartHopper import net.minecraft.init.SoundEvents import net.minecraft.tileentity.* import net.minecraft.util.math.BlockPos @@ -41,9 +44,14 @@ object StashLogger : Module( private val dispenserDensity by setting("Min Dispensers", 5, 1..20, 1, { logDispensers }) private val logHoppers by setting("Hoppers", true) private val hopperDensity by setting("Min Hoppers", 5, 1..20, 1, { logHoppers }) + private val logMinecartChests by setting("MinecartChests", value=true) + private val MinecartChestDensity by setting("Min MinecartChests", 5, 1..20, 1, { logMinecartChests }) + + private val logMinecartHoppers by setting("MinecartHoppers", value=true) + private val MinecartHopperDensity by setting("Min MinecartHoppers", 5, 1..20, 1, { logMinecartHoppers }) + private val disableAutoWalk by setting("Disable Auto Walk", false, description = "Disables AutoWalk when a stash is found") private val cancelBaritone by setting("Cancel Baritone", false, description = "Cancels Baritone when a stash is found") - private val chunkData = LinkedHashMap() private val knownPositions = HashSet() private val timer = TickTimer(TimeUnit.SECONDS) @@ -55,6 +63,7 @@ object StashLogger : Module( defaultScope.launch { coroutineScope { launch { + world.loadedEntityList.toList().forEach(::logEntity) world.loadedTileEntityList.toList().forEach(::logTileEntity) notification() } @@ -97,6 +106,32 @@ object StashLogger : Module( } } + + + + private fun logEntity(entity: Entity){ + if (!checkEntityType(entity)) return + if (!knownPositions.add(entity.position)) return + + val chunk = ChunkPos.asLong(entity.position.x shr 4, entity.position.z shr 4) + val chunkStats = chunkData.getOrPut(chunk, ::ChunkStats) + chunkStats.add(entity) + + + + } + + private fun checkEntityType(entity: Entity) = + logMinecartChests && entity is EntityMinecartChest + || logMinecartHoppers && entity is EntityMinecartHopper + + + + + + + + private fun logTileEntity(tileEntity: TileEntity) { if (!checkTileEntityType(tileEntity)) return if (!knownPositions.add(tileEntity.pos)) return @@ -107,6 +142,8 @@ object StashLogger : Module( chunkStats.add(tileEntity) } + + private fun checkTileEntityType(tileEntity: TileEntity) = logChests && tileEntity is TileEntityChest || logShulkers && tileEntity is TileEntityShulkerBox @@ -114,16 +151,49 @@ object StashLogger : Module( || logDispensers && tileEntity is TileEntityDispenser || logHoppers && tileEntity is TileEntityHopper + + + + + + + + private class ChunkStats { var chests = 0; private set var shulkers = 0; private set var droppers = 0; private set var dispensers = 0; private set var hoppers = 0; private set + var minecartChest = 0; private set + var minecartHopper = 0; private set var hot = false private val tileEntities = ArrayList().synchronized() + private val entities = ArrayList().synchronized() + + + + fun add(entity: Entity) { + when (entity) { + is EntityMinecartChest -> minecartChest++ + is EntityMinecartHopper -> minecartHopper++ + else -> return + } + + + entities.add(entity) + + if (minecartChest >= MinecartChestDensity + || minecartHopper >= MinecartHopperDensity) { + hot = true + + + } + } + + fun add(tileEntity: TileEntity) { when (tileEntity) { @@ -132,6 +202,7 @@ object StashLogger : Module( is TileEntityDropper -> droppers++ is TileEntityDispenser -> dispensers++ is TileEntityHopper -> hoppers++ + else -> return } @@ -146,11 +217,24 @@ object StashLogger : Module( } } + + + fun center(): BlockPos { var x = 0.0 var y = 0.0 var z = 0.0 - val size = tileEntities.size + val size = tileEntities.size.or(entities.size) + //val size = entities.size + + + + for (entity in entities){ + x += entity.position.x + y += entity.position.y + z += entity.position.z + + } for (tileEntity in tileEntities) { x += tileEntity.pos.x @@ -158,6 +242,7 @@ object StashLogger : Module( z += tileEntity.pos.z } + x /= size y /= size z /= size @@ -172,6 +257,9 @@ object StashLogger : Module( if (droppers > 0 && logDroppers) statList.add("$droppers dropper${if (droppers == 1) "" else "s"}") if (dispensers > 0 && logDispensers) statList.add("$dispensers dispenser${if (dispensers == 1) "" else "s"}") if (hoppers > 0 && logHoppers) statList.add("$hoppers hopper${if (hoppers == 1) "" else "s"}") + if (minecartChest > 0 && logMinecartChests) statList.add("$minecartChest minecartchest${if (minecartChest == 1) "" else "s"}") + if (minecartHopper > 0 && logMinecartHoppers) statList.add("$minecartHopper minecartHopper${if (minecartHopper == 1) "" else "s"}") + return statList.joinToString() } } From 74076543bea01752201c13ebb0c45c47a4b0f92a Mon Sep 17 00:00:00 2001 From: "A.Beater" Date: Fri, 10 Jun 2022 13:05:33 +0200 Subject: [PATCH 05/11] Added Minecartchest and MinecartHopper detaction only. Fixed coords. --- .../kotlin/com/lambda/client/module/modules/misc/StashLogger.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt b/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt index bddffc7f0..986ba6f51 100644 --- a/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt +++ b/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt @@ -46,12 +46,12 @@ object StashLogger : Module( private val hopperDensity by setting("Min Hoppers", 5, 1..20, 1, { logHoppers }) private val logMinecartChests by setting("MinecartChests", value=true) private val MinecartChestDensity by setting("Min MinecartChests", 5, 1..20, 1, { logMinecartChests }) - private val logMinecartHoppers by setting("MinecartHoppers", value=true) private val MinecartHopperDensity by setting("Min MinecartHoppers", 5, 1..20, 1, { logMinecartHoppers }) private val disableAutoWalk by setting("Disable Auto Walk", false, description = "Disables AutoWalk when a stash is found") private val cancelBaritone by setting("Cancel Baritone", false, description = "Cancels Baritone when a stash is found") + private val chunkData = LinkedHashMap() private val knownPositions = HashSet() private val timer = TickTimer(TimeUnit.SECONDS) From 7a7f347c8c6649d3dffb64d0ab79bad3bc71a5ac Mon Sep 17 00:00:00 2001 From: "A.Beater" Date: Fri, 10 Jun 2022 13:07:54 +0200 Subject: [PATCH 06/11] Added MinecartChest and MinecartHopper detection only. Fixed coords. removed comment. --- .../kotlin/com/lambda/client/module/modules/misc/StashLogger.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt b/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt index 986ba6f51..0ac7cbdd0 100644 --- a/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt +++ b/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt @@ -225,7 +225,6 @@ object StashLogger : Module( var y = 0.0 var z = 0.0 val size = tileEntities.size.or(entities.size) - //val size = entities.size From 6c9a16b15e94c99772017b4555f580def114b38e Mon Sep 17 00:00:00 2001 From: "A.Beater" Date: Fri, 10 Jun 2022 14:39:04 +0200 Subject: [PATCH 07/11] Changed some variables to fit better with the pre-existing ones. --- .../client/module/modules/misc/StashLogger.kt | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt b/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt index 0ac7cbdd0..f5299236e 100644 --- a/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt +++ b/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt @@ -44,10 +44,10 @@ object StashLogger : Module( private val dispenserDensity by setting("Min Dispensers", 5, 1..20, 1, { logDispensers }) private val logHoppers by setting("Hoppers", true) private val hopperDensity by setting("Min Hoppers", 5, 1..20, 1, { logHoppers }) - private val logMinecartChests by setting("MinecartChests", value=true) - private val MinecartChestDensity by setting("Min MinecartChests", 5, 1..20, 1, { logMinecartChests }) - private val logMinecartHoppers by setting("MinecartHoppers", value=true) - private val MinecartHopperDensity by setting("Min MinecartHoppers", 5, 1..20, 1, { logMinecartHoppers }) + private val logMinecartChests by setting("MinecartChests", true) + private val minecartChestDensity by setting("Min MinecartChests", 5, 1..20, 1, { logMinecartChests }) + private val logMinecartHoppers by setting("MinecartHoppers", true) + private val minecartHopperDensity by setting("Min MinecartHoppers", 5, 1..20, 1, { logMinecartHoppers }) private val disableAutoWalk by setting("Disable Auto Walk", false, description = "Disables AutoWalk when a stash is found") private val cancelBaritone by setting("Cancel Baritone", false, description = "Cancels Baritone when a stash is found") @@ -165,8 +165,8 @@ object StashLogger : Module( var droppers = 0; private set var dispensers = 0; private set var hoppers = 0; private set - var minecartChest = 0; private set - var minecartHopper = 0; private set + var minecartChests = 0; private set + var minecartHoppers = 0; private set var hot = false @@ -177,16 +177,16 @@ object StashLogger : Module( fun add(entity: Entity) { when (entity) { - is EntityMinecartChest -> minecartChest++ - is EntityMinecartHopper -> minecartHopper++ + is EntityMinecartChest -> minecartChests++ + is EntityMinecartHopper -> minecartHoppers++ else -> return } entities.add(entity) - if (minecartChest >= MinecartChestDensity - || minecartHopper >= MinecartHopperDensity) { + if (minecartChests >= minecartChestDensity + || minecartHoppers >= minecartHopperDensity) { hot = true @@ -256,8 +256,8 @@ object StashLogger : Module( if (droppers > 0 && logDroppers) statList.add("$droppers dropper${if (droppers == 1) "" else "s"}") if (dispensers > 0 && logDispensers) statList.add("$dispensers dispenser${if (dispensers == 1) "" else "s"}") if (hoppers > 0 && logHoppers) statList.add("$hoppers hopper${if (hoppers == 1) "" else "s"}") - if (minecartChest > 0 && logMinecartChests) statList.add("$minecartChest minecartchest${if (minecartChest == 1) "" else "s"}") - if (minecartHopper > 0 && logMinecartHoppers) statList.add("$minecartHopper minecartHopper${if (minecartHopper == 1) "" else "s"}") + if (minecartChests > 0 && logMinecartChests) statList.add("$minecartChests minecartchest${if (minecartChests == 1) "" else "s"}") + if (minecartHoppers > 0 && logMinecartHoppers) statList.add("$minecartHoppers minecartHopper${if (minecartHoppers == 1) "" else "s"}") return statList.joinToString() } From a44f96a1f2a7c4f5d7eedd18a85f865e7300243c Mon Sep 17 00:00:00 2001 From: "A.Beater" Date: Sat, 11 Jun 2022 16:44:19 +0200 Subject: [PATCH 08/11] Changed some variables to fit better with the pre-existing ones. --- .../client/module/modules/misc/StashLogger.kt | 40 +++++++++++++++++-- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt b/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt index f5299236e..730c7619e 100644 --- a/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt +++ b/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt @@ -55,6 +55,8 @@ object StashLogger : Module( private val chunkData = LinkedHashMap() private val knownPositions = HashSet() private val timer = TickTimer(TimeUnit.SECONDS) + //val entities2 = ArrayList() + val entities3 = ArrayList() init { safeListener { @@ -63,6 +65,8 @@ object StashLogger : Module( defaultScope.launch { coroutineScope { launch { + + world.loadedEntityList.toList().forEach(::logEntity) world.loadedTileEntityList.toList().forEach(::logTileEntity) notification() @@ -104,23 +108,48 @@ object StashLogger : Module( if (disableAutoWalk && AutoWalk.isEnabled) AutoWalk.disable() if (cancelBaritone && (BaritoneUtils.isPathing || BaritoneUtils.isActive)) BaritoneUtils.cancelEverything() } + } private fun logEntity(entity: Entity){ + if (!checkEntityType(entity)) return - if (!knownPositions.add(entity.position)) return - val chunk = ChunkPos.asLong(entity.position.x shr 4, entity.position.z shr 4) + if (!checkEntityID(entity)) return + + + //knownPositions.add(entity.position + + + val chunk = ChunkPos.asLong(entity.position.x shr 4 , entity.position.z shr 4) val chunkStats = chunkData.getOrPut(chunk, ::ChunkStats) - chunkStats.add(entity) + chunkStats.add2(entity) } + private fun checkEntityID(entity: Entity): Boolean{ + + for((count) in entities3.withIndex()){ + + if(entity.uniqueID == entities3[count].uniqueID) { + return false + } + + } + + entities3.add(entity) + return true + + + } + + + private fun checkEntityType(entity: Entity) = logMinecartChests && entity is EntityMinecartChest || logMinecartHoppers && entity is EntityMinecartHopper @@ -170,12 +199,14 @@ object StashLogger : Module( var hot = false + + // private var entities2 = ArrayList() private val tileEntities = ArrayList().synchronized() private val entities = ArrayList().synchronized() - fun add(entity: Entity) { + fun add2(entity: Entity) { when (entity) { is EntityMinecartChest -> minecartChests++ is EntityMinecartHopper -> minecartHoppers++ @@ -259,6 +290,7 @@ object StashLogger : Module( if (minecartChests > 0 && logMinecartChests) statList.add("$minecartChests minecartchest${if (minecartChests == 1) "" else "s"}") if (minecartHoppers > 0 && logMinecartHoppers) statList.add("$minecartHoppers minecartHopper${if (minecartHoppers == 1) "" else "s"}") + return statList.joinToString() } } From 7b60e4b53494722bff03311e2759fd6faca024bb Mon Sep 17 00:00:00 2001 From: "A.Beater" Date: Sat, 11 Jun 2022 16:51:44 +0200 Subject: [PATCH 09/11] Changed the way it detected doubles(location -> UUID) to prevent it from not detecting merged Minecarts. --- .../com/lambda/client/module/modules/misc/StashLogger.kt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt b/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt index 730c7619e..ae648a368 100644 --- a/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt +++ b/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt @@ -55,8 +55,7 @@ object StashLogger : Module( private val chunkData = LinkedHashMap() private val knownPositions = HashSet() private val timer = TickTimer(TimeUnit.SECONDS) - //val entities2 = ArrayList() - val entities3 = ArrayList() + private val entitiesRepeatCheck = ArrayList() init { safeListener { @@ -134,15 +133,15 @@ object StashLogger : Module( private fun checkEntityID(entity: Entity): Boolean{ - for((count) in entities3.withIndex()){ + for((count) in entitiesRepeatCheck.withIndex()){ - if(entity.uniqueID == entities3[count].uniqueID) { + if(entity.uniqueID == entitiesRepeatCheck[count].uniqueID) { return false } } - entities3.add(entity) + entitiesRepeatCheck.add(entity) return true From 471756f5a70571b9ce46b05249255e4b03e5d131 Mon Sep 17 00:00:00 2001 From: "A.Beater" Date: Sat, 11 Jun 2022 16:53:33 +0200 Subject: [PATCH 10/11] Removed empty lines. --- .../lambda/client/module/modules/misc/StashLogger.kt | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt b/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt index ae648a368..fe5943d71 100644 --- a/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt +++ b/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt @@ -119,10 +119,6 @@ object StashLogger : Module( if (!checkEntityID(entity)) return - - //knownPositions.add(entity.position - - val chunk = ChunkPos.asLong(entity.position.x shr 4 , entity.position.z shr 4) val chunkStats = chunkData.getOrPut(chunk, ::ChunkStats) chunkStats.add2(entity) @@ -138,13 +134,9 @@ object StashLogger : Module( if(entity.uniqueID == entitiesRepeatCheck[count].uniqueID) { return false } - } - entitiesRepeatCheck.add(entity) return true - - } @@ -157,9 +149,6 @@ object StashLogger : Module( - - - private fun logTileEntity(tileEntity: TileEntity) { if (!checkTileEntityType(tileEntity)) return if (!knownPositions.add(tileEntity.pos)) return From dd0f07430e8763d167a656b66d88f00f1afccaf1 Mon Sep 17 00:00:00 2001 From: Constructor Date: Mon, 13 Jun 2022 19:47:04 +0200 Subject: [PATCH 11/11] Big cleanup. Please read about code style! --- .../client/module/modules/misc/StashLogger.kt | 97 ++++--------------- 1 file changed, 21 insertions(+), 76 deletions(-) diff --git a/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt b/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt index fe5943d71..cefd60fd3 100644 --- a/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt +++ b/src/main/kotlin/com/lambda/client/module/modules/misc/StashLogger.kt @@ -1,5 +1,6 @@ package com.lambda.client.module.modules.misc +import com.lambda.client.commons.extension.synchronized import com.lambda.client.manager.managers.WaypointManager import com.lambda.client.module.Category import com.lambda.client.module.Module @@ -12,12 +13,12 @@ import com.lambda.client.util.text.MessageSendHelper import com.lambda.client.util.threads.defaultScope import com.lambda.client.util.threads.onMainThread import com.lambda.client.util.threads.safeListener -import com.lambda.client.commons.extension.synchronized import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.launch import net.minecraft.client.audio.PositionedSoundRecord import net.minecraft.entity.Entity import net.minecraft.entity.item.EntityMinecartChest +import net.minecraft.entity.item.EntityMinecartContainer import net.minecraft.entity.item.EntityMinecartHopper import net.minecraft.init.SoundEvents import net.minecraft.tileentity.* @@ -44,18 +45,18 @@ object StashLogger : Module( private val dispenserDensity by setting("Min Dispensers", 5, 1..20, 1, { logDispensers }) private val logHoppers by setting("Hoppers", true) private val hopperDensity by setting("Min Hoppers", 5, 1..20, 1, { logHoppers }) - private val logMinecartChests by setting("MinecartChests", true) - private val minecartChestDensity by setting("Min MinecartChests", 5, 1..20, 1, { logMinecartChests }) - private val logMinecartHoppers by setting("MinecartHoppers", true) - private val minecartHopperDensity by setting("Min MinecartHoppers", 5, 1..20, 1, { logMinecartHoppers }) + private val logMinecartChests by setting("Minecart Chests", true) + private val minecartChestDensity by setting("Min Minecart Chests", 5, 1..20, 1, { logMinecartChests }) + private val logMinecartHoppers by setting("Minecart Hoppers", true) + private val minecartHopperDensity by setting("Min Minecart Hoppers", 5, 1..20, 1, { logMinecartHoppers }) private val disableAutoWalk by setting("Disable Auto Walk", false, description = "Disables AutoWalk when a stash is found") private val cancelBaritone by setting("Cancel Baritone", false, description = "Cancels Baritone when a stash is found") private val chunkData = LinkedHashMap() private val knownPositions = HashSet() + private val knownEntityMinecartContainers = HashSet() private val timer = TickTimer(TimeUnit.SECONDS) - private val entitiesRepeatCheck = ArrayList() init { safeListener { @@ -64,9 +65,7 @@ object StashLogger : Module( defaultScope.launch { coroutineScope { launch { - - - world.loadedEntityList.toList().forEach(::logEntity) + world.loadedEntityList.toList().filterIsInstance().forEach(::logEntityMinecartContainer) world.loadedTileEntityList.toList().forEach(::logTileEntity) notification() } @@ -107,48 +106,21 @@ object StashLogger : Module( if (disableAutoWalk && AutoWalk.isEnabled) AutoWalk.disable() if (cancelBaritone && (BaritoneUtils.isPathing || BaritoneUtils.isActive)) BaritoneUtils.cancelEverything() } - } - - - - private fun logEntity(entity: Entity){ - + private fun logEntityMinecartContainer(entity: EntityMinecartContainer) { if (!checkEntityType(entity)) return + if (!knownEntityMinecartContainers.add(entity)) return - if (!checkEntityID(entity)) return - - val chunk = ChunkPos.asLong(entity.position.x shr 4 , entity.position.z shr 4) + val chunk = ChunkPos.asLong(entity.position.x shr 4, entity.position.z shr 4) val chunkStats = chunkData.getOrPut(chunk, ::ChunkStats) - chunkStats.add2(entity) - - - + chunkStats.addEntity(entity) } - private fun checkEntityID(entity: Entity): Boolean{ - - for((count) in entitiesRepeatCheck.withIndex()){ - - if(entity.uniqueID == entitiesRepeatCheck[count].uniqueID) { - return false - } - } - entitiesRepeatCheck.add(entity) - return true - } - - - private fun checkEntityType(entity: Entity) = logMinecartChests && entity is EntityMinecartChest || logMinecartHoppers && entity is EntityMinecartHopper - - - - private fun logTileEntity(tileEntity: TileEntity) { if (!checkTileEntityType(tileEntity)) return if (!knownPositions.add(tileEntity.pos)) return @@ -156,11 +128,9 @@ object StashLogger : Module( val chunk = ChunkPos.asLong(tileEntity.pos.x shr 4, tileEntity.pos.z shr 4) val chunkStats = chunkData.getOrPut(chunk, ::ChunkStats) - chunkStats.add(tileEntity) + chunkStats.addTileEntity(tileEntity) } - - private fun checkTileEntityType(tileEntity: TileEntity) = logChests && tileEntity is TileEntityChest || logShulkers && tileEntity is TileEntityShulkerBox @@ -168,14 +138,6 @@ object StashLogger : Module( || logDispensers && tileEntity is TileEntityDispenser || logHoppers && tileEntity is TileEntityHopper - - - - - - - - private class ChunkStats { var chests = 0; private set var shulkers = 0; private set @@ -187,34 +149,25 @@ object StashLogger : Module( var hot = false - - // private var entities2 = ArrayList() private val tileEntities = ArrayList().synchronized() - private val entities = ArrayList().synchronized() + private val entityMinecartContainers = ArrayList().synchronized() - - - fun add2(entity: Entity) { + fun addEntity(entity: EntityMinecartContainer) { when (entity) { is EntityMinecartChest -> minecartChests++ is EntityMinecartHopper -> minecartHoppers++ else -> return } - - entities.add(entity) + entityMinecartContainers.add(entity) if (minecartChests >= minecartChestDensity || minecartHoppers >= minecartHopperDensity) { hot = true - - } } - - - fun add(tileEntity: TileEntity) { + fun addTileEntity(tileEntity: TileEntity) { when (tileEntity) { is TileEntityChest -> chests++ is TileEntityShulkerBox -> shulkers++ @@ -236,22 +189,16 @@ object StashLogger : Module( } } - - - fun center(): BlockPos { var x = 0.0 var y = 0.0 var z = 0.0 - val size = tileEntities.size.or(entities.size) - - + val size = tileEntities.size.or(entityMinecartContainers.size) - for (entity in entities){ + for (entity in entityMinecartContainers) { x += entity.position.x y += entity.position.y z += entity.position.z - } for (tileEntity in tileEntities) { @@ -260,7 +207,6 @@ object StashLogger : Module( z += tileEntity.pos.z } - x /= size y /= size z /= size @@ -275,9 +221,8 @@ object StashLogger : Module( if (droppers > 0 && logDroppers) statList.add("$droppers dropper${if (droppers == 1) "" else "s"}") if (dispensers > 0 && logDispensers) statList.add("$dispensers dispenser${if (dispensers == 1) "" else "s"}") if (hoppers > 0 && logHoppers) statList.add("$hoppers hopper${if (hoppers == 1) "" else "s"}") - if (minecartChests > 0 && logMinecartChests) statList.add("$minecartChests minecartchest${if (minecartChests == 1) "" else "s"}") - if (minecartHoppers > 0 && logMinecartHoppers) statList.add("$minecartHoppers minecartHopper${if (minecartHoppers == 1) "" else "s"}") - + if (minecartChests > 0 && logMinecartChests) statList.add("$minecartChests minecart chest${if (minecartChests == 1) "" else "s"}") + if (minecartHoppers > 0 && logMinecartHoppers) statList.add("$minecartHoppers minecart hopper${if (minecartHoppers == 1) "" else "s"}") return statList.joinToString() }