Poodletooth-iLand/toontown/safezone/DistributedPartyGateAI.py

36 lines
1.4 KiB
Python

from direct.directnotify import DirectNotifyGlobal
from direct.distributed.DistributedObjectAI import DistributedObjectAI
from toontown.parties import PartyGlobals
class DistributedPartyGateAI(DistributedObjectAI):
notify = DirectNotifyGlobal.directNotify.newCategory("DistributedPartyGateAI")
def __init__(self, air):
DistributedObjectAI.__init__(self, air)
self.area = None
def setArea(self, area):
self.area = area
def getArea(self):
return self.area
def getPartyList(self, avId):
partyManager = simbase.air.partyManager
self.sendUpdateToAvatarId(avId, 'listAllPublicParties', [partyManager.getPublicParties()])
def partyChoiceRequest(self, avId, shardId, zoneId):
# Try to get a spot for them in the party
# find partyId
party = None
pid = 0
for partyId in self.air.partyManager.pubPartyInfo:
p = self.air.partyManager.pubPartyInfo[partyId]
if p.get('shardId', 0) == shardId and p.get('zoneId', 0) == zoneId:
party = p
pid = partyId
break
if not party:
self.sendUpdateToAvatarId(self.air.getAvatarIdFromSender(), 'partyRequestDenied', [PartyGlobals.PartyGateDenialReasons.Unavailable])
return #dafuq
self.air.globalPartyMgr.d_requestPartySlot(pid, self.air.getAvatarIdFromSender(), self.doId)