diff options
| author | Michael <[email protected]> | 2017-01-21 21:27:25 -0500 |
|---|---|---|
| committer | Michael <[email protected]> | 2017-01-21 21:27:25 -0500 |
| commit | 2ce2214d5e43fb625c2f9cde22f791ee097643e1 (patch) | |
| tree | c7b8908f604af0cb9bbf5a63cf41bebeb2fe8881 /ShiftOS_TheReturn/Command.cs | |
| parent | 19b7f5b98330335f51efd52b0f744e6174e987fe (diff) | |
| download | shiftos_thereturn-2ce2214d5e43fb625c2f9cde22f791ee097643e1.tar.gz shiftos_thereturn-2ce2214d5e43fb625c2f9cde22f791ee097643e1.tar.bz2 shiftos_thereturn-2ce2214d5e43fb625c2f9cde22f791ee097643e1.zip | |
Commands can now be locked out of remote sessions
Try using sos.shutdown remotely... it won't work.
:stuck_out_tongue_winking_eye:
Diffstat (limited to 'ShiftOS_TheReturn/Command.cs')
| -rw-r--r-- | ShiftOS_TheReturn/Command.cs | 73 |
1 files changed, 52 insertions, 21 deletions
diff --git a/ShiftOS_TheReturn/Command.cs b/ShiftOS_TheReturn/Command.cs index 1652a11..85da6ca 100644 --- a/ShiftOS_TheReturn/Command.cs +++ b/ShiftOS_TheReturn/Command.cs @@ -28,39 +28,51 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace ShiftOS.Engine { - public class Command : Attribute { +namespace ShiftOS.Engine +{ + public class Command : Attribute + { public string name; public string description = ""; public string usage = ""; public bool hide = false; - public Command(string name) { + public Command(string name) + { this.name = name; } - public Command(string name, bool hide) { + public Command(string name, bool hide) + { this.name = name; this.hide = hide; } - public Command(string name, string usage, string description) { + public Command(string name, string usage, string description) + { this.name = name; this.description = description; this.usage = usage; } } - public class RequiresUpgradeAttribute : Attribute { + public class RequiresUpgradeAttribute : Attribute + { public string Upgrade { get; set; } - public bool Installed { - get { - if (Upgrade.Contains(";")) { + public bool Installed + { + get + { + if (Upgrade.Contains(";")) + { string[] split = Upgrade.Split(';'); - foreach (var upg in split) { + foreach (var upg in split) + { if (!Shiftorium.UpgradeInstalled(upg)) return false; } return true; - } else { + } + else + { return Shiftorium.UpgradeInstalled(Upgrade); } } @@ -70,30 +82,36 @@ namespace ShiftOS.Engine { /// Marks this Form or Command as dependant on this upgrade. /// </summary> /// <param name="upg">Upgrade ID - See 'shiftorium.json' in resources for all IDs and their metadata.</param> - public RequiresUpgradeAttribute(string upg) { + public RequiresUpgradeAttribute(string upg) + { Upgrade = upg; } } - public class Namespace : Attribute { + public class Namespace : Attribute + { public string name; public bool hide; - public Namespace(string n) { + public Namespace(string n) + { name = n; } - public Namespace(string n, bool hide) { + public Namespace(string n, bool hide) + { name = n; this.hide = hide; } } [AttributeUsage(AttributeTargets.Method)] - public class CommandObsolete : Attribute { + public class CommandObsolete : Attribute + { public string reason; public string newcommand; public bool warn; - public CommandObsolete(string reason, string newcommand, bool warn) { + public CommandObsolete(string reason, string newcommand, bool warn) + { this.reason = reason; // %n for newcommand this.newcommand = newcommand; this.warn = warn; @@ -101,17 +119,30 @@ namespace ShiftOS.Engine { } [AttributeUsage(AttributeTargets.Method, AllowMultiple = true)] - public class RequiresArgument : Attribute { + public class RequiresArgument : Attribute + { public string argument; - public RequiresArgument(string argument) { + public RequiresArgument(string argument) + { this.argument = argument; } - public override object TypeId { - get { + public override object TypeId + { + get + { return this; } } } + + [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] + public class RemoteLockAttribute : Attribute + { + /// <summary> + /// When used on a terminal command, it will prevent that command from being invoked by a remote user (over MUD terminal forwarding). + /// </summary> + public RemoteLockAttribute() { } + } } |
