add Usage support & add no argu func support

This commit is contained in:
dennydai 2016-06-16 17:20:20 +08:00
parent c464bcf46c
commit 1f47f997ba
3 changed files with 61 additions and 61 deletions

View File

@ -2,40 +2,43 @@
//init
$Pre_Type = $_SERVER['QUERY_STRING'];
require_once('config.php');
$plugins = array();
require(PATH.'classes'.DIRECTORY_SEPARATOR.TYPE.DIRECTORY_SEPARATOR.'Base.php');
require_once(PATH.'classes'.DIRECTORY_SEPARATOR.TYPE.DIRECTORY_SEPARATOR.'init.php');
//load plugins
$load_plugins = glob(PATH.'plugins'.DIRECTORY_SEPARATOR.'*.php');
foreach ($load_plugins as $key => $value) {
if ($value == PATH.'plugins'.DIRECTORY_SEPARATOR.'help.php') {
unset($load_plugins[$key]);
foreach ($TAGs as $TAG) {
foreach ($load_plugins as $value) {
$plugin_name = substr($value, strlen(PATH.'plugins'.DIRECTORY_SEPARATOR), -4);
eval(file($value)[1]);
$plugin_sendto = $from;
if (preg_match("/^(".preg_quote($TAG, '/').$plugin_name."|".preg_quote($TAG, '/').$plugin_name.preg_quote('@').BOT_NAME.") (.*)$/", $text, $matches)) {
$plugin_text = $matches[2];
require_once $value;
break;
}elseif (($TAG.$plugin_name == $text or $TAG.$plugin_name.'@'.BOT_NAME == $text) and ($plugins[$plugin_name]["needArgu"] == false)) {
require_once $value;
break;
}elseif ($TAG.$plugin_name == $text or $TAG.$plugin_name.'@'.BOT_NAME == $text) {
if ($plugins[$plugin_name]["usage"]!=null) {
$BOT->msg($plugin_sendto, "Usage:\n".$plugins[$plugin_name]["usage"]);
}else{
$BOT->msg($plugin_sendto, "Missing argument(s)");
}
break;
}
}
}
if (in_array(substr($text, 0, 1),$TAGs)) {
$TAG = substr($text, 0, 1);
}
foreach ($load_plugins as $value) {
$plugin_name = substr($value, strlen(PATH.'plugins'.DIRECTORY_SEPARATOR), -4);
if (preg_match("/^(".preg_quote($TAG, '/').$plugin_name."|".preg_quote($TAG, '/').$plugin_name.preg_quote('@').BOT_NAME.") (.*)$/", $text, $matches)) {
$plugin_text = $matches[2];
$plugin_sendto = $from;
require_once $value;
break;
}elseif ($TAG.$plugin_name == $text or $TAG.$plugin_name.'@'.BOT_NAME == $text) {
$plugin_sendto = $from;
$BOT->msg($plugin_sendto, "Missing argument(s)");
break;
}
}
require_once PATH.'plugins'.DIRECTORY_SEPARATOR.'help.php';
//function
function PluginSet($desc){
function PluginSet($desc,$usage=null,$needArgu=True,$visible=True){
global $plugins,$plugin_name,$TAG;
$plugins[] .= $TAG.$plugin_name." ".$desc;
$plugins[$plugin_name]["desc"] = '/'.$plugin_name." ".$desc;
$plugins[$plugin_name]["usage"] = $usage;
$plugins[$plugin_name]["needArgu"] = $needArgu;
$plugins[$plugin_name]["visible"] = $visible;
}
?>

View File

@ -2,40 +2,43 @@
//init
$Pre_Type = substr(substr($_SERVER['PHP_SELF'], strrpos($_SERVER['PHP_SELF'], '/')+1), 0, -4);
require_once('config.php');
$plugins = array();
require(PATH.'classes'.DIRECTORY_SEPARATOR.TYPE.DIRECTORY_SEPARATOR.'Base.php');
require_once(PATH.'classes'.DIRECTORY_SEPARATOR.TYPE.DIRECTORY_SEPARATOR.'init.php');
//load plugins
$load_plugins = glob(PATH.'plugins'.DIRECTORY_SEPARATOR.'*.php');
foreach ($load_plugins as $key => $value) {
if ($value == PATH.'plugins'.DIRECTORY_SEPARATOR.'help.php') {
unset($load_plugins[$key]);
foreach ($TAGs as $TAG) {
foreach ($load_plugins as $value) {
$plugin_name = substr($value, strlen(PATH.'plugins'.DIRECTORY_SEPARATOR), -4);
eval(file($value)[1]);
$plugin_sendto = $from;
if (preg_match("/^(".preg_quote($TAG, '/').$plugin_name."|".preg_quote($TAG, '/').$plugin_name.preg_quote('@').BOT_NAME.") (.*)$/", $text, $matches)) {
$plugin_text = $matches[2];
require_once $value;
break;
}elseif (($TAG.$plugin_name == $text or $TAG.$plugin_name.'@'.BOT_NAME == $text) and ($plugins[$plugin_name]["needArgu"] == false)) {
require_once $value;
break;
}elseif ($TAG.$plugin_name == $text or $TAG.$plugin_name.'@'.BOT_NAME == $text) {
if ($plugins[$plugin_name]["usage"]!=null) {
$BOT->msg($plugin_sendto, "Usage:\n".$plugins[$plugin_name]["usage"]);
}else{
$BOT->msg($plugin_sendto, "Missing argument(s)");
}
break;
}
}
}
if (in_array(substr($text, 0, 1),$TAGs)) {
$TAG = substr($text, 0, 1);
}
foreach ($load_plugins as $value) {
$plugin_name = substr($value, strlen(PATH.'plugins'.DIRECTORY_SEPARATOR), -4);
if (preg_match("/^(".preg_quote($TAG, '/').$plugin_name."|".preg_quote($TAG, '/').$plugin_name.preg_quote('@').BOT_NAME.") (.*)$/", $text, $matches)) {
$plugin_text = $matches[2];
$plugin_sendto = $from;
require_once $value;
break;
}elseif ($TAG.$plugin_name == $text or $TAG.$plugin_name.'@'.BOT_NAME == $text) {
$plugin_sendto = $from;
$BOT->msg($plugin_sendto, "Missing argument(s)");
break;
}
}
require_once PATH.'plugins'.DIRECTORY_SEPARATOR.'help.php';
//function
function PluginSet($desc){
function PluginSet($desc,$usage=null,$needArgu=True,$visible=True){
global $plugins,$plugin_name,$TAG;
$plugins[] .= $TAG.$plugin_name." ".$desc;
$plugins[$plugin_name]["desc"] = '/'.$plugin_name." ".$desc;
$plugins[$plugin_name]["usage"] = $usage;
$plugins[$plugin_name]["needArgu"] = $needArgu;
$plugins[$plugin_name]["visible"] = $visible;
}
?>

View File

@ -1,16 +1,10 @@
<?php
foreach ($TAGs as $TAG) {
if (preg_match("/^(".preg_quote($TAG, '/')."help|".preg_quote($TAG, '/')."help".preg_quote('@').BOT_NAME.")$/", $text)) {
foreach ($load_plugins as $value) {
$plugin_name = substr($value, strlen(PATH.'plugins'.DIRECTORY_SEPARATOR), -4);
$lines=file($value);
eval($lines[1]);
}
$plugin_list = HELP_BEGIN."\n";
foreach ($plugins as $value) {
$plugin_list .= "\n".$value;
}
$plugin_list .= "\n\n".HELP_END;
$BOT->msg($from, $plugin_list);
}
}
PluginSet("Show help",null,false);
$plugin_list = HELP_BEGIN."\n";
foreach ($plugins as $value) {
if ($value['visible'] == True) {
$plugin_list .= "\n".$value['desc'];
}
}
$plugin_list .= "\n\n".HELP_END;
$BOT->msg($from, $plugin_list);