Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,38 @@ Fires when the player's inventory changes
}
```

### CHAT

Examine

```json5
{
"tick": 406,
"ts": "2026-07-31T10:35:39Z",
"type": "CHAT",
"data": {
"type": "ITEM_EXAMINE",
"name": "",
"message": "Deceptively pie shaped."
}
}
```

Game message

```json5
{
"tick": 1591,
"ts": "2026-07-31T10:47:30Z",
"type": "CHAT",
"data": {
"type": "GAMEMESSAGE",
"name": "",
"message": "Your reward is: <col=ff0000>1</col> x <col=ff0000>Book of knowledge</col>."
}
}
```

## Chat commands

There are various helpful chat commands available when the Action Logger plugin is installed.
Expand Down
16 changes: 10 additions & 6 deletions src/main/java/actionlogger/ActionLoggerPlugin.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
package actionlogger;

import actionlogger.trackers.AnimationTracker;
import actionlogger.trackers.DialogueTracker;
import actionlogger.trackers.InventoryTracker;
import actionlogger.trackers.VarTracker;
import actionlogger.trackers.*;
import actionlogger.writers.JsonWriter;
import com.google.gson.Gson;
import lombok.extern.slf4j.Slf4j;
Expand Down Expand Up @@ -41,6 +38,7 @@ public class ActionLoggerPlugin extends Plugin {
private VarTracker varTracker = null;
private InventoryTracker inventoryTracker = null;
private AnimationTracker animationTracker = null;
private ChatTracker chatTracker = null;
private JsonWriter writer = null;

@Override
Expand All @@ -56,10 +54,13 @@ protected void startUp() {

inventoryTracker = new InventoryTracker(writer);
eventBus.register(inventoryTracker);

animationTracker = new AnimationTracker(writer, client);
eventBus.register(animationTracker);

chatTracker = new ChatTracker(writer);
eventBus.register(chatTracker);

log.debug("Started up Action Logger");
}

Expand All @@ -74,10 +75,13 @@ protected void shutDown() {

eventBus.unregister(inventoryTracker);
inventoryTracker = null;

eventBus.unregister(animationTracker);
animationTracker = null;

eventBus.unregister(chatTracker);
chatTracker = null;

writer.close();
writer = null;

Expand Down
34 changes: 34 additions & 0 deletions src/main/java/actionlogger/trackers/ChatTracker.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package actionlogger.trackers;

import actionlogger.writers.JsonWriter;
import lombok.RequiredArgsConstructor;
import lombok.Value;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.ChatMessageType;
import net.runelite.api.events.ChatMessage;
import net.runelite.client.eventbus.Subscribe;

@Slf4j
@RequiredArgsConstructor
public class ChatTracker {
private final JsonWriter writer;

@Subscribe
public void onChatMessage(ChatMessage e) {
if (e.getType() == ChatMessageType.ITEM_EXAMINE ||
e.getType() == ChatMessageType.GAMEMESSAGE ||
e.getType() == ChatMessageType.MESBOX ||
e.getType() == ChatMessageType.DIALOG ||
e.getType() == ChatMessageType.CONSOLE) {
this.writer.write("CHAT", new ChatTracker.ChatData(e.getType().toString(), e.getName(), e.getMessage()));
}
}


@Value
private static class ChatData {
String type;
String name;
String message;
}
}
Loading