I get this error
- Code: Select all
Type: NullReferenceException
Source: Cmdignore
Message: Object reference not set to an instance of an object.
Target: Use
Trace: at MCDzienny.CmdIgnore.Use(Player p, String message)
at MCDzienny.Player.<>c__DisplayClass26.<HandleCommand>b__21()
I've tried many things but I just keep ending up with that error.
It happens when I do /ignore remove.
Here is the code to the ignore command (not finished)
- Code: Select all
using System;
namespace MCDzienny
{
public class CmdIgnore : Command
{
ChatType current;
public override string name { get { return "ignore"; } }
public override string shortcut { get { return ""; } }
public override string type { get { return "other"; } }
public override bool museumUsable { get { return false; } }
public override LevelPermission defaultRank { get { return LevelPermission.Guest; } }
public override bool ConsoleAccess { get { return false; } }
public override void Init()
{
Player.ChatOther += new EventHandler<ChatOtherEventArgs>(Player_ChatOther);
}
public void Player_ChatOther(object sender, ChatOtherEventArgs e)
{
switch (current)
{
case ChatType.CrossMaps:
if (e.To.ExtraData.ContainsKey("ignore"))
{
if (!e.To.ExtraData["ignore"].ToString().Contains(e.From.PublicName))
{
Player.SendMessage(e.To, e.Message);
}
}
return;
case ChatType.Map:
if (e.To.level == e.From.level)
{
if (e.To.ExtraData.ContainsKey("ignore"))
{
if (!e.To.ExtraData["ignore"].ToString().Contains(e.From.PublicName))
{
Player.SendMessage(e.To, e.Message);
}
}
}
return;
}
}
public override void Use(Player p, string message)
{
if (!p.ExtraData.ContainsKey("ignore"))
{
p.ExtraData.Add("ignore", "");
}
if (message == "list")
{
Player.SendMessage(p, "Ignore List %a-----");
Player.SendMessage(p, (string)p.ExtraData["ignore"]);
Player.SendMessage(p, "Ignore List %a-----");
}
else if (message == "remove")
{
Player who;
try
{
who = Player.Find(message.Split(' ')[1]);
}
catch
{
Help(p);
return;
}
if (p.ExtraData["ignore"].ToString().Contains(who.PublicName))
{
string edit = (string)p.ExtraData["ignore"];
Player.SendMessage(p, "string");
p.ExtraData["ignore"] = edit.Replace(who.PublicName + ",", "");
Player.SendMessage(p, "second");
}
else
{
Player.SendMessage(p, who.PublicName + " is not on your ignore list.");
}
}
else
{
Player who;
try
{
who = Player.Find(message);
}
catch
{
Help(p);
return;
}
if (!p.ExtraData["ignore"].ToString().Contains(who.PublicName))
{
p.ExtraData["ignore"] = who.PublicName + ", " + p.ExtraData["ignore"];
Player.SendMessage(p, who.PublicName + " is now on your ignore list.");
}
else
{
Player.SendMessage(p, who.PublicName + " is already on your ignore list.");
}
}
}
public override void Help(Player p)
{
Player.SendMessage(p, "/ignore list -- returns all of the people you have ignored");
}
}
}