Skill Level Alert
BeginnerDisplaySends a chat message when you level up a skill. Demonstrates StatChanged event handling.
10 min read
What It Does
Sends a chat message when you level up a skill. Demonstrates StatChanged event handling.
Source Code
java
1package com.example;
2
3import net.runelite.api.Client;
4import net.runelite.api.Skill;
5import net.runelite.api.events.StatChanged;
6import net.runelite.client.eventbus.Subscribe;
7import net.runelite.client.plugins.Plugin;
8import net.runelite.client.plugins.PluginDescriptor;
9import javax.inject.Inject;
10import java.util.HashMap;
11import java.util.Map;
12
13@PluginDescriptor(
14 name = "Level Alert",
15 description = "Alerts on level up"
16)
17public class LevelAlertPlugin extends Plugin {
18 @Inject
19 private Client client;
20
21 // Track last level for each skill separately
22 private Map<Skill, Integer> lastLevels = new HashMap<>();
23
24 @Subscribe
25 public void onStatChanged(StatChanged event) {
26 Skill skill = event.getSkill();
27 int newLevel = event.getLevel();
28 int lastLevel = lastLevels.getOrDefault(skill, 1);
29
30 if (newLevel > lastLevel) {
31 client.addChatMessage(
32 net.runelite.api.ChatMessageType.GAMEMESSAGE,
33 "",
34 "Congratulations! You reached level " + newLevel + " in " + skill.getName() + "!",
35 null
36 );
37 lastLevels.put(skill, newLevel);
38 }
39 }
40}Code Annotations
Line 18
Track last known level
Line 22
Listen for skill changes
Line 25
Check if level increased
Line 26
Send congratulation message
API Classes Used
Key Concepts
- •Track last known level
- •Listen for skill changes
- •Check if level increased
- •Send congratulation message
Next Steps
- Learn about StatChanged events
- Add configurable skill filtering
- Add sound alerts