Prefix modes are now stored as a string, with the most important
mode at the start (e.g. "ohv").
Change-Id: Ie51e6bf8bf7a46e80295ed5cf000ffb4b0195e0b
Reviewed-on: http://gerrit.dmdirc.com/3954
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Automatic-Compile: DMDirc Build Manager
This removes a tiny bit of the ugly logic in IRCParser and hides
it away slightly.
Change-Id: I66b2b17d302186b5e48c839f2fa276f1a2234f6b
Reviewed-on: http://gerrit.dmdirc.com/3953
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Automatic-Compile: DMDirc Build Manager
Make all package-private fields and methods they hackily touched
into public, for now.
Change-Id: Ica056a901535b0c0f503283d27ff5210fe625d26
Reviewed-on: http://gerrit.dmdirc.com/3952
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Adds an AutoCloseable version of InitialDirContext.
Fixes-Issue: CLIENT-521
Change-Id: I5248d2f50ec8da01c90fd607e72c5eac66451cf3
Reviewed-on: http://gerrit.dmdirc.com/3950
Reviewed-by: Chris Smith <chris@dmdirc.com>
Automatic-Compile: DMDirc Build Manager
Get rid of weird round-the-houses method of processing, and avoid
duplicating the value in a map and a field.
This fixes our handling of servers doing really stupid, theoretical
things like resetting the CHANTYPES they support. (And by "fixes"
I mean the parser will keep state, while everything else burns
around it.)
Change-Id: Ie4936f21e68e4bb1134e9be3f16932eef4ab086f
Reviewed-on: http://gerrit.dmdirc.com/2831
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Shane Mc Cormack <shane@dmdirc.com>
Introduce methods for handling individual bits, instead of having
a pair of giant if statements of doom.
Tidy some comments and formatting up at the same time.
This is functionally the same as it was before.
Change-Id: I83f09cb6c36be203d102c44188f90de2b0587e58
Reviewed-on: http://gerrit.dmdirc.com/2812
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Add support for SRV records for finding IRC servers. eg irc://quakenet.org/
Of the top 20 networks, it looks like only quakenet support it right now,
but it makes sense and allows for multiple servers to exist on the same IP
with different ports without needing to know the ports.
Eg for a test network you could just connect to irc://inspircd.testnetwork/
or irc://ircu.testnetwork/ without needing to remember the ports.
Change-Id: Ia366292e64b2ca46cb8658b34fdac598fa155722
Reviewed-on: http://gerrit.dmdirc.com/2567
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Add support for "away-notify" capability (http://ircv3.atheme.org/extensions/away-notify-3.1)
Add support for "account-notify" capability (http://ircv3.atheme.org/extensions/account-notify-3.1)
Add support for "extended-join" capability (http://ircv3.atheme.org/extensions/extended-join-3.1)
Don't bother negotiating UHNAMES or NAMESX using PROTOCTL if we have already enabled the userhost-in-names and multi-prefix capabilities with CAP
Don't bother asking for TSIRC using the TIMESTAMPEDIRC command if we have negotiated it using CAP
Rename "tsirc" capability to "dfbnc.com/tsirc" as a non-standard capability
From a DMDirc point of view, capabilities probably need exposing through the general interface somehow so that if (for example) away-notify is enabled, the client doesn't still send lots of WHOs.
Change-Id: Ice7a8ceae5595a364881e5a1fbe2d7fbdef9a639
Reviewed-on: http://gerrit.dmdirc.com/2544
Reviewed-by: Chris Smith <chris@dmdirc.com>
Automatic-Compile: DMDirc Build Manager
Previously it added an object as a callback target even if it didn't implement the callback handler, this was pointless and stupid, now it checks.
Change-Id: I24ce9f063a0f1f95e84ad2ae28a67e335cd63afe
Reviewed-on: http://gerrit.dmdirc.com/2519
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>