mirror of
https://github.com/slawkens/myaac.git
synced 2025-10-14 09:44:55 +02:00
First public release of MyAAC
This commit is contained in:
96
system/libs/pot/InvitesDriver.php
Normal file
96
system/libs/pot/InvitesDriver.php
Normal file
@@ -0,0 +1,96 @@
|
||||
<?php
|
||||
/*
|
||||
This file is part of OTSCMS (http://www.otscms.com/) project.
|
||||
|
||||
Copyright (C) 2005 - 2008 Wrzasq (wrzasq@gmail.com)
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
/*
|
||||
POT guilds invites driver.
|
||||
*/
|
||||
|
||||
class InvitesDriver implements IOTS_GuildAction
|
||||
{
|
||||
// assigned guild
|
||||
private $guild;
|
||||
|
||||
// database
|
||||
private $db;
|
||||
|
||||
// initializes driver
|
||||
public function __construct(OTS_Guild $guild)
|
||||
{
|
||||
$this->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);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
Reference in New Issue
Block a user