blob: 81541d60e57c9d2040cd8b53bbff1dfdd139b4a8 [file] [log] [blame]
Zesstra8b5320e2022-02-18 21:10:26 +01001#pragma strict_types, rtt_checks, lightweight
2
3#define NEED_PROTOTYPES
4#include <player/comm.h>
5
6inherit "/std/player/comm_structs";
7
8nosave string uuid;
9// nosave ist wichtig - niemand soll den buffer mit save_value() auslesen
10// koennen!
11nosave struct stored_msg_s *buffer = ({});
12
13protected void create_lw()
14{
15 uuid = getuuid(previous_object());
16}
17
18public string uuid()
19{
20 return uuid;
21}
22
23public struct stored_msg_s *Retrieve()
24{
25// if (getuid(this_object()) == getuid(previous_object()))
26 {
27 return buffer;
28 }
29 return 0;
30}
31
32public void Empty()
33{
34// if (getuid(this_object()) == getuid(previous_object()))
35 {
36 buffer = ({});
37 }
38}
39
40public int store_msg(string msg, int msg_type, string msg_action,
41 string msg_prefix, object origin)
42{
43 // Nur KOBOLD in /secure darf Nachrichten speichern und es werden nur
44 // Nachrichten von Spielern/Magiern gespeichert.
45 if (object_name(previous_object()) != KOBOLD
46 || !query_once_interactive(origin))
47 return MSG_FAILED;
48 if (sizeof(buffer) >= MAX_KOBOLD_LIMIT)
49 return MSG_BUFFER_FULL;
50
51 buffer += ({ (<stored_msg_s> msg:msg, type:msg_type,
52 prefix: msg_prefix, action: msg_action,
53 sendername: ({string})origin.query_real_name(),
54 timestamp: time())
55 });
56 return MSG_BUFFERED;
57}
58