chore(history): squash 59 commit(s) from 2026-09-23

- refactor(hud/weather/render): Scoreboard 931→240 + Rain 903→159 + UiMeshGeometry 956→99 (8.5.2)
- refactor(chams): Chams 985 → 129 + 4×≤195 (8.5.2)
- refactor(module): Module 1031 → 139 + 4×≤134 (8.5.2)
- refactor(tooltips): BetterTooltips 960 → 181 + 4×≤199 (8.5.2)
- refactor(clickgui): ClickGuiPickerState 970→166 + ModulesMenuScreen 966→145 (8.5.2)
- refactor(clickgui): CombatProtocolHeuristicsEditorState 932→79 + 4×≤192 (8.5.2)
- refactor(hud): CompactHudStatModel 894 → 125 + 4×≤175 (8.5.2)
- refactor(iris): ShaderPatchCompiler 843→66 + 4×≤174 (8.5.2)
- refactor(tab): CustomTabList 834→136 + 4×≤166 (8.5.2)
- refactor(relations): OnlineRelationPlayerPickerComponent 837→74 + 4×≤192 (8.5.2)
- refactor(hits): HitEffect 770→120 + 4×≤176 (8.5.2)
- refactor(predict): Predictions 815→150 + 4×≤195 (8.5.2)
- refactor(config): ConfigProfilesComponent 799→125 + 4×≤195 (8.5.2)
- refactor(sim): PlayerMovementSimulation 757→157 + 4×≤194 (8.5.2)
- refactor(predict): ProjectilePuncher 747→104 + 3×≤134 (8.5.2)
- refactor(crosshair): Crosshair 743→143 + 4×≤167 (8.5.2)
- refactor(mediaplayer): MediaPlayer 743→174 + 4×≤196 (8.5.2)
- refactor(hud): Itemizer 699→193 + Cooldowns 707→151 (8.5.2)
- refactor(hud): Potions 617→176 + 4×≤166 (8.5.2)
- refactor(hud): Admins 702→118 + 4×≤138 (8.5.2)
- refactor(hud): Keybinds 611→157 + 4×≤160 (8.5.2)
- refactor(hud): ModuleList 499→181 + 3×≤150 (8.5.2)
- refactor(hud): Radar 392→161 + 2×≤124 (8.5.2)
- refactor(hud): Fps 309→168 + 3×≤107 (8.5.2)
- refactor(hud): Memory 304→151 + 3×≤144 (8.5.2)
- refactor(hud): Tps 339→154 + 3×≤143 (8.5.2)
- refactor(hud): Ping 309→145 + 3×≤125 (8.5.2)
- refactor(hud): SpeedBps 334→156 + 3×≤142 (8.5.2)
- refactor(hud): GameTime 314→150 + 3×≤127 (8.5.2)
- refactor(hud): SystemTime 300→136 + 3×≤130 (8.5.2)
- refactor(hud): Coordinates 337→174 + 2×≤172 (8.5.2)
- refactor(hud): Armor 324→162 + 2×≤148 (8.5.2)
- refactor(hud): Inventory 476→153 + 3×≤181 (8.5.2)
- docs(todo): обновлён 8.5.2 — отмечены готовые гиганты (BetterButtons/InventorySwap/Svg/Темы/WorldParticles/Module/Chams и хвост)
- docs(api): папка combatant-client-26.2/docs + addons.md (API можно ломать при рефакторе)
- refactor(visuals): BlockHighlight 692→271 + 4×≤200 (8.5.2)
- refactor(mixins): GameRendererMixin 830→344 (хуки) + 4 хелпера (8.5.2)
- refactor(visuals): WorldParticles 821→260 + 6×≤200, режимы добиты (8.5.2)
- docs(todo): 8.5.2 — WorldParticles/GameRendererMixin/BlockHighlight отмечены ГОТОВО
- refactor(render): MeshBuilder 738→447 (фасад write-API) + 3 хелпера, FrameStats снесён (8.5.2)
- docs(todo): Фаза 10 — дизайн платформы (аккаунты/конфиги/аватарки), backlog RPC-чата
- docs(todo): Подсистема 3 — Аддоны 2.0 (скрипты/версии) + витрина аддонов + админка
- docs(todo): Подсистема 2 — RPC-чат/друзья/виджеты-телеметрия + рейт-лимиты, доп. правки Подсистемы 3
- chore: переименование combatant-client-26.2 -> mod, добавлены backend/ и frontend/
- docs(backend): implementation plan for accounts-service (Подсистема 1, часть 1)
- chore: пересоздать backend/frontend через cargo new и bun create vite + tailwind; убрать таблицу компонентов из TODO.md
- docs(backend): edition 2024 в плане вместо 2021
- chore: обновить версии до реально актуальных (проверено компиляцией)
- docs: правила платформы (лимит 250 строк, антипаттерны backend/frontend по итогам ресёрча) + frontend/ARCHITECTURE.md
- docs: добавить правило ≤4 файла на папку в правила платформы (backend/frontend)
- docs: commit messages in English from now on
- chore: gitignore .superpowers/ scratch directory
- docs: commit messages in English from now on (mod)
- feat(backend): scaffold accounts-service with health check
- chore(backend): remove target/ build artifacts from git, add gitignore
- chore: track docs/ in git (was accidentally gitignored, never committed)
- chore(backend): convert to Cargo workspace, plan full microservice layout
- feat(backend): accounts/avatars/device_links schema + migration
- feat(backend): argon2id password hashing
This commit is contained in:
loki5512344 2026-09-23 22:38:08 +02:00
parent ec10395511
commit 9d08fa910a
2239 changed files with 35265 additions and 28110 deletions

