-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDCSEnergyManagement.lua
54 lines (40 loc) · 1.91 KB
/
DCSEnergyManagement.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
-- Updates Windows Energy Management based on playercount. Boosts to "High Performance" when players connect.
-- If no players are connected (IDLE) sets windows energy plan to balanced to save power.
--
-- Author: Ayokas (August.2022)
-- See GitHub: https://github.com/Ayokas/DCS-Energy-Management
-- GUIDs for powercfg tool, get GUIDs for you system with cmd or powershell: powercfg /L
-- Balanced GUID, e.g. "381b4222-f694-41f0-9685-ff5bb260df2e"
local balancedGUID = "<insert blanced GUID here>"
-- High Performance GUID, e.g. "8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c"
local highPerformanceGUID = "<insert high performance GUID here>"
-- Leave this as it is =)
local energyHandler = {}
local clients = 0
function energyHandler.log(str)
net.log(string.format("[EnergyManagement] %s", str))
end
energyHandler.onPlayerConnect = function(id)
clients = clients + 1
energyHandler.log(string.format("%s connected, total clients %d", net.get_player_info(id, 'name'), clients))
if clients == 2 then
energyHandler.log("Player connected - setting to high performance")
-- execute os command via os.execute: http://www.lua.org/manual/5.4/manual.html#pdf-os.execute
os.execute(string.format("powercfg /S %s", highPerformanceGUID))
end
-- if server starts set to energy saving, just to be sure
if clients == 1 then
energyHandler.log("No players connected - setting to energy saving / balanced")
os.execute(string.format("powercfg /S %s", balancedGUID))
end
end
energyHandler.onPlayerDisconnect = function(id)
clients = clients - 1
energyHandler.log(string.format("Player disconnected, total clients %d", clients))
if clients == 1 then
energyHandler.log("No players connected - setting to energy saving / balanced")
os.execute(string.format("powercfg /S %s", balancedGUID))
end
end
DCS.setUserCallbacks(energyHandler)
energyHandler.log("Loaded and ready!")