Esempio n. 1
0
        public void SetRank(string playerNameOrID, string rankName)
        {
            RanksAndPermissionsModule.RankData rank = RanksAndPermissions.GetRankData(rankName);

            ulong.TryParse(playerNameOrID, out var id);
            id = Utilities.GetPlayerByNameOrId(playerNameOrID)?.SteamUserId ?? id;
            /*IMyPlayer player = Utilities.GetPlayerByNameOrId(playerName);*/
            if (id == 0)
            {
                Context.Respond($"Player '{playerNameOrID}' not found or ID is invalid.");
                return;
            }
            var player = Utilities.GetPlayerByNameOrId(playerNameOrID);

            if (rank == null)
            {
                Context.Respond("Rank does not exist!");
                return;
            }

            PlayerAccountModule.PlayerAccountData data = new PlayerAccountModule.PlayerAccountData();
            var RegisteredPlayerNames    = PlayerAccountModule.PlayersAccounts.Select(o => o.Player).ToList();
            var RegisteredPlayerSteamIDs = PlayerAccountModule.PlayersAccounts.Select(o => o.SteamID).ToList();

            if (!RegisteredPlayerNames.Contains(playerNameOrID) && !RegisteredPlayerSteamIDs.Contains(id))
            {
                Log.Warn($"Player {playerNameOrID} does have registered player object... Creating one");
                data.Player  = playerNameOrID;
                data.SteamID = player.SteamUserId;
            }

            if (RegisteredPlayerNames.Contains(playerNameOrID))
            {
                data = PlayerAccountModule.PlayersAccounts.Single(a => a.Player == playerNameOrID);
            }

            if (RegisteredPlayerSteamIDs.Contains(id))
            {
                data = PlayerAccountModule.PlayersAccounts.Single(a => a.SteamID == id);
            }

            data.Rank = rank.RankName;
            if (rank.ReservedSlot && !MySandboxGame.ConfigDedicated.Reserved.Contains(id))
            {
                MySandboxGame.ConfigDedicated.Reserved.Add(id);
            }
            else if (!rank.ReservedSlot && MySandboxGame.ConfigDedicated.Reserved.Contains(id))
            {
                MySandboxGame.ConfigDedicated.Reserved.Remove(id);
            }
            MySession.Static.SetUserPromoteLevel(data.SteamID, RanksAndPermissions.ParseMyPromoteLevel(rank.KeenLevelRank));
            Context.Respond($"{data.Player}'s rank set to {rank.RankName}");
            Log.Info($"{data.Player}'s rank set to {rank.RankName}");
            AccModule.UpdatePlayerAccount(data);
        }
Esempio n. 2
0
 public void DeleteRank(string name)
 {
     RanksAndPermissionsModule.RankData rank = RanksAndPermissions.GetRankData(name);
     if (rank == null)
     {
         Context.Respond($"Rank '{name}' does not exist!");
         return;
     }
     RanksAndPermissionsModule.Ranks.Remove(rank);
     RanksAndPermissions.SaveRankData();
 }
Esempio n. 3
0
 public void RenameRank(string oldName, string newName)
 {
     RanksAndPermissionsModule.RankData rank = RanksAndPermissions.GetRankData(oldName);
     if (rank == null)
     {
         Context.Respond($"Rank '{oldName}' does not exist!");
         return;
     }
     rank.RankName = newName;
     RanksAndPermissions.UpdateRankObject(rank);
     RanksAndPermissions.UpdateRegisteredPlayersRanks(newName);
 }
Esempio n. 4
0
        public void SetMaxHomes(string rankName, int value)
        {
            RanksAndPermissionsModule.RankData Rank = RanksAndPermissions.GetRankData(rankName);
            if (Rank == null)
            {
                Context.Respond($"Rank '{rankName}' does not exist!");
                return;
            }

            Rank.MaxHomes = value;
            Context.Respond($"Anyone with the rank '{Rank.RankName}' can now only set {value} homes");
        }
Esempio n. 5
0
 public void SetDefaultRank(string name)
 {
     RanksAndPermissionsModule.RankData rank = RanksAndPermissions.GetRankData(name);
     if (rank == null)
     {
         Context.Respond($"Rank '{name}' does not exist!");
         return;
     }
     EssentialsPlugin.Instance.Config.DefaultRank = name;
     EssentialsPlugin.Instance.Save();
     Context.Respond($"Default rank set to '{name}'!");
     Log.Info($"Default rank set to '{name}'!");
 }