View file

@ -0,0 +1,51 @@
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
"https://checkstyle.org/dtds/configuration_1_3.dtd">
<module name="Checker">
<property name="severity" value="warning"/>
<property name="fileExtensions" value="java"/>
<module name="FileLength">
<property name="max" value="200"/>
<message key="maxLen.file" value="Файл {1} строк > 200 (правило проекта, фасад-исключение помечай @SuppressWarnings)"/>
</module>
<module name="LineLength">
<property name="max" value="140"/>
<property name="ignorePattern" value="^(import|package).*"/>
</module>
<module name="TreeWalker">
<!-- Google base + проектные -->
<module name="AvoidStarImport">
<property name="severity" value="warning"/>
</module>
<module name="MagicNumber">
<property name="ignoreNumbers" value="-1, 0, 1, 2"/>
<property name="ignoreHashCodeMethod" value="true"/>
<property name="ignoreAnnotation" value="true"/>
</module>
<module name="VisibilityModifier">
<property name="packageAllowed" value="true"/>
<property name="protectedAllowed" value="true"/>
</module>
<module name="MethodLength">
<property name="max" value="40"/>
</module>
<module name="AvoidInlineConditionals"/>
<module name="EmptyBlock">
<property name="option" value="statement"/>
</module>
<module name="NeedBraces"/>
<module name="LeftCurly"/>
<module name="RightCurly"/>
<module name="WhitespaceAround"/>
<module name="NoWhitespaceBefore"/>
<module name="GenericWhitespace"/>
<module name="IllegalImport">
<property name="illegalPkgs" value="java.awt, javax.swing"/>
</module>
<!-- ≤4 файла на папку Checkstyle не умеет — проверяется скриптом tools/check_folders.sh -->
</module>
</module>

View file

@ -0,0 +1,28 @@
{
"enabled": true,
"layout": {
"pos": [
16.0,
212.0
],
"space": "logical",
"parent": "keybinds",
"side": "RIGHT",
"pox": 0.0,
"poy": 0.0
},
"admins_scale": 1.0,
"admins_layout": "Split Header",
"admins_color_mode": "Theme",
"admins_bg": "#EB111318",
"admins_bg_secondary": "#F7161616",
"admins_stroke": "#5A5A5A",
"admins_bg_alpha": 131.0,
"admins_text": "#FFFFFF",
"admins_muted": "#A5A5A5",
"admins_bg_effect": "Blur",
"admins_blur_alpha": 255.0,
"admins_header_icon_pulse": true,
"admins_header_icon_pulse_speed": 18.0,
"admins_header_icon_pulse_intensity": 100.0
}

View file

