示例#1
0
文件: pugserver.py 项目: dpyro/pugbot
class PugServer(object):
    def __init__(self, address, port, rcon_pass, local_port=17105):
        self.network_ip = network_ip()
        self.public_ip = public_ip()
        self.query = SourceQuery(address, port)
        self.srcon = SourceRcon(address, port, rcon_pass)
        self.logger = SourceLogListener((self.network_ip, local_port), (address, port), PugServerLogParser(self))
        self.rcon('logaddress_add "{0}:{1}"'.format(self.public_ip, local_port))

    def connect(self):
        self.query.connect()
        self.srcon.connect()

    def disconnect(self):
        self.query.disconnect()
        self.srcon.disconnect()

    def info(self):
        return self.query.info()

    def player(self):
        return self.query.player()

    def rules(self):
        return self.query.rules()

    def rcon(self, command):
        return self.srcon.rcon(command)[:-1]

    def cevo(self):
        stopwatch_maps = ['cp_dustbowl', 'cp_egypt', 'cp_gorge', 'cp_gravelpit', 'cp_junction', 'cp_steel']
        map = self.info()['map']
        if map.startswith('ctf_'):
            file = 'cevo_ctf.cfg'
        elif map.startswith('koth_'):
            file = 'cevo_koth.cfg'
        elif map in stopwatch_maps:
            file = 'cevo_stopwatch.cfg'
        else:
            file = 'cevo_push.cfg'
        return self.rcon('exec "{0}"'.format(file))

    def changelevel(self, map):
        result = self.rcon('changelevel "{0}"'.format(map))
        return "No such map" not in result

    def status(self):
        return self.rcon('status')
示例#2
0
文件: pugserver.py 项目: dpyro/pugbot
 def __init__(self, address, port, rcon_pass, local_port=17105):
     self.network_ip = network_ip()
     self.public_ip = public_ip()
     self.query = SourceQuery(address, port)
     self.srcon = SourceRcon(address, port, rcon_pass)
     self.logger = SourceLogListener((self.network_ip, local_port), (address, port), PugServerLogParser(self))
     self.rcon('logaddress_add "{0}:{1}"'.format(self.public_ip, local_port))