mirror of
https://github.com/modernuo/ModernUO
synced 2026-08-11 22:23:06 -04:00
### 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">
60 lines
1.9 KiB
C#
60 lines
1.9 KiB
C#
using Server.Commands;
|
|
using Server.Commands.Generic;
|
|
using Server.Mobiles;
|
|
|
|
namespace Server.Network
|
|
{
|
|
public class PacketLoggingCommand : BaseCommand
|
|
{
|
|
public static void Configure()
|
|
{
|
|
TargetCommands.Register(new PacketLoggingCommand());
|
|
}
|
|
|
|
public PacketLoggingCommand()
|
|
{
|
|
AccessLevel = AccessLevel.Developer;
|
|
Commands = new[] { "PacketLogging" };
|
|
ObjectTypes = ObjectTypes.Mobiles;
|
|
Supports = CommandSupport.AllMobiles;
|
|
Usage = "PacketLogging <on|off>";
|
|
Description = "Enables or disables packet logging for a particular user until they disconnect.";
|
|
}
|
|
|
|
public override void Execute(CommandEventArgs e, object targeted)
|
|
{
|
|
if (e.Arguments.Length == 0)
|
|
{
|
|
LogFailure("Format: PacketLogging <on|off>");
|
|
return;
|
|
}
|
|
|
|
var from = e.Mobile;
|
|
var enable = Utility.ToBoolean(e.Arguments[0]);
|
|
|
|
if (targeted is not PlayerMobile pm)
|
|
{
|
|
LogFailure("That is not a player.");
|
|
}
|
|
else if (pm.NetState == null)
|
|
{
|
|
LogFailure("The player is not connected.");
|
|
}
|
|
else if (from != pm && from.AccessLevel < pm.AccessLevel)
|
|
{
|
|
LogFailure("You do not have the required access level to do this.");
|
|
}
|
|
else
|
|
{
|
|
pm.NetState.PacketLogging = enable;
|
|
var enabled = enable ? "enabled" : "disabled";
|
|
CommandLogging.WriteLine(
|
|
from,
|
|
$"{from.AccessLevel} {CommandLogging.Format(from)} {enabled} packet logging for {pm.Account.Username} ({pm.NetState})"
|
|
);
|
|
|
|
AddResponse($"Packet logging has been {enabled} for {pm.Account.Username} ({pm.NetState})");
|
|
}
|
|
}
|
|
}
|
|
}
|