BG-Software-LLC / WildLoaders

Very optimized and highly configureable chunk-loaders plugin!
https://bg-software.com/wildloaders/
GNU General Public License v3.0
29 stars 17 forks source link

A 1x1 Chunk Loader will load chunk(s) immediately around it #18

Closed PiggiesGoSqueal closed 3 years ago

PiggiesGoSqueal commented 3 years ago

Minecraft's Version (is a test server) Paper version git-Paper-750 (MC: 1.16.5) (Implementing API version 1.16.5-R0.1-SNAPSHOT)

Plugin's Version: - Dev build: Number 13 19/06/2021 10:46:03 from wiki

Describe the bug I have this chunk loader that should only be loading a single chunk:

chunkloaders:
  1x1_loader:
    time: 86400
    type: BEACON
    name: '&6Chunk Loader &7(Place to load)'
    chunks-radius: 0 # This will load all chunks in a radius of 0, aka 1x1 chunks
    lore:
      - '&7Place this chunk loader to keep'
      - '&7the chunk loaded in the next {}!'

But when I place spawners in that chunk and 2 chunks right next to it, the chunk east of the loaded chunk also has a spawner spawning mobs. I made sure I did not confuse them with natural spawns by using Ravager spawners and I am not activating the spawners because I'm ~100 blocks above them.

In other words, it is loading at least 2 chunks. Strangely, the chunk north of the loaded chunk does not spawn mobs.

To Reproduce

  1. Create the chunk loader above.
  2. Get the loader & place it in a chunk.
  3. Place 1 Ravager spawner in the loaded chunk, and 1 in each chunk immediately around the spawner (North, South, East, West) (about center in each of the chunks). Note: I only tested North & East.
  4. Ensure the terrain is flat around the spawners (in all chunks) so the mobs spawn.
  5. Fly up 100+ blocks into the sky. Make sure your render distance is high enough to see the mobs.
  6. Set it to night (/night).
  7. /killall all (with EssentialsX) to ensure you don't confuse which chunks mobs have spawned in.
  8. Wait for mobs to spawn. Watch for like 5-10 min. My tests varied- One time it was slow (but still worked) in a chunk outside the loaded chunk. Another time it was faster than in the loaded chunk.

Additional information I have a basic server setup I use for testing. This is what I used while testing this plugin. If you'd like to test it with the same plugins as me then you may download it here: https://drive.google.com/file/d/1TSKMAtDrL9OtgfjnpGg0KHO9LKlThTZz/view?usp=sharing It is on MC-Market as well.

PiggiesGoSqueal commented 3 years ago

I just tested it with the normal_loader that comes with the plugin. This same issue occurs.

  normal_loader:
    time: 86400
    type: BEACON
    name: '&6Chunk Loader &7(Place to load)'
    lore:
      - '&7Place this chunk loader to keep'
      - '&7the chunk loaded in the next {}!'
PiggiesGoSqueal commented 3 years ago

Image: https://gyazo.com/f4b9c73c0deb7dd75fdc23262fe43192

The chunk I'm in is the loaded one. The loader is below the spawner (underground so the light doesn't impact spawn rates).

Note: I'm using Optifine zoom. So I'm actually much further away than it may appear in the image.

OmerBenGera commented 3 years ago

This is how Minecraft works in 1.16, you can't load only 1 chunk. This is not a bug with the plugin, this is how the game works.

OmerBenGera commented 3 years ago

WildLoaders is spawning a fake player above the loader, so if there are spawners in a 16 range block from it, they will work as well.

PiggiesGoSqueal commented 3 years ago

WildLoaders is spawning a fake player above the loader, so if there are spawners in a 16 range block from it, they will work as well.

Thanks for the quick reply!

So let's say you have various farms in a 12x12 chunk area. And your chunk loader is set to load a 3x3 chunk area. I believe Minecraft will have the farms work outside the 3x3 chunk area for a normal player. Does this remain true for a fake player?

In other words, what purpose does this line actually serve / what limitations are there (i.e. spawner distance): chunks-radius: 2

OmerBenGera commented 3 years ago

WildLoaders is spawning a fake player above the loader, so if there are spawners in a 16 range block from it, they will work as well.

Thanks for the quick reply!

So let's say you have various farms in a 12x12 chunk area. And your chunk loader is set to load a 3x3 chunk area. I believe Minecraft will have the farms work outside the 3x3 chunk area for a normal player. Does this remain true for a fake player?

In other words, what purpose does this line actually serve / what limitations are there (i.e. spawner distance): chunks-radius: 2

No, its not. And the chunks radius is the amount of chunks (as a radiu s) to keep loaded. There are some limitations with minecraft tho (you cant load only 1 chunk, for example)