From 507081c234f70d0c734059e2dea7c3d1a31c52e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonatan=20P=C3=A5lsson?= Date: Sun, 20 Feb 2011 01:58:48 +0100 Subject: [PATCH] Now we have a /lusers command in chat ;) --- games/GGSChat/chat.py | 13 +++++++++---- src/ggs_gamevm_e.erl | 4 +++- src/ggs_table.erl | 6 +++++- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/games/GGSChat/chat.py b/games/GGSChat/chat.py index c10ca8f..9c94728 100644 --- a/games/GGSChat/chat.py +++ b/games/GGSChat/chat.py @@ -29,8 +29,6 @@ class GGSChat: , "on_chatBox_focus" : lambda x, y: self.wTree.get_widget("entry").grab_focus() } - for i in range(0,9): - dic self.wTree.signal_autoconnect(dic) self.wTree.get_widget("nickBox").set_text(getpass.getuser()) @@ -43,8 +41,15 @@ class GGSChat: def chat(self): exp = self.wTree.get_widget("entry").get_text() nick = self.wTree.get_widget("nickBox").get_text() - exp = "<%s> %s" % (nick, exp) - self.s.send("Game-Command: chat\n"+ + if exp[0] == "/": + self.s.send("Game-Command: %s\n" % exp[1:] + + "Token: %s\n" % self.token + + "Content-Type: text\n" + + "Content-Length: 0\n"+ + "\n") + else: + exp = "<%s> %s" % (nick, exp) + self.s.send("Game-Command: chat\n"+ "Token: %s\n" % self.token + "Content-Type: text\n"+ "Content-Length: %s\n" % (len(exp))+ diff --git a/src/ggs_gamevm_e.erl b/src/ggs_gamevm_e.erl index 4575ef1..ad2527b 100644 --- a/src/ggs_gamevm_e.erl +++ b/src/ggs_gamevm_e.erl @@ -50,7 +50,9 @@ do_stuff(Command, Args, Player, Table) -> "uname" -> Uname = os:cmd("uname -a"), ggs_player:notify(Player, server, Uname); - + "lusers" -> + {ok, Players} = ggs_table:get_player_list(Table), + ggs_player:notify(Player, server,io_lib:format("~p\n",[Players])); Other -> ggs_player:notify(Player, server, "I don't know that command..\n") end. diff --git a/src/ggs_table.erl b/src/ggs_table.erl index 118ae0d..93b79fd 100644 --- a/src/ggs_table.erl +++ b/src/ggs_table.erl @@ -6,7 +6,7 @@ %% gen_server callbacks -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3, notify_all_players/2, notify_game/3, - add_player/2]). + add_player/2, get_player_list/1]). -record(state, { token, players, socket, game_vm } ). @@ -39,6 +39,10 @@ add_player(Table, Player) -> remove_player(Table, Player) -> call(Table, {remove_player, Player}). +%% @doc Get a list of all player processes attached to this table +get_player_list(Table) -> + gen_server:call(Table, get_player_list). + % @doc stops the table process stop(Table) -> gen_server:cast(Table, stop).