Skip to content

Releases: popstarfreas/Dimensions

Dimensions v6.0.0

18 Dec 12:04
Compare
Choose a tag to compare

This changelog includes changes from: v6.0.0-beta.0, v6.0.0-beta.1 and v6.0.0-beta.2.

Breaking Changes:

Update logging to use winston (5516d8)

Due to the wide variety of possible deployment environments and needs of those environments, the existing logging solution was not able to properly address those needs. For example, log ingest services can work better if logs are formatted so that each entry is one line or even one line of JSON instead of something like entries taking up a variable number of lines, as is common with stack traces.

To address this, the existing logging solution has been removed, and winston has been added instead. With new config options added:

    log: {
            ...
            outputToFile: true,
            format: {
              console: "PlainText",
              file: "JSON"
            }
    }

Now, you can specify whether the logs go to stdout and/or a file and also the formats of each. This allows you to disable file logging and go pure stdout with JSON, which is useful when deploying in an environment such as Kubernetes.

Rewrite 127.0.0.1 switch to IP of remote server

Dimensions now rewrites an ip/port based switch (Dimensions Message Type 3) for 127.0.0.1 to use the ip of the remote server that sent the message to switch - this allows the remote server not on the same machine as dimensions to use 127.0.0.1 in cases where it wants to switch to a server on the same machine as itself without having to know the external IP

Features:

  • Update packet parsing to support 1.4.4 packets
  • Add a second kind of allowed config value for blockInvis to specify which dimensions to enable it for
  • Add language option to config with translations for simplified chinese provided by @1790283354 in #121
  • Add language overrides to the config to allow custom messages for any message that dimensions sends to a user
  • Add debuff options to config to allow changing what debuffs are applied on switching dimensions and for how long they last
  • Add SIGINT/SIGTERM handling and add close message (c9c12f)
  • Add disconnect on kick setting (7416af)
  • Update blacklist implementation (24989b)
  • Add more logging options (0f3b3e)
  • Pass logger into extension constructor (2a6f03)
  • Add missing player info (eeae12)
  • Added better error message on client packet handler error (e45b941)
  • Added better error message on server packet handler error (685a1c9)
  • Added strict checking to packet lengths - will now kick players when encountered (7524616)
  • Added missing packet types (c187ef2)
  • Added extra join information dimension message type (096565a) - this allows sending a string (such as JSON) to server after completing the join process

Fixes:

  • Update player spawn packet to v1.4.4.9 (5ec78b3)
  • Fix issue caused by kicking player (17fefc0)
  • Add missing player info tracking (eeae128)
  • Improvements to blacklist issues (a1dda09, 5a80aa8, af7c8ca, b039ff9, 647efcd)
  • Update PlayerSpawn structure to 1449 (5ec78b)
  • Queue packets until the server connection is ready (08dafd)
  • Blacklist: Separate errors and packet errors (5a80aa)
  • When switching, the connect request packet was incorrectly passed into the terraria server packet handlers - it is now correctly passed into the client packet handlers #112
  • The client packet handlers incorrectly blocked a connect request if the client has already sent one to the server before - this is now never blocked #113
  • Properly log a terraria server packet handling error
  • Add some level of validation to config to prevent errors caused by incorrect field name in nameChanges
  • Properly clear npcs on switch
  • Add error handling to terraria server packet handler

Documenation Updates

  • Fix example config having syntax errors
  • Fix config example/quickstart having a wrong field name that would cause errors when running

Full Changelog: v5.8.3...v6.0.0

v6.0.0-beta.1

03 May 13:31
Compare
Choose a tag to compare
v6.0.0-beta.1 Pre-release
Pre-release

Breaking Changes:

Update logging to use winston (5516d8)

Due to the wide variety of possible deployment environments and needs of those environments, the existing logging solution was not able to properly address those needs. For example, log ingest services can work better if logs are formatted so that each entry is one line or even one line of JSON instead of something like entries taking up a variable number of lines, as is common with stack traces.

To address this, the existing logging solution has been removed, and winston has been added instead. With new config options added:

    log: {
            ...
            outputToFile: true,
            format: {
              console: "PlainText",
              file: "JSON"
            }
    }

