summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid McMackins II <contact@mcmackins.org>2017-02-18 11:17:10 -0600
committerDavid McMackins II <contact@mcmackins.org>2017-02-18 11:17:10 -0600
commit80ad39aa94838a096ca79259ab6f6b2f1a0a52aa (patch)
treeac150d868e4f1a6d7fd816303fd6a8ad636c581c
parent522633e68acfafc551e5b8f286133d6c5eb87437 (diff)
Add GETROOMS request
-rw-r--r--client.lua6
-rw-r--r--serverthread.lua13
2 files changed, 16 insertions, 3 deletions
diff --git a/client.lua b/client.lua
index cdfc099..05af8f6 100644
--- a/client.lua
+++ b/client.lua
@@ -93,8 +93,10 @@ function Client:getrooms()
local rooms = {}
for _,line in ipairs(r) do
- line = line:split(' ')
- table.insert(rooms, line[2])
+ local split = line:split('"')
+ local name = split[2]
+ split = line:split(' ')
+ table.insert(rooms, { split[1], name, split[#split] })
end
return rooms
diff --git a/serverthread.lua b/serverthread.lua
index 816c71f..21f8da2 100644
--- a/serverthread.lua
+++ b/serverthread.lua
@@ -32,6 +32,7 @@ function Server:__init(server, socks, comm)
self._srv = server
self._socks = socks
self._names = { 'Player 1', 'Player 2' }
+ self._rooms = { 1, 0 }
self._queue = { {}, {} }
self._comm = comm
self._done = false
@@ -105,11 +106,21 @@ function Server:_process()
if name == self._names[other] then
self._socks[this]:send('ERR NAMETAKEN\nEND\n')
elseif #name > 16 then
- self._socks[this:send('ERR NAMELEN\nEND\n')
+ self._socks[this]:send('ERR NAMELEN\nEND\n')
+ elseif name:find('"') then
+ self._socks[this]:send('ERR NAMECHAR\nEND\n')
else
self._names[this] = name
self._socks[this]:send(AFFIRMATIVE)
end
+ elseif line == 'GETROOMS' then
+ local players = 1
+ if self._rooms[2] == 1 then
+ players = 2
+ end
+
+ self._socks[this]:send('1 "' .. self._names[1] .. '" '
+ .. players .. '\nEND\n')
else
self._socks[this]:send('ERR COMMAND\nEND\n')
end