diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/ActorComponent_Add.h b/Plugins/UEWingman/Source/UEWingman/Handlers/ActorComponent_Add.h index 1278959f..e8b3cd10 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/ActorComponent_Add.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/ActorComponent_Add.h @@ -37,12 +37,12 @@ public: UPROPERTY(meta=(Description="Name of the parent component to attach to")) FString Parent; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Add a component to a Blueprint's SimpleConstructionScript. " - "Optionally attach it to an existing parent component."); + UWingServer::AddHandler(this, + TEXT("Add a component to a Blueprint's SimpleConstructionScript. " + "Optionally attach it to an existing parent component.")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/ActorComponent_Remove.h b/Plugins/UEWingman/Source/UEWingman/Handlers/ActorComponent_Remove.h index 0cdfe415..ec283534 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/ActorComponent_Remove.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/ActorComponent_Remove.h @@ -21,11 +21,11 @@ public: UPROPERTY(meta=(Description="Path to the component (e.g. '/Game/MyBP,component:MyComp')")) FString Component; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Remove a component from a Blueprint's SimpleConstructionScript."); + UWingServer::AddHandler(this, + TEXT("Remove a component from a Blueprint's SimpleConstructionScript.")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/ActorComponent_Reparent.h b/Plugins/UEWingman/Source/UEWingman/Handlers/ActorComponent_Reparent.h index 6e5d9509..8c0bc68e 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/ActorComponent_Reparent.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/ActorComponent_Reparent.h @@ -28,11 +28,11 @@ public: UPROPERTY(meta=(Description="New parent component name.")) FString Parent; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Change the parent of a component in a Blueprint's SimpleConstructionScript."); + UWingServer::AddHandler(this, + TEXT("Change the parent of a component in a Blueprint's SimpleConstructionScript.")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_Backup.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_Backup.h index eea316c6..93528e7d 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_Backup.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_Backup.h @@ -23,11 +23,11 @@ public: UPROPERTY(meta=(Description="Asset to back up")) FString Asset; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Copy an asset's .uasset file to a .uasset.bak backup."); + UWingServer::AddHandler(this, + TEXT("Copy an asset's .uasset file to a .uasset.bak backup.")); } - virtual void Handle() override { FString Filename = FPaths::ConvertRelativePathToFull( diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_ContentBrowse.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_ContentBrowse.h index aea03296..f56aa864 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_ContentBrowse.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_ContentBrowse.h @@ -23,11 +23,11 @@ public: UPROPERTY(meta=(Description="Content browser path to list, e.g. /Game or /Game/Maps")) FString Path; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("List the subfolders and assets inside a content browser folder."); + UWingServer::AddHandler(this, + TEXT("List the subfolders and assets inside a content browser folder.")); } - static FString GetExtraInfoString(const FAssetData& Data) { FString ParentClassName; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_Delete.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_Delete.h index a92abcf9..c332c747 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_Delete.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_Delete.h @@ -29,12 +29,12 @@ public: UPROPERTY(meta=(Optional, Description="If true, skip reference check and force delete")) bool Force = false; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Delete a .uasset after verifying no references. " - "Use force=true to skip the reference check."); + UWingServer::AddHandler(this, + TEXT("Delete a .uasset after verifying no references. " + "Use force=true to skip the reference check.")); } - virtual void Handle() override { // Verify the asset file exists on disk diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_FindReferences.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_FindReferences.h index 9f770689..b18ebd06 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_FindReferences.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_FindReferences.h @@ -22,11 +22,11 @@ public: UPROPERTY(meta=(Description="Asset to find references for")) FString Asset; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Find all assets that reference a given asset."); + UWingServer::AddHandler(this, + TEXT("Find all assets that reference a given asset.")); } - virtual void Handle() override { IAssetRegistry& Registry = *IAssetRegistry::Get(); diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_Rename.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_Rename.h index 98dcc75e..a49c03a3 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_Rename.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_Rename.h @@ -26,11 +26,11 @@ public: UPROPERTY(meta=(Description="New package path or just a new name")) FString NewPath; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Rename or move an asset with reference fixup."); + UWingServer::AddHandler(this, + TEXT("Rename or move an asset with reference fixup.")); } - virtual void Handle() override { // Load the asset diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_Restore.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_Restore.h index 62c66ed8..c64c92d6 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_Restore.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_Restore.h @@ -24,11 +24,11 @@ public: UPROPERTY(meta=(Description="Asset to restore")) FString Asset; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Restore a .uasset file from its .uasset.bak backup, reloading it in the editor."); + UWingServer::AddHandler(this, + TEXT("Restore a .uasset file from its .uasset.bak backup, reloading it in the editor.")); } - virtual void Handle() override { FString Filename = FPaths::ConvertRelativePathToFull( diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_Search.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_Search.h index e36aed2c..756c9751 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_Search.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Asset_Search.h @@ -30,11 +30,11 @@ public: UPROPERTY(meta=(Optional, Description="Maximum number of results (default 50)")) int32 Limit = 50; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Search for assets by name and/or type. At least one of Query or Type must be specified."); + UWingServer::AddHandler(this, + TEXT("Search for assets by name and/or type. At least one of Query or Type must be specified.")); } - virtual void Handle() override { if (Query.IsEmpty() && Type.IsEmpty()) diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintGraph_Create.h b/Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintGraph_Create.h index 25e0ba42..ca685343 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintGraph_Create.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintGraph_Create.h @@ -38,11 +38,11 @@ public: UPROPERTY(meta=(Optional, Description="Output variables, one per line")) FString OutputVariables; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Create a new function or macro graph in a Blueprint."); + UWingServer::AddHandler(this, + TEXT("Create a new function or macro graph in a Blueprint.")); } - virtual void Handle() override { if (GraphType != TEXT("function") && GraphType != TEXT("macro")) diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintGraph_Delete.h b/Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintGraph_Delete.h index 5f532f7e..6398c891 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintGraph_Delete.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintGraph_Delete.h @@ -24,11 +24,11 @@ public: UPROPERTY(meta=(Description="Path to the graph, e.g. /Game/MyBP,graph:MyFunction")) FString Graph; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Delete a function or macro graph from a Blueprint."); + UWingServer::AddHandler(this, + TEXT("Delete a function or macro graph from a Blueprint.")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintInterface_Add.h b/Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintInterface_Add.h index 8f4fa435..397a8837 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintInterface_Add.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintInterface_Add.h @@ -27,11 +27,11 @@ public: UPROPERTY(meta=(Description="Native UInterface class name or Blueprint Interface package path")) FString Interface; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Add an interface to a blueprint"); + UWingServer::AddHandler(this, + TEXT("Add an interface to a blueprint")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintInterface_Remove.h b/Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintInterface_Remove.h index 62199b6d..434c13c9 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintInterface_Remove.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/BlueprintInterface_Remove.h @@ -30,12 +30,12 @@ public: UPROPERTY(meta=(Optional, Description="If true, keep the function graphs as regular functions")) bool PreserveFunctions = false; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Remove a Blueprint Interface implementation from a Blueprint. " - "Optionally preserve the function graphs as regular functions."); + UWingServer::AddHandler(this, + TEXT("Remove a Blueprint Interface implementation from a Blueprint. " + "Optionally preserve the function graphs as regular functions.")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Blueprint_Compile.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Blueprint_Compile.h index 832ae937..2ebb8ae1 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Blueprint_Compile.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Blueprint_Compile.h @@ -24,12 +24,12 @@ public: UPROPERTY(meta=(Description="Blueprint to compile")) FString Blueprint; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Compile a blueprint. " - "Reports compiler warnings and errors."); + UWingServer::AddHandler(this, + TEXT("Compile a blueprint. " + "Reports compiler warnings and errors.")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Blueprint_Create.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Blueprint_Create.h index 047ace8a..f194f73f 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Blueprint_Create.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Blueprint_Create.h @@ -32,11 +32,11 @@ public: UPROPERTY(meta=(Optional, Description="Normal, Interface, FunctionLibrary, or MacroLibrary")) TEnumAsByte BlueprintType = BPTYPE_Normal; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Create a new Blueprint asset with a specified parent class and type."); + UWingServer::AddHandler(this, + TEXT("Create a new Blueprint asset with a specified parent class and type.")); } - virtual void Handle() override { WingPackageMaker Maker(AssetPath); diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Blueprint_Dump.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Blueprint_Dump.h index 3077acf4..515289e4 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Blueprint_Dump.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Blueprint_Dump.h @@ -34,12 +34,12 @@ public: UPROPERTY(meta=(Description="Blueprint path")) FString Blueprint; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Dump a Blueprint's structure: variables, interfaces, components, " - "and graph names. Does not include graph contents (use Graph_Dump for that)."); + UWingServer::AddHandler(this, + TEXT("Dump a Blueprint's structure: variables, interfaces, components, " + "and graph names. Does not include graph contents (use Graph_Dump for that).")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Blueprint_Reparent.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Blueprint_Reparent.h index 706ab9ea..65d3b4e1 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Blueprint_Reparent.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Blueprint_Reparent.h @@ -28,11 +28,11 @@ public: UPROPERTY(meta=(Description="New parent class")) FString Parent; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Change a Blueprint's parent class."); + UWingServer::AddHandler(this, + TEXT("Change a Blueprint's parent class.")); } - virtual void Handle() override { // Load Blueprint diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Create_UsingFactory.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Create_UsingFactory.h index 267599df..654c83ee 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Create_UsingFactory.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Create_UsingFactory.h @@ -17,12 +17,7 @@ public: UPROPERTY(meta=(Description="Full asset path for the new asset (e.g. '/Game/MyFolder/MyAsset')")) FString AssetPath; - virtual FString GetDescription() const override - { - return TEXT("Create a new asset using a factory."); - } - - virtual void Register(UWingServer* Server) override + virtual void Register() override { TArray FactoryClasses; GetDerivedClasses(UFactory::StaticClass(), FactoryClasses); @@ -37,8 +32,10 @@ public: TArray ConfigProps = FWingProperty::GetNames(Class, CPF_Edit); if (ConfigProps.Num() > 0) continue; - FString CommandName = FString::Printf(TEXT("Create_%s"), *UWingFactories::DeriveFactoryName(Class)); - Server->AddHandler(CommandName, GetClass(), Class, EWingHandlerKind::Create); + FString FactoryName = UWingFactories::DeriveFactoryName(Class); + FString CommandName = FString::Printf(TEXT("Create_%s"), *FactoryName); + FString Doc = FString::Printf(TEXT("Create a new %s asset."), *FactoryName); + UWingServer::AddHandler(this, CommandName, Doc, Class, EWingHandlerKind::Create); } } diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Editor_ListOpenAssets.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Editor_ListOpenAssets.h index dc466708..33e5a5b3 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Editor_ListOpenAssets.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Editor_ListOpenAssets.h @@ -18,11 +18,11 @@ class UWing_Editor_ListOpenAssets : public UWingHandler GENERATED_BODY() public: - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("List all currently open asset editors, showing which has focus and whether they have unsaved changes."); + UWingServer::AddHandler(this, + TEXT("List all currently open asset editors, showing which has focus and whether they have unsaved changes.")); } - virtual void Handle() override { UAssetEditorSubsystem* Sub = GEditor->GetEditorSubsystem(); diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Editor_OpenAsset.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Editor_OpenAsset.h index f4cedeeb..e7386e12 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Editor_OpenAsset.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Editor_OpenAsset.h @@ -22,11 +22,11 @@ public: UPROPERTY(meta=(Description="Asset to open")) FString Asset; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Open an asset in its editor and bring it to focus."); + UWingServer::AddHandler(this, + TEXT("Open an asset in its editor and bring it to focus.")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/EventDispatcher_Create.h b/Plugins/UEWingman/Source/UEWingman/Handlers/EventDispatcher_Create.h index 88a4157b..bd313839 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/EventDispatcher_Create.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/EventDispatcher_Create.h @@ -30,11 +30,11 @@ public: UPROPERTY(meta=(Description="Input Variables, one per line, expressed as: type var = value")) FString InputVariables; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Add a new event dispatcher to a Blueprint."); + UWingServer::AddHandler(this, + TEXT("Add a new event dispatcher to a Blueprint.")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/EventDispatcher_Delete.h b/Plugins/UEWingman/Source/UEWingman/Handlers/EventDispatcher_Delete.h index 34a8fd87..e81b72c3 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/EventDispatcher_Delete.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/EventDispatcher_Delete.h @@ -26,11 +26,11 @@ public: UPROPERTY(meta=(Description="Name of the event dispatcher to delete")) FString Dispatcher; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Delete an event dispatcher from a Blueprint."); + UWingServer::AddHandler(this, + TEXT("Delete an event dispatcher from a Blueprint.")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_ChooseMenu.h b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_ChooseMenu.h index e15e0063..42259e53 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_ChooseMenu.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_ChooseMenu.h @@ -25,13 +25,13 @@ public: UPROPERTY(meta=(Description="Menu item as shown by GraphNode_ShowMenu")) FString Item; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Execute a context menu action on a node or pin. " + UWingServer::AddHandler(this, + TEXT("Execute a context menu action on a node or pin. " "Supports SplitStructPin, AddPin, AddArrayElementPin, etc. " - "Use GraphNode_ShowMenu to see available actions. "); + "Use GraphNode_ShowMenu to see available actions. ")); } - private: virtual void Handle() override { diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Create.h b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Create.h index 0d9ff283..6d98effb 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Create.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Create.h @@ -45,12 +45,12 @@ public: UPROPERTY(meta=(Description="Array of {Type, posX, posY} objects. Use GraphNode_SearchTypes to find types.")) FWingJsonArray Nodes; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Create nodes using the editor's action database. " - "Use GraphNode_SearchTypes to find types."); + UWingServer::AddHandler(this, + TEXT("Create nodes using the editor's action database. " + "Use GraphNode_SearchTypes to find types.")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Delete.h b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Delete.h index 13920202..574e24f0 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Delete.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Delete.h @@ -26,12 +26,12 @@ public: UPROPERTY(meta=(Description="Node to delete")) FString Node; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Delete a node from a graph. " - "Cannot delete undeletable nodes (entry points, root nodes, etc)."); + UWingServer::AddHandler(this, + TEXT("Delete a node from a graph. " + "Cannot delete undeletable nodes (entry points, root nodes, etc).")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Dump.h b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Dump.h index ca450df7..5c020ec1 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Dump.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Dump.h @@ -21,11 +21,11 @@ public: UPROPERTY(meta=(Description="Target node")) FString Node; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Dump a single node as readable text, including all pins and connections."); + UWingServer::AddHandler(this, + TEXT("Dump a single node as readable text, including all pins and connections.")); } - private: virtual void Handle() override { diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_GetComment.h b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_GetComment.h index 7bd3f621..84325100 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_GetComment.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_GetComment.h @@ -22,11 +22,11 @@ public: UPROPERTY(meta=(Description="Target node")) FString Node; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Get the comment text and bubble visibility of a node."); + UWingServer::AddHandler(this, + TEXT("Get the comment text and bubble visibility of a node.")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Rename.h b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Rename.h index 5cc8a7e2..af3bc836 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Rename.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_Rename.h @@ -25,12 +25,12 @@ public: UPROPERTY(meta=(Description="New name for the node")) FString Name; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Rename a graph node. Works on custom events, timelines, " - "composite nodes, comment nodes, and other renameable node types."); + UWingServer::AddHandler(this, + TEXT("Rename a graph node. Works on custom events, timelines, " + "composite nodes, comment nodes, and other renameable node types.")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_SearchTypes.h b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_SearchTypes.h index ec29e7ce..65aadce9 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_SearchTypes.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_SearchTypes.h @@ -30,13 +30,13 @@ public: UPROPERTY(meta=(Description="Target graph")) FString Graph; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Search the action database for node types that can be spawned in a graph. " + UWingServer::AddHandler(this, + TEXT("Search the action database for node types that can be spawned in a graph. " "Works with any graph type (Blueprint, Material, etc.). " - "Returns full action names for use with GraphNode_Create."); + "Returns full action names for use with GraphNode_Create.")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_SetComment.h b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_SetComment.h index c013e389..6a9aeab1 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_SetComment.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_SetComment.h @@ -25,12 +25,12 @@ public: UPROPERTY(meta=(Description="Comment text to set")) FString Comment; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Set a node's comment text, and make the comment visible. " - "Setting empty text will cause the comment to vanish."); + UWingServer::AddHandler(this, + TEXT("Set a node's comment text, and make the comment visible. " + "Setting empty text will cause the comment to vanish.")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_SetDefaults.h b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_SetDefaults.h index 35680e0a..5b84ffef 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_SetDefaults.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_SetDefaults.h @@ -44,11 +44,11 @@ public: UPROPERTY(meta=(Description="Array of {node, name, value} objects")) FWingJsonArray Pins; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Set the default value of input pins or material expression properties on nodes."); + UWingServer::AddHandler(this, + TEXT("Set the default value of input pins or material expression properties on nodes.")); } - // ----------------------------------------------------------------------- // K2 graphs: set pin default values. // ----------------------------------------------------------------------- diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_SetPositions.h b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_SetPositions.h index 20e5cbb7..e622a56c 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_SetPositions.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_SetPositions.h @@ -42,11 +42,11 @@ public: UPROPERTY(meta=(Description="Array of {node, x, y} objects")) FWingJsonArray Nodes; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Reposition one or more nodes in a Blueprint graph."); + UWingServer::AddHandler(this, + TEXT("Reposition one or more nodes in a Blueprint graph.")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_ShowMenu.h b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_ShowMenu.h index 88e8c012..67f0dacc 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_ShowMenu.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphNode_ShowMenu.h @@ -23,11 +23,11 @@ public: UPROPERTY(meta=(Description="Target node")) FString Node; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Show context menu actions available for a node and its pins."); + UWingServer::AddHandler(this, + TEXT("Show context menu actions available for a node and its pins.")); } - private: virtual void Handle() override { diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphPin_Connect.h b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphPin_Connect.h index d4291580..175a80fc 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphPin_Connect.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphPin_Connect.h @@ -42,11 +42,11 @@ public: UPROPERTY(meta=(Description="Array of {sourcePin, targetPin} objects")) FWingJsonArray Connections; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Connect pins between nodes in a graph (Blueprint or Material)."); + UWingServer::AddHandler(this, + TEXT("Connect pins between nodes in a graph (Blueprint or Material).")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphPin_Disconnect.h b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphPin_Disconnect.h index e7bf5999..1a890041 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/GraphPin_Disconnect.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/GraphPin_Disconnect.h @@ -41,12 +41,12 @@ public: UPROPERTY(meta=(Description="Array of {pin, targetPin?} objects. If targetPin is omitted, all connections on the pin are broken.")) FWingJsonArray Disconnections; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Disconnect pins in a graph (Blueprint or Material). " - "Can disconnect a specific link or all links on a pin."); + UWingServer::AddHandler(this, + TEXT("Disconnect pins in a graph (Blueprint or Material). " + "Can disconnect a specific link or all links on a pin.")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Graph_Dump.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Graph_Dump.h index 62e59ddb..a8914542 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Graph_Dump.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Graph_Dump.h @@ -29,11 +29,11 @@ public: UPROPERTY(meta=(Optional, Description="True to include less-significant details")) bool IncludeDetails; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Dump blueprint or material graphs as readable text. "); + UWingServer::AddHandler(this, + TEXT("Dump blueprint or material graphs as readable text. ")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/MaterialInstance_ClearParameter.h b/Plugins/UEWingman/Source/UEWingman/Handlers/MaterialInstance_ClearParameter.h index 48657a8a..c796547a 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/MaterialInstance_ClearParameter.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/MaterialInstance_ClearParameter.h @@ -33,11 +33,11 @@ public: UPROPERTY(meta=(Description="Layer/blend index (0-based). Only used when ParameterAssociation is 'Layer' or 'Blend'", Optional)) int32 ParameterLayer = INDEX_NONE; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Remove a parameter override from a Material Instance, reverting it to the parent material's value."); + UWingServer::AddHandler(this, + TEXT("Remove a parameter override from a Material Instance, reverting it to the parent material's value.")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/MaterialInstance_Create.h b/Plugins/UEWingman/Source/UEWingman/Handlers/MaterialInstance_Create.h index 40d6af74..aec4b5cc 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/MaterialInstance_Create.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/MaterialInstance_Create.h @@ -29,11 +29,11 @@ public: UPROPERTY(meta=(Description="Parent material package path (Material or Material Instance)")) FString ParentMaterial; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Create a new Material Instance Constant asset with a specified parent material."); + UWingServer::AddHandler(this, + TEXT("Create a new Material Instance Constant asset with a specified parent material.")); } - virtual void Handle() override { WingPackageMaker Maker(AssetPath); diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/MaterialInstance_DumpParameters.h b/Plugins/UEWingman/Source/UEWingman/Handlers/MaterialInstance_DumpParameters.h index 3570937f..1a2b092e 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/MaterialInstance_DumpParameters.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/MaterialInstance_DumpParameters.h @@ -24,11 +24,11 @@ public: UPROPERTY(meta=(Description="Target material instance")) FString MaterialInstance; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("List all parameters on a Material Instance, showing current values and which are overridden."); + UWingServer::AddHandler(this, + TEXT("List all parameters on a Material Instance, showing current values and which are overridden.")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/MaterialInstance_SetParameter.h b/Plugins/UEWingman/Source/UEWingman/Handlers/MaterialInstance_SetParameter.h index 0e7d8263..fde67bf7 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/MaterialInstance_SetParameter.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/MaterialInstance_SetParameter.h @@ -37,11 +37,11 @@ public: UPROPERTY(meta=(Description="Value to set (uses Unreal text format, e.g. '0.5' for scalar, '(R=1,G=0,B=0,A=1)' for vector)")) FString Value; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Set a parameter override on a Material Instance."); + UWingServer::AddHandler(this, + TEXT("Set a parameter override on a Material Instance.")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Material_Compile.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Material_Compile.h index 8874cd4b..7a5bbba0 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Material_Compile.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Material_Compile.h @@ -22,11 +22,11 @@ public: UPROPERTY(meta=(Description="Material name or package path")) FString Material; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Force recompile a material and check for compilation errors."); + UWingServer::AddHandler(this, + TEXT("Force recompile a material and check for compilation errors.")); } - virtual void Handle() override { // Load material diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Material_Create.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Material_Create.h index 79808ae5..3b399964 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Material_Create.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Material_Create.h @@ -24,11 +24,11 @@ public: UPROPERTY(meta=(Description="Full asset path for the new material")) FString Material; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Create a new UMaterial asset"); + UWingServer::AddHandler(this, + TEXT("Create a new UMaterial asset")); } - virtual void Handle() override { WingPackageMaker Maker(Material); diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Material_DumpParameters.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Material_DumpParameters.h index 1ff6d299..92a56f52 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Material_DumpParameters.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Material_DumpParameters.h @@ -23,11 +23,11 @@ public: UPROPERTY(meta=(Description="Material path")) FString Material; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("List all parameters on a Material, showing their default values."); + UWingServer::AddHandler(this, + TEXT("List all parameters on a Material, showing their default values.")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Property_Dump.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Property_Dump.h index 5371e445..379455ca 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Property_Dump.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Property_Dump.h @@ -29,11 +29,11 @@ public: UPROPERTY(meta=(Optional, Description="Only show properties declared on the object's own class, not inherited ones")) bool Local = false; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("List all blueprint-visible properties, showing current values and which are editable."); + UWingServer::AddHandler(this, + TEXT("List all blueprint-visible properties, showing current values and which are editable.")); } - virtual void Handle() override { // Resolve the path to an object and get its editable template. diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Property_Get.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Property_Get.h index c89e751e..d18a4f6f 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Property_Get.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Property_Get.h @@ -25,11 +25,11 @@ public: UPROPERTY(meta=(Description="Property name")) FString Property; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Get the value of a single property."); + UWingServer::AddHandler(this, + TEXT("Get the value of a single property.")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Property_Set.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Property_Set.h index b22e6c98..8010798a 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Property_Set.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Property_Set.h @@ -25,11 +25,11 @@ public: UPROPERTY(meta=(Description="Object mapping property names to new values in Unreal text format")) FWingJsonObject Properties; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Set one or more editable properties. Values use Unreal text format."); + UWingServer::AddHandler(this, + TEXT("Set one or more editable properties. Values use Unreal text format.")); } - virtual void Handle() override { // Resolve the path to an object and get its editable template. diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/ShowCommands.h b/Plugins/UEWingman/Source/UEWingman/Handlers/ShowCommands.h index d172052b..4530f175 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/ShowCommands.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/ShowCommands.h @@ -24,11 +24,11 @@ public: UPROPERTY(meta=(Optional, Description="Kind of command: Normal, or Create")) EWingHandlerKind Kind = EWingHandlerKind::Normal; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("List all available commands with their descriptions."); + UWingServer::AddHandler(this, + TEXT("List all available commands with their descriptions.")); } - virtual void Handle() override { FString QueryLower = Query.ToLower(); @@ -64,8 +64,7 @@ public: { UWingServer::Printf(TEXT( "\n" - "You can also use ShowCommands with Kind=Create to see\n" - "commands that create new assets.\n" + "You can also use ShowCommands with Kind=Create to see commands that create new assets.\n" "\n")); } } diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/SysInfo_Factories.h b/Plugins/UEWingman/Source/UEWingman/Handlers/SysInfo_Factories.h index d882aafc..7a39c490 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/SysInfo_Factories.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/SysInfo_Factories.h @@ -17,13 +17,13 @@ class UWing_SysInfo_Factories : public UWingHandler GENERATED_BODY() public: - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Sysinfo commands are intended for the human who " + UWingServer::AddHandler(this, + TEXT("Sysinfo commands are intended for the human who " "is developing this plugin, they help him to understand. " - "unreal's internals better."); + "unreal's internals better.")); } - virtual void Handle() override { const TArray& All = UWingFactories::AllFactories(); diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Test_Sanitizer.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Test_Sanitizer.h index d9efe129..9c10798c 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Test_Sanitizer.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Test_Sanitizer.h @@ -20,11 +20,11 @@ public: UPROPERTY(meta=(Description="The string to sanitize")) FString Input; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Test the sanitizer by sanitizing a string and printing the result."); + UWingServer::AddHandler(this, + TEXT("Test the sanitizer by sanitizing a string and printing the result.")); } - virtual void Handle() override { UWingServer::Printf(TEXT("%s\n"), *WingTokenizer::ExternalizeID(FName(Input))); diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Test_Tokenizer.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Test_Tokenizer.h index f2a35eb9..933d349c 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Test_Tokenizer.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Test_Tokenizer.h @@ -20,11 +20,11 @@ public: UPROPERTY(meta=(Description="The string to tokenize")) FString Input; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Test the tokenizer by tokenizing a string and printing the result."); + UWingServer::AddHandler(this, + TEXT("Test the tokenizer by tokenizing a string and printing the result.")); } - virtual void Handle() override { WingTokenizer T(Input); diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Test_TypeToText.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Test_TypeToText.h index 2e5d7394..bbf9354e 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Test_TypeToText.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Test_TypeToText.h @@ -20,11 +20,11 @@ public: UPROPERTY(meta=(Description="The type name to parse, e.g. 'Array'")) FString Input; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Test the type parser by parsing a type name and dumping the resulting FEdGraphPinType."); + UWingServer::AddHandler(this, + TEXT("Test the type parser by parsing a type name and dumping the resulting FEdGraphPinType.")); } - virtual void Handle() override { FEdGraphPinType PinType; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Test_Unsanitize.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Test_Unsanitize.h index f2c59550..920564fe 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Test_Unsanitize.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Test_Unsanitize.h @@ -20,11 +20,11 @@ public: UPROPERTY(meta=(Description="The sanitized identifier to unsanitize")) FString Input; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Test the unsanitizer by unsanitizing a string and printing the result."); + UWingServer::AddHandler(this, + TEXT("Test the unsanitizer by unsanitizing a string and printing the result.")); } - virtual void Handle() override { FString Error; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/TypeName_Search.h b/Plugins/UEWingman/Source/UEWingman/Handlers/TypeName_Search.h index 0da6945d..b1270429 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/TypeName_Search.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/TypeName_Search.h @@ -32,12 +32,12 @@ public: UPROPERTY(meta=(Optional, Description="If true, include all types, not just BlueprintType/Blueprintable ones")) bool Exhaustive = false; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Search for type names usable in pin type specifications. " - "Returns short names that can be used with commands like Blueprint_ChangeVariableType."); + UWingServer::AddHandler(this, + TEXT("Search for type names usable in pin type specifications. " + "Returns short names that can be used with commands like Blueprint_ChangeVariableType.")); } - static bool IsProjectDefined(const UWingTypes::Info& Info) { return Info.IsUserDefined && Info.PinSubCategoryObject.StartsWith(TEXT("/Game/")); diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/UserManual.h b/Plugins/UEWingman/Source/UEWingman/Handlers/UserManual.h index fdb4c764..02371d84 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/UserManual.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/UserManual.h @@ -11,11 +11,11 @@ class UWing_UserManual : public UWingHandler GENERATED_BODY() public: - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Print the user manual."); + UWingServer::AddHandler(this, + TEXT("Print the user manual.")); } - virtual void Handle() override { WingManual::PrintManual({WingManual::Section::All}, nullptr, false); diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Variables_Create.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Variables_Create.h index 44c06f01..f8092f4b 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Variables_Create.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Variables_Create.h @@ -33,11 +33,11 @@ public: UPROPERTY(meta=(Optional, Description="Local variables, one per line")) FString LocalVariables; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Add new variables. Format: 'type name (flags) = default', one per line."); + UWingServer::AddHandler(this, + TEXT("Add new variables. Format: 'type name (flags) = default', one per line.")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Variables_Dump.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Variables_Dump.h index 92194c8c..33e46cff 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Variables_Dump.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Variables_Dump.h @@ -21,12 +21,12 @@ public: UPROPERTY(meta=(Description="Path to a blueprint, graph, or custom event node")) FString Object; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("List all variables of a blueprint, function graph," - "macro graph, event dispatcher graph, or custom event node"); + UWingServer::AddHandler(this, + TEXT("List all variables of a blueprint, function graph," + "macro graph, event dispatcher graph, or custom event node")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Variables_Modify.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Variables_Modify.h index e9a18a01..47faba4f 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Variables_Modify.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Variables_Modify.h @@ -33,12 +33,12 @@ public: UPROPERTY(meta=(Optional, Description="Local variables, one per line")) FString LocalVariables; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Modify variables of a blueprint, function graph, " - "macro graph, event dispatcher graph, or custom event node. "); + UWingServer::AddHandler(this, + TEXT("Modify variables of a blueprint, function graph, " + "macro graph, event dispatcher graph, or custom event node. ")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Variables_Remove.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Variables_Remove.h index e2acd0ba..fa307603 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Variables_Remove.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Variables_Remove.h @@ -33,11 +33,11 @@ public: UPROPERTY(meta=(Optional, Description="Local variable names to remove, comma-separated")) FString LocalVariables; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Remove variables from a blueprint, graph, or custom event node."); + UWingServer::AddHandler(this, + TEXT("Remove variables from a blueprint, graph, or custom event node.")); } - virtual void Handle() override { WingFetcher F; diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_Create.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_Create.h index b144cf54..968f8cf4 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_Create.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_Create.h @@ -39,12 +39,12 @@ public: UPROPERTY(meta=(Optional, Description="Whether to expose the widget as a variable in the blueprint (default false)")) bool IsVariable = false; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Add a widget to a Widget Blueprint's widget tree. " - "Use Widget_SearchTypes to find available widget types."); + UWingServer::AddHandler(this, + TEXT("Add a widget to a Widget Blueprint's widget tree. " + "Use Widget_SearchTypes to find available widget types.")); } - virtual void Handle() override { // Fetch the widget blueprint. diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_Delete.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_Delete.h index 7ed17682..b9e44f57 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_Delete.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_Delete.h @@ -25,12 +25,12 @@ public: UPROPERTY(meta=(Description="Path to the widget, eg /Game/Widgets/WB_Test,widget:MyButton")) FString Widget; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Delete a widget from a Widget Blueprint's widget tree. " - "The widget must not have any children."); + UWingServer::AddHandler(this, + TEXT("Delete a widget from a Widget Blueprint's widget tree. " + "The widget must not have any children.")); } - virtual void Handle() override { // Walk to the widget. diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_Reparent.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_Reparent.h index 2e835b4a..c1244c4d 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_Reparent.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_Reparent.h @@ -28,11 +28,11 @@ public: UPROPERTY(meta=(Description="Name of the new parent widget. Must be a panel.")) FString Parent; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Move a widget to a different parent in a Widget Blueprint's widget tree."); + UWingServer::AddHandler(this, + TEXT("Move a widget to a different parent in a Widget Blueprint's widget tree.")); } - virtual void Handle() override { // Walk to the widget. diff --git a/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_SearchTypes.h b/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_SearchTypes.h index 3899faac..eec15944 100644 --- a/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_SearchTypes.h +++ b/Plugins/UEWingman/Source/UEWingman/Handlers/Widget_SearchTypes.h @@ -23,12 +23,12 @@ public: UPROPERTY(meta=(Optional, Description="Maximum number of results (default 50)")) int32 MaxResults = 50; - virtual FString GetDescription() const override + virtual void Register() override { - return TEXT("Search for widget types that can be added to a Widget Blueprint. " - "Returns names for use with Widget_Create."); + UWingServer::AddHandler(this, + TEXT("Search for widget types that can be added to a Widget Blueprint. " + "Returns names for use with Widget_Create.")); } - virtual void Handle() override { WingWidgets Widgets; diff --git a/Plugins/UEWingman/Source/UEWingman/Private/WingManual.cpp b/Plugins/UEWingman/Source/UEWingman/Private/WingManual.cpp index 98660311..bfdd7b70 100644 --- a/Plugins/UEWingman/Source/UEWingman/Private/WingManual.cpp +++ b/Plugins/UEWingman/Source/UEWingman/Private/WingManual.cpp @@ -44,9 +44,8 @@ void WingManual::PrintHandlerArguments(const FWingHandlerConfig& Handler) void WingManual::PrintHandlerDescription(const FWingHandlerConfig& Handler) { - const UWingHandler* HandlerCDO = Cast(Handler.Class->GetDefaultObject()); - if (!HandlerCDO) return; - UWingServer::Print(WingUtils::WrapText(HandlerCDO->GetDescription(), 80, TEXT(" // "))); + if (Handler.Documentation.IsEmpty()) return; + UWingServer::Print(WingUtils::WrapText(Handler.Documentation, 80, TEXT(" // "))); } void WingManual::PrintHandlerHelp(const FWingHandlerConfig& Handler) diff --git a/Plugins/UEWingman/Source/UEWingman/Private/WingServer.cpp b/Plugins/UEWingman/Source/UEWingman/Private/WingServer.cpp index a4505b96..41dbf174 100644 --- a/Plugins/UEWingman/Source/UEWingman/Private/WingServer.cpp +++ b/Plugins/UEWingman/Source/UEWingman/Private/WingServer.cpp @@ -452,21 +452,21 @@ void UWingServer::ClientThreadFunc(UWingServer* Server, TSharedPtrAddHandler(WingUtils::GetHandlerName(Class), Class, nullptr, EWingHandlerKind::Normal); + AddHandler(Obj, WingUtils::GetHandlerName(Obj->GetClass()), Documentation, nullptr, EWingHandlerKind::Normal); } -void UWingServer::AddHandler(const FString& Name, UClass* Class, UObject* Config, EWingHandlerKind Kind) +void UWingServer::AddHandler(UObject* Obj, const FString& Name, const FString& Documentation, UObject* Config, EWingHandlerKind Kind) { FWingHandlerConfig H; H.Name = Name; - H.Class = TStrongObjectPtr(Class); + H.Documentation = Documentation; + H.Class = TStrongObjectPtr(Obj->GetClass()); H.Config = TStrongObjectPtr(Config); H.Kind = Kind; - WingHandlerRegistry.Add(MoveTemp(H)); + GWingServer->WingHandlerRegistry.Add(MoveTemp(H)); } void UWingServer::BuildWingHandlerRegistry() @@ -474,7 +474,7 @@ void UWingServer::BuildWingHandlerRegistry() for (UClass* Class : WingUtils::CollectHandlerClasses()) { UWingHandler* CDO = Cast(Class->GetDefaultObject()); - CDO->Register(this); + CDO->Register(); } WingHandlerRegistry.Sort([](const FWingHandlerConfig& A, const FWingHandlerConfig& B) { return A.Name < B.Name; }); } diff --git a/Plugins/UEWingman/Source/UEWingman/Public/WingHandler.h b/Plugins/UEWingman/Source/UEWingman/Public/WingHandler.h index feaf5170..2f9df4ac 100644 --- a/Plugins/UEWingman/Source/UEWingman/Public/WingHandler.h +++ b/Plugins/UEWingman/Source/UEWingman/Public/WingHandler.h @@ -24,8 +24,6 @@ struct FWingJsonArray TArray> Array; }; -class UWingServer; - UENUM() enum class EWingHandlerKind { @@ -38,6 +36,7 @@ struct FWingHandlerConfig { GENERATED_BODY() FString Name; + FString Documentation; TStrongObjectPtr Class; TStrongObjectPtr Config; EWingHandlerKind Kind = EWingHandlerKind::Normal; @@ -49,11 +48,8 @@ class UEWINGMAN_API UWingHandler : public UObject GENERATED_BODY() public: - // Human-readable tool description for MCP tools/list. - virtual FString GetDescription() const PURE_VIRTUAL(UWingHandler::GetDescription, return FString();); - // Register this handler's commands with the server. - virtual void Register(UWingServer* Server); + virtual void Register() PURE_VIRTUAL(UWingHandler::Register); // Called after parameter fields have been populated from JSON. virtual void Handle() {} diff --git a/Plugins/UEWingman/Source/UEWingman/Public/WingServer.h b/Plugins/UEWingman/Source/UEWingman/Public/WingServer.h index cdc1a6a8..155ceaca 100644 --- a/Plugins/UEWingman/Source/UEWingman/Public/WingServer.h +++ b/Plugins/UEWingman/Source/UEWingman/Public/WingServer.h @@ -74,7 +74,8 @@ public: int32 GetPort() const { return Port; } // ----- Tool dispatch ----- - void AddHandler(const FString& Name, UClass* Class, UObject* Config, EWingHandlerKind Kind); + static void AddHandler(UObject* Obj, const FString& Documentation); + static void AddHandler(UObject* Obj, const FString& Name, const FString& Documentation, UObject* Config, EWingHandlerKind Kind); static const TArray& AllHandlers() { return GWingServer->WingHandlerRegistry; } private: