本文整理汇总了Python中hypershade.usersession.UserSessionManager类的典型用法代码示例。如果您正苦于以下问题:Python UserSessionManager类的具体用法?Python UserSessionManager怎么用?Python UserSessionManager使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了UserSessionManager类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: kick
def kick(caller,cn):
"""This allows the caller to kick another player; however, this will not override players with higher permission. Meaning, a master level permission can not kick someone with admin or trusted permission. To prevent the player from rejoining the server, they will also be banned for the default 60 minutes."""
cn=int(cn)
UserSessionManager.checkPermissions(caller,UserSessionManager[("ingame",cn)][1]) #check if the other person is more privileged
ban(caller,sbserver.playerName(cn),"kicked by %s" % formatCaller(caller))
triggerServerEvent("player_kicked",[caller,cn])
return sbserver.playerKick(cn)
示例2: loginOther
def loginOther(caller,where,who,username=None):
"""Logs in another player. This does not allow someone to login someone with higher permissions."""
if where=="ingame":
who=int(who)
if username is None:
username=UserSessionManager[caller][0]
else:
UserSessionManager.checkPermissions(caller,"admin")
aswho=dict(userdatabase[username].items())
succeedLogin((where,who),aswho)
示例3: loginOther
def loginOther(caller,where,who,username=None):
"""This allows a player to use their permissions to login another player, but just like with kicking they can not login someone of higher permissions than themselves."""
if where=="ingame":
who=int(who)
if username is None:
username=UserSessionManager[caller][0]
else:
UserSessionManager.checkPermissions(caller,"admin")
aswho=dict(userdatabase[username].items())
succeedLogin((where,who),aswho)
示例4: kick
def kick(caller,cn):
"""Kicks another player; however, this command does not work on players with higher permission. Kicking a player also gives them a 60 minute ban."""
cn=int(cn)
try:
UserSessionManager.checkPermissions(caller,UserSessionManager[("ingame",cn)][1]) #check if the other person is more privileged
except PermissionError:
triggerServerEvent("player_kick_failed",[caller,cn])
raise
ban(caller,sbserver.playerName(cn),"kicked by %s" % formatCaller(caller))
triggerServerEvent("player_kicked",[caller,cn])
return sbserver.playerKick(cn)
示例5: masterMode
def masterMode(caller,name=None):
"""This changes the mastermode in the same way that /mastermode does without the need to have claimed master or admin."""
if name==None:
return sbserver.masterMode()
mastermode=mastermodeNumber(name)
if config["serverpublic"]=="1":
if mastermode>=2:
UserSessionManager.checkPermissions(caller,"trusted")
if config["serverpublic"]=="2":
if mastermode>=3:
UserSessionManager.checkPermissions(caller,"trusted")
return sbserver.setMasterMode(mastermode)
示例6: masterMode
def masterMode(caller,name=None):
"""Changes the mastermode of the server."""
if name==None:
return sbserver.masterMode()
mastermode=mastermodeNumber(name)
if config["serverpublic"]=="1":
if mastermode>=2:
UserSessionManager.checkPermissions(caller,"trusted")
if config["serverpublic"]=="2":
if mastermode>=3:
UserSessionManager.checkPermissions(caller,"trusted")
return sbserver.setMasterMode(mastermode)
示例7: checkforCS
def checkforCS(caller,string):
if string[0] in ['#','@']:
string=string[1:]
try:
try:
UserSessionManager.checkPermissions(caller,"trusted")
except PermissionError:
checkUntrustedCode(CSParser(string).parse())
playerCS.executeby(caller,string)
except:
exctype,exctext,exctraceback=sys.exc_info()
errormsg="%s: %s" % (exctype.__name__, exctext)
playerCS.executeby(caller,"echo \"%s\"" % escape(errormsg))
raise
return 1
else:
return 0
示例8: simpleMasterRequest
def simpleMasterRequest(caller):
#check for other privileged people
privileged=[(session,user) for session,user in UserSessionManager.items() if session[0]=='ingame' and user[1]!='']
if len(privileged)==0:
setSimpleMaster(caller)
else:
playerCS.executeby(caller,"echo PermissionError: There are masters/admins present.")
raise PermissionError("There are masters/admins present.")
示例9: team
def team(caller,*args):
"""This allows players to switch teams just like with /team."""
if(len(args)==1):
if(caller[0]=="ingame"):
cn=caller[1]
else:
raise ServerError("You are not ingame. Please specify cn.")
elif(len(args)==2):
cn=args[0]
else:
raise TypeError("team takes either 1 or 2 arguments.")
cn=int(cn)
teamname=args[-1]
if cn!=caller[1]:
UserSessionManager.checkPermissions(caller,"master")
sbserver.setTeam(cn,teamname)
示例10: spectator
def spectator(caller,boolean=None,cn=None):
"""Sets spectator for the given cn. If the cn is left off it applies to the caller."""
#empty args
if boolean is None:
boolean=1
boolean=int(boolean)
if cn is None:
if(caller[0]=="ingame"):
cn=caller[1]
else:
raise ServerError("You are not ingame. Please specify cn.")
cn=int(cn)
#check if it's a self call
if caller[1]==cn:
if boolean==0 and sbserver.masterMode()>=2:
UserSessionManager.checkPermissions(caller,"master")
spectatorHelpler(boolean,cn)
else:
UserSessionManager.checkPermissions(caller,"master")
spectatorHelpler(boolean,cn)
示例11: spectator
def spectator(caller,boolean=None,cn=None):
"""If there are no arguments other than #spectator then the caller will be set to spectator. The first argument is a boolen that says what state of spectating the player will be (0 for not not a spectator and 1 for spectator), anything other than 0 will result in an them being a spectator. The cn is the client number of the player that the caller want spectated. If left off it will apply to the caller."""
#empty args
if boolean is None:
boolean=1
boolean=int(boolean)
if cn is None:
if(caller[0]=="ingame"):
cn=caller[1]
else:
raise ServerError("You are not ingame. Please specify cn.")
cn=int(cn)
#check if it's a self call
if caller[1]==cn:
if boolean==0 and sbserver.masterMode()>=2:
UserSessionManager.checkPermissions(caller,"master")
spectatorHelpler(boolean,cn)
else:
UserSessionManager.checkPermissions(caller,"master")
spectatorHelpler(boolean,cn)
示例12: who
def who(caller,where="ingame"):
"""This gives info on all the people logged in to the server. It tells their name, client number and IP address. Use this in conjuction with #echo. Ex: #echo (who)"""
def cndetails(cn):
return sbserver.playerName(cn)+" (cn"+str(cn)+"/"+ipLongToString(sbserver.playerIpLong(cn))+")"
clientlist=[session[1] for session in UserSessionManager.keys() if session[0] == where]
if where=="ingame":
clientlist='; '.join(map(cndetails,clientlist))
if clientlist!="" or clientlist!=[]:
return str(clientlist)
else:
return "No clients for %s." % where
示例13: takeMaster
def takeMaster(caller):
"""This command takes master from the person that currently has it."""
masters=[session for session,user in UserSessionManager.items() if session[0]=='ingame' and user[1]=='master']
for master in masters:
playerCS.executeby(master,"relinquish; logout")
示例14: playerconnect
def playerconnect(cn):
UserSessionManager.create(("ingame",cn))
if cn in muted_cns:
muted_cns.remove(cn)
示例15: playerdisconnect
def playerdisconnect(cn):
UserSessionManager.destroy(("ingame",cn))
if cn in muted_cns:
muted_cns.remove(cn)