Beispiel #1
0
        public static async Task NewTopSong(DiscordSocketClient discordSocketClient, SocketMessage message)
        {
            var r = new RoleAssignment(discordSocketClient);

            if (r.CheckIfDiscordIdIsLinked(message.Author.Id.ToString()) && message.Content.Count() == 11)
            {
                var scoresaberId = r.GetScoresaberIdWithDiscordId(message.Author.Id.ToString());

                var embedTask = await BeatSaberInfoExtension.GetNewTopSongWithScoresaberId(scoresaberId);

                await message.Channel.SendMessageAsync("", false, embedTask.Build());
            }
            else
            {
                if (message.Content.Length <= 11)
                {
                    await message.Channel.SendMessageAsync("", false,
                                                           EmbedBuilderExtension.NullEmbed("Search failed",
                                                                                           "Search value is not long enough. it should be larger than 3 characters.", null, null)
                                                           .Build());

                    return;
                }

                var username = message.Content.Substring(11);
                var id       = await BeatSaberInfoExtension.GetPlayerIdsWithUsername(username);

                var embedTask = await BeatSaberInfoExtension.GetNewRecentSongWithScoresaberId(id);

                await message.Channel.SendMessageAsync("", false, embedTask.Build());
            }
        }
Beispiel #2
0
        public static async Task Songs(DiscordSocketClient discordSocketClient, SocketMessage message)
        {
            var builderList = await BeatSaberInfoExtension.GetSongs(message.Content.Substring(10));

            if (builderList.Count > 4)
            {
                await message.Channel.SendMessageAsync("", false,
                                                       EmbedBuilderExtension.NullEmbed("Search term to wide",
                                                                                       "I can not post more as 6 songs. " + "\n Try searching with a more specific word please. \n" +
                                                                                       ":rage:", null, null).Build());
            }
            else
            {
                foreach (var builder in builderList)
                {
                    await message.Channel.SendMessageAsync("", false, builder.Build());
                }
            }
        }
Beispiel #3
0
        public static async Task Compare(DiscordSocketClient discordSocketClient, SocketMessage message)
        {
            var embedBuilder = await BeatSaberInfoExtension.GetComparedEmbedBuilder(message.Content.Substring(12), message, discordSocketClient);

            await message.Channel.SendMessageAsync("", false, embedBuilder.Build());
        }
Beispiel #4
0
        public static async Task NewSearch(DiscordSocketClient discordSocketClient, SocketMessage message)
        {
            var r = new RoleAssignment(discordSocketClient);

            if (message.Content.Contains("@"))
            {
                var discordId = message.Content.Substring(11).Replace("<", "").Replace(">", "").Replace("@", "")
                                .Replace("!", "");
                if (r.CheckIfDiscordIdIsLinked(discordId))
                {
                    var scoresaberId = r.GetScoresaberIdWithDiscordId(discordId);
                    var embedTask    = new List <EmbedBuilder>();
                    try
                    {
                        embedTask = await BeatSaberInfoExtension.GetPlayerSearchInfoEmbed(scoresaberId, message);
                    }
                    catch (Exception ex)
                    {
                        await message.Channel.SendMessageAsync("", false,
                                                               EmbedBuilderExtension.NullEmbed("Error",
                                                                                               ex.Message).Build());
                    }

                    if (embedTask.Count() == 0)
                    {
                        await message.Channel.SendMessageAsync("", false,
                                                               EmbedBuilderExtension.NullEmbed("No results",
                                                                                               "Try linking your discord and scoresaber again with like this: https://scoresaber.com/u/76561198033166451").Build());
                    }

                    foreach (var embedBuilder in embedTask)
                    {
                        await message.Channel.SendMessageAsync("", false, embedBuilder.Build());
                    }
                }
                else
                {
                    await message.Channel.SendMessageAsync("", false,
                                                           EmbedBuilderExtension.NullEmbed("Not linked yet!",
                                                                                           "Your discord is not linked yet. Type !bs link [Scoresaberlink] to link it.").Build());
                }
            }
            else if (r.CheckIfDiscordIdIsLinked(message.Author.Id.ToString()) && message.Content.Count() == 10)
            {
                var scoresaberId = r.GetScoresaberIdWithDiscordId(message.Author.Id.ToString());
                var embedTask    = await BeatSaberInfoExtension.GetPlayerSearchInfoEmbed(scoresaberId, message);

                foreach (var embedBuilder in embedTask)
                {
                    await message.Channel.SendMessageAsync("", false, embedBuilder.Build());
                }
            }
            else
            {
                if (message.Content.Substring(11).Count() == 0)
                {
                    await message.Channel.SendMessageAsync("", false,
                                                           EmbedBuilderExtension.NullEmbed("User's discord not linked",
                                                                                           "Your discord is not linked yet. Type !bs link [Scoresaberlink] to link it.", null,
                                                                                           null).Build());

                    return;
                }

                foreach (var embed in await BeatSaberInfoExtension.GetPlayer(message.Content.Substring(11)))
                {
                    var completedMessage = await message.Channel.SendMessageAsync("", false, embed.Build());

                    //await completedMessage.AddReactionAsync(new Emoji("⬅"));
                    //await completedMessage.AddReactionAsync(new Emoji("➡"));
                }
            }
        }
