1 #ifndef _SERVER_PLAYER_H_
2 #define _SERVER_PLAYER_H_
4 #include <dragonnet/peer.h>
5 #include <dragonstd/refcount.h>
11 u64 id; // unique identifier
12 Refcount rc; // delete yourself if no one cares about you
14 DragonnetPeer *peer; // not to be confused with beer
15 pthread_rwlock_t lock_peer; // programming socks make you 100% cuter
17 bool auth; // YES OR NO I DEMAND AN ANSWER
18 char *name; // player name
19 pthread_rwlock_t lock_auth; // poggers based cringe
21 v3f64 pos; // player position
22 v3f32 rot; // you wont guess what this is
23 pthread_rwlock_t lock_pos; // git commit crime
26 void server_player_init();
27 void server_player_deinit();
29 void server_player_add(DragonnetPeer *peer);
30 void server_player_remove(DragonnetPeer *peer);
32 ServerPlayer *server_player_grab(u64 id);
33 ServerPlayer *server_player_grab_named(char *name);
35 bool server_player_auth(ServerPlayer *player, char *name);
36 void server_player_disconnect(ServerPlayer *player);
37 void server_player_iterate(void *func, void *arg);
39 #endif // _SERVER_PLAYER_H_