Ejemplo n.º 1
0
        public static void YotogiKagManager_Tag(YotogiKagManager manager, KagTagSupport kagTag)
        {
            try
            {
                var list = kagTag.GetTagList();

                Logger.Log(LogLevel.Debug, $"[Yotogi] Kag Tag({list["tagname"]})");

                switch (list["tagname"])
                {
                case "talk":
                case "talkrepeat":
                    foreach (var tag in list)
                    {
                        Logger.Log(LogLevel.Debug, $"[Yotogi] Kag Tag {tag.Key}:{tag.Value}");
                    }
                    yotogiTagEventArgs = new YotogiKagHitRetEventArgs(list["voice"] + ".ogg");
                    yotogiTagEventArgs.TagCallStack.Add(kagTag);
                    break;

                case "hitret":
                    if (yotogiTagEventArgs == null)
                    {
                        return;
                    }

                    yotogiTagEventArgs.Text = manager.kag.GetText();

                    var args = new TextTranslationEventArgs(manager.kag.GetText(), TextType.Text, TextSource.Yotogi);
                    TextTranslation?.Invoke(manager, args);

                    if (args.Translation != null)
                    {
                        yotogiTagEventArgs.Translation = args.Translation;
                    }

                    yotogiTagEventArgs.TagCallStack.Add(kagTag);
                    YotogiKagHitRet?.Invoke(manager, yotogiTagEventArgs);
                    yotogiTagEventArgs = null;
                    break;
                }
            }
            catch (Exception ex)
            {
                Logger.Log(LogLevel.Error, ex);
                throw;
            }
        }