tutorial:custom_resources

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tutorial:custom_resources [2023/06/27 14:05] mineblock11tutorial:custom_resources [2024/06/29 07:10] (current) – [Reload Listeners 2: The Listener] Remove extra } daomephsta
Line 20: Line 20:
 <code java [enable_line_numbers="true"]> <code java [enable_line_numbers="true"]>
 public class ExampleMod implements ModInitializer { public class ExampleMod implements ModInitializer {
-    ResourceManagerHelper.get(ResourceType.SERVER_DATA).registerReloadListener([...]);+    @Override 
 +    public void onInitialize() { 
 +        ResourceManagerHelper.get(ResourceType.SERVER_DATA).registerReloadListener([...]); 
 +    }
          
     [...]     [...]
Line 30: Line 33:
 We have now gone over the process of registering your reload listeners, but you have yet to actually //write// one, that part of the process will be discussed in this section (specifically, this section will discuss ''SimpleSynchronousResourceReloadListener'', async listeners will be discussed later). We have now gone over the process of registering your reload listeners, but you have yet to actually //write// one, that part of the process will be discussed in this section (specifically, this section will discuss ''SimpleSynchronousResourceReloadListener'', async listeners will be discussed later).
  
-By all laws of programmingyou should not be able to instantiate an interface in java, its methods are too abstract to callHowever, modders don't care about what actual programmers think so we will do it anyway+To simplify this tutorial, an [[https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html|anonymous class]] is used to implement ''SimpleSynchronousResourceReloadListener'', so that all the code is in one file.
  
 <code java [enable_line_numbers="true"]> <code java [enable_line_numbers="true"]>
Line 67: Line 70:
         [...]         [...]
     }     }
-} 
 </code> </code>
  
Line 76: Line 78:
 <code java [enable_line_numbers="true"]> <code java [enable_line_numbers="true"]>
 public class ExampleMod implements ModInitializer { public class ExampleMod implements ModInitializer {
-    ResourceManagerHelper.get(ResourceType.SERVER_DATA).registerReloadListener(new SimpleSynchronousResourceReloadListener() { +    @Override 
-        @Override +    public void onInitialize() { 
-        public Identifier getFabricId() { +        ResourceManagerHelper.get(ResourceType.SERVER_DATA).registerReloadListener(new SimpleSynchronousResourceReloadListener() { 
-            return new Identifier("tutorial", "my_resources"); +            @Override 
-        }+            public Identifier getFabricId() { 
 +                return new Identifier("tutorial", "my_resources"); 
 +            }
  
-        @Override +            @Override 
-        public void reload(ResourceManager manager) { +            public void reload(ResourceManager manager) { 
-            // Clear Caches Here+                // Clear Caches Here
  
-            for(Identifier id : manager.findResources("my_resource_folder", path -> path.endsWith(".json"))) { +                for(Identifier id : manager.findResources("my_resource_folder", path -> path.endsWith(".json"))) { 
-                try(InputStream stream = manager.getResource(id).getInputStream()) { +                    try(InputStream stream = manager.getResource(id).getInputStream()) { 
-                    // Consume the stream however you want, medium, rare, or well done. +                        // Consume the stream however you want, medium, rare, or well done. 
-                } catch(Exception e) { +                    } catch(Exception e) { 
-                    TUTORIAL_LOG.error("Error occurred while loading resource json" + id.toString(), e);+                        TUTORIAL_LOG.error("Error occurred while loading resource json" + id.toString(), e); 
 +                    }
                 }                 }
             }             }
-        } +        }); 
-    });+    }
     [...]     [...]
 } }
 </code> </code>
tutorial/custom_resources.1687874733.txt.gz · Last modified: 2023/06/27 14:05 by mineblock11