about summary refs log tree commit diff stats
path: root/src/command
diff options
context:
space:
mode:
Diffstat (limited to 'src/command')
-rw-r--r--src/command/cmd_ac.c2
-rw-r--r--src/command/cmd_defs.c2
-rw-r--r--src/command/cmd_funcs.c10
3 files changed, 13 insertions, 1 deletions
diff --git a/src/command/cmd_ac.c b/src/command/cmd_ac.c
index 531d189b..d8121d65 100644
--- a/src/command/cmd_ac.c
+++ b/src/command/cmd_ac.c
@@ -1079,6 +1079,8 @@ cmd_ac_init(void)
     mood_ac = autocomplete_new();
     autocomplete_add(mood_ac, "set");
     autocomplete_add(mood_ac, "clear");
+    autocomplete_add(mood_ac, "on");
+    autocomplete_add(mood_ac, "off");
     mood_type_ac = autocomplete_new();
     autocomplete_add(mood_type_ac, "afraid");
     autocomplete_add(mood_type_ac, "amazed");
diff --git a/src/command/cmd_defs.c b/src/command/cmd_defs.c
index 411de396..8c9767d4 100644
--- a/src/command/cmd_defs.c
+++ b/src/command/cmd_defs.c
@@ -2720,11 +2720,13 @@ static struct cmd_t command_defs[] = {
       CMD_TAGS(
               CMD_TAG_CHAT)
       CMD_SYN(
+              "/mood on|off",
               "/mood set <mood> [text]",
               "/mood clear")
       CMD_DESC(
               "Set your mood (XEP-0107).")
       CMD_ARGS(
+              { "on|off", "Enable or disable displaying the mood of other users. On by default."},
               { "set <mood> [text]", "Set user mood to <mood> with an optional [text]. Use /mood set <tab> to toggle through predfined moods." },
               { "clear", "Clear your user mood." })
       CMD_EXAMPLES(
diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c
index bd025886..bfe65d6a 100644
--- a/src/command/cmd_funcs.c
+++ b/src/command/cmd_funcs.c
@@ -90,6 +90,7 @@
 #include "xmpp/muc.h"
 #include "xmpp/chat_session.h"
 #include "xmpp/avatar.h"
+#include "xmpp/stanza.h"
 
 #ifdef HAVE_LIBOTR
 #include "otr/otr.h"
@@ -9769,7 +9770,13 @@ cmd_register(ProfWin* window, const char* const command, gchar** args)
 gboolean
 cmd_mood(ProfWin* window, const char* const command, gchar** args)
 {
-    if (g_strcmp0(args[0], "set") == 0) {
+    if (g_strcmp0(args[0], "on") == 0) {
+        _cmd_set_boolean_preference(args[0], command, "User mood", PREF_MOOD);
+        caps_add_feature(STANZA_NS_MOOD_NOTIFY);
+    }  else if (g_strcmp0(args[0], "off") == 0) {
+        _cmd_set_boolean_preference(args[0], command, "User mood", PREF_MOOD);
+        caps_remove_feature(STANZA_NS_MOOD_NOTIFY);
+    } else if (g_strcmp0(args[0], "set") == 0) {
         if (args[1]) {
             cons_show("Your mood: %s", args[1]);
             if (args[2]) {
@@ -9782,5 +9789,6 @@ cmd_mood(ProfWin* window, const char* const command, gchar** args)
         cons_show("Clearing the user mood.");
         publish_user_mood(NULL, NULL);
     }
+
     return TRUE;
 }