package com.vixis.event; import com.vixis.Vixis; import com.vixis.advancement.VixisAdvancements; import net.minecraft.util.ResourceLocation; import net.minecraftforge.event.ServerChatEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import java.util.regex.Pattern; @Mod.EventBusSubscriber(modid = Vixis.MODID) public final class ChatKeywordHandler { private static final Pattern VORE_WORD = Pattern.compile("\\bvore\\b", Pattern.CASE_INSENSITIVE); private static final Pattern PAW_WORD = Pattern.compile("\\bpaws?\\b", Pattern.CASE_INSENSITIVE); private ChatKeywordHandler() { } @SubscribeEvent public static void onChat(ServerChatEvent event) { String message = event.getMessage(); grantIfMatch(event, message, VORE_WORD, VixisAdvancements.VORE_MENTIONED); grantIfMatch(event, message, PAW_WORD, VixisAdvancements.PAW_MENTIONED); } private static void grantIfMatch(ServerChatEvent event, String message, Pattern pattern, ResourceLocation advancement) { if (pattern.matcher(message).find()) { VixisAdvancements.grant(event.getPlayer(), advancement); } } }