public void Discharge(GameObject _receiver, Telegram _msg)
 {
     if (_receiver.HandleMessage(_msg) == false)
     {
         Debug.Log("Message cannot be send due to error !");
     }
 }
Example #2
0
    public override bool HandleMessage(Telegram message)
    {
        if (base.HandleMessage(message))
            return true;

        if (message.TelegramType == TelegramType.QuestTrade)
        {
            RemoveAllSubgoals();

            CharacterDetails traderDetails = AgentManager.Instance.GetAgent(message.Sender);
            AgentInventory traderInventory = (traderDetails.IsPlayer ? traderDetails.PlayerAgent.Inventory : traderDetails.CognitiveAgent.Inventory);

            //Get equipped item from trader's inventory.
            //See if cues of equipped item match the cue needed to satisfy the quest.
            //If so, remove from one inventory and pass to the other.
            ItemCue traderItem = traderInventory.GetEquippedItem();
            if (traderItem != null)
            {
                for (int i = 0; i < traderItem.CueMarkers.Length; i++)
                {
                    if(traderItem.CueMarkers[i] == Owner.QuestInfo.QuestUID)
                    {
                        Owner.Inventory.PickupItem(traderDetails.PlayerAgent.Inventory.LoseEquippedItem(), true);
                        Owner.CompleteQuest();
                        CurrentStatus = GoalStatus.Completed;
                        return true;
                    }
                }
            }
        }

        return false;   //The message is unhandled by this goal.
    }
        public void DispatchMessage(double delay,
            int sender,
            int receiver,
            int msg,
            Object ExtraInfo = default(Object))
        {
            try
            {
                Agent Sender = AgentManager.Instance.GetAgent(sender);
                Agent Receiver = AgentManager.Instance.GetAgent(receiver);

                Telegram telegram = new Telegram(0, sender, receiver,
                    msg, ExtraInfo);

                if(delay <= 0.0)
                {
                    Discharge(Receiver, telegram);
                }

                else
                {
                    telegram.mDispatchTime = DateTime.Now.Second + delay;

                    priorityQueue.insert(telegram);
                }
            }
            catch(ArgumentException argEx)
            {
                Console.WriteLine(argEx.Message);
                return;
            }
        }
    public void DispatchMessage(float delay, 	/*fa song zhe */int sender, 	/*jie shou zhe */int receiver, int msg,MonoBehaviour _be)
    {
        //jie shou zhe de zhi zhen
        BaseGameEntity pReceiver = EntityManager.Instance ().GetEntityFromID (receiver);

        //chuang jian yi ge xiao xi
        Telegram telegram = new Telegram (0, sender, receiver, msg,_be);

        if (delay <= 0.0f) {

            //li ji fa song xiao xi
            Discharge (pReceiver, telegram);
        } else {

            //yan chi fa song xiao xi
            float CurrentTime = Time.realtimeSinceStartup;

            telegram.DispatchTime = CurrentTime + delay;

            foreach(Telegram val in PriorityQ)
            {
                if(val.Sender == sender && val.Receiver == receiver && val.Msg ==msg)
                {
                    return ;
                }
            }

            PriorityQ.Add (telegram);

        }
    }
Example #5
0
	public static void SendMessage(CognitiveAgent agent, Telegram telegram)
	{
        agent.HandleMessage(telegram);
        //if(agent.HandleMessage(telegram))
        //    Debug.Log("A message " + (telegram.IsResponse ? "response" : "") + " ( " + telegram.TelegramType + " ) was handled by " + agent.name);
        //else
        //    Debug.Log("A message " + (telegram.IsResponse ? "response" : "") + " ( " + telegram.TelegramType + " ) was left unhandled by " + agent.name);
	}
Example #6
0
 public TelegramUtil(Client client, Telegram.Bot.TelegramBotClient telegram, ISettings settings, Inventory inv)
 {
     _client = client;
     _telegram = telegram;
     _clientSettings = settings;
     _inventory = inv;
     DoLiveStats(settings);
     DoInformation();
 }
Example #7
0
 public override void HandleMessage(Telegram telegram)
 {
     if (telegram.TargetList != null)
     {
         if (telegram.TargetList.Contains(this))
         {
             callCoroutine();
         }
     }
 }
        public void TestFixtureSetUp()
        {
            _actualTelegram = null;

            var recipientController = new Clerk(this, this);

            recipientController.Run();

            _expectedTelegram = new Telegram("Hello, world!");
            OnTelegramReceived(new TelegramReceivedEventArgs(_expectedTelegram));
        }
    void Start()
    {
        wallButtons.AddRange(gameObject.GetComponentsInChildren<WallButton>());

        arrowButtonContainer = gameObject.GetComponentInChildren<ArrowButtonContainer>();

        walls = gameObject.GetComponentInChildren<Walls>();
        //lastWall = walls.PuzzleWalls.Last<DimensionWall>().GetComponent<DimensionWall>().CameraSpace;

        wallButtonsTelegram = new Telegram(wallButtons.Cast<ButtonBase>().ToList());
        arrowButtonContainerTelegram = new Telegram(arrowButtonContainer);
    }
        public void TestFixtureSetUp()
        {
            _rabbitManager = new RabbitManager();
            _rabbitManager.PurgeQueue().Wait();

            _telegraphist = new Telegraphist();
            _telegraphist.TelegramReceived += (sender, e) => _actualTelegram = e.Telegram;
            _telegraphist.Start();

            _rabbitManager.PublishMessage(ExpectedValue).Wait();

            Thread.Sleep(1000);
        }
Example #11
0
	public static void DispatchMessage(int sender, int receiver, TelegramType telegramType, bool isResponse = false,  Vector3? location = null, float delay = 0.0f)
	{
		Telegram telegram = new Telegram (sender, receiver, telegramType, isResponse, location, delay);

		if (delay <= 0.0f) 
		{
			CognitiveAgent rAgent = AgentManager.Instance.GetAgent(receiver).CognitiveAgent;
			SendMessage(rAgent, telegram);
		}
		else
		{
			telegram.DispatchTime = Time.time + delay;
			telegramQueue.Add(telegram);
		}
	}
        //---------------------------- DispatchMsg ---------------------------
        //
        //  given a message, a receiver, a sender and any time delay, this function
        //  routes the message to the correct agent (if no delay) or stores
        //  in the message queue to be dispatched at the correct time
        //------------------------------------------------------------------------
        public void DispatchMsg(TimeSpan delay, int sender, int receiver, int messagecode, object additionalInfo)
        {
            //get a pointer to the receiver
            BaseGameEntity receiverEntity = EntityManager.Instance.FindEntity(receiver);

            //make sure the receiver is valid
            if (receiverEntity == null)
            {
                //#ifdef SHOW_MESSAGING_INFO
                //debug_con << "\nWarning! No Receiver with ID of " << receiver << " found" << "";
                //#endif
            }
            else
            {

                //create the telegram
                Telegram telegram = new Telegram(sender, receiver, messagecode, DateTime.Now, additionalInfo);

                //if there is no delay, route telegram immediately                       
                if (delay.TotalMilliseconds <= Telegram.SmallestDelay)
                {
                    //#ifdef SHOW_MESSAGING_INFO
                    //debug_con << "\nTelegram dispatched at time: " << TickCounter->GetCurrentFrame()
                    //     << " by " << sender << " for " << receiver 
                    //     << ". Msg is " << msg << "";
                    //#endif

                    //send the telegram to the recipient
                    discharge(receiverEntity, telegram);
                }

                  //else calculate the time when the telegram should be dispatched
                else
                {

                    telegram.DispatchTime = DateTime.Now + delay;

                    _priorityQueue.Enqueue(telegram, -delay.TotalMilliseconds);

                    //#ifdef SHOW_MESSAGING_INFO
                    //debug_con << "\nDelayed telegram from " << sender << " recorded at time " 
                    //        << TickCounter->GetCurrentFrame() << " for " << receiver
                    //        << ". Msg is " << msg << "";
                    //#endif
                }
            }

        }
