fix: Adds command help, webpage, and fixes issues with other commands (#1669)

### Summary

- Fixes `[AdvancedSearch` being accessible by players 😱 
- Adds `[GenCommands` to generate the same commands html page on https://muo.gg/commands.
- Fixes `[helpinfo` so all commands properly show up!

> [!WARNING]  
> ### Developer Warning:
> Commands must now be registered in the `Configure` bootup phase.
> If a command is not registered early enough, it may not be available to systems like [helpinfo
> that cache their information.

> [!NOTE]  
> ### Developer Note:
> Various commands related to generating content have been changed to _Developer_ and above access level.

### Screenshots
<img width="673" alt="image" src="https://github.com/modernuo/ModernUO/assets/3953314/b105b5c9-5eb4-4ace-93ff-1bfb31e7132f">

<img width="547" alt="image" src="https://github.com/modernuo/ModernUO/assets/3953314/e97487e8-47a5-4aa7-89cc-9fe3deda584d">
This commit is contained in:
Kamron Batman 2024-02-10 00:19:19 -08:00 committed by GitHub
parent 3244704ea2
commit fffda53263
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
88 changed files with 1163 additions and 557 deletions

View file

@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Text.Json.Serialization;
using Server.Text;
namespace Server.Commands.Generic
@ -28,7 +29,7 @@ namespace Server.Commands.Generic
public abstract class BaseCommandImplementor
{
private static List<BaseCommandImplementor> m_Implementors;
private static List<BaseCommandImplementor> _implementors;
public BaseCommandImplementor() => Commands = new Dictionary<string, BaseCommand>(StringComparer.OrdinalIgnoreCase);
@ -44,19 +45,20 @@ namespace Server.Commands.Generic
public CommandSupport SupportRequirement { get; set; }
[JsonIgnore]
public Dictionary<string, BaseCommand> Commands { get; }
public static List<BaseCommandImplementor> Implementors
{
get
{
if (m_Implementors == null)
if (_implementors == null)
{
m_Implementors = new List<BaseCommandImplementor>();
_implementors = [];
RegisterImplementors();
}
return m_Implementors;
return _implementors;
}
}
@ -91,7 +93,7 @@ namespace Server.Commands.Generic
}
}
public bool CheckObjectTypes(Mobile from, BaseCommand command, Extensions ext, out bool items, out bool mobiles)
public static bool CheckObjectTypes(Mobile from, BaseCommand command, Extensions ext, out bool items, out bool mobiles)
{
items = mobiles = false;
@ -314,7 +316,7 @@ namespace Server.Commands.Generic
public static void Register(BaseCommandImplementor impl)
{
m_Implementors.Add(impl);
_implementors.Add(impl);
impl.Register();
}
}