1.0.2
Compatibility
Changes
XbowTimer Update
Rename and Cleanup
-
Renamed the project from TechTimer to XbowTimer
-
Updated package from
com.techtimertocom.xbowtimer -
Renamed core classes to match the new naming:
TechTimerClient→XbowTimerClientTechTimerConfig→XbowTimerConfigTechTimerModMenu→XbowTimerModMenuTechConfigScreen→XbowConfigScreenTechColorPickerScreen→XbowColorPickerScreenTechHudPositionScreen→XbowHudPositionScreen
-
Updated mod ID from
techtimertoxbow-timer -
Renamed mixin config to
xbow-timer.mixins.json -
Updated config files to
xbowtimer*.json -
Cleaned up all Gradle files
New Feature: Anchor Tracker
Tracks respawn anchor usage in real time.
- Starts tracking when an anchor is placed
- Detects glowstone charging within 2 blocks
- Ends tracking when an explosion occurs within 8 blocks
- Displays progress as
X/60 [A]on the HUD - Positioned 12px below the crossbow timer
- Resets automatically on new anchor placement
Components
AnchorRecordstores frames, tick frames, timestamp, server, and charge offsetAnchorHistorysaves data toxbowtimer-anchor-history.jsonusing safe writesAnchorTrackerhandles detection, tracking, and HUD output
Mixins
SendPacketMixindetects anchor placement and glowstone useExplosionPacketMixinsends explosion positions to the tracker
Client
- Integrated into tick loop
- Resets on disconnect
- Renders on HUD
Bug Fix: Screen Blur
- Fixed background blur appearing behind config and history screens
- Proper
applyBluroverrides added for each Minecraft version
Compatibility and Build Fixes
- Updated explosion packet handling to use
packet.center().x/y/zwhere required - Kept support for older versions that still use
getX/Y/Z
Version-specific fixes
-
1.21.1 uses legacy packet methods with a dedicated mixin
-
1.21.8 fixes:
- Uses string category instead of
KeyBinding.Category - UI screens use older
mouseClicked(double, double, int)signature
- Uses string category instead of
-
Fixed incorrect source usage for 1.21.8 by adding proper overrides
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:tceeKWCU:IbZPj3Og"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:tceeKWCU:IbZPj3Og"
}

