public virtual ActionResult SendCovenantWideMessage(string Message) { if (Message.Length > 1000) { TempData["Error"] = "Your message is too long. There is a 1000 character limit."; return(RedirectToAction(MVC.Covenant.MyCovenant())); } var me = PlayerProcedures.GetPlayerFromMembership(User.Identity.GetUserId()); // assert that player is in a covenant if (me.Covenant == null || me.Covenant <= 0) { TempData["Error"] = "You are not in a covenant and cannot send out mass messages to your members."; return(RedirectToAction(MVC.Covenant.MyCovenant())); } // assert that the player is a covenant leader var myCov = CovenantProcedures.GetDbCovenant((int)me.Covenant); if (myCov.LeaderId != me.Id) { TempData["Error"] = "You are not the leader of your covenant."; TempData["SubError"] = "Only covenant leaders can send out mass messages."; return(RedirectToAction(MVC.Covenant.MyCovenant())); } MessageProcedures.SendCovenantWideMessage(me, Message); TempData["Result"] = "Message sent out!"; return(RedirectToAction(MVC.Covenant.MyCovenant())); }
public static MvcHtmlString GetCovenantInfoShort(Player player) { if (player.Covenant == null) { return(new MvcHtmlString("")); } if (!CovenantDictionary.IdNameFlagLookup.Any()) { CovenantProcedures.LoadCovenantDictionary(); } var temp = CovenantDictionary.IdNameFlagLookup.FirstOrDefault(c => c.Key == player.Covenant).Value; var output = "<span class='covRptName'><b>" + temp.Name + "</b></span>"; return(new MvcHtmlString(output)); }
public static string RandomShout(Player player, Random rand = null) { rand = rand ?? new Random(); string[] memes = { // More memes here }; string meme = null; var specialCases = 2; var selection = rand.Next(memes.Count() + specialCases); if (selection == 0) { var covens = CovenantProcedures.GetCovenantsList(); if (player.Covenant.HasValue) { covens = covens.Where(c => c.dbCovenant.Id == player.Covenant.Value); } if (covens.Any()) { var coven = covens.ElementAt(rand.Next(covens.Count())); meme = $"All hail {coven.Leader.GetFullName()}, leader of {coven.dbCovenant.Name}!"; } } else if (selection == 1) { meme = $"I'm {(rand.Next(2) == 0 ? "" : "not ")}{(rand.Next(2) == 0 ? "cute" : "cyoot")}!!!"; } else { meme = memes[selection - specialCases]; } if (meme == null) { return(null); } LocationLogProcedures.AddLocationLog(player.dbLocationName, $"{player.GetFullName()} shouted <b>\"{meme}\"</b> here."); return($"You shouted \"{meme}\""); }
public virtual ActionResult CovenantWideMessage() { var me = PlayerProcedures.GetPlayerFromMembership(User.Identity.GetUserId()); // assert that player is in a covenant if (me.Covenant == null || me.Covenant <= 0) { TempData["Error"] = "You are not in a covenant and cannot send out mass messages to your members."; return(RedirectToAction(MVC.Covenant.MyCovenant())); } // assert that the player is a covenant leader var myCov = CovenantProcedures.GetDbCovenant((int)me.Covenant); if (myCov.LeaderId != me.Id) { TempData["Error"] = "You are not the leader of your covenant."; TempData["SubError"] = "Only covenant leaders can send out mass messages."; return(RedirectToAction(MVC.Covenant.MyCovenant())); } return(View(MVC.Messages.Views.CovenantWideMessage)); }
public static void DeleteAccount(string membershipId, int playerId) { DomainRegistry.Repository.Execute(new DeleteAllMessagesOwnedByPlayer { OwnerId = playerId }); var me = PlayerProcedures.GetPlayerFromMembership(membershipId); if (me.Covenant > 0) { CovenantProcedures.RemovePlayerFromCovenant(me); } // Move soulbound items (including with Karin) to merchants and break the soulbind DomainRegistry.Repository.Execute(new RemoveSoulbindingOnPlayerItems { PlayerId = me.Id }); // Move remaining non-soulbound items off player DomainRegistry.Repository.Execute(new RemoveAllItemsFromPlayer { PlayerId = me.Id }); // Husk of player should consent to soulbinding like an NPC would if (me.Mobility == PvPStatics.MobilityInanimate || me.Mobility == PvPStatics.MobilityPet) { DomainRegistry.Repository.Execute(new SetSoulbindingConsent { IsConsenting = true, PlayerId = me.Id }); } using (var context = new StatsContext()) { context.Database.ExecuteSqlCommand(TransactionalBehavior.EnsureTransaction, @"DELETE FROM [dbo].[ContributorCustomForms] WHERE OwnerMembershipId = @membershipId; DELETE FROM [dbo].[Donators] WHERE OwnerMembershipId = @membershipId; DELETE FROM [dbo].[Friends] WHERE OwnerMembershipId = @membershipId OR FriendMembershipId = @membershipId; DELETE FROM [dbo].[PlayerBios] WHERE OwnerMembershipId = @membershipId; DELETE FROM [dbo].[PollEntries] WHERE OwnerMembershipId = @membershipId; DELETE FROM [dbo].[RPClassifiedAds] WHERE OwnerMembershipId = @membershipId; DELETE FROM [dbo].[Strikes] WHERE UserMembershipId = @membershipId OR FromModerator = @membershipId; DELETE FROM [dbo].[Reports] WHERE Reporter = @membershipId OR Reported = @membershipId; DELETE FROM [dbo].[Achievements] WHERE OwnerMembershipId = @membershipId; DELETE FROM [dbo].[AchievementBadges] WHERE OwnerMembershipId = @membershipId; DELETE FROM [dbo].[AspNetUserRoles] WHERE UserId = @membershipId; DELETE FROM [dbo].[AuthorArtistBios] WHERE OwnerMembershipId = @membershipId; DELETE FROM [dbo].[CaptchaEntries] WHERE User_Id = @membershipId; DELETE FROM [dbo].[BlacklistEntries] WHERE CreatorMembershipId = @membershipId OR TargetMembershipId = @membershipId; DELETE FROM [dbo].[ReservedNames] WHERE MembershipId = @membershipId; UPDATE [dbo].[Contributions] SET OwnerMembershipId = NULL WHERE OwnerMembershipId = @membershipId; UPDATE [dbo].[EffectContributions] SET OwnerMemberhipId = NULL WHERE OwnerMemberhipId = @membershipId; UPDATE [dbo].[DMRolls] SET MembershipOwnerId = NULL WHERE MembershipOwnerId = @membershipId; UPDATE [dbo].[Players] SET BotId = -1, IpAddress = CONCAT(IpAddress, '-deleted') WHERE MembershipId = @membershipId; UPDATE [dbo].[Items] SET IsPermanent = 'True' WHERE FormerPlayerId = @playerId; UPDATE [dbo].[Players] SET MembershipId = NULL WHERE MembershipId = @membershipId; DELETE FROM [dbo].[AspNetUsers] WHERE Id = @membershipId;", new SqlParameter("@membershipId", membershipId), new SqlParameter("@playerId", playerId)); } }
private bool UserCanSeeRoom(ref string roomName) { if (roomName.StartsWith("coven_")) { var userId = User.Identity.GetUserId(); var me = PlayerProcedures.GetPlayerFromMembership(userId); if (User.IsInRole(PvPStatics.Permissions_Moderator) || User.IsInRole(PvPStatics.Permissions_Admin)) { // Always grant access for moderators if (me.Covenant == null || me.Covenant <= 0 || roomName != $"coven_{me.Covenant}") { // User is not a member of this coven TempData["Result"] = "You are in this covenant chat room for moderation purposes."; } } else if (me.Covenant == null || me.Covenant <= 0) { TempData["Error"] = "You are not in a covenant and cannot access this covenant chat room."; return(false); } else if (roomName != $"coven_{me.Covenant}") { TempData["Error"] = "You are not in this covenant and cannot access its chat room."; return(false); } // Player is in coven or a moderator var covenId = roomName.Substring(6).Parse <int>(); var coven = CovenantProcedures.GetDbCovenant(covenId); if (coven != null) { roomName = $"{coven.Name} (covenant)"; } } else if (roomName.StartsWith("owner_")) { var userId = User.Identity.GetUserId(); var me = PlayerProcedures.GetPlayerFromMembership(userId); if (roomName != $"owner_{me.Id}") { // Not the owner var item = DomainRegistry.Repository.FindSingle(new GetItemByFormerPlayer { PlayerId = me.Id }); if (item == null || item.Owner == null || roomName != $"owner_{item.Owner.Id}") { // Not owned by the player if (User.IsInRole(PvPStatics.Permissions_Moderator) || User.IsInRole(PvPStatics.Permissions_Admin)) { TempData["Result"] = "You are in this owner chat room for moderation purposes."; } else { TempData["Error"] = "You do not have access to this owner chat room."; return(false); } } } var ownerId = roomName.Substring(6).Parse <int>(); var owner = PlayerProcedures.GetPlayerFormViewModel(ownerId); if (owner != null && owner.Player != null) { roomName = $"{owner.Player.GetFullName()} (owner chat)"; } } return(true); }