/// <summary> /// 実行中のプラグイン名を取得する /// </summary> /// <returns>プラグイン名</returns> public List <string> GetPlugin() { if (api.Player.LoginStatus != (int)LoginStatus.LoggedIn) { return(new List <string>()); } chat.Reset(); api.ThirdParty.SendString("//plugin_list"); List <string> ret = new List <string>(); var cl = new EliteAPI.ChatEntry(); for (int i = 0; i < this.MaxLoopCount && !MiscTool.IsRegexString(cl.Text, REGEX_PLUGIN_END); i++) { while (chat.GetNextChatLine(out cl)) { if (MiscTool.IsRegexString(cl.Text, REGEX_PLUGIN)) { List <string> reg = MiscTool.GetRegexString(cl.Text, REGEX_PLUGIN); string[] work = reg[0].Split(','); ret.Add(work[work.Count() - 1]); } else if (MiscTool.IsRegexString(cl.Text, REGEX_PLUGIN_END)) { break; } } Thread.Sleep(this.BaseWait); } return(ret); }
/// <summary> /// チャットからタイムスタンプを削除 /// タイムスタンプの表示形式が[HH:MM]の場合、EliteAPIでタイムスタンプをクリアしてくれない /// </summary> /// <param name="iText"></param> /// <returns></returns> private string RemoveTimeStamp(string iText) { if (MiscTool.IsRegexString(iText, REGEX_TIMESTAMP_HHMM)) { var reg = MiscTool.GetRegexString(iText, REGEX_TIMESTAMP_HHMM); return(reg[2]); } else { return(iText); } }
/// <summary> /// 実行中のアドオン名を取得する /// </summary> /// <returns>アドオン名</returns> public List <string> GetAddon() { if (api.Player.LoginStatus != (int)LoginStatus.LoggedIn) { return(new List <string>()); } chat.Reset(); api.ThirdParty.SendString("//lua list"); Thread.Sleep(this.BaseWait); api.ThirdParty.SendString("/echo " + REGEX_ADDON_END); List <string> ret = new List <string>(); var cl = new EliteAPI.ChatEntry(); bool startFlg = false; for (int i = 0; i < this.MaxLoopCount && !MiscTool.IsRegexString(cl.Text, REGEX_ADDON_END); i++) { while (chat.GetNextChatLine(out cl)) { if (!startFlg) { if (MiscTool.IsRegexString(cl.Text, REGEX_ADDON_START)) { startFlg = true; } } else { if (MiscTool.IsRegexString(cl.Text, REGEX_ADDON_END)) { break; } else if (MiscTool.IsRegexString(cl.Text, REGEX_ADDON)) { List <string> reg = MiscTool.GetRegexString(cl.Text, REGEX_ADDON); ret.Add(reg[0].Trim()); } } } Thread.Sleep(this.BaseWait); } return(ret); }