예제 #1
0
 public VoiceChannelWorker(SocketVoiceChannel voiceChannel, MetadataManager metadataManager, PlayHistoryManager playHistoryManager, WitAiClient witAiClient)
 {
     _voiceChannel       = voiceChannel;
     _metadataManager    = metadataManager;
     _playHistoryManager = playHistoryManager;
     _witAiClient        = witAiClient;
 }
예제 #2
0
 private void InitPlayHis()
 {
     if (PlayHistoryManager.IsEmpty())
     {
         WelPlayHisFrame.Navigate(typeof(PlayHisEmptyPage));
     }
     else
     {
         WelPlayHisFrame.Navigate(typeof(WelPlayHisPage));
     }
 }
예제 #3
0
        public static async Task Main(string[] args)
        {
            var cts = new CancellationTokenSource();

            if (DataDir != null)
            {
                Directory.SetCurrentDirectory(DataDir);
            }

            var audioTmpDir = Path.Join(_audioDir, "tmp");

            if (Directory.Exists(audioTmpDir))
            {
                Directory.Delete(audioTmpDir, recursive: true);
            }
            Directory.CreateDirectory(audioTmpDir);

            var secrets = JsonConvert.DeserializeObject <Secrets>(File.ReadAllText("secrets.json"));

            if (secrets == null)
            {
                throw new Exception("secrets object was null");
            }
            secrets.DiscordApiKey = DiscordApiKeyOverride ?? secrets.DiscordApiKey;
            secrets.WitAiApiKey   = WitAiApiKeyOverride ?? secrets.WitAiApiKey;

            using var db = new LiteDatabaseAsync($"Filename=metadata.db;Connection=shared");
            using var metadataManager    = new MetadataManager(db);
            using var playHistoryManager = new PlayHistoryManager(db);
            _metadataManager             = metadataManager;

#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
            Task.Run(() => _autoPopulate(cts.Token));
            Task.Run(() => _autoPrefetch(cts.Token));
#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed

            if (secrets.WitAiApiKey == null)
            {
                throw new ArgumentNullException("WitAiApiKey must be provided.");
            }
            var aiClient = new WitAiClient(secrets.WitAiApiKey);

            if (secrets.DiscordApiKey == null)
            {
                throw new ArgumentNullException("DiscordApiKey must be provided.");
            }
            var client = new DiscordClient(secrets.DiscordApiKey, aiClient, _metadataManager, playHistoryManager);
            await client.StartAsync();

            Console.CancelKeyPress += (o, e) => cts.Cancel();
            AppDomain.CurrentDomain.ProcessExit += (s, ev) => cts.Cancel();

            await cts.Token.WhenCancelled();
        }
예제 #4
0
        public DiscordClient(string apiKey, WitAiClient witAiClient, MetadataManager metadataManager, PlayHistoryManager playHistoryManager)
        {
            _client = new DiscordSocketClient(new DiscordSocketConfig()
            {
            });
            _client.Log             += OnLog;
            _client.Ready           += OnReady;
            _client.MessageReceived += OnMessageReceived;

            _apiKey             = apiKey;
            _witAiClient        = witAiClient;
            _metadataManager    = metadataManager;
            _playHistoryManager = playHistoryManager;
        }
예제 #5
0
    // Start is called before the first frame update
    void Start()
    {
        //Setting Class
        StickBehavior      = GameObject.Find("Sticks").GetComponent <StickBehavior>();
        StoneManager       = GameObject.Find("GameManager").GetComponent <StoneManager>();
        PlayHistoryManager = GameObject.Find("GameManager").GetComponent <PlayHistoryManager>();

        //Setting userFirst bool
        isUserFirst = GameStat.isUserFirst;

        //Call Reset System
        ResetSystem();

        //Turn off all lights on count light
        OutCountResetSystem();

        //Turn off turn symbol b.
        turnSymbolB.SetActive(false);

        //Pre-Set Scoreboard

        /*
         * 0: Result, 1 ~ 9: Each Innings, Max Inning: 9
         */

        ScoreBoardResetSystem();

        if (isUserFirst) // If uesr attack first case (Attack at Top of inning)
        {
            defenseCardButton.gameObject.SetActive(false);
            offenseButton.gameObject.SetActive(false);

            teamAText.text = "USER";
            teamBText.text = "COM";

            isUserTurn = true;
        }

        else if (!isUserFirst) // If user attack later case (Attack at Bottom of inning)
        {
            defenseCardButton.gameObject.SetActive(true);
            offenseButton.gameObject.SetActive(false);

            teamAText.text = "COM";
            teamBText.text = "USER";

            isUserTurn = false;
        }
    }
예제 #6
0
 public WelPlayHisPage()
 {
     this.InitializeComponent();
     PlayHisList = PlayHistoryManager.GetHisCollection();
 }