Eco | V0.10.0.1
Here’s a for Eco v0.10.0.1 — an Auto-Water & Fertilizer Monitor for farming in Eco.
public class AutoFarmMonitor : IModInit
public class FarmPlotObject
int thirsty = plots.Count(p => p.WaterLevel.Normalized < 0.3f); int hungry = plots.Count(p => p.FertilizerLevel.Normalized < 0.5f);
public void CheckPlots() foreach (var user in PlayerPlots.Keys.ToList()) Eco v0.10.0.1
using Eco.Core.Plugins.Interfaces; using Eco.Gameplay.Players; using Eco.Gameplay.DynamicValues; using Eco.Mods.TechTree; using Eco.Shared.Localization; using Eco.Shared.Utils; using System.Collections.Generic; using System.Linq; using Eco.Core.Utils; using Eco.Gameplay.Systems.Chat; using Eco.Gameplay.Systems.Messaging.Chat; namespace Eco.Mods.AutoFarmMonitor
public static AutoFarmMonitor Obj; public Dictionary<User, List<FarmPlotObject>> PlayerPlots = new(); Here’s a for Eco v0
public void Initialize() Obj = this; Eco.Core.Plugins.PluginManager<ChatCommands>.Add(new FarmMonitorCommands());
It alerts you when a farm plot needs water or fertilizer, and optionally logs the data to a chat channel or a file for later review. 1. Create the file: EcoServer/Mods/AutoFarmMonitor.cs Create the file: EcoServer/Mods/AutoFarmMonitor
ChatManager.ServerMessageToPlayer($"🌾 Farm report: plots.Count plots. thirsty need water, hungry need fertilizer.", user);
[ChatCommand("Check all farm plots", ChatAdminLevel.User)] public static void CheckFarms(User user) var plots = WorldObjectUtil.GetObjectsOfType<FarmPlotObjectEntity>() .Where(p => p.Owner == user).ToList();