@ -0,0 +1,17 @@
{
"enabled": false,
"layout": {
"pos": [
1616.315,
1003.6977
],
"space": "logical"
},
"armor_scale": 3.68,
"armor_layout": "Horizontal",
"armor_reverse": false,
"armor_state_mode": "Text",
"armor_state_bar_threshold": 70.0,
"armor_state_threshold": 70.0,
"armor_state_color_threshold": 70.0
}

View file

@ -0,0 +1,27 @@
{
"enabled": true,
"layout": {
"pos": [
16.0,
485.12
],
"space": "logical"
},
"width_ratio": 0.54,
"font_scale": 1.36,
"lines": 12.0,
"fade_seconds": 14.98,
"liquid_glass_alpha": 230.0,
"hide_vanilla": true,
"history_enabled": true,
"history_limit": 32000.0,
"timestamps_enabled": true,
"timestamp_color": "#C6D2CD",
"timestamp_toggles": {
"with_seconds": false,
"with_brackets": true,
"active_only": false,
"hover_unix": false,
"hover_date": true
}
}

View file

@ -0,0 +1,3 @@
{
"enabled": false
}

View file

@ -0,0 +1,18 @@
{
"enabled": true,
"fps_scale": 2.37,
"fps_color_mode": "Theme",
"fps_icon_color": "#FFFFFF",
"fps_value_color": "#FFFFFF",
"fps_meta_color": "#9B9B9B",
"fps_bg_effect": "Blur",
"fps_bg": "#F7343434",
"fps_bg_secondary": "#F7161616",
"fps_stroke": "#5A5A5A",
"fps_bg_alpha": 133.0,
"fps_blur_alpha": 255.0,
"fps_label_effect": "Flow",
"fps_label_effect_speed": 18.0,
"fps_digit_animation": false,
"fps_digit_poll_ms": 495.0
}

View file

@ -0,0 +1,16 @@
{
"enabled": false,
"game_time_weather": true,
"game_time_scale": 2.37,
"game_time_color_mode": "Theme",
"game_time_icon_color": "#FFFFFF",
"game_time_value_color": "#FFFFFF",
"game_time_bg_effect": "None",
"game_time_bg": "#EB111318",
"game_time_bg_secondary": "#F7161616",
"game_time_stroke": "#5A5A5A",
"game_time_bg_alpha": 235.0,
"game_time_blur_alpha": 140.0,
"game_time_icon_effect": "Mix",
"game_time_icon_effect_speed": 18.0
}

View file

@ -0,0 +1,9 @@
{
"enabled": true,
"duration_ms": 2000.0,
"fade_ms": 250.0,
"scale": 1.35,
"sound": true,
"sound_mode": "2",
"sound_volume": 0.47
}

View file

@ -0,0 +1,25 @@
{
"enabled": true,
"layout": {
"pos": [
1255.352,
658.36005
],
"space": "logical"
},
"toggle_bind": "I",
"inventory_scale": 1.32,
"inventory_layout": "Unified Divider",
"inventory_color_mode": "Theme",
"inventory_bg": "#F7343434",
"inventory_bg_secondary": "#F7161616",
"inventory_stroke": "#5A5A5A",
"inventory_bg_alpha": 194.0,
"inventory_text": "#FFFFFF",
"inventory_muted": "#A5A5A5",
"inventory_bg_effect": "Blur",
"inventory_blur_alpha": 255.0,
"inventory_header_icon_pulse": true,
"inventory_header_icon_pulse_speed": 15.0,
"inventory_header_icon_pulse_intensity": 100.0
}

View file

@ -0,0 +1,22 @@
{
"enabled": true,
"layout": {
"pos": [
-16.0,
48.0
],
"space": "logical",
"ax": "CENTER",
"ay": "CENTER"
},
"itemizer_scale": 1.0,
"itemizer_display_mode": "icons",
"itemizer_direction": "horizontal",
"itemizer_duration": 1.15,
"itemizer_max_entries": 3.0,
"itemizer_auto_eat": true,
"itemizer_auto_totem": true,
"itemizer_elytra_swap": true,
"itemizer_blur": true,
"itemizer_bg_alpha": 168.0
}

View file

