Exemplo n.º 1
0
        public async Task SetBotStream(string streamer, [Remainder] string streamName)
        {
            await Program._client.SetGameAsync(streamName, $"https://twitch.tv/{streamer}", ActivityType.Streaming);

            var embed = MiscHelpers.CreateEmbed(Context, "Set Bot Streaming", $"Set the stream name to **{streamName}**, and set the streamer to <https://twitch.tv/{streamer}>!").WithColor(37, 152, 255);
            await MiscHelpers.SendMessage(Context, embed);
        }
Exemplo n.º 2
0
        public async Task UnblockChannel()
        {
            var guildUser = Context.User as SocketGuildUser;

            if (!guildUser.GuildPermissions.ManageChannels)
            {
                string description =
                    $"{Global.ENo} **|** You Need the **Manage Channels** Permission to do that {Context.User.Username}";
                var errorEmbed = EmbedHandler.CreateEmbed(Context, "Error", description,
                                                          EmbedHandler.EmbedMessageType.Exception);
                await ReplyAndDeleteAsync("", embed : errorEmbed);

                return;
            }

            var config = BotAccounts.GetAccount();

            config.BlockedChannels.Remove(Context.Channel.Id);
            BotAccounts.SaveAccounts();

            var embed = MiscHelpers
                        .CreateEmbed(Context, "Channel Unblocked", $":unlock: Unblocked {Context.Channel.Name}.")
                        .WithColor(Constants.DefaultColor);

            await SendMessage(Context, embed.Build());
        }
Exemplo n.º 3
0
        public async Task SoftBan(SocketGuildUser user)
        {
            var guildUser = Context.User as SocketGuildUser;
            var config    = GlobalGuildAccounts.GetGuildAccount(Context.Guild.Id);

            if (guildUser.GuildPermissions.BanMembers)
            {
                try
                {
                    var embed = MiscHelpers.CreateEmbed(Context, "SoftBan", $"{Context.User.Mention} SoftBanned <@{user.Id}>, deleting the last 7 days of messages from that user.");
                    await MiscHelpers.SendMessage(Context, embed);

                    await Context.Guild.AddBanAsync(user, 7);

                    await Context.Guild.RemoveBanAsync(user);
                }
                catch
                {
                    await ReplyAsync(":hand_splayed:  | You must mention a valid user");
                }
            }
            else
            {
                var embed = new EmbedBuilder();
                embed.WithColor(37, 152, 255);
                embed.Title = $":x:  | You need the Ban Members Permission to do that {Context.User.Username}";
                await ReplyAndDeleteAsync("", embed : embed.Build(), timeout : TimeSpan.FromSeconds(5));
            }
        }
Exemplo n.º 4
0
Arquivo: Ban.cs Projeto: Phytal/Nayu
        public async Task SoftBan(SocketGuildUser user)
        {
            var guildUser = Context.User as SocketGuildUser;

            if (!guildUser.GuildPermissions.BanMembers)
            {
                string description =
                    $"{Global.ENo} **|** You Need the **Ban Members** Permission to do that {Context.User.Username}";
                var errorEmbed = EmbedHandler.CreateEmbed(Context, "Error", description,
                                                          EmbedHandler.EmbedMessageType.Exception);
                await ReplyAndDeleteAsync("", embed : errorEmbed);
            }

            try
            {
                var embed = MiscHelpers.CreateEmbed(Context, "SoftBan",
                                                    $"{Context.User.Mention} SoftBanned <@{user.Id}>, deleting the last 7 days of messages from that user.");
                await SendMessage(Context, embed.Build());

                await Context.Guild.AddBanAsync(user, 7);

                await Context.Guild.RemoveBanAsync(user);
            }
            catch
            {
                var embed = EmbedHandler.CreateEmbed(Context, "Error",
                                                     "🖐️ **|** You must enter a valid user",
                                                     EmbedHandler.EmbedMessageType.Exception);
                await ReplyAndDeleteAsync("", embed : embed);
            }
        }
Exemplo n.º 5
0
        public async Task UnlockChannel()
        {
            var guildUser = Context.User as SocketGuildUser;

            if (!guildUser.GuildPermissions.ManageChannels)
            {
                string description =
                    $"{Global.ENo} **|** You Need the **Manage Channels** Permission to do that {Context.User.Username}";
                var errorEmbed = EmbedHandler.CreateEmbed(Context, "Error", description,
                                                          EmbedHandler.EmbedMessageType.Exception);
                await ReplyAndDeleteAsync("", embed : errorEmbed);

                return;
            }

            var chnl  = Context.Channel as ITextChannel;
            var role  = Context.Guild.Roles.FirstOrDefault(r => r.Name == "@everyone");
            var perms = new OverwritePermissions(
                sendMessages: PermValue.Allow
                );
            await chnl.AddPermissionOverwriteAsync(role, perms);

            var embed = MiscHelpers
                        .CreateEmbed(Context, "Channel Unlocked", $":unlock: Unlocked {Context.Channel.Name}.")
                        .WithColor(Global.NayuColor);

            await SendMessage(Context, embed.Build());
        }
