11package com .jelly .farmhelperv2 .feature .impl ;
22
33import com .jelly .farmhelperv2 .FarmHelper ;
4+ import com .jelly .farmhelperv2 .config .FarmHelperConfig ;
45import com .jelly .farmhelperv2 .failsafe .FailsafeManager ;
56import com .jelly .farmhelperv2 .feature .IFeature ;
67import com .jelly .farmhelperv2 .handler .MacroHandler ;
1819import org .jetbrains .annotations .NotNull ;
1920
2021import java .awt .*;
21- import java .io .BufferedReader ;
22- import java .io .IOException ;
23- import java .io .InputStream ;
24- import java .io .InputStreamReader ;
22+ import java .io .*;
2523import java .net .URI ;
2624import java .net .URISyntaxException ;
2725import java .net .URL ;
@@ -63,9 +61,31 @@ public static MovRecPlayer getInstance() {
6361 }
6462
6563 public MovRecPlayer () {
66- List <String > resourceFiles ;
64+ List <String > resourceFiles = new ArrayList <>() ;
6765 try {
68- resourceFiles = getResourceFiles ("/farmhelper/movrec" );
66+ if (FarmHelperConfig .enableCustomReactions ) {
67+ File userFolder = new File (Minecraft .getMinecraft ().mcDataDir + "/farmhelper/movrec" );
68+ if (!userFolder .exists ()) {
69+ userFolder .mkdirs ();
70+ FailsafeUtils .getInstance ().sendNotification ("No user recordings found. Created folder at: " + userFolder .getAbsolutePath (), TrayIcon .MessageType .WARNING );
71+ LogUtils .sendWarning ("No user recordings found. Created folder at: " + userFolder .getAbsolutePath ());
72+ }
73+
74+ for (File file : Objects .requireNonNull (userFolder .listFiles ())) {
75+ if (file .isFile () && file .getName ().endsWith (".movement" )) {
76+ resourceFiles .add (file .getAbsolutePath ());
77+ }
78+ }
79+
80+ if (resourceFiles .isEmpty ()) {
81+ FailsafeUtils .getInstance ().sendNotification ("No user recordings found. Falling back to default recordings." , TrayIcon .MessageType .WARNING );
82+ LogUtils .sendError ("No user recordings found. Falling back to default recordings." );
83+ resourceFiles = getResourceFiles ("/farmhelper/movrec" );
84+ FarmHelperConfig .enableCustomReactions = false ;
85+ }
86+ } else {
87+ resourceFiles = getResourceFiles ("/farmhelper/movrec" );
88+ }
6989 if (resourceFiles .isEmpty ()) {
7090 FailsafeUtils .getInstance ().sendNotification ("Resource folder not found! Report this to #bug-reports!" , TrayIcon .MessageType .WARNING );
7191 LogUtils .sendError ("Resource folder not found! Report this to #bug-reports!" );
@@ -78,7 +98,13 @@ public MovRecPlayer() {
7898 if (file .contains ("/build/classes/" )) {
7999 file = file .split ("/build/classes/java/main" )[1 ];
80100 }
81- InputStream inputStream = FarmHelper .class .getResourceAsStream (file );
101+ InputStream inputStream ;
102+
103+ if (FarmHelperConfig .enableCustomReactions ) {
104+ inputStream = new FileInputStream (file );
105+ } else {
106+ inputStream = FarmHelper .class .getResourceAsStream (file );
107+ }
82108
83109 if (inputStream != null ) {
84110 BufferedReader reader = new BufferedReader (new InputStreamReader (inputStream ));
0 commit comments