X-Git-Url: https://disinclined.org/git/?a=blobdiff_plain;f=mud.php;h=4309fef193f0526c178e9d83337317922d36570d;hb=HEAD;hp=ed063dc327274072dc8c49cb7ec33a339e80c6be;hpb=0ce89d3598c0aeabb116054fa15346d438dec23b;p=mudd.git diff --git a/mud.php b/mud.php index ed063dc..4309fef 100644 --- a/mud.php +++ b/mud.php @@ -22,7 +22,8 @@ abstract class model { public function query() { $args = func_get_args(); $statement = $this->db->prepare(array_shift($args)); - if ($args) call_user_func_array(array($statement, 'bind_param'), &$args); + #if ($args) call_user_func_array(array($statement, 'bind_param'), &$args); + if ($args) call_user_func_array(array($statement, 'bind_param'), $args); $statement->execute(); $statement->store_result(); $statement->store_result(); @@ -44,7 +45,7 @@ abstract class model { public function insert() { $args = func_get_args(); $statement = $this->db->prepare(array_shift($args)); - call_user_func_array(array($statement, 'bind_param'), &$args); + call_user_func_array(array($statement, 'bind_param'), $args); $statement->execute(); return $this->db->insert_id; } @@ -52,7 +53,7 @@ abstract class model { public function update() { $args = func_get_args(); $statement = $this->db->prepare(array_shift($args)); - call_user_func_array(array($statement, 'bind_param'), &$args); + call_user_func_array(array($statement, 'bind_param'), $args); $statement->execute(); return $this->db->insert_id; } @@ -147,35 +148,24 @@ class mud extends model { } private function yell($msg) { - if (!$msg) { - $this->error('400', 'expected `msg` field'); - return; - } + if (!$msg) $this->error('400', 'expected `msg` field'); $this->insert( 'INSERT INTO messages (message,type,room,source) VALUES(?,?,?,?)', 'ssii', $msg, 'yell', $this->player->room, $this->player->id); } private function say($msg) { - if (!$msg) { - $this->error('400', 'expected `dest` field'); - return; - } + if (!$msg) $this->error('400', 'expected `dest` field'); $this->insert( 'INSERT INTO messages (message,type,room,source) VALUES(?,?,?,?)', 'ssii', $msg, 'say', $this->player->room, $this->player->id); } private function tell($dest, $msg) { - if (!$dest || !$msg) { - $this->error('400', 'expected `dest` and `msg` fields'); - return; - } + if (!$dest || !$msg) $this->error('400', 'expected `dest` and `msg` fields'); $player = $this->query('SELECT id FROM players where name = ?', 's', $dest); - if (!($player && $player['id'])) { - $this->error('400', "could not find a player with `name` == $dest"); - return; - } + if (!($player && $player['id'])) + $this->error(400, "could not find a player with `name` == $dest"); $this->insert( 'INSERT INTO messages (message,type,destination,source) VALUES(?,?,?,?)', 'ssii', $msg, 'say', $player['id'], $this->player->id); @@ -231,7 +221,8 @@ class mud extends model { public function command($cmd) { if (!$_GET['cmd']) $this->error(400, 'Missing command: expected `cmd` field'); - if ($_GET['cmd'] != 'join' && $_GET['cmd'] != 'start' && !isset($_SESSION['id'])) + if (($_GET['cmd'] != 'join' && $_GET['cmd'] != 'kick') + && $_GET['cmd'] != 'start' && !isset($_SESSION['id'])) $this->error(401, 'Missing user ID: please join first'); if (isset($_SESSION['id'])) $this->player = new player($this); switch ($cmd) { @@ -251,22 +242,26 @@ class mud extends model { $this->yell($_GET['msg']); break; case 'say': - $this->say($_GET['dest'], $_GET['msg']); + $this->say($_GET['msg']); break; case 'tell': - $this->tell(); + $this->tell($_GET['dest'], $_GET['msg']); break; case 'poll': - echo json_encode($this->poll()); + $this->response($this->poll()); + break; + case 'kick': + $this->update('DELETE FROM players'); break; default: - $this->error(400, 'Unknown command'); + $this->error(400, 'unknown command'); } } private function error($status, $msg) { header("HTTP/1.0 $status"); echo $msg; + exit; } }