Compare commits

..

1 Commits

Author SHA1 Message Date
f94f7acb59 chore/fix: use MUSIC sound category for plot music 2024-01-20 22:42:39 +01:00
2 changed files with 16 additions and 18 deletions

View File

@ -40,6 +40,7 @@ import io.papermc.lib.PaperLib;
import net.kyori.adventure.audience.Audience; import net.kyori.adventure.audience.Audience;
import org.bukkit.GameMode; import org.bukkit.GameMode;
import org.bukkit.Sound; import org.bukkit.Sound;
import org.bukkit.SoundCategory;
import org.bukkit.WeatherType; import org.bukkit.WeatherType;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.Event; import org.bukkit.event.Event;
@ -51,7 +52,6 @@ import org.bukkit.potion.PotionEffectType;
import org.checkerframework.checker.index.qual.NonNegative; import org.checkerframework.checker.index.qual.NonNegative;
import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.NonNull;
import java.util.Arrays;
import java.util.Set; import java.util.Set;
import java.util.UUID; import java.util.UUID;
@ -309,18 +309,21 @@ public class BukkitPlayer extends PlotPlayer<Player> {
@Override @Override
public void playMusic(final @NonNull Location location, final @NonNull ItemType id) { public void playMusic(final @NonNull Location location, final @NonNull ItemType id) {
if (id == ItemTypes.AIR) { if (id == ItemTypes.AIR) {
// Let's just stop all the discs because why not? if (PlotSquared.platform().serverVersion()[1] >= 19) {
for (final Sound sound : Arrays.stream(Sound.values()) player.stopSound(SoundCategory.MUSIC);
.filter(sound -> sound.name().contains("DISC")).toList()) { return;
player.stopSound(sound);
} }
// this.player.playEffect(BukkitUtil.getLocation(location), Effect.RECORD_PLAY, Material.AIR); // 1.18 and downwards require a specific Sound to stop (even tho the packet does not??)
} else { for (final Sound sound : Sound.values()) {
// this.player.playEffect(BukkitUtil.getLocation(location), Effect.RECORD_PLAY, id.to(Material.class)); if (sound.name().startsWith("MUSIC_DISC")) {
this.player.playSound(BukkitUtil.adapt(location), this.player.stopSound(sound, SoundCategory.MUSIC);
Sound.valueOf(BukkitAdapter.adapt(id).name()), Float.MAX_VALUE, 1f }
); }
return;
} }
this.player.playSound(BukkitUtil.adapt(location), Sound.valueOf(BukkitAdapter.adapt(id).name()),
SoundCategory.MUSIC, 1f, 1f
);
} }
@SuppressWarnings("deprecation") // Needed for Spigot compatibility @SuppressWarnings("deprecation") // Needed for Spigot compatibility

View File

@ -37,9 +37,7 @@ import com.sk89q.worldedit.regions.CuboidRegion;
import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.biome.BiomeType;
import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.NonNull;
import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.nullness.qual.Nullable;
import org.jetbrains.annotations.NotNull;
import java.util.Objects;
import java.util.Set; import java.util.Set;
public class FaweRegionManager extends BukkitRegionManager { public class FaweRegionManager extends BukkitRegionManager {
@ -61,10 +59,7 @@ public class FaweRegionManager extends BukkitRegionManager {
@Nullable PlotPlayer<?> actor, @Nullable PlotPlayer<?> actor,
@Nullable QueueCoordinator queue @Nullable QueueCoordinator queue
) { ) {
return delegate.setCuboids( return delegate.setCuboids(area, regions, blocks, minY, maxY, queue.getCompleteTask());
area, regions, blocks, minY, maxY,
Objects.requireNonNullElseGet(queue, area::getQueue).getCompleteTask()
);
} }
@Override @Override
@ -116,7 +111,7 @@ public class FaweRegionManager extends BukkitRegionManager {
} }
@Override @Override
public boolean regenerateRegion(final @NotNull Location pos1, final @NotNull Location pos2, boolean ignore, final Runnable whenDone) { public boolean regenerateRegion(final Location pos1, final Location pos2, boolean ignore, final Runnable whenDone) {
return delegate.regenerateRegion(pos1, pos2, ignore, whenDone); return delegate.regenerateRegion(pos1, pos2, ignore, whenDone);
} }