Merge branch 'general-devel' into tileconv

This commit is contained in:
Stargazing Koishi 2022-12-10 21:37:52 +00:00 committed by GitHub
commit 104598394b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
42 changed files with 36285 additions and 21712 deletions

View file

@ -78,7 +78,32 @@ Use past tense when adding new entries; sign your name off when you add or chang
* If there is no section called "Upcoming changes" below this line, please add one with `## Upcoming changes` as the first line, and then a bulleted item directly after with the first change. -->
## Upcoming changes
* An additional option `pvpwithnoteam` is added at `PvPMode` to enable PVP with no team.(@CelestialAnarchy, #2617, @ATFGK)
* Corrected and updated deserialization of the following packets (@ATFGK):
* `ProjectileNew`: Read the third `AI` value.
* Before this change, it was previously possible for the projectile damage limit to falsely trigger, such as when using the Terra Balde and Fire Gauntlet together.
* `PlayerSpawn`: Read the `NumberOfDeathsPVE` and `NumberOfDeathsPVP` values.
* Before this change, the `PlayerSpawnContext` was always read incorrectly, due to the values above being placed in the middle of the existing structure.
* `NpcTeleportPortal`: Read the NPC index as a `ushort` instead of a `byte`.
* `PlaceObject`: Read the `Random` value.
* Before this change, the `Direction` was always read incorrectly, due to the value above being placed in the middle of the existing structure.
* `Zones`: Read the `zone5` value.
* `PaintTile` and `PaintWall`: Read the `coatTile` and `coatWall` values.
* `PlayerHurtV2`: Read the `cooldownCounter` value.
* Updated `SpawnMsg` to include the `NumberOfDeathsPVE` and `NumberOfDeathsPVP`, and allow them to be optionally used in `TSPlayer.Spawn`. (@ATFGK)
* Added `WorldTileProvider` to the tshock config with values `default`, `constileation` or `heaptile`. This allows tile providers to be changed in environments where CLI args cannot be altered. See the documentation website for more info about these providers. (@SignatureBeef)
* Updated the Utils.FindByIdOrName to follow same logic. Now fuzzy match fallback to `StartsWith` and then `Contains`. (@sgkoishi)
* Added `ShadowCandle` and `BrainOfConfusionBuff` (BoC dodge buff) to the `PlayerAddBuffWhitelist` (@drunderscore)
* Improved rejection message and code duplication in `OnPlayerBuff`. (@drunderscore)
* This will make it so Bouncer rejections regarding `PlayerAddBuff` will now always include the sender index, buff type, receiver index, and time in ticks, allowing much faster triage of buff whitelist issues.
* Allowed Digging Molecart and bomb fish to break tiles and place tracks. (@sgkoishi)
* Added built-in package management capabilities for plugins. (@pontaoski)
* Fixed Super Sponge unable to absorb shimmer. (@sgkoishi, #2833)
* Increased whitelisted duration of the Mighty Wind (`WindPushed`) buff (from sandstorms). (@drunderscore)
* Allowed the Hellfire (`OnFire3`) buff. (@drunderscore)
* Allowed Digging Molecart and bomb fish to break tiles and place tracks (@sgkoishi)
* Initialized achievements and the `AchievementManager` on the server. This ensures that players cannot cause exceptions to be thrown, chat messages are always logged, and allows achievement names to be localized in the console. Also added a test case for this. (@drunderscore)
* Allowed multiple test cases to be in TShock's test suite. (@drunderscore)
* Fixed unable to use Purification/Evil Powder in jungle. (@sgkoishi)
## TShock 5.1.3

13
docs/packages-help.txt Normal file
View file

@ -0,0 +1,13 @@
Description:
Manage plugins and their requirements
Usage:
TShock.Server [command] [options]
Options:
--version Show version information
-?, -h, --help Show help and usage information
Commands:
sync Install the plugins as specified in the plugins.json

32
docs/packages.md Normal file
View file

@ -0,0 +1,32 @@
TShock supports downloading and installing plugins from NuGet repositories.
This allows it to automatically download the plugin as well as all of the extra things that the plugin needs.
For developers, this makes distributing plugins easier.
This functionality is accessible via the TShock.Server executable used to run the server normally.
Under Linux:
```
./TShock.Server plugins
```
Under Windows (cmd.exe):
```
TShock.Server plugins
```
The documentation for the commands is included in the help functionality.
A copy of the help output in English can be found in [packages-help.txt](packages-help.txt).
This file primarily exists to document the `packages.json`.
The file format is currently simple, including only a single object, containing a key `packages` that has a map of package IDs to their versions.
An example `packages.json` is shown below:
```
{
"packages": {
"Commandy.20.10.22.Test": "0.0.1"
}
}
```
The name of the plugin is specified as the key, with the version as the value.