️TShock предоставляет серверам Terraria серверных персонажей, античит-программы и инструменты для управления сообществом.
Find a file
2026-01-31 18:07:23 +03:00
.github fix(ci): correct self-contained flag in publish 2026-01-27 18:23:38 +08:00
.vscode Update vscode launch profile 2025-01-11 14:13:50 +10:00
docs Update changelog file for the last time 2025-03-12 06:01:47 +09:00
i18n Update translation template 2026-01-18 05:40:34 +00:00
prebuilts Update geoip database 2025-05-25 12:22:40 +09:00
scripts Fix GitHub Actions with updated Windows Server 2019 builder 2020-02-09 21:22:29 -08:00
TerrariaServerAPI@f96cb44517 Bump OTAPI and switch to nuget OTAPI 2026-01-31 19:48:54 +08:00
TShockAPI Correct NPCAddBuffTimeMax from 1.4.5 2026-01-31 20:33:37 +08:00
TShockInstaller Update installer runtime urls for net9 2025-01-11 14:14:04 +10:00
TShockLauncher Bump OTAPI of launcher 2026-01-31 20:01:32 +08:00
TShockLauncher.Tests fix Tests Reference; restore IgnoreSSCPackets = false in PlayerData 2026-01-29 10:29:43 +08:00
TShockPluginManager resolve some warnings 2026-01-29 15:16:53 +08:00
.all-contributorsrc docs: update .all-contributorsrc [skip ci] 2020-05-21 02:32:18 +00:00
.dockerignore Rewrite the .dockerignore file into a denylist 2023-10-01 11:18:43 +02:00
.editorconfig Add command help text 2013-10-05 10:34:28 -04:00
.gitattributes Change changelog to use merge=union 2021-05-28 19:39:08 -07:00
.gitignore chore: use local OTA lib 2026-01-27 19:37:46 +08:00
.gitmodules chore: change TSAPI submodule repo 2026-01-27 18:17:19 +08:00
appveyor.yml Update net6 refs to net9 2025-01-11 11:19:16 +10:00
COPYING GPL should be COPYING not LICENSE. 2011-06-12 01:28:35 -06:00
crowdin.yml Tell crowdin to skip actions [skip actions] 2022-10-21 09:07:06 -07:00
Dockerfile Utilise conditional docker base image 2025-02-02 16:36:28 +10:00
README.md Update README.md 2026-01-31 18:07:23 +03:00
README_cn.md Update net6 refs to net9 2025-01-11 11:19:16 +10:00
SECURITY.md Fix formatting issues in markdown land 2021-05-29 13:36:31 -07:00
TShock.sln Introduce integrated package manager 2022-11-28 08:16:11 -05:00

TShock for Terraria
AppVeyor Build Status GitHub Actions Build Status

查看中文版

TShock — это универсальный набор инструментов для серверов и сообществ Terraria. Этот «инструментарий» до краев наполнен средствами защиты от читов, серверными персонажами (SSC), группами, правами доступа, банами предметов, множеством команд и безграничным потенциалом. Это уникальное в своем роде решение.

Это руководство (README) предназначено для разработчиков и хакеров TShock. Мы активно работаем над новой документацией TShock для администраторов серверов и разработчиков плагинов, но на данный момент она находится в процессе наполнения.

Разработка TShock

Если вы хотите внести свой вклад в TShock, отправив Pull Request, или настроить его под свои специфические нужды, этот раздел — лучшая отправная точка. К концу прочтения вы сможете самостоятельно собрать TShock из исходного кода и начнете свой путь становления экспертом в разработке TShock.

Это руководство предполагает, что у вас установлен .NET 6 SDK (я использовал .NET 9 SDK) и вы знакомы с командной строкой. Если это не так, вы можете добиться того же результата, используя Visual Studio 2022 или Visual Studio Code.

  1. Клонируйте репозиторий: git clone https://github.com/Pryaxis/TShock.git --recurse-submodules
  2. Перейдите в папку: cd TShock
  3. Соберите проект: dotnet build. Да, всё настолько просто!

Если вы хотите запустить TShockLauncher (который запускает сервер), выполните:

  1. dotnet run --project TShockLauncher

Для создания готовой сборки (пригодной для распространения):

  1. cd TShockLauncher
  2. dotnet publish -r win-x64 -f net9.0 -c Release -p:PublishSingleFile=true --self-contained false

Примечание: в этом примере сборка идет под win-x64. Вы также можете собирать под osx-x64, linux-x64, linux-arm64 или linux-arm. Готовый результат будет находиться в папке TShockLauncher/bin/Release/net9.0/ в подпапке соответствующей архитектуры.

Работа с кодом Terraria

Работа с Terraria в TShock и других плагинах Terraria Server API отличается от большинства других API. Благодаря тому, как работает OTAPI, у вас есть прямой доступ ко всем публичным полям в пространстве имен Terraria. Это означает, что вы можете напрямую обращаться к методам классов Terraria. TShock и плагины часто используют это для модификации игрового мира, отправки и получения данных. Обращения к классу Main — один из таких примеров. Это эквивалентно вызовам net.minecraft.server (NMS) в CraftBukkit.

Вам может быть интересно, где найти эти поля. Pryaxis предоставляет декомпилированные исходники (Sources) сервера Terraria, обновляемые с каждым релизом. Эти исходники доступны разработчикам TShock. Если вы отправили Pull Request в TShock, свяжитесь с нами в Discord, чтобы получить доступ. В качестве альтернативы вы можете скачать ILSpy и самостоятельно декомпилировать TerrariaServer.exe.

Наконец, если вы заинтересованы в разработке плагинов, загляните в организацию TShockResources — там много примеров. Сам TShock тоже является плагином, и большинство плагинов имеют открытый исходный код, что дает вам огромную базу для изучения.

Нужна помощь? Присоединяйтесь к нам в Discord.


Кодекс поведения

Участвуя в сообществе TShock для Terraria, все участники обязуются соблюдать нормы приличия и уважительно относиться ко всем людям как внутри сообщества, так и за его пределами. Участники не должны вступать в дискуссии, которые ненадлежащим образом порочат или ущемляют любую группу людей или отдельное лицо. Участники не должны навязывать свою повестку дня до такой степени, чтобы это становилось деспотичным или предвзятым (например, путем распространения FUD — страха, неуверенности и сомнений). Участники не должны злоупотреблять предоставляемыми им услугами и должны следовать указаниям лидеров сообщества в вопросах того, что считать злоупотреблением в конкретной ситуации. Участники должны соблюдать законодательство США и международное право. Если участник заметил нарушение данного кодекса, он не должен вступать в конфликт, а обязан связаться с командой руководства на форуме или в Discord. Не пытайтесь обойти кодекс поведения, используя уловки или формальную логику (например, «оскорбление участников Facepunch допустимо, потому что они не упомянуты здесь напрямую»).