예제 #1
0
        public void CommandDM(string[] parsResult, ParamResponse e, TGUpl a)
        {
            /* 1) Проверить существования модераторов
             * 2) Сравнить уровни модераторов
             * 3) Удалить модератора
             */
            int   CureChat  = GetChat(e.chatId);
            Moder CureModer = IsModer(e.UId);

            if (CureModer.UId == "Null")
            {
                NonModder(e, a);
                return;
            }
            Moder DeletModer = IsModer(e.replyMessageUID);

            if (DeletModer.UId == "Null")
            {
                NonModder(e, a);
                return;
            }
            int LVL1 = Int32.Parse(CureModer.MLvl), LVL2 = Int32.Parse(DeletModer.MLvl);

            if (LVL1 > LVL2)
            {
                DelModer(DeletModer);
                SuccessOp(e, a, " Модератор удалён.");
            }
            else
            {
                NotEnouthRights(e, a);
            }
        }
예제 #2
0
 public void AddModer(Moder arg)
 {
     MCount++;
     MArray = (Moder[])AnotherMethod.ResizeArray(MArray, new int[1] {
         MCount
     });
     MArray[MCount - 1] = new Moder();
     MArray[MCount - 1] = arg;
 }
예제 #3
0
        public void CommandST(string[] parsResult, ParamResponse e, TGUpl a)
        {
            /* 1) Проверяем админ ли тот, кто просит установить триггер
             * 2) Проверяем существует ли такоей триггер.
             * 3) Проверяем уровень триггера и уровень модератора, если триггер существует
             * 4) Изменяем триггер, если все проверки удались иначе добавляем новый, если админ
             */
            int   CureChat  = GetChat(e.chatId);
            Moder CureModer = IsModer(e.UId);

            if (CureModer.UId == "Null")
            {
                NonModder(e, a);
                return;
            }
            int CureTrigger = this.ChBot[CureChat].GetTrigger(parsResult[1]);

            if (parsResult[2] == "" && e.replyMessageText == null || parsResult[1] == "")
            {
                InvalidData(e, a);
                return;
            }
            if (CureTrigger == -1)
            {
                Trigger AT = TForm(parsResult, e, a, CureModer);
                this.ChBot[CureChat].AddTrigger(AT);
                SuccessOp(e, a, "Триггер добавлен.");
            }
            else
            {
                int Mistake;
                try
                {
                    Mistake = Int32.Parse(this.ChBot[CureChat].TArray[CureTrigger].TLvl);
                }
                catch
                {
                    this.ChBot[CureChat].TArray[CureTrigger].TLvl = "0";
                }
                if (Int32.Parse(this.ChBot[CureChat].TArray[CureTrigger].TLvl) <= Int32.Parse(CureModer.MLvl))
                {
                    Trigger AT = TForm(parsResult, e, a, CureModer);
                    this.ChBot[CureChat].ResetTrigger(AT);
                    SuccessOp(e, a, "Триггер обновлён.");
                }
                else
                {
                    NotEnouthRights(e, a);
                    return;
                }
            }
        }
예제 #4
0
        public void CommandSM(string[] parsResult, ParamResponse e, TGUpl a)
        {
            /* 1) Проверить существуют ли одмены
             * 2) Если новый одмен существует то посылаем на
             * 3) Если не существует, то сравниваем уровень модера и уровень создавемого. Создаваемый - обязательно меньше
             * 4) Добавляем модератора или посылаем на
             */
            int   CureChat  = GetChat(e.chatId);
            Moder CureModer = IsModer(e.UId);

            if (CureModer.UId == "Null")
            {
                NonModder(e, a);
                return;
            }
            Moder NewModer = IsModer(e.replyMessageUID);

            if (NewModer.UId != "Null")
            {
                AlreadyExist(e, a);
                return;
            }
            int newLVL;

            if (Int32.TryParse(parsResult[1], out newLVL) == false)
            {
                InvalidData(e, a);
                return;
            }
            if (newLVL < 1)
            {
                InvalidData(e, a);
                return;
            }
            if (Int32.Parse(CureModer.MLvl) > newLVL)
            {
                Moder OnyModer = new Moder();
                OnyModer.MLvl  = newLVL.ToString();
                OnyModer.UId   = e.replyMessageUID;
                OnyModer.UName = e.replyMessageUsername;
                AddModer(OnyModer);
                SuccessOp(e, a, " Модератор добавлен.");
            }
            else
            {
                InvalidData(e, a);
                return;
            }
        }