Now, you can specify whether the logs go to stdout and/or a file and also the formats of each. This allows you to disable file logging and go pure stdout with JSON, which is useful when deploying in an environment such as Kubernetes.

Features:

  • Add SIGINT/SIGTERM handling and add close message (c9c12f)
  • Add disconnect on kick setting (7416af)
  • Update blacklist implementation (24989b)
  • Add more logging options (0f3b3e)
  • Pass logger into extension constructor (2a6f03)
  • Add missing player info (eeae12)

Fixes:

  • Update PlayerSpawn structure to 1449 (5ec78b)
  • Queue packets until the server connection is ready (08dafd)
  • Blacklist: Separate errors and packet errors (5a80aa)

Full Changelog: v6.0.0-beta.0...v6.0.0-beta.1

Dimensions v6.0.0-beta.0

27 Oct 08:32
Compare
Choose a tag to compare
Pre-release

There are breaking changes in this release!

This beta release will be upgraded to a full release (with no further changes, except the master branch being updated) when Dark Gaming's pre-production testing on it is finished.

If you were having trouble with the last release, it is recommended to test out this release.

Breaking Changes

  • Rewrite an ip/port based switch (Dimensions Message Type 3) for 127.0.0.1 to use the ip of the remote server - this allows the remote server not on the same machine as dimensions to use 127.0.0.1 in cases where it wants to switch to a server on the same machine as itself without having to know the external ip

Features

  • Update packet parsing to support 1.4.4 packets
  • Add a second kind of allowed config value for blockInvis to specify which dimensions to enable it for
  • Add language option to config with translations for simplified chinese provided by @1790283354 in #121
  • Add language overrides to the config to allow custom messages for any message that dimensions sends to a user
  • Add debuff options to config to allow changing what debuffs are applied on switching dimensions and for how long they last

Fixes

  • When switching, the connect request packet was incorrectly passed into the terraria server packet handlers - it is now correctly passed into the client packet handlers #112
  • The client packet handlers incorrectly blocked a connect request if the client has already sent one to the server before - this is now never blocked #113
  • Properly log a terraria server packet handling error
  • Add some level of validation to config to prevent errors caused by incorrect field name in nameChanges
  • Properly clear npcs on switch
  • Add error handling to terraria server packet handler

Documenation Updates

  • Fix example config having syntax errors
  • Fix config example/quickstart having a wrong field name that would cause errors when running

Full Changelog: v5.10.0-beta.1...v6.0.0-beta.0

Dimensions v5.10.0-beta.1

24 Apr 16:45
7a074cb
Compare
Choose a tag to compare
Pre-release

No breaking changes are expected in this release.

This beta release will be upgraded to a full release (with no further changes, except the master branch being updated) if no problems are found within a period of time following this release's publish date.

Features

  • Dimension names w/ capital letters are now supported. Contributed by @Moneylover3246 in #84
  • Dimensions can be labelled as hidden to not show up in the dimensions list. Contributed by @EMREOYUN in #82
  • Each server in the config no longer needs a port to expose specified. This means you can provide ports only for servers you intend people to join directly by port. #89
  • Added a new config option to prevent the client from changing its name, this ensures that throughout a single session the player name is the same. An exclusion list is provided to allow specific dimensions to change the player name from the server-side. #90
  • Game kick messages now use localisation. Contributed by @Arthri in #92
  • Servers in the config now have a vanilla option to allow vanilla servers to be used with dimensions. #58
  • The currentTerrariaVersion config option has been removed. Dimensions now uses the version the client specifies. #98
  • Added support for using a separate extensions js file that contains all of the extension classes to use - this is intended for bundled deployments where dimensions core is bundled together with plugins into one single js file. You can (for example) use this to build a small docker image for dimensions.
  • Server version used by the REST API now supports reading from a version.txt in the working directory per request, meaning you can easily update the reported supported version
  • REST API now supports additional options in the config: name, worldName, terrariaServerPort, hasServerPassword, maxPlayers and version
  • REST API default version is now 1.4.3.6

