Commit Graph

44 Commits

Author SHA1 Message Date
George V.
0ad7e383fa Merge branch 'main-re' into upstream-merge 2026-04-10 22:00:17 +03:00
itsRevela
42a582fb9f feat: add FourKit plugin host with dual server build
Adds the FourKit .NET 10 plugin host as a second dedicated server
build flavour alongside the existing vanilla server. Both flavours
build from the same source tree, with FourKit gated by the
MINECRAFT_SERVER_FOURKIT_BUILD preprocessor define.

Build layout:

  Minecraft.Server         vanilla, no plugin support, no .NET dep
  Minecraft.Server.FourKit FourKit-enabled, ships with bundled
                           .NET 10 self-contained runtime in runtime/
                           and an empty plugins/ folder

Both produce a Minecraft.Server.exe in their own per-target output
dir. The variant identity lives in the directory name, not the
binary name, so either flavour can be shipped as a drop-in.

Native bridge (Minecraft.Server/FourKit*.{cpp,h}):

* FourKitRuntime: hosts CoreCLR via hostfxr's command-line init API
  (the runtime-config API does not support self-contained components)
* FourKitBridge: ~50 Fire* event entry points, with inline no-op
  stubs for the standalone build so gameplay code can call them
  unconditionally
* FourKitNatives: ~80 native callbacks the managed side invokes
  for player/world/inventory mutations
* FourKitMappers: type and enum mapping helpers

Managed plugin host (Minecraft.Server.FourKit/):

* Bukkit-style API: Player, World, Block, Inventory, Command,
  Listener, EventHandler attribute, ~54 event classes
* PluginLoader with per-plugin AssemblyLoadContext
* FourKitHost as the [UnmanagedCallersOnly] entry point table
* Runtime resolves plugins relative to the host process so they
  always live next to Minecraft.Server.exe regardless of where the
  managed assembly itself is loaded from

Engine hooks (Minecraft.Client/, Minecraft.World/):

* Player lifecycle (PreLogin, Login, Join, Quit, Kick, Move,
  Teleport, Portal, Death) wired into PendingConnection and
  PlayerConnection without disturbing the cipher handshake or
  identity-token security flow
* Inventory open/click/drop hooks across every container menu type
* Block place/break/grow/burn/spread/from-to hooks across the
  full tile family
* Bed enter/leave, sign change, entity damage/death, ender pearl
  teleport hooks

Regression fixes preserved while applying donor diffs:

* ServerPlayer::die() retains the LCE-Revelations hardcore branch
  (setGameMode(ADVENTURE) + banPlayerForHardcoreDeath) in both the
  FourKit and non-FourKit code paths
* ServerLevel::entityAdded() retains the sub-entity ID reassignment
  loop required by the client's handleAddMob offset, fixing Ender
  Dragon and Wither boss multi-part hit detection
* LivingEntity::travel() retains the raw Player* cast and the
  cached frictionTile, both Revelations perf wins that the donor
  silently reverted
* ServerLogger.cpp keeps the file-logging code donor stripped
* PlayerList.cpp end portal transition fix and UIScene_EndPoem
  bounds-check are intact

Build system:

* Top-level CMakeLists.txt adds the Minecraft.Server.FourKit
  subdirectory and pulls in the new shared cmake/ServerTarget.cmake
  helper
* Minecraft.Server/cmake/sources/Common.cmake is now location
  independent (uses CMAKE_CURRENT_LIST_DIR) so the source list
  can be consumed from either server target's CMakeLists.txt
* The seven FourKit*.cpp/h files live in their own
  _MINECRAFT_SERVER_COMMON_SERVER_FOURKIT variable so the
  standalone target omits them
* configure-time .NET 10 SDK check fails fast with a clear
  download link if the SDK is missing
* global.json pins the SDK to 10.0.100 with latestFeature
  rollforward

Sample plugin (samples/HelloPlugin/) demonstrates the loader and
the PlayerJoinEvent listener pattern.

CI:

* nightly.yml builds both server flavours, ships
  LCE-Revelations-Server-Win64.zip and
  LCE-Revelations-Server-Win64-FourKit.zip, attests both, and
  updates release notes for the dual-flavour layout
* pull-request.yml pulls in actions/setup-dotnet so the FourKit
  publish step works in PR validation
* All zip artifacts and the client zip are renamed from
  LCREWindows64 to LCE-Revelations-{Client,Server}-Win64

Documentation:

