protected virtual void OnPresenceStatusChanged(PresenceStatusChangedEventArgs e) { Trace.Call(e); if (PresenceStatusChanged != null) { PresenceStatusChanged(this, e); } var hooks = new HookRunner("engine", "protocol-manager", "on-presence-status-changed"); hooks.EnvironmentVariables.Add("PRESENCE_STATUS_CHANGED_OLD_STATUS", e.OldStatus.ToString()); hooks.EnvironmentVariables.Add("PRESENCE_STATUS_CHANGED_NEW_STATUS", e.NewStatus.ToString()); hooks.EnvironmentVariables.Add("PRESENCE_STATUS_CHANGED_NEW_MESSAGE", e.NewMessage); hooks.Environments.Add(new ProtocolManagerHookEnvironment(this)); var cmdChar = (string)Session.UserConfig["Interface/Entry/CommandCharacter"]; hooks.Commands.Add(new SessionHookCommand(Session, Chat, cmdChar)); hooks.Commands.Add(new ProtocolManagerHookCommand(this, Chat, cmdChar)); // show time hooks.Init(); hooks.Run(); }
public virtual void SetPresenceStatus(PresenceStatus status, string message) { var args = new PresenceStatusChangedEventArgs(_PresenceStatus, status, message); _PresenceStatus = status; if (args.OldStatus != args.NewStatus) { OnPresenceStatusChanged(args); } }