@ -0,0 +1,33 @@
{
"enabled": true,
"layout": {
"pos": [
456.6228,
248.0
],
"space": "logical",
"parent": "potions",
"side": "RIGHT",
"pox": 0.0,
"poy": 0.0
},
"keybinds_scale": 1.0,
"keybinds_layout": "Unified Divider",
"keybinds_color_mode": "Theme",
"keybinds_bg": "#F7343434",
"keybinds_bg_secondary": "#F7161616",
"keybinds_stroke": "#5A5A5A",
"keybinds_bg_alpha": 225.0,
"keybinds_text": "#FFFFFF",
"keybinds_muted": "#A5A5A5",
"keybinds_bg_effect": "None",
"keybinds_blur_alpha": 140.0,
"keybinds_local_actions": true,
"keybinds_local_action_modes": {
"Press": true,
"Hold": true
},
"keybinds_header_icon_pulse": true,
"keybinds_header_icon_pulse_speed": 18.0,
"keybinds_header_icon_pulse_intensity": 100.0
}

View file

@ -0,0 +1,19 @@
{
"enabled": false,
"layout": {
"pos": [
12.0,
82.30222
],
"space": "logical"
},
"media_player_scale": 1.51,
"media_player_sync_theme": true,
"media_player_bg": "#60000000",
"media_player_bg_alpha": 124.0,
"media_player_accent": "#FF2F2F",
"media_player_text": "#FFFFFF",
"media_player_bg_effect": "None",
"media_player_blur_alpha": 255.0,
"media_player_gradient": true
}

View file

@ -0,0 +1,17 @@
{
"enabled": true,
"memory_scale": 2.37,
"memory_color_mode": "Theme",
"memory_icon_color": "#FFFFFF",
"memory_value_color": "#FFFFFF",
"memory_meta_color": "#9B9B9B",
"memory_extra_color": "#BEBEBE",
"memory_bg_effect": "Blur",
"memory_bg": "#F7343434",
"memory_bg_secondary": "#F7161616",
"memory_stroke": "#5A5A5A",
"memory_bg_alpha": 135.0,
"memory_blur_alpha": 255.0,
"memory_label_effect": "None",
"memory_label_effect_speed": 18.0
}

View file

@ -0,0 +1,16 @@
{
"enabled": false,
"module_list_scale": 3.67,
"module_list_color_mode": "Custom",
"module_list_bg_effect": "Blur",
"module_list_bg_alpha": 226.0,
"module_list_blur_alpha": 255.0,
"module_list_bg": "#FF444242",
"module_list_bg_secondary": "#22000000",
"module_list_text": "RNB#E87171",
"module_list_text_secondary": "#93118C",
"module_list_text_gradient_mode": "rainbow",
"module_list_text_gradient_speed": 18.0,
"module_list_text_effect": "None",
"module_list_text_effect_speed": 30.0
}

View file

@ -0,0 +1,16 @@
{
"enabled": false,
"ping_scale": 2.58,
"ping_color_mode": "Theme",
"ping_icon_color": "#FFFFFF",
"ping_value_color": "#FFFFFF",
"ping_meta_color": "#9B9B9B",
"ping_bg_effect": "None",
"ping_bg": "#F7343434",
"ping_bg_secondary": "#F7161616",
"ping_stroke": "#5A5A5A",
"ping_bg_alpha": 225.0,
"ping_blur_alpha": 140.0,
"ping_label_effect": "None",
"ping_label_effect_speed": 18.0
}

View file

@ -0,0 +1,24 @@
{
"enabled": true,
"layout": {
"pos": [
31.729004,
182.0
],
"space": "logical"
},
"potions_scale": 1.05,
"potions_layout": "Unified Divider",
"potions_color_mode": "Theme",
"potions_bg": "#EB784F4F",
"potions_bg_secondary": "#F7161616",
"potions_stroke": "#5A5A5A",
"potions_bg_alpha": 200.0,
"potions_text": "#FFFFFF",
"potions_muted": "#A5A5A5",
"potions_bg_effect": "Blur",
"potions_blur_alpha": 159.0,
"potions_header_icon_pulse": true,
"potions_header_icon_pulse_speed": 18.0,
"potions_header_icon_pulse_intensity": 100.0
}

