DisplayMessageCommand.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using JetBrains.Annotations;
  2. using LLM.Editor.Data;
  3. using LLM.Editor.Helper;
  4. using UnityEngine;
  5. namespace LLM.Editor.Commands
  6. {
  7. // Parameters for this command
  8. [System.Serializable]
  9. public class DisplayMessageParams
  10. {
  11. public CommandOutcome outcome;
  12. public string message;
  13. }
  14. [UsedImplicitly]
  15. public class DisplayMessageCommand : ICommand
  16. {
  17. private readonly DisplayMessageParams _params;
  18. public DisplayMessageCommand(string jsonParams)
  19. {
  20. _params = jsonParams?.FromJson<DisplayMessageParams>();
  21. }
  22. public DisplayMessageCommand(DisplayMessageParams param)
  23. {
  24. _params = param;
  25. }
  26. public CommandOutcome Execute(CommandContext context)
  27. {
  28. if (_params == null || string.IsNullOrEmpty(_params.message))
  29. {
  30. Debug.LogError("[DisplayMessageCommand] Parameters are invalid or message is empty.");
  31. return CommandOutcome.Error;
  32. }
  33. if (_params.outcome == CommandOutcome.Success)
  34. {
  35. Debug.Log($"<color=green>[MCP]: {_params.message}</color>");
  36. }
  37. else
  38. {
  39. Debug.LogError($"<color=red>[MCP]: {_params.message}</color>");
  40. }
  41. return CommandOutcome.Success;
  42. }
  43. }
  44. }