From 935ca7027d0ae900aa1465fa4a686f3704e4dbb5 Mon Sep 17 00:00:00 2001 From: alexpolo1 Date: Mon, 20 Nov 2023 08:28:28 +0100 Subject: [PATCH] Create trader_win.py windows version --- trader_win.py | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 trader_win.py diff --git a/trader_win.py b/trader_win.py new file mode 100644 index 0000000..39b4b04 --- /dev/null +++ b/trader_win.py @@ -0,0 +1,106 @@ +import requests +import pyautogui +import time +from PIL import ImageGrab +import logging + +# Setup logging +logging.basicConfig(filename='minecraft_automation_log.txt', level=logging.INFO, format='%(asctime)s: %(message)s') + +def log_and_print(message): + print(message) + logging.info(message) + +def post_to_discord(message): + webhook_url = 'https://discord.com/api/webhooks/1171735460729606145/Fyls4_uD7it29TNo7LktQFynb3k1K-BHLx9Y4WqzDK806o1_bVTNz94JNc996kDi-jE6' + data = {"content": message} + response = requests.post(webhook_url, json=data) + log_and_print(f"Posted to Discord: {message}") + +def right_click(x, y): + pyautogui.moveTo(x, y) + log_and_print("Performing right click.") + pyautogui.rightClick() + +def drag_slider(start_x, start_y, end_x, end_y): + log_and_print("Dragging slider.") + pyautogui.mouseDown(start_x, start_y, button='left') + pyautogui.moveTo(end_x, end_y, duration=2) + pyautogui.mouseUp(button='left') + +def click(x, y): + pyautogui.moveTo(x, y) + log_and_print("Performing left click.") + pyautogui.click() + +def shift_click(x, y): + log_and_print("Performing shift click.") + pyautogui.keyDown('shift') + click(x, y) + pyautogui.keyUp('shift') + +def find_color_in_image(target_color, image): + width, height = image.size + for x in range(width): + for y in range(height): + if image.getpixel((x, y))[:3] == target_color: + return x, y + return None, None + +def check_trade_window(): + log_and_print("Checking for trade window...") + trade_window_area = (2314, 974, 3124, 1455) + screenshot = ImageGrab.grab(trade_window_area) + r, g, b = screenshot.getpixel((51, 69))[:3] + if (r, g, b) == (137, 51, 24): + log_and_print("Trade window detected.") + return True + else: + log_and_print("Trade window not detected. Adjusting position.") + adjustment_combinations = [('a', 0.1), ('d', 0.1), ('a', 0.2), ('d', 0.2)] + for _ in range(5): # Try up to three times + for key, duration in adjustment_combinations: + pyautogui.keyDown(key) + time.sleep(duration) + pyautogui.keyUp(key) + time.sleep(0.1) + right_click(2725, 1203) # Right-click without moving the mouse + time.sleep(3) + screenshot = ImageGrab.grab(trade_window_area) + r, g, b = screenshot.getpixel((51, 69))[:3] + if (r, g, b) == (137, 51, 24): + log_and_print("Trade window detected after adjustment.") + return True + + log_and_print("Trade window not found after adjustments.") + post_to_discord("Trade window not found.") + return False + +def trade_actions(): + right_click(2725, 1203) + time.sleep(1) + + if not check_trade_window(): + log_and_print("Trade window not detected after adjustments. Stopping script.") + return False + + drag_slider(2600, 1399, 2600, 1408) + time.sleep(3) + + log_and_print("Taking a screenshot for color search...") + screenshot = ImageGrab.grab() + target_color = (222, 227, 114) # The color to search for + found_x, found_y = find_color_in_image(target_color, screenshot) + + for _ in range(2): + if found_x is not None and found_y is not None: + log_and_print(f"Color found at ({found_x}, {found_y}). Clicking at this position.") + click(found_x, found_y) + else: + log_and_print("Color not found on the screen. Using fallback coordinates.") + click(2535, 1421) + time.sleep(1) + + for _ in range(2): + click(found_x, found_y) + shift_click(2994