diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
deleted file mode 100644
index 8173267b..00000000
--- a/.github/workflows/build.yml
+++ /dev/null
@@ -1,66 +0,0 @@
-name: Build Server
-
-on: [push, pull_request]
-
-jobs:
- build:
- runs-on: windows-latest
- strategy:
- matrix:
- mode: ["Debug", "Release"]
- steps:
- - name: Git checkout
- uses: actions/checkout@v1
- with:
- submodules: recursive
- - name: Install NuGet client
- uses: nuget/setup-nuget@v1
- - name: Restore NuGet packages
- run: |
- nuget restore .\TerrariaServerAPI\TShock.4.OTAPI.sln
- nuget restore TShock.sln
- - name: Build OTAPI
- shell: cmd
- run: |
- "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\msbuild.exe" .\TerrariaServerAPI\TShock.4.OTAPI.sln /p:Configuration=${{ matrix.mode }}
- cd .\TerrariaServerAPI\TShock.Modifications.Bootstrapper\bin\${{ matrix.mode }}
- TShock.Modifications.Bootstrapper.exe
- - name: Build TerrariaServerAPI
- shell: cmd
- run: |
- cd .\TerrariaServerAPI
- "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\msbuild.exe" .\TerrariaServerAPI\TerrariaServerAPI.csproj /p:Configuration=${{ matrix.mode }}
- - name: Build TShock
- shell: cmd
- run: |
- "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\msbuild.exe" .\TShockAPI\TShockAPI.csproj /p:Configuration=${{ matrix.mode }}
- - name: Normalize release packaging
- shell: cmd
- run: |
- xcopy /Y prebuilts\*.* TShockAPI\bin\${{ matrix.mode }}
- mkdir TShockAPI\bin\${{ matrix.mode }}\ServerPlugins
- move TShockAPI\bin\${{ matrix.mode }}\TShockAPI.dll TShockAPI\bin\${{ matrix.mode }}\ServerPlugins
- - name: Upload TShock (Debug)
- if: contains(matrix.mode, 'Debug')
- uses: actions/upload-artifact@master
- with:
- name: Experimental TShock (debug)
- path: TShockAPI\bin\Debug
- - name: Upload OTAPI Bootstrapper (Debug)
- if: contains(matrix.mode, 'Debug')
- uses: actions/upload-artifact@master
- with:
- name: Experimental (debug) OTAPI Bootstrapper
- path: .\TerrariaServerAPI\TShock.Modifications.Bootstrapper\bin\Debug\TShock.Modifications.Bootstrapper.exe
- - name: Upload TShock (Not Debug)
- if: contains(matrix.mode, 'Release')
- uses: actions/upload-artifact@master
- with:
- name: Experimental TShock (not debug)
- path: TShockAPI\bin\Release
- - name: Upload OTAPI Bootstrapper (Not Debug)
- if: contains(matrix.mode, 'Release')
- uses: actions/upload-artifact@master
- with:
- name: Experimental (not debug) OTAPI Bootstrapper
- path: .\TerrariaServerAPI\TShock.Modifications.Bootstrapper\bin\Release\TShock.Modifications.Bootstrapper.exe
diff --git a/.github/workflows/ci-otapi3.yml b/.github/workflows/ci-otapi3.yml
new file mode 100644
index 00000000..92fe5c7f
--- /dev/null
+++ b/.github/workflows/ci-otapi3.yml
@@ -0,0 +1,59 @@
+name: CI(OTAPI3)
+
+on: [push]
+
+jobs:
+ test:
+ runs-on: windows-latest
+
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ submodules: 'recursive'
+
+ - uses: actions/setup-dotnet@v1
+ with:
+ dotnet-version: '6.0.100'
+
+ - name: MonoMod dev build
+ run: dotnet nuget add source https://pkgs.dev.azure.com/MonoMod/MonoMod/_packaging/DevBuilds%40Local/nuget/v3/index.json -n DevBuilds@Local
+
+ - name: Run tests
+ run: dotnet test
+
+ build:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ arch: ["win-x64", "osx-x64", "linux-x64", "linux-arm64", "linux-arm"]
+
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ submodules: 'recursive'
+
+ - uses: actions/setup-dotnet@v1
+ with:
+ dotnet-version: '6.0.100'
+
+ - name: MonoMod dev build
+ run: dotnet nuget add source https://pkgs.dev.azure.com/MonoMod/MonoMod/_packaging/DevBuilds%40Local/nuget/v3/index.json -n DevBuilds@Local
+
+ - name: Produce build
+ run: |
+ cd TShockLauncher
+ dotnet publish -r ${{ matrix.arch }} -f net6.0 -c Release -p:PublishSingleFile=true --self-contained true
+
+ - name: Chmod scripts
+ if: ${{ matrix.arch != 'win-x64' }}
+ run: |
+ chmod +x TShockLauncher/bin/Release/net6.0/${{ matrix.arch }}/publish/TShock.sh
+
+ # preserve file perms: https://github.com/actions/upload-artifact#maintaining-file-permissions-and-case-sensitive-files
+ - name: Archive artifact
+ run: tar -cvf TShock-Beta-${{ matrix.arch }}-Release.tar TShockLauncher/bin/Release/net6.0/${{ matrix.arch }}/publish/
+
+ - uses: actions/upload-artifact@v2
+ with:
+ name: TShock-Beta-${{ matrix.arch }}-Release
+ path: TShock-Beta-${{ matrix.arch }}-Release.tar
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 00000000..a4795b3a
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,86 @@
+{
+ // Use IntelliSense to learn about possible attributes.
+ // Hover to view descriptions of existing attributes.
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": ".NET Core Launch (console)",
+ "type": "coreclr",
+ "request": "launch",
+ "preLaunchTask": "build",
+ "program": "${workspaceFolder}/TShockLauncher/bin/Debug/net6.0/TShock.Run.dll",
+ "windows": {
+ "program": "${workspaceFolder}/TShockLauncher/bin/Debug/net6.0/TShock.dll",
+ },
+ "args": [],
+ "cwd": "${workspaceFolder}/TShockLauncher/bin/Debug/net6.0/",
+ "console": "integratedTerminal",
+ "stopAtEntry": false
+ },
+ {
+ "name": ".NET Core Attach",
+ "type": "coreclr",
+ "request": "attach"
+ },
+ {
+ // this command assumes you have:
+ // raspberry pi 4 b with default user/pass, SSH enabled & connected to a reliable connection
+ // dotnet sdk 6.0.100 (needed for breakpoints to hit)
+ // windows with putty installed
+ // vsdbg
+ // follow this for other OS's: https://docs.microsoft.com/en-us/dotnet/iot/debugging?tabs=self-contained&pivots=vscode
+ // TODO: ability to chmod +x TShock.sh && chmod +x bin/TShock.Run
+ "name": ".NET Remote Launch - Self-contained",
+ "type": "coreclr",
+ "request": "launch",
+ "program": "/home/pi/dotnet/dotnet",
+ "args": [
+ "bin/TShock.Run.dll"
+ ],
+ "cwd": "/home/pi/tshockdev/publish",
+ "stopAtEntry": false,
+ "console": "integratedTerminal",
+ "pipeTransport": {
+ "pipeCwd": "${workspaceRoot}",
+ "pipeProgram": "C:\\Program Files\\PuTTY\\PLINK.EXE",
+ "pipeArgs": [
+ "-pw",
+ "raspberry",
+ "pi@raspberrypi"
+ ],
+ "debuggerPath": "/home/pi/vsdbg/vsdbg"
+ }
+ },
+ {
+ // this command assumes you have:
+ // raspberry pi 4 b with default user/pass, SSH enabled & connected to a reliable connection
+ // dotnet sdk 6.0.100 (needed for breakpoints to hit)
+ // windows with putty installed
+ // vsdbg
+ // follow this for other OS's: https://docs.microsoft.com/en-us/dotnet/iot/debugging?tabs=self-contained&pivots=vscode
+ // TODO: ability to chmod +x TShock.sh && chmod +x bin/TShock.Run
+ "name": ".NET Remote Publish & Launch - Self-contained",
+ "type": "coreclr",
+ "request": "launch",
+ "program": "/home/pi/dotnet/dotnet",
+ "args": [
+ "bin/TShock.Run.dll"
+ ],
+ "cwd": "/home/pi/tshockdev/publish",
+ "stopAtEntry": false,
+ "console": "integratedTerminal",
+ "preLaunchTask": "Remote Publish",
+ "pipeTransport": {
+ "pipeCwd": "${workspaceRoot}",
+ "pipeProgram": "C:\\Program Files\\PuTTY\\PLINK.EXE",
+ "pipeArgs": [
+ "-pw",
+ "raspberry",
+ "pi@raspberrypi"
+ ],
+ "debuggerPath": "/home/pi/vsdbg/vsdbg"
+ }
+ }
+ ]
+}
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
new file mode 100644
index 00000000..e8db5b18
--- /dev/null
+++ b/.vscode/tasks.json
@@ -0,0 +1,56 @@
+{
+ "version": "2.0.0",
+ "tasks": [
+ {
+ "label": "build",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "build",
+ "${workspaceFolder}/TShock.sln",
+ "/property:GenerateFullPaths=true",
+ "/consoleloggerparameters:NoSummary"
+ ],
+ "problemMatcher": "$msCompile"
+ },
+ {
+ "label": "Publish",
+ "options": {
+ "cwd": "TShockLauncher"
+ },
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "publish",
+ "-c",
+ "Debug",
+ "--self-contained",
+ "true",
+ "-r",
+ "linux-arm64",
+ "/nowarn:CS1591",
+ "/nowarn:CS1587"
+ ],
+ },
+ {
+ "label": "Remote Publish",
+ "options": {
+ "cwd": "TShockLauncher/bin/Debug/net6.0/linux-arm64"
+ },
+ "command": "C:\\Program Files\\PuTTY\\pscp.exe",
+ "type": "process",
+ "args": [
+ "-pw",
+ "raspberry",
+ "-sftp",
+ "-p",
+ "-r",
+ "publish",
+ "pi@raspberrypi:/home/pi/tshockdev"
+ ],
+ "dependsOn": [
+ "Publish"
+ ]
+ }
+ ]
+}
diff --git a/TShock.sln b/TShock.sln
index af79472c..4e53bcfa 100644
--- a/TShock.sln
+++ b/TShock.sln
@@ -1,13 +1,17 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.25420.1
+# Visual Studio Version 17
+VisualStudioVersion = 17.0.31825.309
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{755F5B05-0924-47E9-9563-26EB20FE3F67}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TShockAPI", "TShockAPI\TShockAPI.csproj", "{49606449-072B-4CF5-8088-AA49DA586694}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TShockAPI", "TShockAPI\TShockAPI.csproj", "{49606449-072B-4CF5-8088-AA49DA586694}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TerrariaServerAPI", "TerrariaServerAPI\TerrariaServerAPI\TerrariaServerAPI.csproj", "{6877506E-ADC6-4142-98A6-79E4FA02855A}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TerrariaServerAPI", "TerrariaServerAPI\TerrariaServerAPI\TerrariaServerAPI.csproj", "{6877506E-ADC6-4142-98A6-79E4FA02855A}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TShockLauncher", "TShockLauncher\TShockLauncher.csproj", "{2A312452-A43F-43E3-8AEB-E22F9A35C210}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TShockLauncher.Tests", "TShockLauncher.Tests\TShockLauncher.Tests.csproj", "{90AB47F3-8220-48FC-BDAB-D6E97BFDA51B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -15,10 +19,6 @@ Global
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
- Mono|Any CPU = Mono|Any CPU
- Mono|Mixed Platforms = Mono|Mixed Platforms
- Mono|x64 = Mono|x64
- Mono|x86 = Mono|x86
Release|Any CPU = Release|Any CPU
Release|Mixed Platforms = Release|Mixed Platforms
Release|x64 = Release|x64
@@ -32,14 +32,7 @@ Global
{49606449-072B-4CF5-8088-AA49DA586694}.Debug|x64.ActiveCfg = Debug|Any CPU
{49606449-072B-4CF5-8088-AA49DA586694}.Debug|x64.Build.0 = Debug|Any CPU
{49606449-072B-4CF5-8088-AA49DA586694}.Debug|x86.ActiveCfg = Debug|Any CPU
- {49606449-072B-4CF5-8088-AA49DA586694}.Mono|Any CPU.ActiveCfg = Release|Any CPU
- {49606449-072B-4CF5-8088-AA49DA586694}.Mono|Any CPU.Build.0 = Release|Any CPU
- {49606449-072B-4CF5-8088-AA49DA586694}.Mono|Mixed Platforms.ActiveCfg = Release|Any CPU
- {49606449-072B-4CF5-8088-AA49DA586694}.Mono|Mixed Platforms.Build.0 = Release|Any CPU
- {49606449-072B-4CF5-8088-AA49DA586694}.Mono|x64.ActiveCfg = Release|Any CPU
- {49606449-072B-4CF5-8088-AA49DA586694}.Mono|x64.Build.0 = Release|Any CPU
- {49606449-072B-4CF5-8088-AA49DA586694}.Mono|x86.ActiveCfg = Release|Any CPU
- {49606449-072B-4CF5-8088-AA49DA586694}.Mono|x86.Build.0 = Release|Any CPU
+ {49606449-072B-4CF5-8088-AA49DA586694}.Debug|x86.Build.0 = Debug|Any CPU
{49606449-072B-4CF5-8088-AA49DA586694}.Release|Any CPU.ActiveCfg = Release|Any CPU
{49606449-072B-4CF5-8088-AA49DA586694}.Release|Any CPU.Build.0 = Release|Any CPU
{49606449-072B-4CF5-8088-AA49DA586694}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
@@ -47,31 +40,62 @@ Global
{49606449-072B-4CF5-8088-AA49DA586694}.Release|x64.ActiveCfg = Release|Any CPU
{49606449-072B-4CF5-8088-AA49DA586694}.Release|x64.Build.0 = Release|Any CPU
{49606449-072B-4CF5-8088-AA49DA586694}.Release|x86.ActiveCfg = Release|Any CPU
- {6877506E-ADC6-4142-98A6-79E4FA02855A}.Debug|Any CPU.ActiveCfg = Debug|x86
- {6877506E-ADC6-4142-98A6-79E4FA02855A}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
- {6877506E-ADC6-4142-98A6-79E4FA02855A}.Debug|Mixed Platforms.Build.0 = Debug|x86
- {6877506E-ADC6-4142-98A6-79E4FA02855A}.Debug|x64.ActiveCfg = Debug|x64
- {6877506E-ADC6-4142-98A6-79E4FA02855A}.Debug|x64.Build.0 = Debug|x64
- {6877506E-ADC6-4142-98A6-79E4FA02855A}.Debug|x86.ActiveCfg = Debug|x86
- {6877506E-ADC6-4142-98A6-79E4FA02855A}.Debug|x86.Build.0 = Debug|x86
- {6877506E-ADC6-4142-98A6-79E4FA02855A}.Mono|Any CPU.ActiveCfg = Mono|x86
- {6877506E-ADC6-4142-98A6-79E4FA02855A}.Mono|Mixed Platforms.ActiveCfg = Mono|x86
- {6877506E-ADC6-4142-98A6-79E4FA02855A}.Mono|Mixed Platforms.Build.0 = Mono|x86
- {6877506E-ADC6-4142-98A6-79E4FA02855A}.Mono|x64.ActiveCfg = Mono|x64
- {6877506E-ADC6-4142-98A6-79E4FA02855A}.Mono|x64.Build.0 = Mono|x64
- {6877506E-ADC6-4142-98A6-79E4FA02855A}.Mono|x86.ActiveCfg = Mono|x86
- {6877506E-ADC6-4142-98A6-79E4FA02855A}.Mono|x86.Build.0 = Mono|x86
- {6877506E-ADC6-4142-98A6-79E4FA02855A}.Release|Any CPU.ActiveCfg = Release|x86
- {6877506E-ADC6-4142-98A6-79E4FA02855A}.Release|Mixed Platforms.ActiveCfg = Release|x86
- {6877506E-ADC6-4142-98A6-79E4FA02855A}.Release|Mixed Platforms.Build.0 = Release|x86
- {6877506E-ADC6-4142-98A6-79E4FA02855A}.Release|x64.ActiveCfg = Release|x64
- {6877506E-ADC6-4142-98A6-79E4FA02855A}.Release|x64.Build.0 = Release|x64
- {6877506E-ADC6-4142-98A6-79E4FA02855A}.Release|x86.ActiveCfg = Release|x86
- {6877506E-ADC6-4142-98A6-79E4FA02855A}.Release|x86.Build.0 = Release|x86
+ {49606449-072B-4CF5-8088-AA49DA586694}.Release|x86.Build.0 = Release|Any CPU
+ {6877506E-ADC6-4142-98A6-79E4FA02855A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6877506E-ADC6-4142-98A6-79E4FA02855A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6877506E-ADC6-4142-98A6-79E4FA02855A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {6877506E-ADC6-4142-98A6-79E4FA02855A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {6877506E-ADC6-4142-98A6-79E4FA02855A}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {6877506E-ADC6-4142-98A6-79E4FA02855A}.Debug|x64.Build.0 = Debug|Any CPU
+ {6877506E-ADC6-4142-98A6-79E4FA02855A}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {6877506E-ADC6-4142-98A6-79E4FA02855A}.Debug|x86.Build.0 = Debug|Any CPU
+ {6877506E-ADC6-4142-98A6-79E4FA02855A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6877506E-ADC6-4142-98A6-79E4FA02855A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6877506E-ADC6-4142-98A6-79E4FA02855A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {6877506E-ADC6-4142-98A6-79E4FA02855A}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {6877506E-ADC6-4142-98A6-79E4FA02855A}.Release|x64.ActiveCfg = Release|Any CPU
+ {6877506E-ADC6-4142-98A6-79E4FA02855A}.Release|x64.Build.0 = Release|Any CPU
+ {6877506E-ADC6-4142-98A6-79E4FA02855A}.Release|x86.ActiveCfg = Release|Any CPU
+ {6877506E-ADC6-4142-98A6-79E4FA02855A}.Release|x86.Build.0 = Release|Any CPU
+ {2A312452-A43F-43E3-8AEB-E22F9A35C210}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2A312452-A43F-43E3-8AEB-E22F9A35C210}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2A312452-A43F-43E3-8AEB-E22F9A35C210}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {2A312452-A43F-43E3-8AEB-E22F9A35C210}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {2A312452-A43F-43E3-8AEB-E22F9A35C210}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {2A312452-A43F-43E3-8AEB-E22F9A35C210}.Debug|x64.Build.0 = Debug|Any CPU
+ {2A312452-A43F-43E3-8AEB-E22F9A35C210}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {2A312452-A43F-43E3-8AEB-E22F9A35C210}.Debug|x86.Build.0 = Debug|Any CPU
+ {2A312452-A43F-43E3-8AEB-E22F9A35C210}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2A312452-A43F-43E3-8AEB-E22F9A35C210}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2A312452-A43F-43E3-8AEB-E22F9A35C210}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {2A312452-A43F-43E3-8AEB-E22F9A35C210}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {2A312452-A43F-43E3-8AEB-E22F9A35C210}.Release|x64.ActiveCfg = Release|Any CPU
+ {2A312452-A43F-43E3-8AEB-E22F9A35C210}.Release|x64.Build.0 = Release|Any CPU
+ {2A312452-A43F-43E3-8AEB-E22F9A35C210}.Release|x86.ActiveCfg = Release|Any CPU
+ {2A312452-A43F-43E3-8AEB-E22F9A35C210}.Release|x86.Build.0 = Release|Any CPU
+ {90AB47F3-8220-48FC-BDAB-D6E97BFDA51B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {90AB47F3-8220-48FC-BDAB-D6E97BFDA51B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {90AB47F3-8220-48FC-BDAB-D6E97BFDA51B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {90AB47F3-8220-48FC-BDAB-D6E97BFDA51B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {90AB47F3-8220-48FC-BDAB-D6E97BFDA51B}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {90AB47F3-8220-48FC-BDAB-D6E97BFDA51B}.Debug|x64.Build.0 = Debug|Any CPU
+ {90AB47F3-8220-48FC-BDAB-D6E97BFDA51B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {90AB47F3-8220-48FC-BDAB-D6E97BFDA51B}.Debug|x86.Build.0 = Debug|Any CPU
+ {90AB47F3-8220-48FC-BDAB-D6E97BFDA51B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {90AB47F3-8220-48FC-BDAB-D6E97BFDA51B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {90AB47F3-8220-48FC-BDAB-D6E97BFDA51B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {90AB47F3-8220-48FC-BDAB-D6E97BFDA51B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {90AB47F3-8220-48FC-BDAB-D6E97BFDA51B}.Release|x64.ActiveCfg = Release|Any CPU
+ {90AB47F3-8220-48FC-BDAB-D6E97BFDA51B}.Release|x64.Build.0 = Release|Any CPU
+ {90AB47F3-8220-48FC-BDAB-D6E97BFDA51B}.Release|x86.ActiveCfg = Release|Any CPU
+ {90AB47F3-8220-48FC-BDAB-D6E97BFDA51B}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {B56F0765-BADD-48CF-8A19-436BD0EAD34A}
+ EndGlobalSection
GlobalSection(TestCaseManagementSettings) = postSolution
CategoryFile = Terraria.vsmdi
EndGlobalSection
diff --git a/TShockAPI/Bouncer.cs b/TShockAPI/Bouncer.cs
index e15209d4..d0042b3f 100644
--- a/TShockAPI/Bouncer.cs
+++ b/TShockAPI/Bouncer.cs
@@ -22,7 +22,6 @@ using Terraria.ID;
using TShockAPI.Net;
using Terraria;
using Microsoft.Xna.Framework;
-using OTAPI.Tile;
using TShockAPI.Localization;
using static TShockAPI.GetDataHandlers;
using Terraria.ObjectData;
diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs
index 71e10a9d..9e61000a 100644
--- a/TShockAPI/Commands.cs
+++ b/TShockAPI/Commands.cs
@@ -33,7 +33,6 @@ using TerrariaApi.Server;
using TShockAPI.Hooks;
using Terraria.GameContent.Events;
using Microsoft.Xna.Framework;
-using OTAPI.Tile;
using TShockAPI.Localization;
using System.Text.RegularExpressions;
using Terraria.DataStructures;
diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs
index a860596d..c7401ae5 100644
--- a/TShockAPI/GetDataHandlers.cs
+++ b/TShockAPI/GetDataHandlers.cs
@@ -34,7 +34,6 @@ using Terraria.DataStructures;
using Terraria.GameContent.Tile_Entities;
using Terraria.Localization;
using Microsoft.Xna.Framework;
-using OTAPI.Tile;
using TShockAPI.Localization;
using TShockAPI.Models;
using TShockAPI.Models.PlayerUpdate;
diff --git a/TShockAPI/Handlers/SendTileRectHandler.cs b/TShockAPI/Handlers/SendTileRectHandler.cs
index b5c0bafd..5508aa52 100644
--- a/TShockAPI/Handlers/SendTileRectHandler.cs
+++ b/TShockAPI/Handlers/SendTileRectHandler.cs
@@ -1,6 +1,4 @@
-using OTAPI.Tile;
-
-using System;
+using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/TShockAPI/ItemBans.cs b/TShockAPI/ItemBans.cs
index 3556d38c..4e0594ae 100644
--- a/TShockAPI/ItemBans.cs
+++ b/TShockAPI/ItemBans.cs
@@ -23,7 +23,6 @@ using TShockAPI.DB;
using TShockAPI.Net;
using Terraria;
using Microsoft.Xna.Framework;
-using OTAPI.Tile;
using TShockAPI.Localization;
using static TShockAPI.GetDataHandlers;
using TerrariaApi.Server;
diff --git a/TShockAPI/Properties/AssemblyInfo.cs b/TShockAPI/Properties/AssemblyInfo.cs
deleted file mode 100644
index df44eb86..00000000
--- a/TShockAPI/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
-TShock, a server mod for Terraria
-Copyright (C) 2011-2019 Pryaxis & TShock Contributors
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see .
-*/
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-
-[assembly: AssemblyTitle("TShock for Terraria")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("Re-Logic, Pryaxis & TShock Contributors")]
-[assembly: AssemblyProduct("TShockAPI")]
-[assembly: AssemblyCopyright("Copyright © Re-Logic, Pryaxis & TShock Contributors 2011-2021")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-
-[assembly: Guid("01e38989-993c-410c-9011-487f824a606d")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Starting in version 4.2.5, we are no longer including the fourth decimal
-// location, which previously held the date and time.
-
-// Also, be sure to release on github with the exact assembly version tag as below
-// so that the update manager works correctly (via the Github releases api and mimic)
-
-[assembly: AssemblyVersion("4.5.12")]
-[assembly: AssemblyFileVersion("4.5.12")]
diff --git a/TShockAPI/TSPlayer.cs b/TShockAPI/TSPlayer.cs
index e6ceac32..9eea5c63 100644
--- a/TShockAPI/TSPlayer.cs
+++ b/TShockAPI/TSPlayer.cs
@@ -25,7 +25,6 @@ using System.IO;
using System.Text;
using System.Threading;
using System.Timers;
-using OTAPI.Tile;
using Terraria;
using Terraria.DataStructures;
using Terraria.ID;
diff --git a/TShockAPI/TSServerPlayer.cs b/TShockAPI/TSServerPlayer.cs
index 9f59da49..f6066267 100644
--- a/TShockAPI/TSServerPlayer.cs
+++ b/TShockAPI/TSServerPlayer.cs
@@ -17,7 +17,6 @@ along with this program. If not, see .
*/
using Microsoft.Xna.Framework;
-using OTAPI.Tile;
using System;
using System.Collections.Generic;
using Terraria;
diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs
index 7e15128c..dac1e0cb 100644
--- a/TShockAPI/TShock.cs
+++ b/TShockAPI/TShock.cs
@@ -28,7 +28,7 @@ using System.Linq;
using System.Net;
using System.Reflection;
using MaxMind;
-using Mono.Data.Sqlite;
+using System.Data.SQLite;
using MySql.Data.MySqlClient;
using Newtonsoft.Json;
using Rests;
@@ -45,6 +45,7 @@ using TShockAPI.CLI;
using TShockAPI.Localization;
using TShockAPI.Configuration;
using Terraria.GameContent.Creative;
+using System.Runtime.InteropServices;
namespace TShockAPI
{
@@ -190,6 +191,55 @@ namespace TShockAPI
instance = this;
}
+
+ static Dictionary _nativeCache = new Dictionary();
+ static IntPtr ResolveNativeDep(string libraryName, Assembly assembly, DllImportSearchPath? searchPath)
+ {
+ if (_nativeCache.TryGetValue(libraryName, out IntPtr cached))
+ return cached;
+
+ IEnumerable matches = Enumerable.Empty();
+
+ if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
+ {
+ var osx = Path.Combine(Environment.CurrentDirectory, "runtimes", "osx-x64");
+ if(Directory.Exists(osx))
+ matches = Directory.GetFiles(osx, "*" + libraryName + "*", SearchOption.AllDirectories);
+ }
+ else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
+ {
+ var lib64 = Path.Combine(Environment.CurrentDirectory, "runtimes", "linux-x64");
+ if (Directory.Exists(lib64))
+ matches = Directory.GetFiles(lib64, "*" + libraryName + "*", SearchOption.AllDirectories);
+ }
+ else if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
+ {
+ var x64 = Path.Combine(Environment.CurrentDirectory, "runtimes", "win-x64");
+ if (Directory.Exists(x64))
+ matches = Directory.GetFiles(x64, "*" + libraryName + "*", SearchOption.AllDirectories);
+ }
+
+ if (matches.Count() == 0)
+ {
+ matches = Directory.GetFiles(Environment.CurrentDirectory, "*" + libraryName + "*");
+ }
+
+ Debug.WriteLine($"Looking for `{libraryName}` with {matches.Count()} match(es)");
+
+ var handle = IntPtr.Zero;
+
+ if (matches.Count() == 1)
+ {
+ var match = matches.Single();
+ handle = NativeLibrary.Load(match);
+ }
+
+ // cache either way. if zero, no point calling IO if we've checked this assembly before.
+ _nativeCache.Add(libraryName, handle);
+
+ return handle;
+ }
+
/// Initialize - Called by the TerrariaServerAPI during initialization.
[SuppressMessage("Microsoft.Security", "CA2122:DoNotIndirectlyExposeMethodsWithLinkDemands")]
public override void Initialize()
@@ -197,18 +247,18 @@ namespace TShockAPI
string logFilename;
string logPathSetupWarning;
- OTAPI.Hooks.Net.Socket.Create = () =>
+ OTAPI.Hooks.Netplay.CreateTcpListener += (sender, args) =>
{
- //Console.WriteLine($"Creating socket {nameof(LinuxTcpSocket)}");
- return new LinuxTcpSocket();
- //return new OTAPI.Sockets.PoolSocket();
- //return new Terraria.Net.Sockets.TcpSocket();
+ args.Result = new LinuxTcpSocket();
};
- OTAPI.Hooks.Player.Announce = (int playerId) =>
+ OTAPI.Hooks.NetMessage.PlayerAnnounce += (sender, args) =>
{
//TShock handles this
- return OTAPI.HookResult.Cancel;
+ args.Result = OTAPI.HookResult.Cancel;
};
+ // if sqlite.interop cannot be found, try and search the runtimes folder. this usually happens when debugging tsapi
+ // since it does not have the dependency installed directly
+ NativeLibrary.SetDllImportResolver(typeof(SQLiteConnection).Assembly, ResolveNativeDep);
Main.SettingsUnlock_WorldEvil = true;
@@ -269,7 +319,7 @@ namespace TShockAPI
{
string sql = Path.Combine(SavePath, Config.Settings.SqliteDBPath);
Directory.CreateDirectory(Path.GetDirectoryName(sql));
- DB = new SqliteConnection(string.Format("uri=file://{0},Version=3", sql));
+ DB = new SQLiteConnection(string.Format("Data Source={0},Version=3", sql));
}
else if (Config.Settings.StorageType.ToLower() == "mysql")
{
diff --git a/TShockAPI/TShockAPI.csproj b/TShockAPI/TShockAPI.csproj
index 146fea27..a09b2c5d 100644
--- a/TShockAPI/TShockAPI.csproj
+++ b/TShockAPI/TShockAPI.csproj
@@ -1,242 +1,47 @@
-
+
+
- Debug
- AnyCPU
- {49606449-072B-4CF5-8088-AA49DA586694}
Library
- Properties
- TShockAPI
- TShockAPI
- v4.5
- 512
- false
- publish\
- true
- Disk
- false
- Foreground
- 7
- Days
- false
- false
- true
- 0
- 1.0.0.%2a
- false
- true
-
-
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
+ net6.0
true
- bin\Debug\TShockAPI.XML
- x86
- false
-
-
- pdbonly
- true
- bin\Release\
- TRACE;COMPAT_SIGS
- prompt
- 4
- true
- bin\Release\TShockAPI.XML
- x86
- false
+ True
+ True
+ GPL-3.0-or-later
+
+ 4.5.7-beta
+ TShock for Terraria
+ Pryaxis & TShock Contributors
+ TShockAPI
+ Copyright © Pryaxis & TShock Contributors 2011-2021
+
+
+
+
+
+
+
+
+
+
+
+
-
- ..\packages\BCrypt.Net.0.1.0\lib\net35\BCrypt.Net.dll
- True
-
..\prebuilts\HttpServer.dll
-
- ..\prebuilts\Mono.Data.Sqlite.dll
-
-
- ..\packages\MySql.Data.6.9.8\lib\net45\MySql.Data.dll
- True
-
-
- ..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll
-
-
- False
- ..\TerrariaServerAPI\TerrariaServerAPI\bin\$(ConfigurationName)\OTAPI.dll
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- True
- True
- Resources.resx
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ResXFileCodeGenerator
- Designer
- Resources.Designer.cs
-
-
-
-
- False
- Microsoft .NET Framework 4 %28x86 and x64%29
- true
-
-
- False
- .NET Framework 3.5 SP1 Client Profile
- false
-
-
- False
- .NET Framework 3.5 SP1
- false
-
-
- False
- Windows Installer 3.1
- true
-
-
-
-
- {6877506e-adc6-4142-98a6-79e4fa02855a}
- TerrariaServerAPI
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/TShockAPI/app.config b/TShockAPI/app.config
deleted file mode 100644
index 1565cd9f..00000000
--- a/TShockAPI/app.config
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/TShockAPI/packages.config b/TShockAPI/packages.config
deleted file mode 100644
index 691052d5..00000000
--- a/TShockAPI/packages.config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/TShockAPI/web.config b/TShockAPI/web.config
deleted file mode 100644
index 74c0d886..00000000
--- a/TShockAPI/web.config
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/TShockLauncher.Tests/ServerInitTests.cs b/TShockLauncher.Tests/ServerInitTests.cs
new file mode 100644
index 00000000..c5e9813e
--- /dev/null
+++ b/TShockLauncher.Tests/ServerInitTests.cs
@@ -0,0 +1,31 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using System;
+using System.Diagnostics;
+using System.Threading;
+
+namespace TShockLauncher.Tests
+{
+ [TestClass]
+ public class ServerInitTests
+ {
+ [TestMethod]
+ public void EnsureBoots()
+ {
+ var are = new AutoResetEvent(false);
+ On.Terraria.Main.hook_DedServ cb = (On.Terraria.Main.orig_DedServ orig, Terraria.Main instance) =>
+ {
+ are.Set();
+ Debug.WriteLine("Server init process successful");
+ };
+ On.Terraria.Main.DedServ += cb;
+
+ new Thread(() => TerrariaApi.Server.Program.Main(new string[] { })).Start();
+
+ var hit = are.WaitOne(TimeSpan.FromSeconds(10));
+
+ On.Terraria.Main.DedServ -= cb;
+
+ Assert.AreEqual(true, hit);
+ }
+ }
+}
diff --git a/TShockLauncher.Tests/TShockLauncher.Tests.csproj b/TShockLauncher.Tests/TShockLauncher.Tests.csproj
new file mode 100644
index 00000000..9f321340
--- /dev/null
+++ b/TShockLauncher.Tests/TShockLauncher.Tests.csproj
@@ -0,0 +1,20 @@
+
+
+
+ net6.0
+ enable
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/TShockLauncher/Program.cs b/TShockLauncher/Program.cs
new file mode 100644
index 00000000..64ccdd7d
--- /dev/null
+++ b/TShockLauncher/Program.cs
@@ -0,0 +1,66 @@
+/*
+TShock, a server mod for Terraria
+Copyright (C) 2021 Pryaxis & TShock Contributors
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+/*
+ * The purpose of this project is to be the launcher of the TSAPI server.
+ * We use this project:
+ * - to copy/move around TShockAPI.dll (the TShock plugin to TSAPI)
+ * - to publishing TShock releases.
+ * - move dependencies to a ./bin folder
+ *
+ * The assembly name of this launcher (TShock.exe) was decided on by a community poll.
+ */
+
+using System.Reflection;
+
+Dictionary _cache = new Dictionary();
+
+System.Runtime.Loader.AssemblyLoadContext.Default.Resolving += Default_Resolving;
+
+Start();
+
+///
+/// Resolves a module from the ./bin folder, either with a .dll by preference or .exe
+///
+Assembly? Default_Resolving(System.Runtime.Loader.AssemblyLoadContext arg1, AssemblyName arg2)
+{
+ if (arg2?.Name is null) return null;
+ if (_cache.TryGetValue(arg2.Name, out Assembly? asm) && asm is not null) return asm;
+
+ var loc = Path.Combine(Environment.CurrentDirectory, "bin", arg2.Name + ".dll");
+ if (File.Exists(loc))
+ asm = arg1.LoadFromAssemblyPath(loc);
+
+ loc = Path.ChangeExtension(loc, ".exe");
+ if (File.Exists(loc))
+ asm = arg1.LoadFromAssemblyPath(loc);
+
+ if(asm is not null)
+ _cache[arg2.Name] = asm;
+
+ return asm;
+}
+
+///
+/// Initiates the TSAPI server.
+///
+/// This method exists so that the resolver can attach before TSAPI needs its dependencies.
+void Start()
+{
+ TerrariaApi.Server.Program.Main(args);
+}
diff --git a/TShockLauncher/TShock.sh b/TShockLauncher/TShock.sh
new file mode 100755
index 00000000..d6da16fb
--- /dev/null
+++ b/TShockLauncher/TShock.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+./bin/TShock.Run
diff --git a/TShockLauncher/TShockLauncher.csproj b/TShockLauncher/TShockLauncher.csproj
new file mode 100644
index 00000000..26a462d3
--- /dev/null
+++ b/TShockLauncher/TShockLauncher.csproj
@@ -0,0 +1,94 @@
+
+
+
+ Exe
+ net6.0
+ enable
+ enable
+ TShock
+ TShock.Run
+ Always
+ embedded
+ true
+
+
+
+
+
+
+
+ ..\prebuilts\HttpServer.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /*
+ This is a patch to allow self contained apps to run from the root while having the modules in a ./bin folder.
+ https://github.com/dotnet/sdk/issues/10366
+
+ The script replaces the ./TShock.dll with ./bin/TShock.dll
+ alternates: dnSpy(does this method), NetCoreBeauty
+ */
+ var find = Encoding.UTF8.GetBytes("TShock.dll\0");
+ var replace = Encoding.UTF8.GetBytes("bin" + Path.DirectorySeparatorChar + "TShock.dll\0");
+ var contents = File.ReadAllBytes(HostExe);
+
+ var matches = 0;
+ var offset = Array.FindIndex(contents, (b) => {
+ matches = (b == find[matches]) ? matches + 1 : 0;
+ return matches == find.Length;
+ });
+ if (offset > -1) offset -= find.Length - 1;
+
+ var x = 0;
+ Array.ForEach(replace, _ => { contents[offset + x] = replace[x++]; });
+
+ File.WriteAllBytes(HostExe, contents);
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/TShockLauncher/runtimeconfig.template.json b/TShockLauncher/runtimeconfig.template.json
new file mode 100644
index 00000000..181a42f9
--- /dev/null
+++ b/TShockLauncher/runtimeconfig.template.json
@@ -0,0 +1,5 @@
+{
+ "additionalProbingPaths": [
+ "../ServerPlugins"
+ ]
+}
diff --git a/TerrariaServerAPI b/TerrariaServerAPI
index 53146693..a7949a2c 160000
--- a/TerrariaServerAPI
+++ b/TerrariaServerAPI
@@ -1 +1 @@
-Subproject commit 5314669394193a8a9a6a40036e00bcf8838254af
+Subproject commit a7949a2cee98e43e321ed9981c92d08334156f79
diff --git a/prebuilts/Mono.Data.Sqlite.dll b/prebuilts/Mono.Data.Sqlite.dll
deleted file mode 100644
index ce600dbc..00000000
Binary files a/prebuilts/Mono.Data.Sqlite.dll and /dev/null differ
diff --git a/prebuilts/sqlite3.def b/prebuilts/sqlite3.def
deleted file mode 100644
index caa046e3..00000000
--- a/prebuilts/sqlite3.def
+++ /dev/null
@@ -1,261 +0,0 @@
-EXPORTS
-sqlite3_aggregate_context
-sqlite3_aggregate_count
-sqlite3_auto_extension
-sqlite3_backup_finish
-sqlite3_backup_init
-sqlite3_backup_pagecount
-sqlite3_backup_remaining
-sqlite3_backup_step
-sqlite3_bind_blob
-sqlite3_bind_blob64
-sqlite3_bind_double
-sqlite3_bind_int
-sqlite3_bind_int64
-sqlite3_bind_null
-sqlite3_bind_parameter_count
-sqlite3_bind_parameter_index
-sqlite3_bind_parameter_name
-sqlite3_bind_pointer
-sqlite3_bind_text
-sqlite3_bind_text16
-sqlite3_bind_text64
-sqlite3_bind_value
-sqlite3_bind_zeroblob
-sqlite3_bind_zeroblob64
-sqlite3_blob_bytes
-sqlite3_blob_close
-sqlite3_blob_open
-sqlite3_blob_read
-sqlite3_blob_reopen
-sqlite3_blob_write
-sqlite3_busy_handler
-sqlite3_busy_timeout
-sqlite3_cancel_auto_extension
-sqlite3_changes
-sqlite3_clear_bindings
-sqlite3_close
-sqlite3_close_v2
-sqlite3_collation_needed
-sqlite3_collation_needed16
-sqlite3_column_blob
-sqlite3_column_bytes
-sqlite3_column_bytes16
-sqlite3_column_count
-sqlite3_column_database_name
-sqlite3_column_database_name16
-sqlite3_column_decltype
-sqlite3_column_decltype16
-sqlite3_column_double
-sqlite3_column_int
-sqlite3_column_int64
-sqlite3_column_name
-sqlite3_column_name16
-sqlite3_column_origin_name
-sqlite3_column_origin_name16
-sqlite3_column_table_name
-sqlite3_column_table_name16
-sqlite3_column_text
-sqlite3_column_text16
-sqlite3_column_type
-sqlite3_column_value
-sqlite3_commit_hook
-sqlite3_compileoption_get
-sqlite3_compileoption_used
-sqlite3_complete
-sqlite3_complete16
-sqlite3_config
-sqlite3_context_db_handle
-sqlite3_create_collation
-sqlite3_create_collation16
-sqlite3_create_collation_v2
-sqlite3_create_function
-sqlite3_create_function16
-sqlite3_create_function_v2
-sqlite3_create_module
-sqlite3_create_module_v2
-sqlite3_create_window_function
-sqlite3_data_count
-sqlite3_db_cacheflush
-sqlite3_db_config
-sqlite3_db_filename
-sqlite3_db_handle
-sqlite3_db_mutex
-sqlite3_db_readonly
-sqlite3_db_release_memory
-sqlite3_db_status
-sqlite3_declare_vtab
-sqlite3_enable_load_extension
-sqlite3_enable_shared_cache
-sqlite3_errcode
-sqlite3_errmsg
-sqlite3_errmsg16
-sqlite3_errstr
-sqlite3_exec
-sqlite3_expanded_sql
-sqlite3_expired
-sqlite3_extended_errcode
-sqlite3_extended_result_codes
-sqlite3_file_control
-sqlite3_finalize
-sqlite3_free
-sqlite3_free_table
-sqlite3_get_autocommit
-sqlite3_get_auxdata
-sqlite3_get_table
-sqlite3_global_recover
-sqlite3_initialize
-sqlite3_interrupt
-sqlite3_keyword_check
-sqlite3_keyword_count
-sqlite3_keyword_name
-sqlite3_last_insert_rowid
-sqlite3_libversion
-sqlite3_libversion_number
-sqlite3_limit
-sqlite3_load_extension
-sqlite3_log
-sqlite3_malloc
-sqlite3_malloc64
-sqlite3_memory_alarm
-sqlite3_memory_highwater
-sqlite3_memory_used
-sqlite3_mprintf
-sqlite3_msize
-sqlite3_mutex_alloc
-sqlite3_mutex_enter
-sqlite3_mutex_free
-sqlite3_mutex_leave
-sqlite3_mutex_try
-sqlite3_next_stmt
-sqlite3_open
-sqlite3_open16
-sqlite3_open_v2
-sqlite3_os_end
-sqlite3_os_init
-sqlite3_overload_function
-sqlite3_prepare
-sqlite3_prepare16
-sqlite3_prepare16_v2
-sqlite3_prepare16_v3
-sqlite3_prepare_v2
-sqlite3_prepare_v3
-sqlite3_profile
-sqlite3_progress_handler
-sqlite3_randomness
-sqlite3_realloc
-sqlite3_realloc64
-sqlite3_release_memory
-sqlite3_reset
-sqlite3_reset_auto_extension
-sqlite3_result_blob
-sqlite3_result_blob64
-sqlite3_result_double
-sqlite3_result_error
-sqlite3_result_error16
-sqlite3_result_error_code
-sqlite3_result_error_nomem
-sqlite3_result_error_toobig
-sqlite3_result_int
-sqlite3_result_int64
-sqlite3_result_null
-sqlite3_result_pointer
-sqlite3_result_subtype
-sqlite3_result_text
-sqlite3_result_text16
-sqlite3_result_text16be
-sqlite3_result_text16le
-sqlite3_result_text64
-sqlite3_result_value
-sqlite3_result_zeroblob
-sqlite3_result_zeroblob64
-sqlite3_rollback_hook
-sqlite3_rtree_geometry_callback
-sqlite3_rtree_query_callback
-sqlite3_set_authorizer
-sqlite3_set_auxdata
-sqlite3_set_last_insert_rowid
-sqlite3_shutdown
-sqlite3_sleep
-sqlite3_snprintf
-sqlite3_soft_heap_limit
-sqlite3_soft_heap_limit64
-sqlite3_sourceid
-sqlite3_sql
-sqlite3_status
-sqlite3_status64
-sqlite3_step
-sqlite3_stmt_busy
-sqlite3_stmt_readonly
-sqlite3_stmt_status
-sqlite3_str_append
-sqlite3_str_appendall
-sqlite3_str_appendchar
-sqlite3_str_appendf
-sqlite3_str_errcode
-sqlite3_str_finish
-sqlite3_strglob
-sqlite3_stricmp
-sqlite3_str_length
-sqlite3_strlike
-sqlite3_str_new
-sqlite3_strnicmp
-sqlite3_str_reset
-sqlite3_str_value
-sqlite3_str_vappendf
-sqlite3_system_errno
-sqlite3_table_column_metadata
-sqlite3_test_control
-sqlite3_thread_cleanup
-sqlite3_threadsafe
-sqlite3_total_changes
-sqlite3_trace
-sqlite3_trace_v2
-sqlite3_transfer_bindings
-sqlite3_update_hook
-sqlite3_uri_boolean
-sqlite3_uri_int64
-sqlite3_uri_parameter
-sqlite3_user_data
-sqlite3_value_blob
-sqlite3_value_bytes
-sqlite3_value_bytes16
-sqlite3_value_double
-sqlite3_value_dup
-sqlite3_value_free
-sqlite3_value_int
-sqlite3_value_int64
-sqlite3_value_nochange
-sqlite3_value_numeric_type
-sqlite3_value_pointer
-sqlite3_value_subtype
-sqlite3_value_text
-sqlite3_value_text16
-sqlite3_value_text16be
-sqlite3_value_text16le
-sqlite3_value_type
-sqlite3_vfs_find
-sqlite3_vfs_register
-sqlite3_vfs_unregister
-sqlite3_vmprintf
-sqlite3_vsnprintf
-sqlite3_vtab_collation
-sqlite3_vtab_config
-sqlite3_vtab_nochange
-sqlite3_vtab_on_conflict
-sqlite3_wal_autocheckpoint
-sqlite3_wal_checkpoint
-sqlite3_wal_checkpoint_v2
-sqlite3_wal_hook
-sqlite3_win32_is_nt
-sqlite3_win32_mbcs_to_utf8
-sqlite3_win32_mbcs_to_utf8_v2
-sqlite3_win32_set_directory
-sqlite3_win32_set_directory16
-sqlite3_win32_set_directory8
-sqlite3_win32_sleep
-sqlite3_win32_unicode_to_utf8
-sqlite3_win32_utf8_to_mbcs
-sqlite3_win32_utf8_to_mbcs_v2
-sqlite3_win32_utf8_to_unicode
-sqlite3_win32_write_debug
diff --git a/prebuilts/sqlite3.dll b/prebuilts/sqlite3.dll
deleted file mode 100755
index d1b9cb82..00000000
Binary files a/prebuilts/sqlite3.dll and /dev/null differ