diff --git a/src/client/java/net/legitimoose/bot/chat/command/BotCommands.java b/src/client/java/net/legitimoose/bot/chat/command/BotCommands.java index 28a4078..e18835b 100644 --- a/src/client/java/net/legitimoose/bot/chat/command/BotCommands.java +++ b/src/client/java/net/legitimoose/bot/chat/command/BotCommands.java @@ -2,6 +2,8 @@ import baritone.api.BaritoneAPI; import baritone.api.pathing.goals.GoalBlock; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; import com.mojang.brigadier.Command; import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.arguments.StringArgumentType; @@ -12,7 +14,14 @@ import net.minecraft.core.BlockPos; import net.minecraft.world.entity.player.Player; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; + public class BotCommands { + private static final HttpClient client = HttpClient.newHttpClient(); + public static void register(CommandDispatcher dispatcher) { dispatcher.register( LiteralArgumentBuilder.literal("bot") @@ -75,6 +84,21 @@ public static void register(CommandDispatcher dispatcher) { return Command.SINGLE_SUCCESS; })) ) + .then( + LiteralArgumentBuilder.literal("info").executes(context -> { + try { + HttpRequest request = HttpRequest.newBuilder().uri(new URI("https://api.legiti.dev/")).GET().build(); + String response = client.send(request, HttpResponse.BodyHandlers.ofString()).body(); + JsonObject info = JsonParser.parseString(response).getAsJsonObject(); + int ping = Minecraft.getInstance().getConnection().getPlayerInfo(Minecraft.getInstance().player.getUUID()).getLatency(); + + context.getSource().sendMessage(String.format("Ping: %sms
API Version: %s
Bot Version: %s", ping, info.get("version").getAsString(), info.getAsJsonObject("scraper").get("version").getAsString())); + } catch (Exception e) { + throw new RuntimeException(e); + } + return Command.SINGLE_SUCCESS; + }) + ) ); } } diff --git a/src/client/java/net/legitimoose/bot/chat/command/HelpCommand.java b/src/client/java/net/legitimoose/bot/chat/command/HelpCommand.java index 3f401e4..ed27f46 100644 --- a/src/client/java/net/legitimoose/bot/chat/command/HelpCommand.java +++ b/src/client/java/net/legitimoose/bot/chat/command/HelpCommand.java @@ -7,7 +7,7 @@ public class HelpCommand { private static final String helpMessage = "Commands:
!block - Block from sending you messages
!unblock - Unblock
!streak - View your join streak
!streak - Enable or disable streak notifications"; private static final String helpMessage2 = "
!streak - Get streak for a player
!streak lb|leaderboard - get streak leaderboard"; - private static final String helpMessage3 = "
!bot goto <\"x y z\"> - pathfind to coordinates (quotes required)
!bot follow - pathfind/follow player
!bot spawn - run /spawn
!bot cancel - cancel pathfinding actions"; + private static final String helpMessage3 = "
!bot goto <\"x y z\"> - pathfind to coordinates (quotes required)
!bot follow - pathfind/follow player
!bot spawn - run /spawn
!bot cancel - cancel pathfinding actions
!bot info - show bot status and versions"; public static void register(CommandDispatcher dispatcher) { dispatcher.register(LiteralArgumentBuilder.literal("help") diff --git a/src/client/java/net/legitimoose/bot/chat/matcher/ChatMatcher.java b/src/client/java/net/legitimoose/bot/chat/matcher/ChatMatcher.java index 82b8136..dc4c54b 100644 --- a/src/client/java/net/legitimoose/bot/chat/matcher/ChatMatcher.java +++ b/src/client/java/net/legitimoose/bot/chat/matcher/ChatMatcher.java @@ -15,7 +15,7 @@ public class ChatMatcher implements MessageMatcher { public static final String COMMAND_PREFIX = "!"; - private static final Pattern PATTERN = Pattern.compile("^(?:\\[SHOUT]\\s*)?(?:[^|]+\\|\\s*)?([^:]+): (.*)", Pattern.DOTALL); + private static final Pattern PATTERN = Pattern.compile("^(?:\\[SHOUT]\\s*)?(?:[^|]+\\|\\s*)?(\\w{3,16}): (.*)$", Pattern.DOTALL); private String username; diff --git a/src/client/java/net/legitimoose/bot/chat/matcher/JoinMatcher.java b/src/client/java/net/legitimoose/bot/chat/matcher/JoinMatcher.java index 2b5e608..706ccc6 100644 --- a/src/client/java/net/legitimoose/bot/chat/matcher/JoinMatcher.java +++ b/src/client/java/net/legitimoose/bot/chat/matcher/JoinMatcher.java @@ -13,7 +13,7 @@ * These are in the format [+] Rank | username or [+] username */ public class JoinMatcher implements MessageMatcher { - private static final Pattern PATTERN = Pattern.compile("^\\[\\+\\]\\s(.*(?=\\s\\|))?(?:\\s\\|\\s)?(\\w*)$"); + private static final Pattern PATTERN = Pattern.compile("^\\[\\+\\]\\s(.*(?=\\s\\|))?(?:\\s\\|\\s)?(\\w{3,16})$"); private String username; diff --git a/src/client/java/net/legitimoose/bot/chat/matcher/LeaveMatcher.java b/src/client/java/net/legitimoose/bot/chat/matcher/LeaveMatcher.java index fabefac..1a83189 100644 --- a/src/client/java/net/legitimoose/bot/chat/matcher/LeaveMatcher.java +++ b/src/client/java/net/legitimoose/bot/chat/matcher/LeaveMatcher.java @@ -13,7 +13,7 @@ * These are in the format [-] Rank | username. Almost identical to {@link SwitchMatcher} */ public class LeaveMatcher implements MessageMatcher { - private static final Pattern PATTERN = Pattern.compile("^\\[-\\]\\s(?:.*\\|\\s)?(\\w*)$"); + private static final Pattern PATTERN = Pattern.compile("^\\[-\\]\\s(?:.*\\|\\s)?(\\w{3,16})$"); private String username; diff --git a/src/client/java/net/legitimoose/bot/chat/matcher/SwitchMatcher.java b/src/client/java/net/legitimoose/bot/chat/matcher/SwitchMatcher.java index bc75d6d..a404e95 100644 --- a/src/client/java/net/legitimoose/bot/chat/matcher/SwitchMatcher.java +++ b/src/client/java/net/legitimoose/bot/chat/matcher/SwitchMatcher.java @@ -13,7 +13,7 @@ * These are in the format [→] Rank | Username */ public class SwitchMatcher implements MessageMatcher { - private static final Pattern PATTERN = Pattern.compile("^\\[→\\]\\s(?:.*\\|\\s)?(\\w*)$"); + private static final Pattern PATTERN = Pattern.compile("^\\[→\\]\\s(?:.*\\|\\s)?(\\w{3,16})$"); private String username; diff --git a/src/client/java/net/legitimoose/bot/scraper/Scraper.java b/src/client/java/net/legitimoose/bot/scraper/Scraper.java index 73fb5d7..6878c10 100644 --- a/src/client/java/net/legitimoose/bot/scraper/Scraper.java +++ b/src/client/java/net/legitimoose/bot/scraper/Scraper.java @@ -189,6 +189,7 @@ public void scrape() throws Exception { while (!itemStack.get(DataComponents.LORE).lines().get(ownerLine).getString().startsWith("by")) { ownerLine++; } + descriptionLines = ownerLine - 1; Matcher ownerNameMatcher = ownerNamePattern.matcher(itemStack.get(DataComponents.LORE).lines().get(ownerLine).getString()); if (ownerNameMatcher.find()) { owner_name = ownerNameMatcher.group(1);