GenisysPro  for Minecraft PE/Windows 10 v1.1.x
Feature-rich server software for Minecraft PE and Windows 10 Edition
BanList Class Reference

Public Member Functions

 __construct ($file)
 
 isEnabled ()
 
 setEnabled ($flag)
 
 getEntries ()
 
 isBanned ($name)
 
 add (BanEntry $entry)
 
 addBan ($target, $reason=null, $expires=null, $source=null)
 
 remove ($name)
 
 removeExpired ()
 
 load ()
 
 save ($flag=true)
 

Constructor & Destructor Documentation

◆ __construct()

__construct (   $file)
Parameters
string$file
41  {
42  $this->file = $file;
43  }

Member Function Documentation

◆ add()

add ( BanEntry  $entry)
Parameters
BanEntry$entry
87  {
88  $this->list[$entry->getName()] = $entry;
89  $this->save();
90  }

◆ addBan()

addBan (   $target,
  $reason = null,
  $expires = null,
  $source = null 
)
Parameters
string$target
string$reason
\DateTime$expires
string$source
Returns
BanEntry
100  {
101  $entry = new BanEntry($target);
102  $entry->setSource($source != null ? $source : $entry->getSource());
103  $entry->setExpires($expires);
104  $entry->setReason($reason != null ? $reason : $entry->getReason());
105 
106  $this->list[$entry->getName()] = $entry;
107  $this->save();
108 
109  return $entry;
110  }

◆ getEntries()

getEntries ( )
Returns
BanEntry[]
62  {
63  $this->removeExpired();
64 
65  return $this->list;
66  }

◆ isBanned()

isBanned (   $name)
Parameters
string$name
Returns
bool
73  {
74  $name = strtolower($name);
75  if(!$this->isEnabled()){
76  return false;
77  }else{
78  $this->removeExpired();
79 
80  return isset($this->list[$name]);
81  }
82  }

◆ isEnabled()

isEnabled ( )
Returns
bool
48  {
49  return $this->enabled === true;
50  }

◆ load()

load ( )
131  {
132  $this->list = [];
133  $fp = @fopen($this->file, "r");
134  if(is_resource($fp)){
135  while(($line = fgets($fp)) !== false){
136  if($line{0} !== "#"){
137  $entry = BanEntry::fromString($line);
138  if($entry instanceof BanEntry){
139  $this->list[$entry->getName()] = $entry;
140  }
141  }
142  }
143  fclose($fp);
144  }else{
145  MainLogger::getLogger()->error("Could not load ban list");
146  }
147  }

◆ remove()

remove (   $name)
Parameters
string$name
115  {
116  $name = strtolower($name);
117  if(isset($this->list[$name])){
118  unset($this->list[$name]);
119  $this->save();
120  }
121  }

◆ removeExpired()

removeExpired ( )
123  {
124  foreach($this->list as $name => $entry){
125  if($entry->hasExpired()){
126  unset($this->list[$name]);
127  }
128  }
129  }

◆ save()

save (   $flag = true)
Parameters
bool$flag
152  {
153  $this->removeExpired();
154  $fp = @fopen($this->file, "w");
155  if(is_resource($fp)){
156  if($flag === true){
157  fwrite($fp, "# Updated " . strftime("%x %H:%M", time()) . " by " . Server::getInstance()->getName() . " " . Server::getInstance()->getPocketMineVersion() . "\n");
158  fwrite($fp, "# victim name | ban date | banned by | banned until | reason\n\n");
159  }
160 
161  foreach($this->list as $entry){
162  fwrite($fp, $entry->getString() . "\n");
163  }
164  fclose($fp);
165  }else{
166  MainLogger::getLogger()->error("Could not save ban list");
167  }
168  }

◆ setEnabled()

setEnabled (   $flag)
Parameters
bool$flag
55  {
56  $this->enabled = (bool) $flag;
57  }

The documentation for this class was generated from the following file: