summaryrefslogtreecommitdiff
path: root/src/actions
diff options
context:
space:
mode:
Diffstat (limited to 'src/actions')
-rw-r--r--src/actions/commands.cpp26
-rw-r--r--src/actions/commands.h1
2 files changed, 27 insertions, 0 deletions
diff --git a/src/actions/commands.cpp b/src/actions/commands.cpp
index e32aee7a3..5038d9f57 100644
--- a/src/actions/commands.cpp
+++ b/src/actions/commands.cpp
@@ -21,6 +21,7 @@
#include "actions/commands.h"
#include "actormanager.h"
+#include "configuration.h"
#include "dropshortcut.h"
#include "emoteshortcut.h"
#include "game.h"
@@ -368,4 +369,29 @@ impHandler(pseudoAway)
return false;
}
+impHandler(follow)
+{
+ if (!localPlayer)
+ return false;
+
+ if (!features.getBoolValue("allowFollow"))
+ return false;
+
+ if (!event.args.empty())
+ {
+ localPlayer->setFollow(event.args);
+ }
+ else if (event.tab && event.tab->getType() == ChatTabType::WHISPER)
+ {
+ localPlayer->setFollow(static_cast<WhisperTab*>(event.tab)->getNick());
+ }
+ else
+ {
+ const Being *const being = localPlayer->getTarget();
+ if (being != nullptr)
+ localPlayer->setFollow(being->getName());
+ }
+ return true;
+}
+
} // namespace Actions
diff --git a/src/actions/commands.h b/src/actions/commands.h
index 8f6813210..7034d0638 100644
--- a/src/actions/commands.h
+++ b/src/actions/commands.h
@@ -45,6 +45,7 @@ namespace Actions
decHandler(commandEmotePet);
decHandler(awayMessage);
decHandler(pseudoAway);
+ decHandler(follow);
} // namespace Actions
#undef decHandler