Ignore:
Timestamp:
Jul 26, 2014, 4:41:11 PM (10 years ago)
Author:
alloc
Message:

fixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • binary-improvements/7dtd-server-fixes/src/AdminToolsStuff.cs

    r103 r107  
    2525                                }
    2626                        }
     27
     28                        if (tmpInfo.PermissionLevel <= 0) {
     29                                List<ConsoleCommand> commands = console.commands;
     30                                foreach (ConsoleCommand c in commands) {
     31                                        if (!allowed.Contains (c.Names () [0])) {
     32                                                if (!hasPermissionLevel (admTools, c.Names () [0])) {
     33                                                        addAllowed (console, allowed, c.Names () [0]);
     34                                                }
     35                                        }
     36                                }
     37                        }
    2738                } catch (Exception e) {
    2839                        Log.Out ("Error in GetAllowedCommandsList: " + e);
     
    3344        }
    3445
     46        private static bool hasPermissionLevel (AdminTools admTools, string cmd)
     47        {
     48                List<AdminToolsCommandPermissions> perms = admTools.commandPermissions;
     49
     50                foreach (AdminToolsCommandPermissions atcp in perms) {
     51                        foreach (string ccName in getAlternativeNames(cmd)) {
     52                                if (atcp.Command.ToLower ().Equals (ccName)) {
     53                                        return true;
     54                                }
     55                        }
     56                }
     57                return false;
     58        }
     59
    3560        private static void addAllowed (ConsoleSdtd console, List<string> list, string cmd)
    3661        {
    37                 ConsoleCommand cc = console.getCommand (cmd);
     62                foreach (string ccName in getAlternativeNames(cmd)) {
     63                        if (!list.Contains (ccName)) {
     64                                list.Add (ccName);
     65                        }
     66                }
     67        }
     68
     69        private static string[] getAlternativeNames (string cmd)
     70        {
     71                ConsoleCommand cc = CommonMappingFunctions.GetGameManager ().m_GUIConsole.getCommand (cmd);
    3872                if (cc != null) {
    39                         foreach (string ccName in cc.Names()) {
    40                                 if (!list.Contains (ccName)) {
    41                                         list.Add (ccName);
    42                                 }
    43                         }
     73                        return cc.Names ();
    4474                } else {
    45                         list.Add (cmd);
     75                        return new string[0];
    4676                }
    4777        }
Note: See TracChangeset for help on using the changeset viewer.