1 /*
2 Minetest
3 Copyright (C) 2017 nerzhul, Loic Blot <loic.blot@unix-experience.fr>
4 
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU Lesser General Public License as published by
7 the Free Software Foundation; either version 2.1 of the License, or
8 (at your option) any later version.
9 
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 GNU Lesser General Public License for more details.
14 
15 You should have received a copy of the GNU Lesser General Public License along
16 with this program; if not, write to the Free Software Foundation, Inc.,
17 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 */
19 
20 #pragma once
21 
22 #include <string>
23 #include <ctime>
24 
25 enum ChatMessageType
26 {
27 	CHATMESSAGE_TYPE_RAW = 0,
28 	CHATMESSAGE_TYPE_NORMAL = 1,
29 	CHATMESSAGE_TYPE_ANNOUNCE = 2,
30 	CHATMESSAGE_TYPE_SYSTEM = 3,
31 	CHATMESSAGE_TYPE_MAX = 4,
32 };
33 
34 struct ChatMessage
35 {
messageChatMessage36 	ChatMessage(const std::wstring &m = L"") : message(m) {}
37 
38 	ChatMessage(ChatMessageType t, const std::wstring &m, const std::wstring &s = L"",
39 			std::time_t ts = std::time(0)) :
typeChatMessage40 			type(t),
41 			message(m), sender(s), timestamp(ts)
42 	{
43 	}
44 
45 	ChatMessageType type = CHATMESSAGE_TYPE_RAW;
46 	std::wstring message = L"";
47 	std::wstring sender = L"";
48 	std::time_t timestamp = std::time(0);
49 };
50