I modified is_member allowing me to open and lock my raidbot to the public.
function is_member($uname)
{
$locktest = $this -> db -> select("SELECT value FROM settings WHERE value = 'locked'");
$result = $this -> db -> select("SELECT nickname FROM members WHERE id = " . $this -> aoc -> get_uid($uname));
if (!empty($result))
return 1;
$result = $this -> db -> select("SELECT id FROM guests WHERE id = " . $this -> aoc -> get_uid($uname));
if (!empty($result))
return 2;
if (empty($locktest))
return 2;
return false;
}
And my lock.php module:
<?php
$lock = new Lock($bot);
$commands["pgmsg"]["lock"] = &$lock;
$commands["pgmsg"]["open"] = &$lock;
/*
The Class itself...
*/
class Lock
{
var $bot;
var $lockstat;
/*
Constructor:
Hands over a referance to the "Bot" class.
*/
function Lock (&$bot)
{
$this -> bot = &$bot;
$this -> lock = array();
}
function pgmsg($name,$msg) {
if($this -> bot -> admin -> in_group($name, "admin")) {
if (preg_match("/^" . $this -> bot -> commpre . "lock/i", $msg)) {
$this -> bot -> db -> query("UPDATE settings SET value='locked' WHERE setting = 'lock'");
$this -> bot -> send_pgroup("<botname> has been locked to members only");
}
if (preg_match("/^" . $this -> bot -> commpre . "open/i", $msg)) {
$this -> bot -> db -> query("UPDATE settings SET value='open' WHERE setting = 'lock'");
$this -> bot -> send_pgroup("<botname> has been opened to the public");
}
}
else
$this -> bot -> send_pgroup("You must be an admin to use this command.");
}
}
?>
Also modifed the inc_pgleave function in bot.php to check whether an admin is leaving the raidbot channel and it's still unlocked.
function inc_pgleave($args)
{
$locktest = $this -> db -> select("SELECT value FROM settings WHERE value = 'locked'");
$user = $this -> aoc -> get_uname($args[1]);
if(empty($locktest) && $this -> admin -> in_group($user,"admin")) {
$this -> send_tell($user,"The bot is currently unlocked and you are an admin, please make sure the bot is locked after use");
$this -> send_tell("superadminname","The admin $user has left the raidbot unlocked");
}
$this -> log("PGRP", "LEAVE", $user . " left privategroup.");
if (!empty($this -> commands["pgleave"]))
{
$keys = array_keys($this -> commands["pgleave"]);
foreach ($keys as $key)
$this -> commands["pgleave"][$key] -> pgleave($user);
}
}
Obviously you would change "superadminname" to whoever owns the bot, or even code it to send it to all superadmins.
There are better ways to go about it as I wrote it fairly quickly when I wanted to open my bot to the public.