Browse Source

Switch channel away/back to new formatters.

pull/477/head
Greg Holmes 9 years ago
parent
commit
21c3cf3630
2 changed files with 13 additions and 21 deletions
  1. 6
    4
      res/com/dmdirc/ui/messages/format.yml
  2. 7
    17
      src/com/dmdirc/ChannelEventHandler.java

+ 6
- 4
res/com/dmdirc/ui/messages/format.yml View File

@@ -92,6 +92,12 @@ ChannelKickEvent:
92 92
              * {{client.modePrefixedNickname}} has kicked {{victim.modePrefixedNickname}} from
93 93
              {{channel.name}}{{reason|bracketed}}.
94 94
   colour: 3
95
+ChannelUserAwayEvent:
96
+  format: "-- {{user.modePrefixedNickname}} is now away."
97
+  colour: 14
98
+channelUserBackEvent:
99
+  format: "-- {{user.modePrefixedNickname}} is now back."
100
+  colour: 14
95 101
 
96 102
 ################## Query events ####################################################################
97 103
 
@@ -115,10 +121,6 @@ CommandOutputEvent:
115 121
   format: "{{message}}"
116 122
 
117 123
 ################## TODO ############################################################################
118
-#  channelUserAway=14-- %1$s%2$s is now away.
119
-#  channelUserBack=14-- %1$s%2$s is now back.
120
-#  channelUserAwayDiscovered=14-- %1$s%2$s is away.
121
-#  channelUserBackDiscovered=14-- %1$s%2$s is back.
122 124
 #  channelSplitUserMode_default=3* %1$s%2$s sets mode %9$s on %6$s.
123 125
 #  channelNoModes=3* There are no channel modes for %2$s.
124 126
 #  channelModeDiscovered=3* Channel modes for %2$s are: %1$s.

+ 7
- 17
src/com/dmdirc/ChannelEventHandler.java View File

@@ -45,10 +45,8 @@ import com.dmdirc.events.ChannelTopicChangeEvent;
45 45
 import com.dmdirc.events.ChannelTopicUnsetEvent;
46 46
 import com.dmdirc.events.ChannelUserAwayEvent;
47 47
 import com.dmdirc.events.ChannelUserBackEvent;
48
-import com.dmdirc.events.ChannelUserEvent;
49 48
 import com.dmdirc.events.ChannelUserModeChangeEvent;
50 49
 import com.dmdirc.interfaces.Connection;
51
-import com.dmdirc.interfaces.GroupChatUser;
52 50
 import com.dmdirc.parser.common.AwayState;
53 51
 import com.dmdirc.parser.common.CallbackManager;
54 52
 import com.dmdirc.parser.interfaces.ChannelClientInfo;
@@ -342,21 +340,13 @@ public class ChannelEventHandler extends EventHandler implements
342 340
             final ClientInfo client, final AwayState oldState, final AwayState state) {
343 341
         checkParser(parser);
344 342
 
345
-        final Optional<GroupChatUser> channelClient
346
-                = owner.getUser(owner.getConnection().get().getUser(client.getNickname()));
347
-
348
-        if (channelClient.isPresent()) {
349
-            final boolean away = state == AwayState.AWAY;
350
-            final boolean discovered = oldState == AwayState.UNKNOWN;
351
-
352
-            final ChannelUserEvent event = away
353
-                    ? new ChannelUserAwayEvent(date.getTime(), owner, channelClient.get())
354
-                    : new ChannelUserBackEvent(date.getTime(), owner, channelClient.get());
355
-            final String format = EventUtils.postDisplayable(eventBus, event,
356
-                    (away ? "channelUserAway" : "channelUserBack")
357
-                    + (discovered ? "Discovered" : ""));
358
-            owner.doNotification(date, format, channelClient);
359
-        }
343
+        owner.getUser(owner.getConnection().get().getUser(client.getNickname())).ifPresent(c -> {
344
+            if (state == AwayState.AWAY) {
345
+                eventBus.publishAsync(new ChannelUserAwayEvent(date.getTime(), owner, c));
346
+            } else {
347
+                eventBus.publishAsync(new ChannelUserBackEvent(date.getTime(), owner, c));
348
+            }
349
+        });
360 350
     }
361 351
 
362 352
     @Override

Loading…
Cancel
Save