コード例 #1
0
        protected override void OnClientBan(ref MyControlBanClientMsg data, ulong sender)
        {
            if (data.BannedClient == Sync.MyId && data.Banned == true)
            {
                // We don't want to send disconnect message because the clients will disconnect the client automatically upon receiving on the MyControlBanClientMsg
                m_clientJoined = false;

                Dispose();
                MyGuiScreenMainMenu.ReturnToMainMenu();
                MyGuiSandbox.AddScreen(MyGuiSandbox.CreateMessageBox(
                                           messageCaption: MyTexts.Get(MyCommonTexts.MessageBoxCaptionKicked),
                                           messageText: MyTexts.Get(MyCommonTexts.MessageBoxTextYouHaveBeenBanned)));
            }
            else
            {
                if (data.Banned)
                {
                    AddBannedClient(data.BannedClient);
                }
                else
                {
                    RemoveBannedClient(data.BannedClient);
                }

                if (m_members.Contains(data.BannedClient) && data.Banned == true)
                {
                    RaiseClientLeft(data.BannedClient, ChatMemberStateChangeEnum.Banned);
                }
            }
        }
コード例 #2
0
 protected override void OnClientBan(ref MyControlBanClientMsg data, ulong sender)
 {
     if (IsAdmin(sender))
     {
         BanClient(data.BannedClient, data.Banned);
     }
 }
コード例 #3
0
 protected override void OnClientBan(ref MyControlBanClientMsg data, ulong sender)
 {
     if (MySession.Static.IsUserAdmin(sender))
     {
         BanClient(data.BannedClient, data.Banned);
     }
 }
コード例 #4
0
        public override void BanClient(ulong userId, bool banned)
        {
            if (banned)
            {
                MyLog.Default.WriteLineAndConsole("Player " + GetMemberName(userId) + " banned");
                MyControlBanClientMsg msg = new MyControlBanClientMsg();
                msg.BannedClient = userId;
                msg.Banned       = true;
                SendControlMessageToAll(ref msg);

                AddBannedClient(userId);
                if (m_members.Contains(userId))
                {
                    RaiseClientLeft(userId, ChatMemberStateChangeEnum.Banned);
                }

                MySandboxGame.ConfigDedicated.Banned.Add(userId);
            }
            else
            {
                MyLog.Default.WriteLineAndConsole("Player " + userId.ToString() + " unbanned");
                RemoveBannedClient(userId);
                MySandboxGame.ConfigDedicated.Banned.Remove(userId);
            }

            MySandboxGame.ConfigDedicated.Save();
        }
コード例 #5
0
 protected override void OnClientBan(ref MyControlBanClientMsg data, ulong sender)
 {
     if ((data.BannedClient == Sync.MyId) && data.Banned)
     {
         MySessionLoader.UnloadAndExitToMenu();
         StringBuilder messageCaption = MyTexts.Get(MyCommonTexts.MessageBoxCaptionKicked);
         MyStringId?   okButtonText   = null;
         okButtonText = null;
         okButtonText = null;
         okButtonText = null;
         Vector2?size = null;
         MyGuiSandbox.AddScreen(MyGuiSandbox.CreateMessageBox(MyMessageBoxStyleEnum.Error, MyMessageBoxButtonsType.OK, MyTexts.Get(MyCommonTexts.MessageBoxTextYouHaveBeenBanned), messageCaption, okButtonText, okButtonText, okButtonText, okButtonText, null, 0, MyGuiScreenMessageBox.ResultEnum.YES, true, size));
     }
     else
     {
         if (data.Banned)
         {
             base.AddBannedClient(data.BannedClient);
         }
         else
         {
             base.RemoveBannedClient(data.BannedClient);
         }
         if (this.m_members.Contains(data.BannedClient) && data.Banned)
         {
             base.RaiseClientLeft(data.BannedClient, MyChatMemberStateChangeEnum.Banned);
         }
     }
 }
コード例 #6
0
        public override void BanClient(ulong userId, bool banned)
        {
            MyControlBanClientMsg msg2;

            if (!banned)
            {
                MyLog.Default.WriteLineAndConsole("Player " + userId + " unbanned");
                msg2 = new MyControlBanClientMsg {
                    BannedClient = userId,
                    Banned       = false
                };
                MyControlBanClientMsg message = msg2;
                base.SendControlMessageToAll <MyControlBanClientMsg>(ref message, 0UL);
                base.RemoveBannedClient(userId);
                MySandboxGame.ConfigDedicated.Banned.Remove(userId);
            }
            else
            {
                MyLog.Default.WriteLineAndConsole("Player " + this.GetMemberName(userId) + " banned");
                msg2 = new MyControlBanClientMsg {
                    BannedClient = userId,
                    Banned       = true
                };
                MyControlBanClientMsg message = msg2;
                base.SendControlMessageToAll <MyControlBanClientMsg>(ref message, 0UL);
                base.AddBannedClient(userId);
                if (this.m_members.Contains(userId))
                {
                    base.RaiseClientLeft(userId, MyChatMemberStateChangeEnum.Banned);
                }
                MySandboxGame.ConfigDedicated.Banned.Add(userId);
            }
            MySandboxGame.ConfigDedicated.Save(null);
        }
コード例 #7
0
        public override void BanClient(ulong client, bool ban)
        {
            MyControlBanClientMsg msg = new MyControlBanClientMsg();

            msg.BannedClient = client;
            msg.Banned       = ban;
            SendControlMessage(ServerId, ref msg);
        }
コード例 #8
0
        public override void BanClient(ulong client, bool ban)
        {
            MyControlBanClientMsg message = new MyControlBanClientMsg {
                BannedClient = client,
                Banned       = ban
            };

            base.SendControlMessage <MyControlBanClientMsg>(base.ServerId, ref message, true);
        }
コード例 #9
0
 protected override void OnClientBan(ref MyControlBanClientMsg data, ulong kicked)
 {
     System.Diagnostics.Debug.Fail("Ban is not supported in lobbies");
 }
コード例 #10
0
 protected abstract void OnClientBan(ref MyControlBanClientMsg data, ulong sender);
コード例 #11
0
 protected override void OnClientBan(ref MyControlBanClientMsg data, ulong sender)
 {
 }