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]; }
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); }
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."); } }
/// <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); } }
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"]); } }
public Rank(int id, string name, Player.Permission equivalentRank) { this.name = name; this.equivalentRank = equivalentRank; this.id = id; }
/// <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; }