All pastes #44501 Raw Edit

Miscellany

public text v1 · immutable
#44501 ·published 2006-03-04 23:13 UTC
rendered paste body
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("<a href=\"itemref://", UserLevel.Guest);

            this.Settings.RegisterCommand("store", UserLevel.Guest);

            this.Settings.RegisterCommand("store clear", UserLevel.Guest);
            this.Settings.RegisterCommandAlias("store delete", "store clear");
            this.Settings.RegisterCommandAlias("store del", "store clear");

            this.Settings.RegisterCommand("store join", UserLevel.Guest);
            this.Settings.RegisterCommand("store kick", UserLevel.Leader);
            this.Settings.RegisterCommand("store leave", UserLevel.Guest);
            this.Settings.RegisterCommand("store kick all", UserLevel.Guest);

            this.Settings.RegisterCommand("store invite", UserLevel.Leader);

            this.Settings.RegisterCommand("store last", UserLevel.Guest);
            
            this.Settings.RegisterCommand("store items", UserLevel.Guest);
        }

        /// <summary>
        /// Syncs local DB with Remote DB.
        /// </summary>
        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 "<a href=\"itemref://":
                    /*
                     * 
                                                $itemname = html_entity_decode($itemname);
                                                $itemname = mysql_escape_string($itemname);

                                                $mySQLtablename  = "helpbotstore";
                                                $connection = mysql_connect($mySQLhostname, $mySQLusername, $mySQLpassword) or die(mysql_error());
                                                mysql_select_db($mySQLdatabase) or die(mysql_error());

                                                $query = "INSERT INTO `$mySQLtablename` ( `id` , `lowid` , `highid` , `ql` , `itemdesc` ,
                                                `owner` , `entrydate` ) VALUES ('', '$lowID', '$highID', '$ql', '$itemname', '$sender', NOW( ))";
                                                $result = mysql_query($query, $connection)  or die(mysql_error());
                                                mysql_close($connection);
*/
                    break;

                case "store":
                    /*                                 if ($total_number_of_items>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.="</font><font color=#FBFB40> #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 .= "</font><font color=#FBFB40> visit the Helpbot Store to see the rest of the items\n";
                                                    $window_contents .= "\n\n</font><font color=#FBFB40> NOTE:  you can add many items in </font><font color=#F96096> one </font>$
                                                    send_message($sender,$reply,$window_contents,$guildchattell);
                                                    return;
                                            }
                    */
                    break;
                case "store":

                    break;
            }
        }
    }
}