Jump to content

[SOLVED] [1.12] Checking if a region is empty


GenghisKahn1992
 Share

Recommended Posts

I'm pretty new to modding but have a pretty good understanding of Java.

 

The big question I have is if there is a relatively easy way to check if an area in world is either empty.

 

I have an item that builds a structure. At the moment anywhere a block is placed it replaces whatever was there. I would like it to only run the block placement code if the region for the final structure is either completely empty or only contains blocks that are replaceable (I.e grass, snow, etc.).

 

Is this possible or do I need to check before every block placement?

Edited by GenghisKahn1992
Question Answered
Link to comment
Share on other sites

You have to check for every block placement. You can check for == Blocks.AIR (and other blocks you consider replaceable. (Note that in 1.13 upcoming I think they are adding some different types of air like "cave air" to help with generation and spawning.).

 

The alternative is to take over the chunk generator and replace it with one where, if you're going to build the structure, doesn't put anything else in the way in the first place. 

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Link to comment
Share on other sites

40 minutes ago, GenghisKahn1992 said:

Ok. I was afraid of that. I'll needed to find a better way of storing the block locations of the structure then. 

 

Why? are you seeing a performance problem? Almost everything related to handling the blocks in the world is already pretty optimized so not sure how you would optimize it further. What is different about what you're trying to do versus something like a stronghold?

Edited by jabelar

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Link to comment
Share on other sites

Oh, sorry for the confusion. It's not a world gen structure. It's an item that builds structures on use using items in the players inventory.

So instead of listing every block location and then testing block.isReplaceable(world, pos) I'll need to find a good way to store relative positioning of the structure so that I can loop through the positions with only a single isReplaceable test that gets called each loop.

 

(And hopefully have the looping generic enough so that I can have the single item usable for multiple structures)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Hello everyone! I played Minecraft with some modes. As usually I saved the game and in an hour I couldn't load it anymore, I always got this error "Errors in currently selected datapacks prevent the world from It's loading". I haven't added any mod to the game. I tried to load another world with the same mods and it worked well. Back to my main world and I got the same error. I deleted a couples unused mods and it didn't help. What can I do else to fix it?  Here's the debug file: https://drive.google.com/file/d/1AqZFRf2hsoH5RcAqQe0VRJRk0BY0MTKv/view?usp=sharing  
    • I downloaded the forge 1.19.3 installer, I opened it, but when I tried to install the client I got this error: Failed to run processor: javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid cetification path to requested target also here are the logs:  JVM info: Oracle Corporation - 17.0.6 - 17.0.6+9-LTS-190 java.net.preferIPv4Stack=true Found java version 17.0.6 Extracting json Considering minecraft client jar Downloading libraries Found 0 additional library directories Considering library cpw.mods:securejarhandler:2.1.6   File exists: Checksum validated. Considering library org.ow2.asm:asm:9.3   File exists: Checksum validated. Considering library org.ow2.asm:asm-commons:9.3   File exists: Checksum validated. Considering library org.ow2.asm:asm-tree:9.3   File exists: Checksum validated. Considering library org.ow2.asm:asm-util:9.3   File exists: Checksum validated. Considering library org.ow2.asm:asm-analysis:9.3   File exists: Checksum validated. Considering library net.minecraftforge:accesstransformers:8.0.4   File exists: Checksum validated. Considering library org.antlr:antlr4-runtime:4.9.1   File exists: Checksum validated. Considering library net.minecraftforge:eventbus:6.0.3   File exists: Checksum validated. Considering library net.minecraftforge:forgespi:6.0.0   File exists: Checksum validated. Considering library net.minecraftforge:coremods:5.0.1   File exists: Checksum validated. Considering library cpw.mods:modlauncher:10.0.8   File exists: Checksum validated. Considering library net.minecraftforge:unsafe:0.2.0   File exists: Checksum validated. Considering library com.electronwill.night-config:core:3.6.4   File exists: Checksum validated. Considering library com.electronwill.night-config:toml:3.6.4   File exists: Checksum validated. Considering library org.apache.maven:maven-artifact:3.8.5   File exists: Checksum validated. Considering library net.jodah:typetools:0.8.3   File exists: Checksum validated. Considering library net.minecrell:terminalconsoleappender:1.2.0   File exists: Checksum validated. Considering library org.jline:jline-reader:3.12.1   File exists: Checksum validated. Considering library org.jline:jline-terminal:3.12.1   File exists: Checksum validated. Considering library org.spongepowered:mixin:0.8.5   File exists: Checksum validated. Considering library org.openjdk.nashorn:nashorn-core:15.3   File exists: Checksum validated. Considering library net.minecraftforge:JarJarSelector:0.3.19   File exists: Checksum validated. Considering library net.minecraftforge:JarJarMetadata:0.3.19   File exists: Checksum validated. Considering library cpw.mods:bootstraplauncher:1.1.2   File exists: Checksum validated. Considering library net.minecraftforge:JarJarFileSystems:0.3.19   File exists: Checksum validated. Considering library net.minecraftforge:fmlloader:1.19.3-44.1.8   File exists: Checksum validated. Considering library com.github.jponge:lzma-java:1.3   File exists: Checksum validated. Considering library com.google.code.findbugs:jsr305:3.0.2   File exists: Checksum validated. Considering library com.google.code.gson:gson:2.8.7   File exists: Checksum validated. Considering library com.google.errorprone:error_prone_annotations:2.1.3   File exists: Checksum validated. Considering library com.google.guava:guava:20.0   File exists: Checksum validated. Considering library com.google.guava:guava:25.1-jre   File exists: Checksum validated. Considering library com.google.j2objc:j2objc-annotations:1.1   File exists: Checksum validated. Considering library com.nothome:javaxdelta:2.0.1   File exists: Checksum validated. Considering library com.opencsv:opencsv:4.4   File exists: Checksum validated. Considering library commons-beanutils:commons-beanutils:1.9.3   File exists: Checksum validated. Considering library commons-collections:commons-collections:3.2.2   File exists: Checksum validated. Considering library commons-io:commons-io:2.4   File exists: Checksum validated. Considering library commons-logging:commons-logging:1.2   File exists: Checksum validated. Considering library de.oceanlabs.mcp:mcp_config:1.19.3-20221207.122022@zip   File exists: Checksum validated. Considering library de.siegmar:fastcsv:2.0.0   File exists: Checksum validated. Considering library net.md-5:SpecialSource:1.11.0   File exists: Checksum validated. Considering library net.minecraftforge:ForgeAutoRenamingTool:0.1.22:all   File exists: Checksum validated. Considering library net.minecraftforge:binarypatcher:1.1.1   File exists: Checksum validated. Considering library net.minecraftforge:fmlcore:1.19.3-44.1.8   File exists: Checksum validated. Considering library net.minecraftforge:fmlloader:1.19.3-44.1.8   File exists: Checksum validated. Considering library net.minecraftforge:forge:1.19.3-44.1.8:universal   File exists: Checksum validated. Considering library net.minecraftforge:installertools:1.3.0   File exists: Checksum validated. Considering library net.minecraftforge:jarsplitter:1.1.4   File exists: Checksum validated. Considering library net.minecraftforge:javafmllanguage:1.19.3-44.1.8   File exists: Checksum validated. Considering library net.minecraftforge:lowcodelanguage:1.19.3-44.1.8   File exists: Checksum validated. Considering library net.minecraftforge:mclanguage:1.19.3-44.1.8   File exists: Checksum validated. Considering library net.minecraftforge:srgutils:0.4.11   File exists: Checksum validated. Considering library net.minecraftforge:srgutils:0.4.3   File exists: Checksum validated. Considering library net.minecraftforge:srgutils:0.4.9   File exists: Checksum validated. Considering library net.sf.jopt-simple:jopt-simple:5.0.4   File exists: Checksum validated. Considering library net.sf.jopt-simple:jopt-simple:6.0-alpha-3   File exists: Checksum validated. Considering library org.apache.commons:commons-collections4:4.2   File exists: Checksum validated. Considering library org.apache.commons:commons-lang3:3.8.1   File exists: Checksum validated. Considering library org.apache.commons:commons-text:1.3   File exists: Checksum validated. Considering library org.checkerframework:checker-qual:2.0.0   File exists: Checksum validated. Considering library org.codehaus.mojo:animal-sniffer-annotations:1.14   File exists: Checksum validated. Considering library org.ow2.asm:asm-analysis:9.2   File exists: Checksum validated. Considering library org.ow2.asm:asm-analysis:9.3   File exists: Checksum validated. Considering library org.ow2.asm:asm-commons:9.2   File exists: Checksum validated. Considering library org.ow2.asm:asm-commons:9.3   File exists: Checksum validated. Considering library org.ow2.asm:asm-tree:9.2   File exists: Checksum validated. Considering library org.ow2.asm:asm-tree:9.3   File exists: Checksum validated. Considering library org.ow2.asm:asm:9.2   File exists: Checksum validated. Considering library org.ow2.asm:asm:9.3   File exists: Checksum validated. Considering library trove:trove:1.0.2   File exists: Checksum validated. Created Temporary Directory: C:\Users\hp\AppData\Local\Temp\forge_installer1399829649739821073   Extracting: /data/client.lzma Building Processors ===============================================================================   MainClass: net.minecraftforge.installertools.ConsoleTool   Classpath:     C:\Users\hp\AppData\Roaming\.minecraft\libraries\net\minecraftforge\installertools\1.3.0\installertools-1.3.0.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\net\md-5\SpecialSource\1.11.0\SpecialSource-1.11.0.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\net\sf\jopt-simple\jopt-simple\5.0.4\jopt-simple-5.0.4.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\com\google\code\gson\gson\2.8.7\gson-2.8.7.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\de\siegmar\fastcsv\2.0.0\fastcsv-2.0.0.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\net\minecraftforge\srgutils\0.4.11\srgutils-0.4.11.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-commons\9.3\asm-commons-9.3.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\com\google\guava\guava\20.0\guava-20.0.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\com\opencsv\opencsv\4.4\opencsv-4.4.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-analysis\9.3\asm-analysis-9.3.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-tree\9.3\asm-tree-9.3.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm\9.3\asm-9.3.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-text\1.3\commons-text-1.3.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-lang3\3.8.1\commons-lang3-3.8.1.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\commons-beanutils\commons-beanutils\1.9.3\commons-beanutils-1.9.3.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-collections4\4.2\commons-collections4-4.2.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\commons-logging\commons-logging\1.2\commons-logging-1.2.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar   Args: --task, MCP_DATA, --input, C:\Users\hp\AppData\Roaming\.minecraft\libraries\de\oceanlabs\mcp\mcp_config\1.19.3-20221207.122022\mcp_config-1.19.3-20221207.122022.zip, --output, C:\Users\hp\AppData\Roaming\.minecraft\libraries\de\oceanlabs\mcp\mcp_config\1.19.3-20221207.122022\mcp_config-1.19.3-20221207.122022-mappings.txt, --key, mappings Task: MCP_DATA Input:  C:\Users\hp\AppData\Roaming\.minecraft\libraries\de\oceanlabs\mcp\mcp_config\1.19.3-20221207.122022\mcp_config-1.19.3-20221207.122022.zip Output: C:\Users\hp\AppData\Roaming\.minecraft\libraries\de\oceanlabs\mcp\mcp_config\1.19.3-20221207.122022\mcp_config-1.19.3-20221207.122022-mappings.txt Key:    mappings Extracting: config/joined.tsrg ===============================================================================   MainClass: net.minecraftforge.installertools.ConsoleTool   Classpath:     C:\Users\hp\AppData\Roaming\.minecraft\libraries\net\minecraftforge\installertools\1.3.0\installertools-1.3.0.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\net\md-5\SpecialSource\1.11.0\SpecialSource-1.11.0.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\net\sf\jopt-simple\jopt-simple\5.0.4\jopt-simple-5.0.4.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\com\google\code\gson\gson\2.8.7\gson-2.8.7.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\de\siegmar\fastcsv\2.0.0\fastcsv-2.0.0.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\net\minecraftforge\srgutils\0.4.11\srgutils-0.4.11.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-commons\9.3\asm-commons-9.3.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\com\google\guava\guava\20.0\guava-20.0.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\com\opencsv\opencsv\4.4\opencsv-4.4.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-analysis\9.3\asm-analysis-9.3.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-tree\9.3\asm-tree-9.3.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm\9.3\asm-9.3.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-text\1.3\commons-text-1.3.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-lang3\3.8.1\commons-lang3-3.8.1.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\commons-beanutils\commons-beanutils\1.9.3\commons-beanutils-1.9.3.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-collections4\4.2\commons-collections4-4.2.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\commons-logging\commons-logging\1.2\commons-logging-1.2.jar     C:\Users\hp\AppData\Roaming\.minecraft\libraries\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar   Args: --task, DOWNLOAD_MOJMAPS, --version, 1.19.3, --side, client, --output, C:\Users\hp\AppData\Roaming\.minecraft\libraries\net\minecraft\client\1.19.3-20221207.122022\client-1.19.3-20221207.122022-mappings.txt Task: DOWNLOAD_MOJMAPS MC Version: 1.19.3 Side:       client Output:     C:\Users\hp\AppData\Roaming\.minecraft\libraries\net\minecraft\client\1.19.3-20221207.122022\client-1.19.3-20221207.122022-mappings.txt javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target     at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)     at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:371)     at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:314)     at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:309)     at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:654)     at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:473)     at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:369)     at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:396)     at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:480)     at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:458)     at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201)     at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)     at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1506)     at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1421)     at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455)     at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426)     at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:580)     at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:187)     at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1665)     at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)     at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:224)     at java.base/java.net.URL.openStream(URL.java:1161)     at net.minecraftforge.installertools.DownloadMojmaps.process(DownloadMojmaps.java:65)     at net.minecraftforge.installertools.ConsoleTool.main(ConsoleTool.java:55)     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.base/java.lang.reflect.Method.invoke(Method.java:568)     at net.minecraftforge.installer.actions.PostProcessors.process(PostProcessors.java:226)     at net.minecraftforge.installer.actions.ClientInstall.run(ClientInstall.java:144)     at net.minecraftforge.installer.InstallerPanel.run(InstallerPanel.java:423)     at net.minecraftforge.installer.SimpleInstaller.launchGui(SimpleInstaller.java:175)     at net.minecraftforge.installer.SimpleInstaller.main(SimpleInstaller.java:147) Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target     at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:439)     at java.base/sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:306)     at java.base/sun.security.validator.Validator.validate(Validator.java:264)     at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)     at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:132)     at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:638)     ... 28 more Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target     at java.base/sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)     at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)     at java.base/java.security.cert.CertPathBuilder.build(CertPathBuilder.java:297)     at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:434)     ... 33 more Failed to run processor: javax.net.ssl.SSLHandshakeException:PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target See log for more details.  
    • This is my first time making a pack and i just wanted to add mods that i know or that look interesting. So When making the pack i get this error with Refined Storage https://pastebin.com/DxtTbVZW
    • Hello! When I'm trying to get items by tag during the recipe serialization, I'm getting an empty list. I have a guess that item tags're not loaded by the time minecraft loads my recipes. Here's my code: Class that saves information about ingredient's count Recipe serializer with some aux methods: Registry: Example of the json recipe file:  
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.