this.process(msg);
if (this.usesasl)
this.dosasl(msg);
- return msg;
+ if (!msg.cmd.equals("PING") &&
+ !msg.cmd.equals("PONG"))
+ return msg;
}
catch (SocketTimeoutException e) {
if (this.pinging) {
this.send.setVisibility(running ? View.VISIBLE : View.GONE);
}
+ private void scroll()
+ {
+ this.dscroll.smoothScrollTo(0, this.debug.getBottom());
+ this.lscroll.smoothScrollTo(0, this.log.getBottom());
+ }
+
/* Private handler methods */
private void onRegister(Task task)
{
if (Message.class.isInstance(obj))
this.onMessage((Message)obj);
}
+ this.scroll();
}
private void onMessage(Message msg)
{
// Debug
this.debug.append("> " + msg.line + "\n");
- this.dscroll.smoothScrollTo(0, this.debug.getBottom());
// Chat
switch (msg.type) {
this.notice("Authentication failed: " + msg.txt);
break;
}
- this.lscroll.smoothScrollTo(0, this.log.getBottom());
// Update title
if (this.cards.turn != null && this.cards.turn != "" &&
break;
case Task.MESSAGE:
Main.this.onMessage((Message)msg.obj);
+ Main.this.scroll();
break;
case Task.CONNECT:
Main.this.update(true);
private static final Pattern cPtrn = Pattern.compile(cRegex);
/* Public data */
- public Date time = null;
+ public Date time = null; // Message delivery time
- public String line = "";
+ public String line = ""; // Raw IRC line -- george@~g@example.com PRIVMSG #chat :larry: hello!
- public String src = "";
- public String cmd = "";
- public String dst = "";
- public String arg = "";
- public String msg = "";
+ public String src = ""; // IRC Source -- george!~g@example.com
+ public String cmd = ""; // IRC Command -- PRIVMSG
+ public String dst = ""; // IRC Destination -- #chat
+ public String arg = ""; // IRC Arguments -- #chan in topic msg, etc
+ public String msg = ""; // IRC Message text -- larry: Hello!
- public Type type = Type.OTHER;
- public How how = How.OTHER;
- public String from = "";
- public String to = "";
- public String txt = "";
+ public Type type = Type.OTHER; // Message Type -- PRIVMSG
+ public How how = How.OTHER; // How msg relates -- SENT=geroge, DIRECT=larry, CHANNEL=*
+ public String from = ""; // Nick of sender -- george
+ public String to = ""; // Addressed name -- larry
+ public String txt = ""; // Text of msg -- Hello!
public List<Format> parts = new ArrayList<Format>();
// Cleanup extra space
list.trimToSize();
this.parts = list;
- this.msg = msg.replaceAll(cRegex, "");
- this.to = msg.replaceAll(cRegex, "");
- this.txt = msg.replaceAll(cRegex, "");
+ this.msg = this.msg.replaceAll(cRegex, "");
+ this.to = this.to.replaceAll(cRegex, "");
+ this.txt = this.txt.replaceAll(cRegex, "");
}
}
public Task task;
public Cards cards;
public String admin;
- public boolean looked;
+ public boolean look;
/* Static methods */
private static String[] getCards(String msg, String regex)
return;
String txt = msg.txt;
- if (txt.matches(".*turn!.*") && !this.looked) {
+ if (txt.matches(".*turn!.*") && this.look) {
this.send(this.admin, ".look");
- this.looked = true;
+ this.look = false;
}
if (txt.startsWith("You have: ")) {
this.cards.hand = Spades.getCards(txt, "You have: (.*)");
this.cards.requestRender();
+ this.look = false;
}
if (txt.matches(".*turn!.*")) {
this.cards.pile = Spades.getCards(txt, ".*turn! \\((.*)\\)");
this.cards.state = txt.replaceAll("It is (\\w+)'s (\\w+)!.*", "$2");
this.cards.requestRender();
}
- if (txt.startsWith("^it is your")) {
- this.cards.turn = msg.to;
+ if (txt.startsWith("it is your") && msg.to != "") {
+ this.cards.turn = msg.to;
+ this.cards.state = txt.replaceAll("it is your (\\w+)!", "$1");
this.cards.requestRender();
}
}
public boolean onConnect()
{
Os.debug("Spades: onConnect");
- this.looked = false;
this.send(this.admin, ".status");
this.send(this.admin, ".turn");
+ this.look = true;
return true;
}