Example #1
0
        private void OnGotPM(object sender, BasicCommunication.MessageParser.Got_PM_EventArgs e)
        {
            string Message = e.Message.ToLower();

            if (Message[0] != '#')
            {
                Message = "#" + Message;
            }

            string[] CommandArray = Message.Split(' ');

            if (CommandArray[0] == "#openstorage" || CommandArray[0] == "#os")
            {
                if (CommandArray.Length > 2)
                {
                    goto WrongArguments;
                }
                bool disabled = TheMySqlManager.CheckIfCommandIsDisabled("#openstorage", Settings.botid);
                if (disabled == true)
                {
                    TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "This command is disabled"));
                    return;
                }
                if (TheMySqlManager.GetUserRank(e.username, Settings.botid) < TheMySqlManager.GetCommandRank("#openstorage", Settings.botid))
                {
                    TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "You are not authorized to use this command!"));
                    return;
                }
                string npcName = "";
                if (CommandArray.Length > 1)
                {
                    npcName = CommandArray[1];
                }
                if (npcName == "")
                {
                    //get the npc name from their storage selection...
                    npcName = TheMySqlManager.getStorageNPCName();
                }
                int storageActorID         = TheActorHandler.GetUserIDFromname(npcName);
                ActorHandler.Actor myActor = (ActorHandler.Actor)TheActorHandler.ActorsHashTable[TheActorHandler.GetUserIDFromname(npcName)];
                try
                {
                    if (myActor.kind_of_actor == 2)
                    {
                        TheTCPWrapper.Send(CommandCreator.TOUCH_PLAYER((uint)storageActorID));
                        TheTCPWrapper.Send(CommandCreator.RESPOND_TO_NPC((ushort)storageActorID));
                        TradeHandler.openingStorage = true;
                        TradeHandler.storageOpen    = false;
                        TradeHandler.username       = e.username;
                        Settings.IsTradeBot         = false;
                    }
                }
                catch
                {
                    TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "It appears that " + npcName + " is not a storage NPC! (or I'm not in range...)"));
                }
            }
            return;

WrongArguments:
            TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "[Here is the usage of the #openstorage command: "));
            TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "[#openstorage <name>                            "));
            TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "[-----------------------------------------------"));
            TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "[Example: #openstorage                          "));
            TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "[Example: #openstorage raven                    "));
            return;
        }
Example #2
0
        private void OnGotPM(object sender, BasicCommunication.MessageParser.Got_PM_EventArgs e)
        {
            string Message = e.Message.ToLower().Replace("\'", "\\\'").Replace("\"", "\\\"");


            if (Message[0] != '#')
            {
                Message = "#" + Message;
            }

            string[] CommandArray = Message.Split(' ');
            if (CommandArray[0] != "#prize" && CommandArray[0] != "#prizes")
            {
                return;
            }
            if (claimingPrize || TheTradeHandler.claimingPrize)
            {
                TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "You're already claiming your prize!"));
                TheTCPWrapper.Send(CommandCreator.EXIT_TRADE());
                return;
            }
            claimingPrize = false;
            acceptedOnce  = false;

            if (!TheMySqlManager.IGamble())
            {
                TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "I don't gamble, sorry!"));
                return;
            }

            if (Settings.IsTradeBot == false)
            {
                TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "Sorry, I am not a trade bot!"));
                return;
            }

            int rank = TheMySqlManager.GetUserRank(e.username, Settings.botid);

            if (rank < TheMySqlManager.GetCommandRank("#prize", Settings.botid))
            {
                TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "You are not authorized to use this command!"));
                return;
            }

            if (TheMySqlManager.CheckIfBannedGuild(e.username, Settings.botid) < 0)
            {
                TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "You are not authorized to use this command!"));
                return;
            }

            if (this.TheTradeHandler.AmITrading() && e.username != TradeHandler.username)
            {
                TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "I am currently trading, please retry shortly."));
                return;
            }
            if (TheTradeHandler.Gambling)
            {
                TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "You cannot calim prizes if you're already gambling, cancel and reissue the command!"));
                return;
            }
            if (CommandArray.Length != 2)
            {
                goto WrongArguments;
            }

            username = e.username;
            string argument = CommandArray[1];

            switch (argument)
            {
            case "high":
            case "low":
            case "medium":
                TheMySqlManager.displayPrizes(argument, e.username);
                break;

            case "claim":
                if (!acceptedOnce)
                {
                    Int16 TradePartnerUserID = TheActorHandler.GetUserIDFromname(username);
                    //Console.WriteLine("usernames: " + TradeHandler.username + " " + username);
                    if (!TheTradeHandler.Trading || (TradeHandler.username != username))
                    {
                        TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "You must be trading with me first!"));
                        TheTCPWrapper.Send(CommandCreator.TRADE_WITH(TradePartnerUserID));
                        claimingPrize = true;
                    }
                    else if (TheTradeHandler.Trading && itemCount == 0)
                    {
                        TheTradeHandler.claimingPrize = true;
                        claimingPrize = true;
                        itemCount     = TheMySqlManager.putPrizesInWindow(username);
                    }
                }
                break;

            case "list":
                TheMySqlManager.listPrizesWon(username);
                //TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "Not yet implemented, sorry..."));
                break;

            default:
                goto WrongArguments;
            }
            return;

WrongArguments:
            TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "[----------------------------------------"));
            TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "[Here is the usage of the #prize command:"));
            TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "[#prize <level> list prizes you can win  "));
            TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "[#prize <claim> claim your prize         "));
            TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "[#prize <list> lists prizes you can claim"));
            TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "[----------------------------------------"));
            TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "[Example: #prize high                    "));
            TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "[Example: #prize medium                  "));
            TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "[Example: #prize low                     "));
            TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "[Example: #prize claim                   "));
            TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "[Example: #prize list                    "));
            TheTCPWrapper.Send(CommandCreator.SEND_PM(e.username, "[----------------------------------------"));
            return;
        }