欢迎光临散文网 会员登陆 & 注册

TShock插件:PlayerManager V1.3

2022-12-03 10:58 作者:hufang360  | 我要投稿

这次加上了备份和恢复功能,应该配得上“玩家管理”这个名字了。除此之外还支持修改永久增强类属性和钓鱼任务次数。为了配合几个腐竹大佬的“机器人”需求,还新增了两个RESTAPI接口。文章的前半部分是介绍备份和恢复,后半部分再介绍其它的。


文件结构

先看3张图:

图1
图2
图3
  • tshock\PlayerManager\ ,插件的工作目录,相关的文件都会保存在这里。

  • tshock\PlayerManager\backups\ ,自动备份的“.sqlite”文件会保存在这里,见图2。

  • tshock\PlayerManager\[年月日-时分-秒]\ ,执行“/pm ea”指令后,会将全部玩家导出成“.plr”格式的存档,并放进以日期命名的文件夹里面,见图3。

  • 图1红色部分为plr文件,这次做了个改动,导出单个玩家的plr存档时,不会额外创建目录,而是直接导出在插件的工作目录下,如遇到重名情况,则会先对旧文件进行重命名,在图1上能找到“hf.plr” 和 “hf_20221202-0105-30.plr”这两个文件,前者是新导出的,后者是之前导出的。

  • 图1绿色部分为手动备份的文件,“.sqlite”格式的文件是数据库文件,强制开荒的所有人物数据就保存在里面。

  • 图1蓝色部分为自动备份相关,为了保存自动备份状态,这次引入了配置文件,配置文件内容如下:

Interval,备份间隔,填0表示关闭自动备份,填1表示每隔1(分钟)备份一次。

KeepFor,保留时长,默认值是240(分钟),即4个小时,填0表示不删除自动备份的文件。

ShowSaveMessages,备份提示,填false表示不显示,填true则会在命令行界面上显示“[pm]SSC已备份”字样。


指令汇总

指令汇总
  • /pm help 3,查看pm指令帮助的第3页。不需要去背指令,很多指令都提供了“帮助”选项,对指令有疑问,只要在指令后面加上“ help”,执行“/pm backup help”、“/pm recover help” 和 “/pm list help”可以查询 备份/恢复/列表 这3个指令的用法。

  • /pm b [备注]bbackup的简写,直接执行“/pm b”而不加备注时,会自动使用当前的日期进行备注,每次手动备份,备份点的序号都会加1,备份点就是数字,大于0的数字。

手动备份指令
  • /pm r <玩家名> <备份点>rrecover的简写,例如要将玩家hf恢复至第1个备份点,则是执行“/pm r hf 1”,第2个备份点,则是“/pm r hf 2”。

恢复至备份点
  • /pm list backup,列出可用的备份点。这里会对备份点进行排序,最近的排在前面。

列出可用的备份点
  • /pm list <备份点>,列出备份点里的玩家列表。这里你会发现 /pm list 指令有两种用法,一个是列出文件,一个是列出文件里的玩家,也就是查看 文件列表和玩家列表。

  • /pm b status,查看自动备份的状态。

查看自动备份的状态
  • /pm b <on/off>,开启/关闭 自动备份,默认开启时会将备份频率改成2分钟一次。如果自动备份是开启状态,执行“/pm b on”,则会提示已开启过了,关闭指令也是如此。

  • /pm b interval <分钟数>, 设置自动备份间隔,设置成0时会关闭自动备份。

  • /pm b keepfor <分钟数>, 设置备份文件的期限。

  • /pm reload, 重载配置文件。目前配置项只有3个,其中2个是通过上面的几个指令来调节和查看。

  • /pm list ab, 列出自动备份的文件。其中abautobackup的缩写,新备份的文件会靠前显示。

  • /pm list <日期.sqlite>, 列出“.sqlite”文件里的玩家列表。

  • /pm r <玩家名> <日期.sqlite>, 将玩家恢复至自动备份的数据文件。

  • /pm b keep <日期.sqlite>, 保留一个自动备份文件。自动备份的文件会在一定时间后被删除,可以通过这个指令将某个备份转成备份点,这样文件就不会因为过期而被删除。而且下次还可以通过 “/pm r <玩家名> <备份点序号>”恢复玩家。

保留自动备份文件
  • /pm list plr, 列出plr文件,将列出工作目录下的plr文件,这些plr文件可以做恢复玩家存档用,注意为了避免冲突,“tshock\PlayerManager\[年月日-时分-秒]\”目录下的plr文件不会被列出。