Example #13
0
 public PluginManager(Telegram.Bot.Api _Api, string plugin_directory)
 {
     try
     {
         PluginFolder = plugin_directory;
         client.OnTaskDone += OnTaskDone;
         client.Api = _Api;
         client.Id = 9914;
         pluginadapter = new PluginAdaptor(client);
         pluginadapter.Onerror += (sender, error) => { OnError(sender, error); };
         pluginadapter.Onmessage += (sender, message) => { OnMessage(sender, message); };
     }
     catch (Exception ex)
     {
         OnError(this, ex);
     }
 }
    public void DispatchMessage(GameObject _Sender, GameObject _Receiver, MessageType _Msg, double _Delay)
    {
        Telegram telegram = new Telegram();
        telegram.Sender = _Sender;
        telegram.Receiver = _Receiver;
        telegram.Msg = _Msg;
        telegram.dDispatchTime = _Delay;

        if (_Delay <= 0.0)
        {
            Discharge(_Receiver, telegram);
        }
        else
        {
            double dCurrentTime = Time.time;
            telegram.dDispatchTime = dCurrentTime + _Delay;
            m_PriorityList.Add(telegram);
            SortListByDelay();
        }
    }
    public static bool HandleMessage(this GameObject _GO, Telegram _Telegram)
    {
        //_GO being the reciever of the message and _Telegram being the message to be delivered to the reciever

        //If the sender and reciever of the message is not given, return false in the handling of message
        if (_Telegram.Sender == null && _Telegram.Receiver == null || _GO == null)
        {
            return false;
        }

        //Add additional "if" statements if other FSM require the usage of Telegram. However,
        //you will need to add a Telegram variable into that FSM script so this function can assign
        //sent messages to that FSM for them to process the message

        if (_GO.tag == "EnemyChild")
        {
            _GO.GetComponent<EnemyChildFSM>().Command = _Telegram.Msg;
        }

        return true;
    }
    /// <summary>
    /// 全局方法,提供消息发送的功能
    /// </summary>
    /// <param name="delay">延迟时间(目前不用)</param>
    /// <param name="sender"></param>
    /// <param name="receiver"></param>
    /// <param name="msg"></param>
    /// <param name="ExtraInfo"></param>
    public void DispatchMessage(double  delay,
                                 int    sender,
                                 int    receiver,
                                 int    msg,
                                 TelegramInfo ExtraInfo)
    {

        //  发送消息的Entity
        BaseGameEntity pSender   = EntityManager.Instance().GetEntityFromID(sender);
        //  接收消息的Entity
        BaseGameEntity pReceiver = EntityManager.Instance().GetEntityFromID(receiver);

        //  
        if (pReceiver == null)
            return;
  
        //  消息体
        Telegram telegram = new Telegram(0, sender, receiver, msg, ExtraInfo);
  
        //  发送
        Discharge(pReceiver, telegram);
    }
Example #17
0
 private void senduVorton(Telegram.Bot.Types.Update update)
 {
     var item = this.GetSingleWord();
     if (item == null)
     {
         botApi.SendTextMessage(update.Message.Chat.Id, "Pardonu, mi ne povas sendi la vorton nun. Mi pardonpetas pro la ĝeno.");
     }
     else
     {
         var vorto = String.Format("{0}\n\n{1}", item.Title, item.Description);
         botApi.SendTextMessage(update.Message.Chat.Id, vorto);
     }
 }
Example #18
0
 public bool OnMessage(Miner owner, Telegram telegram)
 {
     return(false);
 }
 public bool HandleMessage(Telegram telegram)
 {
     return(CurrentState?.OnMessage(_owner, telegram) == true ||
            GlobalState?.OnMessage(_owner, telegram) == true);
 }
Example #20
0
 public void Shutdown()
 {
     _cancellationTokenSource.Cancel();
     Telegram.Stop();
 }
