The Battle for Wesnoth 1.21.0-dev
 
Loading...
Searching...
No Matches
player.hpp
Go to the documentation of this file.
1/*
2 Copyright (C) 2003 - 2025
3 by David White <dave@whitevine.net>
4 Part of the Battle for Wesnoth Project https://www.wesnoth.org/
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY.
12
13 See the COPYING file for more details.
14*/
15
16#pragma once
17
19
20#include <chrono>
21#include <set>
22
23namespace wesnothd {
24
25class player
26{
27public:
33
34 player(const std::string& n,
36 long id,
37 bool registered,
38 const std::string& version,
39 const std::string& source,
40 unsigned long long login_id,
41 const std::size_t max_messages = 4,
42 const std::chrono::seconds& time_period = std::chrono::seconds{10},
43 const bool moderator = false);
44
45 void set_status(STATUS status);
46
47 // mark a player as member of the game 'game_id' or as located in the lobby
48 void mark_available(const int game_id=0, const std::string& location="");
49
50 //Mark a player as registered if he has authorized
51 void mark_registered(bool registered =true);
52 bool registered() const {return registered_;}
53
54
55 const std::string& name() const { return name_; }
56 const std::string& version() const { return version_; }
57 const std::string& source() const { return source_; }
58 const simple_wml::node* config_address() const { return &cfg_; }
59
61
62 void set_moderator(bool moderator) { moderator_ = moderator; }
63 bool is_moderator() const { return moderator_; }
64
65 unsigned long long get_login_id() const { return login_id_; };
66
67 void add_queue(int queue_id) { in_queues_.emplace(queue_id); }
68 void clear_queues() { in_queues_.clear(); }
69 void remove_from_queue(int queue_id) { in_queues_.erase(queue_id); }
70 const std::set<int>& get_queues() const { return in_queues_; }
71
72private:
73 const std::string name_;
74 std::string version_;
75 std::string source_;
77
79
80 std::chrono::steady_clock::time_point flood_start_;
82 const std::size_t MaxMessages;
83 const std::chrono::seconds TimePeriod;
86 unsigned long long login_id_;
87 std::set<int> in_queues_;
88};
89
90} //namespace wesnothd
const std::set< int > & get_queues() const
Definition player.hpp:70
void mark_available(const int game_id=0, const std::string &location="")
Definition player.cpp:69
const std::size_t MaxMessages
Definition player.hpp:82
const std::string & version() const
Definition player.hpp:56
const std::string & name() const
Definition player.hpp:55
std::string source_
Definition player.hpp:75
void remove_from_queue(int queue_id)
Definition player.hpp:69
const std::string & source() const
Definition player.hpp:57
std::set< int > in_queues_
Definition player.hpp:87
void set_status(STATUS status)
Definition player.cpp:49
const simple_wml::node * config_address() const
Definition player.hpp:58
simple_wml::node & cfg_
Definition player.hpp:76
unsigned int messages_since_flood_start_
Definition player.hpp:81
std::chrono::steady_clock::time_point flood_start_
Definition player.hpp:80
void mark_registered(bool registered=true)
Definition player.cpp:82
bool registered() const
Definition player.hpp:52
std::string version_
Definition player.hpp:74
void set_moderator(bool moderator)
Definition player.hpp:62
unsigned long long get_login_id() const
Definition player.hpp:65
const std::chrono::seconds TimePeriod
Definition player.hpp:83
void clear_queues()
Definition player.hpp:68
bool is_moderator() const
Definition player.hpp:63
unsigned long long login_id_
Definition player.hpp:86
void add_queue(int queue_id)
Definition player.hpp:67
const std::string name_
Definition player.hpp:73
bool is_message_flooding()
Definition player.cpp:88
const config * cfg
static map_location::direction n