Search in sources :

Example 6 with User

use of chatty.User in project chatty by chatty.

the class HighlighterTest method testStatusReq.

@Test
public void testStatusReq() {
    updateBlacklist();
    User broadcaster = new User("test", Room.createRegular("#test"));
    broadcaster.setBroadcaster(true);
    User normal = new User("test2", Room.createRegular("#test"));
    User modTurbo = new User("test3", Room.createRegular("#test"));
    modTurbo.setModerator(true);
    modTurbo.setTurbo(true);
    User admin = new User("test4", Room.createRegular("#test"));
    admin.setAdmin(true);
    User adminBroadcasterTurbo = new User("test5", Room.createRegular("#test"));
    adminBroadcasterTurbo.setAdmin(true);
    adminBroadcasterTurbo.setBroadcaster(true);
    adminBroadcasterTurbo.setTurbo(true);
    User staff = new User("test6", Room.createRegular("#test"));
    staff.setStaff(true);
    User subscriber = new User("test7", Room.createRegular("#test"));
    subscriber.setSubscriber(true);
    update("status:b");
    assertTrue(highlighter.check(broadcaster, ""));
    assertFalse(highlighter.check(normal, ""));
    assertFalse(highlighter.check(modTurbo, ""));
    assertFalse(highlighter.check(admin, ""));
    assertTrue(highlighter.check(adminBroadcasterTurbo, ""));
    assertFalse(highlighter.check(staff, ""));
    assertFalse(highlighter.check(subscriber, ""));
    update("!status:b");
    assertFalse(highlighter.check(broadcaster, ""));
    assertTrue(highlighter.check(normal, ""));
    assertTrue(highlighter.check(modTurbo, ""));
    assertTrue(highlighter.check(admin, ""));
    assertFalse(highlighter.check(adminBroadcasterTurbo, ""));
    assertTrue(highlighter.check(staff, ""));
    assertTrue(highlighter.check(subscriber, ""));
    update("status:m");
    assertFalse(highlighter.check(broadcaster, ""));
    assertFalse(highlighter.check(normal, ""));
    assertTrue(highlighter.check(modTurbo, ""));
    assertFalse(highlighter.check(admin, ""));
    assertFalse(highlighter.check(adminBroadcasterTurbo, ""));
    assertFalse(highlighter.check(staff, ""));
    assertFalse(highlighter.check(subscriber, ""));
    update("status:abmf");
    assertTrue(highlighter.check(broadcaster, ""));
    assertFalse(highlighter.check(normal, ""));
    assertTrue(highlighter.check(modTurbo, ""));
    assertTrue(highlighter.check(admin, ""));
    assertTrue(highlighter.check(adminBroadcasterTurbo, ""));
    assertTrue(highlighter.check(staff, ""));
    assertFalse(highlighter.check(subscriber, ""));
    update("!status:bmaf");
    assertFalse(highlighter.check(broadcaster, ""));
    assertTrue(highlighter.check(normal, ""));
    assertFalse(highlighter.check(modTurbo, ""));
    assertFalse(highlighter.check(admin, ""));
    assertFalse(highlighter.check(adminBroadcasterTurbo, ""));
    assertFalse(highlighter.check(staff, ""));
    assertTrue(highlighter.check(subscriber, ""));
    update("status:a !status:b");
    assertFalse(highlighter.check(broadcaster, ""));
    assertFalse(highlighter.check(normal, ""));
    assertFalse(highlighter.check(modTurbo, ""));
    assertTrue(highlighter.check(admin, ""));
    assertFalse(highlighter.check(adminBroadcasterTurbo, ""));
    assertFalse(highlighter.check(staff, ""));
    assertFalse(highlighter.check(subscriber, ""));
    update("status:m !status:m");
    assertFalse(highlighter.check(broadcaster, ""));
    assertFalse(highlighter.check(normal, ""));
    assertFalse(highlighter.check(modTurbo, ""));
    assertFalse(highlighter.check(admin, ""));
    assertFalse(highlighter.check(adminBroadcasterTurbo, ""));
    assertFalse(highlighter.check(staff, ""));
    assertFalse(highlighter.check(subscriber, ""));
    update("status:t");
    assertFalse(highlighter.check(broadcaster, ""));
    assertFalse(highlighter.check(normal, ""));
    assertTrue(highlighter.check(modTurbo, ""));
    assertFalse(highlighter.check(admin, ""));
    assertTrue(highlighter.check(adminBroadcasterTurbo, ""));
    assertFalse(highlighter.check(staff, ""));
    assertFalse(highlighter.check(subscriber, ""));
    update("!status:t");
    assertTrue(highlighter.check(broadcaster, ""));
    assertTrue(highlighter.check(normal, ""));
    assertFalse(highlighter.check(modTurbo, ""));
    assertTrue(highlighter.check(admin, ""));
    assertFalse(highlighter.check(adminBroadcasterTurbo, ""));
    assertTrue(highlighter.check(staff, ""));
    assertTrue(highlighter.check(subscriber, ""));
    update("status:s");
    assertFalse(highlighter.check(broadcaster, ""));
    assertFalse(highlighter.check(normal, ""));
    assertFalse(highlighter.check(modTurbo, ""));
    assertFalse(highlighter.check(admin, ""));
    assertFalse(highlighter.check(adminBroadcasterTurbo, ""));
    assertFalse(highlighter.check(staff, ""));
    assertTrue(highlighter.check(subscriber, ""));
    // Test if it still works in combination with text
    update("status:smb test");
    assertFalse(highlighter.check(broadcaster, ""));
    assertFalse(highlighter.check(normal, ""));
    assertFalse(highlighter.check(modTurbo, ""));
    assertFalse(highlighter.check(admin, ""));
    assertFalse(highlighter.check(adminBroadcasterTurbo, ""));
    assertFalse(highlighter.check(staff, ""));
    assertFalse(highlighter.check(subscriber, ""));
    update("status:smb test");
    assertTrue(highlighter.check(broadcaster, "test"));
    assertFalse(highlighter.check(normal, ""));
    assertTrue(highlighter.check(modTurbo, "test"));
    assertFalse(highlighter.check(admin, ""));
    assertFalse(highlighter.check(adminBroadcasterTurbo, "hello"));
    assertFalse(highlighter.check(staff, ""));
    assertFalse(highlighter.check(subscriber, ""));
}
Also used : User(chatty.User) Test(org.junit.Test)