Exemplo n.º 6
0
        public async Task SetServerLoggingChannel(string arg)
        {
            var guser = Context.User as SocketGuildUser;

            if (guser.GuildPermissions.Administrator)
            {
                var result = ConvertBool.ConvertStringToBoolean(arg);
                if (result.Item1 == true)
                {
                    bool setting = result.Item2;
                    var  chnl    = Context.Guild.TextChannels.FirstOrDefault(r => r.Name == "logs");
                    if (chnl == null)
                    {
                        var role  = Context.Guild.Roles.FirstOrDefault(r => r.Name == "@everyone");
                        var perms = new OverwritePermissions(
                            viewChannel: PermValue.Deny
                            );
                        var channell = await Context.Guild.CreateTextChannelAsync("logs");

                        await channell.AddPermissionOverwriteAsync(role, perms);
                    }
                    var    chnl1   = Context.Guild.TextChannels.FirstOrDefault(r => r.Name == "logs");
                    var    channel = chnl1 as SocketTextChannel;
                    string lol;
                    var    config = GlobalGuildAccounts.GetGuildAccount(Context.Guild.Id);
                    if (setting)
                    {
                        lol = "Enabled server logging";
                    }
                    else
                    {
                        lol = "Disabled server logging";
                    }
                    ulong id = channel.Id;
                    config.IsServerLoggingEnabled = setting;
                    config.ServerLoggingChannel   = id;
                    GlobalGuildAccounts.SaveAccounts();
                    var embed = MiscHelpers.CreateEmbed(Context, "Server Logging", $"{lol}, and set the channel to <#{channel.Id}>.").WithColor(37, 152, 255);
                    await MiscHelpers.SendMessage(Context, embed);
                }
                if (result.Item1 == false)
                {
                    await Context.Channel.SendMessageAsync($"Please say `w!sl <on/off>`");

                    return;
                }
            }
            else
            {
                var embed = new EmbedBuilder();
                embed.WithColor(37, 152, 255);
                embed.Title = $":x:  | You Need the Administrator Permission to do that {Context.User.Username}";
                await ReplyAndDeleteAsync("", embed : embed.Build(), timeout : TimeSpan.FromSeconds(5));
            }
        }
Exemplo n.º 7
0
        public async Task ShowGeniusLyrics()
        {
            if (!_lavaNode.TryGetPlayer(Context.Guild, out var player))
            {
                await ReplyAndDeleteAsync($"{Global.ENo} | I'm not connected to a voice channel.");

                return;
            }

            if (player.PlayerState != PlayerState.Playing)
            {
                await ReplyAndDeleteAsync($"{Global.ENo} | A track must be playing for me to get its lyrics.");

                return;
            }

            var lyrics = await player.Track.FetchLyricsFromGeniusAsync();

            if (string.IsNullOrWhiteSpace(lyrics))
            {
                await ReplyAndDeleteAsync($"{Global.ENo} | No lyrics found for {player.Track.Title}");

                return;
            }


            var splitLyrics   = lyrics.Split('\n');
            var stringBuilder = new StringBuilder();

            foreach (var line in splitLyrics)
            {
                if (Range.Contains(stringBuilder.Length))
                {
                    var embedd = MiscHelpers.CreateEmbed(Context, "", stringBuilder.ToString());
                    await ReplyAsync("", embed : embedd.Build());

                    stringBuilder.Clear();
                }
                else
                {
                    stringBuilder.AppendLine(line);
                }
            }

            var embed = MiscHelpers.CreateEmbed(Context, "", stringBuilder.ToString());

            await ReplyAsync("", embed : embed.Build());
        }
Exemplo n.º 8
0
        public async Task SetUsersNickname(SocketGuildUser user, [Remainder] string nick)
        {
            var guser = Context.User as SocketGuildUser;

            if (guser.GuildPermissions.ManageMessages)
            {
                await user.ModifyAsync(x => x.Nickname = nick);

                var embed = MiscHelpers.CreateEmbed(Context, "User Nicked", $"Set <@{user.Id}>'s nickname on this server to **{nick}**!").WithColor(37, 152, 255);
                await MiscHelpers.SendMessage(Context, embed);
            }
            else
            {
                var embed = new EmbedBuilder();
                embed.WithColor(37, 152, 255);
                embed.Title = $":x:  | You Need the Administrator Permission to do that {Context.User.Username}";
                await ReplyAndDeleteAsync("", embed : embed.Build(), timeout : TimeSpan.FromSeconds(5));
            }
        }
