Skip to content

Commit 56fc44b

Browse files
committed
Rework listener processing
1 parent 941081a commit 56fc44b

3 files changed

Lines changed: 24 additions & 20 deletions

File tree

src/client/java/de/rettichlp/PKUtilsClient.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package de.rettichlp;
22

3-
import de.rettichlp.common.manager.MessageManager;
3+
import de.rettichlp.common.manager.WantedManager;
44
import de.rettichlp.common.storage.Storage;
55
import net.fabricmc.api.ClientModInitializer;
66

@@ -14,8 +14,13 @@ public class PKUtilsClient implements ClientModInitializer {
1414
public void onInitializeClient() {
1515
// This entrypoint is suitable for setting up client-specific logic, such as rendering.
1616

17-
MessageManager messageManager = new MessageManager();
17+
WantedManager wantedManager = new WantedManager();
1818

1919
GAME.register((message, overlay) -> messageManager.process(message));
20+
GAME.register((message, overlay) -> {
21+
String rawMessage = message.getString();
22+
23+
wantedManager.onMessage(rawMessage);
24+
});
2025
}
2126
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package de.rettichlp.common.listener;
2+
3+
public interface MessageListener {
4+
5+
void onMessage(String message);
6+
}

src/client/java/de/rettichlp/common/manager/MessageManager.java renamed to src/client/java/de/rettichlp/common/manager/WantedManager.java

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
package de.rettichlp.common.manager;
22

3-
import com.mojang.brigadier.Message;
3+
import de.rettichlp.common.listener.MessageListener;
44
import de.rettichlp.common.storage.schema.WantedEntry;
5-
import lombok.NoArgsConstructor;
65
import net.minecraft.client.MinecraftClient;
76
import net.minecraft.client.network.ClientPlayNetworkHandler;
87

@@ -15,44 +14,38 @@
1514
import static java.util.Optional.ofNullable;
1615
import static java.util.regex.Pattern.compile;
1716

18-
@NoArgsConstructor
19-
public class MessageManager {
17+
public class WantedManager implements MessageListener {
2018

2119
private final static Pattern WELCOME_BACK_PATTERN = compile("Willkommen zurück!");
2220
private final static Pattern ONLINE_WANTED_PLAYERS_HEADER_PATTERN = compile("Online Spieler mit WantedPunkten:");
2321
private final static Pattern ONLINE_WANTED_PLAYERS_ENTRY_PATTERN = compile("- (?<playerName>[A-Za-z0-9_]+) \\| (?<wantedPointAmount>\\d+) \\| (?<reason>.+)(?<afk> \\| AFK|)");
2422

25-
private String rawMessage;
26-
private ClientPlayNetworkHandler networkHandler;
23+
private final ClientPlayNetworkHandler networkHandler;
24+
2725
private long activeWantedCheck = 0;
2826

29-
public void process(Message message) {
30-
this.rawMessage = message.getString();
27+
public WantedManager() {
3128
this.networkHandler = ofNullable(MinecraftClient.getInstance().player)
3229
.map(clientPlayerEntity -> clientPlayerEntity.networkHandler)
3330
.orElseThrow();
34-
35-
executeJoinCommands();
36-
readWantedPoints();
3731
}
3832

39-
private void executeJoinCommands() {
40-
Matcher welcomeBackMatcher = WELCOME_BACK_PATTERN.matcher(this.rawMessage);
33+
@Override
34+
public void onMessage(String message) {
35+
Matcher welcomeBackMatcher = WELCOME_BACK_PATTERN.matcher(message);
4136
if (welcomeBackMatcher.find()) {
42-
4337
this.networkHandler.sendChatCommand("wanteds");
38+
return;
4439
}
45-
}
4640

47-
public void readWantedPoints() {
48-
Matcher onlineWantedPlayersHeaderMatcher = ONLINE_WANTED_PLAYERS_HEADER_PATTERN.matcher(this.rawMessage);
41+
Matcher onlineWantedPlayersHeaderMatcher = ONLINE_WANTED_PLAYERS_HEADER_PATTERN.matcher(message);
4942
if (onlineWantedPlayersHeaderMatcher.find()) {
5043
this.activeWantedCheck = currentTimeMillis();
5144
storage.resetWantedEntries();
5245
return;
5346
}
5447

55-
Matcher onlineWantedPlayersEntryMatcher = ONLINE_WANTED_PLAYERS_ENTRY_PATTERN.matcher(this.rawMessage);
48+
Matcher onlineWantedPlayersEntryMatcher = ONLINE_WANTED_PLAYERS_ENTRY_PATTERN.matcher(message);
5649
if (onlineWantedPlayersEntryMatcher.find() && (currentTimeMillis() - this.activeWantedCheck < 2000)) {
5750
String playerName = onlineWantedPlayersEntryMatcher.group("playerName");
5851
int wantedPointAmount = parseInt(onlineWantedPlayersEntryMatcher.group("wantedPointAmount"));

0 commit comments

Comments
 (0)