View file

@ -0,0 +1,24 @@
{
"enabled": false,
"layout": {
"pos": [
1666.0,
17.915222
],
"space": "logical"
},
"radar_mode": "Rect",
"radar_color_mode": "Sync",
"radar_size": 217.27,
"radar_bg_color": "#CC101010",
"radar_bg_alpha": 109.0,
"radar_text_color": "#FFFFFF",
"radar_field_1": "Name",
"radar_field_2": "Hp",
"radar_field_3": "Ping",
"radar_field_4": "None",
"radar_field_5": "None",
"radar_blur": true,
"radar_blur_alpha": 255.0,
"radar_gradient": false
}

View file

@ -0,0 +1,31 @@
{
"enabled": false,
"layout": {
"pos": [
1721.69,
158.0
],
"space": "logical"
},
"toggle_bind": "Э",
"scoreboard_scale": 1.93,
"scoreboard_color_mode": "Theme",
"scoreboard_bg_effect": "Blur",
"scoreboard_bg_alpha": 182.0,
"scoreboard_blur_alpha": 255.0,
"scoreboard_bg": "#820A0A0A",
"scoreboard_bg_secondary": "#B8141414",
"scoreboard_stroke": "#4A4A4A",
"scoreboard_title_color": "#FFCC00",
"scoreboard_label_color": "#FFFFFF",
"scoreboard_value_color": "#FF4A4A",
"scoreboard_footer_color": "#FFD44A",
"scoreboard_text_effect": "Stripe",
"scoreboard_text_effect_speed": 18.0,
"scoreboard_text_effect_sections": {
"header": true,
"labels": false,
"values": false,
"footer": false
}
}

View file

@ -0,0 +1,18 @@
{
"enabled": true,
"speed_bps_bps": true,
"speed_bps_average": false,
"speed_bps_scale": 2.37,
"speed_bps_color_mode": "Theme",
"speed_bps_icon_color": "#FFFFFF",
"speed_bps_value_color": "#FFFFFF",
"speed_bps_meta_color": "#9B9B9B",
"speed_bps_bg_effect": "Blur",
"speed_bps_bg": "#F7343434",
"speed_bps_bg_secondary": "#F7161616",
"speed_bps_stroke": "#5A5A5A",
"speed_bps_bg_alpha": 135.0,
"speed_bps_blur_alpha": 255.0,
"speed_bps_label_effect": "Mix",
"speed_bps_label_effect_speed": 60.0
}

View file

@ -0,0 +1,16 @@
{
"enabled": false,
"system_time_seconds": false,
"system_time_scale": 2.37,
"system_time_color_mode": "Theme",
"system_time_icon_color": "#FFFFFF",
"system_time_value_color": "#FFFFFF",
"system_time_bg_effect": "Blur",
"system_time_bg": "#EB111318",
"system_time_bg_secondary": "#F7161616",
"system_time_stroke": "#5A5A5A",
"system_time_bg_alpha": 235.0,
"system_time_blur_alpha": 140.0,
"system_time_icon_effect": "None",
"system_time_icon_effect_speed": 18.0
}

View file

@ -0,0 +1,41 @@
{
"enabled": true,
"layout": {
"pos": [
7.6799927,
721.12
],
"space": "logical",
"ax": "CENTER"
},
"target_scale": 3.28,
"target_hold_ms": 1000.0,
"totem_pop_counter": true,
"totem_pop_reset_seconds": 300.0,
"target_totem_pop_text_color": "RNB#FFFFFF",
"target_marquee": true,
"target_players_only": false,
"target_effects_mode": "Off",
"target_effects_self": true,
"target_equipment_mode": "Off",
"target_hp_mode": "Arc",
"target_color_mode": "Theme",
"target_bg": "#F7343434",
"target_bg_secondary": "#F7161616",
"target_stroke": "#5A5A5A",
"target_bg_alpha": 162.0,
"target_text": "#FFFFFF",
"target_text_secondary": "#D7D7D7",
"target_bar_bg": "#1E1E1E",
"target_health_start": "#F3F3F3",
"target_health_end": "#9E9E9E",
"target_trail": "#373737",
"target_absorption_start": "#FFC300",
"target_absorption_end": "#FFD96B",
"target_hit_outer": "#FF5A5A",
"target_hit_inner": "#FF7373",
"target_bg_effect": "Glass",
"target_blur_alpha": 255.0,
"target_hit_anim": true,
"target_hit_pulse": 1.0
}

