diff --git a/src/main/java/dan200/computercraft/client/proxy/ComputerCraftProxyClient.java b/src/main/java/dan200/computercraft/client/proxy/ComputerCraftProxyClient.java index 6d338db7b..a49f9a396 100644 --- a/src/main/java/dan200/computercraft/client/proxy/ComputerCraftProxyClient.java +++ b/src/main/java/dan200/computercraft/client/proxy/ComputerCraftProxyClient.java @@ -15,7 +15,7 @@ import dan200.computercraft.client.render.TileEntityTurtleRenderer; import dan200.computercraft.client.render.TurtleModelLoader; import dan200.computercraft.client.render.TurtlePlayerRenderer; import dan200.computercraft.client.sound.SpeakerManager; -import dan200.computercraft.fabric.events.ComputerCraftCustomEvents; +import dan200.computercraft.fabric.events.CustomClientEvents; import dan200.computercraft.shared.Registry; import dan200.computercraft.shared.common.ContainerHeldItem; import dan200.computercraft.shared.common.IColouredItem; @@ -70,12 +70,12 @@ public final class ComputerCraftProxyClient implements ClientModInitializer ServerTickEvents.START_SERVER_TICK.register( server -> PauseAwareTimer.tick() ); - ComputerCraftCustomEvents.CLIENT_UNLOAD_WORLD_EVENT.register( () -> { + CustomClientEvents.CLIENT_UNLOAD_WORLD_EVENT.register( () -> { SpeakerManager.reset(); ClientMonitor.destroyAll(); } ); - ComputerCraftCustomEvents.PLAY_STREAMING_AUDIO_EVENT.register( SpeakerManager::playStreaming ); + CustomClientEvents.PLAY_STREAMING_AUDIO_EVENT.register( SpeakerManager::playStreaming ); // Config ClientLifecycleEvents.CLIENT_STARTED.register( Config::clientStarted ); diff --git a/src/main/java/dan200/computercraft/fabric/events/ComputerCraftCustomEvents.java b/src/main/java/dan200/computercraft/fabric/events/CustomClientEvents.java similarity index 68% rename from src/main/java/dan200/computercraft/fabric/events/ComputerCraftCustomEvents.java rename to src/main/java/dan200/computercraft/fabric/events/CustomClientEvents.java index 255a7b25e..482e407a1 100644 --- a/src/main/java/dan200/computercraft/fabric/events/ComputerCraftCustomEvents.java +++ b/src/main/java/dan200/computercraft/fabric/events/CustomClientEvents.java @@ -10,10 +10,8 @@ import net.fabricmc.fabric.api.event.Event; import net.fabricmc.fabric.api.event.EventFactory; import net.minecraft.client.resources.sounds.SoundInstance; import net.minecraft.client.sounds.SoundEngine; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.level.ChunkPos; -public final class ComputerCraftCustomEvents +public class CustomClientEvents { public static final Event CLIENT_UNLOAD_WORLD_EVENT = EventFactory.createArrayBacked( ClientUnloadWorld.class, callbacks -> () -> { @@ -23,14 +21,6 @@ public final class ComputerCraftCustomEvents } } ); - public static final Event SERVER_PLAYER_LOADED_CHUNK_EVENT = EventFactory.createArrayBacked( ServerPlayerLoadedChunk.class, - callbacks -> ( serverPlayer, chunkPos ) -> { - for( ServerPlayerLoadedChunk callback : callbacks ) - { - callback.onServerPlayerLoadedChunk( serverPlayer, chunkPos ); - } - } ); - public static final Event PLAY_STREAMING_AUDIO_EVENT = EventFactory.createArrayBacked( PlayStreamingAudio.class, callbacks -> ( engine, soundInstance, channel ) -> { for( PlayStreamingAudio callback : callbacks ) @@ -46,12 +36,6 @@ public final class ComputerCraftCustomEvents void onClientUnloadWorld(); } - @FunctionalInterface - public interface ServerPlayerLoadedChunk - { - void onServerPlayerLoadedChunk( ServerPlayer player, ChunkPos chunkPos ); - } - @FunctionalInterface public interface PlayStreamingAudio { diff --git a/src/main/java/dan200/computercraft/fabric/events/CustomServerEvents.java b/src/main/java/dan200/computercraft/fabric/events/CustomServerEvents.java new file mode 100644 index 000000000..3f196b729 --- /dev/null +++ b/src/main/java/dan200/computercraft/fabric/events/CustomServerEvents.java @@ -0,0 +1,30 @@ +/* + * This file is part of ComputerCraft - http://www.computercraft.info + * Copyright Daniel Ratcliffe, 2011-2021. Do not distribute without permission. + * Send enquiries to dratcliffe@gmail.com + */ +package dan200.computercraft.fabric.events; + +import net.fabricmc.fabric.api.event.Event; +import net.fabricmc.fabric.api.event.EventFactory; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.level.ChunkPos; + +public final class CustomServerEvents +{ + + public static final Event SERVER_PLAYER_LOADED_CHUNK_EVENT = EventFactory.createArrayBacked( ServerPlayerLoadedChunk.class, + callbacks -> ( serverPlayer, chunkPos ) -> { + for( ServerPlayerLoadedChunk callback : callbacks ) + { + callback.onServerPlayerLoadedChunk( serverPlayer, chunkPos ); + } + } ); + + + @FunctionalInterface + public interface ServerPlayerLoadedChunk + { + void onServerPlayerLoadedChunk( ServerPlayer player, ChunkPos chunkPos ); + } +} diff --git a/src/main/java/dan200/computercraft/fabric/mixin/MixinChunkMap.java b/src/main/java/dan200/computercraft/fabric/mixin/MixinChunkMap.java index 99021a333..4d95bebf9 100644 --- a/src/main/java/dan200/computercraft/fabric/mixin/MixinChunkMap.java +++ b/src/main/java/dan200/computercraft/fabric/mixin/MixinChunkMap.java @@ -5,7 +5,7 @@ */ package dan200.computercraft.fabric.mixin; -import dan200.computercraft.fabric.events.ComputerCraftCustomEvents; +import dan200.computercraft.fabric.events.CustomServerEvents; import net.minecraft.network.protocol.game.ClientboundLevelChunkWithLightPacket; import net.minecraft.server.level.ChunkMap; import net.minecraft.server.level.ServerLevel; @@ -38,7 +38,7 @@ public class MixinChunkMap // { // if( serverPlayer.level == this.level && bl ) // { - // ComputerCraftCustomEvents.SERVER_PLAYER_LOADED_CHUNK_EVENT.invoker().onServerPlayerLoadedChunk( serverPlayer, chunkPos ); + // CustomServerEvents.SERVER_PLAYER_LOADED_CHUNK_EVENT.invoker().onServerPlayerLoadedChunk( serverPlayer, chunkPos ); // } // } @@ -46,7 +46,7 @@ public class MixinChunkMap @Inject( method = "playerLoadedChunk", at = @At( value = "HEAD" ) ) private void playerLoadedChunk( ServerPlayer serverPlayer, MutableObject mutableObject, LevelChunk levelChunk, CallbackInfo ci ) { - ComputerCraftCustomEvents.SERVER_PLAYER_LOADED_CHUNK_EVENT.invoker().onServerPlayerLoadedChunk( serverPlayer, levelChunk.getPos() ); + CustomServerEvents.SERVER_PLAYER_LOADED_CHUNK_EVENT.invoker().onServerPlayerLoadedChunk( serverPlayer, levelChunk.getPos() ); } } diff --git a/src/main/java/dan200/computercraft/fabric/mixin/MixinMinecraft.java b/src/main/java/dan200/computercraft/fabric/mixin/MixinMinecraft.java index 1c7c0b892..eec169388 100644 --- a/src/main/java/dan200/computercraft/fabric/mixin/MixinMinecraft.java +++ b/src/main/java/dan200/computercraft/fabric/mixin/MixinMinecraft.java @@ -6,7 +6,7 @@ package dan200.computercraft.fabric.mixin; import dan200.computercraft.client.FrameInfo; -import dan200.computercraft.fabric.events.ComputerCraftCustomEvents; +import dan200.computercraft.fabric.events.CustomClientEvents; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.multiplayer.ClientLevel; @@ -27,12 +27,12 @@ public abstract class MixinMinecraft @Inject( method = "clearLevel(Lnet/minecraft/client/gui/screens/Screen;)V", at = @At( "RETURN" ) ) private void disconnectAfter( Screen screen, CallbackInfo info ) { - ComputerCraftCustomEvents.CLIENT_UNLOAD_WORLD_EVENT.invoker().onClientUnloadWorld(); + CustomClientEvents.CLIENT_UNLOAD_WORLD_EVENT.invoker().onClientUnloadWorld(); } @Inject( method = "setLevel", at = @At( "RETURN" ) ) private void setLevel( ClientLevel world, CallbackInfo info ) { - ComputerCraftCustomEvents.CLIENT_UNLOAD_WORLD_EVENT.invoker().onClientUnloadWorld(); + CustomClientEvents.CLIENT_UNLOAD_WORLD_EVENT.invoker().onClientUnloadWorld(); } } diff --git a/src/main/java/dan200/computercraft/fabric/mixin/MixinSoundEngine.java b/src/main/java/dan200/computercraft/fabric/mixin/MixinSoundEngine.java index a8ed938ce..fb1b27b73 100644 --- a/src/main/java/dan200/computercraft/fabric/mixin/MixinSoundEngine.java +++ b/src/main/java/dan200/computercraft/fabric/mixin/MixinSoundEngine.java @@ -6,7 +6,7 @@ package dan200.computercraft.fabric.mixin; import com.mojang.blaze3d.audio.Channel; -import dan200.computercraft.fabric.events.ComputerCraftCustomEvents; +import dan200.computercraft.fabric.events.CustomClientEvents; import net.minecraft.client.resources.sounds.SoundInstance; import net.minecraft.client.sounds.AudioStream; import net.minecraft.client.sounds.SoundEngine; @@ -31,7 +31,7 @@ public class MixinSoundEngine ) private static void onStreamingSourcePlay( AudioStream audioStream, Channel channel, CallbackInfo ci ) { - if( ComputerCraftCustomEvents.PLAY_STREAMING_AUDIO_EVENT.invoker().onPlayStreamingAudio( thisCapture, soundInstanceCapture, channel ) ) + if( CustomClientEvents.PLAY_STREAMING_AUDIO_EVENT.invoker().onPlayStreamingAudio( thisCapture, soundInstanceCapture, channel ) ) { ci.cancel(); } diff --git a/src/main/java/dan200/computercraft/shared/peripheral/monitor/MonitorWatcher.java b/src/main/java/dan200/computercraft/shared/peripheral/monitor/MonitorWatcher.java index 76d2e4dc5..5bbfcdc22 100644 --- a/src/main/java/dan200/computercraft/shared/peripheral/monitor/MonitorWatcher.java +++ b/src/main/java/dan200/computercraft/shared/peripheral/monitor/MonitorWatcher.java @@ -6,7 +6,7 @@ package dan200.computercraft.shared.peripheral.monitor; import dan200.computercraft.ComputerCraft; -import dan200.computercraft.fabric.events.ComputerCraftCustomEvents; +import dan200.computercraft.fabric.events.CustomServerEvents; import dan200.computercraft.shared.network.NetworkHandler; import dan200.computercraft.shared.network.client.MonitorClientMessage; import dan200.computercraft.shared.network.client.TerminalState; @@ -36,7 +36,7 @@ public final class MonitorWatcher public static void init() { ServerTickEvents.END_SERVER_TICK.register( MonitorWatcher::onTick ); - ComputerCraftCustomEvents.SERVER_PLAYER_LOADED_CHUNK_EVENT.register( MonitorWatcher::onWatch ); + CustomServerEvents.SERVER_PLAYER_LOADED_CHUNK_EVENT.register( MonitorWatcher::onWatch ); } static void enqueue( TileMonitor monitor )