From: Andy Spencer Date: Fri, 6 Nov 2015 22:44:26 +0000 (+0000) Subject: Setup game automatically X-Git-Url: http://pileus.org/git/?p=~andy%2Fspades;a=commitdiff_plain;h=35e1b13fb6ba50c0dbc6284f6dda35f562b8b94a Setup game automatically --- diff --git a/src/Client.java b/src/Client.java index b56decd..dc7c2db 100644 --- a/src/Client.java +++ b/src/Client.java @@ -116,19 +116,24 @@ public class Client } } - public Message send(String txt) + public Message send(String dst, String txt) { if (txt == null || txt.length() == 0) return null; if (this.validate() != State.READY) return null; - Message msg = new Message(this.channel, this.name, txt); + Message msg = new Message(dst, this.name, txt); if (msg.type == Message.Type.JOIN) this.channel = msg.msg; this.raw(msg.line); return msg; } + public Message send(String txt) + { + return this.send(this.channel, txt); + } + public Message recv() { while (true) try { diff --git a/src/Main.java b/src/Main.java index 231fee0..0b29dba 100644 --- a/src/Main.java +++ b/src/Main.java @@ -423,6 +423,7 @@ public class Main extends Activity break; case Task.CONNECT: Main.this.update(true); + Main.this.game.onConnect(); break; case Task.DISCONNECT: Main.this.update(false); diff --git a/src/Spades.java b/src/Spades.java index 17eacfa..3187844 100644 --- a/src/Spades.java +++ b/src/Spades.java @@ -6,6 +6,7 @@ public class Spades public Task task; public Cards cards; public String admin; + public boolean looked; /* Static methods */ private static String[] getCards(String msg, String regex) @@ -37,6 +38,10 @@ public class Spades return; String txt = msg.txt; + if (txt.matches(".*turn!.*") && !this.looked) { + this.send(this.admin, ".look"); + this.looked = true; + } if (txt.startsWith("You have: ")) { this.cards.hand = Spades.getCards(txt, "You have: (.*)"); this.cards.requestRender(); @@ -48,6 +53,15 @@ public class Spades } /* UI Callbacks */ + public boolean onConnect() + { + Os.debug("Spades: onConnect"); + this.looked = false; + this.send(this.admin, ".status"); + this.send(this.admin, ".turn"); + return true; + } + public boolean onBid(int bid) { Os.debug("Spades: onBid - " + bid); @@ -57,7 +71,7 @@ public class Spades public boolean onPass(String card) { Os.debug("Spades: onPass - " + card); - return this.send(".pass " + card); + return this.send(this.admin, ".pass " + card); } public boolean onLook() @@ -79,6 +93,13 @@ public class Spades } /* Helper functions */ + private boolean send(String dst, String msg) + { + if (this.task == null) + return false; + this.task.send(dst, msg); + return true; + } private boolean send(String msg) { if (this.task == null) diff --git a/src/Task.java b/src/Task.java index 97fe9b9..26e0bd8 100644 --- a/src/Task.java +++ b/src/Task.java @@ -100,6 +100,16 @@ public class Task extends Service implements Runnable } /* Public methods */ + public Message send(String dst, String txt) + { + if (this.client == null) + return null; + Message msg = this.client.send(dst, txt); + if (msg != null) + this.command(MESSAGE, msg); + return msg; + } + public Message send(String txt) { if (this.client == null)