1 #ifndef _SERVER_PLAYER_H_
2 #define _SERVER_PLAYER_H_
6 #include <dragonnet/peer.h>
11 u64 id; // unique identifier
13 pthread_rwlock_t ref; // programming socks make you 100% cuter
16 char *name; // player name
17 pthread_rwlock_t auth_lock; // why
19 v3f64 pos; // player position
20 pthread_rwlock_t pos_lock; // i want to commit die
23 void server_player_init();
24 void server_player_deinit();
26 void server_player_add(DragonnetPeer *peer);
27 void server_player_remove(DragonnetPeer *peer);
29 u64 server_player_find(char *name);
31 ServerPlayer *server_player_grab(u64 id);
32 void server_player_drop(ServerPlayer *player);
34 bool server_player_auth(ServerPlayer *player, char *name);
35 void server_player_disconnect(ServerPlayer *player);
36 void server_player_send_pos(ServerPlayer *player);
37 void server_player_iterate(void (cb)(ServerPlayer *, void *), void *arg);