Sorry, I've just been doing other things. I'll do it now.
Edit:
Ok, this should work.
<?php
$plugins->add_hook('datahandler_user_validate', 'botscout_validate');
function botscout_info()
{
return array(
'name' => 'Bot Scout',
'description' => 'BotScout is a free anti-bot, anti-spam service.',
'website' => 'http://www.botscout.com/',
'author' => 'MrMike',
'authorsite' => 'http://www.botscout.com/',
'version' => '1.0',
'guid' => 'Replace this with the given guid.'
);
}
function botscout_activate()
{
global $db, $mybb;
$botscout_group = array(
"gid" => "NULL",
"name" => "botscout",
"title" =>"Bot Scout Settings",
"description" => "Settings for the Bot Scout plugin.",
"disporder" => "1234567890",
"isdefault" => "no",
);
$db->insert_query("settinggroups", $botscout_group);
$gid = $db->insert_id();
$botscout_setting = array(
"sid" => "NULL",
'name' => 'botscout_ip',
'title' => 'IP Check',
'description' => 'Check the users IP against the Bot Scout database upon registration.',
'optionscode' => 'yesno',
'value' => '1',
'disporder' => '1',
'gid' => intval($gid),
);
$db->insert_query('settings', $botscout_setting);
$botscout_setting = array(
"sid" => "NULL",
'name' => 'botscout_ip_req',
'title' => 'IP Check Complaints',
'description' => 'How many complaints against the ip must be in the database before disallowing the user?',
'optionscode' => 'text',
'value' => '1',
'disporder' => '2',
'gid' => intval($gid),
);
$db->insert_query('settings', $botscout_setting);
$botscout_setting = array(
"sid" => "NULL",
'name' => 'botscout_email',
'title' => 'Email Check',
'description' => 'Check the users email against the Bot Scout database upon registration.',
'optionscode' => 'yesno',
'value' => '1',
'disporder' => '3',
'gid' => intval($gid),
);
$db->insert_query('settings', $botscout_setting);
$botscout_setting = array(
"sid" => "NULL",
'name' => 'botscout_email_req',
'title' => 'Email Check Complaints',
'description' => 'How many complaints against the email must be in the database before disallowing the user?',
'optionscode' => 'text',
'value' => '1',
'disporder' => '4',
'gid' => intval($gid),
);
$db->insert_query('settings', $botscout_setting);
$botscout_setting = array(
"sid" => "NULL",
'name' => 'botscout_username',
'title' => 'Username Check',
'description' => 'Check the users username against the Bot Scout database upon registration.',
'optionscode' => 'yesno',
'value' => '1',
'disporder' => '5',
'gid' => intval($gid),
);
$db->insert_query('settings', $botscout_setting);
$botscout_setting = array(
"sid" => "NULL",
'name' => 'botscout_username_req',
'title' => 'Username Check Complaints',
'description' => 'How many complaints against the username must be in the database before disallowing the user?',
'optionscode' => 'text',
'value' => '1',
'disporder' => '6',
'gid' => intval($gid),
);
$db->insert_query('settings', $botscout_setting);
$botscout_setting = array(
"sid" => "NULL",
'name' => 'botscout_api',
'title' => 'API Key',
'description' => 'Enter your Bot Scout API key here.',
'optionscode' => 'text',
'value' => '',
'disporder' => '7',
'gid' => intval($gid),
);
$db->insert_query('settings', $botscout_setting);
rebuild_settings();
}
function botscout_deactivate()
{
global $mybb, $db;
$db->delete_query("settinggroups","name='botscout'");
$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='botscout_ip'");
$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='botscout_email'");
$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='botscout_username'");
$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='botscout_api'");
$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='botscout_ip_req'");
$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='botscout_email_req'");
$db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='botscout_username_req'");
}
function botscout_validate($datahandler) {
global $mybb, $db, $user, $lang;
if($mybb->settings['botscout_email'] == 1)
$XMAIL = "&mail=".urlencode($user['email']);
if($mybb->settings['botscout_ip'] == 1)
$XIP = "&ip=".$user['regip'];
if($mybb->settings['botscout_username'] == 1)
$XNAME = "&name=".urlencode($user['username']);
if($mybb->settings['botscout_api'] != "")
$APIKEY = "&key=".urlencode($mybb->settings['botscout_api']);
$test_string = "http://botscout.com/test/?multi".$XMAIL.$XIP.$XNAME.$APIKEY;
if(function_exists('file_get_contents')){
$data = file_get_contents($test_string);
}else{
$ch = curl_init($test_string);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
}
$botdata = explode('|', $data);
if(substr($returned_data, 0,1) == '!'){
$datahandler->set_error("Error: $returned_data");
}
if($botdata[0] == "Y") {
if($botdata['3'] >= intval($mybb->settings['botscout_ip_req'])) {
$datahandler->set_error($lang->error_banned);
}
if($botdata['5'] >= intval($mybb->settings['botscout_email_req'])) {
$datahandler->set_error('banned_email');
}
if($botdata['7'] >= intval($mybb->settings['botscout_username_req'])) {
$datahandler->set_error('banned_username');
}
}
}
?>
Remember when you go to submit it, replace the guid with the one given to you before putting it in the zip file. Also, as for the ban, the username will be jammerx22 and any ip's associated it, my email was not banned as I was using a banned one for testing purposes.
Edit 2:
Just updated code a bit, forgot something.
Regards,
Jammerx2