Skip to content

Commit 65dc2b9

Browse files
committed
Initial Commit
0 parents  commit 65dc2b9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+6693
-0
lines changed

.gitignore

Lines changed: 179 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,179 @@
1+
# Created by https://www.toptal.com/developers/gitignore/api/java,gradle,intellij
2+
# Edit at https://www.toptal.com/developers/gitignore?templates=java,gradle,intellij
3+
4+
### Intellij ###
5+
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
6+
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
7+
8+
# User-specific stuff
9+
.idea/**/workspace.xml
10+
.idea/**/tasks.xml
11+
.idea/**/usage.statistics.xml
12+
.idea/**/dictionaries
13+
.idea/**/shelf
14+
15+
# AWS User-specific
16+
.idea/**/aws.xml
17+
18+
# Generated files
19+
.idea/**/contentModel.xml
20+
21+
# Sensitive or high-churn files
22+
.idea/**/dataSources/
23+
.idea/**/dataSources.ids
24+
.idea/**/dataSources.local.xml
25+
.idea/**/sqlDataSources.xml
26+
.idea/**/dynamic.xml
27+
.idea/**/uiDesigner.xml
28+
.idea/**/dbnavigator.xml
29+
30+
# Gradle
31+
.idea/**/gradle.xml
32+
.idea/**/libraries
33+
34+
# Gradle and Maven with auto-import
35+
# When using Gradle or Maven with auto-import, you should exclude module files,
36+
# since they will be recreated, and may cause churn. Uncomment if using
37+
# auto-import.
38+
# .idea/artifacts
39+
# .idea/compiler.xml
40+
# .idea/jarRepositories.xml
41+
# .idea/modules.xml
42+
# .idea/*.iml
43+
# .idea/modules
44+
# *.iml
45+
# *.ipr
46+
47+
# CMake
48+
cmake-build-*/
49+
50+
# Mongo Explorer plugin
51+
.idea/**/mongoSettings.xml
52+
53+
# File-based project format
54+
*.iws
55+
56+
# IntelliJ
57+
out/
58+
59+
# mpeltonen/sbt-idea plugin
60+
.idea_modules/
61+
62+
# JIRA plugin
63+
atlassian-ide-plugin.xml
64+
65+
# Cursive Clojure plugin
66+
.idea/replstate.xml
67+
68+
# SonarLint plugin
69+
.idea/sonarlint/
70+
71+
# Crashlytics plugin (for Android Studio and IntelliJ)
72+
com_crashlytics_export_strings.xml
73+
crashlytics.properties
74+
crashlytics-build.properties
75+
fabric.properties
76+
77+
# Editor-based Rest Client
78+
.idea/httpRequests
79+
80+
# Android studio 3.1+ serialized cache file
81+
.idea/caches/build_file_checksums.ser
82+
83+
### Intellij Patch ###
84+
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
85+
86+
# *.iml
87+
# modules.xml
88+
# .idea/misc.xml
89+
# *.ipr
90+
91+
# Sonarlint plugin
92+
# https://plugins.jetbrains.com/plugin/7973-sonarlint
93+
.idea/**/sonarlint/
94+
95+
# SonarQube Plugin
96+
# https://plugins.jetbrains.com/plugin/7238-sonarqube-community-plugin
97+
.idea/**/sonarIssues.xml
98+
99+
# Markdown Navigator plugin
100+
# https://plugins.jetbrains.com/plugin/7896-markdown-navigator-enhanced
101+
.idea/**/markdown-navigator.xml
102+
.idea/**/markdown-navigator-enh.xml
103+
.idea/**/markdown-navigator/
104+
105+
# Cache file creation bug
106+
# See https://youtrack.jetbrains.com/issue/JBR-2257
107+
.idea/$CACHE_FILE$
108+
109+
# CodeStream plugin
110+
# https://plugins.jetbrains.com/plugin/12206-codestream
111+
.idea/codestream.xml
112+
113+
# Azure Toolkit for IntelliJ plugin
114+
# https://plugins.jetbrains.com/plugin/8053-azure-toolkit-for-intellij
115+
.idea/**/azureSettings.xml
116+
117+
### Java ###
118+
# Compiled class file
119+
*.class
120+
121+
# Log file
122+
*.log
123+
124+
# BlueJ files
125+
*.ctxt
126+
127+
# Mobile Tools for Java (J2ME)
128+
.mtj.tmp/
129+
130+
# Package Files #
131+
*.jar
132+
*.war
133+
*.nar
134+
*.ear
135+
*.zip
136+
*.tar.gz
137+
*.rar
138+
139+
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
140+
hs_err_pid*
141+
replay_pid*
142+
143+
### Gradle ###
144+
.gradle
145+
**/build/
146+
!src/**/build/
147+
148+
# Ignore Gradle GUI config
149+
gradle-app.setting
150+
151+
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
152+
!gradle-wrapper.jar
153+
154+
# Avoid ignore Gradle wrappper properties
155+
!gradle-wrapper.properties
156+
157+
# Cache of project
158+
.gradletasknamecache
159+
160+
# Eclipse Gradle plugin generated files
161+
# Eclipse Core
162+
.project
163+
# JDT-specific (Eclipse Java Development Tools)
164+
.classpath
165+
166+
### Gradle Patch ###
167+
# Java heap dump
168+
*.hprof
169+
170+
# Extras
171+
172+
bin/
173+
.vscode/
174+
run/
175+
.idea/
176+
yarn-sources.jar
177+
logs/
178+
.gradle_old_loomlock/
179+
build_old_loomlock/

