本文整理汇总了C#中EventManager.CallListeners方法的典型用法代码示例。如果您正苦于以下问题:C# EventManager.CallListeners方法的具体用法?C# EventManager.CallListeners怎么用?C# EventManager.CallListeners使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类EventManager
的用法示例。
在下文中一共展示了EventManager.CallListeners方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Execute
public void Execute(Room room, ref EventManager evMan, Dictionary<string, object> data)
{
// No point parsing all this data if no one's listening.
if (!evMan.ConnectedListeners.ContainsKey(EventType.MessageStarToggled)) { return; }
if (data.ContainsKey("user_id") && room.IgnoreOwnEvents) { return; }
var id = int.Parse(data["message_id"].ToString());
var starCount = 0;
var pinCount = 0;
if (data.ContainsKey("message_stars") && data["message_stars"] != null)
{
starCount = int.Parse(data["message_stars"].ToString());
}
if (data.ContainsKey("message_owner_stars") && data["message_owner_stars"] != null)
{
pinCount = int.Parse(data["message_owner_stars"].ToString());
}
var message = room[id];
evMan.TrackMessage(message);
evMan.CallListeners(EventType.MessageStarToggled, message, starCount, pinCount);
}
示例2: Execute
public void Execute(Room room, ref EventManager evMan, Dictionary<string, object> data)
{
// No point parsing all this data if no one's listening.
if (!evMan.ConnectedListeners.ContainsKey(EventType.UserLeft)) { return; }
var userID = int.Parse(data["user_id"].ToString());
if (userID == room.Me.ID && room.IgnoreOwnEvents) { return; }
var user = room.GetUser(userID);
evMan.TrackUser(user);
evMan.CallListeners(EventType.UserLeft, user);
}
示例3: Execute
public void Execute(Room room, ref EventManager evMan, Dictionary<string, object> data)
{
// No point parsing all this data if no one's listening.
if (!evMan.ConnectedListeners.ContainsKey(EventType.MessageReply)) { return; }
var authorID = int.Parse(data["user_id"].ToString());
if (authorID == room.Me.ID && room.IgnoreOwnEvents) { return; }
var id = int.Parse(data["message_id"].ToString());
var parentID = int.Parse(data["parent_id"].ToString());
var parent = room[parentID];
var message = new Message(room, id, room.GetUser(authorID), parentID);
evMan.TrackMessage(parent);
evMan.TrackMessage(message);
evMan.CallListeners(EventType.MessageReply, parent, message);
}
示例4: Execute
public void Execute(Room room, ref EventManager evMan, Dictionary<string, object> data)
{
// No point parsing all this data if no one's listening.
if (!evMan.ConnectedListeners.ContainsKey(EventType.UserAccessLevelChanged)) { return; }
var granterID = int.Parse(data["user_id"].ToString());
if (granterID == room.Me.ID && room.IgnoreOwnEvents) { return; }
var targetUserID = int.Parse(data["target_user_id"].ToString());
var content = (string)data["content"];
var granter = room.GetUser(granterID);
var targetUser = room.GetUser(targetUserID);
var newAccessLevel = UserRoomAccess.Normal;
switch (content)
{
case "Access now owner":
{
newAccessLevel = UserRoomAccess.Owner;
break;
}
case "Access now read-write":
{
newAccessLevel = UserRoomAccess.ExplicitReadWrite;
break;
}
case "Access now read-only":
{
newAccessLevel = UserRoomAccess.ExplicitReadOnly;
break;
}
}
evMan.TrackUser(granter);
evMan.TrackUser(targetUser);
evMan.CallListeners(EventType.UserAccessLevelChanged, granter, targetUser, newAccessLevel);
}