* COMPILE.md gets a VS 2022 quick start, .NET 10 prereq section,
  server flavours explanation, and a troubleshooting section
* docs/FOURKIT_PORT_RECON.md captures the file-by-file recon that
  drove the port
* docs/FOURKIT_PARITY.md is the canonical reference for which
  events FourKit fires

Docker:

* docker-compose.dedicated-server.yml MC_RUNTIME_DIR default points
  at the vanilla CMake output. The FourKit Docker image is
  intentionally NOT shipped yet because hosting .NET 10 self
  contained inside Wine has not been smoke-tested
2026-04-08 03:02:48 -05:00
neoapps-dev
99ffa05fbf nixy nix 2026-03-27 15:37:57 +03:00
Lord Cambion
10b7fc36d3 Biome Update! 2026-03-26 20:37:51 +01:00
Lord Cambion
ae273c75fa Name Fixes 2026-03-26 00:40:52 +01:00
piebot
e14ba14e68 a bunch of shit lmaoo 2026-03-25 21:41:35 +03:00
piebot
6646eefb5e Merge remote-tracking branch 'upstream/main' 2026-03-24 16:48:08 +03:00
itsRevela
93532ef533 Stained Glass Survival Integration & Crafting UI Fix (#1195) 2026-03-23 11:58:13 -05:00
Lord Cambion
9a6d126ae1 Stained Glass Survival Integration & Crafting UI Fix (#1195)
* Added Stained Glass

i found out that stained glass  was not accessible in survival, then i  saw they disabled it in the code

* Grouping glass correctly in crafting table

I removed the #if/endif from the ClothDyeRecipes.cpp and added a different one in StructureRecipies.cpp
also changed the Tile definition giving it the same
setBaseItemTypeAndMaterial of stained glass to group it correctly inside the crafting table UI.
also aincremented the Vertical Slot for crafting table to include many more craftings in the same group
2026-03-22 21:15:02 -05:00
Lord Cambion
72ffe3ec0f glass recipe 2026-03-20 12:47:42 +01:00
Tranqlmao
07fd3222b8 Added Double Tall Plants
TODO:
Add Sunflower
Add natural spawning of these flowers
2026-03-20 01:53:28 -04:00
Lord Cambion
82a95d6683 FIXED ID MATCHING THE LCE 2026-03-19 23:06:22 +01:00
Lord Cambion
8c6da7ea22 saplings now have all the id 6 2026-03-19 22:30:49 +01:00
Lord Cambion
4198a014f3 prismarine fiex id 168,168:1,168:2 2026-03-19 19:35:43 +01:00
Tranqlmao
8423170d13 Strings Fix
+Some block/item id parity
2026-03-19 13:12:06 -04:00
Lord Cambion
6af82612d3 stone bricks crafting and mossy cobblestone 2026-03-19 11:45:24 +01:00
Tranqlmao
5295de161f Prismarine Patch
Added the rest of prismarine items and blocks.
Added recipes for blocks (lantern excluded)
Parity crafting and creative menu locations
2026-03-18 20:48:28 -04:00
Tranqlmao
c6669c696f Added Prismarine Block
Will add the next blocks, pushing for consistency
2026-03-18 16:39:35 -04:00
Lord Cambion
d55ec28291 ACACIA and DARK_OAK 2026-03-17 19:36:38 +01:00
Lord Cambion
566570c776 Partly added leaves. just need to fix colors 2026-03-17 17:53:23 +01:00
Tranqlmao
6fda682e26 Merge branch 'main' of https://github.com/piebotc/LegacyEvolved 2026-03-16 20:49:12 -04:00
Tranqlmao
36ad1a341e Sea Lanterns
Added Prismarine Crystals and Sea Lanterns
2026-03-16 20:33:21 -04:00
piebot
135108a485 Add Packed Ice 2026-03-17 01:44:44 +03:00
piebot
2539831608 Add wet sponges 2026-03-16 22:40:13 +03:00
Lord Cambion
885d346dd5 armorstand and leather craftable 2026-03-16 14:04:45 +01:00
piebot
452a6fa1c4 Fix beds having stone sound 2026-03-16 08:40:29 +03:00
piebot
57be5ccb93 Add Logo and Panorama + Add Recipes 2026-03-15 20:24:53 +03:00
piebot
0607e115dc Fix build error 2026-03-15 04:14:11 +03:00
piebot
91203050fa Implement red sand and red sandstone. 2026-03-14 23:21:19 +03:00
piebot
00d3ca7b9b Added Rose Types + jeb_ Easter egg 2026-03-14 00:51:31 +03:00
piebot
c1124d2f26 Added Dirt and Stone Variants
Added podzol, coarse dirt, granite, polished granite, andesite, polished andesite, diorite, polished diorite.
2026-03-13 08:23:49 +03:00
piebot
49dbf1b80f Changed Item IDs to Match Java
Also changed Lapis and Rose Textures.
2026-03-12 19:25:09 +03:00
piebot
a205b1d70a Added features from TU25
Acacia and Dark Oak Logs, Planks and Stairs.

Fences, Fence Gates and Doors for Spruce/Birch/Jungle/Acacia/Dark Oak.

Iron Trapdoors and Inverted Daylight Sensor.
2026-03-11 08:58:52 +03:00
ModMaker101
28614b922f Modernize project codebase (#906)
* Fixed boats falling and a TP glitch #266

* Replaced every C-style cast with C++ ones

* Replaced every C-style cast with C++ ones

* Fixed boats falling and a TP glitch #266

* Updated NULL to nullptr and fixing some type issues

* Modernized and fixed a few bugs

- Replaced most instances of `NULL` with `nullptr`.
- Replaced most `shared_ptr(new ...)` with `make_shared`.
- Removed the `nullptr` macro as it was interfering with the actual nullptr keyword in some instances.

* Fixing more conflicts

* Replace int loops with size_t and start work on overrides

* Add safety checks and fix a issue with vector going OOR
2026-03-08 18:08:36 -05:00
Loki Rautio
087b7e7abf Revert "Project modernization (#630)"
This code was not tested and breaks in Release builds, reverting to restore
functionality of the nightly. All in-game menus do not work and generating
a world crashes.

This reverts commit a9be52c41a.
2026-03-07 21:12:22 -06:00
ModMaker101
a9be52c41a Project modernization (#630)
* Fixed boats falling and a TP glitch #266

* Replaced every C-style cast with C++ ones

* Replaced every C-style cast with C++ ones

* Fixed boats falling and a TP glitch #266

* Updated NULL to nullptr and fixing some type issues

* Modernized and fixed a few bugs

- Replaced most instances of `NULL` with `nullptr`.
- Replaced most `shared_ptr(new ...)` with `make_shared`.
- Removed the `nullptr` macro as it was interfering with the actual nullptr keyword in some instances.

* Fixing more conflicts

* Replace int loops with size_t and start work on overrides
2026-03-08 09:56:03 +07:00
void_17
988e3042e0 Remove all MSVC __int64 (#742) 2026-03-07 03:31:30 +07:00
void_17
55231bb8d3 Remove AUTO_VAR macro and _toString function (#592) 2026-03-06 02:11:18 +07:00
daoge
b3feddfef3 feat: TU19 (Dec 2014) Features & Content (#155)
* try to resolve merge conflict

* feat: TU19 (Dec 2014) Features & Content (#32)

* December 2014 files

* Working release build

* Fix compilation issues

* Add sound to Windows64Media

* Add DLC content and force Tutorial DLC

* Revert "Add DLC content and force Tutorial DLC"

This reverts commit 97a43994725008e35fceb984d5549df9c8cea470.

* Disable broken light packing

* Disable breakpoint during DLC texture map load

Allows DLC loading but the DLC textures are still broken

* Fix post build not working

* ...

* fix vs2022 build

* fix cmake build

---------

Co-authored-by: Loki <lokirautio@gmail.com>
2026-03-03 03:04:10 +08:00
void_17
b9a2951901 Revert "Get rid of MSVC's __int64"
This reverts commit d63f79325f.
2026-03-02 17:39:35 +07:00
void_17
119bff3514 Revert "shared_ptr -> std::shared_ptr"
This reverts commit 7074f35e4b.
2026-03-02 17:37:16 +07:00
void_17
7074f35e4b shared_ptr -> std::shared_ptr
This is one of the first commits in a plan to remove all `using namespace std;` lines in the entire codebase as it is considered anti-pattern today.
2026-03-02 15:58:20 +07:00
void_17
d63f79325f Get rid of MSVC's __int64
Use either int64_t, uint64_t or long long and unsigned long long, defined as per C++11 standard
2026-03-02 15:53:32 +07:00
daoge_cmd
b691c43c44 Initial commit 2026-03-01 12:16:08 +08:00