Exemplo n.º 9
0
        public async Task SetUsersNickname(SocketGuildUser user, [Remainder] string nick)
        {
            var guildUser = Context.User as SocketGuildUser;

            if (!guildUser.GuildPermissions.ManageNicknames)
            {
                string description =
                    $"{Global.ENo} **|** You Need the **Manage Nicknames** Permission to do that {Context.User.Username}";
                var errorEmbed = EmbedHandler.CreateEmbed(Context, "Error", description,
                                                          EmbedHandler.EmbedMessageType.Exception);
                await ReplyAndDeleteAsync("", embed : errorEmbed);

                return;
            }

            await user.ModifyAsync(x => x.Nickname = nick);

            var embed = MiscHelpers
                        .CreateEmbed(Context, "User Nicked", $"Set <@{user.Id}>'s nickname on this server to **{nick}**!")
                        .WithColor(Global.NayuColor);

            await SendMessage(Context, embed.Build());
        }
Exemplo n.º 10
0
        public async Task UnlockChannel()
        {
            var guser = Context.User as SocketGuildUser;

            if (guser.GuildPermissions.ManageChannels)
            {
                var chnl  = Context.Channel as ITextChannel;
                var role  = Context.Guild.Roles.FirstOrDefault(r => r.Name == "@everyone");
                var perms = new OverwritePermissions(
                    sendMessages: PermValue.Allow
                    );
                await chnl.AddPermissionOverwriteAsync(role, perms);

                var embed = MiscHelpers.CreateEmbed(Context, "Channel Unlocked", $":unlock: Unlocked {Context.Channel.Name}.").WithColor(37, 152, 255);
                await MiscHelpers.SendMessage(Context, embed);
            }
            else
            {
                var embed = new EmbedBuilder();
                embed.WithColor(37, 152, 255);
                embed.Title = $":x:  | You Need the Manage Channels Permission to do that {Context.User.Username}";
                await ReplyAndDeleteAsync("", embed : embed.Build(), timeout : TimeSpan.FromSeconds(5));
            }
        }
Exemplo n.º 11
0
        public async Task MasterConfig()
        {
            var guser = Context.User as SocketGuildUser;

            if (guser.GuildPermissions.Administrator)
            {
                var config = GlobalGuildAccounts.GetGuildAccount(Context.Guild.Id);
                var embed  = MiscHelpers.CreateEmbed(Context, Context.Guild.Name, $"Server ID: {config.Id}\n" +
                                                     $"Owner: <@{config.GuildOwnerId}>");
                string helperRole = "**Not set**";
                string modRole    = "**Not set**";
                string adminRole  = "**Not set**";
                if (config.ModRole != 0)
                {
                    modRole = $"**{Context.Guild.Roles.First(role => role.Id == config.ModRole).Name}**";
                }
                else if (config.AdminRole != 0)
                {
                    adminRole = $"**{Context.Guild.Roles.First(role => role.Id == config.ModRole).Name}**";
                }
                else if (config.HelperRole != 0)
                {
                    helperRole = $"**{Context.Guild.Roles.First(role => role.Id == config.HelperRole).Name}**";
                }

                var welcomemessages = "";
                for (var i = 0; i < config.WelcomeMessages.Count; i++)
                {
                    welcomemessages = (config.WelcomeMessages[i]);
                }

                var leavemessages = "";
                for (var i = 0; i < config.LeaveMessages.Count; i++)
                {
                    leavemessages = (config.LeaveMessages[i]);
                }

                if (config.WelcomeChannel != 0)
                {
                    embed.AddField("Welcome/Leaving", "On:\n" +
                                   $"- Welcome Channel: <#{config.WelcomeChannel}>\n" +
                                   $"- Leave Channel: <#{config.LeaveChannel}>\n" +
                                   $"- WelcomeMsg: {welcomemessages}\n" +
                                   $"- LeavingMsg: {leavemessages}", true);
                }
                else
                {
                    embed.AddField("Welcome/Leaving", "Off", true);
                }

                embed.AddField("Other", $"Antilink: {ConvertBoolean(config.Antilink)}\n" +
                               $"Mass Ping Checks: {ConvertBoolean(config.MassPingChecks)}\n" +
                               $"Blacklist: {ConvertBoolean(config.Filter)}\n" +
                               $"Autorole: {config.Autorole}\n" +
                               $"Leveling: {ConvertBoolean(config.Leveling)}\n" +
                               $"Server Logging: {ConvertBoolean(config.IsServerLoggingEnabled)}\n" +
                               $"Unflipping: {ConvertBoolean(config.Unflip)}\n" +
                               $"Helper Role: {helperRole}\n" +
                               $"Mod Role: {modRole}\n" +
                               $"Admin Role: {adminRole}\n", true);

                embed.WithThumbnailUrl(Context.Guild.IconUrl);
                embed.WithFooter("Guild Information is shown incorrectly or not shown at all? Use `w!syncguild` to sync the current server owner!");

                await MiscHelpers.SendMessage(Context, embed);
            }

            else
            {
                var embed = new EmbedBuilder();
                embed.WithColor(37, 152, 255);
                embed.Title = $":x:  | You Need the Administrator Permission to do that {Context.User.Username}";
                await ReplyAndDeleteAsync("", embed : embed.Build(), timeout : TimeSpan.FromSeconds(5));
            }
        }
