}//Mag To all #endregion #region DiscordCommandHandle private void analyzeCmd(DiscordMsgData msgdata) { string[] lowercmdargs = new string[msgdata.cmdargs.Length]; for (int i = 0; i < msgdata.cmdargs.Length; i++) { lowercmdargs[i] = msgdata.cmdargs[i].ToLower(); } if (msgdata.cmdargs[0] == "") { AddMsgOnJsonQueue(null, "\',\'는 디스코드 링커 명령어 키워드입니다" + "\n이 뒤에 구문을 붙임으로서 서버측에서 명령어를 수행하며 응답합니다" + "\n" + "\n명령어 리스트를 보려면 ,help를 입력하세요" , true, true); return; } object result = Interface.CallHook("OnDiscordCommand", msgdata.username, msgdata.msg, lowercmdargs); if (result == null) { AddMsgOnJsonQueue(null, "" + "\"" + msgdata.cmdargs[0] + "\"는(은) 존재하지 않는 명령어 입니다" + "", true, true); } }//CommandHandle
public void AddMsgOnJsonQueue(string filelink, string username, string msg) { FileInfo file = new FileInfo(filelink); if (file.Exists == false) { Console.WriteLine("ERROR : data파일이 없습니다"); return; } JObject DataFileJson = ReadData(filelink); if (DataFileJson == null) { return; } if (DataFileJson["DiscordMsgData"] == null) { DataFileJson["DiscordMsgData"] = null; } DiscordMsgData msgData; string commandPrefix = Program.fileManager.ConfigJson["CommandPrefix"].ToString(); if (msg.Length >= commandPrefix.Length) { if (msg.Substring(0, commandPrefix.Length) == commandPrefix) { string cmdstr = msg.Substring(commandPrefix.Length); msgData = new DiscordMsgData(username, cmdstr, true, SplitArguments(cmdstr)); } else { msgData = new DiscordMsgData(username, StripHTML(msg), false, null); } } else { msgData = new DiscordMsgData(username, StripHTML(msg), false, null); } List <DiscordMsgData> msgDatas = (DataFileJson["DiscordMsgData"].ToObject <List <DiscordMsgData> >()); if (msgDatas == null) { msgDatas = new List <DiscordMsgData>(); } msgDatas.Add(msgData); DataFileJson["DiscordMsgData"] = JToken.FromObject(msgDatas); SaveData(filelink, DataFileJson); }
void timer_Tick() { JObject jsonobj; try { dataFile = Interface.Oxide.DataFileSystem.GetDatafile("DiscordLinker"); if (dataFile["DiscordMsgData"] == null) { return; } jsonobj = Interface.Oxide.DataFileSystem.ReadObject <JObject>("DiscordLinker"); } catch { return; } List <DiscordMsgData> MsgList = (jsonobj["DiscordMsgData"].ToObject <List <DiscordMsgData> >()); foreach (var item in MsgList) { DiscordMsgData msgdata = item; if (msgdata.iscmd == true) { analyzeCmd(msgdata); continue; } Broadcast("<color=#FF9436>[디스코드]</color> <color=#FFDC7E>" + msgdata.username + "</color>: " + msgdata.msg); Puts(msgdata.username + ": " + msgdata.msg); } jsonobj["DiscordMsgData"] = null; SaveData(jsonobj); }//Receive