Пример #1
0
        public void P_Init(string evt, string text)
        {
            var split = text.Split('\n');

            Mode        = (VMEODSignsMode)(int.Parse(split[0]));
            InitialMode = Mode;
            MaxChars    = int.Parse(split[0]);

            OwnerMode = (Mode == VMEODSignsMode.OwnerPermissions) || (Mode == VMEODSignsMode.OwnerWrite);
        }
 public override void OnConnection(VMEODClient client)
 {
     if (client.Avatar == null)
     {
         //we're the controller!
         SendClientBulletinData(client);
     }
     else
     {
         var param = client.Invoker.Thread.TempRegisters;
         Mode = (VMEODSignsMode)param[0];
         client.Send("bulletin_show", (param[0]).ToString());
     }
 }
Пример #3
0
        public override void Tick()
        {
            lock (this) {
                if (Data != null && !SentMessage)
                {
                    //init mode. check client permissions...
                    var client = Server.Clients.FirstOrDefault();
                    if (client == null)
                    {
                        return;                 //uh, what?
                    }
                    VMEODSignPermissionFlags avaFlags = 0;

                    if (Mode != VMEODSignsMode.OwnerWrite && Mode != VMEODSignsMode.OwnerPermissions)
                    {
                        if (client.Avatar.AvatarState.Permissions >= VMTSOAvatarPermissions.Roommate)
                        {
                            avaFlags |= VMEODSignPermissionFlags.RoomieRead;
                        }
                        else
                        {
                            avaFlags |= VMEODSignPermissionFlags.VisitorRead;
                        }

                        var inverseRead = (~(VMEODSignPermissionFlags)Data.Flags) & VMEODSignPermissionFlags.ReadFlags & avaFlags;
                        if (inverseRead > 0)
                        {
                            DisableRead = true; Mode = VMEODSignsMode.Read;
                        }

                        avaFlags = (VMEODSignPermissionFlags)((short)avaFlags << 3);
                        var inverseWrite = (~(VMEODSignPermissionFlags)Data.Flags) & VMEODSignPermissionFlags.WriteFlags & avaFlags;
                        Mode = (inverseWrite > 0) ? VMEODSignsMode.Read : VMEODSignsMode.Write;
                    }

                    if (DisableRead)
                    {
                        Data.Text = "";
                    }

                    client.Send("signs_init", (short)Mode + "\n" + MaxLength);
                    client.Send("signs_show", Data.Save());
                    SentMessage = true;
                }
            }
        }
Пример #4
0
        public void SetMode(VMEODSignsMode mode)
        {
            Mode = mode;

            OwnerPermissionsButton.Visible = OwnerMode;
            OwnerWriteTextButton.Visible   = OwnerMode;

            var perms = mode == VMEODSignsMode.OwnerPermissions;

            OwnerPermissionsButton.Visible = OwnerMode;
            OwnerWriteTextButton.Visible   = OwnerMode;

            RoommateReadCheckButton.Visible = perms;
            FriendReadCheckButton.Visible   = perms;
            VisitorReadCheckButton.Visible  = perms;

            RoommateWriteCheckButton.Visible = perms;
            FriendWriteCheckButton.Visible   = perms;
            VisitorWriteCheckButton.Visible  = perms;

            TextRead.Visible       = perms;
            TextRRoommates.Visible = perms;
            TextRFriends.Visible   = perms;
            TextRVisitors.Visible  = perms;
            TextWrite.Visible      = perms;
            TextWRoommates.Visible = perms;
            TextWFriends.Visible   = perms;
            TextWVisitors.Visible  = perms;

            OwnerWriteTextSubpanel.Visible   = mode == VMEODSignsMode.OwnerWrite;
            OwnerWriteTextBox.Visible        = mode == VMEODSignsMode.OwnerWrite;
            WriteTextSubpanel.Visible        = mode == VMEODSignsMode.Write;
            WriteTextBox.Visible             = mode == VMEODSignsMode.Write;
            ReadTextSubpanel.Visible         = mode == VMEODSignsMode.Read;
            ReadTextBox.Visible              = mode == VMEODSignsMode.Read;
            OwnerPermissionsSubpanel.Visible = perms;
        }
