From 47bb453178c3e9a13daa5efa0f50cebef662bc55 Mon Sep 17 00:00:00 2001 From: Kodi Craft Date: Wed, 9 Oct 2024 12:19:50 +0200 Subject: [PATCH] "Implement" "chat" --- apps/amethyst/lib/states/play.ex | 4 ++++ apps/example_game/lib/example/game.ex | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/apps/amethyst/lib/states/play.ex b/apps/amethyst/lib/states/play.ex index 297cc65..92447b3 100644 --- a/apps/amethyst/lib/states/play.ex +++ b/apps/amethyst/lib/states/play.ex @@ -135,6 +135,10 @@ defmodule Amethyst.ConnectionState.Play do Macros.defpacket_clientbound :set_center_chunk, 0x54, 767, [ chunk_x: :varint, chunk_z: :varint ] + Macros.defpacket_clientbound :system_chat_message, 0x6C, 767, [ + content: :nbt, + overlay: :bool + ] Macros.defpacket_clientbound :game_event, 0x22, 767, [ event: :ubyte, value: :float diff --git a/apps/example_game/lib/example/game.ex b/apps/example_game/lib/example/game.ex index b71f404..e179b2a 100644 --- a/apps/example_game/lib/example/game.ex +++ b/apps/example_game/lib/example/game.ex @@ -5,6 +5,8 @@ defmodule Example.Game do @moduledoc """ Example game used for testing Amethyst. """ +require Amethyst.NBT.Write +alias Amethyst.NBT @impl true def instantiate(supervisor) do @@ -42,6 +44,11 @@ defmodule Example.Game do @impl true def chat(from, message, _state_refs) do Logger.info("Player at #{inspect(from)} said: #{inspect(message)}") + send(from, {:send_packet, %{ + packet_type: :system_chat_message, + content: NBT.Write.compound(%{"text" => NBT.Write.string("You said: #{message}")}), + overlay: false + }}) :ok end