55import com .google .gson .JsonObject ;
66import com .google .gson .reflect .TypeToken ;
77import com .google .gson .stream .JsonReader ;
8+ import net .minecraft .util .math .BlockPos ;
9+ import net .minecraft .util .math .ChunkPos ;
810import xyz .templecheats .templeclient .TempleClient ;
911import xyz .templecheats .templeclient .features .module .Module ;
1012import xyz .templecheats .templeclient .features .module .modules .client .HUD ;
1517import java .io .*;
1618import java .util .ArrayList ;
1719import java .util .List ;
20+ import java .util .Map ;
1821
1922public class ConfigManager {
2023
@@ -24,6 +27,8 @@ public class ConfigManager {
2427 private final File modulesDirectory ;
2528 private final File hudElementsDirectory ;
2629 private final File friendsDirectory ;
30+ private File baseFinderLogDirectory ;
31+ private File coordsLoggerLogDirectory ;
2732 private File altsDirectory ;
2833 private File altsFile ;
2934
@@ -33,6 +38,7 @@ public ConfigManager() {
3338 this .hudElementsDirectory = new File (this .mainDirectory , "Hud Elements" );
3439 this .friendsDirectory = new File (this .mainDirectory , "Friends" );
3540 this .altsDirectory = new File (this .mainDirectory , "Alts" );
41+ this .baseFinderLogDirectory = new File (this .mainDirectory , "Base Finder" );
3642
3743 if (!this .modulesDirectory .exists ()) {
3844 this .modulesDirectory .mkdirs ();
@@ -66,20 +72,15 @@ public void loadAll() {
6672
6773 private void saveModules () {
6874
69- //iterate through each module to save its config
7075 for (Module module : ModuleManager .getModules ()) {
7176
72- //file that the config will be saved to
7377 final File moduleConfigFile = new File (this .modulesDirectory , module .getName () + ".json" );
7478
75- //json object that will store panels of the module
7679 final JsonObject moduleObject = new JsonObject ();
7780
78- //add panels
7981 moduleObject .addProperty ("toggled" , module .isToggled ());
8082 moduleObject .addProperty ("key" , module .getKey ());
8183
82- //add settings
8384 final List < Setting < ? >> settings = TempleClient .settingsManager .getSettingsByMod (module );
8485 if (!settings .isEmpty ()) {
8586 final JsonObject settingsObject = new JsonObject ();
@@ -91,7 +92,6 @@ private void saveModules() {
9192 moduleObject .add ("settings" , settingsObject );
9293 }
9394
94- //write to file
9595 try {
9696 final BufferedWriter bufferedWriter = new BufferedWriter (new FileWriter (moduleConfigFile ));
9797 bufferedWriter .write (GSON .toJson (moduleObject ));
@@ -107,27 +107,21 @@ private void loadModules() {
107107
108108 for (Module module : ModuleManager .getModules ()) {
109109
110- //file that the config was saved to
111110 final File moduleConfigFile = new File (this .modulesDirectory , module .getName () + ".json" );
112111
113- //dont try to load config file if it doesnt exist
114112 if (!moduleConfigFile .exists ()) {
115113 continue ;
116114 }
117115
118116 try {
119- //open a file reader and json reader to read the config file
120117 final FileReader fileReader = new FileReader (moduleConfigFile );
121118 final JsonReader jsonReader = GSON .newJsonReader (fileReader );
122119
123- //get json object from file
124120 final JsonObject moduleObject = GSON .fromJson (jsonReader , JsonObject .class );
125121
126- //deserialize panels
127122 module .setToggled (moduleObject .get ("toggled" ).getAsBoolean ());
128123 module .setKey (moduleObject .get ("key" ).getAsInt ());
129124
130- //deserialize settings
131125 if (moduleObject .has ("settings" )) {
132126 final JsonObject settingsObject = moduleObject .get ("settings" ).getAsJsonObject ();
133127 for (Setting < ? > setting : TempleClient .settingsManager .getSettingsByMod (module )) {
@@ -147,21 +141,16 @@ private void saveHud() {
147141
148142 for (HUD .HudElement element : HUD .INSTANCE .getHudElements ()) {
149143
150- //file that the config will be saved to
151144 final File hudElementConfigFile = new File (this .hudElementsDirectory , element .getName () + ".json" );
152145
153- //json object that will store panels of the module
154146 final JsonObject hudElementObject = new JsonObject ();
155147
156- //add panels
157148 hudElementObject .addProperty ("enabled" , element .isEnabled ());
158149 hudElementObject .addProperty ("x" , element .getX ());
159150 hudElementObject .addProperty ("y" , element .getY ());
160151
161- //add settings
162152 final List < Setting < ? >> settings = TempleClient .settingsManager .getSettingsByMod (element );
163153 if (!settings .isEmpty ()) {
164- //json object just for settings
165154 final JsonObject settingsObject = new JsonObject ();
166155
167156 for (Setting < ? > setting : settings ) {
@@ -171,7 +160,6 @@ private void saveHud() {
171160 hudElementObject .add ("settings" , settingsObject );
172161 }
173162
174- //write to file
175163 try {
176164 final BufferedWriter bufferedWriter = new BufferedWriter (new FileWriter (hudElementConfigFile ));
177165 bufferedWriter .write (GSON .toJson (hudElementObject ));
@@ -186,28 +174,22 @@ private void saveHud() {
186174 private void loadHud () {
187175 for (HUD .HudElement element : HUD .INSTANCE .getHudElements ()) {
188176
189- //file that the config was saved to
190177 final File hudElementConfigFile = new File (this .hudElementsDirectory , element .getName () + ".json" );
191178
192- //dont try to load config file if it doesnt exist
193179 if (!hudElementConfigFile .exists ()) {
194180 continue ;
195181 }
196182
197183 try {
198- //open a file reader and json reader to read the config file
199184 final FileReader fileReader = new FileReader (hudElementConfigFile );
200185 final JsonReader jsonReader = GSON .newJsonReader (fileReader );
201186
202- //get json object from file
203187 final JsonObject hudElementObject = GSON .fromJson (jsonReader , JsonObject .class );
204188
205- //deserialize panels
206189 element .setEnabled (hudElementObject .get ("enabled" ).getAsBoolean ());
207190 element .setX (hudElementObject .get ("x" ).getAsDouble ());
208191 element .setY (hudElementObject .get ("y" ).getAsDouble ());
209192
210- //deserialize settings
211193 if (hudElementObject .has ("settings" )) {
212194 final JsonObject settingsObject = hudElementObject .get ("settings" ).getAsJsonObject ();
213195 for (Setting < ? > setting : TempleClient .settingsManager .getSettingsByMod (element )) {
@@ -280,11 +262,30 @@ public void saveAlts(List<String> alts) {
280262 }
281263 }
282264
283- public void resetModule (Module module ) {
284- final File moduleConfigFile = new File (this .modulesDirectory , module .getName () + ".json" );
285- if (moduleConfigFile .exists ()) {
286- moduleConfigFile .delete ();
265+ public void setupBaseFinderLogging () {
266+ final File baseFinderLogDirectory = new File (mainDirectory , "Base Finder" );
267+ if (!baseFinderLogDirectory .exists ()) {
268+ baseFinderLogDirectory .mkdirs ();
269+ }
270+ }
271+
272+ public void logBaseFound (ChunkPos chunkPos , Map <String , List <BlockPos >> foundItems ) {
273+ File logFile = new File (baseFinderLogDirectory , "found_bases.txt" );
274+ try (BufferedWriter writer = new BufferedWriter (new FileWriter (logFile , true ))) {
275+ writer .write ("Base found at Chunk [" + chunkPos .x + ", " + chunkPos .z + "]:\n " );
276+ foundItems .forEach ((item , positions ) -> {
277+ try {
278+ writer .write (" - " + positions .size () + " x " + item + " at positions:\n " );
279+ for (BlockPos pos : positions ) {
280+ writer .write (" [" + pos .getX () + ", " + pos .getY () + ", " + pos .getZ () + "]\n " );
281+ }
282+ } catch (IOException e ) {
283+ System .err .println ("Error writing to base log file: " + e .getMessage ());
284+ }
285+ });
286+ writer .newLine ();
287+ } catch (IOException e ) {
288+ System .err .println ("Error opening base log file: " + e .getMessage ());
287289 }
288- loadAll ();
289290 }
290291}
0 commit comments