use of mathax.client.systems.commands.Command in project Client by MatHax.
the class SwarmCommand method build.
@Override
public void build(LiteralArgumentBuilder<CommandSource> builder) {
builder.then(literal("disconnect").executes(context -> {
Swarm swarm = Modules.get().get(Swarm.class);
if (swarm.isActive())
swarm.close();
else
throw SWARM_NOT_ACTIVE.create();
return SINGLE_SUCCESS;
}));
builder.then(literal("join").then(argument("ip", StringArgumentType.string()).then(argument("port", IntegerArgumentType.integer(0, 65535)).executes(context -> {
Swarm swarm = Modules.get().get(Swarm.class);
if (!swarm.isActive())
swarm.toggle();
swarm.close();
swarm.mode.set(Swarm.Mode.Worker);
swarm.worker = new SwarmWorker(StringArgumentType.getString(context, "ip"), IntegerArgumentType.getInteger(context, "port"));
return SINGLE_SUCCESS;
}))));
builder.then(literal("connections").executes(context -> {
Swarm swarm = Modules.get().get(Swarm.class);
if (swarm.isActive()) {
if (swarm.isHost()) {
if (swarm.host.getConnectionCount() > 0) {
ChatUtils.info("--- Swarm Connections (highlight)(%s/%s)(default) ---", swarm.host.getConnectionCount(), swarm.host.getConnections().length);
for (int i = 0; i < swarm.host.getConnections().length; i++) {
SwarmConnection connection = swarm.host.getConnections()[i];
if (connection != null)
ChatUtils.info("(highlight)Worker %s(default): %s.", i, connection.getConnection());
}
} else
warning("No active connections");
} else if (swarm.isWorker())
info("Connected to (highlight)%s", swarm.worker.getConnection());
} else
throw SWARM_NOT_ACTIVE.create();
return SINGLE_SUCCESS;
}));
builder.then(literal("follow").executes(context -> {
Swarm swarm = Modules.get().get(Swarm.class);
if (swarm.isActive()) {
if (swarm.isHost())
swarm.host.sendMessage(context.getInput() + " " + mc.player.getEntityName());
else if (swarm.isWorker())
error("The follow host command must be used by the host.");
} else
throw SWARM_NOT_ACTIVE.create();
return SINGLE_SUCCESS;
}).then(argument("player", PlayerArgumentType.player()).executes(context -> {
PlayerEntity playerEntity = PlayerArgumentType.getPlayer(context);
Swarm swarm = Modules.get().get(Swarm.class);
if (swarm.isActive()) {
if (swarm.isHost())
swarm.host.sendMessage(context.getInput());
else if (swarm.isWorker() && playerEntity != null)
BaritoneAPI.getProvider().getPrimaryBaritone().getFollowProcess().follow(entity -> entity.getEntityName().equalsIgnoreCase(playerEntity.getEntityName()));
} else
throw SWARM_NOT_ACTIVE.create();
return SINGLE_SUCCESS;
})));
builder.then(literal("goto").then(argument("x", IntegerArgumentType.integer()).then(argument("z", IntegerArgumentType.integer()).executes(context -> {
Swarm swarm = Modules.get().get(Swarm.class);
if (swarm.isActive()) {
if (swarm.isHost())
swarm.host.sendMessage(context.getInput());
else if (swarm.isWorker()) {
int x = IntegerArgumentType.getInteger(context, "x");
int z = IntegerArgumentType.getInteger(context, "z");
BaritoneAPI.getProvider().getPrimaryBaritone().getCustomGoalProcess().setGoalAndPath(new GoalXZ(x, z));
}
} else
throw SWARM_NOT_ACTIVE.create();
return SINGLE_SUCCESS;
}))));
builder.then(literal("infinity-miner").executes(context -> {
Swarm swarm = Modules.get().get(Swarm.class);
if (swarm.isActive()) {
if (swarm.isHost())
swarm.host.sendMessage(context.getInput());
else if (swarm.isWorker())
runInfinityMiner();
} else
throw SWARM_NOT_ACTIVE.create();
return SINGLE_SUCCESS;
}).then(argument("target", BlockStateArgumentType.blockState()).executes(context -> {
Swarm swarm = Modules.get().get(Swarm.class);
if (swarm.isActive()) {
if (swarm.isHost())
swarm.host.sendMessage(context.getInput());
else if (swarm.isWorker()) {
Modules.get().get(InfinityMiner.class).targetBlocks.set(List.of(context.getArgument("target", BlockStateArgument.class).getBlockState().getBlock()));
runInfinityMiner();
}
} else
throw SWARM_NOT_ACTIVE.create();
return SINGLE_SUCCESS;
}).then(argument("repair", BlockStateArgumentType.blockState()).executes(context -> {
Swarm swarm = Modules.get().get(Swarm.class);
if (swarm.isActive()) {
if (swarm.isHost())
swarm.host.sendMessage(context.getInput());
else if (swarm.isWorker()) {
Modules.get().get(InfinityMiner.class).targetBlocks.set(List.of(context.getArgument("target", BlockStateArgument.class).getBlockState().getBlock()));
Modules.get().get(InfinityMiner.class).repairBlocks.set(List.of(context.getArgument("repair", BlockStateArgument.class).getBlockState().getBlock()));
runInfinityMiner();
}
} else
throw SWARM_NOT_ACTIVE.create();
return SINGLE_SUCCESS;
}))).then(literal("logout").then(argument("logout", BoolArgumentType.bool()).executes(context -> {
Swarm swarm = Modules.get().get(Swarm.class);
if (swarm.isActive()) {
if (swarm.isHost())
swarm.host.sendMessage(context.getInput());
else if (swarm.isWorker())
Modules.get().get(InfinityMiner.class).logOut.set(BoolArgumentType.getBool(context, "logout"));
} else
throw SWARM_NOT_ACTIVE.create();
return SINGLE_SUCCESS;
}))).then(literal("walkhome").then(argument("walkhome", BoolArgumentType.bool()).executes(context -> {
Swarm swarm = Modules.get().get(Swarm.class);
if (swarm.isActive()) {
if (swarm.isHost())
swarm.host.sendMessage(context.getInput());
else if (swarm.isWorker())
Modules.get().get(InfinityMiner.class).walkHome.set(BoolArgumentType.getBool(context, "walkhome"));
} else
throw SWARM_NOT_ACTIVE.create();
return SINGLE_SUCCESS;
}))));
builder.then(literal("mine").then(argument("block", BlockStateArgumentType.blockState()).executes(context -> {
Swarm swarm = Modules.get().get(Swarm.class);
if (swarm.isActive()) {
if (swarm.isHost())
swarm.host.sendMessage(context.getInput());
else if (swarm.isWorker())
swarm.worker.target = context.getArgument("block", BlockStateArgument.class).getBlockState().getBlock();
} else
throw SWARM_NOT_ACTIVE.create();
return SINGLE_SUCCESS;
})));
builder.then(literal("toggle").then(argument("module", ModuleArgumentType.module()).executes(context -> {
Swarm swarm = Modules.get().get(Swarm.class);
if (swarm.isActive()) {
if (swarm.isHost())
swarm.host.sendMessage(context.getInput());
else if (swarm.isWorker()) {
Module module = ModuleArgumentType.getModule(context, "module");
module.toggle();
}
} else
throw SWARM_NOT_ACTIVE.create();
return SINGLE_SUCCESS;
}).then(literal("on").executes(context -> {
Swarm swarm = Modules.get().get(Swarm.class);
if (swarm.isActive()) {
if (swarm.isHost())
swarm.host.sendMessage(context.getInput());
else if (swarm.isWorker()) {
Module m = ModuleArgumentType.getModule(context, "module");
if (!m.isActive())
m.toggle();
}
} else
throw SWARM_NOT_ACTIVE.create();
return SINGLE_SUCCESS;
})).then(literal("off").executes(context -> {
Swarm swarm = Modules.get().get(Swarm.class);
if (swarm.isActive()) {
if (swarm.isHost())
swarm.host.sendMessage(context.getInput());
else if (swarm.isWorker()) {
Module m = ModuleArgumentType.getModule(context, "module");
if (m.isActive())
m.toggle();
}
} else
throw SWARM_NOT_ACTIVE.create();
return SINGLE_SUCCESS;
}))));
builder.then(literal("scatter").executes(context -> {
Swarm swarm = Modules.get().get(Swarm.class);
if (swarm.isActive()) {
if (swarm.isHost())
swarm.host.sendMessage(context.getInput());
else if (swarm.isWorker())
scatter(100);
} else
throw SWARM_NOT_ACTIVE.create();
return SINGLE_SUCCESS;
}).then(argument("radius", IntegerArgumentType.integer()).executes(context -> {
Swarm swarm = Modules.get().get(Swarm.class);
if (swarm.isActive()) {
if (swarm.isHost())
swarm.host.sendMessage(context.getInput());
else if (swarm.isWorker())
scatter(IntegerArgumentType.getInteger(context, "radius"));
} else
throw SWARM_NOT_ACTIVE.create();
return SINGLE_SUCCESS;
})));
builder.then(literal("stop").executes(context -> {
Swarm swarm = Modules.get().get(Swarm.class);
if (swarm.isActive()) {
if (swarm.isHost())
swarm.host.sendMessage(context.getInput());
else if (swarm.isWorker())
BaritoneAPI.getProvider().getPrimaryBaritone().getPathingBehavior().cancelEverything();
} else
throw SWARM_NOT_ACTIVE.create();
return SINGLE_SUCCESS;
}));
builder.then(literal("exec").then(argument("command", StringArgumentType.greedyString()).executes(context -> {
Swarm swarm = Modules.get().get(Swarm.class);
if (swarm.isActive()) {
if (swarm.isHost())
swarm.host.sendMessage(context.getInput());
else if (swarm.isWorker())
mc.player.sendChatMessage(StringArgumentType.getString(context, "command"));
} else
throw SWARM_NOT_ACTIVE.create();
return SINGLE_SUCCESS;
})));
}
Aggregations