Arx-Game / arxcode

A text-based/web game using Evennia.
MIT License
47 stars 42 forks source link

Smooth out starting process for forks #218

Open TehomCD opened 5 years ago

TehomCD commented 5 years ago

While Arx isn't really a framework/library, there's a lot of rough spots for people who try to fork it and get running that I can smooth out. I'm going to keep notes of tracebacks here under this issue for clean databases and address them as I run across them:

File "commands/base_commands/unloggedin.py", line 83, in func
2019-10-15 21:45:27-0400 [-]     if data['host-ip']:
2019-10-15 21:45:27-0400 [-] KeyError: 'host-ip'
Traceback (most recent call last):
typeclasses/guest.py", line 101, in _send_to_connect_channel
2019-10-15 21:45:27-0400 [-]     chan = ChannelDB.objects.get(db_key__iexact="guest")
2019-10-15 21:45:27-0400 [-]   File "/home/cronus/evennia/evennia/utils/idmapper/manager.py", line 36, in get
2019-10-15 21:45:27-0400 [-]     inst = super(SharedMemoryManager, self).get(*args, **kwargs)
2019-10-15 21:45:27-0400 [-]   File "/home/cronus/venv/local/lib/python2.7/site-packages/django/db/models/manager.py", line 85, in manager_method
2019-10-15 21:45:27-0400 [-]     return getattr(self.get_queryset(), name)(*args, **kwargs)
2019-10-15 21:45:27-0400 [-]   File "/home/cronus/venv/local/lib/python2.7/site-packages/django/db/models/query.py", line 380, in get
2019-10-15 21:45:27-0400 [-]     self.model._meta.object_name
2019-10-15 21:45:27-0400 [-] DoesNotExist: ChannelDB matching query does not exist.
TehomCD commented 5 years ago

Another traceback for missing rosters:

2019-10-19 14:07:40-0400 [AMPProtocol,0,127.0.0.1] [::]   File "/home/cronus/evennia/evennia/commands/cmdhandler.py", line 591, in _run_command
2019-10-19 14:07:40-0400 [AMPProtocol,0,127.0.0.1] [::]     ret = cmd.func()
2019-10-19 14:07:40-0400 [AMPProtocol,0,127.0.0.1] [::]   File "/home/cronus/myarx/commands/base_commands/roster.py", line 253, in func
2019-10-19 14:07:40-0400 [AMPProtocol,0,127.0.0.1] [::]     char_list = roster.get_all_available_characters()
2019-10-19 14:07:40-0400 [AMPProtocol,0,127.0.0.1] [::]   File "/home/cronus/myarx/web/character/managers.py", line 42, in get_all_available_characters
2019-10-19 14:07:40-0400 [AMPProtocol,0,127.0.0.1] [::]     roster__roster=self.available).order_by('db_key')
2019-10-19 14:07:40-0400 [AMPProtocol,0,127.0.0.1] [::]   File "/home/cronus/myarx/web/character/managers.py", line 21, in available
2019-10-19 14:07:40-0400 [AMPProtocol,0,127.0.0.1] [::]     return self.get(name="Available")
2019-10-19 14:07:40-0400 [AMPProtocol,0,127.0.0.1] [::]   File "/home/cronus/venv/local/lib/python2.7/site-packages/django/db/models/manager.py", line 85, in manager_method
2019-10-19 14:07:40-0400 [AMPProtocol,0,127.0.0.1] [::]     return getattr(self.get_queryset(), name)(*args, **kwargs)
2019-10-19 14:07:40-0400 [AMPProtocol,0,127.0.0.1] [::]   File "/home/cronus/venv/local/lib/python2.7/site-packages/django/db/models/query.py", line 380, in get
2019-10-19 14:07:40-0400 [AMPProtocol,0,127.0.0.1] [::]     self.model._meta.object_name
2019-10-19 14:07:40-0400 [AMPProtocol,0,127.0.0.1] [::] DoesNotExist: Roster matching query does not exist.
2019-10-19 14:07:40-0400 [AMPProtocol,0,127.0.0.1] [EE] User input was: '@roster'.
TehomCD commented 5 years ago

More to do: make skills/stats/vocations and introductory strings configurable, either through config files (json, yaml, toml, whatever) or as database entities.