aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/event/diana/InquisitorWaypointShare.kt64
1 files changed, 20 insertions, 44 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/event/diana/InquisitorWaypointShare.kt b/src/main/java/at/hannibal2/skyhanni/features/event/diana/InquisitorWaypointShare.kt
index 86ccb243c..b4f6050dd 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/event/diana/InquisitorWaypointShare.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/event/diana/InquisitorWaypointShare.kt
@@ -26,7 +26,6 @@ import net.minecraft.network.play.server.S02PacketChat
import net.minecraftforge.event.entity.EntityJoinWorldEvent
import net.minecraftforge.fml.common.eventhandler.EventPriority
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
-import java.util.regex.Matcher
import kotlin.time.Duration.Companion.seconds
object InquisitorWaypointShare {
@@ -34,21 +33,9 @@ object InquisitorWaypointShare {
private val config get() = SkyHanniMod.feature.event.diana.inquisitorSharing
private val patternGroup = RepoPattern.group("diana.waypoints")
- /**
- * REGEX-TEST: §9Party §8> User Name§f: §rx: 2.3, y: 4.5, z: 6.7
- */
private val partyPattern by patternGroup.pattern(
"party",
- "§9Party §8> (?<playerName>.+)§f: §rx: (?<x>[^ ]+),? y: (?<y>[^ ]+),? z: (?<z>[^ ]+)"
- )
-
- //Support for https://www.chattriggers.com/modules/v/inquisitorchecker
- /**
- * REGEX-TEST: §9Party §8> UserName§f: §rA MINOS INQUISITOR has spawned near [Foraging Island ] at Coords 1 2 3
- */
- private val inquisitorCheckerPattern by patternGroup.pattern(
- "party.inquisitorchecker",
- "§9Party §8> (?<playerName>.+)§f: §rA MINOS INQUISITOR has spawned near \\[(?<area>.*)] at Coords (?<x>[^ ]+) (?<y>[^ ]+) (?<z>[^ ]+)"
+ "§9Party §8> (?<playerName>.*)§f: §rx: (?<x>-?[0-9]{1,4}), y: (?<y>-?[0-9]{1,4}), z: (?<z>-?[0-9]{1,4})\\b"
)
private val diedPattern by patternGroup.pattern(
"died",
@@ -246,16 +233,27 @@ object InquisitorWaypointShare {
val message = LorenzUtils.stripVanillaMessage(messageComponent.formattedText)
if (packet.type.toInt() != 0) return
- inquisitorCheckerPattern.matchMatcher(message) {
- if (detectFromChat()) {
- event.isCanceled = true
- }
- }
-
partyPattern.matchMatcher(message) {
- if (detectFromChat()) {
- event.isCanceled = true
+ val rawName = group("playerName")
+ val x = group("x").trim().toInt()
+ val y = group("y").trim().toInt()
+ val z = group("z").trim().toInt()
+ val location = LorenzVec(x, y, z)
+
+ val name = rawName.cleanPlayerName()
+ val displayName = rawName.cleanPlayerName(displayName = true)
+ if (!waypoints.containsKey(name)) {
+ ChatUtils.chat("$displayName §l§efound an inquisitor at §l§c$x $y $z!")
+ if (name != LorenzUtils.getPlayerName()) {
+ LorenzUtils.sendTitle("§dINQUISITOR §efrom §b$displayName", 5.seconds)
+ SoundUtils.playBeepSound()
+ }
}
+ val inquis = SharedInquisitor(name, displayName, location, SimpleTimeMark.now())
+ waypoints = waypoints.editCopy { this[name] = inquis }
+ GriffinBurrowHelper.update()
+
+ event.isCanceled = true
}
diedPattern.matchMatcher(message) {
val rawName = group("playerName")
@@ -267,28 +265,6 @@ object InquisitorWaypointShare {
}
}
- private fun Matcher.detectFromChat(): Boolean {
- val rawName = group("playerName")
- val x = group("x").trim().toDoubleOrNull() ?: return false
- val y = group("y").trim().toDoubleOrNull() ?: return false
- val z = group("z").trim().toDoubleOrNull() ?: return false
- val location = LorenzVec(x, y, z)
-
- val name = rawName.cleanPlayerName()
- val displayName = rawName.cleanPlayerName(displayName = true)
- if (!waypoints.containsKey(name)) {
- ChatUtils.chat("$displayName §l§efound an inquisitor at §l§c${x.toInt()} ${y.toInt()} ${z.toInt()}!")
- if (name != LorenzUtils.getPlayerName()) {
- LorenzUtils.sendTitle("§dINQUISITOR §efrom §b$displayName", 5.seconds)
- SoundUtils.playBeepSound()
- }
- }
- val inquis = SharedInquisitor(name, displayName, location, SimpleTimeMark.now())
- waypoints = waypoints.editCopy { this[name] = inquis }
- GriffinBurrowHelper.update()
- return true
- }
-
private fun isEnabled() = DianaAPI.isDoingDiana() && config.enabled
fun maybeRemove(inquis: SharedInquisitor) {