2323import com .andre601 .oneversionremake .core .interfaces .PluginCore ;
2424import com .andre601 .oneversionremake .core .interfaces .ProxyLogger ;
2525import com .andre601 .oneversionremake .core .proxy .ProtocolVersionResolver ;
26+ import com .andre601 .oneversionremake .core .proxy .VersionsFile ;
2627
2728import java .io .IOException ;
2829import java .io .InputStream ;
3233
3334public class OneVersionRemake {
3435
35- private static final String DEF_VERSIONS_URL = "https://www.andre601.ch/oneversionremake/versions .json" ;
36+ public static final String DEF_VERSIONS_URL = "https://www.andre601.ch/oneversionremake/protocol_versions .json" ;
3637
3738 private final PluginCore pluginCore ;
3839 private final ConfigHandler configHandler ;
@@ -85,7 +86,7 @@ public Map<String, Map<String, Integer>> getPieMap(){
8586
8687 List <Integer > versions = getConfigHandler ().getIntList ("Protocol" , "Versions" );
8788 if (versions .isEmpty ()){
88- String unknown = getProtocolVersionResolver ().getFriendlyName (0 );
89+ String unknown = getProtocolVersionResolver ().getVersions (). getFriendlyName (0 );
8990
9091 Map <String , Integer > entry = new HashMap <>();
9192
@@ -96,8 +97,8 @@ public Map<String, Map<String, Integer>> getPieMap(){
9697 }
9798
9899 for (int version : versions ){
99- String major = getProtocolVersionResolver ().getMajor (version );
100- String name = getProtocolVersionResolver ().getFriendlyName (version );
100+ String major = getProtocolVersionResolver ().getVersions (). getMajor (version );
101+ String name = getProtocolVersionResolver ().getVersions (). getFriendlyName (version );
101102
102103 Map <String , Integer > entry = new HashMap <>();
103104 entry .put (name , 1 );
@@ -141,22 +142,36 @@ private void load(){
141142 return ;
142143 }
143144
144- if (!getProtocolVersionResolver ().hasFile () || getConfigHandler ().getBoolean (true , "Settings" , "UpdateVersions" )){
145- String url = getConfigHandler ().getString (DEF_VERSIONS_URL , "Settings" , "VersionsUrl" );
146-
147- if (getProtocolVersionResolver ().loadFile (url )){
148- getProxyLogger ().info ("Updated versions.json!" );
145+ String url = getConfigHandler ().getString (DEF_VERSIONS_URL , "Settings" , "VersionsUrl" );
146+
147+ if (getProtocolVersionResolver ().isFileMissing ()){
148+ getProxyLogger ().info ("Creating versions.json..." );
149+ getProtocolVersionResolver ().createFile (url ).whenComplete ((versions , throwable ) -> {
150+ if (handleErrors (versions , throwable ))
151+ return ;
152+
153+ getProxyLogger ().info ("Successfully created versions.json!" );
149154 enable ();
150- }else {
151- getProxyLogger ().warn ("Unable to update versions.json! Check previous lines for warnings and errors." );
152- }
155+ });
156+ }else
157+ if (getConfigHandler ().getBoolean (true , "Settings" , "UpdateVersions" )){
158+ getProxyLogger ().info ("Checking for updated versions.json..." );
159+ getProtocolVersionResolver ().updateFile (url ).whenComplete ((versions , throwable ) -> {
160+ if (handleErrors (versions , throwable ))
161+ return ;
162+
163+ getProxyLogger ().info ("Update-check complete!" );
164+ enable ();
165+ });
153166 }else {
154- if (getProtocolVersionResolver ().setupConfigurate ()){
167+ getProxyLogger ().info ("Loading versions.json..." );
168+ getProtocolVersionResolver ().loadFile ().whenComplete (((versions , throwable ) -> {
169+ if (handleErrors (versions , throwable ))
170+ return ;
171+
155172 getProxyLogger ().info ("Loaded versions.json!" );
156173 enable ();
157- }else {
158- getProxyLogger ().warn ("Unable to load versions.json! Check previous lines for errors and warnings." );
159- }
174+ }));
160175 }
161176 }
162177
@@ -169,7 +184,7 @@ private void enable(){
169184 versionsSet = false ;
170185 }else {
171186 getProxyLogger ().info ("Loaded the following Protocol Version(s):" );
172- getProxyLogger ().info (getProtocolVersionResolver ().getFriendlyNames (protocols , false ));
187+ getProxyLogger ().info (getProtocolVersionResolver ().getVersions (). getFriendlyNames (protocols , false ));
173188
174189 versionsSet = true ;
175190 }
@@ -190,7 +205,7 @@ private void enable(){
190205 getProxyLogger ().info ("No Protocol Versions set. Skipping Metrics initialization..." );
191206 }
192207
193- getProxyLogger ().info ("OneVersionRemake is ready!" );
208+ getProxyLogger ().info ("OneVersionRemake ready!" );
194209 }
195210
196211 private void printBanner (){
@@ -231,4 +246,19 @@ private void loadVersion(){
231246 version = "UNKNOWN" ;
232247 }
233248 }
249+
250+ private boolean handleErrors (VersionsFile versionsFile , Throwable throwable ){
251+ if (throwable != null || versionsFile == null ){
252+ if (throwable != null ){
253+ getProxyLogger ().warn ("Encountered an Exception while handling versions.json" );
254+ getProxyLogger ().warnFormat ("Error Message: %s" , throwable .getMessage ());
255+ }else {
256+ getProxyLogger ().warn ("Handling of versions.json was non-successful!" );
257+ getProxyLogger ().warn ("Please check previous entries for any errors." );
258+ }
259+ return true ;
260+ }
261+
262+ return false ;
263+ }
234264}
0 commit comments