From 8ab95343cf6aec39ec359d53d0fb2a4c92eac00e Mon Sep 17 00:00:00 2001 From: RettichLP Date: Sun, 26 Apr 2026 13:39:26 +0200 Subject: [PATCH] feat: handle medic respawn message and execute togglephone command --- .../ucutils/listener/impl/faction/MedicListener.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/rettichlp/ucutils/listener/impl/faction/MedicListener.java b/src/main/java/de/rettichlp/ucutils/listener/impl/faction/MedicListener.java index 6ab49038..22350fe4 100644 --- a/src/main/java/de/rettichlp/ucutils/listener/impl/faction/MedicListener.java +++ b/src/main/java/de/rettichlp/ucutils/listener/impl/faction/MedicListener.java @@ -38,7 +38,8 @@ public class MedicListener implements IMessageReceiveListener { private static final Pattern MEDIC_BANDAGE_PATTERN = compile("^(?:\\[UC])?(?[a-zA-Z0-9_]+) hat dich bandagiert\\.$"); private static final Pattern MEDIC_PILL_PATTERN = compile("^\\[Medic] Doktor (?:\\[UC])?(?[a-zA-Z0-9_]+) hat dir Schmerzpillen verabreicht\\.$"); - private static final Pattern MEDIC_REVIVE_START = compile("^Du beginnst mit der Wiederbelebung\\.$"); + private static final Pattern MEDIC_REVIVE_START_PATTERN = compile("^Du beginnst mit der Wiederbelebung von (?:\\[UC])?(?[a-zA-Z0-9_]+)\\.\\.\\.$"); + private static final Pattern MEDIC_RESPAWN_PATTERN = compile("^\\[Friedhof] Du lebst nun wieder\\.$"); private static final Pattern HOUSEBAN_HEADER_PATTERN = compile("^=== Hausverbote \\(\\d+\\) ===$"); private static final Pattern HOUSEBAN_ENTRY_PATTERN = compile("^» (?:\\[UC])?(?[a-zA-Z0-9_]+) ➲ (?.+) ➲ \\d+d \\((?\\d+)\\.(?\\d+)\\.(?\\d+) (?\\d+):(?\\d+)\\)$"); private static final Pattern HOUSEBAN_ADD_PATTERN = compile("^\\[HV] » (?:\\[UC])?(?[a-zA-Z0-9_]+) hat (?:\\[UC])?(?[a-zA-Z0-9_]+)s Hausverbot gegeben\\. » (?.+) » \\d+d \\((?\\d+)\\.(?\\d+)\\.(?\\d+) (?\\d+):(?\\d+)\\)$"); @@ -63,11 +64,16 @@ public boolean onMessageReceive(Text text, String message) { return true; } - Matcher medicReviveStartMatcher = MEDIC_REVIVE_START.matcher(message); + Matcher medicReviveStartMatcher = MEDIC_REVIVE_START_PATTERN.matcher(message); if (medicReviveStartMatcher.find()) { utilService.delayedAction(() -> commandService.sendCommand("dinfo"), COMMAND_COOLDOWN_MILLIS); } + Matcher medicRespawnMatcher = MEDIC_RESPAWN_PATTERN.matcher(message); + if (medicRespawnMatcher.find()) { + utilService.delayedAction(() -> commandService.sendCommand("togglephone"), COMMAND_COOLDOWN_MILLIS); + } + Matcher housebanHeaderMatcher = HOUSEBAN_HEADER_PATTERN.matcher(message); if (housebanHeaderMatcher.find()) { this.activeCheck = currentTimeMillis();