public async Task RPLock(CommandContext e, [Description("Member to be muted")] DiscordMember user) { try { UserObject.RootObject userObject = RPClass.Users.First(x => x.UserData.UserID == user.Id); if (userObject.ModData.IsMuted == 2) { userObject.ModData.IsMuted = 0; await user.ReplaceRolesAsync(userObject.ModData.Roles); await e.RespondAsync("User un rp-locked."); } else if (userObject.ModData.IsMuted == 1) { await e.RespondAsync("Fail: user is muted."); return; } else { userObject.ModData.IsMuted = 2; userObject.ModData.Roles = user.Roles.ToList(); await user.ReplaceRolesAsync(new List <DiscordRole>() { RPClass.RPLockRole }); await e.RespondAsync("User rplocked."); } RPClass.SaveData(1); } catch { await e.RespondAsync("NO"); } }
public async Task Bulk(CommandContext e) { await e.RespondAsync("Change stats by typing `<mention> <xp amount>.\nTo end this process and save, type `stop`."); var interactivity = e.Client.GetInteractivity(); AnotherMessage: var msg = await interactivity.WaitForMessageAsync(x => x.Author == e.Member, TimeSpan.FromSeconds(120)); if (msg != null) { if (msg.Message.Content == "stop") { await UpdateStats(RPClass.StatsChannel); RPClass.SaveData(1); await UpdatePlayerRanking(e.Guild, 1); await UpdatePlayerRanking(e.Guild, 2); await UpdatePlayerRanking(e.Guild, 3); await UpdatePlayerRanking(e.Guild, 4); await e.RespondAsync("Stats updated."); } else { try { string[] args = msg.Message.Content.Split(" "); DiscordMember member = await e.CommandsNext.ConvertArgument(args[0], e, typeof(DiscordMember)) as DiscordMember; UserObject.RootObject userData = RPClass.Users.Find(x => x.UserData.UserID == member.Id); userData.Xp += int.Parse(args[1]); if (userData.Xp < 0) { userData.Xp = 0; } await e.RespondAsync("Stat changed. \nSend another, by typing `-<mention> <xp amount>`.\nTo end this process, type `stop`."); } catch { await e.RespondAsync("No user found, or xp was in invalid format."); } goto AnotherMessage; } } else { await UpdateStats(RPClass.StatsChannel); RPClass.SaveData(1); await UpdatePlayerRanking(e.Guild, 1); await UpdatePlayerRanking(e.Guild, 2); await UpdatePlayerRanking(e.Guild, 3); await UpdatePlayerRanking(e.Guild, 4); await e.RespondAsync("Stats updated."); } }
public async Task Give(CommandContext e, [Description("Who to award the money to")] DiscordMember user, [Description("Amount of money to award")] int money = -1) { if (money > 0) { RPClass.Users.Find(x => x.UserData.UserID == user.Id).UserData.Money += money; UserObject.RootObject a = RPClass.Users.Find(x => x.UserData.UserID == user.Id); await e.RespondAsync("User: "******" now has $" + a.UserData.Money); RPClass.SaveData(1); } }
public async Task Give(CommandContext e, [Description("Who to award the unicurs to")] DiscordMember user, [Description("Amount of unicurs to award")] int money = -1) { if (money > 0) { RPClass.Users.Find(x => x.UserData.UserID == user.Id).UserData.Money += money; UserObject.RootObject a = RPClass.Users.Find(x => x.UserData.UserID == user.Id); await e.RespondAsync($"User: {user.DisplayName} now has {a.UserData.Money} Unicur(s)"); RPClass.SaveData(1); } }
public async Task Give(CommandContext e, [Description("Who to award the merit points to")] DiscordMember user, [Description("Amount of merit points to award")] int meritPoints = -1) { if (meritPoints > 0) { RPClass.Users.Find(x => x.UserData.UserID == user.Id).UserData.MeritPoints += meritPoints; UserObject.RootObject a = RPClass.Users.Find(x => x.UserData.UserID == user.Id); await e.RespondAsync("User: "******" now has " + a.UserData.MeritPoints + " merit points."); RPClass.SaveData(1); } }
public async Task UltimateMute(CommandContext e, [Description("Member to be muted")] DiscordMember user, bool silent = false) { try { UserObject.RootObject userObject = RPClass.Users.First(x => x.UserData.UserID == user.Id); if (userObject.ModData.IsMuted == 2) { if (!silent) { await e.RespondAsync("Fail: user is RP Locked."); } return; } else if (userObject.ModData.IsMuted == 1) { userObject.ModData.IsMuted = 0; await user.ReplaceRolesAsync(userObject.ModData.Roles); if (!silent) { await e.RespondAsync("User unmuted."); } } else { if (user.Roles.Any(x => x == RPClass.AdminRole) && !e.Member.Roles.Any(x => x == RPClass.AdminRole)) { if (!silent) { await e.RespondAsync("Admins are the master race, leave us alone."); } return; } userObject.ModData.IsMuted = 1; userObject.ModData.Roles = user.Roles.ToList(); await user.ReplaceRolesAsync(new List <DiscordRole>() { RPClass.MuteRole }); if (!silent) { await e.RespondAsync("User muted."); } } RPClass.SaveData(1); } catch { if (!silent) { await e.RespondAsync("NO"); } } }
public async Task Balance(CommandContext e, [Description("Use all keyword to see everyone's balance (Admin only), or @mention someone to view their balance")] string all = "") { var members = await e.Guild.GetAllMembersAsync(); DiscordEmbedBuilder embed = new DiscordEmbedBuilder() { Color = new DiscordColor("4169E1"), Timestamp = DateTime.UtcNow } .WithFooter("Prometheus RP"); if (all == "all" && e.Member.Roles.Any(x => x == RPClass.StaffRole)) { foreach (UserObject.RootObject userData in RPClass.Users) { if (embed.Fields.Count < 25) { embed.AddField(members.First(x => x.Id == userData.UserData.UserID).DisplayName, "Unicurs: " + userData.UserData.Money); } else { await e.RespondAsync("", embed : embed); await Task.Delay(500); embed.ClearFields(); } } } else if (!string.IsNullOrWhiteSpace(all)) { all = all.Replace("<", "").Replace(">", "").Replace("@", "").Replace("!", ""); if (ulong.TryParse(all, out ulong userNum)) { embed.AddField(members.First(x => x.Id == userNum).DisplayName, "Unicurs: " + RPClass.Users.First(x => x.UserData.UserID == userNum).UserData.Money); } else { await e.RespondAsync("Mention a user to select them."); } } else { UserObject.RootObject userData = RPClass.Users.Find(x => x.UserData.UserID == e.Member.Id); embed.AddField(members.First(x => x.Id == userData.UserData.UserID).DisplayName, "Unicurs: " + userData.UserData.Money); } await e.RespondAsync("", embed : embed); }
public async Task Take(CommandContext e, [Description("Who to take the unicurs from")] DiscordMember user, [Description("Amount of unicurs to take")] int money = -1) { if (money > 0) { UserObject.RootObject userData = RPClass.Users.Find(x => x.UserData.UserID == user.Id); userData.UserData.Money -= money; if (userData.UserData.Money < 0) { userData.UserData.Money = 0; } await e.RespondAsync($"User: {user.DisplayName} now has {userData.UserData.Money} Unicur(s)"); RPClass.SaveData(1); } }
public async Task Take(CommandContext e, [Description("Who to take the money from")] DiscordMember user, [Description("Amount of money to take")] int money = -1) { if (money > 0) { UserObject.RootObject userData = RPClass.Users.Find(x => x.UserData.UserID == user.Id); userData.UserData.Money -= money; if (userData.UserData.Money < 0) { userData.UserData.Money = 0; } await e.RespondAsync("User: "******" now has $" + userData.UserData.Money); RPClass.SaveData(1); } }
public async Task Take(CommandContext e, [Description("Who to take the merit points from")] DiscordMember user, [Description("Amount of merit points to take")] int meritPoints = -1) { if (meritPoints > 0) { UserObject.RootObject userData = RPClass.Users.Find(x => x.UserData.UserID == user.Id); userData.UserData.MeritPoints -= meritPoints; if (userData.UserData.MeritPoints < 0) { userData.UserData.MeritPoints = 0; } await e.RespondAsync("User: "******" now has " + userData.UserData.MeritPoints + " merit points."); RPClass.SaveData(1); } }
public async Task ExecuteGroupAsync(CommandContext e, [Description("User to change stats of")] DiscordMember user, [Description("How much you wish to change it by")] int xpNum) { if (xpNum != 0) { UserObject.RootObject userData = RPClass.Users.Find(x => x.UserData.UserID == user.Id); userData.Xp += xpNum; if (userData.Xp < 0) { userData.Xp = 0; } await UpdateStats(RPClass.StatsChannel); RPClass.SaveData(1); UserObject.RootObject newUserData = RPClass.Users.Find(x => x.UserData.UserID == user.Id); switch (newUserData.UserData.Role) { case 1: await UpdatePlayerRanking(e.Guild, 1); break; case 2: await UpdatePlayerRanking(e.Guild, 2); break; case 3: await UpdatePlayerRanking(e.Guild, 3); break; case 4: await UpdatePlayerRanking(e.Guild, 4); break; case 0: await UpdatePlayerRanking(e.Guild, 1); await UpdatePlayerRanking(e.Guild, 2); await UpdatePlayerRanking(e.Guild, 3); await UpdatePlayerRanking(e.Guild, 4); break; } await e.RespondAsync("Stat changed."); } }
public async Task ExecuteGroupAsync(CommandContext e, [Description("User to change fame of")] DiscordMember user, [Description("How much you wish to change it by")] int infamyNum) { if (infamyNum != 0) { UserObject.RootObject userData = RPClass.Users.Find(x => x.UserData.UserID == user.Id); userData.UserData.Infamy += infamyNum; if (userData.UserData.Infamy < 0) { userData.UserData.Infamy = 0; } await Extensions.UpdateFameAndInfamyRoles(userData.UserData.Fame, userData.UserData.Infamy, user, userData.UserData.Role == 1?true : false); await Extensions.UpdateFameAndInfamy(0); RPClass.SaveData(1); await e.RespondAsync("Stat changed."); } }
public async Task RemoveUser(CommandContext e, [RemainingText] string whotodelete = "") { if (RPClass.Users.Any(x => x.UserData.Username == whotodelete)) { UserObject.RootObject user = RPClass.Users.First(x => x.UserData.Username == whotodelete); if (RPClass.Guilds.Any(x => x.Id == user.UserData.GuildID)) { RPClass.Guilds.First(x => x.Id == user.UserData.GuildID).UserIDs.Remove(user.UserData.UserID); } RPClass.Users.Remove(user); RPClass.SaveData(-1); await e.RespondAsync("User removed."); } else { await e.RespondAsync("No user with that name found."); } }
public async Task ExecuteGroupAsync(CommandContext e, [Description("User to change stats of")] DiscordMember user, [Description("How much you wish to change it by")] int xpNum) { if (xpNum != 0) { UserObject.RootObject userData = RPClass.Users.Find(x => x.UserData.UserID == user.Id); userData.UserData.Xp += xpNum; if (userData.UserData.Xp < 0) { userData.UserData.Xp = 0; } RPClass.SaveData(1); UserObject.RootObject newUserData = RPClass.Users.Find(x => x.UserData.UserID == user.Id); await UpdateStats(); await UpdatePlayerRanking(e.Guild); await UpdateGuildRanking(e.Guild); await e.RespondAsync("Stat changed."); } }
public async Task Transfer(CommandContext e, [Description("Who to send the unicurs to")] DiscordMember user, [Description("Amount of unicurs to award")] int money = -1) { if (money > 0) { if (RPClass.Users.Find(x => x.UserData.UserID == e.Message.Author.Id).UserData.Money >= money) { RPClass.Users.Find(x => x.UserData.UserID == user.Id).UserData.Money += money; RPClass.Users.Find(x => x.UserData.UserID == e.Message.Author.Id).UserData.Money -= money; UserObject.RootObject a = RPClass.Users.Find(x => x.UserData.UserID == user.Id); UserObject.RootObject b = RPClass.Users.Find(x => x.UserData.UserID == e.Message.Author.Id); await e.RespondAsync($"User: {user.DisplayName} now has {a.UserData.Money} Unicur(s)\n\nUser: {e.Member.DisplayName} now has {b.UserData.Money} Unicur(s)"); RPClass.SaveData(1); } else { await e.RespondAsync("You don't have enough Unicurs to do that."); } } }
public async Task Transfer(CommandContext e, [Description("Who to send the money to")] DiscordMember user, [Description("Amount of money to award")] int money = -1) { if (money > 0) { if (RPClass.Users.Find(x => x.UserData.UserID == e.Message.Author.Id).UserData.Money >= money) { RPClass.Users.Find(x => x.UserData.UserID == user.Id).UserData.Money += money; RPClass.Users.Find(x => x.UserData.UserID == e.Message.Author.Id).UserData.Money -= money; UserObject.RootObject a = RPClass.Users.Find(x => x.UserData.UserID == user.Id); UserObject.RootObject b = RPClass.Users.Find(x => x.UserData.UserID == e.Message.Author.Id); await e.RespondAsync("User: "******" now has $" + a.UserData.Money); await e.RespondAsync("User: "******" now has $" + b.UserData.Money); RPClass.SaveData(1); } else { await e.RespondAsync("You don't have enough money to do that."); } } }
public async Task Transfer(CommandContext e, [Description("Who to send the merit points to")] DiscordMember user, [Description("Amount of merit points to award")] int meritPoints = -1) { if (meritPoints > 0) { if (RPClass.Users.Find(x => x.UserData.UserID == e.Message.Author.Id).UserData.MeritPoints >= meritPoints) { RPClass.Users.Find(x => x.UserData.UserID == user.Id).UserData.MeritPoints += meritPoints; RPClass.Users.Find(x => x.UserData.UserID == e.Message.Author.Id).UserData.MeritPoints -= meritPoints; UserObject.RootObject a = RPClass.Users.Find(x => x.UserData.UserID == user.Id); UserObject.RootObject b = RPClass.Users.Find(x => x.UserData.UserID == e.Message.Author.Id); await e.RespondAsync("User: "******"now has " + a.UserData.MeritPoints + " merit points."); await e.RespondAsync("User: "******" now has " + b.UserData.MeritPoints + " merit points."); RPClass.SaveData(1); } else { await e.RespondAsync("You don't have enough points to do that."); } } }