Esempio n. 6
0
 public void SetReservedSlot(string rankName, string boolVal)
 {
     if (boolVal != "true" || boolVal != "false")
     {
         Context.Respond("Argument is not a valid bool type");
     }
     RanksAndPermissionsModule.RankData rank = RanksAndPermissions.GetRankData(rankName);
     if (rank == null)
     {
         Context.Respond($"Rank '{rankName}' does not exist!");
         return;
     }
     rank.ReservedSlot = bool.Parse(boolVal);
     RanksAndPermissions.UpdateRankObject(rank);
 }
Esempio n. 7
0
 public void DelInheritance(string rankName, string inheritanceName)
 {
     RanksAndPermissionsModule.RankData rank = RanksAndPermissions.GetRankData(rankName);
     if (rank != null)
     {
         if (!rank.Inherits.Contains(inheritanceName))
         {
             Context.Respond($"{rank.RankName} does not inherit {inheritanceName}");
             return;
         }
         rank.Inherits.Remove(inheritanceName);
         RanksAndPermissions.UpdateRankObject(rank);
         Context.Respond("Inheritance removed");
         return;
     }
     Context.Respond("The rank you are trying to remove inheritence from does not exist");
 }
Esempio n. 8
0
 public void AddInheritance(string rankName, string inheritanceName)
 {
     RanksAndPermissionsModule.RankData rank = RanksAndPermissions.GetRankData(rankName);
     if (rank != null)
     {
         RanksAndPermissionsModule.RankData InheritRank = RanksAndPermissions.GetRankData(inheritanceName);
         if (InheritRank == null)
         {
             Context.Respond("The rank you are trying to add to the inheritance list does not exist!");
             return;
         }
         rank.Inherits.Add(inheritanceName);
         RanksAndPermissions.UpdateRankObject(rank);
         Context.Respond("Inheritance added!");
         return;
     }
     Context.Respond("The rank you are trying to add inheritence to does not exist");
 }
Esempio n. 9
0
        public void RemovePermission(string rankName, string command)
        {
            RanksAndPermissionsModule.RankData data = new RanksAndPermissionsModule.RankData();
            bool found = false;

            foreach (var Rank in RanksAndPermissionsModule.Ranks)
            {
                if (Rank.RankName == rankName)
                {
                    data  = Rank;
                    found = true;
                    break;
                }
            }

            if (!found)
            {
                Context.Respond($"Rank '{rankName}' does not exist!");
                return;
            }

            if (command.Substring(0, 1) == "-")
            {
                string stringAfterChar = command.Substring(command.IndexOf("-") + 1);
                if (data.Permissions.Disallowed.Contains(stringAfterChar))
                {
                    data.Permissions.Disallowed.Remove(stringAfterChar);
                    Context.Respond($"Updated rank");
                    RanksAndPermissions.UpdateRankObject(data);
                    return;
                }
            }

            if (!data.Permissions.Disallowed.Contains(command))
            {
                data.Permissions.Disallowed.Add(command);
                Context.Respond($"Permission to use command '{command}' has been actively revoked from the {data.RankName} rank!");
                RanksAndPermissions.UpdateRankObject(data);
                return;
            }

            Context.Respond($"Permission to use command '{command}' is already being actively revoked from the {data.RankName} rank!");
        }
Esempio n. 10
0
        public void SetRank(string playerName, string rankName)
        {
            RanksAndPermissionsModule.RankData rank = RanksAndPermissions.GetRankData(rankName);

            /*IMyPlayer player = Utilities.GetPlayerByNameOrId(playerName);
             * if (player == null) {
             *  Context.Respond("Player does not exist!");
             *  return;
             * }*/

            if (rank == null)
            {
                Context.Respond("Rank does not exist!");
                return;
            }

            PlayerAccountModule.PlayerAccountData data = new PlayerAccountModule.PlayerAccountData();
            var RegisteredPlayers = PlayerAccountModule.PlayersAccounts.Select(o => o.Player).ToList();

            if (!RegisteredPlayers.Contains(playerName))
            {
                Log.Warn($"Player {playerName} does have registered player object... Creating one");
                data.Player = playerName;
                //data.SteamID = playerName;
                data.Rank = rank.RankName;
                AccModule.UpdatePlayerAccount(data);
                Context.Respond($"{playerName}'s rank set to {rank.RankName}");
                Log.Info($"{playerName}'s rank set to {rank.RankName}");
                return;
            }
            data      = PlayerAccountModule.PlayersAccounts.Single(a => a.Player == playerName);
            data.Rank = rank.RankName;
            MySession.Static.SetUserPromoteLevel(data.SteamID, RanksAndPermissions.ParseMyPromoteLevel(rank.KeenLevelRank));

            AccModule.UpdatePlayerAccount(data);
        }