summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/actions/chat.cpp26
-rw-r--r--src/actions/chat.h1
-rw-r--r--src/input/inputaction.h1
-rw-r--r--src/input/inputactionmap.h9
4 files changed, 37 insertions, 0 deletions
diff --git a/src/actions/chat.cpp b/src/actions/chat.cpp
index 142f9000e..2c7d84f91 100644
--- a/src/actions/chat.cpp
+++ b/src/actions/chat.cpp
@@ -340,6 +340,32 @@ impHandler(party)
return true;
}
+impHandler(guild)
+{
+ if (!event.tab || !localPlayer)
+ return false;
+
+ const std::string args = event.args;
+ if (!args.empty())
+ {
+ const Guild *const guild = localPlayer->getGuild();
+ if (guild)
+ {
+ if (guild->getServerGuild())
+ guildHandler->invite(guild->getId(), args);
+ else if (guildManager)
+ guildManager->invite(args);
+ }
+ }
+ else
+ {
+ // TRANSLATORS: guild invite message
+ event.tab->chatLog(_("Please specify a name."),
+ ChatMsgType::BY_SERVER);
+ }
+ return true;
+}
+
impHandler(me)
{
outString(event.tab, textToMe(event.args), event.args);
diff --git a/src/actions/chat.h b/src/actions/chat.h
index 321357553..459ee675d 100644
--- a/src/actions/chat.h
+++ b/src/actions/chat.h
@@ -42,6 +42,7 @@ namespace Actions
decHandler(createParty);
decHandler(createGuild);
decHandler(party);
+ decHandler(guild);
decHandler(me);
decHandler(toggle);
} // namespace Actions
diff --git a/src/input/inputaction.h b/src/input/inputaction.h
index b3b95a8f7..5b9288950 100644
--- a/src/input/inputaction.h
+++ b/src/input/inputaction.h
@@ -493,6 +493,7 @@ namespace InputAction
BUY,
SELL,
WHISPER2,
+ GUILD,
TOTAL
};
} // namespace InputAction
diff --git a/src/input/inputactionmap.h b/src/input/inputactionmap.h
index 8e14f911c..292fdc1c1 100644
--- a/src/input/inputactionmap.h
+++ b/src/input/inputactionmap.h
@@ -4180,6 +4180,15 @@ static const InputActionData inputActionData[InputAction::TOTAL] = {
InputCondition::INGAME,
"w2|whisper2|msg2",
true},
+ {"keyGuild",
+ InputType::UNKNOWN, InputAction::NO_VALUE,
+ InputType::UNKNOWN, InputAction::NO_VALUE,
+ Input::GRP_DEFAULT,
+ &Actions::guild,
+ InputAction::NO_VALUE, 50,
+ InputCondition::INGAME,
+ "guild",
+ true},
};
#endif // INPUT_INPUTACTIONMAP_H