Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-20 05:20:07 +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() {
|
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) {
|
public void setPlaying(Material record) {
|
||||||
if (record == null) {
|
if (record == null || Item.byId[record.getId()] == null) {
|
||||||
record = Material.AIR;
|
record = Material.AIR;
|
||||||
}
|
jukebox.record = null;
|
||||||
|
} else {
|
||||||
jukebox.record = new ItemStack(Item.byId[record.getId()], 1);
|
jukebox.record = new ItemStack(Item.byId[record.getId()], 1);
|
||||||
|
}
|
||||||
jukebox.update();
|
jukebox.update();
|
||||||
if (record == Material.AIR) {
|
if (record == Material.AIR) {
|
||||||
world.getHandle().setData(getX(), getY(), getZ(), 0);
|
world.getHandle().setData(getX(), getY(), getZ(), 0);
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren