Files
Unstable Kitsune b918192e4e Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
2023-11-28 23:20:26 -05:00

89 lines
2.5 KiB
C#

using System;
using System.IO;
using System.Collections;
using Server;
namespace Knives.Chat3
{
public enum MsgType { Normal, Invite, System }
public class Message
{
public static bool CanMessage(Mobile from, Mobile to)
{
if (from.AccessLevel > to.AccessLevel)
return true;
Data df = Data.GetData(from);
Data dt = Data.GetData(to);
if (df.Banned || dt.Banned)
return false;
if (df.FriendsOnly && !df.Friends.Contains(to))
return false;
if (dt.FriendsOnly && !dt.Friends.Contains(from))
return false;
if (df.Ignores.Contains(to))
return false;
if (dt.Ignores.Contains(from))
return false;
if (dt.Messages.Count >= Data.MaxMsgs)
return false;
return true;
}
private Mobile c_From;
private string c_Msg, c_Subject;
private MsgType c_Type;
private DateTime c_Received;
private bool c_Read;
public Mobile From { get { return c_From; } }
public string Msg { get { return c_Msg; } }
public string Subject { get { return c_Subject; } }
public MsgType Type { get { return c_Type; } }
public DateTime Received { get { return c_Received; } }
public bool Read { get { return c_Read; } set { c_Read = value; } }
public Message()
{
c_Msg = "";
c_Subject = "";
}
public Message(Mobile from, string sub, string msg, MsgType type)
{
c_From = from;
c_Msg = msg;
c_Subject = sub;
c_Type = type;
c_Received = DateTime.Now;
}
public void Save(GenericWriter writer)
{
writer.Write(0); // Version
writer.Write(c_From);
writer.Write(c_Msg);
writer.Write(c_Subject);
writer.Write((int)c_Type);
writer.Write(c_Received);
writer.Write(c_Read);
}
public void Load(GenericReader reader)
{
int version = reader.ReadInt();
c_From = reader.ReadMobile();
c_Msg = reader.ReadString();
c_Subject = reader.ReadString();
c_Type = (MsgType)reader.ReadInt();
c_Received = reader.ReadDateTime();
c_Read = reader.ReadBool();
}
}
}