/solar27/include/game/classes/event_creator.php
PHP | 96 lines | 58 code | 24 blank | 14 comment | 14 complexity | 5f654cf45586e7adb764b3bc462aa41a MD5 | raw file
Possible License(s): LGPL-2.1, AGPL-3.0, BSD-3-Clause, LGPL-2.0, MIT, GPL-2.0
- <?php
- // Solar Imperium is licensed under GPL2, Check LICENSE.TXT for mode details //
- class EventCreator
- {
- var $DB;
- var $type;
- var $from;
- var $to;
- var $params;
- var $seen;
- var $sticky;
- var $height;
- var $game_id;
-
- //////////////////////////////////////////////////////////////////////////////
- //
- //////////////////////////////////////////////////////////////////////////////
- function EventCreator($DB)
- {
- $this->DB = $DB;
- $this->sticky = 0;
- $this->seen = 0;
- $this->height = 160;
- $this->game_id = round($_SESSION["game"]);
- }
- //////////////////////////////////////////////////////////////////////////////
- //
- //////////////////////////////////////////////////////////////////////////////
- function broadcast()
- {
-
- $query = "SELECT * FROM game".$this->game_id."_tb_empire WHERE active='1'";
-
- $recipients = $this->DB->Execute($query);
- // verify if duplicate are found , if yes skip them
- $query = "SELECT COUNT(*) FROM game".$this->game_id."_tb_event WHERE event_type='".$this->type."' AND event_from='".$this->from."' AND params='".$this->params."'";
- $rs = $this->DB->Execute($query);
- if (!$rs) trigger_error($this->DB->ErrorMsg());
- if ($rs->fields[0] != 0) return;
- while(!$recipients->EOF)
- {
- $query = "INSERT INTO game".$this->game_id."_tb_event (event_type,event_from,event_to,params,seen,sticky,date,height) ".
- "VALUES('".$this->type."','".$this->from."','".$recipients->fields["id"]."','".addslashes(serialize($this->params))."',".$this->seen.",".$this->sticky.",".time(NULL).",".$this->height.")";
- if (!$this->DB->Execute($query)) trigger_error($this->DB->ErrorMsg());
- $recipients->MoveNext();
- }
-
- // garbage collection
- $timeout_unseen = time(NULL) - CONF_UNSEEN_EVENT_TIMEOUT;
- $timeout_seen = time(NULL) - CONF_SEEN_EVENT_TIMEOUT;
- if (!$this->DB->Execute("DELETE FROM game".$this->game_id."_tb_event WHERE date < $timeout_unseen AND seen='0'")) trigger_error($this->DB->ErrorMsg());
- if (!$this->DB->Execute("DELETE FROM game".$this->game_id."_tb_event WHERE date < $timeout_seen AND seen='1'")) trigger_error($this->DB->ErrorMsg());
-
- }
- //////////////////////////////////////////////////////////////////////////////
- //
- //////////////////////////////////////////////////////////////////////////////
- function send()
- {
- global $GAME;
- // verify if duplicate are found , if yes skip them
- $query = "SELECT COUNT(*) FROM game".$this->game_id."_tb_event WHERE event_type='".$this->type."' AND event_from='".$this->from."' AND params='".$this->params."'";
- $rs = $this->DB->Execute($query);
- if (!$rs) trigger_error($this->DB->ErrorMsg());
- if ($rs->fields[0] != 0) return;
- if ((isset($GAME["ai_turn"])) && ($GAME["ai_turn"]==true)) return;
- $query = "INSERT INTO game".$this->game_id."_tb_event (event_type,event_from,event_to,params,seen,sticky,date,height) ".
- "VALUES('".$this->type."','".$this->from."','".$this->to."','".addslashes(serialize($this->params))."',".$this->seen.",".$this->sticky.",".time(NULL).",".$this->height.")";
- if (!$this->DB->Execute($query)) trigger_error($this->DB->ErrorMsg());
-
-
- // garbage collection
- $timeout_unseen = time(NULL) - CONF_UNSEEN_EVENT_TIMEOUT;
- $timeout_seen = time(NULL) - CONF_SEEN_EVENT_TIMEOUT;
- if (!$this->DB->Execute("DELETE FROM game".$this->game_id."_tb_event WHERE date < $timeout_unseen AND seen='0'")) trigger_error($this->DB->ErrorMsg());
- if (!$this->DB->Execute("DELETE FROM game".$this->game_id."_tb_event WHERE date < $timeout_seen AND seen='1'")) trigger_error($this->DB->ErrorMsg());
- }
- }
- ?>