comparison src/server.c @ 4767:f6d83e81d45a

[gaim-migrate @ 5085] This brings back: - Sounds - "SeanEgn logged in." messages - Plugin and perl events - Raise Buddy list on events - I think that's all. committer: Tailor Script <tailor@pidgin.im>
author Sean Egan <seanegan@gmail.com>
date Fri, 14 Mar 2003 08:10:17 +0000
parents a979ce8ec806
children c4c28874ecd3
comparison
equal deleted inserted replaced
4766:03aa36cb4e38 4767:f6d83e81d45a
33 #include <errno.h> 33 #include <errno.h>
34 #include "gtkimhtml.h" 34 #include "gtkimhtml.h"
35 #include "prpl.h" 35 #include "prpl.h"
36 #include "multi.h" 36 #include "multi.h"
37 #include "gaim.h" 37 #include "gaim.h"
38 #include "sound.h"
38 39
39 #include "pixmaps/cancel.xpm" 40 #include "pixmaps/cancel.xpm"
40 #include "pixmaps/tb_search.xpm" 41 #include "pixmaps/tb_search.xpm"
41 42
42 #include "pounce.h" 43 #include "pounce.h"
897 system_log(log_away, gc, b, OPT_LOG_BUDDY_AWAY); 898 system_log(log_away, gc, b, OPT_LOG_BUDDY_AWAY);
898 } 899 }
899 900
900 gaim_blist_update_buddy_status(b, type); 901 gaim_blist_update_buddy_status(b, type);
901 902
902 gaim_blist_update_buddy_presence(b, loggedin);
903 903
904 if (loggedin) { 904 if (loggedin) {
905 if (!b->present) { 905 if (!b->present == 1) {
906 //b->present = 1; 906 struct gaim_conversation *c = gaim_find_conversation(b->name);
907 if (c) {
908 char *tmp = g_strdup_printf(_("%s logged in."), gaim_get_buddy_alias(b));
909 gaim_conversation_write(c, NULL, tmp, -1,
910 WFLAG_SYSTEM, time(NULL));
911 g_free(tmp);
912 } else if (awayqueue && find_queue_total_by_name(b->name)) {
913 struct queued_message *qm = g_new0(struct queued_message, 1);
914 g_snprintf(qm->name, sizeof(qm->name), "%s", b->name);
915 qm->message = g_strdup_printf(_("%s logged in."),
916 gaim_get_buddy_alias(b));
917 qm->account = gc->account;
918 qm->tm = time(NULL);
919 qm->flags = WFLAG_SYSTEM;
920 qm->len = -1;
921 message_queue = g_slist_append(message_queue, qm);
922 }
923 gaim_sound_play_event(GAIM_SOUND_BUDDY_ARRIVE);
907 do_pounce(gc, b->name, OPT_POUNCE_SIGNON); 924 do_pounce(gc, b->name, OPT_POUNCE_SIGNON);
908 plugin_event(event_buddy_signon, gc, b->name); 925 plugin_event(event_buddy_signon, gc, b->name);
909 system_log(log_signon, gc, b, OPT_LOG_BUDDY_SIGNON); 926 system_log(log_signon, gc, b, OPT_LOG_BUDDY_SIGNON);
910 } 927 }
911 } else { 928 } else {
912 if (b->present) { 929 if (b->present == 1) {
930 struct gaim_conversation *c = gaim_find_conversation(b->name);
931 if (c) {
932 char *tmp = g_strdup_printf(_("%s logged out."), gaim_get_buddy_alias(b));
933 gaim_conversation_write(c, NULL, tmp, -1,
934 WFLAG_SYSTEM, time(NULL));
935 g_free(tmp);
936 } else if (awayqueue && find_queue_total_by_name(b->name)) {
937 struct queued_message *qm = g_new0(struct queued_message, 1);
938 g_snprintf(qm->name, sizeof(qm->name), "%s", b->name);
939 qm->message = g_strdup_printf(_("%s logged out."),
940 gaim_get_buddy_alias(b));
941 qm->account = gc->account;
942 qm->tm = time(NULL);
943 qm->flags = WFLAG_SYSTEM;
944 qm->len = -1;
945 message_queue = g_slist_append(message_queue, qm);
946 }
947 gaim_sound_play_event(GAIM_SOUND_BUDDY_LEAVE);
913 plugin_event(event_buddy_signoff, gc, b->name); 948 plugin_event(event_buddy_signoff, gc, b->name);
914 system_log(log_signoff, gc, b, OPT_LOG_BUDDY_SIGNON); 949 system_log(log_signoff, gc, b, OPT_LOG_BUDDY_SIGNON);
915 } 950 }
916 b->present = 0; 951 }
917 } 952
953 gaim_blist_update_buddy_presence(b, loggedin);
954
918 } 955 }
919 956
920 957
921 void serv_got_eviled(struct gaim_connection *gc, char *name, int lev) 958 void serv_got_eviled(struct gaim_connection *gc, char *name, int lev)
922 { 959 {