diff options
Diffstat (limited to 'src/actions')
-rw-r--r-- | src/actions/commands.cpp | 26 | ||||
-rw-r--r-- | src/actions/commands.h | 1 |
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 |