Korobi IRC Swiss Army knife.

01:46:11 kasheek otherwise he'd be scared
01:46:26 SadDemon cats will wreck you if they want to
01:46:54 kasheek speaking of cats
01:46:58 kasheek here's mine https://i.imgur.com/3EbmbYE.jpg
01:47:23 DiscordBot <Z​750> can confirm, iz cat
01:47:30 DiscordBot <V​ector> so i'm just getting into learning the ins and outs of java, and wtf is this syntax
01:47:36 DiscordBot <V​ector> if (l == null) m.put(alpha, l=new ArrayList<String>());... https://pastebin.com/XRkT32mE
01:47:43 DiscordBot <V​ector> that 2nd line
01:47:48 DiscordBot <Z​750> uh
01:47:53 DiscordBot <Z​750> probs not good syntax
01:47:58 DiscordBot <S​adDemon> java retursn the values of expressions
01:48:06 DiscordBot <k​asheek> sets l to new ArrayList<String>() and also passes l to put after setting l
01:48:11 DiscordBot <V​ector> when was that added, i've never seen a variable being defined while being inserted into a map
01:48:14 DiscordBot <L​aukage> can someone tell me what tab-spam-limiter does?
01:48:15 DiscordBot <S​adDemon> l=new ArrayList<String>() assigns l to a new array
01:48:21 DiscordBot <S​adDemon> and also returns said array to the caller
01:48:36 DiscordBot <S​adDemon> The variable is being assigned, not defined
01:48:40 DiscordBot <Z​750> @Laukage prevents people from spamming you with tab complete packets
01:48:41 DiscordBot <V​ector> yes i know that, but i haven't seen that before @SadDemon , i live in a box
01:48:47 DiscordBot <Z​750> although as of 1.13 that happens no matter waht
01:48:47 DiscordBot <V​ector> assigned, sorry
01:48:59 DiscordBot <L​aukage> so can i turn it off?
01:49:00 DiscordBot <S​adDemon> you'll see it a lot any time you see code consuming a stream
01:49:04 DiscordBot <Z​750> idk why you would
01:49:11 SadDemon kasheek looks like my cat Murphy
01:49:16 DiscordBot <L​aukage> can't tab names
01:49:17 DiscordBot <e​lectroniccat> tbh, I almost just removed the thing in 1.13 lol
01:49:30 DiscordBot <e​lectroniccat> But set increment to 0
01:49:34 DiscordBot <Z​750> doesnt have anything to do with names specifically
01:49:38 DiscordBot <Z​750> its all tab completion
01:49:41 kasheek SadDemon: my cat is Minerva, named after the Harry Potter professor
01:49:46 DiscordBot <L​aukage> hmm
01:50:05 DiscordBot <Z​750> unless it was getting so flooded that it failed at the end for the name
01:50:08 DiscordBot <Z​750> but that seems unlikely
01:50:25 DiscordBot <V​ector> also isn't that defining too? i don't mean declaring. It seems like define is analogous to assign, right?
01:50:38 DiscordBot <D​atabase> HashMap in a HashMap IN A HASHMAP
01:50:41 DiscordBot <D​atabase> Hashmap seption
01:50:48 DiscordBot <S​adDemon> defining is not analogous to assigning, no
01:50:59 DiscordBot <Z​750> you can declare all day without assigning
01:51:43 DiscordBot <e​lectroniccat> The tab limit is just too easy to hit, honestly in 1.13 it doesn't make sense to keep that limiter there as spamming is now "sane" behavior, but given that 99% of plugins will be using that sync and pulling tab completion stuff
01:57:50 DiscordBot <V​ector> @SadDemon nvm, now that i think of it, i've seen this in projects i've worked on too, assignments in expressions
01:57:59 DiscordBot <V​ector> kinda useful somewhat
01:58:11 DiscordBot <S​adDemon> You're close
01:58:23 DiscordBot <S​adDemon> but in Java assignments are not in expressions
01:58:34 DiscordBot <S​adDemon> the reason this works is because in Java assignments are expressions
01:58:58 DiscordBot <V​ector> i see
01:59:22 DiscordBot <S​adDemon> in this case it's just an expression inside another expression
02:01:20 DiscordBot <V​ector> in the case of the example i just showed, i hadn't seen that kind of expression used in that context, I.E. adding an array list into a map
02:04:58 DiscordBot <S​adDemon> It's all the same to the compiler


One of the services provided by the IRC bot is the logging of your channel, be it publicly or privately. These logs are then used to generate channel statistics. The logs themselves are neatly organized and can easily be browsed within our website.


Another service provided by the IRC bot is the ability to create factoid commands on the fly. Allowing for easy and flexible creation of responses based on frequently asked questions, and even listen for certain triggers to have it respond automatically.


Statistics are generated based off of the logs collected by the IRC bot. We are able to generate statistics to accurately capture who is the most active person by hours, along with other things like whom uses the most smileys, who has been granted the most karma, and which person can make sailors blush with their vulgar language.

About the project

The Korobi project aims to be the Swiss Army knife of IRC.

Korobi is carefully designed by people who enjoy using IRC on a day to day basis, and aim to make IRC even more enjoyable by providing a large set of tools for channels to work with.

If you'd like to request Korobi for your own channel, or have any questions at all, please visit #korobi on EsperNet and highlight one of the ops. See the full documentation to see if your channel qualifies.

Read More... Issue Tracker

Channel Last Message