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; } } } }