111 Commits

Author SHA1 Message Date
piebot
a634ef4d59 chore: update progress [no ci] 2026-05-05 19:35:53 +03:00
/home/neo
a1921a871f ci: release notes support 2026-05-04 20:43:47 +03:00
/home/neo
0c944cb713 template: fix 2026-05-03 21:22:31 +03:00
/home/neo
bef1a91903 fix bug report template 2026-05-03 21:21:54 +03:00
/home/neo
58d005fb02 templates: better bug report template 2026-05-03 21:20:37 +03:00
/home/neo
d2810bfee3 ci: fix server title 2026-05-03 19:57:16 +03:00
/home/neo
052bb11bcd ci: add "prerelease" to nightly 2026-05-03 19:01:08 +03:00
/home/neo
32eb37a5e8 ci: versioning 2026-05-03 18:59:45 +03:00
/home/neo
4e9cc23033 ci changes (#46) 2026-05-01 12:36:11 +03:00
/home/neo
ea4d8c22c4 chore: fix bug report template 2026-04-30 15:36:40 +03:00
piebot
f53987bdf6 chore: update progress 2026-04-28 15:36:08 +03:00
piebot
95649b2d64 chore: update progress 2026-04-26 21:27:17 +03:00
Fireblade
a8b80b377b Merge branch 'pieeebot:main' into patch 2026-04-24 22:56:18 -04:00
piebot
7db8860ea4 chore: remove .exe from release and only allow the .zip. 2026-04-24 18:55:32 +03:00
piebot
3c919553ab chore: move all files from .gitea to .github 2026-04-24 18:53:46 +03:00
Fireblade
169cfb2387 hey man we kinda need those 2026-04-23 23:36:18 -04:00
Patoke
e67c9cab55 fix: actions didn't recurse submodules on checkout 2026-04-21 17:42:48 +03:00
piebot
1b68f8fdc7 chore: update nightly.yml 2026-04-21 16:33:19 +03:00
/home/neo
ad0939acab fix(ci): fsck you git 2026-04-16 19:00:36 +03:00
/home/neo
d55d4a22ca fix(ci): remove GPG 2026-04-16 18:40:40 +03:00
/home/neo
93820b637b ci: build FourKit 2026-04-16 18:25:24 +03:00
George V.
edeb0d2230 Merge branch 'main' into upstream-merge
# Conflicts:
#	.github/workflows/nightly.yml
#	Minecraft.Server/cmake/sources/Common.cmake
2026-04-13 17:39:46 +03:00
/home/neo
53e50647e0 fix: CI part 2 2026-04-12 14:44:53 +03:00
/home/neo
e0700871c7 fix: CI 2026-04-12 14:32:46 +03:00
George V.
0ad7e383fa Merge branch 'main-re' into upstream-merge 2026-04-10 22:00:17 +03:00
George V.
506ebd2176 Merge remote-tracking branch 'itsRevela/main'
# Conflicts:
#	.github/workflows/nightly.yml
#	.gitignore
#	Minecraft.Client/ChatScreen.cpp
#	Minecraft.Client/ClientConnection.cpp
#	Minecraft.Client/Common/Audio/SoundEngine.cpp
#	Minecraft.Client/Common/Audio/SoundEngine.h
#	Minecraft.Client/Common/Media/MediaWindows64.arc
#	Minecraft.Client/Common/UI/IUIScene_HUD.cpp
#	Minecraft.Client/Common/UI/UIControl_Base.cpp
#	Minecraft.Client/Common/UI/UIScene_DeathMenu.cpp
#	Minecraft.Client/Common/UI/UIScene_JoinMenu.cpp
#	Minecraft.Client/Common/XUI/XUI_Chat.cpp
#	Minecraft.Client/Common/XUI/XUI_Death.cpp
#	Minecraft.Client/Font.cpp
#	Minecraft.Client/Gui.cpp
#	Minecraft.Client/PendingConnection.cpp
#	Minecraft.Client/PlayerConnection.cpp
#	Minecraft.Client/PlayerConnection.h
#	Minecraft.Client/PlayerList.cpp
#	Minecraft.Client/Windows64/Network/WinsockNetLayer.cpp
#	Minecraft.Client/Windows64/Network/WinsockNetLayer.h
#	Minecraft.Client/Windows64Media/strings.h
#	Minecraft.Client/cmake/sources/Common.cmake
#	Minecraft.Server/Console/ServerCliEngine.cpp
#	Minecraft.Server/Console/commands/whitelist/CliCommandWhitelist.cpp
#	Minecraft.Server/Windows64/ServerMain.cpp
#	Minecraft.World/WitherBoss.h
#	Minecraft.World/cmake/sources/Common.cmake
#	README.md
2026-04-09 15:21:43 +03:00
George V.
c8354c8b64 chore: add GitHub workflows and issue templates
Add CI/CD workflows for nightly releases and pull request builds, along with
structured issue templates for bug reports and suggestions.

- Nightly workflow builds and releases both client and server binaries for
  Windows, creating signed tags and GitHub releases with detailed instructions.
- Pull request workflow triggers builds on PR events to validate changes.
- Issue templates guide users in reporting bugs and suggesting enhancements,
  linking to community Discord for support.
2026-04-09 14:05:12 +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
itsRevela
5d56f5080f chore: rename LCRE branding to LCE-Revelations
Renames release artifacts, Docker image, container/service names,
and shell wrappers from the legacy LCRE prefix to LCE-Revelations.

* Banner asset: LCRE-banner.png to LCE-Revelations-banner.png
* Docker compose service and container: minecraft-lce-dedicated-server
  to lce-revelations-dedicated-server
* ghcr image: ghcr.io/itsrevela/minecraft-lce-dedicated-server to
  ghcr.io/lce-hub/lce-revelations-dedicated-server
* Dockerfile MC_RUNTIME_DIR default points at the CMake build output
  path now that the legacy x64/ MSBuild path is no longer produced
* README and helper shell scripts updated to match

Workflow rename for nightly.yml release notes is folded into the
FourKit commit because the FourKit CI changes overwhelm the diff.
2026-04-08 02:30:58 -05:00
itsRevela
77fbf36f54 chore: remove 'why this fork exists' section from release notes 2026-04-07 13:35:32 -05:00
itsRevela
37d1942033 chore: remove nightly server release workflow 2026-04-05 18:37:50 -05:00
itsRevela
e52565f9a3 Merge remote-tracking branch 'upstream/main'
# Conflicts:
#	.github/workflows/nightly-server.yml
#	Minecraft.Server/Windows64/ServerMain.cpp
#	Minecraft.World/ConsoleSaveFileOriginal.cpp
2026-04-05 16:23:28 -05:00
Sylvessa
c4c4c08b96 Revert "Update actions workflows and add clang format check for PRs (#1418)"
This reverts commit 38d58f2d8b due to it causing spam and other problems with pull requests.
2026-04-02 00:01:27 -05:00
itsRevela
3aa2d23fa9 feat: implement hardcore hearts with game mode lock
Display hardcore heart textures when a world is in hardcore mode,
matching Java Edition behavior. Hearts switch between normal/hardcore
across all states (poison, wither, flash) and all HUD resolutions.

C++ changes:
- IUIScene_HUD: check isHardcore() and call SetHardcoreMode() each tick
- UIScene_HUD: send hardcore boolean to Flash via Iggy, invalidate
  SetHealth dirty check on state change to force heart redraw
- CreateWorldMenu/LoadMenu: lock game mode to Survival when hardcore
- MinecraftServer: gate server.properties hardcore override behind
  MINECRAFT_SERVER_BUILD so offline worlds preserve their saved flag

SWF changes (via new Java tools):
- AddHardcoreBitmaps: adds 10 hardcore heart bitmaps to graphics SWFs
- AddHardcoreHearts: adds 10 new frames (15-24) to health sprite
- PatchHudABC: patches HUD ActionScript bytecode with SetHardcore
  method and frame offset logic (+14 normal/poison, +6 wither)

Also updates README changelog styling with consistent ### headings.
2026-03-30 13:50:29 -05:00
piebot
1e07e162f5 Update .github to .gitea 2026-03-30 13:46:34 +03:00
itsRevela
a4f55dde16 chore: add LCRE banner, SWF/ARC tools, ignore build artifacts
Replace README banner with LCRE-banner.png. Add SWF inspection
and ARC archive tools. Ignore compiled .class, .swf intermediates,
and staging directory in tools/.
2026-03-29 21:14:34 -05:00
itsRevela
b8cfd62cdf fix: sign correct tag for dedicated server release 2026-03-29 17:14:43 -05:00
itsRevela
97a1459929 feat: GPG-sign release tags for verified badge
Use crazy-max/ghaction-import-gpg to sign Nightly and
Nightly-Dedicated-Server tags with a GPG key so releases
show the green Verified badge on GitHub.
2026-03-29 14:47:53 -05:00
itsRevela
45987849b8 fix: add checkout to release jobs for gh cli 2026-03-29 14:29:06 -05:00
itsRevela
91e8b9cef4 fix: heredoc indentation and cleanup-tag without checkout
Remove --cleanup-tag (requires local git repo). Delete tags via API
instead. Fix heredoc terminators for release notes.
2026-03-29 14:21:05 -05:00
itsRevela
cf7cd32116 feat: use GitHub API for signed release tags
Replace andelf/nightly-release with gh CLI commands that create tags
via the GitHub API, which auto-signs them with the github-actions bot
key for the green Verified badge.
2026-03-29 14:13:19 -05:00
itsRevela
b3db1da8cb fix: set prerelease to false for nightly releases 2026-03-29 13:57:36 -05:00
itsRevela
c405ee9036 fix: use correct release tags and client description
Use capitalized tags (Nightly, Nightly-Dedicated-Server) to match
existing releases. Restore full client release body with instructions,
multiplayer setup, and fork explanation.
2026-03-29 13:56:29 -05:00
itsRevela
0fd15d360f feat: consolidate nightly workflows with signed builds
Merge client and server nightly releases into a single workflow.
Add artifact attestation for signed builds. Use CMake instead of
MSBuild. Preserve LCRE naming, top-level zip folders, and commit
hash release titles.
2026-03-29 13:46:18 -05:00
rtm516
38d58f2d8b Update actions workflows and add clang format check for PRs (#1418)
* Add clang-format workflow for pull request checks

* Modify push paths in nightly workflow

Updated paths for push event to include all files except specified ones.

* Update paths for nightly-server workflow triggers

* Modify paths for pull request triggers

Update pull request workflow to include specific paths.

* Tidy up clang-format installation in workflow
2026-03-28 23:35:25 -05:00
piebot
0e56730255 Update logo 2026-03-26 11:36:31 +03:00
piebot
2d04127cae fix arc file 2026-03-26 00:04:11 +03:00
piebot
6646eefb5e Merge remote-tracking branch 'upstream/main' 2026-03-24 16:48:08 +03:00
itsRevela
dd4b76d02a Disable automatic release on push for nightly-server workflow 2026-03-23 12:33:48 -05:00
piebot
e44f1cb784 Update roadmap.png 2026-03-20 08:58:25 +03:00