예제 #5
0
        public void BotWork()
        {
            Thread thr = new Thread(AutoWrite)
            {
                IsBackground = true
            };

            thr.Start();
            MainModer      = new Moder();
            MainModer.UId  = TGBotSettings.MainModer;
            MainModer.MLvl = "7";
            FileStream   file1  = new FileStream("./Data/info.txt", FileMode.Open); //создаем файловый поток
            StreamReader reader = new StreamReader(file1);                          // создаем «потоковый читатель» и связываем его с файловым потоком
            string       toRead = "";

            toRead = reader.ReadToEnd(); //считываем все данные с потока и вводим в переменнуб, с которой будем работать
            Info   = toRead;
            reader.Close();
            file1.Close();

            while (true)
            {
                ParamResponse e;
                try
                {
                    e = req.GetUpd();//Попытка получить данные
                }
                catch
                {
                    Console.WriteLine("Trouble with Net");//Если дропнулось подключение сообщаем об этом и повторяем попытку
                    req.MakeNewWebBot = true;
                    continue;
                }
                if (Semafor.Semafor.StopBot == true)//Действия, завершающие работу бота.
                {
                    thr.Abort();
                    return;
                }
                if (e.Writed == false)
                {
                    continue;//Если получили пустое сообщение
                }
                CommandCentre(e);
            }
        }
예제 #6
0
        public Moder IsModer(string moderId)
        {
            if (moderId == MainModer.UId)
            {
                return(this.MainModer);
            }
            for (int i = 0; i < this.MCount; i++)
            {
                if (this.MArray[i].UId == moderId)
                {
                    return(this.MArray[i]);
                }
            }
            Moder Zero = new Moder();

            Zero.UId = "Null";
            return(Zero);
        }
예제 #7
0
        public void DelModer(Moder arg)
        {
            int i = 0;

            for (; i < MCount - 1; i++)
            {
                if (MArray[i].UId == arg.UId)
                {
                    break;
                }
            }
            for (; i < MCount - 1; i++)
            {
                MArray[i] = MArray[i + 1];
            }
            MCount--;
            MArray = (Moder[])AnotherMethod.ResizeArray(MArray, new int[1] {
                MCount
            });
        }
예제 #8
0
        public void CommandDT(string[] parsResult, ParamResponse e, TGUpl a)
        {
            /* 1)Проверить сущ-ние модера
             * 2)Проверить сущ-ние триггера
             * 3)Проверить уровни модера и триггера
             * 4)Удалить триггер
             */
            int   CureChat  = GetChat(e.chatId);
            Moder CureModer = IsModer(e.UId);

            if (CureModer.UId == "Null")
            {
                NonModder(e, a);
                return;
            }
            string trigger     = (parsResult[1] == "") ? e.replyMessageText : parsResult[1];
            int    CureTrigger = this.ChBot[CureChat].GetTrigger(trigger);

            if (CureTrigger == -1)
            {
                InvalidData(e, a);
                return;
            }
            int Mistake;

            try
            {
                Mistake = Int32.Parse(this.ChBot[CureChat].TArray[CureTrigger].TLvl);
            }
            catch
            {
                this.ChBot[CureChat].TArray[CureTrigger].TLvl = "0";
            }
            if (Int32.Parse(this.ChBot[CureChat].TArray[CureTrigger].TLvl) > Int32.Parse(CureModer.MLvl))
            {
                NotEnouthRights(e, a);
                return;
            }
            this.ChBot[CureChat].DeleteTrigger(CureTrigger);
            SuccessOp(e, a, " Триггер удалён.");
        }
예제 #9
0
        public void CommandSI(string[] parsResult, ParamResponse e, TGUpl a)
        {
            int   CureChat  = GetChat(e.chatId);
            Moder CureModer = IsModer(e.UId);

            if (CureModer.UId == "Null")
            {
                NonModder(e, a);
                return;
            }
            if (int.Parse(CureModer.MLvl) < 4)
            {
                NotEnouthRights(e, a);
                return;
            }
            ChBot[CureChat].CInv           = new Invintation();
            ChBot[CureChat].CInv.TResponse = ((parsResult[1] != "")?parsResult[1]:e.replyMessageText);
            ChBot[CureChat].CInv.TType     = ((parsResult[2] != "") ? "Message" : e.replyMessageType);
            ChBot[CureChat].CInv.TLvl      = "4";
            SuccessOp(e, a, "Приветствие добавлено.");
            return;
        }
예제 #10
0
        public Trigger TForm(string[] parsResult, ParamResponse e, TGUpl a, Moder CureModer)
        {
            Trigger AT = new Trigger();

            AT.TLvl  = CureModer.MLvl;
            AT.TWord = parsResult[1];
            if (parsResult[2] == "" && e.replyMessageText != null)
            {
                AT.TType     = e.replyMessageType;
                AT.TResponse = e.replyMessageText;
            }
            else if (e.replyMessageText == null && parsResult[2] != "")
            {
                AT.TType     = "Message";
                AT.TResponse = parsResult[2];
            }
            else
            {
                a.SendMessage("Невозможно добавить пустой триггер", e.chatId);
                AT.TType     = null;
                AT.TResponse = null;
            }
            return(AT);
        }