Skip to content

Commit fd01c8d

Browse files
feat(metrics): report plugin runtime stats
1 parent 9c93450 commit fd01c8d

4 files changed

Lines changed: 22 additions & 2 deletions

File tree

build.gradle.kts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ allprojects {
1414
version = "1.0.0-SNAPSHOT"
1515
description = "Example of how to make a plugin for SoulFire."
1616
repositories {
17+
mavenLocal()
1718
maven("https://repo.viaversion.com") {
1819
name = "ViaVersion Repository"
1920
content {
@@ -87,6 +88,13 @@ allprojects {
8788
includeGroup("com.soulfiremc")
8889
}
8990
}
91+
maven("https://repo.codemc.org/repository/maven-snapshots/") {
92+
name = "CodeMC Snapshot Repository"
93+
mavenContent { snapshotsOnly() }
94+
content {
95+
includeGroup("com.soulfiremc")
96+
}
97+
}
9098
mavenCentral()
9199
}
92100
}

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[versions]
22
minecraft = "1.21.11_unobfuscated"
33
fabric-loader = "0.18.4"
4-
soulfire = "2.5.7"
4+
soulfire = "2.9.1-SNAPSHOT"
55

66
[plugins]
77

src/main/java/com/soulfiremc/pluginexample/ExampleServerExtension.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import com.soulfiremc.server.api.ExternalPlugin;
2121
import com.soulfiremc.server.api.PluginInfo;
22+
import com.soulfiremc.server.api.event.bot.ChatMessageReceiveEvent;
2223
import com.soulfiremc.server.api.event.lifecycle.InstanceSettingsRegistryInitEvent;
2324
import com.soulfiremc.server.settings.lib.SettingsObject;
2425
import com.soulfiremc.server.settings.lib.SettingsSource;
@@ -50,6 +51,17 @@ public void onSettingsRegistryInit(InstanceSettingsRegistryInitEvent event) {
5051
log.info("Run \"jump\" to see the hacked jump boost!");
5152
}
5253

54+
/// Reference usage of the plugin runtime stats API: count chat messages each
55+
/// bot observes and expose it as a live counter on the instance overview.
56+
@EventHandler
57+
public void onChatMessage(ChatMessageReceiveEvent event) {
58+
var connection = event.connection();
59+
var stats = connection.instanceManager().pluginStats().forPlugin(pluginInfo());
60+
stats.trackBot(connection.accountProfileId());
61+
stats.counter("chat_messages_seen", "Chat messages seen", "messages", "minecraft:writable_book")
62+
.increment();
63+
}
64+
5365
@NoArgsConstructor(access = AccessLevel.NONE)
5466
public static class HackJumpBoostSettings implements SettingsObject {
5567
private static final String NAMESPACE = "hack-jump-boost";

src/main/java/com/soulfiremc/pluginexample/mixin/EntityEffectStateMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public class EntityEffectStateMixin {
3232
@Inject(method = "tick", at = @At(value = "HEAD"))
3333
private void localPlayerTick(CallbackInfo ci) {
3434
var localPlayer = (LocalPlayer) (Object) this;
35-
var botConnection = BotConnection.CURRENT.get();
35+
var botConnection = BotConnection.current();
3636
if (botConnection.settingsSource().get(ExampleServerExtension.HackJumpBoostSettings.ENABLED)) {
3737
localPlayer.addEffect(new MobEffectInstance(
3838
MobEffects.JUMP_BOOST,

0 commit comments

Comments
 (0)