@@ -845,6 +845,63 @@ begin
845845 Result := SleepUntil(not Self.HasItems(), 200, 2000);
846846end;
847847
848+ (*
849+ ## GrandExchangeOffer.CreateBuyOffer
850+ ```pascal
851+ function TRSGrandExchangeOffer.CreateBuyOffer(itemName : String; price, quantity : Integer = -1) : Boolean;
852+ ```
853+
854+ Attempts to create a buy offer for the specified `itemName`, `price` and `quantity`.
855+
856+ Example:
857+ ```pascal
858+ if GrandExchangeOffer.CreateBuyOffer('Abyssal whip', 1500000, 1) then
859+ WriteLn('Buy offer created successfully!');
860+ ```
861+ *)
862+ function TRSGrandExchangeOffer.CreateBuyOffer(itemName: String; price, quantity: Integer = -1) : Boolean;
863+ begin
864+ if not Self.IsOpen() then Exit;
865+ if (Self.OfferInterface <> EGEOfferInterface.SETUP) or (Self.OfferType <> EGEOfferType.BUY) then Exit;
866+
867+ if not GrandExchangeChat.WaitOpen(2000, 250) then Exit;
868+ if not GrandExchangeChat.SearchText[itemName] then Exit;
869+ if not GrandExchangeChat.Click(itemName) then Exit;
870+ if not SleepUntil(Self.Item.ToLower() = itemName.ToLower(), 250, 2000) then Exit;
871+
872+ if (quantity <> -1) and not Self.Quantity[quantity] then Exit;
873+ if (price <> -1) and not Self.Price[price] then Exit;
874+
875+ Result := Self.Confirm();
876+ end;
877+
878+ (*
879+ ## GrandExchangeOffer.CreateSellOffer
880+ ```pascal
881+ function TRSGrandExchangeOffer.CreateSellOffer(itemName : String; price, quantity : Integer = -1) : Boolean;
882+ ```
883+
884+ Attempts to create a sell offer for the specified `itemName`, `price` and `quantity`.
885+
886+ Example:
887+ ```pascal
888+ if GrandExchangeOffer.CreateSellOffer('Abyssal whip', 1500000, 1) then
889+ WriteLn('Sell offer created successfully!');
890+ ```
891+ *)
892+ function TRSGrandExchangeOffer.CreateSellOffer(itemName: String; price, quantity: Integer = -1) : Boolean;
893+ begin
894+ if not Self.IsOpen() then Exit;
895+ if (Self.OfferInterface <> EGEOfferInterface.SETUP) or (Self.OfferType <> EGEOfferType.SELL) then Exit;
896+
897+ if not Inventory.Items.Click(itemName) then Exit;
898+ if not SleepUntil(Self.Item.ToLower() = itemName.ToLower(), 250, 2000) then Exit;
899+
900+ if (quantity <> -1) and not Self.Quantity[quantity] then Exit;
901+ if (price <> -1) and not Self.Price[price] then Exit;
902+
903+ Result := Self.Confirm();
904+ end;
848905
849906var
850907(*
0 commit comments