Esempio n. 1
0
        void Handle(BanHardwareIdMessage message)
        {
            var hardwareIdBan = Managers.AccountManager.Instance.FindHardwareIdBan(message.HardwareId);

            if (hardwareIdBan != null)
            {
                hardwareIdBan.BanReason = message.BanReason;
                hardwareIdBan.BannedBy  = message.BannerAccountId;
                hardwareIdBan.Date      = DateTime.Now;

                Database.Update(hardwareIdBan);
            }
            else
            {
                var record = new HardwareIdBan
                {
                    HardwareId = message.HardwareId,
                    BanReason  = message.BanReason,
                    BannedBy   = message.BannerAccountId,
                    Date       = DateTime.Now
                };

                Database.Insert(record);
                Managers.AccountManager.Instance.AddHardwareIdBan(record);
            }

            Client.ReplyRequest(new CommonOKMessage(), message);
        }
Esempio n. 2
0
        public override void Execute(TriggerBase trigger)
        {
            var hardwareId = trigger.Get <string>("hardwareId");
            var reason     = trigger.Get <string>("reason");

            if (!IPCAccessor.Instance.IsConnected)
            {
                trigger.ReplyError("IPC service not operational !");
                return;
            }

            var message = new BanHardwareIdMessage
            {
                HardwareId = hardwareId,
                BanReason  = reason
            };

            var source = trigger.GetSource() as WorldClient;

            if (source != null)
            {
                message.BannerAccountId = source.Account.Id;
            }

            IPCAccessor.Instance.SendRequest(message,
                                             ok =>
            {
                World.Instance.ForEachCharacter(x => x.Account.LastHardwareId == hardwareId, character => character.Client.Disconnect());
                trigger.Reply("HardwareId {0} banned", hardwareId);
            },
                                             error => trigger.ReplyError("HardwareId {0} not banned : {1}", hardwareId, error.Message));
        }