Add Adventure message to PlayerAdvancementDoneEvent

This commit is contained in:
Alvinn8 2021-01-08 20:29:58 +01:00
parent b00a393416
commit 8ee512d806

View file

@ -4,6 +4,10 @@ import org.bukkit.advancement.Advancement;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList; import org.bukkit.event.HandlerList;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
// Paper start
import org.jetbrains.annotations.Nullable;
import net.kyori.adventure.text.Component;
// Paper end
/** /**
* Called when a player has completed all criteria in an advancement. * Called when a player has completed all criteria in an advancement.
@ -13,10 +17,17 @@ public class PlayerAdvancementDoneEvent extends PlayerEvent {
private static final HandlerList handlers = new HandlerList(); private static final HandlerList handlers = new HandlerList();
// //
private final Advancement advancement; private final Advancement advancement;
private Component message; // Paper - Add Adventure message
public PlayerAdvancementDoneEvent(@NotNull Player who, @NotNull Advancement advancement) { public PlayerAdvancementDoneEvent(@NotNull Player who, @NotNull Advancement advancement) {
// Paper start - Add Adventure message
this(who, advancement, null);
}
public PlayerAdvancementDoneEvent(@NotNull Player who, @NotNull Advancement advancement, @Nullable Component message) {
// Paper end
super(who); super(who);
this.advancement = advancement; this.advancement = advancement;
this.message = message; // Paper - Add Adventure message
} }
/** /**
@ -29,6 +40,31 @@ public class PlayerAdvancementDoneEvent extends PlayerEvent {
return advancement; return advancement;
} }
// Paper start - Add Adventure message
/**
* Gets the message to send to all online players.
* <p>
* Will be null if the advancement does not announce to chat, for example if
* it is a recipe unlock or a root advancement.
*
* @return The announcement message, or null
*/
@Nullable
public Component message() {
return this.message;
}
/**
* Sets the message to send to all online players.
* <p>
* If set to null the message will not be sent.
*
* @param message The new message
*/
public void message(@Nullable Component message) {
this.message = message;
}
// Paper end
@NotNull @NotNull
@Override @Override
public HandlerList getHandlers() { public HandlerList getHandlers() {