# AutoFish 自动钓鱼

- 作者: 羽学 少司命
- 出处: 无
- 这是一个Tshock服务器的自动钓鱼插件
- 可钓出除了环境已存在物品外还可以为钓鱼配置【额外物品】
- 可通过配置文件调整单次鱼钩数量上限，或消耗指定物品来换取插件使用时长。
- 配备完整的指令系统(有些功能没开启或没权限不会显示相关指令)
- 本插件无法在血月钓任何NPC请注意使用指令关闭
- (处于血月环境下使用/af指令会有相对于提示)

## 指令

| 语法          |         别名         |        权限         |        说明        |
|-------------|:------------------:|:-----------------:|:----------------:|
| /af         |     /autofish      |     autofish      | 指令菜单（查询自动钓鱼所剩时长） |
| /af on      |    /autofish on    |     autofish      |   开启玩家自己的自动钓鱼    |
| /af off     |   /autofish off    |     autofish      |   关闭玩家自己的自动钓鱼    |
| /af list    |   /autofish list   |     autofish      |   列出消耗模式指定物品表    |
| /af loot    |   /autofish loot   |     autofish      |     列出额外渔获表      |
| /af buff    |   /autofish buff   |     autofish      | 开启或关闭玩家自己的钓鱼BUFF |
| /af more    |   /autofish more   |  autofish.admin   |    开启或关闭多线模式     |
| /af duo 数量  |   /autofish duo    |  autofish.admin   |    设置多线的钩子数量     |
| /af + 物品名   |  /autofish + name  |  autofish.admin   |    为额外渔获添加物品     |
| /af - 物品名   |  /autofish - name  |  autofish.admin   |    为额外渔获移除物品     |
| /af mod     |   /autofish mod    |  autofish.admin   |    开启或关闭消耗模式     |
| /af set 数量  | /autofish set num  |  autofish.admin   |    设置消耗物品数量要求    |
| /af time 数字 | /autofish time num |  autofish.admin   |     设置消耗自动时长     |
| /af add 物品名 | /autofish add name |  autofish.admin   |     添加消耗指定物品     |
| /af del 物品名 | /autofish del name |  autofish.admin   |     移除消耗指定物品     |
| /reload     |         无          | tshock.cfg.reload |      重载配置文件      |

## 配置
> 配置文件位置：tshock/AutoFish.zh-CN.json
```json5
{
  "插件开关": true,  //全局插件开关
  "多钩钓鱼": true, //为自动钓鱼开启连发模式，让钓鱼效率更高
  "随机物品": false, //随机钓出任意物品
  "多钩上限": 5, //定义最多可以多少鱼钩同时自动钓
  "广告开关": true, //下面这条字符串的开关
  "广告内容": "\n[i:3456][C/F2F2C7:插件开发] [C/BFDFEA:by] [c/00FFFF:羽学] | [c/7CAEDD:少司命][i:3459]", //可自定义的字符串内容
  "Buff": {
    "80": 10, //80为buff的ID，10为持续时间，单位为帧，60帧=1秒
    "122": 240
  },
  "消耗模式": false, //消耗物品来换取自动钓鱼使用时长
  "消耗数量": 10, //在消耗模式下对以下物品的数量要求（比如物品A有6个+物品B有4个，就算10个）
  "自动时长": 24, //在消耗模式下赐予玩家使用自动钓鱼的时间，单位为分钟
  "消耗物品": [
    2002, //消耗模式的指定消耗物品
    2675,
    2676,
    3191,
    3194
  ],
  "额外渔获": [
    75, //除了环境本身存在的渔获外的自定义渔获
    29,
    3093,
    4345
  ]
}
```


## 更新日志

### v1.3.7
- 修复浮漂往左运动的问题
- 精简部分代码

### v1.3.5
- 准备更新TS 5.2.1,修正文档，初始配置内容更改

### v1.3.4
- 补充v1.3.2遗漏的代码

### v1.3.3
- 引用LazyAPI

### v1.3.2
- 尝试修复鱼饵数量为1时崩服BUG

### v1.3.1
- 修复了在多钩钓鱼模式下，单体召唤物衍生更多数量BUG
- 并加了一个配置项来禁止它们"禁止衍生弹幕"。
- 加入了随机物品配置项，开启时会随机钓到任意物品。

### v1.3.0
- 修复了首选鱼饵不会消失,变成无限饵,或卡线程BUG
- 修改了额外渔获也能与其他环境已存在的物品一起上钩
- 重构了消耗模式的代码逻辑，优化性能，修复BUG。
- 加入了设置多钩数量的指令：/af duo 数量
- 加入了额外渔获表的相关指令
- 把/af buff指令改为玩家可用，用来切换自身BUFF

### v1.2.0
- 修复了钓鱼不消耗鱼饵问题
- 修复了松露虫钓不了猪鲨的BUG
- 修复了鱼饵数量为1时线程卡住问题
- 加入了【消耗模式】配置项
- 加入了【钓鱼BUFF】配置项（上钩才会触发）
- 消耗模式为1.1.0版的扣除物品数量获取自动时长逻辑
- 完善了自动钓鱼的指令系统，并对其做了不同权限与模式下的内容显示

### v1.1.0
- 成功完成Tshock版《自动钓鱼》，
- 加入了消耗鱼饵数量来换取自动钓鱼使用时长的逻辑
- 当身上有松露虫时，会自动钓上铁镐，并试图关闭玩家的自动钓鱼开关
- 玩家可通过/af on指令重新开启插件，并不会清空玩家的自动钓鱼时长

### v1.0.0
- 试图制作Tshock版《自动钓鱼》，而失败的半成品：
- 服务器无法修改客户端玩家的操作，更没有相对数据包来处理上钩的状态。
- 尝试从AI[0]改为1来触发收线效果，但无法获取到实际的渔获。


## 反馈
- 优先发issued -> 共同维护的插件库：https://github.com/UnrealMultiple/TShockPlugin
- 次优先：TShock官方群：816771079
- 大概率看不到但是也可以：国内社区trhub.cn ，bbstr.net , tr.monika.love
