diff --git a/api/src/main/java/net/kyori/adventure/audience/Audience.java b/api/src/main/java/net/kyori/adventure/audience/Audience.java index b244263014..eea79db038 100644 --- a/api/src/main/java/net/kyori/adventure/audience/Audience.java +++ b/api/src/main/java/net/kyori/adventure/audience/Audience.java @@ -24,6 +24,7 @@ package net.kyori.adventure.audience; import java.util.Arrays; +import java.util.Objects; import java.util.stream.Collector; import net.kyori.adventure.bossbar.BossBar; import net.kyori.adventure.identity.Identified; @@ -472,8 +473,9 @@ default void playSound(final @NotNull Sound sound, final double x, final double * @param sound the sound * @since 4.8.0 */ - default void stopSound(final @NonNull Sound sound) { - this.stopSound(sound.stopper()); + @ForwardingAudienceOverrideNotRequired + default void stopSound(final @NotNull Sound sound) { + this.stopSound(Objects.requireNonNull(sound, "sound").asStop()); } /** diff --git a/api/src/main/java/net/kyori/adventure/sound/Sound.java b/api/src/main/java/net/kyori/adventure/sound/Sound.java index ceacb11315..7b1c0a1f09 100644 --- a/api/src/main/java/net/kyori/adventure/sound/Sound.java +++ b/api/src/main/java/net/kyori/adventure/sound/Sound.java @@ -192,7 +192,7 @@ public interface Sound extends Examinable { * @return the sound stop * @since 4.8.0 */ - @NonNull SoundStop stopper(); + @NotNull SoundStop asStop(); /** * The sound source. diff --git a/api/src/main/java/net/kyori/adventure/sound/SoundImpl.java b/api/src/main/java/net/kyori/adventure/sound/SoundImpl.java index 626415e38a..bd2607f731 100644 --- a/api/src/main/java/net/kyori/adventure/sound/SoundImpl.java +++ b/api/src/main/java/net/kyori/adventure/sound/SoundImpl.java @@ -27,7 +27,6 @@ import net.kyori.adventure.util.ShadyPines; import net.kyori.examination.ExaminableProperty; import net.kyori.examination.string.StringExaminer; -import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -35,7 +34,7 @@ abstract class SoundImpl implements Sound { private final Source source; private final float volume; private final float pitch; - private @MonotonicNonNull SoundStop stop; + private SoundStop stop; SoundImpl(final @NotNull Source source, final float volume, final float pitch) { this.source = source; @@ -59,10 +58,8 @@ public float pitch() { } @Override - public @NonNull SoundStop stopper() { - if(this.stop == null) { - this.stop = SoundStop.sound(this); - } + public @NotNull SoundStop asStop() { + if (this.stop == null) this.stop = SoundStop.sound(this); return this.stop; } diff --git a/api/src/main/java/net/kyori/adventure/sound/SoundStop.java b/api/src/main/java/net/kyori/adventure/sound/SoundStop.java index e5b577d39e..0ee78d9727 100644 --- a/api/src/main/java/net/kyori/adventure/sound/SoundStop.java +++ b/api/src/main/java/net/kyori/adventure/sound/SoundStop.java @@ -182,7 +182,7 @@ public interface SoundStop extends Examinable { * @return a sound stopper * @since 4.8.0 */ - static @NonNull SoundStop sound(final @NonNull Sound sound) { + static @NotNull SoundStop sound(final @NotNull Sound sound) { requireNonNull(sound, "sound"); return namedOnSource(sound.name(), sound.source()); }