Fakeplayer Action Gui - Stage 1 (#161)
Still needs some tweaks to fit Leaves' changes
* pre add gui (not implemented)
* fallback one change in Actions
* pre for new structure of gui register
* Enhance GUI node structure with item support and command handling
* feat: update GUI node handling in bot actions
* feat: enhance command building logic in GUI nodes
* fix a bug
* feat: implement GUI navigation and command execution in BotAction GUI
* feat: refactor GuiNode and related classes to use Item instead of ItemStack
* feat: update command building logic to include additional action parameters
* feat: simplify command syntax in BotAction GUI and update inventory view handling
* feat: add ActionType enum and implement action confirmation in BotAction GUI
* feat: enhance ActionType handling and selection in BotAction GUI
* feat: integrate GUI data handling in bot actions and enhance navigation
* fix up
* because of tmp move to new org, rebrand
* Implement pagination for bot action GUI and enhance action stop functionality
* ci updates
* replace boarder item
* fix https://github.com/LophineCraft/Lophine/pull/161#issuecomment-5012127501 issues - 1
* fix https://github.com/LophineCraft/Lophine/pull/161#issuecomment-5012127501 issues - 2
* fix index
* replace some items
* feat: use the same item shown for stop & start action
* remove 2 todos, we wouldn't provide them
* refactor: simplify rendering methods in BotActionGuiContainer
* feat: add empty action placeholder and simplify item rendering
* fix: remove extra suggestions
* fix: update GUI icons for jump, move, and swap actions
* fix: update comment in open action gui
* set release mode to true
---------
Co-authored-by: xiaoxijun <A3167717663@hotmail.com>
Replace MenthaMC Maven repo with Bacteriawa
Update Maven repository URL from https://repo.menthamc.org/... to https://repo.bacteriawa.com/... across project files. Changes include README.md and README_EN.md (repository id changed to "repository" and URL updated), build.gradle.kts (rename menthaMavenPublicUrl to bacteriawaMavenPublicUrl and switch repository used for dependencies and publishing, update publishing repo name), luminol-server/build.gradle.kts.patch (use bacteriawaMavenPublicUrl), and settings.gradle.kts (add new Maven URL). This centralizes the project to use the Bacteriawa Maven host for dependency resolution and publishing.
Origin Commit: https://github.com/LuminolMC/Luminol/commit/ba28403ff6d15da3cf8b1af9828bbd1f997a7b9e
Co-authored-by: Bacteriawa <a3167717663@hotmail.com>
* Add PCA sync protocol support
Introduce PCA sync protocol and integrate it into Carpet/Leaves.
- Added org/leavesmc/leaves/protocol/PcaSyncProtocol.java: full implementation of the PCA sync protocol (handlers for sync requests, watcher maps, update payloads, player/block watch management, scheduling, and config-driven behavior).
- Added fun/bm/lophine/config/modules/function/protocol/PcaSyncProtocolConfig.java and enum PcaPlayerEntityType.java to drive enabling and player-entity sync policy.
- Integrated protocol into Carpet: register new carpet rules (pcaSyncProtocol, pcaSyncPlayerEntity) in CarpetCompatSync and added batching to avoid excessive updates when rules change.
- Enhanced CarpetServerProtocol to track active players, batch rule updates, and send server rule data safely on the server thread.
- Added a Minecraft patch (0046-PCA-sync-protocol.patch) to trigger syncs from setChanged() in containers, chest boats, minecarts and BlockEntity updates so watched clients receive entity/block-entity updates.
This enables PCA clients to watch and receive synchronized block-entity and entity state on demand, while keeping updates gated by config and player permissions and improving rule-update performance via batching.
* Add Vanilla-like experience config and updates
Introduce a new VanillaLikeExperienceConfig module and a patch (0047) that gates multiple Paper/Luminol behavior changes behind this toggle to restore more vanilla-like technical behavior when enabled. The patch injects conditional checks across many server classes (entity merging, phantoms, pistons, hoppers, TNT handling, explosions, portal/piston protections, item merging, teleportation, spawn counting, etc.). Also adjust PCA sync protocol references in the existing 0046 patch to use the updated fun.bm.lophine package path. Includes the new fun.bm.lophine.config.modules.fixes.VanillaLikeExperienceConfig.java file.
* Restore vanilla ender pearl loading on Folia
Add patch (features/0048) that restores vanilla ender-pearl loading behavior on Folia. Reintroduces ender-pearl tracking and persistence: ServerPlayer now uses a thread-safe enderPearls set and saves pearl tags, ThrownEnderpearl maintains a lastSavedEnderPearlTag (updated on construction, owner changes, spawn and restore) and updates/clears it on tick/removal, and EnderpearlItem updates the saved tag when spawning a pearl. PlayerList and BotList now schedule pearl removal via the Bukkit taskScheduler when players/bots quit. The changes preserve Paper's legacyEnderPearlBehavior checks where applicable and add logging and safer tag handling to avoid saving invalid snapshots.
* Restore vanilla ender pearl loading
Restore vanilla ender-pearl loading behavior on Folia by preserving the last saved NBT for thrown pearls. ThrownEnderpearl.java: add a volatile CompoundTag lastSavedEnderPearlTag, provide a defensive-copying getter getLastSavedEnderPearlTag(), adjust @Nullable annotation placement, and update logger/comment. Minor index/format updates in ServerPlayer.java, PlayerList.java and EnderpearlItem.java.
* remove extra import
* Add Precise mob cap and adjust ender pearl patch
Introduce a Precise mob cap feature and integrate it into Paper/Folia world/region lifecycle. Adds new patch features/0049-Precise-mob-cap.patch which modifies RegionizedWorldData, ServerChunkCache and ServerLevel to support an incremental, event-driven mob counting system that can supersede the existing GlobalEntitiesCounter. Adds PreciseMobCapConfig (toggle and behavior flags) and PreciseMobCapCounter (unique id management, area map registration, per-level global counters, spawnable-chunk tracking, spawn state creation, and cleanup on unload). Also updates the existing 0048 ender-pearl loading patch file (minor import/index adjustments). The Precise mob cap counts only relevant mobs (configurable to match vanilla or Paper-optimized behavior), hooks into entity tracking start/end, and requires per-player-mob-spawns=false to be set in Paper world defaults when enabled.
* remove extra import
* pre merge config
* transform config
* merge config
* rebuild patches
* fix a bug in new counter
* simplify code
---------
Co-authored-by: Helvetica Volubi <suisuroru@blue-millennium.fun>
Co-authored-by: Helvetica Volubi <88063803+Suisuroru@users.noreply.github.com>
Add Lophine-specific configuration support (global and carpet configs) and a temporary config transform step during init. Introduce config-controlled command registrations (function, scoreboard, trigger, tick) and enable tick-rate/command tweaks and an entity raytracing tracker flag. Fix datapack command save/listing behavior. Integrate Leaves update-suppression handling broadly: catch and convert update-suppression exceptions across packet handling, ticking, neighbor updates, block state updates and more; add configurable shulker CCE behavior and redstone upward-update compatibility. Provide an option to reintroduce an InstantNeighborUpdater (instant block updater) and other small compatibility/rebrand adjustments.
* do not release & push repo before finished
* langs update
* updateSuppression config moved up
* redirect tick command option to carpet config system
* optimizedDragonRespawn
* diff in files
* counter rules transformed
* oops!
* some fakeplayer options moved up
* simplify
* creative no clip moved
* pre remove core module
* pre update luminol to further fix a bug that config not saved to real file
* fix up transform
* fix up transform
* fix up
* fix up some problem in PR
* redirect forgotten moved config
* fix bugs in PR
* refix
* switch for final merge