ribesg / alix Goto Github PK
View Code? Open in Web Editor NEWA Java IRC API
License: GNU General Public License v3.0
A Java IRC API
License: GNU General Public License v3.0
To be able to reconnect if there is any network problem.
Alix logs on the root logger making it rather hard to control...
Would be best it was on its own logger with a possibility to shut it down / change its level.
Also, it would be nice to update log4j to 2.x
On JOIN:
2014-02-24 11:08:03,582 :BooBot MODE BooBot :+iwxz
2014-02-24 11:08:03,640 SENDING MESSAGE: ': JOIN #boozaa\r\n'
2014-02-24 11:08:03,685 RECEIVED MESSAGE: ':[email protected] JOIN :#boozaa'
2014-02-24 11:08:03,685 RECEIVED MESSAGE: ':irc.xxxx.fr 353 BooBot = #boozaa :BooBot @boozaa '
2014-02-24 11:08:03,685 RECEIVED MESSAGE: ':irc.xxxx.fr 366 BooBot #boozaa :End of /NAMES list.'
2014-02-24 11:08:03,685 :[email protected] JOIN :#boozaa
2014-02-24 11:08:03,685 :irc.xxxx.fr 366 BooBot #boozaa :End of /NAMES list.
Exception in thread "Thread-22"
java.lang.ArrayIndexOutOfBoundsException: 0 at fr.ribesg.alix.network.InternalMessageHandler.handleMessageAsync(InternalMessageHandler.java:86)
at fr.ribesg.alix.network.InternalMessageHandler.access$000(InternalMessageHandler.java:26)
at fr.ribesg.alix.network.InternalMessageHandler$1.run(InternalMessageHandler.java:55)
at java.lang.Thread.run(Thread.java:744)
'messageString' value received =
2014-02-24 11:08:03,685 :irc.xxxx.fr 353 BooBot = #boozaa :BooBot @boozaa
It happens mainly because of channels names having mixed case (like #bendemPlugins).
This result in the channel list containing channels you left or containing some channel twice.
Maybe something along https://gist.github.com/bendem/86ae08d1b8c364a4feb7 could fix it.
A mode packet does not update the channel users.
http://www.irchelp.org/irchelp/rfc/ctcpspec.html
Name | Description |
---|---|
FINGER | Returns the user's full name, and idle time. |
VERSION | The version and type of the client |
SOURCE | Where to obtain a copy of a client |
USERINFO | A string set by the user (never the client coder) |
CLIENTINFO | The version and type of the client |
ERRMSG | Used when an error needs to be replied with. |
PING | Used to measure the delay of the IRC network |
between clients. | |
TIME | Gets the local date and time from other clients |
Example of current catch:
Asking for VERSION:
2014-02-24 12:04:35,908 RECEIVED MESSAGE: ':[email protected] PRIVMSG BooBot :�VERSION�'
Asking for CLIENTINFO:
2014-02-24 12:04:46,840 RECEIVED MESSAGE: ':[email protected] PRIVMSG BooBot :�CLIENTINFO�'
No possibility to change the quit message there...
Custom codes uncatched.
Code | Description | Example |
---|---|---|
002 | Get Ircd name | ':irc.xxxx.fr 002 BooBot :Your host is irc.xxxx.fr, running version Unreal3.2.9' |
265 | Local Users | ':irc.xxxx.fr 265 BooBot :Current Local Users: 15 Max: 28' |
266 | Global Users | ':irc.xxxx.fr 266 BooBot :Current Global Users: 27 Max: 39' |
[01:04:09,182] [INFO] [Cb-Cleaner] Failed to receive PONG (-984139185267869307)response in time, disconnecting from server Esper
[01:04:09,182] [INFO] [Cb-Cleaner] Disconnecting from irc.esper.net:6697...
[01:04:14,287] [INFO] [Cb-Cleaner] Successfully disconnected from irc.esper.net:6697
[01:04:19,288] [INFO] [pool-1-thread-43] Connecting to irc.esper.net:6697...
[01:04:39,314] [ERROR] [pool-1-thread-43] Failed to connect to Server
javax.net.ssl.SSLException: Failed to create SSL socket
at fr.ribesg.alix.internal.network.ssl.SSLSocketFactory.getTrustingSSLSocket(SSLSocketFactory.java:69)
at fr.ribesg.alix.internal.network.SocketHandler.connect(SocketHandler.java:63)
at fr.ribesg.alix.api.Server.connect(Server.java:399)
at be.bendem.bendembot.BotHandler.lambda$onConnectionLost$19(BotHandler.java:101)
at be.bendem.bendembot.BotHandler$$Lambda$38/9414742.run(Unknown Source)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.UnknownHostException: irc.esper.net
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:649)
at sun.security.ssl.SSLSocketImpl.<init>(SSLSocketImpl.java:409)
at sun.security.ssl.SSLSocketFactoryImpl.createSocket(SSLSocketFactoryImpl.java:88)
at fr.ribesg.alix.internal.network.ssl.SSLSocketFactory.getTrustingSSLSocket(SSLSocketFactory.java:55)
... 9 more
which leads Server#channels
and Channel#users
to contain junk (user modes are never updated either).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.