@Override public synchronized void printChatMessageWithOptionalDeletion(IChatComponent ichat, int id) { // chat listeners ChatRecievedEvent chatevent = new ChatRecievedEvent(ichat, id); chatevent.channels.add(ChatChannel.DEFAULT_CHANNEL); tc.getEventManager().onChatRecieved(chatevent); // chat filters ichat = chatevent.chat; id = chatevent.id; if (ichat != null && !ichat.getUnformattedText().isEmpty()) { if (id != 0) { // send removable msg to current channel chatevent.channels.clear(); chatevent.channels.add(this.chat.getActiveChannel()); } if (chatevent.channels.contains(ChatChannel.DEFAULT_CHANNEL) && chatevent.channels.size() > 1 && !tc.serverSettings.general.useDefaultTab.getValue()) { chatevent.channels.remove(ChatChannel.DEFAULT_CHANNEL); } boolean msg = !chatevent.channels.contains(this.chat.getActiveChannel()); for (Channel channel : chatevent.channels) { channel.addMessage(ichat, id); if (msg) { channel.setStatus(ChannelStatus.UNREAD); } } TabbyChat.getLogger().info("[CHAT] " + ichat.getUnformattedText()); this.chat.getChatBox().updateComponent(); } }