Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import subprocess
- import pyautogui
- import os
- import time
- from googletrans import Translator
- translator = Translator()
- listeners = []
- def execBatch(arg, feedback):
- if feedback == True:
- p = subprocess.check_output(arg)
- return str(p)[2:][:-1] # remove the first 2 and the last char from the string as they are b' and '
- else:
- p = subprocess.run(arg)
- minecraft = [x for x in execBatch(("wmctrl", "-l"), True).split("0") if "Minecraft" in x]
- minecraft = " ".join("".join(minecraft).split(" ")[2:]).replace("\\n", "")
- print(minecraft)
- print("Found minecraft as: " + minecraft)
- chat = ""
- for subdir in os.listdir("/home/"):
- try:
- chat = "/home/" + subdir + "/.minecraft/logs/latest.log"
- execBatch(("tail", "-1", chat), False)
- print("Found chat as: " + chat)
- except:
- pass
- latestMessage = ""
- def focus():
- global minecraft
- arg = ("wmctrl", "-a", minecraft)
- execBatch(arg, False)
- def readChat():
- global latestMessage
- global chat
- message = execBatch(("tail", "-1", chat), True)
- if message != latestMessage:
- latestMessage = message
- return True # new message
- else:
- return False # no new message
- def messagePerson(message, reciever):
- focus()
- pyautogui.hotkey("shift", "7")
- pyautogui.typewrite(str("message " + reciever + message))
- pyautogui.press("enter")
- print("Sent: " + message + " To: " + reciever)
- def writeToChat(message):
- focus()
- time.sleep(0.1)
- pyautogui.typewrite("t")
- time.sleep(0.1)
- for char in message:
- if char in "/!%&()=?":
- if char == "/":
- pyautogui.hotkey("shift", "7")
- elif char == "!":
- pyautogui.hotkey("shift", "1")
- elif char == "%":
- pyautogui.hotkey("shift", "5")
- elif char == "&":
- pyautogui.hotkey("shift", "6")
- elif char == "(":
- pyautogui.hotkey("shift", "8")
- elif char == "(":
- pyautogui.hotkey("shift", "8")
- elif char == ")":
- pyautogui.hotkey("shift", "9")
- elif char == "=":
- pyautogui.hotkey("shift", "0")
- elif char == "?":
- pyautogui.hotkey("shift", "?")
- else:
- pyautogui.typewrite(char)
- pyautogui.press("enter")
- def getMessageToSend(recv, msg, priv):
- global listeners
- if priv == True:
- if "colors" in msg:
- send = "&00&11&22&33&44&55&66&77&88&99&aa&bb&cc&dd&ee&ff&ll&mm&nn&oo&rr"
- elif "ping" in msg:
- send = "pong"
- elif "eval" in msg:
- try:
- print(msg)
- send = "That evaluates to: " + eval(msg.split("eval ")[1].replace("\n", ""))
- except Exception as e:
- print(e)
- return
- else:
- return
- messagePerson(send, recv)
- else:
- if "colors" in msg:
- send = "&00&11&22&33&44&55&66&77&88&99&aa&bb&cc&dd&ee&ff&ll&mm&nn&oo&rr"
- elif "ping" in msg:
- send = "pong"
- elif "nnew" in msg or "marwenn" in msg:
- if "hi" in msg or "hello" in msg:
- send = "hello " + recv + "!"
- elif "addListener" in msg:
- listeners.append((str(msg.split(" ")[2]), str(msg.replace("\\n", "").split(" ")[3:])))
- return
- elif "delListener" in msg:
- listeners.remove(str(msg.split(" ")[2]))
- return
- elif "tp" in msg:
- if msg.split("tp ")[1].replace("\\n", "") != "":
- send = "/tp " + msg.split("tp ")[1].replace("\\n", "")
- else:
- send = "/tp " + recv
- elif "eval" in msg:
- try:
- print(msg)
- send = "That evaluates to: " + str(eval(str(msg.split("eval ")[1].replace("\\n", ""))))
- except Exception as e:
- print(e)
- return
- else:
- for listening in listeners:
- print(listening)
- if str(listening[0]) in str(msg):
- print(listening[0])
- print(str("".join(listening[1:])).replace("']", "").replace("['", ""))
- eval(str("".join(listening[1:])).replace("']", "").replace("['", ""))
- else:
- print(msg + " " + listening[0])
- else:
- return
- else:
- return
- writeToChat(send)
- def translateAndSend(sender, msg):
- translation = translator.translate(msg.replace("\\n", ""), dest="en")
- if translation.src != "en" and len(msg) > 7 and "nnew" not in msg:
- print(translation.text)
- writeToChat("English: " + translation.text)
- else:
- getMessageToSend(sender, msg, False)
- def main():
- global latestMessage
- while True:
- if readChat():
- print(latestMessage)
- toSend = ""
- if " messages you: " in str(latestMessage):
- sender, msg = latestMessage.replace(" messages you: "," [CHAT] ").split(" [CHAT] ")[1:3]
- getMessageToSend(sender, msg, True)
- elif "[CHAT]" in latestMessage and "Builder" in latestMessage or "Student" in latestMessage or "Admin" in latestMessage or "Mod" in latestMessage:
- sender, msg = latestMessage.replace(": ", " | ").split(" | ")[2:4]
- translateAndSend(sender, msg)
- elif "irc" in latestMessage:
- sender = latestMessage.replace("\\xc2\\xa77", "\\xc2\\xa7f").split("\\xc2\\xa7f")[1]
- msg = latestMessage.split("\\xc2\\xa7r")[1]
- translateAndSend(sender, msg)
- else:
- pass
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement