59 lines
2.4 KiB
Python
59 lines
2.4 KiB
Python
|
from otp.otpbase import OTPGlobals
|
||
|
from otp.ai import BanManagerAI
|
||
|
from toontown.toonbase import ToontownGlobals
|
||
|
from toontown.hood import ZoneUtil
|
||
|
|
||
|
def canAccess(avatarId, zoneId, function = ''):
|
||
|
avatar = simbase.air.doId2do.get(avatarId)
|
||
|
if avatar and avatar.getGameAccess() != OTPGlobals.AccessFull and not openToAll(zoneId, avatar):
|
||
|
if cmp(function, 'DistributedBoardingPartyAI.checkBoard') == 0:
|
||
|
return False
|
||
|
simbase.air.writeServerEvent('suspicious', avatarId, 'User with rights: %s requesting enter for paid access content without proper rights in zone %s from %s' % (avatar.getGameAccess(), zoneId, function))
|
||
|
if simbase.config.GetBool('want-ban-ispaid', True):
|
||
|
commentStr = 'User with rights: %s tried to gain access zone %s from function %s, an area they were not allowed to using TTInjector Hack' % (avatar.getGameAccess(), zoneId, function)
|
||
|
dislId = avatar.DISLid
|
||
|
simbase.air.banManager.ban(avatarId, dislId, commentStr)
|
||
|
return False
|
||
|
else:
|
||
|
return True
|
||
|
|
||
|
|
||
|
def openToAll(zoneId, avatar):
|
||
|
allowed = False
|
||
|
canonicalZoneId = ZoneUtil.getCanonicalHoodId(zoneId)
|
||
|
allowedZones = [ToontownGlobals.ToontownCentral,
|
||
|
ToontownGlobals.MyEstate,
|
||
|
ToontownGlobals.GoofySpeedway,
|
||
|
ToontownGlobals.Tutorial]
|
||
|
specialZones = [ToontownGlobals.SellbotLobby]
|
||
|
if ToontownGlobals.SELLBOT_NERF_HOLIDAY in simbase.air.holidayManager.currentHolidays:
|
||
|
specialZones.append(ToontownGlobals.SellbotHQ)
|
||
|
ownerId = simbase.air.estateMgr.getOwnerFromZone(zoneId)
|
||
|
if ownerId:
|
||
|
for zone in simbase.air.estateMgr.getEstateZones(ownerId):
|
||
|
specialZones.append(zone)
|
||
|
|
||
|
if canonicalZoneId in allowedZones or avatar.isInEstate():
|
||
|
allowed = True
|
||
|
elif zoneId in specialZones:
|
||
|
allowed = True
|
||
|
elif canonicalZoneId >= ToontownGlobals.DynamicZonesBegin and not avatar.getTutorialAck():
|
||
|
zoneDict = simbase.air.tutorialManager.playerDict.get(avatar.doId)
|
||
|
if zoneDict:
|
||
|
allowed = True
|
||
|
return allowed
|
||
|
|
||
|
|
||
|
def canWearSuit(avatarId, zoneId):
|
||
|
canonicalZoneId = ZoneUtil.getCanonicalHoodId(zoneId)
|
||
|
allowedSuitZones = [ToontownGlobals.LawbotHQ,
|
||
|
ToontownGlobals.CashbotHQ,
|
||
|
ToontownGlobals.SellbotHQ,
|
||
|
ToontownGlobals.BossbotHQ]
|
||
|
if canonicalZoneId in allowedSuitZones:
|
||
|
return True
|
||
|
elif zoneId >= ToontownGlobals.DynamicZonesBegin:
|
||
|
return True
|
||
|
else:
|
||
|
return False
|