1
0
mirror of https://github.com/SquidDev-CC/CC-Tweaked synced 2025-09-02 02:27:56 +00:00

Fix crash playing a music disc from drive on server.

#48
This commit is contained in:
ToadDev
2021-06-03 21:54:28 -07:00
parent 7c0664b9f2
commit 80c2fc68aa
3 changed files with 20 additions and 2 deletions

View File

@@ -0,0 +1,12 @@
package dan200.computercraft.fabric.mixin;
import net.minecraft.item.MusicDiscItem;
import net.minecraft.sound.SoundEvent;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(MusicDiscItem.class)
public interface MusicDiscItemAccessor {
@Accessor
SoundEvent getSound();
}

View File

@@ -10,6 +10,7 @@ import javax.annotation.Nonnull;
import dan200.computercraft.api.media.IMedia;
import dan200.computercraft.fabric.mixin.MusicDiscItemAccessor;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.MusicDiscItem;
@@ -42,6 +43,10 @@ public final class RecordMedia implements IMedia {
@Override
public SoundEvent getAudio(@Nonnull ItemStack stack) {
return ((MusicDiscItem) stack.getItem()).getSound();
Item item = stack.getItem();
if (!(item instanceof MusicDiscItem)) {
return null;
}
return ((MusicDiscItemAccessor) item).getSound();
}
}

View File

@@ -11,7 +11,8 @@
"SignBlockEntityAccess",
"SoundEventAccess",
"WorldSavePathAccess",
"MixinServerPlayerInteractionManager"
"MixinServerPlayerInteractionManager",
"MusicDiscItemAccessor"
],
"client": [
"AffineTransformationAccess",