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, ""));
}
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);
}
}
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();
}
}
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;
}
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;
}
Aggregations