minecraft-src/net/minecraft/client/multiplayer/chat/LoggedChatEvent.java
2025-07-04 02:00:41 +03:00

40 lines
1.3 KiB
Java

package net.minecraft.client.multiplayer.chat;
import com.mojang.serialization.Codec;
import com.mojang.serialization.MapCodec;
import java.util.function.Supplier;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.multiplayer.chat.LoggedChatMessage.Player;
import net.minecraft.client.multiplayer.chat.LoggedChatMessage.System;
import net.minecraft.util.StringRepresentable;
@Environment(EnvType.CLIENT)
public interface LoggedChatEvent {
Codec<LoggedChatEvent> CODEC = StringRepresentable.fromEnum(LoggedChatEvent.Type::values).dispatch(LoggedChatEvent::type, LoggedChatEvent.Type::codec);
LoggedChatEvent.Type type();
@Environment(EnvType.CLIENT)
public static enum Type implements StringRepresentable {
PLAYER("player", () -> Player.CODEC),
SYSTEM("system", () -> System.CODEC);
private final String serializedName;
private final Supplier<MapCodec<? extends LoggedChatEvent>> codec;
private Type(final String serializedName, final Supplier<MapCodec<? extends LoggedChatEvent>> codec) {
this.serializedName = serializedName;
this.codec = codec;
}
private MapCodec<? extends LoggedChatEvent> codec() {
return (MapCodec<? extends LoggedChatEvent>)this.codec.get();
}
@Override
public String getSerializedName() {
return this.serializedName;
}
}
}