summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiftob/MUCs.cpp')
-rw-r--r--Swiftob/MUCs.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/Swiftob/MUCs.cpp b/Swiftob/MUCs.cpp
index 695cbd9..aec821a 100644
--- a/Swiftob/MUCs.cpp
+++ b/Swiftob/MUCs.cpp
@@ -18,5 +18,8 @@
#include <Swiftob/Storage.h>
+using namespace Swift;
+
#define MUC_LIST_SETTING "muc_list"
+#define NICK "default_nick"
typedef std::pair<JID, MUC::ref> JIDMUCPair;
@@ -25,4 +28,8 @@ MUCs::MUCs(Client* client, Storage* storage) : defaultNick_("Kanchil+") {
client_ = client;
storage_ = storage;
+ std::string storedNick = storage_->getSetting(NICK);
+ if (!storedNick.empty()) {
+ defaultNick_ = storedNick;
+ }
client_->onConnected.connect(boost::bind(&MUCs::handleConnected, this));
}
@@ -119,2 +126,12 @@ MUC::ref MUCs::getMUC(const JID& room) {
return (mucs_.find(room) != mucs_.end()) ? mucs_[room] : MUC::ref();
}
+
+bool MUCs::setDefaultNick(const std::string& nick) {
+ JID testJID("alice", "wonderland.lit", nick);
+ if (testJID.isValid()) {
+ defaultNick_ = testJID.getResource();
+ storage_->saveSetting(NICK, defaultNick_);
+ return true;
+ }
+ return false;
+}