TShock/README_cn.md
2025-01-04 05:31:27 +09:00

51 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<p align="center">
<img src="https://tshock.s3.us-west-001.backblazeb2.com/newlogo.png" alt="TShock for Terraria"><br />
<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>
<a href="https://github.com/Pryaxis/TShock/actions">
<img src="https://github.com/Pryaxis/TShock/actions/workflows/build.yml/badge.svg" alt="GitHub Actions Build Status">
</a>
</p>
TShock是为泰拉瑞亚服务器和社区开发的一个工具箱。这个工具箱拥有反作弊、服务端存档、用户组、权限、物品禁止、大量指令和无限的可能性。它是独一无二的。
这是面向TShock开发者和修改者的说明。我们正在为服务器运营者和插件开发者建设新的[TShock文档](https://ikebukuro.tshock.co/),但还在进行中。
## 进行TShock开发
如果你想通过PR给TShock贡献代码或者想按照你美妙的想法定制它这里是最好的出发点。看完之后你就能独立从源码编译出TShock。不止这样你还能知道如何成为一名出色的TShock开发者。
本指南假设你已经安装了[.NET 6 SDK](https://dotnet.microsoft.com/zh-cn/download/dotnet/6.0)并了解命令行。如果你不满足这些条件你应该能通过Visual Studio 2022或者Visual Studio Code做到同样的事情。
1. 克隆仓库:`git clone https://github.com/Pryaxis/TShock.git --recurse-submodules`
1. 运行`cd TShock`来进入仓库文件夹
1. 运行`dotnet build`。不开玩笑,这样就编译完了
如果你想运行`TShockLauncher`(启动服务器),运行:
1. `dotnet run --project TShockLauncher`
如果要生成打包后的发行版,运行:
1. `cd TShockLauncher`
1. `dotnet publish -r win-x64 -f net6.0 -c Release -p:PublishSingleFile=true --self-contained false`
注意在这个例子中你将会生成`win-x64`架构的版本。你也可以生成`win-x64``osx-x64``linux-x64``linux-arm64``linux-arm`的版本。你可以在`TShockLauncher/bin/Release/net6.0/`文件夹下对应架构的文件夹里找到生成后的发行版。
### 跟泰拉瑞亚本体代码交互
在TShock和其他TSAPI的插件里跟本体代码交互会跟其他API不同。因为OTAPI的原因`Terraria`命名空间里的所有字段都变成public了。这意味着你可以直接访问所有本体代码的成员。TShock和其他插件经常会这样做基本上是修改地图、发送和接收数据包。调用`Main`就是一个直接访问的例子。相当于CraftBukkit里对`net.minecraft.server` (NMS)的调用。
你也许会好奇这些字段在哪里能找到。Pryaxis提供了反编译原版服务端得到的[源码](https://github.com/pryaxis/Sources)会随着游戏版本持续更新。由于版权方要求这些源码只对TShock的开发者开放。如果你提交过TShock的PR可以直接在Discord里索要访问权限。你也可以下载`ILSpy`自己反编译服务端。
最后你也许会对开发TSAPI插件感兴趣。[TShock资源]这个组织有数个你可以参考学习的插件。TShock自身也是一个TSAPI的插件并且大多数插件都是开源的。这给了你足够的空间去找到接下来的方向。
需要帮助吗?加入我们的[Discord](https://discord.gg/Cav9nYX)服务器。或者[QQ群](https://jq.qq.com/?_wv=1027&k=5GJZCe4)。
## 行为准则
> 如果参与泰拉瑞亚TShock社区所有成员都需坚持对社区内外的所有人保持礼仪。成员不可参与不恰当地贬低或边缘化任何群体或个人的讨论。成员不会试图将议程推进或推进到专横或不开明的地步例如通过灌输负面观念。成员不会滥用向他们提供的服务并将根据具体情况遵循社区领袖关于滥用行为的指导。成员将遵守美国和国际法。如果成员发现违反此行为准则的行为他们将不会参与而是会在论坛或Discord上联系领导团队。
> 不要试图通过巧妙的逻辑或理由来规避或绕过行为准则(例如侮辱 Facepunch上的成员因为他们不会在这里被直接提及