LICENSE

Whitespace-only changes.

README.md

Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
# UI-Utils 26x CevAPI
2+
3+
![26.1](https://i.imgur.com/oEPShFT.png)
4+
5+
## Overview
6+
7+
- This is a rewrite of the original **UI-Utils 2.4.0**, migrated to Mojang mappings (mojmap) which was ported out of [Wurst-7-CevAPI](https://github.com/cev-api/Wurst7-CevAPI) and then bumped to **Minecraft 26.1 PR2** and put into a standalone mod.
8+
- On top of classic UI-Utils quality-of-life features, this build adds advanced packet tooling, command scanning and expanded UI controls.
9+
- This application is designed and presented for people already familiar with UI-Utils. There will be no explanations or guide on how to use it in-game, you can instead find that [here](https://github.com/ui-utils/docs/blob/main/OverlayOverview.md).
10+
- If you are looking for a **1.21.11** version you can find that [here](https://github.com/cev-api/UI-Utils-CevAPI).
11+
12+
## Build
13+
14+
Build with Gradle (Java 25+):
15+
16+
```powershell
17+
./gradlew clean build
18+
```
19+
20+
Artifacts land in `build/libs/`.
21+
22+
## Getting Started
23+
24+
1. Install Fabric Loader and Fabric API for your Minecraft 26.1 installation.
25+
2. Drop the built jar from `build/libs/` into your `mods/` folder.
26+
3. Launch Minecraft. Open any container — the UI‑Utils toolbox appears on the left.
27+
28+
## Highlights
29+
30+
- Simple, always‑available in‑GUI toolbox for handled screens
31+
- Close GUI without sending a packet
32+
- De‑sync tricks (close packet only)
33+
- Send/Delay queue for UI packets, with flush on demand
34+
- Copy GUI title JSON
35+
- Command (and Plugin) Scanner
36+
- Enumerate server side commands that are typically unavailable to the player by sending specialised packets
37+
- Optionally elicit only 'unknown' commands. Scans via packets then compares via client commands, whichever isn't available to the user is shown.
38+
- Your command list probing won't appear in server side logs
39+
- Can also run each command, run specific commands via packets or enumerate via client side commands
40+
- Great replacement for when the UI-Utils plugin scanner fails
41+
- Packet fabrication helpers (ClickSlot, ButtonClick)
42+
- In-game popup that is repositionable.
43+
- Added extra tools from [FrannnnDev's fork](https://github.com/FrannnnDev/ui-utils-advanced/) of UI-Utils
44+
- Leave & send, Disconnect & send, Save/Load GUI, Clear Queue, Queue, Resync Inv, Disconnect, Spam +/-, Send One, Pop Last
45+
- Queue helper and counter
46+
- ```.uiutils``` commands
47+
- Named GUI slot maps
48+
- Plugin scanner
49+
- Advanced Packet Tool (APT)
50+
- Lets you manage packet behavior per packet type (S2C & C2S)
51+
- Supports 3 independent modes: Log, Deny and Delay
52+
- Modes can overlap (Log & Deny Packet A but also Log & Delay Packet B)
53+
- Toggles for enabling modes as well as cycling through packet edit list
54+
- Delay is tick based
55+
- Searchable dual-list UI with select all/none controls
56+
- Optional ```Show Unknown Packets``` feature to allow ```class_####``` packets
57+
- Inspired by [HelixCraft's Packet Logger](https://github.com/HelixCraft/Fabric-Packet-Logger)
58+
- Runs in an external desktop window for now (Swing)
59+
- Open from the UI‑Utils overlay or by keybind (configurable in Settings)
60+
- Expanded Settings screen
61+
- Tri‑state Slot Overlay: OFF / HOVER / ALWAYS
62+
- Unified HSV color picker with target selector:
63+
- Button background color
64+
- Button text color
65+
- Overlay number color
66+
- Packet HUD text color
67+
- Overlay alpha and XY offsets
68+
- Resource‑pack bypass/deny toggles
69+
- Keybinds: restore GUI, delay toggle and open Advanced Packet Tool
70+
- Disconnect method selector (used by UI‑Utils “Disconnect” buttons)
71+
- Includes QUIT, packet-based kick styles and lag styles
72+
- Includes TIMEOUT mode (KeepAlive wait + block + delayed action)
73+
- Packet HUD
74+
- In-game HUD rendering of packet flow.
75+
- Format:
76+
- `888 IN / 999 OUT`
77+
- ` 20 QUEUED` (only shown when queue > 0)
78+
- HUD color is configurable in Settings
79+
- Themed UI‑Utils buttons
80+
- Colored button renderer is used across UI‑Utils screens and injected buttons
81+
- Removes mixed vanilla/colored button look
82+
83+
#### Log Example
84+
```
85+
[12:52:54]: Fabricate ClickSlot: syncId=6, revision=1, slot=2, button=0, action=PICKUP, times=1, diffSlots=1, carriedBefore=<empty>, carriedAfter=class_10939[item=Reference{ResourceKey[minecraft:item / minecraft:oak_slab]=minecraft:oak_slab}, count=11, components=class_10936[addedComponents={}, removedComponents=[]]]
86+
[12:52:54]: Fabricate ClickSlot: menu.containerId=6, syncIdMatch=true, diffDetail=[2: minecraft:oak_slabx11 -> empty]
87+
[12:52:54]: UiUtilsConnectionMixin: attempting to send UI packet class_2813 (sendUiPackets=true, delayUiPackets=false)
88+
```
89+
90+
#### UI‑Utils Commands
91+
92+
Supported roots:
93+
- `.uiutils`
94+
- `uiutils`
95+
96+
Main commands:
97+
- `help`
98+
- `enable` / `disable`
99+
- `close`
100+
- `desync`
101+
- `apt` (aliases: `advancedpacketscanner`, `advancedpackettool`)
102+
- `chat <message>`
103+
- `screen <save|load|list|info> [slot]`
104+
- `plugins`
105+
- `commands`
106+
- `queue <list|clear|sendone|poplast|spam [times]>`
107+
- `packethud <on|off|toggle>`
108+
- `delay <on|off|toggle>`
109+
- `sendpackets <on|off|toggle>`
110+
- `disconnectmethod <list|current|METHOD>`
111+
- `timeout <seconds>`
112+
- `lagmethod <list|current|METHOD>`
113+
- `settings`
114+
115+
## Settings List
116+
117+
- Slot overlay mode: `OFF` / `HOVER` / `ALWAYS`
118+
- Packet HUD toggle
119+
- Log to chat toggle
120+
- Bypass resource-pack toggle
121+
- Force-deny resource-pack toggle
122+
- Disconnect method selector
123+
- Timeout seconds selector (for `TIMEOUT` disconnect mode)
124+
- Timeout lag method selector (for `TIMEOUT` disconnect mode)
125+
- Color target selector
126+
- Button background color
127+
- Button text color
128+
- Overlay number color
129+
- Packet HUD text color
130+
- HSV color picker for selected target
131+
- Selected color hex field (`#RRGGBB`)
132+
- Slot overlay alpha
133+
- Slot overlay X offset
134+
- Slot overlay Y offset
135+
- Fabricate overlay background alpha
136+
- Restore GUI key field
137+
- Packet tool key field
138+
- Delay toggle key field
139+
140+
## Notes on the Mojmap Migration
141+
142+
- Entire codebase uses Mojang mappings for clarity and forward‑compat.
143+
- Mixins target 26.1 RC client internals; packet types are discovered at runtime with a reflective catalog for resilience across dot‑releases.
144+
- APT’s UI is intentionally external for now to avoid churn in the in‑game widget APIs and keep the dual‑list UX snappy. May become internalised in the future.
145+
146+
## Credits
147+
148+
- Original concept: [UI‑Utils](https://github.com/cev-api/UI-Utils-CevAPI) ([MrBreakNFix](https://github.com/MrBreakNFix) and [contributors](https://github.com/cev-api/UI-Utils-CevAPI/graphs/contributors))
149+
- Modernization + new features: CevAPI
150+
- Advanced Packet Tool inspired by [HelixCraft's Packet Logger](https://github.com/HelixCraft/Fabric-Packet-Logger)
151+
- Extra UI-Utils options inspired by [FrannnnDev's fork](https://github.com/FrannnnDev/ui-utils-advanced/)
152+
- Published **with approval** from [MrBreakNFix](https://github.com/MrBreakNFix)
153+
154+
## License
155+
156+
This project is licensed under the GNU General Public License v3.0 or later (GPL-3.0-or-later). See [LICENSE](./LICENSE).
157+
158+
## Disclaimer
159+
160+
UI‑Utils is a debugging and testing toolkit. Be nice, follow server rules and local laws. You are responsible for how you use these tools.

0 commit comments

Comments
 (0)