diff --git a/.gitignore b/.gitignore index a9076e4b..e7a97233 100755 --- a/.gitignore +++ b/.gitignore @@ -23,6 +23,4 @@ dependencies/config/local.prc # PyMongo bson gridfs -pymongo -Toon Bot -DNS \ No newline at end of file +pymongo \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index 79f0855f..8fa4a256 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,6 @@ [submodule "resources"] path = resources -url=https://github.com/ToontownStride1/resources +url=https://github.com/Toontown-Stride/resources [submodule "build/nirai/src"] path = build/nirai/src url = https://github.com/nirai-compiler/src diff --git a/dependencies/astron/mongoclient.dll b/dependencies/astron/mongoclient.dll deleted file mode 100644 index c06f12b3..00000000 Binary files a/dependencies/astron/mongoclient.dll and /dev/null differ diff --git a/dependencies/config/release/dev.prc b/dependencies/config/release/dev.prc index 2a5a03ef..b1db0ec3 100644 --- a/dependencies/config/release/dev.prc +++ b/dependencies/config/release/dev.prc @@ -25,8 +25,6 @@ accountdb-type developer shard-low-pop 50 shard-mid-pop 100 -game-type developer - # RPC: want-rpc-server #f rpc-server-endpoint http://localhost:8080/ diff --git a/deployment/README.txt b/deployment/README.txt deleted file mode 100644 index 365bdf42..00000000 --- a/deployment/README.txt +++ /dev/null @@ -1,36 +0,0 @@ -This deployment folder contains files that describe how a release of TTSride should be run on the gameservers. - -uberdogs.yml contains the 'uberdogs' section of an astrond.yml. Please keep it updated, or else you'll break prod! - -deploy.json describes a the environment for a release of TTSride. It contains the version of astron to use as well as the version of Panda3D to use as well as the libpandadna version to use.. -deploy.json also contains a version prefix. This is used to generate dev version strings on the development server (which are probably something like ttstride-beta-dev-gabcdef0). -When we deploy a release to prod, we push a git tag named after the version to the repository (i.e. ttstride-alpha-v1.3.7). It is required that the tag's name contain the version prefix specified in deploy.json. -The key 'server-resources' maps to a list of file extensions of files in the resources directory that are necessary to be used server-side. We do not package and deploy art assets onto servers. - -Last, server.prc is the configuration file we use for specifying config vars related to gameplay (a variable like want-sbhq should be put in server.prc, while a variable like air-stateserver does not belong here). server.prc is the last portion added to generated configuration files. -We also have a tag system to allow certain blocks of configuration to be used only in a certain environment. This allows us to generate releases that behaive differently depending on the environment that they are deployed in. For example: - ------ -want-toontowncentral #t -# -want-bbhq #f -# - -# -want-bbhq #t -# ------ - -In prod, the parsed config file would look like this: - ------ -want-toontowncentral #t -# -want-bbhq #f -# - -# -##UNUSED SECTION -##want-bbhq #t -# ------ \ No newline at end of file diff --git a/deployment/deploy.json b/deployment/deploy.json deleted file mode 100644 index 0105cd1a..00000000 --- a/deployment/deploy.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "__fyi__": "If you use anything other than the first 7 characters of the git hash, you just broke everything", - "astron": "696a6c4", - "panda3d": "b924139", - "libpandadna": "a0047ce", - "version-prefix": "stride-beta-", - "server-resources": ["pdna", "txt", "dat", "bam", "ttf"] -} diff --git a/deployment/public_client.prc b/deployment/public_client.prc deleted file mode 100644 index e3c03fe6..00000000 --- a/deployment/public_client.prc +++ /dev/null @@ -1,108 +0,0 @@ -# This is the PRC configuration file for a published TTStride client. Note that only -# this file and Panda3D's Confauto.prc are included. Any relevant directives in -# Config.prc should be reproduced here. - -# Client settings -window-title Toontown Stride [Beta] -server-version SERVER_VERSION_HERE -video-library-name p3ffmpeg -want-dev #f -preload-avatars #t - -game-type remote - -# Graphics: -aux-display pandagl -aux-display pandadx9 -aux-display p3tinydisplay - - -# Textures: -texture-anisotropic-degree 16 - -server-timezone EST/EDT/-5 - - -# Resources settings -model-path / -model-cache-models #f -model-cache-textures #f -vfs-mount resources/default/phase_3.mf / -vfs-mount resources/default/phase_3.5.mf / -vfs-mount resources/default/phase_4.mf / -vfs-mount resources/default/phase_5.mf / -vfs-mount resources/default/phase_5.5.mf / -vfs-mount resources/default/phase_6.mf / -vfs-mount resources/default/phase_7.mf / -vfs-mount resources/default/phase_8.mf / -vfs-mount resources/default/phase_9.mf / -vfs-mount resources/default/phase_10.mf / -vfs-mount resources/default/phase_11.mf / -vfs-mount resources/default/phase_12.mf / -vfs-mount resources/default/phase_13.mf / -default-model-extension .bam - - -# DC files are NOT configured. -# They're wrapped up into the code automatically. - - -# Core features: -want-pets #t -want-parties #f -want-cogdominiums #t -want-anim-props #t -want-game-tables #t -want-find-four #t -want-chinese-checkers #t -want-checkers #t -want-house-types #t -want-gifting #t -want-top-toons #t -want-language-selection #t -estate-day-night #f -want-mat-all-tailors #t - - -# Temporary: -smooth-lag 0.4 -want-old-fireworks #t - - -# Developer options: -want-dev #f -want-pstats 0 - - -# Chat: -want-whitelist #f -want-sequence-list #f - -want-emblems #f -cogdo-want-barrel-room #f - - -# -show-total-population #t -want-instant-parties #t -want-instant-delivery #t -cogdo-pop-factor 1.5 -cogdo-ratio 0.5 -default-directnotify-level info - -# Core features: -want-lawbot-cogdo #f - -# Crates: -dont-destroy-crate #t -get-key-reward-always #t -get-crate-reward-always #t -# - -# -dont-destroy-crate #f -get-key-reward-always #f -get-crate-reward-always #f -want-lawbot-cogdo #f -# - diff --git a/deployment/server.prc b/deployment/server.prc deleted file mode 100644 index 0d5c3337..00000000 --- a/deployment/server.prc +++ /dev/null @@ -1,50 +0,0 @@ -# While dev.prc contains settings for both the dev server and client, the -# live server separates these. The client settings go in config/public_client.prc -# and server settings go here. Don't forget to update both if necessary. - -# Server settings -want-dev #f -want-cheesy-expirations #t -cogsuit-hack-prevent #t - - -# Core features: -want-pets #t -want-parties #f -want-cogdominiums #t -want-anim-props #t -want-game-tables #t -want-find-four #t -want-chinese-checkers #t -want-checkers #t -want-house-types #t -want-gifting #t -want-top-toons #t -want-language-selection #t -estate-day-night #f -want-mat-all-tailors #t -is-server #t - -# Developer options: -show-population #t -want-instant-parties #t -want-instant-delivery #t -cogdo-pop-factor 1.5 -cogdo-ratio 0.5 -default-directnotify-level info - -# Crates: -dont-destroy-crate #t -get-key-reward-always #t -get-crate-reward-always #t -want-lawbot-cogdo #f - -server-timezone EST/EDT/-5 - -want-emblems #f -cogdo-want-barrel-room #f - - -# Chat Settings -want-whitelist #f -want-sequence-list #f diff --git a/deployment/toontown/ai/ServiceStart.py b/deployment/toontown/ai/ServiceStart.py deleted file mode 100644 index b90fbb76..00000000 --- a/deployment/toontown/ai/ServiceStart.py +++ /dev/null @@ -1,72 +0,0 @@ -import __builtin__ - - -__builtin__.process = 'ai' - - -# Temporary hack patch: -__builtin__.__dict__.update(__import__('pandac.PandaModules', fromlist=['*']).__dict__) -from direct.extensions_native import HTTPChannel_extensions - -import argparse, gc, os - -# Panda3D 1.10.0 is 63. -gc.disable() - -parser = argparse.ArgumentParser() -parser.add_argument('--base-channel', help='The base channel that the server may use.') -parser.add_argument('--max-channels', help='The number of channels the server may use.') -parser.add_argument('--stateserver', help="The control channel of this AI's designated State Server.") -parser.add_argument('--district-name', help="What this AI Server's district will be named.") -parser.add_argument('--astron-ip', help="The IP address of the Astron Message Director to connect to.") -parser.add_argument('--eventlogger-ip', help="The IP address of the Astron Event Logger to log to.") -parser.add_argument('config', nargs='*', default=['dependencies/config/general.prc', 'dependencies/config/release/dev.prc'], help="PRC file(s) to load.") -args = parser.parse_args() - -for prc in args.config: - loadPrcFile(prc) - -if os.path.isfile('dependencies/config/local.prc'): - loadPrcFile('dependencies/config/local.prc') - -localconfig = '' -if args.base_channel: localconfig += 'air-base-channel %s\n' % args.base_channel -if args.max_channels: localconfig += 'air-channel-allocation %s\n' % args.max_channels -if args.stateserver: localconfig += 'air-stateserver %s\n' % args.stateserver -if args.district_name: localconfig += 'district-name %s\n' % args.district_name -if args.astron_ip: localconfig += 'air-connect %s\n' % args.astron_ip -if args.eventlogger_ip: localconfig += 'eventlog-host %s\n' % args.eventlogger_ip -loadPrcFileData('Command-line', localconfig) - -from otp.ai.AIBaseGlobal import * - -from toontown.ai.ToontownAIRepository import ToontownAIRepository -simbase.air = ToontownAIRepository(config.GetInt('air-base-channel', 401000000), - config.GetInt('air-stateserver', 4002), - config.GetString('district-name', 'Devhaven')) -host = config.GetString('air-connect', '127.0.0.1') -port = 7100 -if ':' in host: - host, port = host.split(':', 1) - port = int(port) -simbase.air.connect(host, port) - -gc.enable() - -isServer = config.GetBool('is-server', False) - -try: - run() -except SystemExit: - raise -except Exception: - info = describeException() - - simbase.air.writeServerEvent('ai-exception', avId=simbase.air.getAvatarIdFromSender(), accId=simbase.air.getAccountIdFromSender(), exception=info) - - if isServer: - import datetime - with open(config.GetString('ai-crash-log-name', '/opt/var/log/%s-ai-crash-%s.txt' % (config.GetString('district-name', 'Devhaven'), datetime.datetime.now())), 'w+') as file: - file.write(info + "\n") - - raise diff --git a/deployment/toontown/uberdog/ServiceStart.py b/deployment/toontown/uberdog/ServiceStart.py deleted file mode 100644 index bce3f3e8..00000000 --- a/deployment/toontown/uberdog/ServiceStart.py +++ /dev/null @@ -1,70 +0,0 @@ -import __builtin__ - - -__builtin__.process = 'uberdog' - -# Temporary hack patch: -__builtin__.__dict__.update(__import__('pandac.PandaModules', fromlist=['*']).__dict__) -from direct.extensions_native import HTTPChannel_extensions - -import argparse, os - -parser = argparse.ArgumentParser() -parser.add_argument('--base-channel', help='The base channel that the server may use.') -parser.add_argument('--max-channels', help='The number of channels the server may use.') -parser.add_argument('--stateserver', help="The control channel of this UD's designated State Server.") -parser.add_argument('--astron-ip', help="The IP address of the Astron Message Director to connect to.") -parser.add_argument('--eventlogger-ip', help="The IP address of the Astron Event Logger to log to.") -parser.add_argument('config', nargs='*', default=['dependencies/config/general.prc', 'dependencies/config/release/dev.prc'], help="PRC file(s) to load.") -args = parser.parse_args() - -for prc in args.config: - loadPrcFile(prc) - -if os.path.isfile('dependencies/config/local.prc'): - loadPrcFile('dependencies/config/local.prc') - -localconfig = '' -if args.base_channel: - localconfig += 'air-base-channel %s\n' % args.base_channel -if args.max_channels: - localconfig += 'air-channel-allocation %s\n' % args.max_channels -if args.stateserver: - localconfig += 'air-stateserver %s\n' % args.stateserver -if args.astron_ip: - localconfig += 'air-connect %s\n' % args.astron_ip -if args.eventlogger_ip: - localconfig += 'eventlog-host %s\n' % args.eventlogger_ip -loadPrcFileData('Command-line', localconfig) - - -from otp.ai.AIBaseGlobal import * - -from toontown.uberdog.ToontownUberRepository import ToontownUberRepository -simbase.air = ToontownUberRepository(config.GetInt('air-base-channel', 400000000), - config.GetInt('air-stateserver', 4002)) -host = config.GetString('air-connect', '127.0.0.1') -port = 7100 -if ':' in host: - host, port = host.split(':', 1) - port = int(port) -simbase.air.connect(host, port) - -isServer = config.GetBool('is-server', False) - -if isServer: - import datetime - -try: - run() -except SystemExit: - raise -except Exception: - info = describeException() - simbase.air.writeServerEvent('uberdog-exception', simbase.air.getAvatarIdFromSender(), simbase.air.getAccountIdFromSender(), info) - - if isServer: - with open(config.GetString('ud-crash-log-name', '/opt/var/log/Uberdog-crash-%s.txt' % (datetime.datetime.now())), 'w+') as file: - file.write(info + "\n") - - raise \ No newline at end of file diff --git a/deployment/uberdogs.yml b/deployment/uberdogs.yml deleted file mode 100644 index 3deba31a..00000000 --- a/deployment/uberdogs.yml +++ /dev/null @@ -1,20 +0,0 @@ -uberdogs: - - class: ClientServicesManager - id: 4665 - anonymous: true - - - class: ChatAgent - id: 4681 - anonymous: false - - - class: FriendManager - id: 4501 - anonymous: false - - - class: TTSFriendsManager - id: 4666 - anonymous: false - - - class: GlobalPartyManager - id: 4477 - anonymous: false \ No newline at end of file diff --git a/otp/distributed/OTPClientRepository.py b/otp/distributed/OTPClientRepository.py index 72abea04..c0aa7b8d 100755 --- a/otp/distributed/OTPClientRepository.py +++ b/otp/distributed/OTPClientRepository.py @@ -469,7 +469,7 @@ class OTPClientRepository(ClientRepositoryBase): self.handler = self.handleMessageType messenger.send('connectionIssue') url = self.serverList[0] - self.notify.warning('Failed to connect to %s (%s %s). Notifying user.' % (config.GetString('TTS_GAMESERVER'), statusCode, statusString)) + self.notify.warning('Failed to connect to %s (%s %s). Notifying user.' % (url.cStr(), statusCode, statusString)) dialogClass = OTPGlobals.getGlobalDialogClass() self.failedToConnectBox = dialogClass(message=OTPLocalizer.CRNoConnectTryAgain % (url.getServer(), url.getPort()), doneEvent='failedToConnectAck', text_wordwrap=18, style=OTPDialog.TwoChoice) self.failedToConnectBox.show() diff --git a/resources b/resources index af09e769..4e298683 160000 --- a/resources +++ b/resources @@ -1 +1 @@ -Subproject commit af09e769b860512c03de6fff4a585e96d674e89b +Subproject commit 4e2986832f047ae4e8f6256d187a6d111a526f5d diff --git a/toontown/launcher/TTSLauncher.py b/toontown/launcher/TTSLauncher.py index dc7227d3..38886271 100755 --- a/toontown/launcher/TTSLauncher.py +++ b/toontown/launcher/TTSLauncher.py @@ -46,20 +46,7 @@ class TTSLauncher: return self.getValue('TTS_PLAYCOOKIE') def getGameServer(self): - if config.GetString('game-type', 'developer') != 'remote': - return self.getValue('TTS_GAMESERVER') - return self.getServer(self.getValue('TTS_GAMESERVER')) - - def getServer(self, gameserver): - import DNS - DNS.DiscoverNameServers() - srv_req = DNS.Request(qtype = 'srv') - srv_result = srv_req.req('_toontown._tcp.'+ gameserver) - - for result in srv_result.answers: - if result['typename'] == 'SRV': - data = result['data'] - return data[3] + ":" + str(data[2]) + return self.getValue('TTS_GAMESERVER') def getValue(self, key, default = None): return os.environ.get(key, default)