ChatCommand.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #pragma once
  2. #include <ReferenceCounter.h>
  3. #include <Text.h>
  4. #include "Entity.h"
  5. class ChatCommandParameter;
  6. class ChatCommand : public virtual Framework::ReferenceCounter
  7. {
  8. private:
  9. Framework::Text name;
  10. Framework::Text description;
  11. int securityLevel;
  12. Framework::RCArray<ChatCommandParameter> params;
  13. protected:
  14. void addParam(ChatCommandParameter* param);
  15. public:
  16. ChatCommand(
  17. Framework::Text name, Framework::Text description, int securityLevel);
  18. virtual void execute(
  19. Framework::RCArray<Framework::Text> params, Entity* zActor) const = 0;
  20. const Framework::RCArray<ChatCommandParameter>& getParams() const;
  21. Framework::Text getName() const;
  22. Framework::Text getHelp() const;
  23. int getSecurityLevel() const;
  24. };
  25. class ChatCommandParameter : public virtual Framework::ReferenceCounter
  26. {
  27. private:
  28. Framework::Text name;
  29. Framework::Text description;
  30. bool optional;
  31. public:
  32. ChatCommandParameter(
  33. Framework::Text name, Framework::Text description, bool optional);
  34. virtual bool isLegalValue(Framework::Text value) const;
  35. virtual Framework::Text getDefaultValue(Entity* zActor) const;
  36. Framework::Text getName() const;
  37. Framework::Text getDescription() const;
  38. bool isOptional() const;
  39. };