Example #21
0
        public List <FrameResponse> ReadAllTelegram(string portcom, string macadresseprt)
        {
            List <FrameResponse> myFrameList = new List <FrameResponse>();

            HyScript hyScript             = new HyScript();
            int      port                 = Convert.ToInt32(portcom);
            string   comPort              = "com://" + port;
            string   response             = "false";
            string   dataJSON             = "";
            string   rawDataInterpretJSON = "";
            string   cmdClear             = "if(dc~=nil) then dc:close(); cl=nil; pl=nil; dc=nil";

            _logger.Info("Check Licence");
            response = hyScript.call("setLogLevel(-1); setLogFileName('IzarCSI.log'); return License.check('EGEEEGEE','I1ARCQI0')");
            _logger.Info("resultat Check Licence : " + response);
            if (response == "true")
            {
                hyScript.call(cmdClear);

                string cmd = "dc = DataConcentrator.new();" +
                             " ds = BtReceiverDataSource.new();" +
                             " ds:setDataConcentrator(ref(dc));" +
                             " pl = IPhysicalLayer.new('" + comPort + "');" +
                             " cl = ICommunicationLayer.new('hybtoh://', ref(pl));" +
                             " ds:setCommunicationLayer(ref(cl));" +
                             " local ri = RadioInterpreter.new();" +
                             " ri:setProcessLevel();" +
                             " dc:setRadioInterpreter(ri);" +
                             " ri:enableDecryption(false);" +
                             " tsf=ToStringFormater.new();" +
                             " tsf:setAddSPDEAddress(true);" +
                             " setFormater(tsf);" +
                             " ds:setSourceId('" + macadresseprt + "');" +
                             " ds:config('timeoutNoAnswer', 150);" +
                             " ds:config('timeoutNoDataFollows', 2);" +
                             " ds:config('timeoutAfterTelegram', 10); return true";


                _logger.Info("Init: " + cmd);
                response = hyScript.call(cmd);

                _logger.Info("resultat Init : " + response);

                if (response == "true")
                {
                    //startASync
                    _logger.Info("ds:startASync()");
                    hyScript.call("ds:startASync()");

                    Thread.Sleep(2000);

                    //stopASync
                    _logger.Info("ds:stopASync()");
                    hyScript.call("ds:stopASync()");

                    string telegramProcessed = hyScript.call("return dc:getNumberOfProcessedTelegrams()");
                    _logger.Info("Nombre de télégrammes traités: " + telegramProcessed);


                    string telegramCollected = hyScript.call("return dc:getNumberOfCollectedTelegrams()");
                    _logger.Info("Nombre de télégrammes collectés: " + telegramCollected);


                    string falseTelegram = hyScript.call("return dc:getNumberOfFalseTelegrams()");
                    _logger.Info("Nombre de faux télégrammes : " + falseTelegram);


                    string foundedDevice = hyScript.call("return dc:getNumberOfFoundedDevices()");
                    _logger.Info("Nombre de modules trouvés : " + foundedDevice);

                    //device founded
                    if (Convert.ToInt32(foundedDevice) > 0)
                    {
                        _logger.Info("dc:getDeviceList()");
                        dataJSON = hyScript.call("return dc:getDeviceList():__tostring(dc:getDeviceList():getBeginDeviceDescriptionIterator(true))");
                        _logger.Info("resultat getDeviceList : " + dataJSON);

                        try
                        {
                            FrameResponse          dataFrame;
                            SappelResponseContract sappelResponseContract = JsonConvert.DeserializeObject <SappelResponseContract>(dataJSON);

                            List <Entry> entries = sappelResponseContract.entries.ToList();


                            foreach (var entry in entries)
                            {
                                List <Telegram> telegrams = entry.value.meteringPoint.telegrams.ToList();

                                foreach (var telegram in telegrams)
                                {
                                    dataFrame = new FrameResponse();

                                    if (telegram.telegramTypeSpecifica.qualityIndicator.rssi > 25)
                                    {
                                        dataFrame.deviceId   = telegram.mBusData.deviceId.spdeid.spde;
                                        dataFrame.manuString = telegram.mBusData.deviceId.manuString;
                                        dataFrame.ciField    = telegram.mBusData.ciField;
                                        dataFrame.structure  = telegram.mBusData.deviceId.spdeid.format;

                                        //Récupération des alarmes
                                        if (telegram.mBusData.alarmField.data != "00" && telegram.mBusData.alarmField.data != "00 00")
                                        {
                                            dataFrame.alarmeCode = TelegramAlarmFormat(telegram.mBusData.alarmField.data);
                                        }


                                        string rawData = TelegramFormat(telegram.mBusData.rawData.data);

                                        //On récupére la raw data
                                        rawDataInterpretJSON = Interpreter(rawData);
                                        Telegram         telegramResponse = JsonConvert.DeserializeObject <Telegram>(rawDataInterpretJSON);
                                        List <MBusValue> mBusValues       = telegramResponse.mBusData.mBusValues.ToList();
                                        foreach (var mBusValue in mBusValues)
                                        {
                                            if ((mBusValue.valid == true))
                                            {
                                                if (mBusValue.dimension.stringId == "VOLUME")
                                                {
                                                    //volume
                                                    if (mBusValue.storageNumber == 0 && mBusValue.tariffNumber == 0 && mBusValue.subUnitNumber == 0)
                                                    {
                                                        dataFrame.volumeValue    = Convert.ToInt32(mBusValue.formated);
                                                        dataFrame.volumeIndex    = CalculIndex(Convert.ToInt32(mBusValue.formated), Convert.ToInt32(mBusValue.exponent));
                                                        dataFrame.volumeCode     = mBusValue.dimension.stringId;
                                                        dataFrame.volumeUnite    = mBusValue.unit.stringId;
                                                        dataFrame.volumeExponent = Convert.ToInt32(mBusValue.exponent);
                                                        dataFrame.volumeFormat   = dataFrame.volumeCode + "  " + dataFrame.volumeIndex + "  m3";
                                                    }
                                                }
                                                if (mBusValue.dimension.stringId == "ENERGY")
                                                {
                                                    //Energy
                                                    if (mBusValue.storageNumber == 0 && mBusValue.tariffNumber == 0 && mBusValue.subUnitNumber == 0)
                                                    {
                                                        dataFrame.energyValue    = Convert.ToInt32(mBusValue.formated);
                                                        dataFrame.energyIndex    = CalculIndex(Convert.ToInt32(mBusValue.formated), Convert.ToInt32(mBusValue.exponent));
                                                        dataFrame.energyCode     = mBusValue.dimension.stringId;
                                                        dataFrame.energyUnite    = mBusValue.unit.stringId;
                                                        dataFrame.energyExponent = Convert.ToInt32(mBusValue.exponent);
                                                        dataFrame.energyFormat   = dataFrame.energyCode + "  " + dataFrame.energyIndex + "  " + dataFrame.energyUnite;
                                                    }
                                                }

                                                if (mBusValue.dimension.stringId == "OPERATIONTIMEBATTERY")
                                                {
                                                    dataFrame.batteryCode     = mBusValue.dimension.stringId;
                                                    dataFrame.batteryFormated = Convert.ToInt32(mBusValue.formated);
                                                    dataFrame.batteryUnite    = mBusValue.unit.stringId;
                                                }
                                                if (mBusValue.dimension.stringId == "TIMEPOINT")
                                                {
                                                    dataFrame.date = mBusValue.formated.ToString();
                                                }
                                            }
                                        }

                                        if (!myFrameList.Where(x => x.deviceId == dataFrame.deviceId).Any())
                                        {
                                            if ((dataFrame.volumeCode != null || dataFrame.energyCode != null) && dataFrame.ciField != 0)
                                            {
                                                myFrameList.Add(dataFrame);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            _logger.Info("ERREUR : " + ex.Message);
                        }
                    }

                    hyScript.call("dc:getDeviceList():clear()");
                }
                else
                {
                    dataJSON = hyScript.call("dc:clearLastException() val=dc:getValue(valueIdent) ret = {val, dc:getLastException()} return ret");
                    _logger.Info("Erreur Init and StartASync: " + dataJSON);
                }
            }
            else
            {
                dataJSON = hyScript.call("dc:clearLastException() val=dc:getValue(valueIdent) ret = {val, dc:getLastException()} return ret");
                _logger.Info("Erreur check licence: " + dataJSON);
            }
            _logger.Info("ResultMyFrameList : " + myFrameList.ToString());
            return(myFrameList);
        }
Example #22
0
        public void OnOtherTelegrams(Telegram t)
        {
            try
            {
                if (t is TelegramPalletRemoved)
                {
                    using (MFCSEntities dc = new MFCSEntities())
                    {
                        string loc;
                        int    idx = (t as TelegramPalletRemoved).Location;
                        //                        int idxp = ((int)((idx - 1) / 4) + 1) * 10 + (idx - 1) % 4 + 1;
                        int idxp = idx;
                        if (idx % 10 == 0) // button pressed at the end of ramp
                        {
                            using (WMSToMFCSClient client = new WMSToMFCSClient())
                            {
                                idx = idx / 10;
                                loc = $"W:32:{idx:D2}";
                                bool canDelete;
                                try
                                {
                                    canDelete = false; // !client.OrderForRampActive(loc);
                                }
                                catch
                                {
                                    canDelete = true;
                                }
                                if (canDelete && dc.Places.Any(p => p.Place1.StartsWith(loc))) // ramp is full, remove pallets
                                {
                                    var pallets = (from p in dc.Places
                                                   where p.Place1.StartsWith(loc)
                                                   select p).ToList();
                                    foreach (var pal in pallets)
                                    {
                                        DBService.MaterialDelete(pal.Place1, pal.Material);
                                        OnMaterialMove?.Invoke(pal, EnumMovementTask.Delete);
                                        //DBService.MaterialMove(pal.Material, pal.Place1, "W:out");
                                        //Place pl = new Place { Material = pal.Material, Place1 = "W:out", Time = DateTime.Now };
                                        //OnMaterialMove?.Invoke(pl, EnumMovementTask.Move);
                                    }
                                }
//                                else // release ramp
//                                    client.DestinationEmptied(loc);
                            }
                        }
                        else // sensor detected removal
                        {
                            loc = $"W:32:{idxp:D3}:1:1";
                            Place place = dc.Places.Where(p => p.Place1 == loc).OrderBy(pp => pp.Time).FirstOrDefault();
                            {
                                DBService.MaterialDelete(place.Place1, place.Material);
                                OnMaterialMove?.Invoke(place, EnumMovementTask.Delete);
                                //DBService.MaterialMove(place.Material, loc, "W:out");
                                //Place pl = new Place { Material = place.Material, Place1 = "W:out", Time = DateTime.Now };
                                //OnMaterialMove?.Invoke(pl, EnumMovementTask.Move);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                AddEvent(Event.EnumSeverity.Error, Event.EnumType.Exception, ex.Message);
                AddEvent(Event.EnumSeverity.Error, Event.EnumType.Exception, String.Format("{0} BasicWarehouse.OnOtherTelegrams failed", Name));
            }
        }
Example #23
0
 public static int GetYear(this Telegram telegram)
 {
     return(int.Parse(telegram.RowKey[..4]));
Example #24
0
 public static int GetMonth(this Telegram telegram)
 {
     return(int.Parse(telegram.RowKey.Substring(4, 2)));
 }
Example #25
0
 abstract public bool OnMessage(entity_type entity, Telegram telegram);
Example #26
0
            private Task <ActivationResult> Register(string code)
            {
                return(Task <ActivationResult> .Factory.StartNew(() =>
                {
                    var result = Telegram.RegisterCode(_service, GetSettingsTelegramSettings(), CountryCode + NationalNumber,
                                                       GetSettingsCodeHash(), code, FirstName, LastName, GetSettingsRegistered());

                    if (result == null)
                    {
                        return new ActivationResult
                        {
                            Success = false,
                            ErrorMessage = Localize.GetString("TelegramCodeError")
                        };
                    }

                    if (result.Response != Telegram.CodeRegister.Type.Success)
                    {
                        string errorMessage = null;
                        switch (result.Response)
                        {
                        case Telegram.CodeRegister.Type.NumberInvalid:
                            errorMessage = Localize.GetString("TelegramCodeNumberInvalid");
                            break;

                        case Telegram.CodeRegister.Type.CodeEmpty:
                            errorMessage = Localize.GetString("TelegramCodeInvalidMessage");
                            break;

                        case Telegram.CodeRegister.Type.CodeExpired:
                            errorMessage = Localize.GetString("TelegramCodeCodeExpired");
                            break;

                        case Telegram.CodeRegister.Type.CodeInvalid:
                            errorMessage = Localize.GetString("TelegramCodeCodeInvalid");
                            break;

                        case Telegram.CodeRegister.Type.FirstNameInvalid:
                            errorMessage = Localize.GetString("TelegramCodeFirstNameInvalid");
                            break;

                        case Telegram.CodeRegister.Type.LastNameInvalid:
                            errorMessage = Localize.GetString("TelegramCodeLastNameInvalid");
                            break;

                        default:
                            errorMessage = Localize.GetString("TelegramCodeError");
                            break;
                        }
                        return new ActivationResult
                        {
                            Success = false,
                            ErrorMessage = errorMessage
                        };
                    }

                    return new ActivationResult
                    {
                        Success = true,
                        AccountId = result.AccountId,
                    };
                }));
            }
Example #27
0
            private Task <ActivationResult> DoVerify(VerificationOption option)
            {
                return(Task <ActivationResult> .Factory.StartNew(() =>
                {
                    var settings = GetSettingsTelegramSettings();
                    var response = Telegram.RequestCode(_service, CountryCode + NationalNumber,
                                                        GetSettingsCodeHash(),
                                                        GetSettingsTelegramSettings(), option == VerificationOption.Voice);

                    if (response.Response == Telegram.CodeRequest.Type.Migrate)
                    {
                        TelegramSettings newSettings;
                        using (var migratedClient = Telegram.GetNewClient(response.MigrateId, GetSettingsTelegramSettings(), out newSettings))
                        {
                            TelegramUtils.RunSynchronously(migratedClient.Connect());
                            response = Telegram.RequestCode(_service, CountryCode + NationalNumber,
                                                            GetSettingsCodeHash(),
                                                            newSettings, option == VerificationOption.Voice);
                            Utils.DebugPrint(">>>>> Response from the server " + ObjectDumper.Dump(response));
                            if (option == VerificationOption.Sms)
                            {
                                SetSettingsSettings(newSettings, false);
                                SetSettingsCodeHash(response.CodeHash, false);
                                SetSettingsRegistered(response.Registered, false);
                            }
                            return new ActivationResult
                            {
                                Success = true,
                            };
                        }
                    }
                    if (response == null || response.Response != Telegram.CodeRequest.Type.Success)
                    {
                        var message = Localize.GetString("TelegramVerifyError");
                        if (response != null)
                        {
                            if (response.Response == Telegram.CodeRequest.Type.NumberInvalid)
                            {
                                message = Localize.GetString("TelegramVerifyInvalidNumber");
                            }
                        }

                        return new ActivationResult
                        {
                            Success = false,
                            ErrorMessage = message,
                        };
                    }

                    if (option == VerificationOption.Sms)
                    {
                        SetSettingsCodeHash(response.CodeHash, true);
                        SetSettingsRegistered(response.Registered, true);
                    }

                    return new ActivationResult
                    {
                        Success = true
                    };
                }));
            }
Example #28
0
 private void Discharge(Telegram message)
 {
     message.Receiver?.HandleMessage(message);
 }
Example #29
0
 public override void HandleMassage(Telegram tele)
 {
     stateMachine.HandleMassage(tele);
 }
Example #30
0
            public Info(Service service, TabbedPage tabs, Verify verify)
            {
                _phoneNumberContainer                   = new StackLayout();
                _phoneNumberContainer.Orientation       = StackOrientation.Horizontal;
                _phoneNumberContainer.HorizontalOptions = LayoutOptions.FillAndExpand;
                _phoneNumber                   = new PhoneEntry();
                _phoneNumber.Placeholder       = Localize.GetString("TelegramPhoneNumber");
                _phoneNumber.HorizontalOptions = LayoutOptions.FillAndExpand;
                _phoneNumberContainer.Children.Add(_phoneNumber);
                var programmaticChange = false;

                _firstName             = new Entry();
                _firstName.Placeholder = Localize.GetString("TelegramFirstName");

                _lastName             = new Entry();
                _lastName.Placeholder = Localize.GetString("TelegramLastName");

                _loadConversationsLayout                   = new StackLayout();
                _loadConversationsLayout.Orientation       = StackOrientation.Horizontal;
                _loadConversationsLayout.HorizontalOptions = LayoutOptions.End;
                _loadConversationsLayout.Padding           = new Thickness(15, 0);
                _loadConversationsLayout.Spacing           = 10;

                _loadConversationsTitle           = new Label();
                _loadConversationsTitle.Text      = Localize.GetString("TelegramLoadConversations");
                _loadConversationsSwitch          = new Switch();
                _loadConversationsSwitch.Toggled += (sender, e) =>
                {
                    (service as Telegram).LoadConversations = e.Value;
                };
                _loadConversationsSwitch.IsToggled = true;
                _loadConversationsLayout.Children.Add(_loadConversationsTitle);
                _loadConversationsLayout.Children.Add(_loadConversationsSwitch);

                _next = new Button();
                _next.HorizontalOptions = LayoutOptions.FillAndExpand;
                _next.Text            = Localize.GetString("TelegramNext");
                _next.TextColor       = Color.White;
                _next.BackgroundColor = Color.FromHex("77D065");
                _next.Clicked        += async(sender, e) =>
                {
                    if (String.IsNullOrWhiteSpace(_firstName.Text))
                    {
                        await DisplayAlert(Localize.GetString("TelegramInvalidFirstNameTitle"), Localize.GetString("TelegramInvalidFirstNameMessage"), Localize.GetString("TelegramOkay"));

                        return;
                    }

                    if (String.IsNullOrWhiteSpace(_lastName.Text))
                    {
                        await DisplayAlert(Localize.GetString("TelegramInvalidLastNameTitle"), Localize.GetString("TelegramInvalidLastNameMessage"), Localize.GetString("TelegramOkay"));

                        return;
                    }

                    Func <Task> invalidNumber = () =>
                    {
                        return(DisplayAlert(Localize.GetString("TelegramInvalidNumberTitle"),
                                            Localize.GetString("TelegramInvalidNumberMessage"), Localize.GetString("TelegramOkay")));
                    };

                    if (!PhoneBook.IsPossibleNumber(_phoneNumber.Text))
                    {
                        await invalidNumber();

                        return;
                    }

                    var number          = PhoneBook.TryGetPhoneNumberLegible(_phoneNumber.Text);
                    var formattedNumber = PhoneBook.FormatPhoneNumber(number);

                    if (formattedNumber == null)
                    {
                        await invalidNumber();

                        return;
                    }

                    var nationalNumber = new string(formattedNumber.Item2.Where(Char.IsDigit).ToArray());

                    if (!await DisplayAlert(Localize.GetString("TelegramConfirmNumberTitle"),
                                            Localize.GetString("TelegramConfirmNumberMessage").Replace("[number]", number),
                                            Localize.GetString("TelegramYes"),
                                            Localize.GetString("TelegramNo")))
                    {
                        return;
                    }

                    _progressBar.IsVisible = true;
                    _next.IsEnabled        = false;
                    _firstName.IsEnabled   = false;
                    _lastName.IsEnabled    = false;
                    _phoneNumber.IsEnabled = false;
                    DependencyService.Get <IPluginPageControls>().BackPressEnabled = false;

                    TelegramSettings settings = null;

                    var skipSave = false;
                    var state    = _settings.States.FirstOrDefault(x => x.NationalNumber == nationalNumber);
                    if (state != null && state.Settings != null)
                    {
                        skipSave = true;
                        settings = state.Settings;
                    }
                    else
                    {
                        settings = await Task <TelegramSettings> .Factory.StartNew(() => { return(Telegram.GenerateAuthentication(service)); });
                    }

                    var firstName = _firstName.Text.Trim();
                    var lastName  = _lastName.Text.Trim();

                    DependencyService.Get <IPluginPageControls>().BackPressEnabled = true;
                    _firstName.IsEnabled   = true;
                    _lastName.IsEnabled    = true;
                    _phoneNumber.IsEnabled = true;
                    _next.IsEnabled        = true;
                    _progressBar.IsVisible = false;

                    if (settings == null)
                    {
                        await DisplayAlert(Localize.GetString("TelegramAuthGenerationFailedTitle"),
                                           Localize.GetString("TelegramAuthGenerationFailedMessage"), Localize.GetString("TelegramOkay"));

                        return;
                    }

                    if (!skipSave)
                    {
                        _settings.States.Add(new Setup.TelegramSetupSettings.State
                        {
                            Settings       = settings,
                            NationalNumber = nationalNumber
                        });
                        SaveSettings();
                    }

                    verify.CountryCode    = formattedNumber.Item1;
                    verify.NationalNumber = nationalNumber;
                    verify.FirstName      = firstName;
                    verify.LastName       = lastName;
                    tabs.Children.Add(verify);
                    tabs.CurrentPage = verify;
                };

                _image        = new Image();
                _image.Source = ImageSource.FromUri(
                    new Uri("https://lh4.ggpht.com/fuvTtxbZ1-dkEmzUMfKcgMJwW8PyY4fhJJ_NKT-NpIQJukszEY2GfCkJUF5ch6Co3w=w300"));
                _image.WidthRequest  = 100;
                _image.HeightRequest = 100;

                _progressBar = new ActivityIndicator();
                _progressBar.VerticalOptions = LayoutOptions.EndAndExpand;
                _progressBar.IsRunning       = true;
                _progressBar.IsVisible       = false;

                var stackLayout = new StackLayout();

                stackLayout.Spacing         = 20;
                stackLayout.Padding         = 25;
                stackLayout.VerticalOptions = LayoutOptions.Start;
                var children = stackLayout.Children;

                children.Add(_image);
                children.Add(_firstName);
                children.Add(_lastName);
                children.Add(_phoneNumberContainer);
                children.Add(_loadConversationsLayout);
                var nextLayout = new StackLayout();

                nextLayout.Spacing     = 20;
                nextLayout.Orientation = StackOrientation.Horizontal;
                nextLayout.Children.Add(_next);
                nextLayout.Children.Add(_progressBar);
                children.Add(nextLayout);

                Content = new ScrollView {
                    Content = stackLayout
                };
                Title = Localize.GetString("TelegramInformationTitle");
            }
    private void SortListByDelay()
    {
        int size = m_PriorityList.Count;
        List<Telegram> sortResult = new List<Telegram>();

        while (sortResult.Count < size)
        {
            double shortestDelay = m_PriorityList[0].dDispatchTime;
            Telegram closest = new Telegram();

            for (int i = 0; i < m_PriorityList.Count; i++)
            {
                if (m_PriorityList[i].dDispatchTime < shortestDelay)
                {
                    shortestDelay = m_PriorityList[i].dDispatchTime;
                    closest = m_PriorityList[i];
                }
            }

            sortResult.Insert(0, closest);
        }

        m_PriorityList = sortResult;
    }
    // 这边和 Miner 类差不多,不过懒得再给妻子设定多一个地点枚举了
//    public void ChangeLocation(LocationType loc)
//    {
//        m_Location = loc;
//    }

    public override bool HandleMessage(Telegram message)
    {
        return(m_pStateMachine.HandleMessage(message));
    }
 /// <summary>
 /// This executes if the agent receives a message from the message dispatcher.
 /// </summary>
 /// <param name="miner">
 /// The game object associated with this state.
 /// </param>
 /// <param name="msg">
 /// The message.
 /// </param>
 /// <returns>
 /// True if the message was handled. Otherwise, false.
 /// </returns>
 public override bool OnMessage(Miner miner, Telegram msg)
 {
     // send msg to global message handler
     return(false);
 }
Example #34
0
 public override bool OnMessage(Player entity, Telegram telegram)
 {
     return(false);
 }
Example #35
0
 public override bool HandleMessage(Telegram msg)
 {
     Debug.Log("Miner HandleMessage");
     return(m_StateMachine.HandleMessage(msg));
 }
Example #36
0
 public override bool OnMessage(Miner miner, Telegram telegram)
 {
     return(false);
 }
Example #37
0
 public override bool HandleMessage(Telegram msg)
 {
     return(false);
 }
Example #38
0
 public override bool OnMessage(Player entity, Telegram telegram)
 {
     NewBuff(telegram.buff, entity);
     if (entity.mymotor.IsTouchingGround)
     {
         if (entity.isPasive)
         {
             if (telegram.Msg == (int)MessagesType.player_MinisterFlash)
             {
                 entity.GetFSM().ChangeState(Player_StateMinisterFlash.Instance);
                 return(true);
             }
             if (telegram.Msg == (int)MessagesType.player_WTeanaFlash)
             {
                 entity.GetFSM().ChangeState(Player_StateTeanaFlash.Instance);
                 return(true);
             }
         }
         else
         {
             if (entity.isskilling == false)
             {
                 if (telegram.Msg == (int)MessagesType.Player_SkillQ)
                 {
                     entity.GetFSM().ChangeState(Player_StateSkillQ.Instance);
                     return(true);
                 }
                 if (telegram.Msg == (int)MessagesType.Player_SkillF)
                 {
                     entity.GetFSM().ChangeState(Player_StateSkillF.Instance);
                     return(true);
                 }
                 if (telegram.Msg == (int)MessagesType.Player_SkillM)
                 {
                     entity.GetFSM().ChangeState(Player_StateSkillM.Instance);
                     return(true);
                 }
                 if (telegram.Msg == (int)MessagesType.Player_SkillR)
                 {
                     entity.GetFSM().ChangeState(Player_StateSkillR.Instance);
                     return(true);
                 }
                 if (telegram.Msg == (int)MessagesType.Player_SkillS)
                 {
                     entity.GetFSM().ChangeState(Player_StateSkillS.Instance);
                     return(true);
                 }
                 if (telegram.Msg == (int)MessagesType.player_WEtherFlash)
                 {
                     entity.GetFSM().ChangeState(Player_StateWEtherFlash.Instance);
                     return(true);
                 }
                 if (telegram.Msg == (int)MessagesType.Player_Flash)
                 {
                     entity.GetFSM().ChangeState(Player_StateFlash.Instance);
                     return(true);
                 }
                 if (telegram.Msg == (int)MessagesType.player_MasterFlash)
                 {
                     entity.GetFSM().ChangeState(Player_StateMasterFlash.Instance);
                     return(true);
                 }
             }
         }
     }
     if (telegram.Msg == (int)MessagesType.Msg_BeingHurt)
     {
         if (!entity.SuperArmor)
         {
             entity.GetFSM().ChangeState(Player_StateHurt.Instance);
         }
         return(true);
     }
     if (telegram.Msg == (int)MessagesType.Msg_BeingUpFukongBig)
     {
         entity.flyhigh = 25f;
         if (!entity.SuperArmor)
         {
             entity.GetFSM().ChangeState(Player_StateFloating.Instance);
         }
         return(true);
     }
     if (telegram.Msg == (int)MessagesType.Msg_BeingUpFukongSmall)
     {
         entity.flyhigh = 18f;
         if (!entity.SuperArmor)
         {
             entity.GetFSM().ChangeState(Player_StateFloating.Instance);
         }
         return(true);
     }
     if (telegram.Msg == (int)MessagesType.Msg_BeingUpForced_Fall)
     {
         if (!entity.SuperArmor)
         {
             entity.GetFSM().ChangeState(Player_StateForce_Fall.Instance);
         }
         return(true);
     }
     return(false);
 }
Example #39
0
        public void WriteData(string input, FrameType type)
        {
            byte[] Header = { STARTBYTE, (byte)type };

            byte[] fileId = { 0 };
            byte[] size;
            byte[] NumOfFrames;
            byte[] FrameNumber;

            byte[] BufferToSend;
            byte[] Telegram;
            string Telegram_s;
            string size_s;

            byte[] ByteToEncode;
            byte[] ByteEncoded;


            switch (type)
            {
            case FrameType.MSG:
                #region MSG
                if (IsConnected())
                {
                    // Telegram[] = Coding(input);
                    Telegram = Encoding.Default.GetBytes(input);              //потом это кыш

                    BufferToSend = new byte[Header.Length + Telegram.Length]; //буфер для отправки = заголовок+сообщение
                    Header.CopyTo(BufferToSend, 0);
                    Telegram.CopyTo(BufferToSend, Header.Length);

                    Port.Write(BufferToSend, 0, BufferToSend.Length);
                    Log.AppendText("(" + Port.PortName + ") WriteData: sent message >  " + Encoding.Default.GetString(Telegram) + "\n");
                }
                break;

                #endregion
            case FrameType.ACK:
                #region ACK
                if (IsConnected())
                {
                    // Telegram[] = Coding(input);
                    Telegram = Encoding.Default.GetBytes(input);              //потом это кыш

                    BufferToSend = new byte[Header.Length + Telegram.Length]; //буфер для отправки = заголовок+сообщение
                    Header.CopyTo(BufferToSend, 0);
                    Telegram.CopyTo(BufferToSend, Header.Length);

                    Port.Write(BufferToSend, 0, BufferToSend.Length);
                    Telegram_s = Encoding.Default.GetString(Telegram);
                    //Log.AppendText("[" + DateTime.Now + "] Отправлено ACK согласие на принятие файла: " + Telegram_s + "\n");
                }
                break;

                #endregion
            case FrameType.FILEOK:
                if (IsConnected())
                {
                    ByteToEncode = File.ReadAllBytes(input);
                    FilePath     = input;
                    size         = new byte[sizeLenght];
                    size         = Encoding.Default.GetBytes(((double)ByteToEncode.Length).ToString()); //нужны байты
                    //Telegram = Encoding.Default.GetBytes(size); //потом это кыш

                    BufferToSend = new byte[Header.Length + size.Length];     //буфер для отправки = заголовок+сообщение
                    Header.CopyTo(BufferToSend, 0);
                    size.CopyTo(BufferToSend, Header.Length);

                    Port.Write(BufferToSend, 0, BufferToSend.Length);
                    size_s = Encoding.Default.GetString(size);
                    Log.AppendText("[" + DateTime.Now + "] Отправлена информация о размере файла: " + size_s + "\n");
                    //SuccessfulFrameNumber = int.Parse(Telegram_s);
                }
                break;

            case FrameType.FRAME:
                if (IsConnected())
                {
                    // Telegram[] = Coding(input);
                    Telegram = Encoding.Default.GetBytes(input);              //потом это кыш

                    BufferToSend = new byte[Header.Length + Telegram.Length]; //буфер для отправки = заголовок+сообщение
                    Header.CopyTo(BufferToSend, 0);
                    Telegram.CopyTo(BufferToSend, Header.Length);

                    Port.Write(BufferToSend, 0, BufferToSend.Length);
                    Telegram_s = Encoding.Default.GetString(Telegram);
                    //Log.AppendText("[" + DateTime.Now + "] получен Frame >  " + Telegram_s + " .Отправлено подтверждение о получении.\n");
                    //SuccessfulFrameNumber = int.Parse(Telegram_s);
                }
                break;

            case FrameType.FILE:
                #region FILE
                if (IsConnected())
                {
                    ByteToEncode = File.ReadAllBytes(@FilePath);

                    size = new byte[sizeLenght];
                    size = Encoding.Default.GetBytes(((double)ByteToEncode.Length).ToString());     //нужны байты
                    //WriteData(Encoding.Default.GetString(size), FrameType.FILEOK);
                    NumOfFrames = new byte[NumOfFrameLenght];
                    FrameNumber = new byte[NumOfFrameLenght];

                    string typeFile = @input.Split('.')[1];
                    fileId[0] = TypeFile_to_IdFile(typeFile);


                    ByteEncoded = new byte[ByteToEncode.Length * 2];
                    for (int i = 0; i < ByteToEncode.Length; i++)
                    {
                        Hamming.HammingEncode74(ByteToEncode[i]).CopyTo(ByteEncoded, i * 2);
                    }

                    if (ByteEncoded.Length + InfoLen < Port.WriteBufferSize)
                    {
                        BufferToSend = new byte[InfoLen + ByteEncoded.Length];
                        Header.CopyTo(BufferToSend, 0);
                        fileId.CopyTo(BufferToSend, Header.Length);
                        size.CopyTo(BufferToSend, Header.Length + fileId.Length);

                        NumOfFrames = Encoding.Default.GetBytes(1.ToString());
                        NumOfFrames.CopyTo(BufferToSend, Header.Length + fileId.Length + sizeLenght);

                        FrameNumber = Encoding.Default.GetBytes(1.ToString());
                        FrameNumber.CopyTo(BufferToSend, Header.Length + fileId.Length + sizeLenght + NumOfFrameLenght);


                        ByteEncoded.CopyTo(BufferToSend, InfoLen);
                        bool flag = false;
                        while (!flag)
                        {
                            if (MessageBox.Show("Отправить?", "Файл", MessageBoxButtons.YesNo) == DialogResult.Yes)
                            {
                                flag = true;
                                Port.Write(BufferToSend, 0, BufferToSend.Length);

                                //loading.Hide();
                                MessageBox.Show("Готово!");
                                //loading.progressBar1.Value = 0;
                                //loading.i = 1;
                            }
                            else
                            {
                                flag = true;
                                //loading.Hide();
                                //loading.progressBar1.Value = 0;
                                MessageBox.Show("Вы отменили передачу файла.");
                                // loading.i = 1;
                            }
                        }
                    }
                    else
                    {
                        int EncodedByteIndex;
                        int Part_ByteEncodedIndex;

                        int parts = (int)Math.Ceiling((double)ByteEncoded.Length / (double)(Port.WriteBufferSize - InfoLen));
                        NumOfFrames = Encoding.Default.GetBytes(parts.ToString());

                        for (int i = 0; i < parts; i++)
                        {
                            EncodedByteIndex      = i * (Port.WriteBufferSize - InfoLen);
                            Part_ByteEncodedIndex = (Port.WriteBufferSize - InfoLen);

                            byte[] Part_ByteEncoded = new byte[Part_ByteEncodedIndex];

                            int Part_Len = 0;
                            if (((ByteEncoded.Length - EncodedByteIndex) >= Part_ByteEncodedIndex))
                            {
                                Part_Len = Part_ByteEncodedIndex;
                            }

                            else if (ByteEncoded.Length - EncodedByteIndex > 0)
                            {
                                Part_Len = ByteEncoded.Length - i * (Port.WriteBufferSize - InfoLen);
                            }


                            BufferToSend = new byte[Port.WriteBufferSize];

                            Header.CopyTo(BufferToSend, 0);
                            fileId.CopyTo(BufferToSend, Header.Length);
                            size.CopyTo(BufferToSend, Header.Length + fileId.Length);

                            NumOfFrames.CopyTo(BufferToSend, Header.Length + fileId.Length + sizeLenght);

                            FrameNumber = Encoding.Default.GetBytes((i + 1).ToString());
                            FrameNumber.CopyTo(BufferToSend, Header.Length + fileId.Length + sizeLenght + NumOfFrameLenght);

                            Array.ConstrainedCopy(ByteEncoded, EncodedByteIndex, BufferToSend, InfoLen, Part_Len);

                            //Log.AppendText("[" + DateTime.Now + "] : Отправляется фрейм: " + (SuccessfulFrameNumber + 1).ToString() + "\n");

                            Port.Write(BufferToSend, 0, BufferToSend.Length);
                            int ByteCheck;

                            if (i > 0)
                            {
                                int WaitTime = 0;
                                ByteCheck = Port.ReadByte();
                                while (ByteCheck != (int)STARTBYTE)
                                {
                                    if (WaitTime <= 1000)
                                    {
                                        Thread.Sleep(100);
                                        WaitTime += 100;
                                        ByteCheck = Port.ReadByte();
                                    }
                                }
                                ByteCheck = Port.ReadByte();
                                if (ByteCheck == (int)FrameType.FRAME)
                                {
                                    int    n             = FrameNumber.Length;//Port.BytesToRead;
                                    byte[] msgByteBuffer = new byte[n];

                                    Port.Read(msgByteBuffer, 0, n);     //считываем сообщение
                                    string Message = Encoding.Default.GetString(msgByteBuffer);
                                    Log.Invoke(new EventHandler(delegate
                                    {
                                        Log.AppendText("[" + DateTime.Now + "] : Получено подтверждение об успешной доставке Frame " + Message + "\n");
                                    }));
                                    SuccessfulFrameNumber = int.Parse(Message);
                                }

                                if (i == SuccessfulFrameNumber)
                                {
                                    continue;
                                }


                                if (i != SuccessfulFrameNumber)
                                {
                                    MessageBox.Show("Передача файла прервана");
                                    break;
                                }
                            }
                        }
                    }
                }
                break;
                #endregion

            default:
                if (IsConnected())
                {
                    Port.Write(Header, 0, Header.Length);
                }
                break;
            }                                                                                                                                  //Зачем такая конструкция?
            Log.Invoke(new EventHandler(delegate
            {
                Log.AppendText("sent frame " + type + "\n"); //всё записываем, мы же снобы
            }));
        }
Example #40
0
 public abstract bool OnMessage(T entity, Telegram telegram);
Example #41
0
 public override bool handelMassage(Elsa enity, Telegram tele)
 {
     return(false);
 }
Example #42
0
 private void senduMalabonitaMesagxo(Telegram.Bot.Types.Update update)
 {
     var abonitaMesagxo = "Vi estas malabonita de ĉi tia servo.";
     botApi.SendTextMessage(update.Message.From.Id, abonitaMesagxo);
 }
Example #43
0
 public void TelegramSend(Telegram t)
 {
     Console.WriteLine(t.ToString());
 }
Example #44
0
    public override bool HandleMessage(Telegram message)
    {
        if (base.HandleMessage(message))
            return true;

        if (Owner.IsAlert)
        {
            if (message.TelegramType == TelegramType.Greeting)
            {
                if (message.IsResponse)
                {
                    //This is a response message to a greeting message we sent to the sender.
                    Message.DispatchMessage(message.Receiver, message.Sender, TelegramType.MeetingRequest, false, Owner.Transform.position);
                    AddSubgoal(new Goal_Conversation(Owner, (AgentManager.Instance.GetAgent(message.Sender).CognitiveAgent.Transform.position - Owner.Transform.position), new List<int>() { message.Receiver, message.Sender }, true, Owner.DesiredTopic));
                    return true;
                }
                else
                {
                    //This is a message from the sender, inviting us to a conversation.
                    //We've got a greeting request. We must respond and let the other agent know we are ready to talk.
                    Owner.IsAlert = false;      //We don't want to respond to any other greetings for the moment.
                    Message.DispatchMessage(message.Receiver, message.Sender, TelegramType.Greeting, true);
                    return true;
                }
            }
            else if (message.TelegramType == TelegramType.QuestTrade)
            {
                RemoveAllSubgoals();

                CharacterDetails traderDetails = AgentManager.Instance.GetAgent(message.Sender);
                AgentInventory traderInventory = (traderDetails.IsPlayer ? traderDetails.PlayerAgent.Inventory : traderDetails.CognitiveAgent.Inventory);

                //Get equipped item from trader's inventory.
                //See if cues of equipped item match the cue needed to satisfy the quest.
                //If so, remove from one inventory and pass to the other.
                ItemCue traderItem = traderInventory.GetEquippedItem();
                if (traderItem != null)
                {
                    for (int i = 0; i < traderItem.CueMarkers.Length; i++)
                    {
                        if (traderItem.CueMarkers[i] == Owner.QuestInfo.QuestUID)
                        {
                            Owner.Inventory.PickupItem(traderDetails.PlayerAgent.Inventory.LoseEquippedItem(), false);
                            Owner.CompleteQuest();
                            return true;
                        }
                    }
                }
            }
            else if (message.TelegramType == TelegramType.DiscussEvent)
            {
                AddSubgoal(new Goal_Event(Owner));
                return true;
            }
        }

        if (message.TelegramType == TelegramType.MeetingRequest)
        {
            //The other agent got our response and so we have no agreed to meet and talk.
            AddSubgoal(new Goal_Conversation(Owner, message.Location.Value - Owner.Transform.position, new List<int>() { message.Receiver, message.Sender }));
            return true;
        }
            

        return false;   //The message is unhandled by this goal.
    }
Example #45
0
 public override bool OnMessage(Goblin entity, Telegram telegram)
 {
     return(false);
 }
 public abstract bool HandleMessage(Telegram msg);
 private void Discharge(Telegram telegram)
 {
     telegram.reciever.HandleMassage(telegram);
 }
 //this method is utilized by DispatchMsg or DispatchDelayedMessages.
 //This method calls the message handling member function of the receiving
 //entity, pReceiver, with the newly created telegram
 private void discharge(BaseGameEntity receiver, Telegram telegram)
 {
     receiver.HandleMessage(telegram);
 }
Example #49
0
        public void Delete(Telegram telegramToDelete)
        {
            var origTelegram = GetById(telegramToDelete.Id);

            _telegrams.Remove(origTelegram);
        }
 public override bool HandleMessage(Telegram telegram)
 {
     return(StateMachine.HandleMessage(telegram));
 }
Example #51
0
        public static bool autorem(TGMessage msg, TGUser usr)
        {
            var chat   = msg.chat;
            var enable = XenforceRoot.getGroupConfigurationValue(chat, "autoban", true);

            if (!enable)
            {
                return(false);
            }                              // Not enabled.
            var qsc  = "SELECT * FROM xenf_autokick WHERE `group`={0} AND `user`={1}";
            var rqry = string.Format(qsc, chat.id, usr.id);

            MySql.Data.MySqlClient.MySqlDataReader datar;
            SQLQueryInstance QueryInst;
            var queryok = SQL.Query(rqry, out QueryInst);

            if (QueryInst != null && QueryInst.reader.HasRows) // They've already been kicked before.
            {
                QueryInst.Finish();
                return(false);
            }
            if (QueryInst != null)
            {
                QueryInst.Finish();
            }

            var UserID         = usr.id;
            var GroupID        = msg.chat.id;
            var user_name_full = usr.first_name + " " + usr.last_name;
            var userscore      = 500;

            for (int i = 0; i < user_name_full.Length; i++)
            {
                var wtf = user_name_full[i];
                if (wtf > 0xAF)
                {
                    userscore += 5;
                }
                else if (wtf < 0x80)
                {
                    userscore -= 3;
                }
            }
            var picons = Telegram.getNumProfilePhotos(usr);

            userscore -= picons * 45;
            if (picons == 0)
            {
                userscore += 30;
            }
            if (userscore > 488)
            {
                Telegram.kickChatMember(chat, usr, 120);
                if (XenforceRoot.getGroupConfigurationValue(chat, "announcekicks", 1) > 0)
                {
                    msg.delete();
                    var msgr = msg.replySendMessage(user_name_full + " was automatically removed from the chat -- I think they're a bot.");
                    XenforceRoot.AddCleanupMessage(chat.id, msgr.message_id, 30);
                    var statement =
                        string.Format("INSERT INTO xenf_autokick (`group`,`user`,`when`,`why`) VALUES ({0},{1},{2},'{3}')",
                                      GroupID,
                                      UserID,
                                      Helpers.getUnixTime(),
                                      "Bot Score too high"
                                      );
                    int ra = 0;
                    SQL.NonQuery(statement, out ra);
                    if (ra < 1)
                    {
                        Console.WriteLine("Creating autorem incident failed failed. No SQL rows affected.");
                        var cmsg = msg.replySendMessage("AutoremAddIncident() FAILED:\n\n Info:\n\n" + SQL.getLastError());
                        XenforceRoot.AddCleanupMessage(chat.id, cmsg.message_id, 120);
                    }
                }
                return(true);
            }
            return(false);
        }
Example #52
0
 public void discharge(AIEntity receiver, Telegram msg)
 {
     if(receiver.handlesMessage(msg) ==false) {
         ;//throw error. - FILL OUT
     }
 }
Example #53
0
    public bool HandleMessage(Telegram message)     //Handles messages that are passed to this agent, passing them into the current goal (which can then pass it to any sub-goals, to try and handle it).
    {
        if (CurrentGoal != null && CurrentGoal.HandleMessage(message))
            return true;

        return false;
    }
Example #54
0
 public bool equals(Telegram other)
 {
     return((Math.Abs(dispatchTime - other.dispatchTime) < 0.001) &&
         (sender == other.sender) &&
         (messageType == other.messageType) &&
         (receiver == other.receiver));
 }
Example #55
0
 public bool greaterThan(Telegram other)
 {
     if(this == other)return true;
     else return (dispatchTime < other.dispatchTime);
 }
Example #56
0
 //AIEntity getEntity(double rec){
 //return;
 //}
 public void dispatchMessage(double delay, int sender, int rec, int msg, object extra)
 {
     AIEntity ent = EntityManager.globalInstance().getEntity(rec);
     Telegram t = new Telegram(delay,sender,rec,msg,extra);
     if(delay <= 0.0)discharge(ent, t);
     else {
         priorityQueue.Add(t);
     }
 }
Example #57
0
        public TelegramUtil(Client client, Telegram.Bot.TelegramBotClient telegram, ISettings settings, Inventory inv)
        {
            instance = this;
            _client = client;
            _telegram = telegram;
            _clientSettings = settings;
            _inventory = inv;

            Array values = Enum.GetValues(typeof(TelegramUtilInformationTopics));
            foreach (TelegramUtilInformationTopics topic in values)
            {
                _informationDescription[topic] = TranslationHandler.GetString(_informationDescriptionIDs[topic], _informationDescriptionDefault[topic]);
                _information[topic] = false;
            }

            DoLiveStats(settings);
            DoInformation();
        }
 //  所有的实体entities都通过此方法实现消息传送
 //  使用MessageDispatcher类
 public abstract bool HandleMessage(Telegram msg);// { Debug.LogException(new System.Exception("No Overwrite Method")); return false; }
 public override void HandleMessage(Telegram telegram)
 {
     if (telegram.Target == this)
     {
         callCoroutine();
     }
 }
 /// <summary>
 /// 消息传递
 /// </summary>
 /// <param name="pReceiver"></param>
 /// <param name="telegram"></param>
 void Discharge(BaseGameEntity pReceiver, Telegram telegram)
 {
     if (!pReceiver.HandleMessage(telegram))
     {
         //telegram could not be handled
         //cout << "Message not handled";
     }
 }