Events broadcast achievements/moments to group members.
Edit event/BUEventType.java:
public enum BUEventType {
// ... existing
MY_EVENT
}Location: src/main/java/com.elertan/event/MyBUEvent.java
package com.elertan.event;
import com.elertan.models.ISOOffsetDateTime;
import lombok.Getter;
public class MyBUEvent extends BUEvent {
@Getter
private final String myData;
public MyBUEvent(long accountHash, ISOOffsetDateTime timestamp, String myData) {
super(accountHash, timestamp);
this.myData = myData;
}
@Override
public BUEventType getType() {
return BUEventType.MY_EVENT;
}
}Edit event/BUEventGson.java to add type adapter mapping:
// In the RuntimeTypeAdapterFactory setup
.registerSubtype(MyBUEvent.class, BUEventType.MY_EVENT.name())Location: src/main/java/com.elertan/chat/MyParsedGameMessage.java
package com.elertan.chat;
import lombok.Getter;
public class MyParsedGameMessage extends ParsedGameMessage {
@Getter
private final String extractedData;
public MyParsedGameMessage(String extractedData) {
this.extractedData = extractedData;
}
@Override
public ParsedGameMessageType getType() {
return ParsedGameMessageType.MY_TYPE;
}
}Edit chat/GameMessageParser.java:
private static final Pattern MY_PATTERN = Pattern.compile("...");
public ParsedGameMessage parse(String message) {
// ... existing parsing
Matcher myMatcher = MY_PATTERN.matcher(message);
if (myMatcher.matches()) {
return new MyParsedGameMessage(myMatcher.group(1));
}
// ...
}Edit event/GameMessageToEventTransformer.java:
public BUEvent transform(ParsedGameMessage msg, long accountHash) {
ISOOffsetDateTime ts = ISOOffsetDateTime.now();
switch (msg.getType()) {
// ... existing
case MY_TYPE:
MyParsedGameMessage myMsg = (MyParsedGameMessage) msg;
return new MyBUEvent(accountHash, ts, myMsg.getExtractedData());
}
}Edit BUChatService to handle new event type for notifications.
- Enum added to
BUEventType - Event class extends
BUEvent - Registered in
BUEventGson - If chat-triggered:
- ParsedGameMessage subclass
- Enum in
ParsedGameMessageType - Pattern in
GameMessageParser - Transform logic in
GameMessageToEventTransformer
- Notification display added