Skip to content

Commit 2ed94f1

Browse files
authored
Add provider to use new Paper advancement API (#4588)
Paper added in PaperMC/Paper@40ee634
1 parent 70045c3 commit 2ed94f1

File tree

3 files changed

+33
-3
lines changed

3 files changed

+33
-3
lines changed

EssentialsDiscord/src/main/java/net/essentialsx/discord/JDADiscordService.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import net.dv8tion.jda.api.utils.cache.CacheFlag;
2222
import net.ess3.nms.refl.providers.AchievementListenerProvider;
2323
import net.ess3.nms.refl.providers.AdvancementListenerProvider;
24+
import net.ess3.provider.providers.PaperAdvancementListenerProvider;
2425
import net.essentialsx.api.v2.events.discord.DiscordMessageEvent;
2526
import net.essentialsx.api.v2.services.discord.DiscordService;
2627
import net.essentialsx.api.v2.services.discord.InteractionController;
@@ -207,7 +208,12 @@ public void startup() throws LoginException, InterruptedException {
207208

208209
try {
209210
if (VersionUtil.getServerBukkitVersion().isHigherThanOrEqualTo(VersionUtil.v1_12_0_R01)) {
210-
Bukkit.getPluginManager().registerEvents(new AdvancementListenerProvider(), plugin);
211+
try {
212+
Class.forName("io.papermc.paper.advancement.AdvancementDisplay");
213+
Bukkit.getPluginManager().registerEvents(new PaperAdvancementListenerProvider(), plugin);
214+
} catch (ClassNotFoundException e) {
215+
Bukkit.getPluginManager().registerEvents(new AdvancementListenerProvider(), plugin);
216+
}
211217
} else {
212218
Bukkit.getPluginManager().registerEvents(new AchievementListenerProvider(), plugin);
213219
}

providers/PaperProvider/build.gradle

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,14 @@ plugins {
22
id("essentials.base-conventions")
33
}
44

5+
java {
6+
disableAutoTargetJvm()
7+
}
8+
59
dependencies {
610
implementation project(':providers:BaseProviders')
7-
compileOnly 'com.destroystokyo.paper:paper-api:1.16.5-R0.1-SNAPSHOT'
8-
compileOnly 'com.destroystokyo.paper:paper-mojangapi:1.16.5-R0.1-SNAPSHOT'
11+
compileOnly 'io.papermc.paper:paper-api:1.17.1-R0.1-SNAPSHOT'
12+
compileOnly 'io.papermc.paper:paper-mojangapi:1.17.1-R0.1-SNAPSHOT'
913
}
1014

1115
essentials {
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package net.ess3.provider.providers;
2+
3+
import io.papermc.paper.advancement.AdvancementDisplay;
4+
import net.ess3.provider.AbstractAchievementEvent;
5+
import org.bukkit.Bukkit;
6+
import org.bukkit.event.EventHandler;
7+
import org.bukkit.event.EventPriority;
8+
import org.bukkit.event.Listener;
9+
import org.bukkit.event.player.PlayerAdvancementDoneEvent;
10+
11+
public class PaperAdvancementListenerProvider implements Listener {
12+
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
13+
public void onAdvancement(final PlayerAdvancementDoneEvent event) {
14+
final AdvancementDisplay display = event.getAdvancement().getDisplay();
15+
if (display != null && display.doesAnnounceToChat()) {
16+
//noinspection deprecation
17+
Bukkit.getPluginManager().callEvent(new AbstractAchievementEvent(event.getPlayer(), Bukkit.getUnsafe().plainComponentSerializer().serialize(display.title())));
18+
}
19+
}
20+
}

0 commit comments

Comments
 (0)