COWMODSКаталог модов
IEMS

ВЕРСИИ (4)

beta

IEMS 0.8.0-beta

0.8.0-beta.120
11 окт. 2026 г.69Minecraft: 1.21.1neoforge
Скачать
Что нового
# IEMS v0.8.0-beta.120 Early Access Release ![Version](https://img.shields.io/badge/版本-0.8.0--beta.119-blue) ![Dev codename](https://img.shields.io/badge/开发代号-IEMS0930-purple) [![NEOFORGE](https://img.shields.io/badge/NeoForge-21.1%2B-orange)](https://neoforged.net/) [![MINECRAFT](https://img.shields.io/badge/Minecraft-1.21.1-green)](https://www.minecraft.net/) > **⚠️ Breaking Update**: This is a complete rewrite. Old saves, old configs, old APIs, and the old sync strategy are completely incompatible. This release is a **complete rewrite** of the old IEMS (v0.6.0 ~ v0.8.0-alpha): from the monolithic implementation where "the block entity is the grid" to an energy management framework with "complete separation of logic and presentation + factory-based persistence." --- ## 🚀 Core Highlights at a Glance - **Architecture Refactor**: Logic and presentation are completely separated; grid simulation no longer stalls due to chunk unloading. - **FEDA Auto-Bridging**: External FE devices connect automatically with zero changes, connecting upon discovery. - **Web Monitoring Panel**: REST API + Token authentication, real-time grid status monitoring. - **Config Hot Reload**: `/iems reload` reloads all configs with one command. --- ## 📋 Full Changelog <details> <summary><b>Click to expand full change details</b></summary> ## Optimizations ### Architecture - **Complete separation of logic and presentation**: Grid logic is stripped from BlockEntity into an independent logic layer (pure POJO, not dependent on `Level`); block entities degrade into appearance/views. - **Autonomous device instances**: Devices no longer hold references to each other; they interact with the grid only through the scheduler. They can be independently `new`ed / destroyed / have parameters changed, naturally suited to multi-core parallelism. - **Continuous operation without chunk loading**: Grid simulation no longer stalls due to chunk unloading. ### Persistence - **Storage upgraded to a complete grid snapshot**: From "storing only connection coordinates + type enum" to "devices (factory ID + parameters) + core info + all connections." - **Rebuild method changed to factory-based**: On server startup, devices are rebuilt by device factories, eliminating the old version's dependency on device registration order. - **Fixed order-sensitive defect**: The old issue where "devices load before the core → registration invalid → grid forever empty" has been fixed. ### Connections and Networking - **Cable-pulling interaction fully strengthened**: HUD displays cable-pulling distance and max distance in real time; over-distance (+10 block buffer) automatically retracts the cable; dimension changes immediately retract the cable; exiting the world forcibly cleans up, eliminating residual state. - **Server-side secondary validation**: C2S cable-pulling requests are revalidated server-side for endpoints, same dimension, distance, duplicates, and relay rules, no longer relying on the client. - **Security protection**: Added connection proximity checks and rate limiting to prevent packet modification for arbitrary remote connection creation. - **Sync packet hardening**: `GridSyncPayload` performs size validation before full topology sync to prevent oversized packets from causing client OOM. ### Laser Rendering - **No longer disappears from side view**: Switched to Billboard width direction (width = beam direction × (camera→beam)). - **No longer thins out and disappears at distance**: Added a minimum screen-space width `max(0.03, distance × 0.0015)`. - **Visible from any angle**: Disabled backface culling for double-sided rendering while retaining depth testing (still occluded by blocks). - **Eliminated ghost diagonal lines**: Inserted degenerate triangles between adjacent strips for separation. - **Client cache extended**: `ClientGridCache` simultaneously handles the main grid / island / bridge three lists, including four-quadrant statistics and EMA smoothing. ### Web Monitoring Panel - **Upgraded from an unauthenticated read-only page to a REST API**: Default port 8080 → 28567; by default only binds to 127.0.0.1, remote access can be explicitly opened. - **Authentication**: All `/api/*` require a Token (request header or query parameter). - **Unified data structure**: Unified envelope `{schema, ts, data}`; BigInteger fields are transmitted as decimal strings to avoid precision loss. - **Thread safety**: HTTP thread tasks are queued to the tick thread, eliminating data races with the core; the thread pool is explicitly stopped on world reload, and metric buffers are cleaned per session, avoiding thread leaks and cross-save interference. ### Concurrency Model - **Explicit tick-thread exclusivity**: Grid state is owned by the server tick thread; external threads submit tasks uniformly via `IEMSAPI.runOnServerThread()` / `callOnServerThread()`. ### Energy System - **Settlement tick**: Changed from SE/2tick (once every 2 ticks) to SE/tick (settled every tick). - **Unified units**: SE is used as the internal settlement basis; FE / AE are converted by the adapter layer, and no extra converters need to be placed. - **Three-state grid topology**: Added BFS reachability determination and topology snapshots for the main grid / island / boundary perspectives; devices not connected to a core are allowed to interconnect first (island), rendered with red lasers to indicate no power, and automatically powered once the core is in place. - **Protocol capacity now declared by the core**: No longer incremented/decremented by devices themselves; the framework uniformly calculates and detects over-limit conditions. - **Connection distance changed to declarative**: Old fixed 1500 blocks → new version declared by devices/cores; if undeclared, the framework defaults to 500 blocks. - **Command system**: Debug commands `/iems_debug add_connection | list_connections | clear_connections` upgraded to `/iems status | protocol | scan | shutdown | restart`. ### Build and Dependencies - **GeckoLib 4.8.4 embedded via Jar-in-Jar**: Players do not need to install it separately (the old version listed it as a required external dependency). - **NeoForge dependency range relaxed**: From fixed `21.1.228+` to `NeoForge 21.1.0+`. --- ## Added - **Device Factory Mechanism (M9 Simulation)**: Devices are persisted as "factory ID + parameters"; they continue to exist detached from blocks, forming the basis for restart reconstruction and chunkless operation. - **FEDA External FE Device Auto-Bridging**: Scans any NeoForge FE device (generator / consumer / energy storage) within range every 20 ticks; automatically connects upon discovery, with **zero changes required to the other mod**; bridge lasers default to cyan, configurable to normal color. - **Island Connections**: Connections not connected to a core can be created and retained, with red lasers indicating no power. - **Web REST Endpoints**: `/api/status`, `/api/devices`, `/api/connections`, `/api/topology`, `/api/metrics`, `POST /api/grid/active`. - **Metrics Ring Buffer**: Provides time-series sampling of energy / capacity / protocol / device count for `/api/metrics`, and can connect to external dashboards. - **Configuration System `config/DLZstudio/IEMS/`**: Automatically generates commented config files on first launch. - `Energy.toml` — `fePerSe` energy exchange rate (default 1 SE = 10 FE, range 1 ~ 9×10²⁶) - `APIserve.toml` — Web panel `enabled` / `host` / `port` / `token` - `Renderer.toml` — `colorizeAutoConnect` bridge laser coloring toggle - **`/iems reload` Hot Reload Command**: Reload all IEMS configs with one command, no game restart required (permission level 2). - **Cable-Pulling Contract `IIemsInteractable`**: Devices implementing this interface can participate in the framework's built-in cable-pulling interaction, decoupled from specific block types. - **Static API Facade `IEMSAPI`**: Provides entry points for device/core attachment, connection management, topology query, grid on/off, power source registration, device scanning, external thread task submission, etc. - **Topology Snapshot Query `getSnapshot()`**: Obtain main grid / island / boundary three perspectives at once. - **Example Devices**: Energy Transmission Repeater (500 blocks, manual) and Energy Broadcast Tower (50 blocks, automatic + manual), including model rendering and built-in level 7 lighting. - **Four-Quadrant Power HUD**: `EnergyOverlayRenderer` displays four-quadrant statistics with EMA smoothing (1.5s time constant). - **Adapter Bridge Connection Type**: `ADAPTER_BRIDGE` and regular connections are handled separately in topology and rendering. --- ## Removed - **GE Unit System**: GE is completely removed (including its unit enum and all project references); the new unit system is FE / AE / SE. - **Time Display Mode API**: Removed the old `standard` / `coordinated` dual display modes, unified to SE/tick. - **Energy Converter Block**: No longer need to manually switch SE↔GE↔FE↔AE; FE is automatically converted by the bridge layer. - **Energy Storage Block**: Standard storage (100,000 SE) and universal storage (10²⁰ GE) are no longer provided by the framework and are left to external mods to implement. - **Energy Marker Block**: The passive block used for old multiblock structure positioning has been removed. - **Broadcast Tower Line-of-Sight Occlusion Check**: Removed the old rule "cannot connect if ≥3 full blocks occlude between the signal source and the device"; changed to pure distance determination. - **Core Block Base Class `GridCoreBlock`**: Cores no longer attach by inheriting from a block base class; changed to `CoreDevice` logical instance + factory registration. - **Instance-style API Facade `IEMSApi.getInstance()` and `EnergyValue` Wrapper**: Replaced by static facade `IEMSAPI` + raw `BigInteger`. - **Old Three-Packet Sync Set**: `ConnectionSyncPayload` / `ConnectionAddPayload` / `ConnectionRemovePayload` replaced by the unified `GridSyncPayload` full snapshot. --- ## Summary IEMS0930 reshapes IEMS from "an energy mod with a full set of built-in blocks" into "an energy management framework responsible for abstraction, scheduling, and visualization." Grid logic no longer depends on blocks to survive; external device integration changes from "requiring the other party to adapt" to "auto-discovery means bridging." Combined with hot-reloadable exchange rate and rendering configs, plus a Token-authenticated REST monitoring panel, modpack authors and server operators can build and maintain large power grids with lower integration cost and higher observability. </details> --- ## 📝 Author's Note This version's changes are really extensive, so there may be some bugs. I hope everyone will actively provide feedback. Thank you. (It would be even better if feedback includes logs, crash reports, and reproduction steps.)
alpha

IEMS 0.8.0-alpha

0.8.0-alpha.237
9 июн. 2026 г.98Minecraft: 1.21.1neoforge
Скачать
Что нового
<details> <summary>中文</summary> - 实现了核心基类 - 实现了连接系统 - 将web监控面板改为API端口 </details> <details> <summary>English</summary> - Implemented the core base class - Implemented the connection system - Changed the web monitoring panel to an API port </details>
beta

IEMS 0.7.0

0.7.0
23 апр. 2026 г.105Minecraft: 1.21.1neoforge
Скачать
beta

IEMS 0.6.5

0.6.5
7 мар. 2026 г.29Minecraft: 1.21.1neoforge
Скачать
Что нового
第一个可用构建版本