| .github | ||
| .vscode | ||
| docs | ||
| i18n | ||
| prebuilts | ||
| scripts | ||
| TerrariaServerAPI@f96cb44517 | ||
| TShockAPI | ||
| TShockInstaller | ||
| TShockLauncher | ||
| TShockLauncher.Tests | ||
| TShockPluginManager | ||
| .all-contributorsrc | ||
| .dockerignore | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| appveyor.yml | ||
| COPYING | ||
| crowdin.yml | ||
| Dockerfile | ||
| README.md | ||
| README_cn.md | ||
| SECURITY.md | ||
| TShock.sln | ||
TShock — это универсальный набор инструментов для серверов и сообществ Terraria. Этот «инструментарий» до краев наполнен средствами защиты от читов, серверными персонажами (SSC), группами, правами доступа, банами предметов, множеством команд и безграничным потенциалом. Это уникальное в своем роде решение.
Это руководство (README) предназначено для разработчиков и хакеров TShock. Мы активно работаем над новой документацией TShock для администраторов серверов и разработчиков плагинов, но на данный момент она находится в процессе наполнения.
Разработка TShock
Если вы хотите внести свой вклад в TShock, отправив Pull Request, или настроить его под свои специфические нужды, этот раздел — лучшая отправная точка. К концу прочтения вы сможете самостоятельно собрать TShock из исходного кода и начнете свой путь становления экспертом в разработке TShock.
Это руководство предполагает, что у вас установлен .NET 6 SDK (я использовал .NET 9 SDK) и вы знакомы с командной строкой. Если это не так, вы можете добиться того же результата, используя Visual Studio 2022 или Visual Studio Code.
- Клонируйте репозиторий:
git clone https://github.com/Pryaxis/TShock.git --recurse-submodules - Перейдите в папку:
cd TShock - Соберите проект:
dotnet build. Да, всё настолько просто!
Если вы хотите запустить TShockLauncher (который запускает сервер), выполните:
dotnet run --project TShockLauncher
Для создания готовой сборки (пригодной для распространения):
cd TShockLauncherdotnet 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 допустимо, потому что они не упомянуты здесь напрямую»).
