guild = $guild; $this->db = POT::getInstance()->getDBHandle(); $this->guild->invitesDriver = $this; } // returns all invited players to current guild public function listRequests() { $invites = array(); foreach( $this->db->query('SELECT ' . $this->db->fieldName('player_id') . ' FROM ' . $this->db->tableName('guild_invites') . ' WHERE ' . $this->db->fieldName('guild_id') . ' = '.$this->db->quote($this->guild->id)) as $invite) { $player = new OTS_Player(); $player->load($invite['player_id']); $invites[] = $player; } return $invites; } // invites player to current guild public function addRequest(OTS_Player $player) { $this->db->query('INSERT INTO ' . $this->db->tableName('guild_invites') .' (' . $this->db->fieldName('player_id') . ', ' . $this->db->fieldName('guild_id') . ') VALUES ('.$this->db->quote($player->getId()).', '.$this->db->quote($this->guild->id).')'); } // un-invites player public function deleteRequest(OTS_Player $player) { $this->db->query('DELETE FROM ' . $this->db->tableName('guild_invites') . ' WHERE ' . $this->db->fieldName('player_id') . ' = '.$this->db->quote($player->getId()).' AND ' . $this->db->fieldName('guild_id') . ' = '.$this->db->quote($this->guild->id)); } // commits invitation public function submitRequest(OTS_Player $player) { $rank = null; // finds normal member rank foreach($this->guild as $guildRank) { if($guildRank->level == 1) { $rank = $guildRank; break; } } if(empty($rank)) { $rank = new OTS_GuildRank(); $rank->setGuild($this->guild); $rank->setName('New Members'); $rank->setLevel(1); $rank->save(); } $player->setRank($rank); $player->save(); // clears invitation $this->deleteRequest($player); } } ?>