本文的插件适配是指重新编译老插件,让老插件能够在新版tshock下运行。
【资料图】
去年10月tshock更新到5.0版本,新版基于.net6.0,很多插件都是基于.net4.0的,导致很多插件不能用,不能用主要是api变更导致的,要修改错误,需要引用新版的tshock,得把.net4.0的项目转成.net6.0的项目。
这里拿我早上刚写的插件来举例,这个插件够简单,核心代码只有一行。
项目地址:https://gitee.com/hufang360/tshock/tree/master/Plugins/TShockLang7
概览:
项目设置:
直接引用tshock的NuGet程序包了就好了,不像以前要手动拷贝.dll文件。
引用tshock程序包后,依赖项就包含了“Newtonsoft.Json.dll”“BCrypt.Net-Next.dll”,因此你不再需要重新拷贝这些文件到项目里,一下子就优雅起来了。
担心修改“.csproj”文件容易出错,或者不知道各个字段都代表的是什么意思,可以打开Visual Studio,选中项目,鼠标右键,选择属性。
这里以自动注册插件为例,这个插件最后更新时间是4年前。
项目地址:https://github.com/brian91292/TShockAutoRegister
1、删除“.\AutoRegister\Properties\AssemblyInfo.cs”文件。
2、删除“.\AutoRegister\AutoRegister.csproj”文件。
3、拷贝“Lang7”里面的“Plugins.csproj”文件到“AutoRegister”目录下”,然后改名成“AutoRegister.csproj”。
(Lang7项目:https://gitee.com/hufang360/tshock/tree/master/Plugins/TShockLang7)
4、编辑“AutoRegister.csproj”文件,把里面的“Lang7”替换成“AutoRegister”,把“hufang360”替换成“你的名字”,然后保存。
5、双击“AutoRegister.sln”打开项目,此时会自动启动Visual Studio(应该有装的吧)。
6、编译项目。
7、此时出现好几条错误,这些错误都是api变动导致的,下面是改动对比。
8、再次编译项目。拷贝编译得到的dll文件到服务器插件目录下,启动服务器,创建新人物进入服务器。
9、诶诶诶,怎么没有帮我注册。找了半天发现,在服务器启动的时候,控制台报了两行错误。因为自动注册插件的密码规则是由IPv4 地址、客户端 UUID 和玩家名称组成,可以推断出用户的密码,所以在tshock4.5.4的时候,将 <=1.2.0版本自动注册插件视为危险插件。
10、这里我们只是测试,为了让插件工作,暂不考虑安全,可以直接把版本号改成1.3。
11、再次编译项目。再次测试。提示登录成功,并告知了密码!适配完成!
适配工作可能简单,也可能非常复杂,这取决于项目的复杂度。
不仅tshock的api有变动,泰拉的源码也有一些。遇到问题时,查看源码是一个不错的方法。4.0转6.0,我也是观察“TerrariaServerAPI.csproj”文件才找到的答案,我对.net的编程认知也非常有限,多琢磨,多搜索,总有收获。最后希望tshock生态越来越好!(*^▽^*)
tshock源码:https://github.com/Pryaxis/TShock
泰拉源码,可以使用ILSpy工具反编译获得。
ILSpy下载地址:https://github.com/icsharpcode/ILSpy/releases
下一篇:最后一页
X 关闭
Copyright © 2015-2022 华东空净网版权所有 备案号:京ICP备2022016840号-41 联系邮箱:2 913 236 @qq.com