Skip to content

Commit d5bf485

Browse files
committed
Restore menu music overrides.
- Fix menu music overrides (probably) * Super sketchy work-around hopefully resolves #36
1 parent 975fc31 commit d5bf485

File tree

2 files changed

+9
-10
lines changed

2 files changed

+9
-10
lines changed

src/main/java/com/terraformersmc/vistas/mixin/MinecraftClientMixin.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
import net.fabricmc.api.Environment;
88
import net.minecraft.client.MinecraftClient;
99
import net.minecraft.client.RunArgs;
10-
import net.minecraft.client.network.ClientPlayerEntity;
1110
import net.minecraft.resource.ReloadableResourceManagerImpl;
11+
import net.minecraft.server.integrated.IntegratedServer;
1212
import net.minecraft.sound.MusicSound;
1313
import org.jetbrains.annotations.Nullable;
1414
import org.spongepowered.asm.mixin.Final;
@@ -23,17 +23,17 @@
2323

2424
@Environment(EnvType.CLIENT)
2525
@Mixin(MinecraftClient.class)
26-
public class MinecraftClientMixin implements MinecraftClientAccess {
26+
public abstract class MinecraftClientMixin implements MinecraftClientAccess {
2727
@Unique
2828
private PanoramaResourceReloader panoramaResourceReloader;
2929

3030
@Shadow
3131
@Final
3232
private ReloadableResourceManagerImpl resourceManager;
3333

34-
@Nullable
3534
@Shadow
36-
public ClientPlayerEntity player;
35+
@Nullable
36+
private IntegratedServer server;
3737

3838
@Inject(
3939
method = "<init>",
@@ -51,7 +51,7 @@ public class MinecraftClientMixin implements MinecraftClientAccess {
5151

5252
@Inject(method = "getMusicType", at = @At("HEAD"), cancellable = true)
5353
private void vistas$getMusicType(CallbackInfoReturnable<MusicSound> ci) {
54-
if (this.player == null) {
54+
if (this.server == null) {
5555
ci.setReturnValue(VistasTitle.CURRENT.getValue().getMusicSound());
5656
}
5757
}

src/main/java/com/terraformersmc/vistas/panorama/Panorama.java

+4-5
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,9 @@
44
import com.mojang.serialization.Codec;
55
import com.mojang.serialization.codecs.RecordCodecBuilder;
66
import net.minecraft.client.sound.MusicType;
7-
import net.minecraft.registry.Registries;
7+
import net.minecraft.registry.entry.RegistryEntry;
88
import net.minecraft.sound.MusicSound;
99
import net.minecraft.sound.SoundEvent;
10-
import net.minecraft.sound.SoundEvents;
1110
import net.minecraft.util.Identifier;
1211

1312
import java.util.List;
@@ -19,16 +18,16 @@ public class Panorama {
1918
public static final Codec<MusicSound> OPTIONAL_MUSIC_SOUND_CODEC = RecordCodecBuilder.create(
2019
(instance) ->
2120
instance.group(
22-
SoundEvent.CODEC.optionalFieldOf("sound")
23-
.forGetter((sound) -> Optional.of(sound.getSound().value())),
21+
Identifier.CODEC.fieldOf("sound")
22+
.forGetter((sound) -> sound.getSound().getKey().orElseThrow().getValue()),
2423
Codec.INT.optionalFieldOf("min_delay")
2524
.forGetter((sound) -> Optional.of(sound.getMinDelay())),
2625
Codec.INT.optionalFieldOf("max_delay")
2726
.forGetter((sound) -> Optional.of(sound.getMaxDelay())),
2827
Codec.BOOL.optionalFieldOf("replace_current_music")
2928
.forGetter((sound) -> Optional.of(sound.shouldReplaceCurrentMusic()))
3029
)
31-
.apply(instance, (sound, min, max, replace)-> new MusicSound(sound.map(Registries.SOUND_EVENT::getEntry).orElse(SoundEvents.MUSIC_MENU), min.orElse(20), max.orElse(600), replace.orElse(true))));
30+
.apply(instance, (sound, min, max, replace) -> new MusicSound(RegistryEntry.of(SoundEvent.of(sound)), min.orElse(20), max.orElse(600), replace.orElse(true))));
3231

3332
public static final Codec<Panorama> CODEC = RecordCodecBuilder.create(
3433
(instance) ->

0 commit comments

Comments
 (0)