Beispiel #5
0
        public async Task HandleMessage(DiscordSocketClient discordSocketClient, SocketMessage message, Logger _logger, Program program)
        {
            if (message.Author.Username == "BeatSaber Bot")
            {
                return;
            }

            MessageDelete.DeleteMessageCheck(message, discordSocketClient);

            if (message.Content.Length <= 3)
            {
                return;
            }

            if (message.Content.Substring(0, 3).Contains("!bs"))
            {
                var messageCommand = message.Content.ToLower();

                var typingState = message.Channel.EnterTypingState(new RequestOptions
                {
                    Timeout = GlobalConfiguration.TypingTimeOut,
                });

                Console.WriteLine(message.Content);

                if (messageCommand.Contains(" help"))
                {
                    GenericCommands.Help(discordSocketClient, message);
                }
                else if (messageCommand.Contains(" rolecolor"))
                {
                    DutchServerCommands.RoleColor(discordSocketClient, message);
                }
                else if (messageCommand.Contains(" topsong"))
                {
                    GlobalScoresaberCommands.NewTopSong(discordSocketClient, message);
                }
                else if (messageCommand.Contains(" search"))
                {
                    GlobalScoresaberCommands.NewSearch(discordSocketClient, message);
                }
                else if (messageCommand.Contains(" updateroles"))
                {
                    DutchServerCommands.UpdateRoles(discordSocketClient, message);
                }
                else if (messageCommand.Contains(" linkednames"))
                {
                    DutchServerCommands.LinkedNames(discordSocketClient, message);
                }
                else if (messageCommand.Contains(" notlinkednames"))
                {
                    DutchServerCommands.NotLinkedNames(discordSocketClient, message);
                }
                else if (messageCommand.Contains(" recentsong"))
                {
                    GlobalScoresaberCommands.NewRecentSong(discordSocketClient, message);
                }
                else if (messageCommand.Contains(" changecolor"))
                {
                    DutchServerCommands.ChangeColor(discordSocketClient, message);
                }
                else if (messageCommand.Contains(" playing"))
                {
                    GenericCommands.Playing(discordSocketClient, message);
                }

                else if (messageCommand.Contains(" invite"))
                {
                    GenericCommands.Invite(discordSocketClient, message);
                }
                else if (messageCommand.Contains(" poll"))
                {
                    GenericCommands.Poll(discordSocketClient, message);
                }
                else if (messageCommand.Contains(" compare"))
                {
                    GlobalScoresaberCommands.Compare(discordSocketClient, message);
                }
                else if (messageCommand.Contains(" unlink"))
                {
                    DutchServerCommands.LinkScoresaberWithDiscord(discordSocketClient, message);
                }
                else if (messageCommand.Contains(" link"))
                {
                    DutchServerCommands.LinkScoresaberWithDiscord(discordSocketClient, message);
                }

                else if (messageCommand.Contains(" typing"))
                {
                    GlobalScoresaberCommands.Typing(discordSocketClient, message);
                    message.DeleteAsync();
                }
                else if (messageCommand.Contains(" ranks"))
                {
                    var builderList = await BeatSaberInfoExtension.GetRanks();

                    foreach (var builder in builderList)
                    {
                        await message.Channel.SendMessageAsync("", false, builder.Build());
                    }
                }
                else if (messageCommand.Contains(" senddm"))
                {
                    GenericCommands.SendDM(discordSocketClient, message);
                }
                else if (messageCommand.Contains(" approvedutchuser"))
                {
                    var guildUserSender = message.Author as SocketGuildUser;
                    if (guildUserSender.IsDutchAdmin())
                    {
                        var userId = message.Content.Substring(21).Replace("<@!", "").Replace(">", "").Trim();
                        var user   = discordSocketClient.GetUser(ulong.Parse(userId));

                        var guildService = new GuildService(discordSocketClient, 505485680344956928);

                        await guildService.AddRole("Koos Rankloos", user);

                        await program.UserJoinedMessage(user);
                    }

                    await message.DeleteAsync();
                }
                else if (messageCommand.Contains(" songs"))
                {
                    await message.Channel.SendMessageAsync(null, false, EmbedBuilderExtension.NullEmbed("Ewh..", "This command is outdated. Blame silverhaze to remake it").Build());

                    //GlobalScoresaberCommands.Songs(discordSocketClient, message);
                }
                else if (messageCommand.Contains(" irlevent create"))
                {
                    DutchServerCommands.IRLevent(discordSocketClient, message);
                }
                else if (messageCommand.Contains(" randomevent create"))
                {
                    DutchServerCommands.RandomEvent(discordSocketClient, message);
                }
                else
                {
                    var embedBuilder = EmbedBuilderExtension.NullEmbed("Oops", "There is no command like that, try something else",
                                                                       null, null);
                    await message.Channel.SendMessageAsync(null, false, embedBuilder.Build());
                }

                typingState.Dispose();
            }
        }
Beispiel #6
0
        static public async Task Invite(DiscordSocketClient discordSocketClient, SocketMessage message)
        {
            var embedTask = await BeatSaberInfoExtension.GetInviteLink();

            await message.Channel.SendMessageAsync("", false, embedTask.Build());
        }