private static void CreateOrEditEvent(Session Session, ClientMessage Message) { RoomInstance Instance = RoomManager.GetInstanceByRoomId(Session.CurrentRoomId); if (Instance == null || !Instance.CheckUserRights(Session, true) || Instance.Info.AccessType != RoomAccessType.Open) { return; } int CategoryId = Message.PopWiredInt32(); string Name = UserInputFilter.FilterString(Message.PopString()).Trim(); string Description = UserInputFilter.FilterString(Message.PopString()).Trim(); int TagCount = Message.PopWiredInt32(); List <string> Tags = new List <string>(); for (int i = 0; (i < TagCount && i < 2); i++) { string Tag = UserInputFilter.FilterString(Message.PopString()).Trim().ToLower(); if (Tag.Length > 25) { Tag = Tag.Substring(0, 25); } if (Tag.Length > 0 && !Tags.Contains(Tag)) { Tags.Add(Tag); } } if (!Instance.HasOngoingEvent) { Session.MessengerFriendCache.BroadcastToFriends(MessengerFriendEventComposer.Compose(Session.CharacterId, MessengerFriendEventType.EventStarted, Name)); } Instance.StartOrUpdateEvent(Name, Description, CategoryId, Tags); }