private static void PerformRoomAction(Session Session, ClientMessage Message) { if (!Session.HasRight("moderation_tool")) { return; } RoomInstance Instance = RoomManager.GetInstanceByRoomId(Message.PopWiredUInt32()); if (Instance == null) { Session.SendData(NotificationMessageComposer.Compose("Could not perform room action.")); return; } bool SetLock = Message.PopWiredBoolean(); bool SetName = Message.PopWiredBoolean(); bool KickAll = Message.PopWiredBoolean(); List <string> Tags = new List <string>(); if (!SetName) { foreach (string Tag in Instance.Info.Tags) { Tags.Add(Tag); } } Instance.Info.EditRoom(SetName ? "Inappropriate to hotel management" : Instance.Info.Name, SetName ? "Inappropriate to hotel management" : Instance.Info.Description, SetLock ? RoomAccessType.Locked : Instance.Info.AccessType, SetLock ? string.Empty : Instance.Info.Password, Instance.Info.MaxUsers, SetName ? 0 : Instance.Info.CategoryId, Tags, Instance.Info.AllowPets, Instance.Info.AllowPets, Instance.Info.DisableRoomBlocking, Instance.Info.HideWalls, Instance.Info.WallThickness, Instance.Info.FloorThickness); if (KickAll) { Instance.KickRoom(true); } if (KickAll || SetName || SetLock) { using (SqlDatabaseClient MySqlClient = SqlDatabaseManager.GetClient()) { StringBuilder Details = new StringBuilder(); Details.Append("Room '" + Instance.Info.Name + "' (ID " + Instance.Info.Id + "): "); int i = 0; if (SetName) { Details.Append("Name set to 'Inappropriate to hotel management'"); i++; } if (KickAll) { if (i > 0) { Details.Append(", "); } Details.Append("Kicked all users from room"); i++; } if (SetLock) { if (i > 0) { Details.Append(", "); } Details.Append("Locked room"); i++; } ModerationLogs.LogModerationAction(MySqlClient, Session, "Performed room moderation action", Details.ToString()); } } }