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()); } }
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; } } }
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; }
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; } } }
public override void OnConnection(VMEODClient client) { var param = client.Invoker.Thread.TempRegisters; Mode = (VMEODSignsMode)param[0]; MaxLength = param[1]; }