コード例 #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello from C#!", Console.LogLevel.Info);
            Console.WriteLine(string.Format("args = [{0}]", string.Join(",", args)), Console.LogLevel.Info);

            Console.AddCommand("test", TestCommand);
            Console.Execute("print t");

            Events.Add <Input.KeyEvent>(KeyCallback);
            Events.Add <TestEvent>(TestEventCallback);

            DiscordEventHandler discordEventHandler = new DiscordEventHandler();

            DiscordRPC.Init("424302031822520320", ref discordEventHandler, true, "480");

            DiscordPresence presence = new DiscordPresence();

            presence.details       = "Jazz weeb";
            presence.state         = ":3c:";
            presence.largeImageKey = "icon-large";
            presence.smallImageKey = "icon-small";

            DiscordRPC.UpdatePresence(ref presence);

            SteamworksClient = new Client(480);
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: viktor-mains/XayahBot
        private async Task InitializeAsync()
        {
            this._serviceCollection.AddSingleton(this._client);
            this._serviceCollection.AddSingleton(this._commandService);
            this._serviceCollection.AddSingleton(RemindService.GetInstance(this._client));

            this._serviceProvider = this._serviceCollection.BuildServiceProvider(true);

            await this._commandService.AddModulesAsync(Assembly.GetEntryAssembly());

            this._commandService.AddTypeReader <TimeUnitTypeReader>(new TimeUnitTypeReader());
            this._commandService.AddTypeReader <LeagueRoleTypeReader>(new LeagueRoleTypeReader());

            DiscordEventHandler eventHandler = new DiscordEventHandler(this._serviceProvider);

            this._client.Log             += Logger.Log;
            this._commandService.Log     += Logger.Log;
            this._client.Ready           += eventHandler.HandleReady;
            this._client.MessageReceived += eventHandler.HandleMessageReceived;

            using (GeneralContext database = new GeneralContext())
            {
                await database.Database.EnsureCreatedAsync();
            }
        }
コード例 #3
0
        public DiscordWebSocket(Uri uri, CancellationToken cancelToken)
        {
            this.uri         = uri;
            this.cancelToken = cancelToken;

            listener   = new DiscordEventListener(this);
            Handler    = new DiscordEventHandler();
            Cache      = new DiscordWebSocketCache();
            serializer = new JsonSerializer();
        }
コード例 #4
0
ファイル: DiscordBot.cs プロジェクト: FAForever/faf-qai
 public DiscordBot(IServiceProvider services, DiscordBotConfiguration configuration,
                   DiscordShardedClient client, DiscordRestClient rest,
                   QCommandsHandler commands, DiscordEventHandler eventHandler)
 {
     Commands           = new Dictionary <string, Command>();
     Config             = configuration;
     Client             = client;
     Rest               = rest;
     this._services     = services;
     this._commands     = commands;
     this._eventHandler = eventHandler;
 }
コード例 #5
0
ファイル: Program.cs プロジェクト: Stanley1551/KomobotV2
        private static void WireUpEvents(DiscordClient client)
        {
            client.PresenceUpdated += new AsyncEventHandler <PresenceUpdateEventArgs>(async(e) => await DiscordEventHandler.PresenceUpdated(e, client));

            client.GuildMemberRemoved += new AsyncEventHandler <GuildMemberRemoveEventArgs>(async(e) => await DiscordEventHandler.GuildMemberRemoved(e, client));

            client.ChannelCreated += new AsyncEventHandler <ChannelCreateEventArgs>(async(e) => await DiscordEventHandler.ChannelCreated(e, client));

            client.GuildEmojisUpdated += new AsyncEventHandler <GuildEmojisUpdateEventArgs>(async(e) => await DiscordEventHandler.EmojiUpdated(e, client));

            client.ChannelDeleted += new AsyncEventHandler <ChannelDeleteEventArgs>(async(e) => await DiscordEventHandler.ChannelDeleted(e, client, config));

            client.SocketClosed += async(e) => await DiscordEventHandler.SocketClosed(e);

            client.MessageCreated += async(e) => await DiscordEventHandler.MessageCreated(e, client, config.screenshotChannel);
        }
