27 lines
1 KiB
Java
27 lines
1 KiB
Java
package net.minecraft.server.dialog.body;
|
|
|
|
import com.mojang.serialization.Codec;
|
|
import com.mojang.serialization.MapCodec;
|
|
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
|
import net.minecraft.network.chat.Component;
|
|
import net.minecraft.network.chat.ComponentSerialization;
|
|
import net.minecraft.server.dialog.Dialog;
|
|
|
|
public record PlainMessage(Component contents, int width) implements DialogBody {
|
|
public static final int DEFAULT_WIDTH = 200;
|
|
public static final MapCodec<PlainMessage> MAP_CODEC = RecordCodecBuilder.mapCodec(
|
|
instance -> instance.group(
|
|
ComponentSerialization.CODEC.fieldOf("contents").forGetter(PlainMessage::contents),
|
|
Dialog.WIDTH_CODEC.optionalFieldOf("width", 200).forGetter(PlainMessage::width)
|
|
)
|
|
.apply(instance, PlainMessage::new)
|
|
);
|
|
public static final Codec<PlainMessage> CODEC = Codec.withAlternative(
|
|
MAP_CODEC.codec(), ComponentSerialization.CODEC, component -> new PlainMessage(component, 200)
|
|
);
|
|
|
|
@Override
|
|
public MapCodec<PlainMessage> mapCodec() {
|
|
return MAP_CODEC;
|
|
}
|
|
}
|