Skip to content

Commit

Permalink
update senders and handlers
Browse files Browse the repository at this point in the history
  • Loading branch information
slonkazoid committed May 23, 2024
1 parent c6fe994 commit f78297c
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 5 deletions.
10 changes: 7 additions & 3 deletions src/main/java/de/mari_023/pressalttomeow/PressAltToMeow.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.networking.v1.PacketByteBufs;
import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry;
import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents;
import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking;
import net.minecraft.network.codec.StreamCodec;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.sounds.SoundEvent;
Expand All @@ -15,19 +17,21 @@
import java.util.WeakHashMap;

public class PressAltToMeow implements ModInitializer {
public static final ResourceLocation NETWORK_CHANNEL = new ResourceLocation("pressalttomeow", "m");
private static final WeakHashMap<ServerPlayer, Long> LAST_MEOW = new WeakHashMap<>();
private static final Random RANDOM = new Random();

@Override
public void onInitialize() {
ServerPlayNetworking.registerGlobalReceiver(NETWORK_CHANNEL, (server, player, handler, buf, packetSender) -> server.execute(() -> {
PayloadTypeRegistry.playC2S().register(MeowPayload.TYPE, MeowPayload.CODEC);
PayloadTypeRegistry.playS2C().register(MeowPayload.TYPE, MeowPayload.CODEC);
ServerPlayNetworking.registerGlobalReceiver(MeowPayload.TYPE, (payload, context) -> context.player().getServer().execute(() -> {
var player = context.player();
if (!player.isSpectator() && (!LAST_MEOW.containsKey(player) || System.currentTimeMillis() - LAST_MEOW.get(player) > 1000)) {
playSound(player, defaultSounds());
LAST_MEOW.put(player, System.currentTimeMillis());
}
}));
ServerPlayConnectionEvents.JOIN.register((handler, sender, server) -> ServerPlayNetworking.send(handler.player, PressAltToMeow.NETWORK_CHANNEL, PacketByteBufs.create()));
ServerPlayConnectionEvents.JOIN.register((handler, sender, server) -> ServerPlayNetworking.send(handler.player, new MeowPayload()));
}

private static void playSound(ServerPlayer player, SoundEvent soundEvent) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
package de.mari_023.pressalttomeow.client;

import com.mojang.blaze3d.platform.InputConstants;
import de.mari_023.pressalttomeow.MeowPayload;
import de.mari_023.pressalttomeow.PressAltToMeow;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.fabricmc.fabric.api.networking.v1.PacketByteBufs;
import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry;
import net.minecraft.client.KeyMapping;
import net.minecraft.client.Minecraft;
import net.minecraft.network.codec.StreamCodec;
import net.minecraft.sounds.SoundSource;
import org.lwjgl.glfw.GLFW;

Expand All @@ -23,13 +26,13 @@ public void onInitializeClient() {
ClientTickEvents.END_CLIENT_TICK.register(client -> {
while (keyBinding.consumeClick()) {
if (System.currentTimeMillis() - LAST_MEOW > 1000) {
if (isOnServer) ClientPlayNetworking.send(PressAltToMeow.NETWORK_CHANNEL, PacketByteBufs.create());
if (isOnServer) ClientPlayNetworking.send(new MeowPayload());
else meow();
LAST_MEOW = System.currentTimeMillis();
}
}
});
ClientPlayNetworking.registerGlobalReceiver(PressAltToMeow.NETWORK_CHANNEL, (client, handler, buf, packetSender) -> isOnServer = true);
ClientPlayNetworking.registerGlobalReceiver(MeowPayload.TYPE, (payload, context) -> isOnServer = true);
}

private void meow() {
Expand Down

0 comments on commit f78297c

Please sign in to comment.