View file

@ -0,0 +1,21 @@
{
"enabled": false,
"layout": {
"pos": [
1242.2065,
889.5111
],
"space": "logical"
},
"scale": 1.0,
"always_show": true,
"sync_theme": true,
"blur": false,
"blur_alpha": 140.0,
"blur_bg_alpha": 128.0,
"gradient": true,
"bg": "#B012151B",
"bar_start": "#5CC8E7",
"bar_end": "#55FFFF",
"text_color": "#FFFFFF"
}

View file

@ -0,0 +1,18 @@
{
"enabled": false,
"tps_extra": false,
"tps_scale": 2.37,
"tps_color_mode": "Theme",
"tps_icon_color": "#FFFFFF",
"tps_value_color": "#FFFFFF",
"tps_meta_color": "#9B9B9B",
"tps_extra_color": "#BEBEBE",
"tps_bg_effect": "Blur",
"tps_bg": "#F7343434",
"tps_bg_secondary": "#F7161616",
"tps_stroke": "#5A5A5A",
"tps_bg_alpha": 133.0,
"tps_blur_alpha": 255.0,
"tps_label_effect": "None",
"tps_label_effect_speed": 18.0
}

View file

@ -0,0 +1,29 @@
{
"enabled": false,
"layout": {
"pos": [
1302.04,
330.69208
],
"space": "logical"
},
"triangulator_scale": 1.68,
"triangulator_color_mode": "Theme",
"triangulator_bg": "#F7343434",
"triangulator_bg_secondary": "#F7161616",
"triangulator_stroke": "#5A5A5A",
"triangulator_bg_alpha": 225.0,
"triangulator_text": "#FFFFFF",
"triangulator_muted": "#A5A5A5",
"triangulator_bg_effect": "Blur",
"triangulator_blur_alpha": 140.0,
"triangulator_icon_effect": "None",
"triangulator_icon_effect_speed": 18.0,
"triangulator_min_observation_ticks": 6.0,
"triangulator_stability_threshold": 0.99,
"triangulator_min_pair_angle": 6.0,
"triangulator_auto_reset": true,
"triangulator_auto_reset_distance": 96.0,
"triangulator_max_cached_throws": 6.0,
"triangulator_cache_lifetime": 180.0
}

View file

@ -0,0 +1,13 @@
{
"enabled": true,
"watermark_scale": 1.0,
"watermark_color_mode": "Theme",
"watermark_show_fps": true,
"watermark_show_ping": true,
"watermark_show_server": true,
"watermark_show_user": false,
"watermark_show_dimensions": false,
"watermark_title_color": "#5CC8E7",
"watermark_meta_color": "#9B9B9B",
"watermark_bg_color": "#1A1D23"
}

View file

@ -0,0 +1,18 @@
{
"enabled": true,
"xyz_nether": "On",
"xyz_scale": 2.37,
"xyz_color_mode": "Theme",
"xyz_icon_color": "#FFFFFF",
"xyz_label_color": "#9B9B9B",
"xyz_value_color": "#FFFFFF",
"xyz_extra_color": "#BEBEBE",
"xyz_bg_effect": "Blur",
"xyz_bg": "#F7343434",
"xyz_bg_secondary": "#F7161616",
"xyz_stroke": "#5A5A5A",
"xyz_bg_alpha": 184.0,
"xyz_blur_alpha": 255.0,
"xyz_label_effect": "Flow",
"xyz_label_effect_speed": 18.0
}

View file

@ -0,0 +1,11 @@
{
"enabled": true,
"dynamic_island_sync_theme": true,
"dynamic_island_theme_alpha": 200.0,
"dynamic_island_blur": false,
"dynamic_island_blur_alpha": 120.0,
"dynamic_island_bg": "#E614171D",
"dynamic_island_accent": "#6E8DFF",
"dynamic_island_text": "#F5F7FA",
"dynamic_island_muted": "#A9B1BC"
}

