}//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
Пример #2
0
        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