BatterySaver

检查主机的电量并在其低位时自动关闭服务器。

工具
信息

一键安装指令

!!MCDR plugin install battery_saver

数据同步于

...

上次更新

...

最新版本

总下载量

28

返回插件仓库

  • 中文(简体)

English not supported yet, use translate tools instead, PRs for this are welcomed!

BatterySaver-MCDR

简单的服务器电源管理插件,支持自定义配置。

如果觉得好用,请给个Star~

用法及注意事项

修改配置,然后插件将按照预期根据主机的电量情况管理服务端的开闭。

检测间隔不宜过短或过长,因此推荐使用默认值!

如果你在主机低于设定电量时启动服务器,请确保主机已经连接外部供电,否则服务器仍将在启动完成后自动关闭!

Windows提供的电量精度较低,因此插件可能无法及时获取电量的变化方向,对于普通用户影响不大。

部分设备在特定的操作系统平台上(如小米平板5+Linux)要获取电量信息需要额外的适配工作,若有需要可以发起Issue进行反馈。

计划

后面会开发一个定制的扩展插件,基于此插件实现更多功能。

包含提前发出提示、接入Im类插件等

该扩展插件短期内不对代码质量和多语言处理方面做任何保证,也暂时没有计划上架到插件仓库,仅会在开发完成后于此说明中进行推荐。

咕咕咕!

开发

插件会根据配置的检测频次,在每次更新电量信息时派发一个事件,你可以据此开发插件响应这个事件信息实现高度定制化。

要开发MCDReforged插件,请详细阅读此官方文档

下面是一些代码参考,希望能对你有所帮助:

若有误,可以发起Issue反馈,我将尽快修正!

  • 插件入口点
from mcdreforged.api.all import *
from your_module.path import on_battery_event

def on_load(server: PluginServerInterface, prev_module):
    pass # 自行处理
    server.register_event_listener("battery_saver:battery_info", on_battery_event)
  • 响应部分
from needed.module import sth

# 示例
def on_battery_event(server, battery_info: dict):
    server.logger.info(f"电量(百分比):{battery_info.get('percent', None)}")
    server.logger.info(f"外部供电(布尔值):{battery_info.get('is_charging', None)}")
    server.logger.info(f"变化方向(字符串):{battery_info.get('level_shift', None)}")
    if battery_info.get('is_charging', None) is True:
        server.logger.info("主机充电中……")
    if battery_info.get('level_shift', None) == "up":
        server.logger.info("电量正在增加!")
    if battery_info.get('level_shift', None) == "down":
        server.logger.info("电量正在减少!")
    pass # 自行处理
  • 插件元数据mcdreforged.plugin.json

仅包括需修改的部分,其他部分自行处理

{
	"dependencies": {
		"mcdreforged": ">=2.1.0",
		"battery_saver": ">=0.1.0"
	}
}

自述文件来源:README.md