感谢你愿意为本仓库贡献代码!🎉
如果你不是组织成员,请先 Fork 本仓库。
git checkout -b add-my-plugin每个插件必须遵循以下目录结构:
src/你的插件名/
├── 你的插件名.csproj # 必须导入 template.targets
├── *.cs # 源码
├── manifest.json # 插件描述(多语言)
├── README.md # 中文文档(必须包含使用说明和命令列表)
└── README.en-US.md # 英文文档(可选但推荐)
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\template.targets" />
<!-- 额外 NuGet 包在此添加 -->
</Project>{
"README": {
"Description": "插件的中文描述"
},
"README.en-US": {
"Description": "Plugin English description"
}
}将新插件添加到 Plugin.slnx:
<Project Path="src/你的插件名/你的插件名.csproj" />提交 Pull Request 时,请确保:
- ✅ 项目已加入 Plugin.slnx
- ✅ .csproj 已导入
template.targets - ✅ 已添加 manifest.json
- ✅ 已添加 README.md(含完整命令说明)
- ✅ 插件可正常编译 (
dotnet build Plugin.slnx) - ❌ 不要提交
bin/、obj/、out/目录 - ❌ 不要提交
*.dll、*.pdb、*.exe文件
- 修改版本号
- 更新 README.md 更新日志
- 提交 PR
- 目标框架:.NET 9.0
- 语言版本:C# 12+
- TShock 版本:6.1.0 (Terraria 1.4.5.6)
- 遵循
.editorconfig中的代码风格 - 插件类应继承
TerrariaPlugin基类 - 使用
GetDataHandlers或Hooks注册事件(而非 OTAPI 直接 Hook) - 避免使用硬编码路径引用 TShock 或 Terraria 程序集