aboutsummaryrefslogtreecommitdiff
path: root/core/src/server/server_event.rs
blob: f63df5f48c1dcc2ac20b66fb2bd1947aad28b5c0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
use crate::messages::PlayerMessage;
use crate::player::player_info::PlayerInfo;

/// # 监听服务器事件
/// 服务器运行过程中的信息将会发送到该 Event Trait
pub trait PadServerEvent {

    /// 服务器启动时
    fn server_start();

    /// 服务器关闭时
    fn server_shutdown();

    /// 玩家加入请求
    /// info : 玩家信息
    /// return -> 是否允许加入服务器
    fn join_request_received(info: PlayerInfo) -> bool;

    /// 玩家加入游戏
    /// info : 玩家信息
    fn player_joined(info: PlayerInfo);

    /// 玩家离开游戏
    /// info : 玩家信息
    fn player_left(info: PlayerInfo);

    /// 玩家断开连接
    /// info : 玩家信息
    fn player_disconnected(info: PlayerInfo);

    /// 接收到消息
    /// info : 玩家信息
    /// msg : 接受的消息
    fn msg_received(info: PlayerInfo, msg: PlayerMessage);
}