▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/TechTimer (Previously known as XbowTimer)
TechTimer (Previously known as XbowTimer)

TechTimer (Previously known as XbowTimer)

Counts the number of frames your techs are.

Оцените первым
556
4
Все версииOBSOLETE 1.0.1

OBSOLETE 1.0.1

Beta13.04.2026

Список изменений

XbowTimerTracker

Some variables were shared between threads but not marked correctly. This could cause outdated values to be read or updates to be missed. These fields now use proper thread-safe handling. The network thread was directly calling onExplosion(). Caused for file saves and history updates to run off the main game thread. This could lead to crashes or slow packet handling. Some fallback flags were not marked as volatile. This could cause inconsistent behavior across threads. They are now fixed. setProjectile() did not check if tracking was active. This meant throwing items before placing rails could overwrite the projectile type for the next shot. A guard has been added. Error handling used e.getMessage() instead of just e. Using e is better because it includes more useful information automatically. There was a check in renderHud() that returned early if text was empty, but the text is never empty. That code has been removed. The tracker did not reset when disconnecting from a server. This caused old state like timestamps and positions to carry over. A reset() method was added and is now called on disconnect. There was a null check for stats that was never needed because stats is always initialized. This is noted as something to clean up later.

XbowHistory

SimpleDateFormat was used for timestamps, but it is not thread-safe. It has been replaced with DateTimeFormatter. computeStats() used a strict less-than check, while the UI and session stats used less-than-or-equal. This caused inconsistent results. All comparisons now match. There was no reusable method for calculating the best streak. A proper method has now been added to avoid repeating logic.

XbowTimerConfig

Saving the config file was not safe. If the game crashed during saving, the file could get corrupted. It now writes to a temporary file first, then safely replaces the original. Loaded values were not validated. Invalid values could break the HUD or logic. A clamp() function now ensures all values stay within valid ranges.

XbowStats and XbowHistory persistence

Stats and history files were saved the same unsafe way as the config. Both now use the safe write method with a temporary file.

XbowConfigScreen (mc12111)

The filtered list of records was cached, but it did not update when filters changed. Now the cache resets and refreshes whenever a filter is changed. Stats and graph calculations were running every frame, which is inefficient. These are now cached and only recomputed when needed.

XbowConfigScreen (old API)

The frame threshold slider used the wrong scale. It has been corrected. There was a duplicate method for com✨g streaks. It has been removed and replaced with a shared method. Filtering was recalculated every frame, which hurt performance. A caching system has been added. Filter changes did not refresh the cache. This is now fixed. Stats and graph calculations were also running every frame. This has been optimized like the newer version. There was no button to clear history. This has now been added.

XbowHudPositionScreen

The scale slider could start with invalid values if the config was corrupted. Values are now clamped to a valid range.

XbowColorPickerScreen

The code used java.awt.Color, which is not available in the Minecraft environment. It has been replaced with custom color conversion methods.

XbowChallenge and XbowChallenges

The streak challenge used a configurable value at runtime. If the config changed, the challenge condition also changed, which was inconsistent. It now uses a fixed value defined at creation.

Language and Resources

Some keybinding translation keys did not match their actual IDs. This caused them to show as untranslated in the controls menu. The keys are now fixed.

Build configuration

A mixin file was referenced but did not exist. That reference has been removed. Some default source directories were added manually even though Gradle already includes them. This caused duplicate file errors. The duplicates have been removed. One module was missing its version-specific source directory, causing compile errors. This has been fixed. Another module pointed to the wrong API source set. It has been corrected to use the right one.

Dead code removed

An empty source folder was deleted. An old history screen file was removed because it was replaced by a new UI. A leftover root source folder from before a refactor was deleted. It contained outdated files that interfered with builds.

Файлы

xbow-timer-1.21.11-1.0.0.jar(1.72 MiB)
Основной
Скачать

Метаданные

Канал релиза

Beta

Номер версии

1.0.1

Загрузчики

Fabric

Версии игры

1.21.11–26.1.2

Загрузок

19

Дата публикации

13.04.2026

Загрузил

ID версии

Главная