View file

@ -0,0 +1,10 @@
{
"enabled": true,
"reach_scale": 1.0,
"reach_keep_ms": 2500.0,
"reach_sync_theme": true,
"reach_show_max": true,
"reach_highlight_overreach": true,
"reach_value_color": "#5CC8E7",
"reach_bg_color": "#1A1D23"
}

View file

@ -0,0 +1,7 @@
{
"enabled": true,
"swap_scale": 0.24,
"swap_offset_y": 66.6,
"swap_text_effect": "Mix",
"swap_text_effect_speed": 18.0
}

View file

@ -0,0 +1,10 @@
{
"enabled": true,
"tab_list_max_width": 1680.0,
"tab_list_sync_theme": true,
"tab_list_theme_alpha": 225.0,
"tab_list_bg": "#E50B1018",
"tab_list_accent": "#6E8DFF",
"tab_list_text": "#F4F7FB",
"tab_list_muted": "#9AA5B5"
}

View file

@ -0,0 +1,27 @@
{
"enabled": true,
"xp_bar": true,
"xp_bar_show_level": true,
"bar_mode": "level",
"bar_color_mode": "Theme",
"custom_bg_color": "#88151515",
"custom_fill_color": "#CC4CB2FF",
"custom_fill_gradient_color": "#CC76F0FF",
"custom_text_color": "#FFA0E5FF",
"locator_labels": true,
"locator_label_mode": "center",
"locator_label_angle": 6.0,
"locator_label_distance": true,
"locator_search_enabled": true,
"locator_search_list": [
"imhorny"
],
"locator_dimmed_color": "#777777",
"locator_search_color": "#FFAA00",
"locator_dimmed_scale_only": true,
"locator_map_filter_enabled": false,
"locator_map_server": "",
"locator_map_url": "example",
"locator_target_toggle": "NONE",
"locator_bar_toggle": "U"
}

View file

@ -0,0 +1,25 @@
{
"enabled": true,
"style": "Default",
"gradient_base_color": "#FF2F2929",
"gradient_color": "#FF902F2F",
"gradient_angle": 74.25,
"gradient_intensity": 0.6,
"custom_bg": "#FF1B1B1B",
"custom_bg_hover": "#FF2A2A2A",
"custom_bg_disabled": "#FF141414",
"custom_stroke": "#FF9B5DB8",
"custom_stroke_hover": "#FFA710B2",
"custom_stroke_disabled": "#FF2A2A2A",
"custom_text": "#FFECECEC",
"custom_text_disabled": "#FF7A7A7A",
"custom_radius": 6.0,
"custom_softness": 1.2,
"custom_stroke_thickness": 0.7,
"custom_gradient": true,
"custom_gradient_color": "#73521BA7",
"custom_gradient_angle": 90.0,
"custom_gradient_intensity": 0.5,
"custom_text_scale": 1.0,
"custom_text_pad_x": 6.0
}

View file

@ -0,0 +1,8 @@
{
"enabled": true,
"health_alpha": 255.0,
"health_bar_style": "TargetHud",
"custom_bar_radius": 5.0,
"custom_text_scale": 0.24,
"custom_text_padding": 3.0
}

View file

@ -0,0 +1,14 @@
{
"enabled": true,
"offhand_mode": "merged",
"hotbar_color_mode": "Custom",
"bg_color": "#7A191414",
"hotbar_bg_alpha": 167.0,
"custom_select_color": false,
"select_color": "#2F6277",
"custom_divider_color": false,
"divider_color": "#C13434",
"accent_alpha": 255.0,
"bg_effect": "Glass",
"blur_alpha": 255.0
}

View file

@ -0,0 +1,22 @@
{
"enabled": true,
"item_tooltip": true,
"shulker_preview": true,
"item_info_colorize": true,
"tooltip_font": "Iosevka",
"tooltip_text_size": 1.0,
"top_enchant_ignore": [
"minecraft:binding_curse",
"minecraft:vanishing_curse",
"minecraft:mending",
"minecraft:infinity",
"minecraft:silk_touch",
"minecraft:aqua_affinity",
"minecraft:flame",
"minecraft:channeling",
"minecraft:multishot",
"minecraft:unbreaking"
],
"shulker_slot_size": 18.0,
"shulker_preview_hold": "LEFT_SHIFT"
}

