Get bot tool automatically

This commit is contained in:
ThisTestUser
2024-09-21 21:32:19 -04:00
parent 56b9416d0c
commit 6fb4ed3036
2 changed files with 14 additions and 49 deletions

View File

@@ -1020,18 +1020,21 @@ public class LegacyAgent extends Agent {
}
private void preBreak(Terminator bot, LivingEntity player, Block block, LegacyLevel level) {
Material item;
Material type = block.getType();
List<Material> materials = List.of(LegacyItems.PICKAXE, LegacyItems.AXE, LegacyItems.SHOVEL);
ItemStack optimal = new ItemStack(Material.AIR);
float optimalSpeed = 1;
if (LegacyMats.SHOVEL.contains(type)) {
item = LegacyItems.SHOVEL;
} else if (LegacyMats.AXE.contains(type)) {
item = LegacyItems.AXE;
} else {
item = LegacyItems.PICKAXE;
for (Material mat : materials) {
ItemStack tool = new ItemStack(mat);
float destroySpeed = block.getDestroySpeed(tool);
if (destroySpeed > optimalSpeed) {
optimal = tool;
optimalSpeed = destroySpeed;
}
}
bot.setItem(new ItemStack(item));
bot.setItem(optimal);
if (level.isSideDown() || level.isSideDown2()) {
bot.setBotPitch(69);

View File

@@ -54,46 +54,6 @@ public class LegacyMats {
Material.SOUL_FIRE
));
public static final Set<Material> SHOVEL = new HashSet<>(concatTypes(Lists.newArrayList(
Material.CLAY,
Material.DIRT,
Material.GRASS_BLOCK,
Material.COARSE_DIRT,
Material.PODZOL,
Material.MYCELIUM,
Material.GRAVEL,
Material.MUD,
Material.MUDDY_MANGROVE_ROOTS,
Material.SAND,
Material.RED_SAND,
Material.SOUL_SAND,
Material.SOUL_SOIL,
Material.SNOW,
Material.SNOW_BLOCK
), Arrays.asList(), Arrays.asList(), m -> m.name().endsWith("_CONCRETE_POWDER")));
public static final Set<Material> AXE = new HashSet<>(Arrays.asList(
Material.OAK_PLANKS, Material.OAK_DOOR, Material.OAK_FENCE, Material.OAK_FENCE_GATE, Material.OAK_LOG,
Material.OAK_SIGN, Material.OAK_SLAB, Material.OAK_STAIRS, Material.OAK_TRAPDOOR, Material.OAK_WALL_SIGN, Material.OAK_WOOD,
Material.DARK_OAK_PLANKS, Material.DARK_OAK_DOOR, Material.DARK_OAK_FENCE, Material.DARK_OAK_FENCE_GATE, Material.DARK_OAK_LOG,
Material.DARK_OAK_SIGN, Material.DARK_OAK_SLAB, Material.DARK_OAK_STAIRS, Material.DARK_OAK_TRAPDOOR, Material.DARK_OAK_WALL_SIGN, Material.DARK_OAK_WOOD,
Material.ACACIA_PLANKS, Material.ACACIA_DOOR, Material.ACACIA_FENCE, Material.ACACIA_FENCE_GATE, Material.ACACIA_LOG,
Material.ACACIA_SIGN, Material.ACACIA_SLAB, Material.ACACIA_STAIRS, Material.ACACIA_TRAPDOOR, Material.ACACIA_WALL_SIGN, Material.ACACIA_WOOD,
Material.BIRCH_PLANKS, Material.BIRCH_DOOR, Material.BIRCH_FENCE, Material.BIRCH_FENCE_GATE, Material.BIRCH_LOG,
Material.BIRCH_SIGN, Material.BIRCH_SLAB, Material.BIRCH_STAIRS, Material.BIRCH_TRAPDOOR, Material.BIRCH_WALL_SIGN, Material.BIRCH_WOOD,
Material.JUNGLE_PLANKS, Material.JUNGLE_DOOR, Material.JUNGLE_FENCE, Material.JUNGLE_FENCE_GATE, Material.JUNGLE_LOG,
Material.JUNGLE_SIGN, Material.JUNGLE_SLAB, Material.JUNGLE_STAIRS, Material.JUNGLE_TRAPDOOR, Material.JUNGLE_WALL_SIGN, Material.JUNGLE_WOOD,
Material.SPRUCE_PLANKS, Material.SPRUCE_DOOR, Material.SPRUCE_FENCE, Material.SPRUCE_FENCE_GATE, Material.SPRUCE_LOG,
Material.SPRUCE_SIGN, Material.SPRUCE_SLAB, Material.SPRUCE_STAIRS, Material.SPRUCE_TRAPDOOR, Material.SPRUCE_WALL_SIGN, Material.SPRUCE_WOOD,
Material.MANGROVE_PLANKS, Material.MANGROVE_DOOR, Material.MANGROVE_FENCE, Material.MANGROVE_FENCE_GATE, Material.MANGROVE_LOG,
Material.MANGROVE_SIGN, Material.MANGROVE_SLAB, Material.MANGROVE_STAIRS, Material.MANGROVE_TRAPDOOR, Material.MANGROVE_WALL_SIGN, Material.MANGROVE_WOOD,
Material.CRIMSON_PLANKS, Material.CRIMSON_DOOR, Material.CRIMSON_FENCE, Material.CRIMSON_FENCE_GATE, Material.CRIMSON_STEM,
Material.CRIMSON_SIGN, Material.CRIMSON_SLAB, Material.CRIMSON_STAIRS, Material.CRIMSON_TRAPDOOR, Material.CRIMSON_WALL_SIGN,
Material.WARPED_PLANKS, Material.WARPED_DOOR, Material.WARPED_FENCE, Material.WARPED_FENCE_GATE, Material.WARPED_STEM,
Material.WARPED_SIGN, Material.WARPED_SLAB, Material.WARPED_STAIRS, Material.WARPED_TRAPDOOR, Material.WARPED_WALL_SIGN,
Material.CHEST, Material.TRAPPED_CHEST
));
public static final Set<Material> BREAK = new HashSet<>(Arrays.asList(
Material.AIR,
Material.WATER,
@@ -112,6 +72,8 @@ public class LegacyMats {
Material.KELP,
Material.KELP_PLANT,
Material.SUNFLOWER,
Material.TORCHFLOWER,
Material.PITCHER_PLANT,
Material.FIRE,
Material.SOUL_FIRE
));