From 944e1df0262f4b37df99964737fae501e3c22ee0 Mon Sep 17 00:00:00 2001 From: Andy Spencer Date: Thu, 12 Nov 2015 06:41:20 +0000 Subject: [PATCH] Fix .look bugs --- src/Client.java | 4 +++- src/Main.java | 10 ++++++++-- src/Message.java | 30 +++++++++++++++--------------- src/Spades.java | 14 ++++++++------ 4 files changed, 34 insertions(+), 24 deletions(-) diff --git a/src/Client.java b/src/Client.java index dc7c2db..d3349f4 100644 --- a/src/Client.java +++ b/src/Client.java @@ -148,7 +148,9 @@ public class Client 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) { diff --git a/src/Main.java b/src/Main.java index 362af12..09c6180 100644 --- a/src/Main.java +++ b/src/Main.java @@ -145,6 +145,12 @@ public class Main extends Activity 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) { @@ -160,13 +166,13 @@ public class Main extends Activity 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) { @@ -194,7 +200,6 @@ public class Main extends Activity this.notice("Authentication failed: " + msg.txt); break; } - this.lscroll.smoothScrollTo(0, this.log.getBottom()); // Update title if (this.cards.turn != null && this.cards.turn != "" && @@ -426,6 +431,7 @@ public class Main extends Activity break; case Task.MESSAGE: Main.this.onMessage((Message)msg.obj); + Main.this.scroll(); break; case Task.CONNECT: Main.this.update(true); diff --git a/src/Message.java b/src/Message.java index d12f42f..8213509 100644 --- a/src/Message.java +++ b/src/Message.java @@ -118,21 +118,21 @@ public class Message 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 parts = new ArrayList(); @@ -350,8 +350,8 @@ public class Message // 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, ""); } } diff --git a/src/Spades.java b/src/Spades.java index b1d9d74..770cd1c 100644 --- a/src/Spades.java +++ b/src/Spades.java @@ -6,7 +6,7 @@ public class Spades 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) @@ -38,13 +38,14 @@ public class Spades 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! \\((.*)\\)"); @@ -55,8 +56,9 @@ public class Spades 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(); } } @@ -65,9 +67,9 @@ public class Spades 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; } -- 2.43.2