11package zadudoder .spmhelper ;
22
3- import net .fabricmc .api .ModInitializer ;
3+ import me .shedaniel .autoconfig .AutoConfig ;
4+ import me .shedaniel .autoconfig .serializer .GsonConfigSerializer ;
5+ import net .fabricmc .api .ClientModInitializer ;
6+ import net .fabricmc .api .EnvType ;
7+ import net .fabricmc .api .Environment ;
8+ import net .fabricmc .fabric .api .client .event .lifecycle .v1 .ClientTickEvents ;
9+ import net .fabricmc .fabric .api .client .keybinding .v1 .KeyBindingHelper ;
10+ import net .minecraft .client .MinecraftClient ;
11+ import net .minecraft .client .option .KeyBinding ;
12+ import org .lwjgl .glfw .GLFW ;
413import org .slf4j .Logger ;
514import org .slf4j .LoggerFactory ;
15+ import zadudoder .spmhelper .Screen .Calls .CallsScreen ;
16+ import zadudoder .spmhelper .Screen .Laws .LawsScreen ;
17+ import zadudoder .spmhelper .Screen .MainScreen ;
18+ import zadudoder .spmhelper .Screen .Map .MapScreen ;
19+ import zadudoder .spmhelper .Screen .Pays .PayScreen ;
20+ import zadudoder .spmhelper .config .SPmHelperConfig ;
21+ import zadudoder .spmhelper .events .ModEvents ;
22+ import zadudoder .spmhelper .utils .QRCodeScanner ;
23+ import zadudoder .spmhelper .utils .SoundManager ;
24+ import zadudoder .spmhelper .utils .types .VoiceType ;
625
7- public class SPmHelper implements ModInitializer {
26+ import java .util .Random ;
27+
28+ @ Environment (EnvType .CLIENT )
29+ public class SPmHelper implements ClientModInitializer {
830 public static final String MOD_ID = "spmhelper" ;
931 public static final Logger LOGGER = LoggerFactory .getLogger (MOD_ID );
1032
33+ private static KeyBinding keyOpenScreen ;
34+ private static KeyBinding keyOpenCallsScreen ;
35+ private static KeyBinding keyOpenPayScreen ;
36+ private static KeyBinding keyOpenMapScreen ;
37+ private static KeyBinding keyOpenLawsScreen ;
38+ private static KeyBinding keyScanQrCode ;
39+
40+
1141 @ Override
12- public void onInitialize () {
42+ public void onInitializeClient () {
43+ AutoConfig .register (SPmHelperConfig .class , GsonConfigSerializer ::new );
44+
45+ registerKeyBindings ();
46+ registerKeyHandlers ();
47+ SoundManager .initialize ();
48+ ModEvents .registerEvents ();
49+
50+ if (SPmHelperConfig .get ().voiceType == null ) {
51+ SPmHelperConfig .get ().voiceType = VoiceType .values ()[new Random ().nextInt (VoiceType .values ().length )];
52+ AutoConfig .getConfigHolder (SPmHelperConfig .class ).save ();
53+ }
54+
1355 LOGGER .info ("SPM Helper initialized" );
1456 }
57+
58+ private void registerKeyBindings () {
59+ keyOpenScreen = KeyBindingHelper .registerKeyBinding (new KeyBinding (
60+ "key.spmhelper.open_main_screen" ,
61+ GLFW .GLFW_KEY_H ,
62+ "category.spmhelper"
63+ ));
64+
65+ keyOpenCallsScreen = KeyBindingHelper .registerKeyBinding (new KeyBinding (
66+ "key.spmhelper.open_calls_screen" ,
67+ GLFW .GLFW_KEY_C ,
68+ "category.spmhelper"
69+ ));
70+
71+ keyOpenPayScreen = KeyBindingHelper .registerKeyBinding (new KeyBinding (
72+ "key.spmhelper.open_pay_screen" ,
73+ GLFW .GLFW_KEY_P ,
74+ "category.spmhelper"
75+ ));
76+
77+ keyOpenMapScreen = KeyBindingHelper .registerKeyBinding (new KeyBinding (
78+ "key.spmhelper.open_map_screen" ,
79+ GLFW .GLFW_FALSE ,
80+ "category.spmhelper"
81+ ));
82+
83+ keyOpenLawsScreen = KeyBindingHelper .registerKeyBinding (new KeyBinding (
84+ "key.spmhelper.open_laws_screen" ,
85+ GLFW .GLFW_FALSE ,
86+ "category.spmhelper"
87+ ));
88+
89+ keyScanQrCode = KeyBindingHelper .registerKeyBinding (new KeyBinding (
90+ "key.spmhelper.scan_qr_code" ,
91+ GLFW .GLFW_KEY_R ,
92+ "category.spmhelper"
93+ ));
94+ }
95+
96+ private void registerKeyHandlers () {
97+ ClientTickEvents .END_CLIENT_TICK .register (client -> {
98+ if (client .currentScreen == null ) {
99+ if (keyOpenScreen .wasPressed ()) {
100+ MinecraftClient .getInstance ().setScreen (new MainScreen ());
101+ } else if (keyOpenCallsScreen .wasPressed ()) {
102+ MinecraftClient .getInstance ().setScreen (new CallsScreen ());
103+ } else if (keyOpenPayScreen .wasPressed ()) {
104+ MinecraftClient .getInstance ().setScreen (new PayScreen ());
105+ } else if (keyOpenMapScreen .wasPressed ()) {
106+ MinecraftClient .getInstance ().setScreen (new MapScreen ());
107+ } else if (keyOpenLawsScreen .wasPressed ()) {
108+ MinecraftClient .getInstance ().setScreen (new LawsScreen ());
109+ } else if (keyScanQrCode .wasPressed ()) {
110+ QRCodeScanner .ScanQrCode (MinecraftClient .getInstance ());
111+ }
112+ }
113+ });
114+ }
115+
15116}
0 commit comments