Skip to content

Remove multi-version wrappers and 1.12.2 support; migrate shared code to direct 1.8.9 APIs#121

Merged
gaoyu06 merged 5 commits intov4from
codex/review-the-project
Feb 6, 2026
Merged

Remove multi-version wrappers and 1.12.2 support; migrate shared code to direct 1.8.9 APIs#121
gaoyu06 merged 5 commits intov4from
codex/review-the-project

Conversation

@gaoyu06
Copy link
Member

@gaoyu06 gaoyu06 commented Feb 6, 2026

Motivation

  • Consolidate the codebase to a single supported Minecraft version (1.8.9) and remove the multi-version wrapper/API abstraction layer to simplify maintenance and reduce indirection.
  • Remove online/account/AI/music UI subsystems that depended on cross-version wrappers and external services to produce a clean offline-first client core.

Description

  • Deleted the cross-version API and wrapper layers and the entire v1.12.2 module, and added shared/java/top/fpsmaster/Constants.java with EDITION = "1.8.9" and VERSION = "v1.8.9" to scope the build to 1.8.9.
  • Replaced usages of Wrappers, MinecraftAPI, provider registries and wrapper helper classes with direct vanilla 1.8.9 Minecraft / mc calls across shared code (examples: Utility, Module, Render2DUtils, Render3DUtils, many UI components and feature implementations).
  • Removed networking/account/third-party integrations and UI that relied on them (WebSocket client, Microsoft/OpenAI/OpenGl update checker, account manager, music panels/overlays, AI/IRC/chat bot modules and related files).
  • Replaced custom wrapper buffer/vertex helpers with Tessellator/WorldRenderer and switched from wrapper AxisAlignedBB/model types to vanilla AxisAlignedBB/BlockPos where appropriate; simplified feature implementations (scoreboard, hitboxes, particles, motion blur shader handling, TNT timer, FreeLook, etc.) to call vanilla APIs directly.
  • Cleaned up module registration to always include single-version modules and removed conditional 1.12.2 registrations; removed many wrapper/interface artifacts and simplified Performance fallbacks.

Testing

  • Ran repository scans and edits (rg/sed) and applied code changes across ~268 files, then staged and committed the changes successfully with git commit (commit message: "Remove multi-version wrappers and 1.12.2 module").
  • Performed targeted file inspections of modified files (e.g. shared/java/top/fpsmaster/Constants.java, shared/java/top/fpsmaster/utils/Utility.java, shared/java/top/fpsmaster/ui/screens/mainmenu/MainMenu.java, v1.8.9/src/main/java/top/fpsmaster/forge/Mod.java) to verify replacements and deletions; those checks completed without errors.
  • No automated build or unit tests were executed as part of this change; a full build and runtime validation in a 1.8.9 environment are recommended before release.

Codex Task

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 39695f0851

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +53 to +56
for (Score score : filtered) {
String name = ScorePlayerTeam.formatPlayerName(scoreboard.getPlayersTeam(score.getPlayerName()), score.getPlayerName());
String line = name + ": " + score.getScorePoints();
lines.add(line);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Honor the Scoreboard.score setting before appending points

The Scoreboard module exposes a score toggle (see Scoreboard.score in features/impl/interfaces/Scoreboard) that previously controlled whether score points were rendered; in the old wrapper path the points were only drawn when that setting was enabled. The new rendering path always appends ": " + score.getScorePoints() to each line, so disabling the setting no longer hides points. This is a behavior regression for users who turn off the score display, and it will make the scoreboard ignore the module’s own setting in all worlds that display an objective.

Useful? React with 👍 / 👎.

@gaoyu06 gaoyu06 merged commit 0329f9a into v4 Feb 6, 2026
1 check passed
@gaoyu06 gaoyu06 deleted the codex/review-the-project branch February 6, 2026 19:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant