Prayer Points Display

BeginnerDisplay

Displays current prayer points as an overlay. Shows how to access skill data and render it.

8 min read

What It Does

Displays current prayer points as an overlay. Shows how to access skill data and render it.

Source Code

java
1package com.example;
2
3import net.runelite.api.Client;
4import net.runelite.api.Skill;
5import net.runelite.client.ui.overlay.Overlay;
6import net.runelite.client.ui.overlay.OverlayManager;
7import net.runelite.client.plugins.Plugin;
8import net.runelite.client.plugins.PluginDescriptor;
9import javax.inject.Inject;
10import java.awt.*;
11
12@PluginDescriptor(
13    name = "Prayer Points",
14    description = "Shows prayer points"
15)
16public class PrayerPointsPlugin extends Plugin {
17    @Inject
18    private Client client;
19
20    @Inject
21    private OverlayManager overlayManager;
22
23    // Named Overlay class with PanelComponent for text rendering
24    private class PrayerPointsOverlay extends Overlay {
25        private PrayerPointsOverlay() {
26            setLayer(OverlayLayer.ABOVE_SCENE);
27            setPosition(OverlayPosition.TOP_LEFT);
28        }
29
30        @Override
31        public Dimension render(Graphics2D graphics) {
32            int prayerLevel = client.getBoostedSkillLevel(Skill.PRAYER);
33            
34            // Use PanelComponent for cleaner text rendering
35            net.runelite.client.ui.overlay.components.PanelComponent panel = 
36                new net.runelite.client.ui.overlay.components.PanelComponent();
37            panel.setPreferredSize(new Dimension(120, 20));
38            
39            net.runelite.client.ui.overlay.components.LineComponent line = 
40                net.runelite.client.ui.overlay.components.LineComponent.builder()
41                    .left("Prayer: " + prayerLevel)
42                    .leftColor(Color.WHITE)
43                    .build();
44            panel.getChildren().add(line);
45            
46            return panel.render(graphics);
47        }
48    }
49
50    private final PrayerPointsOverlay overlay = new PrayerPointsOverlay();
51
52    @Override
53    protected void startUp() {
54        overlayManager.add(overlay);
55    }
56
57    @Override
58    protected void shutDown() {
59        overlayManager.remove(overlay);
60    }
61}

Code Annotations

Line 25

Get current prayer level

Line 27

Display prayer points

API Classes Used

Key Concepts

  • Get current prayer level
  • Display prayer points

Next Steps

  • Learn about Skill enum
  • Add prayer point warning
  • Show prayer drain rate