Example 7 with User

use of chatty.User in project chatty by chatty.

the class LinkController method mousePressed.

/**
 * Handles mouse presses. This is favourable to mouseClicked because it
 * might work better in a fast moving chat and you won't select text
 * instead of opening userinfo etc.
 *
 * @param e
 */
@Override
public void mousePressed(MouseEvent e) {
    if (e.getClickCount() == 1 && SwingUtilities.isLeftMouseButton(e)) {
        String url = getUrl(e);
        if (url != null && !isUrlDeleted(e)) {
            if (linkListener != null) {
                linkListener.linkClicked(url);
            }
            return;
        }
        User user = getUser(e);
        if (user != null) {
            for (UserListener listener : userListener) {
                listener.userClicked(user, getMsgId(e), getAutoModMsgId(e), e);
            }
            return;
        }
        EmoticonImage emote = getEmoticon(e);
        if (emote != null) {
            for (UserListener listener : userListener) {
                listener.emoteClicked(emote.getEmoticon(), e);
            }
            return;
        }
        Usericon usericon = getUsericon(e);
        if (usericon != null) {
            for (UserListener listener : userListener) {
                listener.usericonClicked(usericon, e);
            }
        }
    } else if (e.isPopupTrigger()) {
        openContextMenu(e);
    }
}
Also used : User(chatty.User) Usericon(chatty.util.api.usericons.Usericon) UserListener(chatty.gui.UserListener) EmoticonImage(chatty.util.api.Emoticon.EmoticonImage)

Example 8 with User

use of chatty.User in project chatty by chatty.

the class AutoModDialog method addItem.

private void addItem(ModeratorActionData modData) {
    if (modData.args.size() < 2 || modData.msgId.isEmpty()) {
        return;
    }
    String room = modData.stream;
    String channel = Helper.toValidChannel(modData.stream);
    String username = modData.args.get(0);
    String message = modData.args.get(1);
    if (channel == null) {
        return;
    }
    if (!Helper.isValidStream(username)) {
        return;
    }
    User user = client.getUser(channel, username);
    user.addAutoModMessage(message, modData.msgId);
    gui.updateUserinfo(user);
    Item item = new Item(modData, user);
    if (!cache.containsKey(room)) {
        cache.put(room, new ArrayList<Item>());
    }
    cache.get(room).add(item);
    if (cache.get(room).size() > MESSAGE_LIMIT) {
        cache.get(room).remove(0);
        if (room.equals(currentRoom) && !data.isEmpty()) {
            data.remove(0);
        }
    }
    if (room.equals(currentRoom)) {
        data.addElement(item);
        scrollDownIfApplicable();
    }
}
Also used : User(chatty.User)

Example 9 with User

use of chatty.User in project chatty by chatty.

the class MainGui method commandGui.

/**
 * Should only be called out of EDT. All commands have to be defined
 * lowercase, because they are made lowercase when entered.
 *
 * @param command
 * @param parameter
 * @return
 */
