Commit Graph

21 Commits

Author SHA1 Message Date
6f75e29ac6 Fix MC 26.2 / Fabric API 0.152.2 build: strip world+HUD overlays, use new keymapping API
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
MC 26.2 overhauled rendering significantly. The classes we used don't
exist anymore:

- MultiBufferSource was removed; world line drawing now goes through
  SubmitNodeCollector via LevelRenderEvents.COLLECT_SUBMITS — a much
  larger rewrite. Defer until next iteration.
- HudLayerRegistrationCallback / IdentifiedLayer / LayeredDraw — replaced
  by HudElementRegistry / HudElement / VanillaHudElements. Compass and
  watermark deferred until next iteration.
- fabric-key-binding-api-v1 module renamed to fabric-key-mapping-api-v1.
  Class is now KeyMappingHelper at net.fabricmc.fabric.api.client.keymapping.v1.
- KeyMapping ctor: last arg is KeyMapping.Category, not a String.
- BlockPos#getCenter removed — construct Vec3 manually.
- ResourceKey#location renamed to identifier (returns Identifier).
- ResourceLocation was renamed to Identifier (in 26.1).

Friends/markers/chat/tab-complete still work; marker_set from friends
shows up as a chat line "[IRC] marker from X @ x, y, z" instead of an
in-world beacon for this iteration.
v1.0.2
2026-06-22 11:40:55 +06:00
be277c08c1 Initial commit
Some checks failed
continuous-integration/drone/push Build is failing
2026-06-22 11:13:10 +06:00
fb9218459b Added token and host in config 2026-06-21 21:35:17 +06:00
c25e394d50 Add friends, markers, HUD overlays, tab complete
- FriendsManager persists a per-user friend list at config/clientirc-friends.json.
- MarkerManager holds one ephemeral marker per owner (5 min expiry).
- IRC protocol extended with marker_set / marker_remove; server relays them.
- IrcService DisplayLine replaced with sealed IrcEvent (Chat / System / MarkerSet / MarkerRemove); chat formatting moved into the client.
- ClientIrcMod handles .friends add/remove/list, .marker remove, .help; chat lines from friends are prefixed with a green dot; marker events from non-friends are ignored.
- OverlayHud draws a top-center compass strip and a top-left watermark (nick / FPS / ping) via HudLayerRegistrationCallback.
- WorldOverlayRenderer draws green crosses above friends and magenta beams + base cubes at active markers via WorldRenderEvents.AFTER_ENTITIES.
- MiddleClickHandler binds MMB via KeyMapping, raycasts a block or 20-block look ray, stores locally and sends marker_set on a daemon executor.
- ChatScreenMixin completes . prefix commands on Tab; first mixin in the project, plumbed through clientirc.client.mixins.json and fabric.mod.json.
2026-06-21 21:16:32 +06:00
0112bde962 Publish jars as a Gitea release on tag push
All checks were successful
continuous-integration/drone/tag Build is passing
continuous-integration/drone/push Build is passing
Add a gitea-release step to the Drone pipeline that uploads everything
in build/libs/*.jar to a Gitea Release named after the pushed tag,
authenticating with a gitea_token secret. The step is guarded with
when.event tag, and tag was added to the pipeline trigger so the build
itself runs for tag events. Document the one-time token / secret setup
and the tag workflow in the README.
v1.0.1
2026-06-21 16:18:23 +06:00
b3f24d9828 Switch to Entity.sendSystemMessage for chat output
All checks were successful
continuous-integration/drone/push Build is passing
displayClientMessage(Component, boolean) was removed from LocalPlayer
in 26.2. sendSystemMessage(Component) is inherited from Entity, has
been part of Mojang's public API since 1.19, and LocalPlayer overrides
it to route the message into the local chat hud, which is exactly the
behaviour we want.
2026-06-21 16:10:40 +06:00
0e6377fce1 Route chat output through LocalPlayer.displayClientMessage
Some checks failed
continuous-integration/drone/push Build is failing
Gui.chat is private in 26.2 and Gui.getChat() is gone, so the previous
direct-field access does not compile. Player.displayClientMessage is a
public, stable API for client-side chat output, so push everything
through it. When the player is null (e.g. on the title screen before
join, where the auto-connect "Connected to ..." line lands), fall back
to the logger so the message is not silently dropped.
2026-06-21 16:07:19 +06:00
b0501acfcd Update chat and GameProfile accessors for 26.2
Some checks failed
continuous-integration/drone/push Build is failing
In 26.2 Mojang dropped the getChat() wrapper on Gui in favour of the
public 'chat' field, and com.mojang.authlib.GameProfile is now a record
so its getter is name() rather than getName(). Reflect both changes in
the IRC chat dispatcher.
2026-06-21 16:03:52 +06:00
5f366792c3 Use plain implementation for Fabric deps under unobfuscated Loom
Some checks failed
continuous-integration/drone/push Build is failing
Loom 1.17 in unobfuscated mode does not register the modImplementation
configuration: there is no remapping step that would need it. Use plain
implementation for fabric-loader and fabric-api, matching the original
work in 19b6ea5 that I had rolled back.
2026-06-21 15:59:08 +06:00
8a969bc843 Drop mappings declaration for unobfuscated 26.2
Some checks failed
continuous-integration/drone/push Build is failing
Starting with 26.1 Mojang ships Minecraft unobfuscated, and Yarn /
Intermediary are no longer published past 1.21.11. Loom does not need
a mappings dependency in that mode: the Mojang-named source compiles
directly. Remove the mappings line, drop the yarn_mappings property,
revert the client entrypoint to Mojang names (Minecraft, Component,
ChatFormatting, gui.getChat(), getUser().getName()), and rewrite the
README note so it stops claiming Mojang mappings via Loom.
2026-06-21 15:57:22 +06:00
71dc665ef1 Switch to Yarn mappings 26.2+build.3
Some checks failed
continuous-integration/drone/push Build is failing
Loom rejected officialMojangMappings() with a non-obfuscated
environment error, and Mojang client_mappings are not published for
26.2 yet. Pin Yarn at 26.2+build.3 via the new yarn_mappings property
and rewrite the client entrypoint with Yarn names: MinecraftClient,
Text, Formatting, inGameHud.getChatHud(), getSession().getUsername().
2026-06-21 15:49:02 +06:00
fb233cee93 Pin Loom plugin version literally for Gradle 9
Some checks failed
continuous-integration/drone/push Build is failing
Gradle 9 rejects property interpolation inside plugins {} — the version
must be a literal String. Drop the now-unused loom_version key from
gradle.properties so it does not desync from the build script.
2026-06-21 15:41:43 +06:00
77a44be34b Run IRC socket I/O on a dedicated background thread
Some checks failed
continuous-integration/drone/push Build is failing
Auto-connect on CLIENT_STARTED, .irc reconnect and .irc <msg> all used
to open a TCP socket on the render thread with a 5s connect timeout,
freezing client startup and chat input when the server was unreachable.
Dispatch those paths through a single daemon executor instead, and
release the socket plus the executor on CLIENT_STOPPING.
2026-06-21 15:40:02 +06:00
153d85602c Restore Loom mappings and modImplementation for Fabric deps
Loom needs an explicit mappings entry, and Fabric loader / API must be
declared with modImplementation so they get remapped against the active
mappings; the previous commit dropped both, which left the build with
no mappings at all and unremapped Fabric jars. Reference the
loom_version property in the plugin block too so it tracks
gradle.properties.
2026-06-21 15:39:49 +06:00
41b68d45c5 Decouple IrcConfig from client source set
Some checks failed
continuous-integration/drone/push Build is failing
2026-06-21 15:08:51 +06:00
93e1b409c2 Adapt client entrypoint to 26.2 mappings
Some checks failed
continuous-integration/drone/push Build is failing
2026-06-21 14:56:48 +06:00
19b6ea53b7 Remove explicit Mojang mappings for 26.2
Some checks failed
continuous-integration/drone/push Build is failing
2026-06-21 14:52:04 +06:00
02c228b997 Fix Loom plugin declaration for Gradle 9
Some checks failed
continuous-integration/drone/push Build is failing
2026-06-21 14:50:07 +06:00
ccb325ea42 Upgrade Loom for Minecraft 26.2 build
Some checks failed
continuous-integration/drone/push Build is failing
2026-06-21 14:45:44 +06:00
a37224a1c8 Fix target version to Minecraft 26.2
Some checks failed
continuous-integration/drone/push Build is failing
2026-06-21 14:41:10 +06:00
910c58c30b Add Fabric client IRC chat mod and Drone pipeline 2026-06-21 14:31:38 +06:00