コード例 #6
0
        public static void GameStateMessage(string csgoDataJson)
        {
            Console.WriteLine(csgoDataJson);

            var    csgoData = new JavaScriptSerializer().Deserialize <dynamic>(csgoDataJson);
            string steamId  = csgoData["provider"]["steamid"];

            if (!rpcInitialized)
            {
                rpcInitialized = true;
                var eventHandler = new DiscordEventHandler();
                DiscordRPC.Init(discordAppId, ref eventHandler, true, steamId);
                startAt = (int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds;

                DiscordAssets.Init(discordAppId);
            }

            DiscordPresence presence = FormatPresence(csgoData);

            DiscordRPC.UpdatePresence(ref presence);
        }
コード例 #7
0
        private static async Task Main()
        {
            Log.Logger = new LoggerConfiguration()
                         .WriteTo.Console()
                         .CreateLogger();

            IConfiguration metaConfig = new ConfigurationBuilder()
                                        .AddEnvironmentVariables()
                                        .Build();
            IConfiguration config = new ConfigurationBuilder()
                                    .AddEnvironmentVariables()
                                    .AddJsonFile(metaConfig["GREENGLADE_SETTINGS_PATH"], true, true)
                                    .AddJsonFile(metaConfig["TIPSY_SETTINGS_PATH"], true, true)
                                    .Build();

            var discordConfig = new DiscordSocketConfig {
                MessageCacheSize = 100
            };
            var client = new DiscordSocketClient(discordConfig);

            const string prefix          = ">";
            var          guildInfoSource = new DefaultGuildSettingsSource(new GuildSettings
            {
                CommandPrefix       = prefix,
                AllowInlineCommands = true,
                InlineCommandAlias  = "search",
                InlineCommandOpener = "<<",
                InlineCommandCloser = ">>",
            });

            IServiceProvider services = new ServiceCollection()
                                        .AddLogging(b => b.AddSerilog(dispose: true))
                                        .Configure <GreengladeSettings>(config)
                                        .Configure <TipsySettings>(config)
                                        .AddDbContextPool <GreengladeContext>(options => options.UseSqlite(config["CONNECTION_STRING"]))
                                        .AddSingleton(guildInfoSource)
                                        .AddScoped <IGuildSettingsSource, EfCoreGuildSettingsSource>()
                                        .AddSingleton(client)
                                        .AddSingleton <IDataDragonFetcher, RiotDataDragonFetcher>()
                                        .AddSingleton <ICatalogService, BasicCatalogService>()
                                        .AddScoped <ISearchService, BasicLevenshteinSearchService>()
                                        // Views
                                        .AddScoped <CardboardViewBuilder>()
                                        .AddScoped <CardboardSearchViewBuilder>()
                                        .AddScoped <CardFlavorViewBuilder>()
                                        .AddScoped <CardFlavorSearchViewBuilder>()
                                        .AddScoped <CardRelationViewBuilder>()
                                        .AddScoped <CardRelationSearchViewBuilder>()
                                        .AddScoped <KeywordViewBuilder>()
                                        .AddScoped <KeywordSearchViewBuilder>()
                                        .AddScoped <DeckViewBuilder>()
                                        .AddScoped <DeckSearchViewBuilder>()
                                        .AddScoped <AnythingSearchViewBuilder>()
                                        // Other
                                        .AddScoped <LocaleService>()
                                        .AddSingleton <CommandService>()
                                        .AddScoped <CommandDispatcher>()
                                        .AddScoped <ICommandResultHandler, BasicCommandResultHandler>()
                                        .BuildServiceProvider();

            CommandService commands = services.GetRequiredService <CommandService>();

            _ = await commands.AddModulesAsync(Assembly.GetEntryAssembly(), services);

            using var handler = DiscordEventHandler.CreateAndRegister(client, commands, services);

            await client.LoginAsync(TokenType.Bot, config["DISCORD_TOKEN"]);

            await client.StartAsync();

            await client.SetActivityAsync(new Game($"{prefix}help | {prefix}about"));

            await Task.Delay(-1);
        }