本帖最后由 Foxii 于 2019-8-27 19:25 编辑
玩家不节制地养殖动物?生物太多导制服务器卡顿?
优化插件删除生物导致玩家不满?
快来试试这个插件把~在不删除生物的情况下降低生物多对服务器算力的消耗
这是一个非常轻量级的优化插件,并且有了它你无需再装其它优化插件
且插件本身非常节省服务器资源
前言
插件想法来源于phoenixlzx博客的一篇文章
简介
插件通过调用spigot内部的方法使生物AI不再被计算,从而降低CPU资源消耗
*默认配置下插件每隔半分钟检查服务器tps,如果低于18则抑制所含生物量大于20的区块的生物AI计算,如果高于19则恢复所有被抑制的区块
*通过配置也可以达到不检查TPS当一个区块生物量到达指定值后抑制所有新出生生物的AI
效果图示
命令
感觉不是很必要就先没写
权限
命令写完了写
配置文件
- #插件每隔 check_interval_tick ticks 检查服务器tps
- #如果tps低于 freeze_AI_when_TPS_below 就冻结所有生物量超过 chunk_entity_threshold 的区块
- #这意味着这些区块内的生物AI都不会被计算
- #它们的行为就像你在 pigot.yml 中设置了 nerf-spawner-mobs 为 true 后从刷怪笼里刷出来的怪物
- TPSMonitor:
- #如果你关闭了 TPSMonitor, compatible_with_TPSMonitor 也会自动关闭
- enable: true
- #检查tps间隔,单位tick
- check_interval_tick: 600
- #服务端启动后会等待一段时间再启动检查任务,单位tick
- task_delay_tick: 1200
- #TPSMonitor 只会冻结生物量超过此的区块
- chunk_entity_threshold: 20
- #TPSMonitor 只会在服务器tps低于此时开始冻结操作
- freeze_AI_when_TPS_below: 18.0
- #当服务器tps高于此时恢复所有区块
- unfreeze_all_AI_when_TPS_above: 19.0
- Listener:
- #除两个 compatible_with_TPSMonitor 配置项外其余的配置项的功能与 TPSMonitor 独立,若果你使用 TPSMonitor,建议开启两个 compatible_with_TPSMonitor
- enable: true
- on_mob_spawn:
- enable: true
- #如果你打开了这一条,当一个生物出生在被 TPSMonitor 冻结的区块上时它将被冻结
- compatible_with_TPSMonitor: true
- #如果你打开了这一条,若某生物出生时所在区块生物数量高于 chunks_entity,它将被冻结
- #这只会冻结那个出生的生物,而不是整个它所在的区块
- freeze_when_entity_above:
- enable: false
- chunks_entity: 60
- #如果你打开了这一条,若某生物出生时服务器tps低于 TPS_below,它将被冻结
- #这只会冻结那个出生的生物,而不是整个它所在的区块
- freeze_when_TPS_below:
- enable: false
- TPS_below: 16
- on_chunk_load:
- enable: true
- #如果你打开了这一条,当一个区块加载时如果它符合 TPSMonitor 冻结的所有条件,它将被冻结
- compatible_with_TPSMonitor: true
- #如果你打开了这一条,若某区块加载时其所含生物数量高于 chunks_entity,它将被冻结
- #这会冻结整区块的所有生物
- freeze_when_entity_above:
- enable: false
- chunks_entity: 60
- #如果你打开了这一条,若某区块加载时服务器tps低于 TPS_below,它将被冻结
- #这会冻结整区块的所有生物
- freeze_when_TPS_below:
- enable: false
- TPS_below: 16
复制代码 |
版本兼容
插件在1.13.2Spigot环境下编译,用反射调用的核心方法,所以理论上支持很多版本
由于插件功能测试太麻烦,所以我仅测试了与1.12.2和1.13.2的Paper端的兼容性
*又有好心人帮忙测试了paper1.8.8和spigot1.9.4的可以兼容
如果你愿意帮忙测试,请把结果发给我,十分感谢
*快速测试方法
放进服务端插件文件夹启动服务器,如无本插件的报错,将配置文件里的freeze_when_TPS_below下的enable改为true,TPS_below改为21,重启服务端,进服看是否所有生物都不会动了如果是的话大概就没问题了 |
关于为什么要写这个插件
开源
源代码见原帖地址,使用MIT协议
*论坛加速:
本插件所用所有代码均为原创,不存在借用/抄袭等行为