Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-24 07:10:10 +01:00
Fix broken null contract with Jukebox.setPlaying, Fixes BUKKIT-3429
The javadocs state that a null may be used to remove the currently playing sound, however this causes a NullPointerException. It also doesn't process registering the record correctly, along with processing non-valid items.
Dieser Commit ist enthalten in:
Ursprung
d834ca4c6c
Commit
6a499c8589
@ -23,14 +23,20 @@ public class CraftJukebox extends CraftBlockState implements Jukebox {
|
||||
}
|
||||
|
||||
public Material getPlaying() {
|
||||
return Material.getMaterial(jukebox.record.id);
|
||||
ItemStack record = jukebox.record;
|
||||
if (record == null) {
|
||||
return Material.AIR;
|
||||
}
|
||||
return Material.getMaterial(record.id);
|
||||
}
|
||||
|
||||
public void setPlaying(Material record) {
|
||||
if (record == null) {
|
||||
if (record == null || Item.byId[record.getId()] == null) {
|
||||
record = Material.AIR;
|
||||
}
|
||||
jukebox.record = null;
|
||||
} else {
|
||||
jukebox.record = new ItemStack(Item.byId[record.getId()], 1);
|
||||
}
|
||||
jukebox.update();
|
||||
if (record == Material.AIR) {
|
||||
world.getHandle().setData(getX(), getY(), getZ(), 0);
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren