Spigot Custom Structures 1.5.1

Generate Structures from schematics. [1.13.2-1.16.1]

  1. Yea it needs to be in quotes. I will add that to the documentation...

    Seems like a good idea. I will make it toggleable since the reason why I went with only 0,0 in the first place was that I was worried that it would effect the performance of the plugin.
  2. I did some more testing and I realize the generator simply looks at the topmost block that isn't air. So when set spawny to top, without leaves etc in the whitelist, it fails in those chunks. If I add leaves etc to the whitelist I get consistent spawn rates in all biomes but with structures spawning on top of trees. The same when I set spwany to +1 etc, structures will spawn on top of trees if there is one near 0,0 of the chunk. The thing is structures spawn starting one block in the ground, so I will have to compensate for that by adding another layer to the bottom of my schematics or adjusting commands in command blocks. Most of my schematics are command blocks that run functions and then replace themselves with air, so I will need to figure out the best way to replace them depending on what blocks they spawn into. But let's say you want buried treasure to spawn at y -3 below ground, you'll end up with floating chests in areas with trees. These are probably not common use cases though.
  3. I've been playing with this plugin a lot and I may have an idea.

    So grass causes the same issue as leaf blocks, where the grass_block is not considered "top" if there is grass on top. Including grass in the whitelist causes schematics to spawn basically as "'+1'" which can look weird depending on the schematic. So the only biomes that get actual consistent rates are like deserts and mountains where really nothing is ever on top of the ground blocks.

    An ignore list may solve these problems. I'm not sure what the logic flow is to determine where a schematic can be placed, but maybe something like this
    (1) % chance -> (2) if Spawny: top or '+/-', then match ignore list -> (3) if match, then check block at y~-1, repeat
    -> (3) if no match, then ignore -> (4) match whitelist -> (5) if match, then spawn schematic
    -> (5) if no match, then ignore, no schematic spawned
  4. To determine the top the Spigot api is used. I had no clue that it counted leaves and grass. I can easily change that so it will spawn on the ground like it is supposed to.
  5. Hows the progress?
  6. It is coming along. I can't give an estimate on when it will be out exactly as I've been busy recently; however, it will be out in the next week.
  7. I will look into it. Do you have random rotation enabled?
  8. nope, its disabled.
  9. [ERROR] [CustomStructures] Error: The schematic file for demo does not exist!
    [ERROR] [CustomStructures] For assistance please contact Ryandw11 on spigot.
    [ERROR] [CustomStructures] The plugin will now disable it self.
    [INFO] [CustomStructures] Disabling CustomStructures v1.4.2.1

    ERROR 1.13.2 SPIGOT
  10. use your own schematic files.
  11. So. its been couple of weeks now :D
  12. Yea sorry about that. I have the code done I just need to test it and fix some more extra bugs.
  13. Hi Ryan,
    Do you plan to add official 1.15.1 support?
  14. yes,I do plan on adding 1.15 support.
    • Agree Agree x 1
    • Friendly Friendly x 1
  15. Hey Ryan! Great plugin. I'm looking forward to 1.15.2 support, so thank you for working on an update.

    I had some recommendations to add into the plugin:

    -Able to copy mobs and Spawners directly from a WE schematic (Like if I copy a schematic with mobs in it, shouldnt the same mobs show up in /cstructure test)?

    -A better loot table system, preferably one that includes enchants, attributes, item lore, names – etc. A way to copy what’s inside a chest and make it into a loot table? Or the ability to hold an item in my hand in-game and copy it to the loot table one at a time using a command like

    /cstructure create loottable chest


    /cstructure create loottable hand

    And then you can modify the values in the config after the item/chest is added :)

    What do you think?
  16. ERROR Could not pass event ChunkLoadEvent to CustomStructures v1.4.2.1
    22.02 20:02:45 [Server] INFO java.lang.IllegalArgumentException: y out of range (expected 0-255, got -1)
    22.02 20:02:45 [Server] INFO at com.google.common.base.Preconditions.checkArgument(Preconditions.java:168) ~[patched_1.15.2.jar:git-Paper-90]
    22.02 20:02:45 [Server] INFO at org.bukkit.craftbukkit.v1_15_R1.CraftChunk.validateChunkCoordinates(CraftChunk.java:331) ~[patched_1.15.2.jar:git-Paper-90]
    22.02 20:02:45 [Server] INFO at org.bukkit.craftbukkit.v1_15_R1.CraftChunk.getBlock(CraftChunk.java:95) ~[patched_1.15.2.jar:git-Paper-90]
    22.02 20:02:45 [Server] INFO at com.ryandw11.structure.listener.ChunkLoad.loadevent(ChunkLoad.java:33) ~[?:?]
    22.02 20:02:45 [Server] INFO at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor210.execute(Unknown Source) ~[?:?]
    22.02 20:02:45 [Server] INFO at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.15.2.jar:git-Paper-90]
    22.02 20:02:45 [Server] INFO at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[patched_1.15.2.jar:git-Paper-90]
    22.02 20:02:45 [Server] INFO at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.15.2.jar:git-Paper-90]
    22.02 20:02:45 [Server] INFO at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:559) ~[patched_1.15.2.jar:git-Paper-90]
    22.02 20:02:45 [Server] INFO at net.minecraft.server.v1_15_R1.Chunk.loadCallback(Chunk.java:646) ~[patched_1.15.2.jar:git-Paper-90]
    22.02 20:02:45 [Server] INFO at net.minecraft.server.v1_15_R1.PlayerChunk.lambda$null$10(PlayerChunk.java:521) ~[patched_1.15.2.jar:git-Paper-90]
    22.02 20:02:45 [Server] INFO at com.mojang.datafixers.util.Either$Left.ifLeft(Either.java:43) ~[patched_1.15.2.jar:git-Paper-90]
    22.02 20:02:45 [Server] INFO at net.minecraft.server.v1_15_R1.PlayerChunk.lambda$a$11(PlayerChunk.java:519) ~[patched_1.15.2.jar:git-Paper-90]
    22.02 20:02:45 [Server] INFO at java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:656) ~[?:1.8.0_144]
    22.02 20:02:45 [Server] INFO at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:632) ~[?:1.8.0_144]
    22.02 20:02:45 [Server] INFO at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:442) ~[?:1.8.0_144]
    22.02 20:02:45 [Server] INFO at net.minecraft.server.v1_15_R1.PlayerChunkMap$CallbackExecutor.run(PlayerChunkMap.java:103) ~[patched_1.15.2.jar:git-Paper-90]
    22.02 20:02:45 [Server] INFO at net.minecraft.server.v1_15_R1.ChunkProviderServer$a.executeNext(ChunkProviderServer.java:892) ~[patched_1.15.2.jar:git-Paper-90]
    22.02 20:02:45 [Server] INFO at net.minecraft.server.v1_15_R1.ChunkProviderServer.runTasks(ChunkProviderServer.java:499) ~[patched_1.15.2.jar:git-Paper-90]
    22.02 20:02:45 [Server] INFO at net.minecraft.server.v1_15_R1.MinecraftServer.ba(MinecraftServer.java:1047) ~[patched_1.15.2.jar:git-Paper-90]
    22.02 20:02:45 [Server] INFO at net.minecraft.server.v1_15_R1.MinecraftServer.executeNext(MinecraftServer.java:1031) ~[patched_1.15.2.jar:git-Paper-90]
    22.02 20:02:45 [Server] INFO at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.15.2.jar:git-Paper-90]
    22.02 20:02:45 [Server] INFO at net.minecraft.server.v1_15_R1.MinecraftServer.sleepForTick(MinecraftServer.java:1015) ~[patched_1.15.2.jar:git-Paper-90]
    22.02 20:02:45 [Server] INFO at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:938) ~[patched_1.15.2.jar:git-Paper-90]

    update pls
  17. This does work on 1.15.2 from some testing I've done, though there are some errors here and there. I'm looking forward to this plugin officially supporting 1.15 but for now it does seem to be usable.
  18. Same here, initial testing on 1.15.2 working as expected.