from phBot import * from threading import Timer import struct import QtBind import urllib.request name = 'RewardsCollector' version = 1.2 NewestVersion = 0 CollectMessageID = 0 gui = QtBind.init(__name__, name) button = QtBind.createButton(gui, 'button_collect', ' Collect Rewards ', 20, 20) def button_collect(): log('Plugin: Receiving all Rewards...') GetMessages() def handle_joymax(opcode,data): global CollectMessageID if opcode == 0x38DD and data[0] == 1 and data[1] == 1: log('Plugin: Reward Message Recevied...') CollectMessageID = struct.unpack_from('= 13: if Item: TotalItems += 1 return Size - TotalItems def teleported(): global CollectMessageID if CollectMessageID != 0: if GetRemainingSlots() < 3: log('Plugin: Not Enough Inventory Slots to Claim Items...') return Timer(5.0, receiveItemFromMessage, [CollectMessageID]).start() CollectMessageID = 0 def CheckForUpdate(): global NewestVersion #avoid request spam if NewestVersion == 0: try: req = urllib.request.Request('https://raw.githubusercontent.com/Bunker141/Phbot-Plugins/master/RewardsCollector.py', headers={'User-Agent': 'Mozilla/5.0'}) with urllib.request.urlopen(req) as f: lines = str(f.read().decode("utf-8")).split() for num, line in enumerate(lines): if line == 'version': NewestVersion = int(lines[num+2].replace(".","")) CurrentVersion = int(str(version).replace(".","")) if NewestVersion > CurrentVersion: log('Plugin: There is an update avaliable for [%s]!' % name) lblUpdate = QtBind.createLabel(gui,'There is an Update Avaliable, Press Here to Update',100,283) button1 = QtBind.createButton(gui, 'button_update', ' Update Plugin ', 350, 280) except: pass def button_update(): path = get_config_dir()[:-7] if os.path.exists(path + "Plugins/" + "RewardsCollector.py"): try: os.rename(path + "Plugins/" + "RewardsCollector.py", path + "Plugins/" + "RewardsCollectorBACKUP.py") req = urllib.request.Request('https://raw.githubusercontent.com/Bunker141/Phbot-Plugins/master/RewardsCollector.py', headers={'User-Agent': 'Mozilla/5.0'}) with urllib.request.urlopen(req) as f: lines = str(f.read().decode("utf-8")) with open(path + "Plugins/" + "RewardsCollector.py", "w+") as f: f.write(lines) os.remove(path + "Plugins/" + "RewardsCollectorBACKUP.py") log('Plugin Successfully Updated, Please Reload the Plugin to Use') except Exception as ex: log('Error Updating [%s] Please Update Manually or Try Again Later' %ex) CheckForUpdate() log('Plugin: [%s] Version %s Loaded' % (name,version))