Пример #5
0
        public void SetMode(VMEODSignsMode mode)
        {
            Mode = mode;

            OwnerPermissionsButton.Visible = OwnerMode;
            OwnerWriteTextButton.Visible = OwnerMode;

            var perms = mode == VMEODSignsMode.OwnerPermissions;

            OwnerPermissionsButton.Visible = OwnerMode;
            OwnerWriteTextButton.Visible = OwnerMode;

            RoommateReadCheckButton.Visible = perms;
            FriendReadCheckButton.Visible = perms;
            VisitorReadCheckButton.Visible = perms;

            RoommateWriteCheckButton.Visible = perms;
            FriendWriteCheckButton.Visible = perms;
            VisitorWriteCheckButton.Visible = perms;

            TextRead.Visible = perms;
            TextRRoommates.Visible = perms;
            TextRFriends.Visible = perms;
            TextRVisitors.Visible = perms;
            TextWrite.Visible = perms;
            TextWRoommates.Visible = perms;
            TextWFriends.Visible = perms;
            TextWVisitors.Visible = perms;

            OwnerWriteTextSubpanel.Visible = mode == VMEODSignsMode.OwnerWrite;
            OwnerWriteTextBox.Visible = mode == VMEODSignsMode.OwnerWrite;
            WriteTextSubpanel.Visible = mode == VMEODSignsMode.Write;
            WriteTextBox.Visible = mode == VMEODSignsMode.Write;
            ReadTextSubpanel.Visible = mode == VMEODSignsMode.Read;
            ReadTextBox.Visible = mode == VMEODSignsMode.Read;
            OwnerPermissionsSubpanel.Visible = perms;
        }
Пример #6
0
        public void P_Init(string evt, string text)
        {
            var split = text.Split('\n');
            Mode = (VMEODSignsMode)(int.Parse(split[0]));
            InitialMode = Mode;
            MaxChars = int.Parse(split[0]);

            OwnerMode = (Mode == VMEODSignsMode.OwnerPermissions) || (Mode == VMEODSignsMode.OwnerWrite);
        }
Пример #7
0
        public override void Tick()
        {
            lock (this) {
                if (Data != null && !SentMessage)
                {
                    //init mode. check client permissions...
                    var client = Server.Clients.FirstOrDefault();
                    if (client == null) return; //uh, what?

                    VMEODSignPermissionFlags avaFlags = 0;

                    if (Mode != VMEODSignsMode.OwnerWrite && Mode != VMEODSignsMode.OwnerPermissions)
                    {
                        if (((VMTSOAvatarState)client.Avatar.TSOState).Permissions >= VMTSOAvatarPermissions.Roommate) avaFlags |= VMEODSignPermissionFlags.RoomieRead;
                        else avaFlags |= VMEODSignPermissionFlags.VisitorRead;

                        var inverseRead = (~(VMEODSignPermissionFlags)Data.Flags) & VMEODSignPermissionFlags.ReadFlags & avaFlags;
                        if (inverseRead > 0) {
                            DisableRead = true; Mode = VMEODSignsMode.Read;
                        }

                        avaFlags = (VMEODSignPermissionFlags)((short)avaFlags<<3);
                        var inverseWrite = (~(VMEODSignPermissionFlags)Data.Flags) & VMEODSignPermissionFlags.WriteFlags & avaFlags;
                        Mode = (inverseWrite > 0) ? VMEODSignsMode.Read : VMEODSignsMode.Write;
                    }

                    if (DisableRead) Data.Text = "";

                    client.Send("signs_init", (short)Mode + "\n" + MaxLength);
                    client.Send("signs_show", Data.Save());
                    SentMessage = true;
                }
            }
        }
Пример #8
0
 public override void OnConnection(VMEODClient client)
 {
     var param = client.Invoker.Thread.TempRegisters;
     Mode = (VMEODSignsMode)param[0];
     MaxLength = param[1];
 }