using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Data.Common;
using System.Data;
using AoLib.Utils;
using MySql.Data.MySqlClient;
using SQLHelper;
using HelpBot;
namespace VhaBot.Plugins
{
public class HelpBotStorePlugin : PluginBase
{
private MySqlConnection conn;
private string StoreSlave = "helpstore";
public HelpBotStorePlugin()
{
this.Settings.Name = "HelpBot Store Plugin";
this.Settings.InternalName = "HelpBotStorePlugin";
this.Settings.Version = 1;
this.Settings.Author = "Daniel Eriksson";
this.Settings.RegisterCommand("store", UserLevel.Guest);
this.Settings.RegisterCommand("
/// Syncs local DB with Remote DB.
///
private string GetLastItems()
{
string message = "";
try
{
conn = new MySqlConnection(HelpBotSettings.MySQLConnectString);
conn.Open();
DataRowCollection drc = SQL.Select("SELECT ", conn);
foreach (DataRow dr in drc)
{
}
}
catch (Exception ex)
{
Bot.Debug("Can't connect to database: "+ ex.ToString());
message = "Could not connect to the HelpBot Store database...";
}
finally
{
conn.Dispose();
conn.Close();
}
return message;
}
public override void OnInstall()
{
}
public override void OnUninstall()
{
}
public override void OnLoad()
{
Bot.SlaveEvents.PrivateChannelMessageEvent += new PrivateChannelMessageSlaveHandler(SlaveEvents_PrivateChannelMessageEvent);
}
void SlaveEvents_PrivateChannelMessageEvent(BotShell sender, SlaveArgs slave, PrivateChannelMessageArgs e)
{
Bot.Debug(slave.Slave.ToLower() + " - " + slave.SlaveID + " - " + e.Channel.ToLower());
if (slave.Slave.ToLower() == StoreSlave)
{
Bot.SendPrivateMessage("Iriphatz", String.Format("Well screw you to :D - {0}", slave.Slave));
}
// Bot.SendPrivateChannelMessage(slave.SlaveID, String.Format("Well screw you to :D - {0}", slave.Slave));
}
public override void OnUnload()
{
if (conn != null)
if (conn.State != ConnectionState.Closed)
conn.Close();
Bot.SlaveEvents.PrivateChannelMessageEvent -= new PrivateChannelMessageSlaveHandler(SlaveEvents_PrivateChannelMessageEvent);
}
public override void OnCommand(BotShell sender, CommandArgs e)
{
switch (e.Command)
{
case "1 && $guildchattell==0)
{
$mySQLtablename = "helpbotstore";
$connection = mysql_connect($mySQLhostname, $mySQLusername, $mySQLpassword) or die(mysql_error());
mysql_select_db($mySQLdatabase) or die(mysql_error());
$count = mysql_fetch_array(mysql_db_query($mySQLdatabase, "SELECT count(*) FROM `$mySQLtablename` WHERE
`owner`='$sender'", $connection)) or die(mysql_error());;
mysql_close($connection);
$reply="$total_number_of_items items added, ".$count[0]." total. To see them, do /tell $myname items";
send_message($sender,$reply,"\0",$guildchattell);
}
return;
*/
break;
case "store join":
if (e.FromSlave == true)
{
if (e.SlaveArgs.Slave.ToLower() == StoreSlave)
{
Bot.SendReply(e, "Inviting you to the Store Channel...");
Bot.PrivateChannel.Invite(e.SenderID, e.SlaveArgs.SlaveID);
}
}
break;
case "store invite":
if (e.FromSlave == true)
{
if (e.SlaveArgs.Slave.ToLower() == StoreSlave)
{
if (e.Args.Length == 1)
{
Bot.SendReply(e, String.Format("Inviting to {0} the Store Channel...", Bot.UppercaseFirst(e.Args[0])));
Bot.SendPrivateMessage(e.Args[0], String.Format("You got invited to the Store Channel by {0}", Bot.UppercaseFirst(e.Sender)));
Bot.PrivateChannel.Invite(e.Args[0], e.SlaveArgs.SlaveID);
}
else
{
Bot.SendReply(e, "Who should I invite to the Store channel? Syntax: store invite [name]");
}
}
}
break;
case "store leave":
if (e.FromSlave == true)
{
if (e.SlaveArgs.Slave.ToLower() == StoreSlave)
{
Bot.SendReply(e, "Kicking you from Store Channel...");
Bot.PrivateChannel.Kick(e.SenderID, e.SlaveArgs.SlaveID);
}
}
break;
case "store kick":
if (e.Args.Length == 1)
{
if (e.FromSlave == true)
{
if (e.SlaveArgs.Slave.ToLower() == StoreSlave)
{
Bot.SendReply(e, String.Format("Kicking {0} from the Store Channel...", Bot.UppercaseFirst(e.Args[0])));
Bot.PrivateChannel.Kick(e.Args[0], e.SlaveArgs.SlaveID);
}
}
}
else
{
Bot.SendReply(e, "Who should I kick from the Store channel? Syntax: store kick [name]");
}
break;
case "store kick all":
if (e.FromSlave == true)
{
if (e.SlaveArgs.Slave.ToLower() == StoreSlave)
{
Bot.SendReply(e, "Kicking all from the Store Channel...");
Bot.PrivateChannel.KickAll(e.SlaveArgs.SlaveID);
}
}
break;
case "store clear":
/*
* if ($word1=="delete" && $word2=="" && $word3=="")
{
$connection = mysql_connect($mySQLhostname, $mySQLusername, $mySQLpassword) or die(mysql_error());
mysql_select_db($mySQLdatabase) or die(mysql_error());
$query = "DELETE FROM `helpbotstore` WHERE `owner` = '$sender'";
$result = mysql_query($query,$connection) or die(mysql_error());
mysql_close($connection);
$reply="All your items are gone now. To see your items, do /tell $myname items";
}
*/
break;
case "store items":
/*
* if ($word1=="items" && $word3=="")
{
$nametolookup = ucfirst(ereg_replace('[^a-z0-9]',"",$word2));
if (strlen($nametolookup)<4)
$nametolookup = $sender;
$mySQLtablename = "helpbotstore";
$connection = mysql_connect($mySQLhostname, $mySQLusername, $mySQLpassword) or die(mysql_error());
mysql_select_db($mySQLdatabase) or die(mysql_error());
$count = mysql_fetch_array(mysql_db_query($mySQLdatabase, "SELECT count(*) FROM `$mySQLtablename` WHERE `owner`='$nametolooku$
$query = "SELECT * FROM `$mySQLtablename` WHERE `owner` = '$nametolookup' ORDER BY `id` DESC LIMIT 0,25";
$result = mysql_query($query, $connection) or die(mysql_error());
$i=0;
$window_contents="$nametolookup's 25 most recent items:\nVisit the Helpbot Store: #L \"http://helpbot.vhabot.net/\" \"/start $
while($myrow = mysql_fetch_array($result))
{
$i++;
$helpbotstore_lowid = $myrow["lowid" ];
$helpbotstore_highid = $myrow["highid" ];
$helpbotstore_ql = $myrow["ql" ];
$helpbotstore_itemdesc = $myrow["itemdesc" ];
if (strlen($window_contents)+400<$maximum_outgoing_size)
$window_contents.=" #L \"/make\" \"/tell $myname make $helpbotstore_lowid $helpbot$
}
mysql_close($connection);
$reply = "you have ".chr(17).$count[0]." items".chr(18)." for $nametolookup";
if ($count[0]>25)
$window_contents .= " visit the Helpbot Store to see the rest of the items\n";
$window_contents .= "\n\n NOTE: you can add many items in one $
send_message($sender,$reply,$window_contents,$guildchattell);
return;
}
*/
break;
case "store":
break;
}
}
}
}