Merge pull request #1558 from Pryaxis/better-readme
New readme, docs, infra for devs
This commit is contained in:
commit
ac28a251f2
6 changed files with 249 additions and 124 deletions
3
.github/CODE_OF_CONDUCT.md
vendored
Normal file
3
.github/CODE_OF_CONDUCT.md
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
> By participating in the TShock for Terraria community, all members will adhere to maintaining decorum with respect to all humans, in and out of the community. Members will not engage in discussion that inappropriately disparages or marginalizes any group of people or any individual. Members will not attempt to further or advance an agenda to the point of being overbearing or close minded (such as through spreading FUD). Members will not abuse services provided to them and will follow the guidance of community leaders on a situational basis about what abuse consists of. Members will adhere to United States and international law. If members notice a violation of this code of conduct, they will not engage but will instead contact the leadership team on either the forums or Discord.
|
||||
|
||||
> Do not attempt to circumvent or bypass the code of conduct by using clever logic or reasoning (e.g., insulting Facepunch members, because they weren't directly mentioned here).
|
||||
21
.github/CONTRIBUTING.md
vendored
21
.github/CONTRIBUTING.md
vendored
|
|
@ -8,18 +8,6 @@ Please follow these simple requirements before posting a bug report:
|
|||
- How to reproduce the issue
|
||||
- Screenshots of the issue (if applicable)
|
||||
|
||||
### To build the source
|
||||
|
||||
Note: This includes the API by default. If you need only the API, you need to cd into that folder and do the following with the .sln file for the API. For those new to C#, the .sln and .csproj files contain the necessary definitions to do a complete source build using Microsoft or Mono build tools.
|
||||
|
||||
- Checkout the source.
|
||||
- Initialize the submodules: ```git submodule update --init```
|
||||
- Open the source in your favorite text editor that supports .NET building and press the build button OR
|
||||
- Run ```msbuild TShock.sln``` in the root of the cloned folder on Windows in a 'Developer Command Prompt' OR
|
||||
- Run ```xbuild TShock.sln``` in the root of the cloned folder on Unix.
|
||||
|
||||
Need help? Drop by Discord and we'll be happy to explain it with more words, step by step.
|
||||
|
||||
### TShock Additions
|
||||
|
||||
If something is better suited to be a plugin for TShock, rather than a TShock core feature, it should not be added! Project scope is at times questionable, though, so create an issue on Github for discussion first. If an issue is completely outside of the scope of TShock, it will be made clear in that issue what it is.
|
||||
|
|
@ -33,13 +21,13 @@ _If a person makes a suggestion in Discord, capture the suggestion as a Github i
|
|||
These guidelines are for all contributors.
|
||||
|
||||
* Create an issue first to suggest an improvement or feature addition to TShock.
|
||||
* Active developers will then give a go/no go for implementation. This is scope related: if an issue is within the scope of TShock, it will be tagged 'pr-wanted.'
|
||||
* After 'pr-wanted' has been added, an issue should be considered workable in a pull request fashion.
|
||||
* If you, as a developer, want to claim an issue for a PR, as soon as possible start work and note that in both the original issue and the new PR. The 'pr-wanted' tag will remain but the active PR will become the center for discussion for your implementation.
|
||||
* Active developers will then give a go/no go for implementation. This is scope related: if an issue is within the scope of TShock, it will be tagged 'Contribution Wanted.'
|
||||
* After 'Contribution Wanted' has been added, an issue should be considered workable in a pull request fashion.
|
||||
* If you, as a developer, want to claim an issue for a PR, as soon as possible start work and note that in both the original issue and the new PR. The 'Contribution Wanted' tag will remain but the active PR will become the center for discussion for your implementation.
|
||||
* If a TShock core developer takes an issue, they'll be assigned to the issue. If your issue was taken by a TShock developer and you were actively developing it in a PR, you should _make it clear as soon as possible that a process error has been made_ so that the your development resources and our development resources aren't wasted.
|
||||
* Please send a pull request with at least a sentence description and something meaningful as the title, not just the issue number you're fixing.
|
||||
|
||||
_The pr-wanted tag indicates an issue should be implemented. If an issue has a developer assigned, it indicates that they're working on it. When in doubt, ask where an issue is before starting work (so you don't waste time)!_
|
||||
_The tag indicates an issue should be implemented. If an issue has a developer assigned, it indicates that they're working on it. When in doubt, ask where an issue is before starting work (so you don't waste time)!_
|
||||
|
||||
Even if you have write access to the repository, follow [Github flow](https://guides.github.com/introduction/flow/) when sending commits. Don't send commits directly to either ```master``` or ```general-devel``` unless those commits modify either the deploy scripts or non-code components. If it compiles, follow Github Flow.
|
||||
|
||||
|
|
@ -56,6 +44,7 @@ Required:
|
|||
- When using static methods on primitives, use the CLR type. E.g. ```String.Format``` instead of ```string.Format```.
|
||||
- Always use properties, not public fields.
|
||||
- Document deprecations and fail compilation if they're included with ```[Obsolete("Use blah instead of blahx...", true)]```.
|
||||
- Update the `CHANGELOG.md` file.
|
||||
|
||||
### Dev Team Guidelines
|
||||
|
||||
|
|
|
|||
20
.github/ISSUE_TEMPLATE.md
vendored
20
.github/ISSUE_TEMPLATE.md
vendored
|
|
@ -1,11 +1,23 @@
|
|||
!!!!!! PLEASE FILL IN THE TEMPLATE BELOW THANK YOU VERY MUCH !!!!!!
|
||||
|
||||
## TShock version
|
||||
If you don't need help, delete this template and just post an issue (feature requests and discussions and the like).
|
||||
|
||||
* TShock version:
|
||||
* TShock build number (if known):
|
||||
|
||||
## Any stack traces that may have happened when the issue occurred
|
||||
#### Reproduction steps (if applicable)?
|
||||
|
||||
1. Some step
|
||||
2. Some other step
|
||||
3. Some bigger step
|
||||
4. This is the problem
|
||||
|
||||
## Steps to reproduce
|
||||
#### Any stack traces or error messages (if known)?
|
||||
|
||||
```
|
||||
PUT SUPER LONG ERROR MESSAGES IN THE TICK MARKS
|
||||
```
|
||||
|
||||
## Screenshots of the problem, if applicable
|
||||
#### Any screenshots?
|
||||
|
||||
!!!!!! PLEASE FILL IN THE TEMPLATE ABOVE THANK YOU VERY MUCH !!!!!!
|
||||
18
.github/PULL_REQUEST_TEMPLATE.md
vendored
18
.github/PULL_REQUEST_TEMPLATE.md
vendored
|
|
@ -1 +1,19 @@
|
|||
<!-- Warning: If you create a pull request and wish to remain anonymous, you are highly advised to use Tails (https://tails.boum.org/) or a fresh git environment. We will *not* be able to help with anonymization after your pull request has been created. -->
|
||||
|
||||
?????? HAVE YOU UPDATED THE CHANGELOG? ??????
|
||||
?????? HAVE YOU UPDATED THE CHANGELOG? ??????
|
||||
?????? HAVE YOU UPDATED THE CHANGELOG? ??????
|
||||
?????? HAVE YOU UPDATED THE CHANGELOG? ??????
|
||||
?????? HAVE YOU UPDATED THE CHANGELOG? ??????
|
||||
?????? HAVE YOU UPDATED THE CHANGELOG? ??????
|
||||
?????? HAVE YOU UPDATED THE CHANGELOG? ??????
|
||||
?????? HAVE YOU UPDATED THE CHANGELOG? ??????
|
||||
?????? HAVE YOU UPDATED THE CHANGELOG? ??????
|
||||
?????? HAVE YOU UPDATED THE CHANGELOG? ??????
|
||||
?????? HAVE YOU UPDATED THE CHANGELOG? ??????
|
||||
?????? HAVE YOU UPDATED THE CHANGELOG? ??????
|
||||
?????? HAVE YOU UPDATED THE CHANGELOG? ??????
|
||||
?????? HAVE YOU UPDATED THE CHANGELOG? ??????
|
||||
?????? HAVE YOU UPDATED THE CHANGELOG? ??????
|
||||
?????? HAVE YOU UPDATED THE CHANGELOG? ??????
|
||||
?????? HAVE YOU UPDATED THE CHANGELOG? ??????
|
||||
309
README.md
309
README.md
|
|
@ -1,119 +1,222 @@
|
|||
<p align="center">
|
||||
<img src="https://tshock.co/newlogo.png" alt="TShock for Terraria"><br />
|
||||
<a href="https://travis-ci.org/Pryaxis/TShock"><img src="https://travis-ci.org/Pryaxis/TShock.png?branch=general-devel" alt="Build Status"></a><a href="https://ci.appveyor.com/project/hakusaro/tshock"><img src="https://ci.appveyor.com/api/projects/status/chhe61q227lqdlg1?svg=true" alt="AppVeyor Build Status"></a><br />
|
||||
<hr />
|
||||
<a href="https://travis-ci.org/Pryaxis/TShock"><img src="https://travis-ci.org/Pryaxis/TShock.svg?branch=general-devel" alt="Build Status"></a><a href="https://ci.appveyor.com/project/hakusaro/tshock"><img src="https://ci.appveyor.com/api/projects/status/chhe61q227lqdlg1?svg=true" alt="AppVeyor Build Status"></a><br />
|
||||
</p>
|
||||
|
||||
[](#backers)
|
||||
[](#sponsors)
|
||||
TShock is a toolbox for Terraria servers and communities. That toolbox is jam packed with anti-cheat tools, server-side characters, groups, permissions, item bans, tons of commands, and limitless potential. It's one of a kind.
|
||||
|
||||
TShock is a server modification for Terraria, written in C#, and based upon the [Terraria Server API](https://github.com/NyxStudios/TerrariaAPI-Server). It uses JSON for configuration management, and offers several features not present in the Terraria Server normally.
|
||||
* Download: [Stable](https://github.com/TShock/TShock/releases) or [Experimental](https://travis.tshock.co/).
|
||||
* Read [the documentation](https://tshock.readme.io/) to quickly get up to speed.
|
||||
* Join [Discord](https://discord.gg/XUJdH58) to get help, chat, and enjoy some swell Australian company.
|
||||
* Download [other plugins](https://tshock.co/xf/index.php?resources/) to supercharge your server.
|
||||
|
||||
## :star: Quick Start
|
||||
----
|
||||
|
||||
https://tshock.readme.io/docs/getting-started
|
||||
## Table of Contents
|
||||
|
||||
## Features
|
||||
* [New to TShock?](#new-to-tshock)
|
||||
* [Developer's Guide](#developers-guide)
|
||||
* [Background](#background)
|
||||
* [Building](#building)
|
||||
* [On Windows](#on-windows)
|
||||
* [The Terraria Server API](#the-terraria-server-api)
|
||||
* [TShock](#tshock)
|
||||
* [On macOS](#on-macos)
|
||||
* [On Linux](#on-linux)
|
||||
* [On Unix](#on-unix)
|
||||
* [The Terraria Server API](#the-terraria-server-api-1)
|
||||
* [TShock](#tshock-1)
|
||||
* [Working with Terraria](#working-with-terraria)
|
||||
* [Code of Conduct](#code-of-conduct)
|
||||
|
||||
* MySQL support
|
||||
* Permissions
|
||||
* Multiple administrators
|
||||
* Anti-cheat
|
||||
* User registration
|
||||
* Reserved slots
|
||||
* User punishment (kicking, banning, muting)
|
||||
* Server side characters
|
||||
* JSON based configuration management
|
||||
## New to TShock?
|
||||
|
||||
## Community
|
||||
_These instructions assume Windows. If you're setting up on Linux or macOS, please refer to [the in-depth guide](https://tshock.readme.io/docs/getting-started) (and don't forget to install the *latest version* of `mono-complete` on Linux)._
|
||||
|
||||
Feeling like helping out? Want to find an awesome server? Some awesome plugins?
|
||||
1. Download [the latest stable version](https://github.com/TShock/TShock/releases) and `unzip` the folder using your favorite unzip tool. Make sure that all of the files in the zip get into one folder. This is where your server will be stored. The file structure looks like this:
|
||||
|
||||
* [Website & Forums](https://tshock.co/xf/)
|
||||
* [Contribute to our docs on readme.io](https://tshock.readme.io/)
|
||||
* [Join our Discord chat (supports Android, iOS, Web, Mac, and Windows)](https://discord.gg/XUJdH58)
|
||||
|
||||
GeoIP.dat
|
||||
Newtonsoft.Json.dll
|
||||
OTAPI.dll
|
||||
ServerPlugins\
|
||||
|------BCrypt.Net.dll
|
||||
|------HttpServer.dll
|
||||
|------Mono.Data.Sqlite.dll
|
||||
|------MySql.Data.dll
|
||||
|------TShockAPI.dll
|
||||
TerrariaServer.exe
|
||||
sqlite3.dll
|
||||
|
||||
|
||||
### Code of Conduct
|
||||
1. Start `TerrariaServer.exe` and TShock will boot. Answer the startup questions, and you should be ready to roll. In the background, TShock made some folders for you. We'll come back to those later.
|
||||
|
||||
1. Startup Terraria. Connect to a `multiplayer` server via IP and enter `localhost` if you're doing this on your local computer. If you're doing it on another computer, you need its IP address.
|
||||
|
||||
1. Look at the server console for the _setup code_. Type `/setup [code]` (example: `/setup 12345`), then a space, then the code you see in the console in your game chat. Instead of chatting, you'll run a command on the server. This one makes you temporary admin. All commands are prefixed with `/` or `!` (to make them silent).
|
||||
|
||||
1. Use the in-game command `/register [password]` (example: `/register lovely-ashes`) to create an account. This gives you owner rights on your server, which you can configure more to your liking later. Your `character name` is your `account name`.
|
||||
|
||||
1. Login to your newly created account with `/login [account name] [password]` (example: `/login shank lovely-ashes`). You should see a login success message.
|
||||
|
||||
1. Turn off the setup system with `/setup` and your server is setup for initial use. TShock also created several files inside a new `tshock` folder. These files include `config.json` (our big configuration file), `sscconfig.json` (the server side characters configuration file), and `tshock.sqlite`. Don't lose your `tshock.sqlite` or you'll have to re-setup TShock.
|
||||
|
||||
1. You can now [customize your configuration](https://tshock.readme.io/docs/config-settings), build groups, ban items, and install more plugins.
|
||||
|
||||
## Developer's Guide
|
||||
|
||||
Whether you want to contribute to TShock by sending a pull request, customize it to suit your own elvish desires, or want to build your own plugin, this is the best starting point. By the end of this, you'll be able to build TShock from source, start to finish. More than that, though, you'll know how to start on the path of becoming an expert TShock developer.
|
||||
|
||||
But first, you need some background.
|
||||
|
||||
### Background
|
||||
|
||||
Terraria is a C# application written on the .NET framework using the XNA game framework. TShock is a mod for Terraria's server, which is also written in C# on the .NET framework. Some might compare TShock to hMod in the Minecraft world (the precursor to Bukkit and its server, CraftBukkit). This is a good comparison to make in how the underlying build process works. When the project started, TShock was injected directly into the decompiled source code for Terraria. Unlike Minecraft, Terraria is not obfuscated, which means that many variable names and inner workings are sanely-named out of the box. Now, TShock uses advanced techniques to operate.
|
||||
|
||||
TShock is, first and foremost, a plugin written for the server variant of the Terraria API, an unofficial construct originally built by `bladecoding`. `TShock` has been colloquially used to refer to both the plugin as well as the server and plugin together. Similarly, the Terraria API's client version was abandoned long ago, and development of the `Server` API led to the abbreviation `TSAPI`, for `Terraria Server API`. The plugin `TShock` is executed by the [Terraria Server API](https://github.com/Pryaxis/TerrariaAPI-Server), which is in turn bound to the `Open Terraria API`, more commonly `OTAPI`. The [Open Terraria API](https://github.com/DeathCradle/Open-Terraria-API) is maintained by [DeathCradle](https://github.com/DeathCradle).
|
||||
|
||||
Now, the way that `TShock` runs on `TSAPI` through `OTAPI` can be summarized as the following:
|
||||
|
||||
1. The Open Terraria API deeply integrates with Terraria by modifying the official server's binary directly. This is done through rewriting the Terraria bytecode, the [CIL code](https://en.wikipedia.org/wiki/Common_Intermediate_Language), using a patching tool designed by DeathCradle and tools from the Mono project. For `TSAPI`, additional modifications are done to support TSAPI specific features. This done through the `TShock Mintaka Patcher`.
|
||||
2. The `Terraria Server API` uses hooks provided by `OTAPI` to provide higher level hooks as well as legacy hooks for existing TSAPI applications.
|
||||
3. `TShock` is executed by `TSAPI`, uses hooks provided by both `TSAPI` and `OTAPI`, and provides even higher level hooks and support tools to other `TSAPI` plugins.
|
||||
|
||||
With all of this in mind, the primary goal when compiling TShock is to remember that only the second and third layers are required to be interacted with. The first layer, `OTAPI`, is provided pre-compiled through NuGet. The second layer, `TSAPI`, is provided in the `TShock` repository through a git submodule. Its primary home is the [Terraria Server API repository](https://github.com/Pryaxis/TerrariaAPI-Server).
|
||||
|
||||
Let's get started.
|
||||
|
||||
### Building
|
||||
|
||||
You need to get the source code. Using git, [clone this repository](https://help.github.com/articles/cloning-a-repository/).
|
||||
|
||||
The next set of instructions are the technical details to setup both the Terraria Server API and TShock. More importantly, the Terraria API steps here are written under the assumption that you are building TShock primarily. Before you start, you need to **initialize the git submodules** and then **update them**. You need to use the following commands to do this.
|
||||
|
||||
$ git submodule init
|
||||
$ git submodule update
|
||||
|
||||
If you're using [GitHub Desktop](https://desktop.github.com), you need to perform additional steps. After cloning the TShock repository, go to the `Repository` menu and select `Open in Command Prompt`. If you don't have Git (not GitHub Desktop) installed, you can follow the prompts to to install Git for your command line. Once Git is installed, use this same process to get to the command prompt. Then, run the above commands.
|
||||
|
||||
#### On Windows
|
||||
|
||||
On Windows, you need to install [Visual Studio Community Edition](https://www.visualstudio.com/downloads/) or a better (more expensive) version of Visual Studio.
|
||||
|
||||
##### The Terraria Server API
|
||||
|
||||
1. Open the `TShock.4.OTAPI.sln` solution in the `TerrariaServerAPI` folder.
|
||||
|
||||
1. Set the `TShock.Modifications.Bootstrapper` project as the StartUp project.
|
||||
|
||||
1. Build the solution in either debug or release mode, depending on your preference. NuGet will automatically fetch the appropriate packages as a result of its magical powers.
|
||||
|
||||
1. Hit the "Start" button in Visual Studio to run the `TShock Mintaka Bootstrapper`.
|
||||
|
||||
1. Watch the output window and make sure that a non-zero number of modifications ran. When it completes, you have successfully bootstrapped `TShock Mintaka`.
|
||||
|
||||
1. Set the `TerrariaServerAPI` project as the StartUp project.
|
||||
|
||||
1. Build the solution in either debug or release mode, depending on your preference.
|
||||
|
||||
1. Close `TShock.4.OTAPI.sln` in Visual Studio.
|
||||
|
||||
You need to re-run the patcher any time `OTAPI` updates. You need to rebuild `TerrariaServerAPI` any time that the submodule in `TShock` gets changed, if you're doing this from inside the TShock repo. You also need to update the submodules (`git submodule update`) if they're out of date on a pull too.
|
||||
|
||||
##### TShock
|
||||
|
||||
1. Open the `TShockAPI.sln` solution in the root of the repository.
|
||||
|
||||
1. Build the solution. It should correctly download NuGet packages automatically and build against the aforementioned `TerrariaServerAPI` project you just built.
|
||||
|
||||
#### On macOS
|
||||
|
||||
1. Install [Homebrew](https://brew.sh) if you haven't already.
|
||||
|
||||
1. Install mono:
|
||||
|
||||
$ brew install mono
|
||||
|
||||
1. Verify that mono is available:
|
||||
|
||||
$ mono --version
|
||||
|
||||
Mono JIT compiler version 5.0.1.1 (2017-02/5077205 Sun Sep 17 18:29:46 BST 2017)
|
||||
...
|
||||
|
||||
1. Proceed to the [unix build steps](#unix-build-steps) to continue.
|
||||
|
||||
#### On Linux
|
||||
|
||||
1. **DO NOT** just install mono from your package manager unless told to do so. If you do and it's out of date, you probably won't be able to successfully develop for TShock.
|
||||
|
||||
1. Follow the [official install instructions for mono](http://www.mono-project.com/download/). **DO** install `mono-complete` or you're missing components.
|
||||
|
||||
1. Proceed to the [unix build steps](#unix-build-steps) to continue.
|
||||
|
||||
#### On Unix
|
||||
|
||||
1. You need to get NuGet. Download the latest `nuget.exe` from [NuGet](https://www.nuget.org/downloads).
|
||||
|
||||
1. Make a `~/bin` folder if you don't have one.
|
||||
|
||||
$ mkdir ~/bin/
|
||||
|
||||
1. Set an environment variable to store if you plan to build in debug or release.
|
||||
|
||||
$ export BUILD_MODE=Debug
|
||||
|
||||
or
|
||||
|
||||
$ export BUILD_MODE=Release
|
||||
|
||||
|
||||
##### The Terraria Server API
|
||||
|
||||
1. Perform a NuGet restore in the directory above `TerrariaServerAPI`.
|
||||
|
||||
$ mono ~/bin/nuget.exe restore ./TerrariaServerAPI/
|
||||
|
||||
1. Build the `TShock.4.OTAPI.sln` solution the configuration you chose:
|
||||
|
||||
$ xbuild ./TerrariaServerAPI/TShock.4.OTAPI.sln /p:Configuration=$BUILD_MODE
|
||||
|
||||
1. Run the `TShock Mintaka Bootstrapper` with the TShock modifications. If you don't use `/bin/bash` as your primary shell, you might want to temporarily switch to it, or the bootstrapper may fail.
|
||||
|
||||
$ cd ./TerrariaServerAPI/TShock.Modifications.Bootstrapper/bin/$BUILD_MODE/
|
||||
$ mono TShock.Modifications.Bootstrapper.exe -in=OTAPI.dll \
|
||||
-mod=../../../TShock.Modifications.**/bin/$BUILD_MODE/TShock.Modifications.*.dll \
|
||||
-o=Output/OTAPI.dll
|
||||
|
||||
1. Verify that non-zero modifications ran successfully. Then, build the Terraria Server API executable.
|
||||
|
||||
$ cd ./../../../
|
||||
$ xbuild ./TerrariaServerAPI/TerrariaServerAPI/TerrariaServerAPI.csproj \
|
||||
/p:Configuration=$BUILD_MODE
|
||||
|
||||
You need to re-run the patcher any time `OTAPI` updates. You need to rebuild `TerrariaServerAPI` any time that the submodule in `TShock` gets changed, if you're doing this from inside the TShock repo. You also need to update the submodules (`git submodule update`) if they're out of date on a pull too.
|
||||
|
||||
##### TShock
|
||||
|
||||
1. Perform a NuGet restore in `TShockAPI` folder that contains `TShockAPI.sln`.
|
||||
|
||||
$ mono ~/bin/nuget.exe restore
|
||||
|
||||
1. Build TShock in the `BUILD_MODE` you set earlier.
|
||||
|
||||
$ xbuild ./TShockAPI.sln /p:Configuration=$BUILD_MODE
|
||||
|
||||
You're done!
|
||||
|
||||
### Working with Terraria
|
||||
|
||||
Working with Terraria in TShock and in other Terraria Server API plugins is different from most other APIs. Due to the nature of how OTAPI works, you have direct access to all public fields in the `Terraria` namespace. This means that you can access Terraria member methods directly. TShock and other plugins do this quite often, mostly to modify the game world, send data, and receive data. Calls to `Main` are one such example of direct access to Terraria. This is the equivalent to `net.minecraft.server` (NMS) calls in CraftBukkit.
|
||||
|
||||
You might find yourself wondering where these fields are. Pryaxis provides the decompiled [Sources](https://github.com/pryaxis/Sources) to Terraria's server, updated with each release. Note that these decompiled servers do not re-compile. The process of fixing the decompiles has proven to be nearly impossible in a reasonable timeframe with the modern Terraria Server.
|
||||
|
||||
Finally, you may be interested in developing other Terraria Server API plugins. The [TShockResources](https://github.com/TShockResources) organization has several plugins you can look at and build on. TShock is itself a plugin, and most plugins are open source. This gives you ample room to figure out where to go next.
|
||||
|
||||
Need help? Join us on [#tshock-programming in Discord](https://discord.gg/ABtrBaY).
|
||||
|
||||
## Code of Conduct
|
||||
|
||||
> By participating in the TShock for Terraria community, all members will adhere to maintaining decorum with respect to all humans, in and out of the community. Members will not engage in discussion that inappropriately disparages or marginalizes any group of people or any individual. Members will not attempt to further or advance an agenda to the point of being overbearing or close minded (such as through spreading FUD). Members will not abuse services provided to them and will follow the guidance of community leaders on a situational basis about what abuse consists of. Members will adhere to United States and international law. If members notice a violation of this code of conduct, they will not engage but will instead contact the leadership team on either the forums or Discord.
|
||||
|
||||
> Do not attempt to circumvent or bypass the code of conduct by using clever logic or reasoning (e.g., insulting Facepunch members, because they weren't directly mentioned here).
|
||||
|
||||
Please see the contributing file before sending pull requests.
|
||||
|
||||
## Download
|
||||
|
||||
* [Github Releases](https://github.com/TShock/TShock/releases)
|
||||
* [Development Builds](https://travis.tshock.co/)
|
||||
* [Plugins](https://tshock.co/xf/index.php?resources/)
|
||||
* [Very, very old versions of TShock](https://github.com/TShock/TShock/downloads)
|
||||
|
||||
## Backers
|
||||
|
||||
Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/tshock#backer)]
|
||||
|
||||
<a href="https://opencollective.com/tshock/backer/0/website" target="_blank"><img src="https://opencollective.com/tshock/backer/0/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/1/website" target="_blank"><img src="https://opencollective.com/tshock/backer/1/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/2/website" target="_blank"><img src="https://opencollective.com/tshock/backer/2/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/3/website" target="_blank"><img src="https://opencollective.com/tshock/backer/3/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/4/website" target="_blank"><img src="https://opencollective.com/tshock/backer/4/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/5/website" target="_blank"><img src="https://opencollective.com/tshock/backer/5/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/6/website" target="_blank"><img src="https://opencollective.com/tshock/backer/6/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/7/website" target="_blank"><img src="https://opencollective.com/tshock/backer/7/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/8/website" target="_blank"><img src="https://opencollective.com/tshock/backer/8/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/9/website" target="_blank"><img src="https://opencollective.com/tshock/backer/9/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/10/website" target="_blank"><img src="https://opencollective.com/tshock/backer/10/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/11/website" target="_blank"><img src="https://opencollective.com/tshock/backer/11/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/12/website" target="_blank"><img src="https://opencollective.com/tshock/backer/12/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/13/website" target="_blank"><img src="https://opencollective.com/tshock/backer/13/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/14/website" target="_blank"><img src="https://opencollective.com/tshock/backer/14/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/15/website" target="_blank"><img src="https://opencollective.com/tshock/backer/15/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/16/website" target="_blank"><img src="https://opencollective.com/tshock/backer/16/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/17/website" target="_blank"><img src="https://opencollective.com/tshock/backer/17/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/18/website" target="_blank"><img src="https://opencollective.com/tshock/backer/18/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/19/website" target="_blank"><img src="https://opencollective.com/tshock/backer/19/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/20/website" target="_blank"><img src="https://opencollective.com/tshock/backer/20/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/21/website" target="_blank"><img src="https://opencollective.com/tshock/backer/21/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/22/website" target="_blank"><img src="https://opencollective.com/tshock/backer/22/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/23/website" target="_blank"><img src="https://opencollective.com/tshock/backer/23/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/24/website" target="_blank"><img src="https://opencollective.com/tshock/backer/24/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/25/website" target="_blank"><img src="https://opencollective.com/tshock/backer/25/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/26/website" target="_blank"><img src="https://opencollective.com/tshock/backer/26/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/27/website" target="_blank"><img src="https://opencollective.com/tshock/backer/27/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/28/website" target="_blank"><img src="https://opencollective.com/tshock/backer/28/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/backer/29/website" target="_blank"><img src="https://opencollective.com/tshock/backer/29/avatar.svg"></a>
|
||||
|
||||
## Sponsors
|
||||
|
||||
Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/tshock#sponsor)]
|
||||
|
||||
<a href="https://opencollective.com/tshock/sponsor/0/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/0/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/1/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/1/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/2/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/2/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/3/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/3/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/4/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/4/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/5/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/5/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/6/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/6/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/7/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/7/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/8/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/8/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/9/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/9/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/10/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/10/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/11/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/11/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/12/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/12/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/13/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/13/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/14/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/14/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/15/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/15/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/16/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/16/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/17/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/17/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/18/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/18/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/19/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/19/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/20/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/20/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/21/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/21/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/22/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/22/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/23/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/23/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/24/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/24/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/25/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/25/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/26/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/26/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/27/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/27/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/28/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/28/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/tshock/sponsor/29/website" target="_blank"><img src="https://opencollective.com/tshock/sponsor/29/avatar.svg"></a>
|
||||
> Do not attempt to circumvent or bypass the code of conduct by using clever logic or reasoning (e.g., insulting Facepunch members, because they weren't directly mentioned here).
|
||||
|
|
@ -57,7 +57,7 @@ namespace TShockAPI
|
|||
/// <summary>VersionNum - The version number the TerrariaAPI will return back to the API. We just use the Assembly info.</summary>
|
||||
public static readonly Version VersionNum = Assembly.GetExecutingAssembly().GetName().Version;
|
||||
/// <summary>VersionCodename - The version codename is displayed when the server starts. Inspired by software codenames conventions.</summary>
|
||||
public static readonly string VersionCodename = "Mintaka";
|
||||
public static readonly string VersionCodename = "Alnitak";
|
||||
|
||||
/// <summary>SavePath - This is the path TShock saves its data in. This path is relative to the TerrariaServer.exe (not in ServerPlugins).</summary>
|
||||
public static string SavePath = "tshock";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue