Commit graph

1491 commits

Author SHA1 Message Date
piebot 0cfde5e615 Update .gitea/ISSUE_TEMPLATE/config.yml 2026-03-30 12:54:34 +02:00
piebot 1a80cf849b Merge branch 'main' of codeberg.org:piebot/LegacyEvolved 2026-03-30 13:47:10 +03:00
piebot 1e07e162f5 Update .github to .gitea 2026-03-30 13:46:34 +03:00
piebot d6db6b099e Update README.md 2026-03-30 12:37:44 +02:00
piebot ba460f3956 Update Coarse Dirt and Podzol locations in Creative Menu 2026-03-30 13:34:41 +03:00
piebot b11ef7e68a Fix forgejo runner (Thanks GeorgeV22!) 2026-03-30 12:46:19 +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 967adf1e54 feat: make F2 screenshot work in any context
Move screenshot capture from Minecraft::tick() (which requires an
active player) to the Windows64 main loop alongside other global
key handlers (F1/F3/F11). F2 now works from the main menu, pause
menu, settings, inventory, crafting, and all other screens. Chat
message still shown when in-game.
2026-03-29 19:30:00 -05:00
itsRevela f2434a8ea8 feat: use full-size LCRE logo shifted up 10px
Replace the 80% scaled approach with full-size logo bitmaps and
shift the ComponentLogo SWF placements up by 10px (proportionally
scaled for lower resolutions) to avoid occlusion by the load/join
menu. Add ShiftLogo.java tool for adjusting SWF placement offsets.
2026-03-29 19:10:14 -05:00
itsRevela 4a8291f6cc feat: replace Minecraft logo with LCRE logo at 80% scale
Replace MenuTitle and MenuTitleSmall bitmaps in skinHDWin.swf and
skinWin.swf with the custom LCRE (Legacy Console Edition Revelations)
logo, scaled to 80% within the original bitmap canvas to avoid
occlusion by the load/join menu.

Add ReplaceLogo.java and ExtractFromArc.java tools for SWF bitmap
replacement and arc file extraction. Keep original arc as .bak.
2026-03-29 19:00:50 -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
neoapps-dev ae2dac022c feat(parity): climbable trapdoor if connected to ladder 2026-03-29 20:50:57 +03:00
itsRevela e706466f42 Send AddPlayerPacket for all players on join and RemoveEntitiesPacket on disconnect
Players now appear in each other's Tab list immediately on join,
regardless of render distance. Previously, players only appeared when
they entered entity tracking range because AddPlayerPacket was only
sent through the TrackedEntity system.

On disconnect, a RemoveEntitiesPacket is broadcast to all clients so
players added via the join broadcast are properly cleaned up, not just
those within tracking range.
2026-03-29 20:30:12 +03:00
itsRevela 0ebdbac933 Fix player list map icon colors to match map markers
The tab player list and teleport menu now show the correct map marker
color for each player. The icon is computed using the same hash as the
map renderer (getRandomPlayerMapIcon) and stored by player name,
bypassing the unreliable small-ID lookup that produced wrong colors
on dedicated servers.
2026-03-29 20:30:12 +03:00
itsRevela 618dc78008 Fix player list not showing all players on dedicated servers
Register remote players in the client's IQNet array when their
AddPlayerPacket arrives, so they appear in the Tab player list.
Previously only the host and local player were registered.

Also filter the dedicated server's phantom host entry (slot 0, empty
gamertag) from the UI, fix tick() to update entries by smallId instead
of sequential index, and fix player removal to use gamertag matching
since XUIDs are 0 on dedicated servers.
2026-03-29 20:30:11 +03:00
piebot 774f2fed61 Update README.md 2026-03-29 19:16:34 +02:00
neoapps-dev 267d98954b fix: change painting gaps from 16 to 32 2026-03-29 19:21:04 +03:00
neoapps-dev 48a5e882e3 omg i forgot to track the stb image write file lol 2026-03-29 18:52:59 +03:00
neoapps-dev 1028ee2e6d fix: stb import 2026-03-29 18:29:04 +03:00
neoapps-dev d717f18628 feat: F2 for screenshotting
some code used from MLRE
2026-03-29 18:22:45 +03:00
irice7 e8ac5b16ea Add cancel join
Adds the Cancel Join tooltip to the "Connecting to host"
progress bar
2026-03-29 17:03:12 +03:00
neoapps-dev 0073f5569b switch to LLVM 21 and use cron 2026-03-29 14:18:14 +02:00
itsRevela 59fd7266b6 Merge upstream/main (skip CI workflow changes) 2026-03-29 01:03:35 -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
itsRevela 245da783b3 feat: upgrade stream cipher from XOR to AES-128-CTR
Replace the XOR obfuscation cipher with AES-128-CTR using the Windows
BCrypt API. Key material grows from 16 to 32 bytes (16 AES key + 16 IV).
All callers auto-adjust via StreamCipher::KEY_SIZE. No handshake or
protocol changes needed beyond the larger MC|CKey payload.
2026-03-28 21:03:45 -05:00
Revela 1036c360dc
Merge branch 'smartcmd:main' into main 2026-03-28 19:19:42 -05:00
itsRevela ba3ebe666c feat: dedicated server security hardening
Comprehensive security system to protect against packet-sniffing attacks,
XUID harvesting, privilege escalation, bot flooding, and XUID impersonation.

