Esempio n. 1
0
 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);
 }
Esempio n. 2
0
 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();
 }