public bool PlayerHasVesselPermission(string playerName, Guid vesselID) { lock (vesselPermissions) { if (!vesselPermissions.ContainsKey(vesselID)) { return(true); } VesselPermission vp = vesselPermissions[vesselID]; if (vp.owner == playerName) { return(true); } if (vp.protection == VesselProtectionType.PUBLIC) { return(true); } if (vp.protection == VesselProtectionType.GROUP && vp.group != null && vp.group != "") { if (groups.PlayerInGroup(playerName, vp.group)) { return(true); } } } return(false); }
private void DrawContent(int windowID) { GUI.DragWindow(moveRect); GUILayout.BeginVertical(); GUILayout.Label("Create"); GUILayout.BeginHorizontal(); tempGroupName = GUILayout.TextArea(tempGroupName, GUILayout.ExpandWidth(true)); if (tempGroupName.StartsWith(".", StringComparison.Ordinal)) { tempGroupName = ""; } if (GUILayout.Button("Create group", GUILayout.ExpandWidth(false))) { groups.AddPlayerToGroup(dmpSettings.playerName, tempGroupName); tempGroupName = ""; } GUILayout.EndHorizontal(); GUILayout.Space(20); if (groups.playerGroups.ContainsKey(dmpSettings.playerName)) { GUILayout.Label("Edit"); foreach (string group in groups.playerGroups[dmpSettings.playerName]) { if (editGroup == group) { if (!GUILayout.Toggle(true, group, buttonStyle)) { editGroup = ""; } } else { if (GUILayout.Toggle(false, group, buttonStyle)) { editGroup = group; } } } } if (editGroup != "") { if (GUILayout.Button("Leave group")) { groups.RemovePlayerFromGroup(dmpSettings.playerName, editGroup); editGroup = ""; } if (groups.PlayerIsAdmin(dmpSettings.playerName, editGroup)) { if (GUILayout.Button("Disband group")) { groups.DeleteGroup(editGroup); editGroup = ""; } } if (groups.PlayerIsAdmin(dmpSettings.playerName, editGroup)) { foreach (PlayerStatus player in playerStatusWorker.playerStatusList) { if (player.playerName != dmpSettings.playerName) { if (!groups.PlayerInGroup(player.playerName, editGroup)) { if (GUILayout.Button("Add " + player.playerName)) { groups.AddPlayerToGroup(player.playerName, editGroup); } } else { if (GUILayout.Button("Remove " + player.playerName)) { groups.RemovePlayerFromGroup(player.playerName, editGroup); } if (!groups.PlayerIsAdmin(player.playerName, editGroup)) { if (GUILayout.Button("Make " + player.playerName + " admin")) { groups.AddPlayerAdmin(player.playerName, editGroup); } } else { if (GUILayout.Button("Remove admin " + player.playerName)) { groups.RemovePlayerAdmin(player.playerName, editGroup); } } } } } } } GUILayout.EndVertical(); }