blob: af983ecf3d3f6bfb3b0042fecd1257475c322522 [file] [log] [blame]
#pragma strict_types, rtt_checks, lightweight
#define NEED_PROTOTYPES
#include <player/comm.h>
inherit "/std/player/comm_structs";
private nosave string uuid;
// nosave ist wichtig - niemand soll den buffer mit save_value() auslesen
// koennen!
private nosave struct kobold_msg_s *buffer = ({});
protected void create_lw()
{
uuid = getuuid(previous_object());
}
public string uuid()
{
return uuid;
}
public struct kobold_msg_s *Retrieve()
{
if (uuid == getuuid(previous_object()))
{
return buffer;
}
return 0;
}
public void Empty()
{
if (uuid == getuuid(previous_object()))
{
buffer = ({});
}
}
public int store_msg(string msg, int msg_type, string msg_action,
string msg_prefix, object origin)
{
// Nur KOBOLD in /secure darf Nachrichten speichern und es werden nur
// Nachrichten von Spielern/Magiern gespeichert.
if (object_name(previous_object()) != KOBOLD
|| !query_once_interactive(origin))
return MSG_FAILED;
if (sizeof(buffer) >= MAX_KOBOLD_LIMIT)
return MSG_BUFFER_FULL;
buffer += ({ (<kobold_msg_s> msg:msg, type:msg_type,
prefix: msg_prefix, action: msg_action,
sendername: ({string})origin.query_real_name(),
timestamp: time())
});
return MSG_BUFFERED;
}