列出plr文件
  • /pm r <玩家名> <xx.plr>, 恢复至plr文件。从数据库(.sqlite)里恢复时,玩家名必须匹配,就是你没法把张三恢复成李四,此时你可以把李四导出成plr,“/pm export 李四”,然后输入 “/pm r 张三 李四.plr”,此时除了名字不同外,张三和李四的外观、背包和属性都是一样的。除了整“真假美猴王”这种烂活外,也是可以导入一些好看的“捏人”以及大佬的装备搭配。

    当玩家在线时,还会导入plr里面的buff。由于SSC(强制开荒)未保存buff数据,因此离线玩家无法导入buff。

恢复至plr文件

导入plr文件里面的buff


  • /pm r <玩家名> <目标> [仅背包/仅皮肤/仅buff/仅属性],  按选项进行恢复。无论是备份点、自动备份 还是 .plr文件,都支持按选项进行恢复,目前额外提供了4个单独选项,这三个选项除输入汉字外,还可以用1/2/3/4代替。

按选项进行恢复


至此,插件的一点逻辑就显现,在 备份、恢复和列表这几个指令里面有这样的潜规则:

  •  1,2,3 是指备份点,文件是保存在pm插件的工作目录下,文件名的格式为“序号_备注.sqlite”或“序号_日期.sqlite”。

  • 日期.sqlite 是指自动备份的文件,是保存在pm插件工作目录下的backups目录下。

  • xx.plr 是指可用于恢复的plr文件,是保存在pm插件的工作目录下,“tshock\PlayerManager\[年月日-时分-秒]\”目录下的plr没法用于恢复。


当然这几个指令还有这几条“潜规则”:

  • /pm list 0, 列出当前服务器的玩家列表。这里显示的id就是数据库里面“Users”表里面的“id”字段。列出玩家列表时,会额外显示玩家的生命和魔力,能一定程度上启动识别备份情况的作用。

列出当前服务器的玩家列表
Users表
  • /pm r <玩家名> 0, 将某个玩家恢复至初始状态。想重置某个玩家,就执行这个指令。如果只是想恢复到进服时的外观,就执行“/pm r <玩家名> 0 仅皮肤”。

恢复至初始状态


我是分割线啊,你应该看得到

我是分割线啊,你一定看得到


开关 永久增强属性

  • /pm enhance <玩家名> <物品名称>,开启/关闭 永久增强属性,例如那个叫hf的屑,总过不了火把神,又想要生态火把效果,则可以执行 “/pm en hf 火把神徽章”,火把神徽章也可以用5043这个数字代替。这个指令,第一次执行是开启,如果已经是开启状态,再次执行就是关闭。

10种永久增强类物品

泰拉1.4.4就增加了8种永久增强属性,还不知道又有啥,怎么获得,赶紧去wiki上查一查吧。另外世界也有“永久增强”属性,1.4.4还增加了两种,由于是世界属性,本插件就不处理了~

查看世界属性(wm插件功能)


修改钓鱼任务次数

  • /pm quest <玩家名> <次数>,修改某个玩家的钓鱼次数,算是和鱼店插件联动了~~/doge



REST API

如果还你不知道REST API是什么,请去移步阅读/实践下这篇文章。

有编程经验的同学,应该能很快上手,如果看不懂,就请忽略这个功能。

新增的 REST API 接口参见:https://gitee.com/hufang360/TShockPlayerManager/blob/master/RESTAPI.md

接口1:查看指定玩家,/pm/look?token={{token}}&name=hf

接口2:导出单个玩家,并返回文件所在目录,/pm/export?token={{token}}&name=hf

这两个接口主要是方便哪些使用“机器人”的服务器,能够查询和获得玩家存档,里面查询到的结果基本都是一些数字,需要机器人请求到这个数据后,根据物品id进行展示查背包结果。到使用导出玩家接口时,开启base64返回时,要额外将base64字符串转成.plr存档。

讲得有点含糊,就这样吧,有能力的腐竹自然看得懂,看不懂的也没别要折腾这个。


关于开源

写插件,主要是满足自己的开服需要,之后才是考虑有更多腐竹可能跟我一样有这个需要,就发出来,因为绝大多数tshock插件都是开源的,那我也开源一下,也希望tshock圈越来越好,越来越繁荣,退一步讲回头我退坑了,其它有编程能力也好拿去修改。

如果你使用插件的大部分代码,请保留作者信息。插件是开源的,请不要拿去买。

个人不接受插件定制需求,有意思的想法可以私信给我,我觉得有意思,并且以我的能力能写出来,我就回去写。如果你觉得插件功能不错,对你有帮助,也可以去爱发电给我充电。

开源地址:https://gitee.com/hufang360/TShockPlayerManager

下载地址:https://gitee.com/hufang360/TShockPlayerManager/releases/tag/v1.3

爱发电:https://afdian.net/a/hufang360

TShock插件:PlayerManager V1.3的评论 (共 条)

分享到微博请遵守国家法律