Fixes

  • Fixed issue when parsing strings of exactly 128 characters
  • Added parsing of playerCountForMultipliayerDifficultyOverride and strengthMultipler to fix NPC update parsing
  • REST API now returns a valid HTTP response
  • Fixed entities not being cleared properly in #99 (was a bug during dev versions, not 5.9.1)
  • Fixed some packets causing vanilla servers to prevent switching in #100

Dependency Updates

  • Node 8 and Node 10 are no longer supported in #69 and 3579fce
  • Use non-deprecated Buffer constructors in #70
  • Bump redis from 2.7.1 to 3.1.2 by @dependabot in #77 and 2c3a3dc
  • Bump mitm to 1.7.2 (dev dependency only)
  • Removed lodash as a dependency
  • Removed requirejs as a dependency
  • Bump glob from 7.1.1 to 7.2.0
  • Bump utf8 from 2.1.5 to 3.0.0
  • Bump uuid from 3.0.1 to 8.3.2
  • Bump typescript (dev dependency) from 4.4.4 to 4.6.3

Documentation Updates

  • The config wiki has been updated to use config.js.quickstart - intended to be easier to configure using simple steps
  • Update config example/quickstart with newest terraria in #97
  • Update README

New Contributors

Dimensions v5.9.1

18 Nov 00:23
Compare
Choose a tag to compare

The below is a summary of changes from v5.8.3 -> v5.9.1

Fixes:

  • Correctly sends the status packet to clients
  • The Rest API will now return the latest game version: 1.4.1.2
  • The config now uses 234 (the number for 1.4.1.2) so that switching will work properly

Plugin Update:

  • The Dimensions plugin has been updated so that it is built against the latest references. If you're having trouble with the plugin not working, go to the updated link in the README and download that version

Node Support:

  • Node v8 is no longer a supported version
  • Node v14 is now a supported version

Developer API Changes:

  • The Packet type is now referred to as RawPacket. Any extensions that import this type will need to update their import path. This makes a clear distinction between an unparsed (raw buffer) packet and a parsed packet.
  • Buffs caused by Dimensions can now be handled by extensions properly
  • ClearUtils makes sure it respects the outcome of handlePacket so that it doesn't send a packet unless handlers allow it

Dimensions v5.8.3

18 May 15:37
Compare
Choose a tag to compare

Fixes:

  • Spawn player packet on switching now contains the 2 new fields
  • NPC clearing on switching now contains extra flags byte
  • Debuffs given on switching now use int16 for buff type
  • Player slot packet now uses int16 for slot

Dimensions v5.8.2

18 May 14:03
Compare
Choose a tag to compare
Dimensions v5.8.2 Pre-release
Pre-release

Fixes;

  • Avoid error caused by reading the player id as an int16 instead of a int8

Dimensions v5.8.1

18 May 13:50
Compare
Choose a tag to compare
Dimensions v5.8.1 Pre-release
Pre-release

Features;

  • Packet Structures are now updated to conform to changes made from 1.3.5.3 -> 1.4.0.2
  • Stoned/Webbed debuffs applied when switching are now able to be manipulated by extensions

Dimensions v5.7.0

19 Oct 13:30
Compare
Choose a tag to compare
Dimensions v5.7.0 Pre-release
Pre-release

This release adds:

  • Persistent storage support for extensions across reloads

This is a pre-release because it contains a known bug with counting players (that is used to display the count in /who). If you accept this bug (or you remove the message from /who) then there are no other known issues (other than those listed under the Issues page).

Dimensions v5.6.0

09 Sep 20:48
Compare
Choose a tag to compare
Dimensions v5.6.0 Pre-release
Pre-release

This release adds:

  • Dynamic dimensions support which allows a plugin in a terraria server to tell dimensions a specific ip/port to route the client to without it having to be in the dimensions config
  • More support for extensions - certain packets sent by dimensions can be handled

Fixes:

  • Reading strings in packets for some cases
  • General code fixes

This is a pre-release because it contains a known bug with counting players (that is used to display the count in /who). If you accept this bug (or you remove the message from /who) then there are no other known issues.