From cf7cab1fea99ede3efecb70a65c3eb0fba1d3745 Mon Sep 17 00:00:00 2001 From: Jaykingamez <39272482+Jaykingamez@users.noreply.github.com> Date: Fri, 3 Dec 2021 22:22:05 +0800 Subject: [PATCH 01/27] Add Azure App Services and Huawei Cloud embedded links to back listed information --- docs/source/Online-Setup.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/source/Online-Setup.md b/docs/source/Online-Setup.md index 7d3951743a..4dbac9faea 100644 --- a/docs/source/Online-Setup.md +++ b/docs/source/Online-Setup.md @@ -388,6 +388,8 @@ Evennia users: | [Digital Ocean][2] | VPS | $5/month | You can get a $50 credit if you use the referral link https://m.do.co/c/8f64fec2670c - if you do, once you've had it long enough to have paid $25 we will get that as a referral bonus to help Evennia development.| | [Amazon Web services][3] | Cloud | ~$5/month / on-demand | Free Tier first 12 months. Regions available around the globe.| | [Amazon Lightsail][9] | Cloud | $5/month | Free first month. AWS's new "fixed cost" offering.| +| [Azure App Services][12] | Cloud | Free | Provides a free tier for hobbyist. Limited regions to be deployed to under the free tier| +| [Huawei Cloud][13] | Cloud | on demand | Similar to Amazon. Free Tier first 12 months. Limited regions to be deployed to| | [Genesis MUD hosting][4] | Shell account | $8/month | Dedicated MUD host with very limited memory offerings. As for 2017, runs a 13 years old Python version (2.4) so you'd need to either convince them to update or compile yourself. Note that Evennia needs *at least* the "Deluxe" package (50MB RAM) and probably *a lot* higher for a production game. This host is *not* recommended for Evennia.| | [Host1Plus][5] | VPS & Cloud | $4/month | $4-$8/month depending on length of sign-up period. | [Scaleway][6] | Cloud | €3/month / on-demand | EU based (Paris, Amsterdam). Smallest option provides 2GB RAM. | @@ -407,6 +409,8 @@ Evennia users: [9]: https://amazonlightsail.com [10]: https://prgmr.com/ [11]: https://www.linode.com/ +[12]: https://azure.microsoft.com/en-us/pricing/details/app-service/windows/ +[13]: https://activity.huaweicloud.com/intl/en-us/free_packages/index.html ## Cloud9 From fa79110ba6b219932f22297838e8ac72ebc0be0e Mon Sep 17 00:00:00 2001 From: Griatch Date: Thu, 16 Dec 2021 19:30:16 +0100 Subject: [PATCH 02/27] Update silvren contact info --- docs/source/Online-Setup.md | 48 ++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/docs/source/Online-Setup.md b/docs/source/Online-Setup.md index 4dbac9faea..c9f5c36ca8 100644 --- a/docs/source/Online-Setup.md +++ b/docs/source/Online-Setup.md @@ -101,11 +101,11 @@ Read on for a description of the individual settings. ### Telnet ```python -# Required. Change to whichever outgoing Telnet port(s) +# Required. Change to whichever outgoing Telnet port(s) # you are allowed to use on your host. TELNET_PORTS = [4000] -# Optional for security. Restrict which telnet -# interfaces we should accept. Should be set to your +# Optional for security. Restrict which telnet +# interfaces we should accept. Should be set to your # outward-facing IP address(es). Default is ´0.0.0.0´ # which accepts all interfaces. TELNET_INTERFACES = ['0.0.0.0'] @@ -115,22 +115,22 @@ The `TELNET_*` settings are the most important ones for getting a traditional ba IP addresses you have available depends on your server hosting solution (see the next sections). Some hosts will restrict which ports you are allowed you use so make sure to check. -### Web server +### Web server ```python -# Required. This is a list of tuples +# Required. This is a list of tuples # (outgoing_port, internal_port). Only the outgoing -# port should be open to the world! +# port should be open to the world! # set outgoing port to 80 if you want to run Evennia # as the only web server on your machine (if available). WEBSERVER_PORTS = [(4001, 4005)] -# Optional for security. Change this to the IP your -# server can be reached at (normally the same +# Optional for security. Change this to the IP your +# server can be reached at (normally the same # as TELNET_INTERFACES) WEBSERVER_INTERFACES = ['0.0.0.0'] -# Optional for security. Protects against -# man-in-the-middle attacks. Change it to your server's -# IP address or URL when you run a production server. +# Optional for security. Protects against +# man-in-the-middle attacks. Change it to your server's +# IP address or URL when you run a production server. ALLOWED_HOSTS = ['*'] ``` @@ -147,14 +147,14 @@ change the outgoing port unless the default internal port is clashing with some ```python # Required. Change this to the main IP address of your server. WEBSOCKET_CLIENT_INTERFACE = '0.0.0.0' -# Optional and needed only if using a proxy or similar. Change -# to the IP or address where the client can reach +# Optional and needed only if using a proxy or similar. Change +# to the IP or address where the client can reach # your server. The ws:// part is then required. If not given, the client -# will use its host location. +# will use its host location. WEBSOCKET_CLIENT_URL = "" # Required. Change to a free port for the websocket client to reach -# the server on. This will be automatically appended -# to WEBSOCKET_CLIENT_URL by the web client. +# the server on. This will be automatically appended +# to WEBSOCKET_CLIENT_URL by the web client. WEBSOCKET_CLIENT_PORT = 4002 ``` @@ -171,14 +171,14 @@ SSL_PORTS = [4003] SSL_INTERFACES = ['0.0.0.0'] # Optional public facing. Only if you allow SSH connections (off by default). SSH_PORTS = [4004] -SSH_INTERFACES = ['0.0.0.0'] +SSH_INTERFACES = ['0.0.0.0'] # Required private. You should only change this if there is a clash -# with other services on your host. Should NOT be open to the -# outside world. +# with other services on your host. Should NOT be open to the +# outside world. AMP_PORT = 4006 ``` -The `AMP_PORT` is required to work, since this is the internal port linking Evennia's +The `AMP_PORT` is required to work, since this is the internal port linking Evennia's [Server and Portal](../Components/Portal-And-Server.md) components together. The other ports are encrypted ports that may be useful for custom protocols but are otherwise not used. @@ -198,9 +198,9 @@ drum up interest for your game and also shows people that Evennia is being used. even if you are just starting development - if you don't give any telnet/web address it will appear as _Not yet public_ and just be a teaser. If so, pick _pre-alpha_ as the development status. -To register, stand in your game dir, run +To register, stand in your game dir, run - evennia connections + evennia connections and follow the instructions. See the [Game index page](./Evennia-Game-Index.md) for more details. @@ -384,7 +384,7 @@ Evennia users: | Hosting name | Type | Lowest price | Comments | |---|---| ---| --- | -| [silvren.com][1] | Shell account | Free for MU* | Private hobby provider so don't assume backups or expect immediate support. To ask for an account,connect with a MUD client to iweb.localecho.net, port 4201 and ask for "Jarin". | +| [silvren.com][1] | Shell account | Free for MU* | Private hobby provider so don't assume backups or expect immediate support. To ask for an account,connect with a MUD client to rostdev.mushpark.com, port 4201 and ask for "Jarin". | | [Digital Ocean][2] | VPS | $5/month | You can get a $50 credit if you use the referral link https://m.do.co/c/8f64fec2670c - if you do, once you've had it long enough to have paid $25 we will get that as a referral bonus to help Evennia development.| | [Amazon Web services][3] | Cloud | ~$5/month / on-demand | Free Tier first 12 months. Regions available around the globe.| | [Amazon Lightsail][9] | Cloud | $5/month | Free first month. AWS's new "fixed cost" offering.| @@ -396,7 +396,7 @@ Evennia users: | [Prgmr][10] | VPS | $5/month | 1 month free with a year prepay. You likely want some experience with servers with this option as they don't have a lot of support.| | [Linode][11] | Cloud | $5/month / on-demand | Multiple regions. Smallest option provides 1GB RAM| -*Please help us expand this list.* +*Please help us expand this list.* [1]: https://silvren.com [2]: https://www.digitalocean.com/pricing From aa4c87f71039e638fc4f4fa610f01f67eaa25952 Mon Sep 17 00:00:00 2001 From: Griatch Date: Sun, 16 Jan 2022 16:35:18 +0100 Subject: [PATCH 03/27] Test with github action update --- .../workflows/github_action_test_suite.yml | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/.github/workflows/github_action_test_suite.yml b/.github/workflows/github_action_test_suite.yml index 9bd8674744..c0b31dd40e 100644 --- a/.github/workflows/github_action_test_suite.yml +++ b/.github/workflows/github_action_test_suite.yml @@ -44,7 +44,7 @@ jobs: mysql user: 'evennia' mysql password: 'password' - # wait for db to activage, get logs from their start + # wait for db to activate, get logs from their start - name: Wait / sleep uses: jakejarvis/wait-action@v0.1.0 if: ${{ matrix.TESTING_DB == 'postgresql' || matrix.TESTING_DB == 'mysql' }} @@ -107,3 +107,35 @@ jobs: with: project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} coverage-reports: ./testing_mygame/coverage.xml + + docker: + runs-on: ubuntu-latest + steps: + - + name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - + name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - + name: Build and push for master + if: ${{ matrix.TESTING_DB == 'sqlite3' && matrix.python-version == 3.7 && github.ref == 'refs/heads/master'}} + id: docker_build_master + uses: docker/build-push-action@v2 + with: + push: true + tags: user/app:latest + - + name: Build and push for develop + if: ${{ matrix.TESTING_DB == 'sqlite3' && matrix.python-version == 3.7 && github.ref == 'refs/heads/develop'}} + id: docker_build_develop + uses: docker/build-push-action@v2 + with: + push: true + tags: user/app:develop From 7f29029a415c660304a427695a0f8fa3a5a4293d Mon Sep 17 00:00:00 2001 From: Griatch Date: Sun, 16 Jan 2022 16:37:25 +0100 Subject: [PATCH 04/27] Some more testing with actions --- .github/workflows/github_action_test_suite.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/github_action_test_suite.yml b/.github/workflows/github_action_test_suite.yml index c0b31dd40e..e57a8366fd 100644 --- a/.github/workflows/github_action_test_suite.yml +++ b/.github/workflows/github_action_test_suite.yml @@ -130,7 +130,7 @@ jobs: uses: docker/build-push-action@v2 with: push: true - tags: user/app:latest + tags: evennia/evennia:latest - name: Build and push for develop if: ${{ matrix.TESTING_DB == 'sqlite3' && matrix.python-version == 3.7 && github.ref == 'refs/heads/develop'}} @@ -138,4 +138,4 @@ jobs: uses: docker/build-push-action@v2 with: push: true - tags: user/app:develop + tags: evennia/evennia:develop From 79b79e2fb3e06da642e1c1ef2bef5780b060e91f Mon Sep 17 00:00:00 2001 From: Griatch Date: Sun, 16 Jan 2022 16:47:15 +0100 Subject: [PATCH 05/27] Another test in actions --- .github/workflows/github_action_test_suite.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/github_action_test_suite.yml b/.github/workflows/github_action_test_suite.yml index e57a8366fd..aeacc68757 100644 --- a/.github/workflows/github_action_test_suite.yml +++ b/.github/workflows/github_action_test_suite.yml @@ -125,7 +125,7 @@ jobs: password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push for master - if: ${{ matrix.TESTING_DB == 'sqlite3' && matrix.python-version == 3.7 && github.ref == 'refs/heads/master'}} + if: github.ref == 'refs/heads/master'}} id: docker_build_master uses: docker/build-push-action@v2 with: @@ -133,7 +133,7 @@ jobs: tags: evennia/evennia:latest - name: Build and push for develop - if: ${{ matrix.TESTING_DB == 'sqlite3' && matrix.python-version == 3.7 && github.ref == 'refs/heads/develop'}} + if: matrix.python-version == 3.7 && github.ref == 'refs/heads/develop'}} id: docker_build_develop uses: docker/build-push-action@v2 with: From db8ce5cd0e8ab7c1bec34d3129c68d8cdf5ad13b Mon Sep 17 00:00:00 2001 From: Griatch Date: Sun, 16 Jan 2022 16:50:15 +0100 Subject: [PATCH 06/27] And another rebuild --- .github/workflows/github_action_test_suite.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/github_action_test_suite.yml b/.github/workflows/github_action_test_suite.yml index aeacc68757..489212cf48 100644 --- a/.github/workflows/github_action_test_suite.yml +++ b/.github/workflows/github_action_test_suite.yml @@ -125,7 +125,7 @@ jobs: password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push for master - if: github.ref == 'refs/heads/master'}} + if: github.ref == 'refs/heads/master' id: docker_build_master uses: docker/build-push-action@v2 with: @@ -133,7 +133,7 @@ jobs: tags: evennia/evennia:latest - name: Build and push for develop - if: matrix.python-version == 3.7 && github.ref == 'refs/heads/develop'}} + if: github.ref == 'refs/heads/develop' id: docker_build_develop uses: docker/build-push-action@v2 with: From df4e5e0d7c658c49d4f1fd4a4216191a202413c1 Mon Sep 17 00:00:00 2001 From: Griatch Date: Sun, 16 Jan 2022 16:56:15 +0100 Subject: [PATCH 07/27] Group push under main build action --- .../workflows/github_action_test_suite.yml | 60 +++++++++---------- 1 file changed, 29 insertions(+), 31 deletions(-) diff --git a/.github/workflows/github_action_test_suite.yml b/.github/workflows/github_action_test_suite.yml index 489212cf48..4ed6114ba9 100644 --- a/.github/workflows/github_action_test_suite.yml +++ b/.github/workflows/github_action_test_suite.yml @@ -108,34 +108,32 @@ jobs: project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} coverage-reports: ./testing_mygame/coverage.xml - docker: - runs-on: ubuntu-latest - steps: - - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Login to DockerHub - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build and push for master - if: github.ref == 'refs/heads/master' - id: docker_build_master - uses: docker/build-push-action@v2 - with: - push: true - tags: evennia/evennia:latest - - - name: Build and push for develop - if: github.ref == 'refs/heads/develop' - id: docker_build_develop - uses: docker/build-push-action@v2 - with: - push: true - tags: evennia/evennia:develop + # docker setup and push + - + name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - + name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - + name: Build and push for master + if: github.ref == 'refs/heads/master' + id: docker_build_master + uses: docker/build-push-action@v2 + with: + push: true + tags: evennia/evennia:latest + - + name: Build and push for develop + if: github.ref == 'refs/heads/develop' + id: docker_build_develop + uses: docker/build-push-action@v2 + with: + push: true + tags: evennia/evennia:develop From 84f03d73e5c7b55822d6489ada35e85f28f1a56a Mon Sep 17 00:00:00 2001 From: Griatch Date: Sun, 16 Jan 2022 17:13:39 +0100 Subject: [PATCH 08/27] Add limiters to not do multiple pushes in a test build --- .github/workflows/github_action_test_suite.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/github_action_test_suite.yml b/.github/workflows/github_action_test_suite.yml index 4ed6114ba9..b2ee446eb8 100644 --- a/.github/workflows/github_action_test_suite.yml +++ b/.github/workflows/github_action_test_suite.yml @@ -123,7 +123,7 @@ jobs: password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push for master - if: github.ref == 'refs/heads/master' + if: matrix.TESTING_DB == 'sqlite3' && matrix.python-version == 3.7 && github.ref == 'refs/heads/master' id: docker_build_master uses: docker/build-push-action@v2 with: @@ -131,7 +131,7 @@ jobs: tags: evennia/evennia:latest - name: Build and push for develop - if: github.ref == 'refs/heads/develop' + if: matrix.TESTING_DB == 'sqlite3' && matrix.python-version == 3.7 && github.ref == 'refs/heads/develop' id: docker_build_develop uses: docker/build-push-action@v2 with: From a920a0d084a0dad58c92a524565be365d4f769c7 Mon Sep 17 00:00:00 2001 From: Griatch Date: Sun, 16 Jan 2022 17:26:59 +0100 Subject: [PATCH 09/27] Further limit push --- .github/workflows/github_action_test_suite.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/github_action_test_suite.yml b/.github/workflows/github_action_test_suite.yml index b2ee446eb8..e0d0d3979a 100644 --- a/.github/workflows/github_action_test_suite.yml +++ b/.github/workflows/github_action_test_suite.yml @@ -18,7 +18,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [3.7, 3.8] + python-version: [3.7, 3.8, 3.9] TESTING_DB: ['sqlite3', 'postgresql', 'mysql'] steps: @@ -111,12 +111,15 @@ jobs: # docker setup and push - name: Set up QEMU + if: matrix.TESTING_DB == 'sqlite3' && matrix.python-version == 3.7 uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx + if: matrix.TESTING_DB == 'sqlite3' && matrix.python-version == 3.7 uses: docker/setup-buildx-action@v1 - name: Login to DockerHub + if: matrix.TESTING_DB == 'sqlite3' && matrix.python-version == 3.7 uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} From 44d4f977179653b056e230882a63cd866e034cab Mon Sep 17 00:00:00 2001 From: Griatch Date: Wed, 19 Jan 2022 21:44:38 +0100 Subject: [PATCH 10/27] Avoid CI error for PR repos with no docker creds --- .github/workflows/github_action_test_suite.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/github_action_test_suite.yml b/.github/workflows/github_action_test_suite.yml index e0d0d3979a..6f39098866 100644 --- a/.github/workflows/github_action_test_suite.yml +++ b/.github/workflows/github_action_test_suite.yml @@ -119,7 +119,7 @@ jobs: uses: docker/setup-buildx-action@v1 - name: Login to DockerHub - if: matrix.TESTING_DB == 'sqlite3' && matrix.python-version == 3.7 + if: matrix.TESTING_DB == 'sqlite3' && matrix.python-version == 3.7 && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/develop') uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} From 0f195f7c856dda045eab38ad080c46ba221ebaeb Mon Sep 17 00:00:00 2001 From: Tim Goode <68455040+telimektar3@users.noreply.github.com> Date: Thu, 3 Feb 2022 11:08:10 -0500 Subject: [PATCH 11/27] Made simple grammar and spelling changes. --- docs/README.md | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/docs/README.md b/docs/README.md index 2a9b3e6a01..bafd3def40 100644 --- a/docs/README.md +++ b/docs/README.md @@ -10,7 +10,7 @@ The live documentation is (will in the future be) available at `https://evennia. # Editing the docs The documentation source files are `*.md` (Markdown) files found in `evennia/docs/source/`. -Markdown files are simple text files that can be edited with a normal text editor. They primaroly use +Markdown files are simple text files that can be edited with a normal text editor. They primarily use the [Markdown][commonmark] syntax. See [the syntax section below](#Editing-syntax) for more help. Don't edit the files in `source/api/`. These are auto-generated and your changes @@ -18,7 +18,7 @@ will be lost. ## Contributing -Contributing to the docs is is like [contributing to the rest of Evennia][contributing]: +Contributing to the docs is like [contributing to the rest of Evennia][contributing]: Check out the branch of Evennia you want to edit the documentation for. Create your own work-branch, make your changes to files in `evennia/docs/source/` and make a PR for it! @@ -66,7 +66,7 @@ All is done in your terminal/console. The full documentation includes both the doc pages and the API documentation generated from the Evennia source. For this you must install Evennia and initialize a new game with a default database (you don't need to have it -running) +running). - Follow the normal [Evennia Getting-Started instructions][getting-started] to install Evennia. Use a virtualenv. @@ -79,7 +79,7 @@ repo with ``` - Then `cd` into it and create a new, empty database. You don't need to start the game - or do any further changes. + or make any further changes. ``` evennia migrate @@ -104,7 +104,7 @@ repo with pip install -r requirements.txt ``` -- Finally, build the full documentation, including the auto-docs: +- Finally, build the full documentation including the auto-docs: ``` make local @@ -274,7 +274,7 @@ The Evennia documentation supports some special reference shortcuts in links: This will generate a link to https://github.com/evennia/evennia/issues/new/choose. - > For some reason these particular shortcuts gives a warning during documentation compilation. This + > For some reason these particular shortcuts give a warning during documentation compilation. This warning > can be ignored. ## Verbatim text @@ -304,7 +304,7 @@ Everything within these backticks will be verbatim. ## Code blocks -A special case is code examples - we want them to get code-highlighting for readability. This is done by using +Code examples are a special case - we want them to get code-highlighting for readability. This is done by using the triple-backticks and specify which language we use: ```` @@ -318,10 +318,9 @@ def a_python_func(x): ## ReST blocks -Markdown is easy to read and use. But while it does most of what we need, there are some things it's -not quite as expressive as it needs to be. For this we need to fall back to the [ReST][ReST] markup -language which the documentation system uses under the hood. This is done by specifying `eval_rst` as -the name of the `language` of a literal block: +Markdown is easy to read and use, but it isn't as expressive as it needs to be for some things. For this we +need to fall back to the [ReST][ReST] markup language which the documentation system uses under the hood. This is +done by specifying `eval_rst` as the name of the `language` of a literal block: ```` ```eval_rst From c9b2eead0bd577eb487b2c62331db9c3f80d1cd2 Mon Sep 17 00:00:00 2001 From: Griatch Date: Fri, 4 Feb 2022 14:11:48 +0100 Subject: [PATCH 12/27] Add develop-specific issue-report template --- .github/ISSUE_TEMPLATE/bug-report-develop.md | 27 ++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug-report-develop.md diff --git a/.github/ISSUE_TEMPLATE/bug-report-develop.md b/.github/ISSUE_TEMPLATE/bug-report-develop.md new file mode 100644 index 0000000000..6bb020edbb --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report-develop.md @@ -0,0 +1,27 @@ +--- +name: Bug report (branch-develop) +about: Use this to report errors in the Evennia `develop` branch +title: "[BUG - Develop] (Enter a brief description here)" +labels: bug, branch-develop +assignees: '' + +--- + +#### Describe the bug +(This is for bugs in the develop-branch only. Make sure you test with the latest version.) + +#### To Reproduce +Steps to reproduce the behavior: +1. +2. +3. +4. See error + +#### Expected behavior +(Replace with a clear and concise description of what you expected to happen.) + +#### Develop-branch commit +(The commit-hash. If unsure, run `evennia -v` or get the first few lines of the `about` command in-game.) + +#### Additional context +(Replace with any other context about the problem, or ideas on how to solve.) From 554ba248ca0720c8116fd45cb1bf4bdd22dc5240 Mon Sep 17 00:00:00 2001 From: Griatch Date: Sat, 5 Feb 2022 18:56:12 +0100 Subject: [PATCH 13/27] Backport support for py3.10 --- docs/source/Default-Commands.md | 36 ++++++++++++++++----------------- docs/source/Evennia-API.md | 2 +- docs/source/Online-Setup.md | 2 +- evennia/prototypes/tests.py | 2 +- evennia/server/signals.py | 20 +++++++++--------- evennia/utils/dbserialize.py | 6 +++--- 6 files changed, 34 insertions(+), 34 deletions(-) diff --git a/docs/source/Default-Commands.md b/docs/source/Default-Commands.md index 36d32e14d5..e24501aed2 100644 --- a/docs/source/Default-Commands.md +++ b/docs/source/Default-Commands.md @@ -14,27 +14,27 @@ with [EvEditor](./EvEditor.md), flipping pages in [EvMore](./EvMore.md) or using [Batch-Processor](./Batch-Processors.md)'s interactive mode. ``` -- [**__unloggedin_look_command** [l, look]](evennia.commands.default.unloggedin.CmdUnconnectedLook) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) +- [**__unloggedin_look_command** [look, l]](evennia.commands.default.unloggedin.CmdUnconnectedLook) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) - [**about** [version]](evennia.commands.default.system.CmdAbout) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) -- [**access** [hierarchy, groups]](evennia.commands.default.general.CmdAccess) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) -- [**accounts** [account, listaccounts]](evennia.commands.default.system.CmdAccounts) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) +- [**access** [groups, hierarchy]](evennia.commands.default.general.CmdAccess) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) +- [**accounts** [listaccounts, account]](evennia.commands.default.system.CmdAccounts) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) - [**addcom** [chanalias, aliaschan]](evennia.commands.default.comms.CmdAddCom) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**alias** [setobjalias]](evennia.commands.default.building.CmdSetObjAlias) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**allcom**](evennia.commands.default.comms.CmdAllCom) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**batchcode** [batchcodes]](evennia.commands.default.batchprocess.CmdBatchCode) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) -- [**batchcommands** [batchcmd, batchcommand]](evennia.commands.default.batchprocess.CmdBatchCommands) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**batchcommands** [batchcommand, batchcmd]](evennia.commands.default.batchprocess.CmdBatchCommands) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**cboot**](evennia.commands.default.comms.CmdCBoot) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**ccreate** [channelcreate]](evennia.commands.default.comms.CmdChannelCreate) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**cdesc**](evennia.commands.default.comms.CmdCdesc) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**cdestroy**](evennia.commands.default.comms.CmdCdestroy) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**cemit** [cmsg]](evennia.commands.default.comms.CmdCemit) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) -- [**channels** [clist, chanlist, all channels, channellist, comlist]](evennia.commands.default.comms.CmdChannels) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) +- [**channels** [channellist, clist, comlist, all channels, chanlist]](evennia.commands.default.comms.CmdChannels) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**charcreate**](evennia.commands.default.account.CmdCharCreate) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) - [**chardelete**](evennia.commands.default.account.CmdCharDelete) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) - [**clock**](evennia.commands.default.comms.CmdClock) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**cmdsets** [listcmsets]](evennia.commands.default.building.CmdListCmdSets) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**color**](evennia.commands.default.account.CmdColorTest) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) -- [**connect** [conn, co, con]](evennia.commands.default.unloggedin.CmdUnconnectedConnect) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) +- [**connect** [con, co, conn]](evennia.commands.default.unloggedin.CmdUnconnectedConnect) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) - [**copy**](evennia.commands.default.building.CmdCopy) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**cpattr**](evennia.commands.default.building.CmdCpAttr) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**create**](evennia.commands.default.building.CmdCreate) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) @@ -42,17 +42,17 @@ with [EvEditor](./EvEditor.md), flipping pages in [EvMore](./EvMore.md) or using - [**cwho**](evennia.commands.default.comms.CmdCWho) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**delcom** [delchanalias, delaliaschan]](evennia.commands.default.comms.CmdDelCom) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**desc** [describe]](evennia.commands.default.building.CmdDesc) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) -- [**destroy** [delete, del]](evennia.commands.default.building.CmdDestroy) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**destroy** [del, delete]](evennia.commands.default.building.CmdDestroy) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**dig**](evennia.commands.default.building.CmdDig) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**drop**](evennia.commands.default.general.CmdDrop) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) - [**encoding** [encode]](evennia.commands.default.unloggedin.CmdUnconnectedEncoding) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) -- [**examine** [ex, exam]](evennia.commands.default.building.CmdExamine) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Building_) +- [**examine** [exam, ex]](evennia.commands.default.building.CmdExamine) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Building_) - [**find** [search, locate]](evennia.commands.default.building.CmdFind) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**get** [grab]](evennia.commands.default.general.CmdGet) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) - [**give**](evennia.commands.default.general.CmdGive) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) - [**grapevine2chan**](evennia.commands.default.comms.CmdGrapevine2Chan) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**help** [?]](evennia.commands.default.help.CmdHelp) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) -- [**help** [h, ?]](evennia.commands.default.unloggedin.CmdUnconnectedHelp) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) +- [**help** [?, h]](evennia.commands.default.unloggedin.CmdUnconnectedHelp) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) - [**home**](evennia.commands.default.general.CmdHome) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) - [**ic** [puppet]](evennia.commands.default.account.CmdIC) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) - [**info**](evennia.commands.default.unloggedin.CmdUnconnectedInfo) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) @@ -61,18 +61,18 @@ with [EvEditor](./EvEditor.md), flipping pages in [EvMore](./EvMore.md) or using - [**ircstatus**](evennia.commands.default.comms.CmdIRCStatus) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**link**](evennia.commands.default.building.CmdLink) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**lock** [locks]](evennia.commands.default.building.CmdLock) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) -- [**look** [l, ls]](evennia.commands.default.account.CmdOOCLook) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) -- [**look** [l, ls]](evennia.commands.default.general.CmdLook) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) +- [**look** [ls, l]](evennia.commands.default.account.CmdOOCLook) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) +- [**look** [ls, l]](evennia.commands.default.general.CmdLook) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) - [**mvattr**](evennia.commands.default.building.CmdMvAttr) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**name** [rename]](evennia.commands.default.building.CmdName) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) -- [**nick** [nickname, nicks]](evennia.commands.default.general.CmdNick) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) -- [**objects** [listobjects, db, listobjs, stats]](evennia.commands.default.system.CmdObjects) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) +- [**nick** [nicks, nickname]](evennia.commands.default.general.CmdNick) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) +- [**objects** [stats, db, listobjects, listobjs]](evennia.commands.default.system.CmdObjects) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) - [**ooc** [unpuppet]](evennia.commands.default.account.CmdOOC) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) - [**open**](evennia.commands.default.building.CmdOpen) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**option** [options]](evennia.commands.default.account.CmdOption) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) - [**page** [tell]](evennia.commands.default.comms.CmdPage) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) - [**password**](evennia.commands.default.account.CmdPassword) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) -- [**pose** [emote, :]](evennia.commands.default.general.CmdPose) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) +- [**pose** [:, emote]](evennia.commands.default.general.CmdPose) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) - [**py** [!]](evennia.commands.default.system.CmdPy) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _System_) - [**quell** [unquell]](evennia.commands.default.account.CmdQuell) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) - [**quit**](evennia.commands.default.account.CmdQuit) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) @@ -80,11 +80,11 @@ with [EvEditor](./EvEditor.md), flipping pages in [EvMore](./EvMore.md) or using - [**reload** [restart]](evennia.commands.default.system.CmdReload) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _System_) - [**reset** [reboot]](evennia.commands.default.system.CmdReset) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _System_) - [**rss2chan**](evennia.commands.default.comms.CmdRSS2Chan) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _Comms_) -- [**say** [', "]](evennia.commands.default.general.CmdSay) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) +- [**say** [", ']](evennia.commands.default.general.CmdSay) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) - [**screenreader**](evennia.commands.default.unloggedin.CmdUnconnectedScreenreader) (cmdset: [UnloggedinCmdSet](evennia.commands.default.cmdset_unloggedin.UnloggedinCmdSet), help-category: _General_) - [**script** [addscript]](evennia.commands.default.building.CmdScript) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) -- [**scripts** [listscripts, globalscript]](evennia.commands.default.system.CmdScripts) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) -- [**server** [serverload, serverprocess]](evennia.commands.default.system.CmdServerLoad) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) +- [**scripts** [globalscript, listscripts]](evennia.commands.default.system.CmdScripts) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) +- [**server** [serverprocess, serverload]](evennia.commands.default.system.CmdServerLoad) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) - [**service** [services]](evennia.commands.default.system.CmdService) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) - [**sessions**](evennia.commands.default.account.CmdSessions) (cmdset: [SessionCmdSet](evennia.commands.default.cmdset_session.SessionCmdSet), help-category: _General_) - [**set**](evennia.commands.default.building.CmdSetAttribute) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) @@ -99,7 +99,7 @@ with [EvEditor](./EvEditor.md), flipping pages in [EvMore](./EvMore.md) or using - [**tickers**](evennia.commands.default.system.CmdTickers) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) - [**time** [uptime]](evennia.commands.default.system.CmdTime) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _System_) - [**tunnel** [tun]](evennia.commands.default.building.CmdTunnel) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) -- [**typeclass** [swap, parent, update, type]](evennia.commands.default.building.CmdTypeclass) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) +- [**typeclass** [parent, update, type, swap]](evennia.commands.default.building.CmdTypeclass) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**unlink**](evennia.commands.default.building.CmdUnLink) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _Building_) - [**whisper**](evennia.commands.default.general.CmdWhisper) (cmdset: [CharacterCmdSet](evennia.commands.default.cmdset_character.CharacterCmdSet), help-category: _General_) - [**who** [doing]](evennia.commands.default.account.CmdWho) (cmdset: [AccountCmdSet](evennia.commands.default.cmdset_account.AccountCmdSet), help-category: _General_) diff --git a/docs/source/Evennia-API.md b/docs/source/Evennia-API.md index cb5bcac883..b4bbf14866 100644 --- a/docs/source/Evennia-API.md +++ b/docs/source/Evennia-API.md @@ -1,6 +1,6 @@ # API Summary -[evennia](evennia) - library root +[evennia](api/evennia.md) - library root - [evennia.accounts](evennia.accounts) - the out-of-character entities representing players - [evennia.commands](evennia.commands) - handle all inputs. Also includes default commands - [evennia.comms](evennia.comms) - in-game channels and messaging diff --git a/docs/source/Online-Setup.md b/docs/source/Online-Setup.md index c9f5c36ca8..9a27941eab 100644 --- a/docs/source/Online-Setup.md +++ b/docs/source/Online-Setup.md @@ -179,7 +179,7 @@ AMP_PORT = 4006 ``` The `AMP_PORT` is required to work, since this is the internal port linking Evennia's -[Server and Portal](../Components/Portal-And-Server.md) components together. The other ports are encrypted ports that may be +[Server and Portal](./Portal-And-Server.md) components together. The other ports are encrypted ports that may be useful for custom protocols but are otherwise not used. ### Lockdown mode diff --git a/evennia/prototypes/tests.py b/evennia/prototypes/tests.py index 026786d547..445ff167a4 100644 --- a/evennia/prototypes/tests.py +++ b/evennia/prototypes/tests.py @@ -363,7 +363,7 @@ class TestProtFuncs(EvenniaTest): ) self.assertEqual( protlib.protfunc_parser("$right_justify( foo )", testing=True), - ("unexpected indent (, line 1)", " foo"), + (None, " foo"), ) test_prot = {"key1": "value1", "key2": 2} diff --git a/evennia/server/signals.py b/evennia/server/signals.py index 5527fe425d..2e0e314d45 100644 --- a/evennia/server/signals.py +++ b/evennia/server/signals.py @@ -27,45 +27,45 @@ from django.dispatch import Signal # Account.create() after the Account is created. Note that this will *not* fire # if calling create.create_account alone, since going through the Account.create() # is the most expected route. -SIGNAL_ACCOUNT_POST_CREATE = Signal(providing_args=["ip"]) +SIGNAL_ACCOUNT_POST_CREATE = Signal() # The Sender is the renamed Account. This is triggered by the username setter in AccountDB. -SIGNAL_ACCOUNT_POST_RENAME = Signal(providing_args=["old_name", "new_name"]) +SIGNAL_ACCOUNT_POST_RENAME = Signal() # The Sender is the connecting Account. This is triggered when an Account connects cold; # that is, it had no other sessions connected. -SIGNAL_ACCOUNT_POST_FIRST_LOGIN = Signal(providing_args=["session"]) +SIGNAL_ACCOUNT_POST_FIRST_LOGIN = Signal() # The sender is the connecting Account. This is triggered whenever a session authenticates # to an Account regardless of existing sessions. It then firest after FIRST_LOGIN signal -SIGNAL_ACCOUNT_POST_LOGIN = Signal(providing_args=["session"]) +SIGNAL_ACCOUNT_POST_LOGIN = Signal() # The Sender is the Account attempting to authenticate. This is triggered whenever a # session tries to login to an Account but fails. -SIGNAL_ACCOUNT_POST_LOGIN_FAIL = Signal(providing_args=["session"]) +SIGNAL_ACCOUNT_POST_LOGIN_FAIL = Signal() # The sender is the disconnecting Account. This is triggered whenever a session disconnects # from the account, regardless of how many it started with or remain. -SIGNAL_ACCOUNT_POST_LOGOUT = Signal(providing_args=["session"]) +SIGNAL_ACCOUNT_POST_LOGOUT = Signal() # The sender is the Account. This is triggered when an Account's final session disconnects. -SIGNAL_ACCOUNT_POST_LAST_LOGOUT = Signal(providing_args=["session"]) +SIGNAL_ACCOUNT_POST_LAST_LOGOUT = Signal() # The sender is an Object. This is triggered when Object has been created, after all hooks. SIGNAL_OBJECT_POST_CREATE = Signal() # The sender is the Object being puppeted. This is triggered after all puppeting hooks have # been called. The Object has already been puppeted by this point. -SIGNAL_OBJECT_POST_PUPPET = Signal(providing_args=["session", "account"]) +SIGNAL_OBJECT_POST_PUPPET = Signal() # The sender is the Object being released. This is triggered after all hooks are called. # The Object is no longer puppeted by this point. -SIGNAL_OBJECT_POST_UNPUPPET = Signal(providing_args=["session", "account"]) +SIGNAL_OBJECT_POST_UNPUPPET = Signal() # The sender is the Typed Object being renamed. This isn't necessarily an Object; # it could be a script. It fires whenever the value of the Typed object's 'key' # changes. Will need to use isinstance() or other filtering on things that use this. -SIGNAL_TYPED_OBJECT_POST_RENAME = Signal(providing_args=["old_key", "new_key"]) +SIGNAL_TYPED_OBJECT_POST_RENAME = Signal() # The sender is the created Script. This is called after the Script was first created, # after all hooks. diff --git a/evennia/utils/dbserialize.py b/evennia/utils/dbserialize.py index 1e12f865fb..be5fcbdde5 100644 --- a/evennia/utils/dbserialize.py +++ b/evennia/utils/dbserialize.py @@ -19,8 +19,8 @@ be out of sync with the database. """ from functools import update_wrapper -from collections import defaultdict, MutableSequence, MutableSet, MutableMapping -from collections import OrderedDict, deque +from collections import deque, OrderedDict, defaultdict +from collections.abc import MutableSequence, MutableSet, MutableMapping try: from pickle import dumps, loads @@ -391,7 +391,7 @@ class _SaverDeque(_SaverMutable): @_save def rotate(self, *args): self._data.rotate(*args) - + @_save def remove(self, *args): self._data.remove(*args) From 1dc5ab32984d4b20acd10db605fea62c08315d8b Mon Sep 17 00:00:00 2001 From: Griatch Date: Sat, 5 Feb 2022 19:42:36 +0100 Subject: [PATCH 14/27] Sync doc-build reqs --- docs/requirements.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index cba2a17f50..683117213d 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,11 +1,11 @@ # requirements for building the docs sphinx==3.2.1 -sphinx-multiversion==0.2.4 -# lunr==0.5.8 +myst-parser==0.15.2 +myst-parser[linkify]==0.15.2 -# recommonmark custom branch with evennia-specific fixes -git+https://github.com/evennia/recommonmark.git@evennia-mods#egg=recommonmark +# sphinx-multiversion with evennia fixes +git+https://github.com/evennia/sphinx-multiversion.git@evennia-mods#egg=sphinx-multiversion # sphinxcontrib-lunrsearch custom branch with evennia-specific fixes -git+https://github.com/evennia/sphinxcontrib-lunrsearch.git@evennia-mods#egg=sphinxcontrib-lunrsearch +# git+https://github.com/evennia/sphinxcontrib-lunrsearch.git@evennia-mods#egg=sphinxcontrib-lunrsearch From 1cb45ee2596517e9047981c34dfaf168db57a7d4 Mon Sep 17 00:00:00 2001 From: Griatch Date: Sat, 5 Feb 2022 19:48:15 +0100 Subject: [PATCH 15/27] Inconsistent test result 3.9 vs 3.10 --- evennia/prototypes/tests.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/evennia/prototypes/tests.py b/evennia/prototypes/tests.py index 445ff167a4..145729c950 100644 --- a/evennia/prototypes/tests.py +++ b/evennia/prototypes/tests.py @@ -7,7 +7,7 @@ from random import randint, sample import mock import uuid from time import time -from anything import Something +from anything import Something, Anything from django.test.utils import override_settings from evennia.utils.test_resources import EvenniaTest from evennia.utils.tests.test_evmenu import TestEvMenu @@ -363,7 +363,7 @@ class TestProtFuncs(EvenniaTest): ) self.assertEqual( protlib.protfunc_parser("$right_justify( foo )", testing=True), - (None, " foo"), + (Anything, " foo"), ) test_prot = {"key1": "value1", "key2": 2} From d4366ce753fe2a1c019478a9b5450a3c6099a000 Mon Sep 17 00:00:00 2001 From: Christopher League Date: Wed, 2 Mar 2022 13:20:58 -0500 Subject: [PATCH 16/27] Add tests to cover all 3 cases of CmdHome --- evennia/commands/default/tests.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/evennia/commands/default/tests.py b/evennia/commands/default/tests.py index c7a57c6ba9..aa0cbf1f23 100644 --- a/evennia/commands/default/tests.py +++ b/evennia/commands/default/tests.py @@ -184,6 +184,14 @@ class TestGeneral(CommandTest): def test_home(self): self.call(general.CmdHome(), "", "You are already home") + def test_go_home(self): + self.call(building.CmdTeleport(), "/quiet Room2") + self.call(general.CmdHome(), "", "There's no place like home") + + def test_no_home(self): + self.char1.home = None + self.call(general.CmdHome(), "", "You have no home") + def test_inventory(self): self.call(general.CmdInventory(), "", "You are not carrying anything.") From c9e1dc9a978b2bc4d2acffe06f2fc751b9d0d6d6 Mon Sep 17 00:00:00 2001 From: Christopher League Date: Mon, 4 Apr 2022 15:37:29 -0400 Subject: [PATCH 17/27] Improve coverage of commands "look" and "nick" --- evennia/commands/default/tests.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/evennia/commands/default/tests.py b/evennia/commands/default/tests.py index aa0cbf1f23..b6e18353a2 100644 --- a/evennia/commands/default/tests.py +++ b/evennia/commands/default/tests.py @@ -181,6 +181,13 @@ class TestGeneral(CommandTest): rid = self.room1.id self.call(general.CmdLook(), "here", "Room(#{})\nroom_desc".format(rid)) + def test_look_no_location(self): + self.char1.location = None + self.call(general.CmdLook(), "", "You have no location to look at!") + + def test_look_nonexisting(self): + self.call(general.CmdLook(), "yellow sign", "Could not find 'yellow sign'.") + def test_home(self): self.call(general.CmdHome(), "", "You are already home") @@ -221,6 +228,12 @@ class TestGeneral(CommandTest): self.assertEqual(None, self.char1.account.nicks.get("testalias", category="account")) self.assertEqual("testaliasedstring3", self.char1.nicks.get("testalias", category="object")) + def test_nick_list(self): + self.call(general.CmdNick(), "/list", "No nicks defined.") + self.call(general.CmdNick(), "test1 = Hello", + "Inputline-nick 'test1' mapped to 'Hello'.") + self.call(general.CmdNick(), "/list", "Defined Nicks:") + def test_get_and_drop(self): self.call(general.CmdGet(), "Obj", "You pick up Obj.") self.call(general.CmdDrop(), "Obj", "You drop Obj.") From a25141d98466a7c9457676888c3f733520c047de Mon Sep 17 00:00:00 2001 From: KieranSmith-Res <93326079+KieranSmith-Res@users.noreply.github.com> Date: Mon, 9 May 2022 07:04:53 +0100 Subject: [PATCH 18/27] Update Links.md Add link to Designing Virtual Worlds PDF --- docs/source/Links.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/source/Links.md b/docs/source/Links.md index 21a73992ab..c50986ab01 100644 --- a/docs/source/Links.md +++ b/docs/source/Links.md @@ -124,6 +124,8 @@ when designing a virtual multiplayer world (Raph is known for *Ultima Online* am - Richard Bartle *Designing Virtual Worlds* ([amazon page](http://www.amazon.com/Designing-Virtual-Worlds-Richard-Bartle/dp/0131018167)) - Essential reading for the design of any persistent game world, written by the co-creator of the original game *MUD*. Published in 2003 but it's still as relevant now as when it came out. Covers everything you need to know and then some. + + When the rights to Designing Virtual Worlds returned to him, Richard Bartle made the PDF of his Designing Virtual Worlds freely available through his own website ([Richard Bartle](https://mud.co.uk/dvw/)). A direct link to the PDF can be found ([here](https://mud.co.uk/richard/DesigningVirtualWorlds.pdf)). - Zed A. Shaw *Learn Python the Hard way* ([homepage](https://learnpythonthehardway.org/)) - Despite the imposing name this book is for the absolute Python/programming beginner. One learns the language by gradually creating a small text game! It has been used by multiple users before moving on to From baf5964d9f4dd8a4ef8df9ae0700cc3b2be27c4e Mon Sep 17 00:00:00 2001 From: KieranSmith-Res <93326079+KieranSmith-Res@users.noreply.github.com> Date: Mon, 9 May 2022 07:05:42 +0100 Subject: [PATCH 19/27] Update Links.md Update website link to DVW --- docs/source/Links.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/Links.md b/docs/source/Links.md index c50986ab01..cbd29079bc 100644 --- a/docs/source/Links.md +++ b/docs/source/Links.md @@ -125,7 +125,7 @@ when designing a virtual multiplayer world (Raph is known for *Ultima Online* am world, written by the co-creator of the original game *MUD*. Published in 2003 but it's still as relevant now as when it came out. Covers everything you need to know and then some. - When the rights to Designing Virtual Worlds returned to him, Richard Bartle made the PDF of his Designing Virtual Worlds freely available through his own website ([Richard Bartle](https://mud.co.uk/dvw/)). A direct link to the PDF can be found ([here](https://mud.co.uk/richard/DesigningVirtualWorlds.pdf)). + When the rights to Designing Virtual Worlds returned to him, Richard Bartle made the PDF of his Designing Virtual Worlds freely available through his own website ([Designing Virtual Worlds](https://mud.co.uk/dvw/)). A direct link to the PDF can be found [here](https://mud.co.uk/richard/DesigningVirtualWorlds.pdf). - Zed A. Shaw *Learn Python the Hard way* ([homepage](https://learnpythonthehardway.org/)) - Despite the imposing name this book is for the absolute Python/programming beginner. One learns the language by gradually creating a small text game! It has been used by multiple users before moving on to From bdbac2cf0075886902aa432801074cddfb5ec5c1 Mon Sep 17 00:00:00 2001 From: Bruno Briante Date: Wed, 1 Jun 2022 22:29:12 -0300 Subject: [PATCH 20/27] fix google style URL on CODING_STYLE.md --- CODING_STYLE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CODING_STYLE.md b/CODING_STYLE.md index 79b6a2c674..80e8ac595c 100644 --- a/CODING_STYLE.md +++ b/CODING_STYLE.md @@ -199,7 +199,7 @@ or in the chat. [pep8]: http://www.python.org/dev/peps/pep-0008 [pep8tool]: https://pypi.python.org/pypi/pep8 -[googlestyle]: http://www.sphinx-doc.org/en/stable/ext/example_google.html +[googlestyle]: https://www.sphinx-doc.org/en/master/usage/extensions/example_google.html [githubmarkdown]: https://help.github.com/articles/github-flavored-markdown/ [markdown-hilight]: https://help.github.com/articles/github-flavored-markdown/#syntax-highlighting [command-docstrings]: https://github.com/evennia/evennia/wiki/Using%20MUX%20As%20a%20Standard#documentation-policy From a866cbcf3f6f4b46cdb545005923cc5a21a94c9e Mon Sep 17 00:00:00 2001 From: avalonhope <96471977+avalonhope@users.noreply.github.com> Date: Fri, 10 Jun 2022 12:18:44 +0100 Subject: [PATCH 21/27] Update link to discussion forum Old link pointed to Google groups; replaced with direct link to GitHub discussions --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 73bb35181c..c58b35f5ec 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,6 @@ Welcome! [coverlink]: https://coveralls.io/github/evennia/evennia?branch=master [introduction]: https://github.com/evennia/evennia/wiki/Evennia-Introduction [license]: https://github.com/evennia/evennia/wiki/Licensing -[group]: https://groups.google.com/forum/#!forum/evennia +[group]: https://github.com/evennia/evennia/discussions [chat]: http://webchat.freenode.net/?channels=evennia&uio=MT1mYWxzZSY5PXRydWUmMTE9MTk1JjEyPXRydWUbb [wikimudpage]: http://en.wikipedia.org/wiki/MUD From 65ed25c8bacb742793fe3389e3cc2801f7b7dd68 Mon Sep 17 00:00:00 2001 From: Griatch Date: Sun, 12 Jun 2022 01:00:14 +0200 Subject: [PATCH 22/27] More updates to readme --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 73bb35181c..9b32773135 100644 --- a/README.md +++ b/README.md @@ -60,22 +60,22 @@ introduction][introduction] to read. To learn how to get your hands on the code base, the [Getting started][gettingstarted] page is the way to go. Otherwise you could -browse the [Documentation][wiki] or why not come join the [Evennia +browse the [Documentation][docs] or why not come join the [Evennia Community forum][group] or join us in our [development chat][chat]. Welcome! -[homepage]: http://www.evennia.com -[gettingstarted]: http://github.com/evennia/evennia/wiki/Getting-Started -[wiki]: https://github.com/evennia/evennia/wiki +[homepage]: https://www.evennia.com +[gettingstarted]: https://www.evennia.com/docs/latest/Getting-Started.html +[docs]: https://www.evennia.com/docs/latest [screenshot]: https://user-images.githubusercontent.com/294267/30773728-ea45afb6-a076-11e7-8820-49be2168a6b8.png [logo]: https://github.com/evennia/evennia/blob/master/evennia/web/website/static/website/images/evennia_logo.png [unittestciimg]: https://github.com/evennia/evennia/workflows/test-suite/badge.svg [unittestcilink]: https://github.com/evennia/evennia/actions?query=workflow%3Atest-suite [coverimg]: https://coveralls.io/repos/github/evennia/evennia/badge.svg?branch=master [coverlink]: https://coveralls.io/github/evennia/evennia?branch=master -[introduction]: https://github.com/evennia/evennia/wiki/Evennia-Introduction -[license]: https://github.com/evennia/evennia/wiki/Licensing -[group]: https://groups.google.com/forum/#!forum/evennia -[chat]: http://webchat.freenode.net/?channels=evennia&uio=MT1mYWxzZSY5PXRydWUmMTE9MTk1JjEyPXRydWUbb +[introduction]: https://www.evennia.com/docs/latest/Evennia-Introduction.html +[license]: https://www.evennia.com/docs/latest/Licensing.html +[group]: https://github.com/evennia/evennia/discussions +[chat]: https://discord.gg/AJJpcRUhtF [wikimudpage]: http://en.wikipedia.org/wiki/MUD From 967ec536399e0de692f78c5f572b2bea5a36c403 Mon Sep 17 00:00:00 2001 From: "Cory F. Cohen" Date: Tue, 21 Jun 2022 21:07:11 -0400 Subject: [PATCH 23/27] Fix various typos in several files. All are in comments and docstrings, and none should be controversial in any way (e.g. British versus American spelling). --- evennia/accounts/accounts.py | 10 +++++----- evennia/commands/default/building.py | 6 +++--- evennia/commands/default/comms.py | 2 +- evennia/commands/default/help.py | 2 +- evennia/game_template/world/README.md | 2 +- evennia/game_template/world/prototypes.py | 4 ++-- evennia/server/sessionhandler.py | 4 ++-- evennia/utils/evmore.py | 4 ++-- evennia/utils/utils.py | 14 +++++++------- 9 files changed, 24 insertions(+), 24 deletions(-) diff --git a/evennia/accounts/accounts.py b/evennia/accounts/accounts.py index a6d9fbefd8..ae4839a792 100644 --- a/evennia/accounts/accounts.py +++ b/evennia/accounts/accounts.py @@ -660,7 +660,7 @@ class DefaultAccount(AccountDB, metaclass=TypeclassBase): typeclass (str, optional): Typeclass to use for this character. If not given, use settings.BASE_CHARACTER_TYPECLASS. permissions (list, optional): If not given, use the account's permissions. - ip (str, optiona): The client IP creating this character. Will fall back to the + ip (str, optional): The client IP creating this character. Will fall back to the one stored for the account if not given. kwargs (any): Other kwargs will be used in the create_call. Returns: @@ -927,7 +927,7 @@ class DefaultAccount(AccountDB, metaclass=TypeclassBase): kwargs (any): Other keyword arguments will be added to the found command object instance as variables before it executes. This is unused by default Evennia but may be - used to set flags and change operating paramaters for + used to set flags and change operating parameters for commands at run-time. """ @@ -1307,7 +1307,7 @@ class DefaultAccount(AccountDB, metaclass=TypeclassBase): self._send_to_connect_channel(_("|G{key} connected|n").format(key=self.key)) if _MULTISESSION_MODE == 0: # in this mode we should have only one character available. We - # try to auto-connect to our last conneted object, if any + # try to auto-connect to our last connected object, if any try: self.puppet_object(session, self.db._last_puppet) except RuntimeError: @@ -1334,7 +1334,7 @@ class DefaultAccount(AccountDB, metaclass=TypeclassBase): """ Called by the login process if a user account is targeted correctly but provided with an invalid password. By default it does nothing, - but exists to be overriden. + but exists to be overridden. Args: session (session): Session logging in. @@ -1574,7 +1574,7 @@ class DefaultGuest(DefaultAccount): Gets or creates a Guest account object. Keyword Args: - ip (str, optional): IP address of requestor; used for ban checking, + ip (str, optional): IP address of requester; used for ban checking, throttling and logging Returns: diff --git a/evennia/commands/default/building.py b/evennia/commands/default/building.py index 41ef42024d..52ea53e700 100644 --- a/evennia/commands/default/building.py +++ b/evennia/commands/default/building.py @@ -1061,7 +1061,7 @@ class CmdTunnel(COMMAND_DEFAULT_CLASS): exitname, backshort = self.directions[exitshort] backname = self.directions[backshort][0] - # if we recieved a typeclass for the exit, add it to the alias(short name) + # if we received a typeclass for the exit, add it to the alias(short name) if ":" in self.lhs: # limit to only the first : character exit_typeclass = ":" + self.lhs.split(":", 1)[-1] @@ -1647,7 +1647,7 @@ class CmdSetAttribute(ObjManipCommand): def split_nested_attr(self, attr): """ Yields tuples of (possible attr name, nested keys on that attr). - For performance, this is biased to the deepest match, but allows compatability + For performance, this is biased to the deepest match, but allows compatibility with older attrs that might have been named with `[]`'s. > list(split_nested_attr("nested['asdf'][0]")) @@ -3491,7 +3491,7 @@ class CmdSpawn(COMMAND_DEFAULT_CLASS): ) return try: - # we homogenize the protoype first, to be more lenient with free-form + # we homogenize the prototype first, to be more lenient with free-form protlib.validate_prototype(protlib.homogenize_prototype(prototype)) except RuntimeError as err: self.caller.msg(str(err)) diff --git a/evennia/commands/default/comms.py b/evennia/commands/default/comms.py index e6057cdc4b..4d6c53837a 100644 --- a/evennia/commands/default/comms.py +++ b/evennia/commands/default/comms.py @@ -1261,7 +1261,7 @@ class CmdRSS2Chan(COMMAND_DEFAULT_CLASS): class CmdGrapevine2Chan(COMMAND_DEFAULT_CLASS): """ - Link an Evennia channel to an exteral Grapevine channel + Link an Evennia channel to an external Grapevine channel Usage: grapevine2chan[/switches] = diff --git a/evennia/commands/default/help.py b/evennia/commands/default/help.py index 0cd74428c3..0d5b4eee5f 100644 --- a/evennia/commands/default/help.py +++ b/evennia/commands/default/help.py @@ -85,7 +85,7 @@ class CmdHelp(COMMAND_DEFAULT_CLASS): def format_help_entry(title, help_text, aliases=None, suggested=None): """ This visually formats the help entry. - This method can be overriden to customize the way a help + This method can be overridden to customize the way a help entry is displayed. Args: diff --git a/evennia/game_template/world/README.md b/evennia/game_template/world/README.md index 0f3862dad4..0e4a2fe18f 100644 --- a/evennia/game_template/world/README.md +++ b/evennia/game_template/world/README.md @@ -1,6 +1,6 @@ # world/ -This folder is meant as a miscellanous folder for all that other stuff +This folder is meant as a miscellaneous folder for all that other stuff related to the game. Code which are not commands or typeclasses go here, like custom economy systems, combat code, batch-files etc. diff --git a/evennia/game_template/world/prototypes.py b/evennia/game_template/world/prototypes.py index 04aba091f3..8a05ed5f6c 100644 --- a/evennia/game_template/world/prototypes.py +++ b/evennia/game_template/world/prototypes.py @@ -28,7 +28,7 @@ Possible keywords are: - `prototype_key` - the name of the prototype. This is required for db-prototypes, for module-prototypes, the global variable name of the dict is used instead - `prototype_parent` - string pointing to parent prototype if any. Prototype inherits - in a similar way as classes, with children overriding values in their partents. + in a similar way as classes, with children overriding values in their parents. - `key` - string, the main object identifier. - `typeclass` - string, if not set, will use `settings.BASE_OBJECT_TYPECLASS`. - `location` - this should be a valid object or #dbref. @@ -42,7 +42,7 @@ Possible keywords are: of the shorter forms, defaults are used for the rest. - `tags` - Tags, as a list of tuples `(tag,)`, `(tag, category)` or `(tag, category, data)`. - Any other keywords are interpreted as Attributes with no category or lock. - These will internally be added to `attrs` (eqivalent to `(attrname, value)`. + These will internally be added to `attrs` (equivalent to `(attrname, value)`. See the `spawn` command and `evennia.prototypes.spawner.spawn` for more info. diff --git a/evennia/server/sessionhandler.py b/evennia/server/sessionhandler.py index 9b78fc3378..5e407f65ca 100644 --- a/evennia/server/sessionhandler.py +++ b/evennia/server/sessionhandler.py @@ -58,7 +58,7 @@ SSHUTD = chr(7) # server shutdown SSYNC = chr(8) # server session sync SCONN = chr(11) # server portal connection (for bots) PCONNSYNC = chr(12) # portal post-syncing session -PDISCONNALL = chr(13) # portal session discnnect all +PDISCONNALL = chr(13) # portal session disconnect all SRELOAD = chr(14) # server reloading (have portal start a new server) SSTART = chr(15) # server start (portal must already be running anyway) PSHUTD = chr(16) # portal (+server) shutdown @@ -679,7 +679,7 @@ class ServerSessionHandler(SessionHandler): Get a unique list of connected and logged-in Accounts. Returns: - accounts (list): All conected Accounts (which may be fewer than the + accounts (list): All connected Accounts (which may be fewer than the amount of Sessions due to multi-playing). """ diff --git a/evennia/utils/evmore.py b/evennia/utils/evmore.py index 94b9689688..fc31555a20 100644 --- a/evennia/utils/evmore.py +++ b/evennia/utils/evmore.py @@ -173,7 +173,7 @@ class EvMore: justify (bool, optional): If set, auto-justify long lines. This must be turned off for fixed-width or formatted output, like tables. It's force-disabled if `inp` is an EvTable. - justify_kwargs (dict, optional): Keywords for the justifiy function. Used only + justify_kwargs (dict, optional): Keywords for the justify function. Used only if `justify` is True. If this is not set, default arguments will be used. exit_on_lastpage (bool, optional): If reaching the last page without the page being completely filled, exit pager immediately. If unset, @@ -518,7 +518,7 @@ class EvMore: def page_formatter(self, page): """ Page formatter. Every page passes through this method. Override - it to customize behvaior per-page. A common use is to generate a new + it to customize behavior per-page. A common use is to generate a new EvTable for every page (this is more efficient than to generate one huge EvTable across many pages and feed it into EvMore all at once). diff --git a/evennia/utils/utils.py b/evennia/utils/utils.py index 4aadc02768..7c2f2210e6 100644 --- a/evennia/utils/utils.py +++ b/evennia/utils/utils.py @@ -785,7 +785,7 @@ def latinify(string, default="?", pure_ascii=False): This is used as a last resort when normal encoding does not work. Arguments: - string (str): A string to convert to 'safe characters' convertable + string (str): A string to convert to 'safe characters' convertible to an latin-1 bytestring later. default (str, optional): Characters resisting mapping will be replaced with this character or string. The intent is to apply an encode operation @@ -1050,7 +1050,7 @@ def delay(timedelay, callback, *args, **kwargs): Keep in mind that persistent tasks arguments and callback should not use memory references. If persistent is set to True the delay function will return an int - which is the task's id itended for use with TASK_HANDLER's do_task + which is the task's id intended for use with TASK_HANDLER's do_task and remove methods. All persistent tasks whose time delays have passed will be called on server startup. @@ -1430,12 +1430,12 @@ def class_from_module(path, defaultpaths=None, fallback=None): defaultpaths (iterable, optional): If a direct import from `path` fails, try subsequent imports by prepending those paths to `path`. fallback (str): If all other attempts fail, use this path as a fallback. - This is intended as a last-resport. In the example of Evennia + This is intended as a last-resort. In the example of Evennia loading, this would be a path to a default parent class in the evennia repo itself. Returns: - class (Class): An uninstatiated class recovered from path. + class (Class): An uninstantiated class recovered from path. Raises: ImportError: If all loading failed. @@ -1574,7 +1574,7 @@ def string_partial_matching(alternatives, inp, ret_index=True): Matching is made from the start of each subword in each alternative. Case is not important. So e.g. "bi sh sw" or just "big" or "shiny" or "sw" will match "Big shiny sword". Scoring is - done to allow to separate by most common demoninator. You will get + done to allow to separate by most common denominator. You will get multiple matches returned if appropriate. Args: @@ -1647,7 +1647,7 @@ def format_table(table, extra_space=1): :: ftable = format_table([[...], [...], ...]) - for ir, row in enumarate(ftable): + for ir, row in enumerate(ftable): if ir == 0: # make first row white string += "\\\\n|w" + ""join(row) + "|n" @@ -2045,7 +2045,7 @@ def get_all_typeclasses(parent=None): typeclasses (dict): On the form {"typeclass.path": typeclass, ...} Notes: - This will dynamicall retrieve all abstract django models inheriting at any distance + This will dynamically retrieve all abstract django models inheriting at any distance from the TypedObject base (aka a Typeclass) so it will work fine with any custom classes being added. From 19dc232b24c0c24e5170f6b5f3e29d47b589df6d Mon Sep 17 00:00:00 2001 From: Griatch Date: Tue, 5 Jul 2022 18:52:46 +0200 Subject: [PATCH 24/27] Update bug-report-develop.md --- .github/ISSUE_TEMPLATE/bug-report-develop.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug-report-develop.md b/.github/ISSUE_TEMPLATE/bug-report-develop.md index 6bb020edbb..2bcdda7d65 100644 --- a/.github/ISSUE_TEMPLATE/bug-report-develop.md +++ b/.github/ISSUE_TEMPLATE/bug-report-develop.md @@ -8,7 +8,7 @@ assignees: '' --- #### Describe the bug -(This is for bugs in the develop-branch only. Make sure you test with the latest version.) + #### To Reproduce Steps to reproduce the behavior: @@ -18,10 +18,10 @@ Steps to reproduce the behavior: 4. See error #### Expected behavior -(Replace with a clear and concise description of what you expected to happen.) + #### Develop-branch commit -(The commit-hash. If unsure, run `evennia -v` or get the first few lines of the `about` command in-game.) + #### Additional context -(Replace with any other context about the problem, or ideas on how to solve.) + From 50bd4eadae82c60f016e47f8a86101071335e8d7 Mon Sep 17 00:00:00 2001 From: Griatch Date: Tue, 5 Jul 2022 18:54:50 +0200 Subject: [PATCH 25/27] Update bug-report.md --- .github/ISSUE_TEMPLATE/bug-report.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md index e7d0990a31..472cf50abb 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.md +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -8,7 +8,7 @@ assignees: '' --- #### Describe the bug -(Replace with a clear and concise description of what the bug is.) + #### To Reproduce Steps to reproduce the behavior: @@ -18,10 +18,10 @@ Steps to reproduce the behavior: 4. See error #### Expected behavior -(Replace with a clear and concise description of what you expected to happen.) + #### Environment, Evennia version, OS etc -(Replace with info. If unsure, run `evennia -v` or get the first few lines of the `about` command in-game.) + #### Additional context -(Replace with any other context about the problem, or ideas on how to solve.) + From 64dcb675c5a534dc77c3efac89c71e8e8a75964f Mon Sep 17 00:00:00 2001 From: Griatch Date: Tue, 5 Jul 2022 18:59:00 +0200 Subject: [PATCH 26/27] Update documentation-issue.md --- .github/ISSUE_TEMPLATE/documentation-issue.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/documentation-issue.md b/.github/ISSUE_TEMPLATE/documentation-issue.md index f72656ca20..d03d696e9e 100644 --- a/.github/ISSUE_TEMPLATE/documentation-issue.md +++ b/.github/ISSUE_TEMPLATE/documentation-issue.md @@ -7,11 +7,11 @@ assignees: '' --- -#### Existing page / new -(Link to existing documentation page or proposed name of new page) +#### Documentation page name and link + -#### Documentation issue -(Replace with the description of what the issue is or motivate a changes/additions) +#### Reason for issue + #### Suggested change -(Enter the suggested change here) + From 47371d7e020c781f1c58d7969ee0c2e80cd687b8 Mon Sep 17 00:00:00 2001 From: Griatch Date: Tue, 5 Jul 2022 19:02:41 +0200 Subject: [PATCH 27/27] Update feature-request.md --- .github/ISSUE_TEMPLATE/feature-request.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md index 7dc702cfad..fe1022e728 100644 --- a/.github/ISSUE_TEMPLATE/feature-request.md +++ b/.github/ISSUE_TEMPLATE/feature-request.md @@ -8,13 +8,13 @@ assignees: '' --- #### Is your feature request related to a problem? Please describe. -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + #### Describe the solution you'd like -A clear and concise description of what you want to happen. + -#### Describe alternatives you've considered -A clear and concise description of any alternative solutions or features you've considered. +#### Alternatives you've considered + #### Additional context -Add any other context or screenshots about the feature request here. +