mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-08-30 17:17:55 +00:00
Separate custom client and server events.
This commit is contained in:
@@ -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 );
|
||||
|
@@ -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<ClientUnloadWorld> CLIENT_UNLOAD_WORLD_EVENT = EventFactory.createArrayBacked( ClientUnloadWorld.class,
|
||||
callbacks -> () -> {
|
||||
@@ -23,14 +21,6 @@ public final class ComputerCraftCustomEvents
|
||||
}
|
||||
} );
|
||||
|
||||
public static final Event<ServerPlayerLoadedChunk> SERVER_PLAYER_LOADED_CHUNK_EVENT = EventFactory.createArrayBacked( ServerPlayerLoadedChunk.class,
|
||||
callbacks -> ( serverPlayer, chunkPos ) -> {
|
||||
for( ServerPlayerLoadedChunk callback : callbacks )
|
||||
{
|
||||
callback.onServerPlayerLoadedChunk( serverPlayer, chunkPos );
|
||||
}
|
||||
} );
|
||||
|
||||
public static final Event<PlayStreamingAudio> 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
|
||||
{
|
@@ -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<ServerPlayerLoadedChunk> 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 );
|
||||
}
|
||||
}
|
@@ -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<ClientboundLevelChunkWithLightPacket> 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() );
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -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();
|
||||
}
|
||||
}
|
||||
|
@@ -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();
|
||||
}
|
||||
|
@@ -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 )
|
||||
|
Reference in New Issue
Block a user