public async Task ReactionReceived(Cacheable <IUserMessage, ulong> cacheMessage, ISocketMessageChannel channel, SocketReaction reaction) { try { if (reaction.User.Value.IsBot) { return; } //TO BE REMOVED- SAVE TOWNS EVERY 5-10 MINS INSTEAD. CREATE SAFE SHUTDOWN METHOD THAT SAVES TOWNS/USERS ETC. TownHandler.SaveTowns(); var message = await cacheMessage.GetOrDownloadAsync(); var user = UserHandler.GetUser(reaction.UserId); //Console.WriteLine($"Cache {cacheMessage.Id}\nMessage {message.Id}\nReaction: {reaction.MessageId}"); if (user.ReactionMessages.ContainsKey(message.Id)) { await EmoteCommands.ParseEmote(user, message, reaction); } } catch (Exception e) { Console.WriteLine(e.StackTrace); Console.WriteLine(e.Message); } }
public async Task DataWipe() { ContextIds idList = new ContextIds(Context); await MessageHandler.SendMessage(idList, "User data cleared. Reboot bot to take effect."); UserHandler.ClearUserData(); CombatHandler2.ClearCombatData(); TownHandler.ClearTownData(); }
private void Awake() { instance = this; shopZone = GameObject.Find("ShopZone"); sellZone = GameObject.Find("SellZone"); moneyText = GameObject.Find("MoneyText").GetComponent <Text>(); fullDeck = GlobalValues.Deck; LoadGlobalValues(); LoadPrices(); PopulateShopZone(); PopulateSellZone(); }
public static async Task CreateTeamMenu(UserAccount user, IUserMessage message, IEmote emote, ContextIds idList) { switch (emote.Name.ToLower()) { case "back1": user.RemoveAllReactionMessages(9); user.RemoveAllReactionMessages(1); await message.RemoveAllReactionsAsync(); await message.ModifyAsync(m => { m.Embed = MonEmbedBuilder.MainMenu(user); m.Content = ""; }); await MessageHandler.MenuEmojis(message); user.ReactionMessages.Add(message.Id, 1); break; case "team": Team t = new Team(true); t.AddMember(user); TownHandler.GetTown(user.Char.CurrentGuildId).Teams.Add(t); if (user.ExpectedInput == 5) { user.ExpectedInput = -1; user.ExpectedInputLocation = 0; } user.RemoveAllReactionMessages(9); user.RemoveAllReactionMessages(7); await message.RemoveAllReactionsAsync(); await message.ModifyAsync(m => { m.Embed = MonEmbedBuilder.TeamMenu(user); m.Content = ""; }); await MessageHandler.TeamMenuEmojis(message, user); break; case "invite": await message.ModifyAsync(m => { m.Content = "**Tag someone in the team you want to join. The team must be open.**"; }); user.ExpectedInput = 5; user.ExpectedInputLocation = message.Channel.Id; break; default: break; } }
private async Task MessageRecieved(SocketMessage messageParam) { try { //TO BE REMOVED- SAVE TOWNS EVERY 5-10 MINS INSTEAD. CREATE SAFE SHUTDOWN METHOD THAT SAVES TOWNS/USERS ETC. TownHandler.SaveTowns(); //Don't process the command if it was a system message var message = messageParam as SocketUserMessage; if (message == null) { return; } //Create a number to track where the prefix ends and the command begins int argPos = 0; //If the user who sent that message is expecting input, parse the message for inputs. var user = UserHandler.GetUser(message.Author.Id); if (user.ExpectedInput != -1) { var con = new SocketCommandContext(_client, message); await MessageHandler.ParseExpectedInput(message, user, con); } // Determine if the message is a command based on the prefix and make sure no bots trigger commands if (!(message.HasCharPrefix('!', ref argPos) || message.HasMentionPrefix(_client.CurrentUser, ref argPos)) || message.Author.IsBot) { return; } // Create a WebSocket-based command context based on the message var context = new SocketCommandContext(_client, message); //Update user's info UserHandler.UpdateUserInfo(context.User.Id, context.User.GetOrCreateDMChannelAsync().Result.Id, context.User.Username, context.User.Mention, context.User.GetAvatarUrl()); // Execute the command with the command context we just // created, along with the service provider for precondition checks. await _commands.ExecuteAsync(context, argPos, services : null); } catch (Exception e) { Console.WriteLine(e.StackTrace); Console.WriteLine(e.Message); } }
public static async Task TeamMenu(UserAccount user, IUserMessage message, IEmote emote, ContextIds idList) { Team team = user.GetTeam(); if (team != null) { switch (emote.Name.ToLower()) { case "back1": user.RemoveAllReactionMessages(7); user.RemoveAllReactionMessages(1); await message.RemoveAllReactionsAsync(); await message.ModifyAsync(m => { m.Embed = MonEmbedBuilder.MainMenu(user); m.Content = ""; }); await MessageHandler.MenuEmojis(message); user.ReactionMessages.Add(message.Id, 1); break; case "invite": if (team.CanInvite(user)) { await message.ModifyAsync(m => { m.Content = "**Please tag the player(s) you wish to invite.**"; }); user.ExpectedInput = 0; user.ExpectedInputLocation = message.Channel.Id; } break; case "kick_player": if (team.CanKick(user)) { await message.ModifyAsync(m => { m.Content = "**Please tag the player(s) you wish to kick.**"; }); user.ExpectedInput = 1; user.ExpectedInputLocation = message.Channel.Id; } break; case "exit": bool leader = false; if (team.Members.IndexOf(user) == 0) { leader = true; } team.KickMember(user); if (team.Members.Count > 0) { if (leader) { await MessageHandler.SendMessage(user.Char.CurrentGuildId, message.Channel.Id, $"{team.Members[0].Mention}, you are now the team leader."); } } else { TownHandler.GetTown(user.Char.CurrentGuildId).Teams.Remove(team); } user.RemoveAllReactionMessages(9); user.RemoveAllReactionMessages(7); await message.RemoveAllReactionsAsync(); await message.ModifyAsync(m => { m.Embed = MonEmbedBuilder.TeamMenu(user); m.Content = ""; }); await MessageHandler.TeamMenuEmojis(message, user); break; case "settings": if (team.CanAccessSettings(user)) { user.RemoveAllReactionMessages(7); user.RemoveAllReactionMessages(8); await message.RemoveAllReactionsAsync(); await message.ModifyAsync(m => { m.Embed = MonEmbedBuilder.TeamSettingsMenu(user); m.Content = ""; }); await MessageHandler.TeamSettingsEmojis(message, user); user.ReactionMessages.Add(message.Id, 8); } break; case "disband": if (team.CanDisband(user)) { TownHandler.GetTown(user.Char.CurrentGuildId).Teams.Remove(team); user.RemoveAllReactionMessages(9); user.RemoveAllReactionMessages(7); await message.RemoveAllReactionsAsync(); await message.ModifyAsync(m => { m.Embed = MonEmbedBuilder.TeamMenu(user); m.Content = ""; }); await MessageHandler.TeamMenuEmojis(message, user); } break; default: break; } } }
public async Task Save() { UserHandler.SaveUsers(); TownHandler.SaveTowns(); await ReplyAsync("Data saved!"); }