public Task _NameTag(FortniteUser usr, SocketGuildUser cuser, string tag) { return(Task.Run(async() => { if (cuser.IsServerOwner()) { await ReplyEmbedErrorAsync(Translate.GetBotTranslation(BotTranslationString.CanNotUpdateDiscordOwner, GetLanguage(), cuser.Mention)); return; } if (!usr.IsValidName) { await ReplyEmbedErrorAsync(Translate.GetBotTranslation(BotTranslationString.FirstlyUseAnotherCmd2, GetLanguage(), cuser.Mention)); return; } var guid = cuser.Guild.Id.ToString(); var ns = usr.NameStates.FirstOrDefault(p => p.DiscordServerId == guid); var pstate = await CheckUserPriority(new TimeSpan(0, 0, 0, 30), usr, cuser, ns); if (pstate.Value == null) { return; } if (string.Equals(tag, "right", StringComparison.InvariantCultureIgnoreCase) || string.Equals(tag, "sağ", StringComparison.InvariantCultureIgnoreCase)) { usr.NameTag = true; } else if (string.Equals(tag, "left", StringComparison.InvariantCultureIgnoreCase) || string.Equals(tag, "sol", StringComparison.InvariantCultureIgnoreCase)) { usr.NameTag = false; } else { await ReplyEmbedErrorAsync("unknown parameter please write **f.name.tag left** or **f.name.tag right**"); return; } Context.Repo.Db <FortniteUser>().Update(usr); Context.Repo.Commit(); string newPowerName = null; if (usr.GameUserMode == GameUserMode.PVE) { newPowerName = Context.Repo.ModifyPVETag(Context.PlayerName, Context.AccountPowerLevel, usr.NameTag, Context.GuildConfig.Owner.PVEDecimalState, false); } else { newPowerName = Context.Repo.ModifyPVPTag(Context.PlayerName, Context.TotalPVPRankedWins, usr.NameTag, false); } var msg = await ReplyEmbedAsync("**Name Tag is successfully changed.**"); if (!ns.LockName) { await cuser.ModifyAsync((o) => { o.Nickname = newPowerName; }); } else { await msg.SetLockAsync(); } })); }
public int SP_TABLE_FortniteUser_Update(FortniteUser user) { var Id = new SqlParameter("@Id", user.Id) { Size = 20, SqlDbType = System.Data.SqlDbType.NVarChar }; var EpicId = new SqlParameter("@EpicId", user.EpicId) { Size = 50, SqlDbType = System.Data.SqlDbType.NVarChar, IsNullable = true, }; if (user.EpicId == null) { EpicId.Value = DBNull.Value; } var NameTag = new SqlParameter("@NameTag", user.NameTag); var IsValidName = new SqlParameter("@IsValidName", user.IsValidName); var GameUserMode = new SqlParameter("@GameUserMode", user.GameUserMode); return(CallStoredProcedure("dbo.SP_TABLE_FortniteUser_Update @Id, @EpicId, @NameTag, @IsValidName, @GameUserMode", Id, EpicId, NameTag, IsValidName, GameUserMode)); }
public async Task <bool> SetNewNameViaMode <T>(IGuildUser cuser, FortniteUser usr, IUserMessage msg, IFortniteProfile classPveOrPvp, bool updateFromMyDb = false) where T : class { var ns = usr.NameStates.First(f => f.DiscordServerId == cuser.Guild.Id.ToString()); if (usr.GameUserMode == GameUserMode.PVE) { if (!updateFromMyDb) { var mapUser = await Api.GetPVEProfileById(usr.EpicId); if (mapUser.Value != null) { return(await Context.Repo.UpdateDatabasePVEProfileAsync(mapUser, cuser, msg, usr.NameTag, ns.LockName, Context.GuildConfig.Owner.PVEDecimalState)); } } else { Context.Repo.Db <FortniteUser>() .Update(usr); Context.Repo.Commit(); var pveTable = (FortnitePVEProfile)classPveOrPvp; return(await Context.Repo.UpdateDiscordPVEProfileAsync(pveTable, usr.NameTag, cuser, msg, ns.LockName, Context.GuildConfig.Owner.PVEDecimalState)); } await msg.SetErrorAsync(); return(false); } else if (usr.GameUserMode == GameUserMode.PVP_WIN_ALL) { if (!updateFromMyDb) { var mapUser = await Api.GetPVPProfileById(usr.EpicId); if (mapUser.Value != null) { if (mapUser.Value.IsPrivate) { msg = await ReplyEmbedAsync(ToTranslate(BotTranslationString.PvpProfilIsNotPublic, GetLanguage(), cuser.Mention)); } return(await Context.Repo.UpdateDatabasePVPProfileAsync(mapUser, cuser, msg, usr.NameTag, ns.LockName)); } } else { Context.Repo.Db <FortniteUser>() .Update(usr); Context.Repo.Commit(); var pvpTable = (FortnitePVPProfile)classPveOrPvp; return(await Context.Repo.UpdateDiscordPVPProfileAsync(pvpTable, usr.NameTag, cuser, msg, ns.LockName)); } await msg.SetErrorAsync(); return(false); } return(false); }
public FortniteUser UpdateDatabaseUserProfile(string EpicId, IGuildUser guser, IUserMessage msg = null, bool nameTag = false, GameUserMode gameUserMode = GameUserMode.PVE) { var mockDiscordUser = new FortniteUser { Id = guser.Id.ToString(), EpicId = EpicId, NameTag = nameTag, IsValidName = true, GameUserMode = gameUserMode }; StoredProcedure.SP_TABLE_FortniteUser_Update(mockDiscordUser); return(mockDiscordUser); }
public Task <NameState> AddOrGetNameStateAsync(FortniteUser user, string guildId) { return(Task.Run(() => { var ns = _uow.Db <NameState>().Where(f => f.FortniteUserId == user.Id && f.DiscordServerId == guildId).FirstOrDefault(); if (ns == null) { ns = new NameState() { DiscordServerId = guildId, FortniteUserId = user.Id }; _uow.Db <NameState>().Add(ns); _uow.Commit(); } return ns; })); }
public Task <FortniteUser> AddOrGetUserAsync(string userId, string guildId, GameUserMode gameUserMode = GameUserMode.PVE) { return(Task.Run(async() => { var nUser = _uow.Db <FortniteUser>().GetById(userId); if (nUser == null) { nUser = new FortniteUser() { Id = userId, GameUserMode = gameUserMode, EpicId = null, }; _uow.Db <FortniteUser>().Add(nUser); _uow.Commit(); } await AddOrGetNameStateAsync(nUser, guildId); return nUser; })); }
private Task PullMessage_OnAction(ReadyToVerify arg) { if (arg.JustDeQueue) { FriendListApi.DeclineFriendRequest(arg.EpicId).Wait(); return(Task.CompletedTask); } var spanTime = DateTimeOffset.UtcNow - arg.Expire; if (spanTime.TotalSeconds >= 0 && FriendListApi.IsAuthorized) { try { var usr = DiscordApi.GetApi.GetUserAsync(arg.DiscordUserId.ToUlong()).Result; var channel = (IMessageChannel)DiscordApi.GetApi.GetChannelAsync(arg.ChannelId).Result; IUserMessage msg = null; try { msg = (IUserMessage)channel.GetMessageAsync(arg.MessageId, options: Core.Utils.RequestOption).Result; } catch (Exception e) { return(Task.CompletedTask); } if (usr != null) { FortniteUser dbAccount = Context.FortniteUsers.Find(arg.DiscordUserId); if (dbAccount == null) { msg?.SetErrorAsync()?.Wait(); return(Task.CompletedTask); } var verificationResult = FriendListApi.DeclineFriendRequest(arg.EpicId).Result; if (verificationResult) { if (dbAccount.IsValidName) { dbAccount.VerifiedProfile = true; dbAccount.LastUpDateTime = DateTimeOffset.UtcNow; Context.Entry(dbAccount).State = EntityState.Modified; Context.SaveChanges(); msg?.SetSuccessAsync()?.Wait(); } else { msg?.SetQuestionMarkAsync()?.Wait(); } } else { msg?.SetErrorAsync()?.Wait(); } } else { msg?.SetErrorAsync()?.Wait(); } } catch (Exception e) { throw e; } finally { var verifyFinished = Context.VerifyOrders.Find(arg.EpicId); if (verifyFinished != null) { Context.VerifyOrders.Remove(verifyFinished); Context.SaveChanges(); } } } else { Redis .ListLeftPush(QueueName, arg, flags: CommandFlags.FireAndForget); } return(Task.CompletedTask); }
public async Task <KeyValuePair <bool, PriorityTable> > CheckUserPriority(TimeSpan?requestSecondLimit, FortniteUser usr, IGuildUser cuser, NameState ns = null, DateTimeOffset?lastMassUpdate = null) { if (!requestSecondLimit.HasValue) { requestSecondLimit = new TimeSpan(0, 0, 10, 0); } TimeSpan reminder = DateTimeOffset.UtcNow - usr.LastUpDateTime; if (lastMassUpdate.HasValue) { reminder = DateTimeOffset.UtcNow - lastMassUpdate.Value; } var pStateResult = Context.Repo.Priority.IsPartnerGuild(cuser.Guild.Id); if (pStateResult.Key == false) { pStateResult = Context.Repo.Priority.IsPartnerUser(cuser.Id); } if (pStateResult.Key && pStateResult.Value.GetPriorityState() != PriorityState.Normal) { if (!lastMassUpdate.HasValue) { requestSecondLimit = new TimeSpan(0, 0, 0, 1); } } if (reminder.TotalSeconds > requestSecondLimit.Value.TotalSeconds) { return(pStateResult); } else { var ts = requestSecondLimit.Value.Add(new TimeSpan(0, 0, 0, 1)) - reminder; await ReplyEmbedErrorAsync(ToTranslate(BotTranslationString.YouHaveToWaitTime1, GetLanguage(), cuser.Mention, ts.Hours, ts.Minutes, ts.Seconds)); return(new KeyValuePair <bool, PriorityTable>(false, null)); } }