View file

@ -0,0 +1,12 @@
{
"enabled": true,
"watermark_scale": 1.0,
"watermark_sync_theme": true,
"watermark_show_version": true,
"watermark_show_user": false,
"watermark_show_fps": true,
"watermark_show_ping": true,
"watermark_title_color": "#5CC8E7",
"watermark_meta_color": "#9B9B9B",
"watermark_bg_color": "#1A1D23"
}

View file

@ -0,0 +1,30 @@
{
'debug': 'off',
'forcePvp': false,
'menuBg': 'off',
'menuClockShowSeconds': false,
'menuBgUseTheme': false,
'msaa3d': 'off',
'clickGuiModulesHints': true,
'clickGuiHudEditorHints': true,
'inventorySwapPolicy': 'none',
'inventorySwapScope': 'full',
'inventorySwapVisibility': 'silent',
'inventorySwapRestore': true,
'inventorySwapPreferHotbar': true,
'inventorySwapLegitWaitTicks': 2.0,
'inventorySwapStrictInventoryWaitTicks': 1.0,
'inventorySwapStrictMovementLockTicks': 2.0,
'disableNarrator': true,
'backdoorProtection': true,
'backdoorTranslationFilter': true,
'backdoorKeybindFilter': true,
'backdoorLocalHttpGuard': true,
'backdoorPackCacheIsolation': true,
'backdoorAllowLocalHttpWhenServerLocal': true,
'backdoorAllowedTranslationPacks': [
'vanilla',
],
'backdoorAllowedKeybinds': [
],
}

View file

@ -0,0 +1,63 @@
<?xml version="1.0"?>
<ruleset name="LoVisual"
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">
<description>LoVisual — bestpractices/errorprone/performance/security + проектные правила 200/4</description>
<!-- Базовые категории PMD 7.27.0 -->
<rule ref="category/java/bestpractices.xml"/>
<rule ref="category/java/errorprone.xml"/>
<rule ref="category/java/performance.xml"/>
<rule ref="category/java/security.xml"/>
<!-- Файл ≤200 строк: через ExcessiveClassLength (класс ≈ файл) -->
<rule ref="category/java/design.xml/ExcessiveClassLength">
<properties>
<property name="minimum" value="200"/>
</properties>
</rule>
<!-- Кастом: System.currentTimeMillis → GameClock.millis() -->
<rule name="SystemCurrentTimeMillisUsage"
language="java"
message="Используй GameClock.millis() вместо System.currentTimeMillis() в модулях"
class="net.sourceforge.pmd.lang.rule.XPathRule">
<description>Модули должны использовать игровое время GameClock.millis(), не стенное.</description>
<priority>2</priority>
<properties>
<property name="xpath">
<value><![CDATA[
//PrimaryExpression[PrimaryPrefix/Name[@Image='System.currentTimeMillis']]
]]></value>
</property>
</properties>
</rule>
<!-- Кастом: static Minecraft в полях -->
<rule name="StaticMinecraftField"
language="java"
message="Не храни static Minecraft в поле — только локально Minecraft.getInstance()"
class="net.sourceforge.pmd.lang.rule.XPathRule">
<description>Никакого static final Minecraft в полях (правило проекта).</description>
<priority>2</priority>
<properties>
<property name="xpath">
<value><![CDATA[
//FieldDeclaration[@Static='true'][.//Type//Name[@Image='Minecraft']]
]]></value>
</property>
</properties>
</rule>
<!-- Пустые блоки / пустышки -->
<rule ref="category/java/codestyle.xml/EmptyCatchBlock"/>
<rule ref="category/java/codestyle.xml/EmptyIfStmt"/>
<rule ref="category/java/bestpractices.xml/UnusedPrivateMethod"/>
<rule ref="category/java/bestpractices.xml/UnusedPrivateField"/>
<!-- Исключения: сгенерированные, миксины, Faust -->
<exclude-pattern>.*/build/.*</exclude-pattern>
<exclude-pattern>.*/src/main/resources/.*</exclude-pattern>
</ruleset>