Death Counter

IntermediateData

Counts and displays how many times you've died. Tracks death events and maintains a counter.

12 min read

What It Does

Counts and displays how many times you've died. Tracks death events and maintains a counter.

Source Code

java
1package com.example;
2
3import net.runelite.api.Client;
4import net.runelite.api.events.PlayerDeath;
5import net.runelite.client.eventbus.Subscribe;
6import net.runelite.client.plugins.Plugin;
7import net.runelite.client.plugins.PluginDescriptor;
8import net.runelite.client.ui.overlay.Overlay;
9import net.runelite.client.ui.overlay.OverlayManager;
10import javax.inject.Inject;
11import java.awt.*;
12
13@PluginDescriptor(
14    name = "Death Counter",
15    description = "Counts deaths"
16)
17public class DeathCounterPlugin extends Plugin {
18    @Inject
19    private Client client;
20
21    @Inject
22    private OverlayManager overlayManager;
23
24    private int deathCount = 0;
25
26    private final Overlay overlay = new Overlay() {
27        @Override
28        public Dimension render(Graphics2D graphics) {
29            graphics.setColor(Color.RED);
30            graphics.drawString("Deaths: " + deathCount, 10, 10);
31            return new Dimension(120, 20);
32        }
33    };
34
35    @Subscribe
36    public void onPlayerDeath(PlayerDeath event) {
37        if (event.getPlayer() == client.getLocalPlayer()) {
38            deathCount++;
39        }
40    }
41
42    @Override
43    protected void startUp() {
44        overlayManager.add(overlay);
45    }
46
47    @Override
48    protected void shutDown() {
49        overlayManager.remove(overlay);
50    }
51}

Code Annotations

Line 22

Track death count

Line 35

Listen for death events

Line 37

Check if local player died

API Classes Used

Client
PlayerDeath
Overlay

Key Concepts

  • Track death count
  • Listen for death events
  • Check if local player died

Next Steps

  • Learn about PlayerDeath events
  • Add persistent storage
  • Add death location tracking