- Stream cipher: per-session XOR cipher with 4-message handshake via
  CustomPayloadPacket (MC|CKey, MC|CAck, MC|COn). Negotiated per-connection,
  backwards compatible (old clients/servers fall back to plaintext).
- Security gate: buffers all game data until cipher handshake completes,
  preventing unsecured clients from receiving any XUIDs or game state.
- Cipher handshake enforcer: kicks clients that don't complete the handshake
  within 5 seconds (configurable via require-secure-client).
- Identity tokens: persistent per-XUID tokens in identity-tokens.json,
  issued over the encrypted channel, verified on reconnect. Prevents XUID
  replay attacks. Client stores server-specific tokens.
- PROXY protocol v1: parses real client IPs from playit.gg tunnel headers
  so rate limiting, IP bans, and XUID spoof detection work per-player.
- Rate limiting: per-IP sliding window (default 5 connections/30s) with
  pending connection cap (default 10).
- Privilege hardening: OP requires ops.json, live checks on every command
  and privilege packet. Host-only server settings changes.
- XUID stripping: PreLoginPacket response sends INVALID_XUID placeholders.
- Packet validation: readUtf global string cap, reduced max packet size,
  stream desync protection on oversized strings.
- OpManager: persistent ops.json with XUID-based OP list.
- Whitelist improvements: whitelist add accepts player names with ambiguity
  detection, XUID cache from login attempts.
- revoketoken command: revoke identity tokens for players who lost theirs.
- server.log: persistent log file written alongside console output with
  flush-per-write to survive crashes.
- CLI security logging: consolidated per-join security summary with cipher
  status, token status, XUID, and real IP. Security warnings for kicks,
  spoofing, and unauthorized commands.
2026-03-28 19:18:06 -05:00
neoapps-dev 2b743bfff4 -j3 2026-03-29 00:04:45 +01:00
neoapps-dev cb9f4fe624 CI mode 2026-03-28 23:52:55 +01:00
neoapps-dev d52e64635a Update .gitea/workflows/nightly.yml 2026-03-28 23:49:58 +01:00
neoapps-dev 7124ebe0ef retry build once if it fails 2026-03-28 23:42:58 +01:00
neoapps-dev f212a9290a Update .gitea/workflows/nightly.yml
yes imma hardcode now, im tired of this
2026-03-28 23:31:53 +01:00
neoapps-dev a53cc967df fix(workflow): switch to LLVM 19
istg if this doesnt work...

Signed-off-by: neoapps-dev <neoapps-dev@noreply.codeberg.org>
2026-03-28 23:02:06 +01:00
neoapps-dev 6a76e0f515 me hates this 2026-03-28 22:45:06 +01:00
neoapps-dev e8b36315bd did i say i hate codeberg 2026-03-28 22:41:08 +01:00
neoapps-dev 09b098e1b1 how did i misspell the username omg 2026-03-28 22:38:03 +01:00
neoapps-dev c268af89bc i hate this 2026-03-28 22:36:36 +01:00
neoapps-dev 8dd3e1cd6a gtfo rust 2026-03-28 22:16:10 +01:00
neoapps-dev c9d60db80d add .win to gitignore 2026-03-28 21:58:49 +01:00
neoapps-dev 9e53cea7ff forgot the dot 2026-03-28 21:58:01 +01:00
neoapps-dev 11e84b17e0 Update .gitea/workflows/nightly.yml 2026-03-28 21:57:47 +01:00
neoapps-dev 58e0b4ff7b fix: change cache dir to PWD instead of HOME 2026-03-28 21:56:01 +01:00
neoapps-dev bd55d6ea48 now i hate ubuntu as well 2026-03-28 21:45:42 +01:00