public boolean commandGui(String channel, String command, String parameter) {
    if (command.equals("settings")) {
        getSettingsDialog().showSettings();
    } else if (command.equals("customemotes")) {
        printLine(emoticons.getCustomEmotesInfo());
    } else if (command.equals("reloadcustomemotes")) {
        printLine("Reloading custom emotes from file..");
        emoticons.loadCustomEmotes();
        printLine(emoticons.getCustomEmotesInfo());
    } else if (command.equals("livestreams")) {
        openLiveStreamsDialog();
    } else if (command.equals("channeladmin")) {
        openChannelAdminDialog();
    } else if (command.equals("channelinfo")) {
        openChannelInfoDialog();
    } else if (command.equals("userinfo")) {
        User user = client.getExistingUser(channel, parameter);
        if (user != null) {
            openUserInfoDialog(user, null, null);
        } else {
            printSystem(String.format("User %s in %s not found", parameter, channel));
        }
    } else if (command.equals("search")) {
        openSearchDialog();
    } else if (command.equals("insert")) {
        insert(parameter, false);
    } else if (command.equals("insertword")) {
        insert(parameter, true);
    } else if (command.equals("openurl")) {
        if (!UrlOpener.openUrl(parameter)) {
            printLine("Failed to open URL (none specified or invalid).");
        }
    } else if (command.equals("openurlprompt")) {
        // is mainly for custom commands put in a context menu anyway.
        if (!UrlOpener.openUrlPrompt(getActiveWindow(), parameter, true)) {
            printLine("Failed to open URL (none specified or invalid).");
        }
    } else if (command.equals("openfollowers")) {
        openFollowerDialog();
    } else if (command.equals("opensubscribers")) {
        openSubscriberDialog();
    } else if (command.equals("openrules")) {
        if (parameter != null) {
            openChatRules("#" + parameter);
        } else {
            openChatRules();
        }
    } else if (command.equals("openstreamchat")) {
        openStreamChat();
    } else if (command.equals("clearstreamchat")) {
        streamChat.clear();
    } else if (command.equals("streamchattest")) {
        String message = "A bit longer chat message with emotes and stuff " + "FrankerZ ZreknarF MiniK (" + (int) (Math.random() * 10) + ")";
        if (parameter != null && !parameter.isEmpty()) {
            message = parameter;
        }
        UserMessage m = new UserMessage(client.getSpecialUser(), message, null, null, 0);
        streamChat.printMessage(m);
    } else if (command.equals("livestreamer")) {
        String stream = null;
        String quality = null;
        if (parameter != null && !parameter.trim().isEmpty()) {
            String[] split = parameter.trim().split(" ");
            stream = split[0];
            if (stream.equals("$active")) {
                stream = channels.getActiveChannel().getStreamName();
                if (stream == null) {
                    printLine("Livestreamer: No channel open.");
                    return true;
                }
            }
            if (split.length > 1) {
                quality = split[1];
            }
        }
        printLine("Livestreamer: Opening stream..");
        livestreamerDialog.open(stream, quality);
    } else if (command.equals("help")) {
        openHelp(null);
    } else if (command.equals("setstreamchatsize")) {
        Dimension size = Helper.getDimensionFromParameter(parameter);
        if (size != null) {
            setStreamChatSize(size.width, size.height);
            printSystem("Set StreamChat size to " + size.width + "x" + size.height);
            return true;
        }
        printSystem("Invalid parameters.");
    } else if (command.equals("getstreamchatsize")) {
        Dimension d = streamChat.getSize();
        printSystem("StreamChat size: " + d.width + "x" + d.height);
    } else if (command.equals("setsize")) {
        Dimension size = Helper.getDimensionFromParameter(parameter);
        if (size != null) {
            setSize(size);
            printSystem(String.format("Set Window size to %dx%d", size.width, size.height));
            return true;
        }
        printSystem("Invalid parameters.");
    } else {
        return false;
    }
    return true;
}
Also used : User(chatty.User) UserMessage(chatty.gui.components.textpane.UserMessage)

Example 10 with User

use of chatty.User in project chatty by chatty.

the class ChannelTextPane method isLineFromUserAndId.

/**
 * Checks if the given element is a line that is associated with the given
 * User.
 *
 * @param line
 * @param user
 * @param id If non-null, only messages with this id will return true
 * @return
 */
private boolean isLineFromUserAndId(Element line, User user, String id) {
    Element element = getUserElementFromLine(line);
    User elementUser = getUserFromElement(element);
    if (elementUser == user) {
        if (id == null || id.equals(getIdFromElement(element))) {
            return true;
        }
    }
    return false;
}
Also used : EmoticonUser(chatty.util.api.Emoticon.EmoticonUser) User(chatty.User)

Aggregations

User (chatty.User)11 EmoticonUser (chatty.util.api.Emoticon.EmoticonUser)4 UserContextMenu (chatty.gui.components.menus.UserContextMenu)2 EmoticonImage (chatty.util.api.Emoticon.EmoticonImage)2 Usericon (chatty.util.api.usericons.Usericon)2 UserListener (chatty.gui.UserListener)1 Channel (chatty.gui.components.Channel)1 ChannelContextMenu (chatty.gui.components.menus.ChannelContextMenu)1 EmoteContextMenu (chatty.gui.components.menus.EmoteContextMenu)1 UrlContextMenu (chatty.gui.components.menus.UrlContextMenu)1 UsericonContextMenu (chatty.gui.components.menus.UsericonContextMenu)1 UserMessage (chatty.gui.components.textpane.UserMessage)1 TagEmotes (chatty.util.api.Emoticons.TagEmotes)1 JPopupMenu (javax.swing.JPopupMenu)1 Test (org.junit.Test)1