Advertisement
Guest User

Program.cs

a guest
May 26th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.82 KB | None | 0 0
  1. using System;
  2. using Discord;
  3. using Discord.Commands;
  4. using Discord.Modules;
  5. using Discord.Audio;
  6. using Discord.Commands.Permissions.Levels;
  7.  
  8. namespace omni_bot
  9. {
  10.     class Program
  11.     {
  12.         static void Main(string[] args) => new Program().Start();
  13.  
  14.         private DiscordClient _client;
  15.  
  16.         public void Start()
  17.         {
  18.             Console.Title = "0MN1-2000 - your friendly neighborhood bot";
  19.             _client = new DiscordClient(x =>
  20.             {
  21.                 x.AppName = "0MN1-2000";
  22.                 x.LogLevel = LogSeverity.Debug;
  23.             })
  24.             .UsingCommands(x =>
  25.             {
  26.                 x.PrefixChar = '/';
  27.                 x.HelpMode = HelpMode.Public;
  28.                 x.ErrorHandler = OnCommandError;
  29.             })
  30.             .UsingModules()
  31.             .UsingAudio(x =>
  32.             {
  33.                 x.Mode = AudioMode.Outgoing;
  34.                 x.EnableEncryption = true;
  35.                 x.Bitrate = AudioServiceConfig.MaxBitrate;
  36.                 x.BufferLength = 10000;
  37.             })
  38.             .UsingPermissionLevels(PermissionResolver);
  39.  
  40.             _client.AddModule<ModeratorModule>();
  41.  
  42.             _client.UserJoined += async (s, e) =>
  43.             {
  44.                 await e.Server.DefaultChannel.SendMessage($"{e.User.Name} joined.");
  45.             };
  46.  
  47.             _client.ExecuteAndWait(async () =>
  48.             {
  49.                 await _client.Connect("MTg0OTA3OTkyNjYyMDE2MDAw.CibQfQ.Mqxd6nKGL93drNZS_OwMVUS9wQY");
  50.             });
  51.         }
  52.         private void OnCommandError(object sender, CommandErrorEventArgs e)
  53.         {
  54.             string msg = e.Exception?.Message;
  55.             if (msg == null) //No exception - show a generic message
  56.             {
  57.                 switch (e.ErrorType)
  58.                 {
  59.                     case CommandErrorType.Exception:
  60.                         msg = "Unknown error.";
  61.                         break;
  62.                     case CommandErrorType.BadPermissions:
  63.                         msg = "You do not have permission to run this command.";
  64.                         break;
  65.                     case CommandErrorType.BadArgCount:
  66.                         msg = "You provided the incorrect number of arguments for this command.";
  67.                         break;
  68.                     case CommandErrorType.InvalidInput:
  69.                         msg = "Unable to parse your command, please check your input.";
  70.                         break;
  71.                     case CommandErrorType.UnknownCommand:
  72.                         msg = "Unknown command.";
  73.                         break;
  74.                 }
  75.             }
  76.             if (msg != null)
  77.             {
  78.                 //_client.ReplyError(e, msg);
  79.                 _client.Log.Error("Command", msg);
  80.             }
  81.         }
  82.         private int PermissionResolver(User user, Channel channel)
  83.         {
  84.             if (user.Id == 112089455933792256)
  85.                 return (int)PermissionLevel.BotOwner;
  86.             if (user.Server != null)
  87.             {
  88.                 if (user == channel.Server.Owner)
  89.                     return (int)PermissionLevel.ServerOwner;
  90.  
  91.                 var serverPerms = user.ServerPermissions;
  92.                 if (serverPerms.ManageRoles)
  93.                     return (int)PermissionLevel.ServerAdmin;
  94.                 if (serverPerms.ManageMessages && serverPerms.KickMembers && serverPerms.BanMembers)
  95.                     return (int)PermissionLevel.ServerModerator;
  96.  
  97.                 var channelPerms = user.GetPermissions(channel);
  98.                 if (channelPerms.ManagePermissions)
  99.                     return (int)PermissionLevel.ChannelAdmin;
  100.                 if (channelPerms.ManageMessages)
  101.                     return (int)PermissionLevel.ChannelModerator;
  102.             }
  103.             return (int)PermissionLevel.User;
  104.         }
  105.     }
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement