def onReqUnspectate(cn, tcn): if tcn != cn: if isAtLeastMaster(cn): sbserver.unspectate(tcn) else: insufficientPermissions(cn) else: if sbserver.masterMode() > 1 and not isAtLeastMaster(cn): sbserver.playerMessage(cn, error('Master mode is locked. You cannot unspectate.')) else: sbserver.unspectate(tcn)
def onReqUnspectate(cn, tcn): if tcn != cn: if isAtLeastMaster(cn): sbserver.unspectate(tcn) else: insufficientPermissions(cn) else: if sbserver.masterMode() > 1 and not isAtLeastMaster(cn): sbserver.playerMessage( cn, error('Master mode is locked. You cannot unspectate.')) else: sbserver.unspectate(tcn)
def namesCmd(cn, args): '''@description Display names used by client @usage cn @public''' if master_required and not isAtLeastMaster(cn): insufficientPermissions(cn) return if args == '': raise UsageError() return try: tcn = int(args) names = dbmanager.query(IpToNick).filter(IpToNick.ip==sbserver.playerIpLong(tcn)).all() if len(names) == 0: sbserver.playerMessage(cn, info('No names found')) return except NoResultFound: sbserver.playerMessage(cn, info('No names found')) return except ValueError: sbserver.playerMessage(cn, error('Invalid cn')) return namestr = 'Other known names: ' for name in names: namestr += name.nick + ' ' sbserver.playerMessage(cn, info(namestr))
def namesCmd(cn, args): '''@description Display names used by client @usage cn @public''' if master_required and not isAtLeastMaster(cn): insufficientPermissions(cn) return if args == '': raise UsageError() return try: tcn = int(args) names = dbmanager.query(IpToNick).filter( IpToNick.ip == sbserver.playerIpLong(tcn)).all() if len(names) == 0: sbserver.playerMessage(cn, info('No names found')) return except NoResultFound: sbserver.playerMessage(cn, info('No names found')) return except ValueError: sbserver.playerMessage(cn, error('Invalid cn')) return namestr = 'Other known names: ' for name in names: namestr += name.nick + ' ' sbserver.playerMessage(cn, info(namestr))
def onMapVote(cn, mapname, mapmode): p = player(cn) if sbserver.mapName() == '': setMap(mapname, mapmode) elif isAtLeastMaster(cn) and sbserver.masterMode() > 0: setMap(mapname, mapmode) elif mapmode != sbserver.gameMode() and (lock_mode or not allow_modevote): p.message(error('You cannot vote for a new game mode')) else: try: vote = player(cn).gamevars['mapvote'] allow_vote = vote[0] != mapname and vote[1] != mapmode except KeyError: allow_vote = True if allow_vote: sbserver.message( info( request_temp.substitute( colordict, user=p.name(), modename=sbserver.modeName(mapmode), mapname=mapname))) p.gamevars['mapvote'] = (mapname, mapmode) else: sbserver.playerMessage( cn, error('You have already requested this map.')) countVotes()
def onReqSpectate(cn, tcn): if tcn != cn: if isAtLeastMaster(cn): sbserver.spectate(tcn) else: insufficientPermissions(cn) else: sbserver.spectate(tcn)
def onMapSet(cn, mapname, mapmode): p = player(cn) if sbserver.mapName() == '': setMap(mapname, mapmode) elif mapreload[0]: setMap(mapname, mapmode) mapreload[0] = False elif isAtLeastMaster(cn) and sbserver.masterMode() > 0: sbserver.setMap(mapname, mapmode) elif mapmode != sbserver.gameMode() and (lock_mode or not allow_modevote): p.message(error('You cannot request a new game mode'))
def onSetTeam(tcn, cn, team): p = player(cn) r = player(tcn) if cn != tcn and not isAtLeastMaster(tcn): insufficientPermissions(tcn) return mode = currentMode() if isSafeTeam(team): execLater(p.suicide, ()) p.setTeam(team) else: r.message( error('You cannot join team \'%s\' in game mode %s' % (team, modeName(currentMode()))))
def onSetTeam(tcn, cn, team): p = player(cn) r = player(tcn) if cn != tcn and not isAtLeastMaster(tcn): insufficientPermissions(tcn) return mode = currentMode() if isSafeTeam(team): execLater(p.suicide, ()) p.setTeam(team) else: r.message(error('You cannot join team \'%s\' in game mode %s' % ( team, modeName(currentMode()) )))
def onMapVote(cn, mapname, mapmode): p = player(cn) if sbserver.mapName() == '': setMap(mapname, mapmode) elif isAtLeastMaster(cn) and sbserver.masterMode() > 0: setMap(mapname, mapmode) elif mapmode != sbserver.gameMode() and (lock_mode or not allow_modevote): p.message(error('You cannot vote for a new game mode')) else: try: vote = player(cn).gamevars['mapvote'] allow_vote = vote[0] != mapname and vote[1] != mapmode except KeyError: allow_vote = True if allow_vote: sbserver.message(info(request_temp.substitute(colordict, user=p.name(), modename=sbserver.modeName(mapmode), mapname=mapname))) p.gamevars['mapvote'] = (mapname, mapmode) else: sbserver.playerMessage(cn, error('You have already requested this map.')) countVotes()