Skip to main content

nil_core/world/
chat.rs

1// Copyright (C) Call of Nil contributors
2// SPDX-License-Identifier: AGPL-3.0-only
3
4use crate::chat::{Chat, ChatMessage, ChatMessageId, ChatMessageKind};
5use crate::player::PlayerId;
6use crate::world::World;
7
8impl World {
9  #[inline]
10  pub fn chat(&self) -> &Chat {
11    &self.chat
12  }
13
14  pub fn push_chat_message(&mut self, author: PlayerId, message: &str) -> ChatMessageId {
15    let message = ChatMessage::builder(message)
16      .author(author)
17      .kind(ChatMessageKind::Default)
18      .build();
19
20    let id = message.id();
21    self.chat.push(message.clone());
22    self.emit_chat_updated(message);
23
24    id
25  }
26}