def setupRcon(self, serverMessage=None): try: Events = None if self.arma_rcon: Events = self.arma_rcon.Events.copy() del self.arma_rcon self.arma_rcon = bec_rcon.ARC( self.rcon_settings["ip"], self.rcon_settings["password"], self.rcon_settings["port"], {'timeoutSec': self.rcon_settings["timeoutSec"]}) if Events: #restore Event Handlers self.arma_rcon.Events = Events else: #Add Event Handlers self.arma_rcon.add_Event("received_ServerMessage", self.rcon_on_msg_received) self.arma_rcon.add_Event("on_disconnect", self.rcon_on_disconnect) if (serverMessage): self.arma_rcon.serverMessage = serverMessage else: #Extend the chat storage data = self.arma_rcon.serverMessage.copy() self.arma_rcon.serverMessage = deque(maxlen=500) #Default: 100 data.reverse() for d in data: self.arma_rcon.serverMessage.append(d) except Exception as e: log.print_exc() log.error(e)
def setupRcon(self, serverMessage=None): self.arma_rcon = bec_rcon.ARC( self.rcon_settings["ip"], self.rcon_settings["password"], self.rcon_settings["port"], {'timeoutSec': self.rcon_settings["timeoutSec"]}) #Add Event Handlers self.arma_rcon.add_Event("received_ServerMessage", self.rcon_on_msg_received) self.arma_rcon.add_Event("on_disconnect", self.rcon_on_disconnect) if (serverMessage): self.arma_rcon.serverMessage = serverMessage else: #Extend the chat storage data = self.arma_rcon.serverMessage.copy() self.arma_rcon.serverMessage = deque(maxlen=500) #Default: 100 data.reverse() for d in data: self.arma_rcon.serverMessage.append(d)
# The execution of rcon commands is asynchronous and requires an "await" in an "async" function # All commands are listed in BEC commands in rcon.py async def main(): print("Players:", await arma_rcon.getPlayersArray()) #get Array with all player on server await arma_rcon.listenForDataTask # waits until on_disconnect print("Connection Lost") #arma_rcon.serverMessage # Contains all recent messages (limit = 100) Format: [obj(datetime), Str(Message)] #arma_rcon.serverCommandData # Contains all recent command returned data (limit = 10) Format: [obj(datetime), Str(Data)] #arma_rcon.disconnect() # Disconnects the client #arma_rcon.connect() # Logs back in ################################################################################################### ##### Main Program #### ################################################################################################### if __name__ == "__main__": ip = "000.000.000.000" #Your Server IP pw = "Password" #Your Rcon Password port = 3302 #Rcon Port arma_rcon = bec_rcon.ARC(ip, pw, port) arma_rcon.add_Event("received_ServerMessage", msg) arma_rcon.add_Event("on_disconnect", disco) loop = asyncio.get_event_loop() loop.run_until_complete(main())