Extends database configuration to support Postgres in addition to existing SQLite and MySQL options.
Includes new settings for Postgres host, database name, username, and password.
Implements a connection builder for Postgres, ensuring proper error handling when connecting.
Updates dependency to include Npgsql for Postgres connectivity.
There are two common mistakes made by those installing/updating TShock:
- Extracting TShock into the Terraria client directory
- Extracting TShock 5 or newer into a legacy (TShock 4 or older) install
By checking for the existence of a file named `TerrariaServer.exe`, we
can potentially detect these invalid installations, and prompt the user
with a more useful diagnostic, rather than (likely) crashing moments
later.
This commit introduces an integrated package manager into TShock
for the purpose of fetching and installing plugins and their dependencies
from NuGet repositories.
This makes getting new plugins easier for users, as well as simplifiying
more advanced deployment scenarios.
This should allow the GeoIP.dat file to be found, and used the same way it used to on TShock 4.
It appears I had missed including this in the upgrade, and simply allowing it to copy to the output will allow the system to start working again.
Confirmed by enabling in config and joining via mobile (external network) and my country has appeared, N/A otherwise (local network)
Note: only ipv4 was tested.
This will allow dependencies to be resolved beside the assembly as intended when startup scripts are used outside the working directory.
I am not sure why or how many people would do this, as TSAPI wont load plugins (existing issue), but this is a step in the direction of opening up to allow considerations for that.
There is a slight change the the way QueryResult works in order to satisfy the variances in the new library.
Disposing of the command with the reader appears to solve this, and hopefully, with minimal impact to plugins.
This also adds remote raspberry pi debugging with default install details. More testing is required as MonoMod may not be working for arm64 still
CI might not work yet either