From 718740e85f48b57bf712a62f811cd4d34dd98450 Mon Sep 17 00:00:00 2001 From: ThatGravyBoat Date: Thu, 15 Jul 2021 01:36:50 -0230 Subject: Updated important locations Updated Config System (Thanks Moulberry) Added Trackers Back with kill trackers --- .../thatgravyboat/skyblockhud/handlers/SlayerHandler.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/main/java/com/thatgravyboat/skyblockhud/handlers/SlayerHandler.java') diff --git a/src/main/java/com/thatgravyboat/skyblockhud/handlers/SlayerHandler.java b/src/main/java/com/thatgravyboat/skyblockhud/handlers/SlayerHandler.java index 49b2928..1584ff4 100644 --- a/src/main/java/com/thatgravyboat/skyblockhud/handlers/SlayerHandler.java +++ b/src/main/java/com/thatgravyboat/skyblockhud/handlers/SlayerHandler.java @@ -3,15 +3,20 @@ package com.thatgravyboat.skyblockhud.handlers; import com.thatgravyboat.skyblockhud.Utils; import com.thatgravyboat.skyblockhud.api.events.SidebarLineUpdateEvent; import com.thatgravyboat.skyblockhud.api.events.SidebarPostEvent; +import com.thatgravyboat.skyblockhud.api.events.SkyBlockEntityKilled; import java.util.Arrays; import java.util.Locale; import java.util.regex.Matcher; import java.util.regex.Pattern; +import net.minecraftforge.client.event.ClientChatReceivedEvent; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; public class SlayerHandler { private static final Pattern KILLS_REGEX = Pattern.compile("(\\d+)/(\\d+) kills?"); + private static final Pattern SLAYER_PATTERN = Pattern.compile("Talk to Maddox to claim your ([A-Za-z]+) Slayer XP!"); public enum slayerTypes { ZOMBIE(34, "Revenant Horror"), @@ -112,4 +117,14 @@ public class SlayerHandler { } } } + + @SubscribeEvent(priority = EventPriority.HIGHEST) + public void onChatMessage(ClientChatReceivedEvent event) { + if (event.type != 2) { + Matcher slayerMatcher = SLAYER_PATTERN.matcher(Utils.removeColor(event.message.getUnformattedText())); + if (slayerMatcher.find()){ + MinecraftForge.EVENT_BUS.post(new SkyBlockEntityKilled(slayerMatcher.group(1).toUpperCase(Locale.ENGLISH)+"_SLAYER", null)); + } + } + } } -- cgit