Example #1
0
 public Command(String commandName, String commandDescription, String commandAlias, Player.Permission requiredPermission, bool requiresTarget, CommandArgument[] param = null)
 {
     Name           = commandName;
     Description    = commandDescription;
     Alias          = commandAlias;
     Permission     = requiredPermission;
     RequiresTarget = requiresTarget;
     Arguments      = param ?? new CommandArgument[0];
 }
Example #2
0
        public static Player.Permission MatchPermission(String str)
        {
            String lookingFor = str.ToLower();

            for (Player.Permission Perm = Player.Permission.User; Perm < Player.Permission.Console; Perm++)
            {
                if (lookingFor.Contains(Perm.ToString().ToLower()))
                {
                    return(Perm);
                }
            }

            return(Player.Permission.Banned);
        }
Example #3
0
        public override async Task ExecuteAsync(Event E)
        {
            if (E.Target == E.Origin)
            {
                await E.Origin.Tell("You cannot change your own level.");

                return;
            }

            Player.Permission newPerm = Utilities.MatchPermission(E.Data);

            if (newPerm == Player.Permission.Owner && E.Origin.Level != Player.Permission.Console)
            {
                newPerm = Player.Permission.Banned;
            }

            if (newPerm == Player.Permission.Owner && !E.Owner.Config.AllowMultipleOwners)
            {
                await E.Origin.Tell("There can only be 1 owner. Modify your server configuration if multiple owners are required");

                return;
            }

            if (newPerm > Player.Permission.Banned)
            {
                var ActiveClient = E.Owner.Manager.GetActiveClients().FirstOrDefault(p => p.NetworkId == E.Target.NetworkId);


                if (ActiveClient != null)
                {
                    ActiveClient.Level = newPerm;
                    await ActiveClient.Tell("Congratulations! You have been promoted to ^3" + newPerm);
                }

                else
                {
                    E.Target.Level = newPerm;
                    await E.Owner.Manager.GetClientService().Update(E.Target);
                }

                await E.Origin.Tell($"{E.Target.Name} was successfully promoted!");
            }

            else
            {
                await E.Origin.Tell("Invalid group specified.");
            }
        }
Example #4
0
        /// <summary>
        /// Get the IW Engine color code corresponding to an admin level
        /// </summary>
        /// <param name="level">Specified player level</param>
        /// <returns></returns>
        public static String ConvertLevelToColor(Player.Permission level)
        {
            switch (level)
            {
            case Player.Permission.Banned:
                return("^1" + Player.Permission.Banned);

            case Player.Permission.Flagged:
                return("^9" + Player.Permission.Flagged);

            case Player.Permission.Owner:
                return("^5" + Player.Permission.Owner);

            case Player.Permission.User:
                return("^2" + Player.Permission.User);

            case Player.Permission.Trusted:
                return("^3" + Player.Permission.Trusted);

            default:
                return("^6" + level);
            }
        }
Example #5
0
        public override async Task ExecuteAsync(GameEvent E)
        {
            if (E.Target == E.Origin)
            {
                await E.Origin.Tell(Utilities.CurrentLocalization.LocalizationSet["COMMANDS_SETLEVEL_SELF"]);

                return;
            }

            Player.Permission newPerm = Utilities.MatchPermission(E.Data);

            if (newPerm == Player.Permission.Owner &&
                !E.Owner.Manager.GetApplicationSettings().Configuration().EnableMultipleOwners)
            {
                await E.Origin.Tell(Utilities.CurrentLocalization.LocalizationSet["COMMANDS_SETLEVEL_OWNER"]);

                return;
            }

            if (E.Origin.Level < Player.Permission.Owner &&
                !E.Owner.Manager.GetApplicationSettings().Configuration().EnableSteppedHierarchy)
            {
                await E.Origin.Tell($"{Utilities.CurrentLocalization.LocalizationSet["COMMANDS_SETLEVEL_STEPPEDDISABLED"]} ^5{E.Target.Name}");

                return;
            }

            if (newPerm >= E.Origin.Level)
            {
                if (E.Origin.Level < Player.Permission.Owner)
                {
                    await E.Origin.Tell(string.Format(Utilities.CurrentLocalization.LocalizationSet["COMMANDS_SETLEVEL_LEVELTOOHIGH"], E.Target.Name, (E.Origin.Level - 1).ToString()));

                    await E.Origin.Tell($"You can only promote ^5{E.Target.Name} ^7to ^5{(E.Origin.Level - 1)} ^7or lower privilege");

                    return;
                }
            }

            if (newPerm > Player.Permission.Banned)
            {
                var ActiveClient = E.Owner.Manager.GetActiveClients()
                                   .FirstOrDefault(p => p.NetworkId == E.Target.NetworkId);

                if (ActiveClient != null)
                {
                    ActiveClient.Level = newPerm;
                    await ActiveClient.Tell($"{Utilities.CurrentLocalization.LocalizationSet["COMMANDS_SETLEVEL_SUCCESS_TARGET"]} {newPerm}");
                }

                else
                {
                    E.Target.Level = newPerm;
                    await E.Owner.Manager.GetClientService().Update(E.Target);
                }

                try
                {
                    E.Owner.Manager.GetPrivilegedClients().Add(E.Target.ClientId, E.Target);
                }

                catch (Exception)
                {
                    E.Owner.Manager.GetPrivilegedClients()[E.Target.ClientId] = E.Target;
                }

                await E.Origin.Tell($"{E.Target.Name} {Utilities.CurrentLocalization.LocalizationSet["COMMANDS_SETLEVEL_SUCCESS"]}");
            }

            else
            {
                await E.Origin.Tell(Utilities.CurrentLocalization.LocalizationSet["COMMANDS_SETLEVEL_FAIL"]);
            }
        }
Example #6
0
 public Rank(int id, string name, Player.Permission equivalentRank)
 {
     this.name           = name;
     this.equivalentRank = equivalentRank;
     this.id             = id;
 }
Example #7
0
 /// <summary>
 /// Initial creation
 /// </summary>
 /// <param name="name"></param>
 /// <param name="equivalentRank"></param>
 /// <param name="permissions"></param>
 public Rank(string name, Player.Permission equivalentRank)
 {
     this.name           = name;
     this.equivalentRank = equivalentRank;
     id = 0;
 }