Skip to main content

nil_core/world/
report.rs

1// Copyright (C) Call of Nil contributors
2// SPDX-License-Identifier: AGPL-3.0-only
3
4use crate::error::Result;
5use crate::player::PlayerId;
6use crate::report::{ReportId, ReportManager};
7use crate::world::World;
8
9impl World {
10  #[inline]
11  pub fn report_manager(&self) -> &ReportManager {
12    &self.report_manager
13  }
14
15  /// Forwards a report to a player.
16  pub fn forward_report(&mut self, id: ReportId, recipient: PlayerId) -> Result<()> {
17    if self
18      .report_manager
19      .forward(id, recipient.clone())
20    {
21      self.emit_report(recipient, id)?;
22    }
23
24    Ok(())
25  }
26
27  /// Removes a report from a player's list of reports.
28  pub fn remove_report_of(&mut self, id: ReportId, player: &PlayerId) {
29    self.report_manager.remove_of(id, player);
30  }
31}