Exemplo n.º 12
0
        public async Task SayHello()
        {
            var embed = MiscHelpers.CreateEmbed(Context, "Hello!", "My name is Wsashi, a bot created by Phytal! (And possibly your Waifu..)").WithImageUrl(Global.Client.CurrentUser.GetAvatarUrl());

            await MiscHelpers.SendMessage(Context, embed);
        }
Exemplo n.º 13
0
        public async Task MasterConfig()
        {
            var guildUser = Context.User as SocketGuildUser;

            if (!guildUser.GuildPermissions.Administrator)
            {
                string description =
                    $"{Global.ENo} **|** You Need the **Administrator** Permission to do that {Context.User.Username}";
                var errorEmbed = EmbedHandler.CreateEmbed(Context, "Error", description,
                                                          EmbedHandler.EmbedMessageType.Exception);
                await ReplyAndDeleteAsync("", embed : errorEmbed);
            }

            var config = GlobalGuildAccounts.GetGuildAccount(Context.Guild.Id);
            var embed  = MiscHelpers.CreateEmbed(Context, Context.Guild.Name, $"Server ID: {config.Id}\n" +
                                                 $"Owner: <@{config.GuildOwnerId}>");

            var welcomemessages = "";

            for (var i = 0; i < config.WelcomeMessages.Count; i++)
            {
                welcomemessages = (config.WelcomeMessages[i]);
            }

            var leavemessages = "";

            for (var i = 0; i < config.LeaveMessages.Count; i++)
            {
                leavemessages = (config.LeaveMessages[i]);
            }

            if (config.WelcomeChannel != 0)
            {
                embed.AddField("Welcome/Leaving", "On:\n" +
                               $"- Welcome Channel: <#{config.WelcomeChannel}>\n" +
                               $"- Leave Channel: <#{config.LeaveChannel}>\n" +
                               $"- Welcome Messages: {string.Join(", ", config.WelcomeMessages.ToArray())}\n" +
                               $"- Leaving Messges: {string.Join(", ", config.LeaveMessages.ToArray())}",
                               true);
            }
            else
            {
                embed.AddField("Welcome/Leaving", "Off", true);
            }

            var antiLinkIgnoredChannels = "#" + string.Join(", #", config.AntilinkIgnoredChannels.ToArray());

            embed.AddField("Other", $"Antilink: {ConvertBoolean(config.Antilink)}\n" +
                           $"AutoRole: {config.AutoRole}\n" +
                           $"Anti-link Ignored Channels: {antiLinkIgnoredChannels}\n" +
                           $"Blacklist: {ConvertBoolean(config.Filter)}\n" +
                           $"Custom Blacklist: {string.Join(", ", config.CustomFilter.ToArray())}\n" +
                           $"Custom Currency: {config.Currency}\n" +
                           $"Custom Prefix: {config.CommandPrefix}\n" +
                           $"Slow mode: {ConvertBoolean(config.IsSlowModeEnabled)}\n" +
                           $"Leveling: {ConvertBoolean(config.Leveling)}\n" +
                           $"Mass Ping Checks: {ConvertBoolean(config.MassPingChecks)}\n" +
                           $"Unflipping: {ConvertBoolean(config.Unflip)}\n");

            embed.WithThumbnailUrl(Context.Guild.IconUrl);
            embed.WithFooter(
                "Guild Information is shown incorrectly or not shown at all? Use `n!syncguild` to sync the current server owner!");

            await SendMessage(Context, embed.Build());
        }